免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3599 | 回复: 9
打印 上一主题 下一主题

概要设计问题 高手请进 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-10-13 17:17 |只看该作者 |倒序浏览
最近搞一个概要设计,应为我先前写了一个,表示不是很规范,现在要求规范表达设计中的图表等,既然是要求规范的话,我就想到了UML来表示,用到UML突然发现UML上面的表示方法和Visio中的表示方法很多都不相同,我想可能Visio在设计时考虑到很多并用所有的标准UML定义的符号就可以将所有的集中UML图形表示清楚,但我第一次真正意义上要标准的使用这些规范,难免很多不是很清楚;还请高人指点指点我以下这些疑问:
[list=3]
    首先我要表现出系统的整体的结构框图,在这里我考虑到了使用包(package)表示的方法来表示,但是觉得不适很严密,因为一个包表示的是一组模型元素或是图;本来我觉得最贴切的应该使用一个模型元素来表示的,我认为一个模型恰好可以代表一个功能,但是很不幸的是Visio中找不到模型这个图例,所以我就很迷惑是不是UML中这种元素并没有怎么用到,而且我在Rose中也没有看到模型这图例;郁闷   
    其次,我要表示系统中对象的创建顺序,并表现出各个类的包含关系(包含关系很好解决,根据静态结构图就可以解决)但我想给出一个大概就相当于一个初始化的流程图,但是又不完全是这样,因为面向的系统是VC的,很多对象的是在对消息处理时才创建的,并不是因为创建的逻辑顺序不够明显,逻辑顺序不够明显我们可以分为很多个小的部分来表示,因为当我们分解到足够小的一个功能的时候,他的逻辑顺序还是比较明显的,但我的疑问是:我应该用什么图例来表示我的创建过程呢?举个简单的例子我要表示一个对象是在另外一个对象之后创建的,我应该用什么连接符来连接他呢?
    还有一点就是,在定义了系统数据结构和系统接口之后,我们描述程序的运行设计时应该用先前定义的各个模块和模块之间的接口来描述程序的运行,在活动图中,我们是不是应该把每一个接口的操作都定义为一个活动状态呢?参看活动状态的属性等,觉得有点不妥,好像这样表示并不是很好,所以我又产生了疑问,那我应该怎么来表示它呢?
[/list=3]谢谢各位高手的指点,其他还有很多此类的疑惑,就是感觉标准的UML语言定义的和Visio中的表示有点不同(并不只是图形的表示有点不同,是不是MicroSoft高手的定义和我们不一样,就像J++一样,他自己搞的一个标准),在此先谢谢大家先。

论坛徽章:
0
2 [报告]
发表于 2005-10-13 18:38 |只看该作者

概要设计问题 高手请进

为和要用visio
直接用rose全部搞定,并且支持正向工程和逆向工程。

论坛徽章:
0
3 [报告]
发表于 2005-10-13 18:41 |只看该作者

概要设计问题 高手请进

流程顺序在rose中用顺序图解决,里面具体表示了各对象的生命周期

论坛徽章:
0
4 [报告]
发表于 2005-10-13 21:35 |只看该作者

概要设计问题 高手请进

1、UML是为人服务的,不是让你强行去适应他的。他出现的目的只是让大家在理解上尽量不出现分歧。
2、如果你不需要自动生成代码,我觉得没有必要使用包。
3、你理解的一个模式可能是指一个软件的一个功能,这个功能由一系列用例组成。如果是这样,你分别建立不同的图可能更适合。
4、你试图描述对象的创建顺序,表明你的思想是结构化的。在这样的思想下可能使用UML会出现很多困惑。我建议你先从OOP转变到OO的思想后,再用UML设计。这个阶段还是使用通常用到的概要设计样本好些。
5、系统数据结构和系统接口其实不是UML关心的核心问题,一般来讲,一个对象的数据结构,可以表示为对象的属性,接口则为对象的方法。而一个对象的属性和方法实质上只表明了对象本身。并不存在C里面所谓的数据类型的区别(数据类型只和特定的语言有关)。你考虑的这个层次,实际上是详细设计需要考虑的。
6、给点建议,使用UML需要站在面向对象的角度,而不是对象的角度。你自己都在对象里面,怎么看清对象是什么呢? 那么你站到对象的对面吧。。。

论坛徽章:
0
5 [报告]
发表于 2005-10-13 22:39 |只看该作者

概要设计问题 高手请进

To xichen
原帖由 "xichen" 发表:
1、UML是为人服务的,不是让你强行去适应他的。他出现的目的只是让大家在理解上尽量不出现分歧。
2、如果你不需要自动生成代码,我觉得没有必要使用包。
3、你理解的一个模式可能是指一个软件的一个功能,这个功能..........

多谢你的诚恳讲解:
    首先,你说得很有道理,前面我提到了对象的创建顺序,这个是由于上次我的文档相当的不规范,没有把其中很多问题阐述清楚,有人问我一个问题,他指出我没有将模块的结构说明清楚,他们之间的使用、继承等等关系,没有说明每个对象是如何创建的”所以我才会想到给出一个典型的对象基本的对象创建的顺序。现在听你这么说,觉得这个很没有必要,这个应该是在类的静态结构图中表现出他们的层次关系来;
    其次,我可以通过序列图来表明一个功能实现所涉及到的对象,以及他们之间的消息通信和接口的调用,那么我在运行设计这一块就只用到序列图和状态迁移图就可以解决问题了么?是不是还有其他什么更好更表针的做法呢?
    还有就是我刚刚接触到OO这方面对问题,又没有什么参考书对OO分析的方法有很深入或是很有见地的讲解的呢?最好是能给人一种耳目一新的感觉的那种,因为我看有些好书就能给人一种这样的感觉
在这里先感谢先,感觉做的有点迷茫,拿不出效率来,思路不好表到,好像没有方向感似的,糊里糊涂的。

在这里也诚恳地感谢wjywhl给我的意见,只是我要很快给出一个结果来,并不需要Rational Rose上的太多功能,因为我怕我自己会陷入Rose提供的功能中去。

论坛徽章:
0
6 [报告]
发表于 2005-10-14 08:51 |只看该作者

概要设计问题 高手请进

恩,我觉得你过多的考虑了具体的实现。比如问你问题“对象是如何创建”的人样,你们的思路可能都在程序上如何实现。而不是站在功能上如何实现的角度去考虑的。
首先肯定一点,UML是用来描述的,而不是一个程序语言。它需要做的事情是描述需求、功能、边界、相互依赖等要点,而并不试图描述清楚一个对象内部的功能实现。

举个例子,你创建一个对象,并把A这个名字绑定到对象上。那么你有了A这个对象,它有两个属性a.test1和a.test2,然后它有一个方法a.add()。
那么UML考虑的是,对象A有两个属性和方法,他们的名字分别为。。。。
但是对于a.add()这个方法的实现却不需要做过多描述(除非你想这样,并用序列图表示出来)。

对于概要设计,我认为就是准确描述对象之间的关系,以及对象的属性和方法。

对象如何创建,是详细阶段的时候的事情。

关于书籍,我认为《设计模式》对你有帮助,但是更重要的是思想,而不是教材。另外Python语言是一种能让你对OO有更深刻认识的语言,欢迎到Python版来看看。

论坛徽章:
0
7 [报告]
发表于 2005-10-14 09:50 |只看该作者

概要设计问题 高手请进

说得不错,刚刚我去Python板块看了看,以前没有接触过,等有空慢慢了解了解;老兄的论坛还不错嘛!
现在继续回到我的问题上来说说:
    你说得很对,我也没有想过要具体来表示具体方法的实现过程,我只是想把系统的用例用序列图表示出来,把对象之间的通信通过序列图来表示出来,不知道是不是还有什么更好的表示方法呢?
    还有一个疑问就是,如果我现在不用包来表示一个具体的实现模块,那我应该用什么图来表示它呢,类图?这样的话太过复杂了,不能让人看上去一目了然,可能会让看的人高糊涂;我主要是想把他们之间的层次关系表示清除,我应该具体怎么来做
    还有一点就是,可能不会有详细设计,概要设计之后可能就是编码了,所以要求概要设计尽可能的具体,
还请指点指点。

论坛徽章:
0
8 [报告]
发表于 2005-10-14 13:35 |只看该作者

概要设计问题 高手请进

如果是这样的话,可能需要把时间花在类图上了。
至于问的序列图的问题。
或者你看看这个对你有帮助
http://wiki.woodpecker.org.cn/moin/Compass/CompassSysfile

还有,UML是用来沟通用的,不是用来凑文档的页数和写程序的。
如果你的UML图的意思能让团队的人员都能无分歧的理解了,目的就达到了。

论坛徽章:
0
9 [报告]
发表于 2005-10-14 13:59 |只看该作者

概要设计问题 高手请进

难~~用uml还好一点,也是一起用,难

论坛徽章:
0
10 [报告]
发表于 2005-10-14 18:06 |只看该作者

概要设计问题 高手请进

恩,你问的确切来说是流程图
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP