各位能能谈谈UML在面向对象设计与开发中应用的一些想法

dongyingtao 2002-06-13 04:08:31
UML作为一种建模语言在面向对象设计和开发中到底有什么作用,又是如何影响设计和开发的呢?希望大虾们赐教!
...全文
172 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
Elkel 2002-06-20
  • 打赏
  • 举报
回复
UML对C++程序员有一个巨大的好处,它能强迫C++程序员使用面向对象的思维编程,彻底抛弃c语言的过程设计思想。曾经有同事对我抱怨UML不能表达全局变量。:)
Elkel 2002-06-19
  • 打赏
  • 举报
回复
UML只是一种描述语言,不是方法。
hnzsy 2002-06-19
  • 打赏
  • 举报
回复
UML主张迭代式的工程模式,虽然在每一次小的迭代过程中凝固了需求,但从整个产品的生命周期来看并没有凝固需求
Hpt370 2002-06-18
  • 打赏
  • 举报
回复
怎么没有人说UML坏话呢?

Uml从一开始就凝固需求难道不是致命伤吗?

小弟一直不太明白,一个凝固了需求的系统不就等于是死亡了吗?

Uml怎么处理可扩展的设计和重构方法呢?
hnzsy 2002-06-18
  • 打赏
  • 举报
回复
我们做项目一般这样:
分析阶段: 1、用Use Case图描述用户需求,确定项目范围
2、用Sequence描述每个Case的可能的处理流程(一个case可以对
应多个Sequence图)
3、用Collaboration图检查对象之间的行为负载

设计阶段: 1、设计Class(数据库设计还是用ERWin好)
开发阶段: 1、生成代码框架
hnzsy 2002-06-18
  • 打赏
  • 举报
回复
我们做项目一般这样:
分析阶段: 1、用Use Case图描述用户需求,确定项目范围
2、用Sequence描述每个Case的可能的处理流程(一个case可以对
应多个Sequence图)
3、用Collaboration图检查对象之间的行为负载

设计阶段: 1、设计Class(数据库设计还是用ERWin好)
开发阶段: 1、生成代码框架



mobbs 2002-06-17
  • 打赏
  • 举报
回复
improgrammer()
UML是通过use case view来与客户沟通,通过logical view来与程序员沟通。
你说的"用户代表中有能直接理解UML的",可能是理解成要客户理解整个UML设计了。
同时,也不是"时间也过去不少了,开始准备编码吧"这样的。在需求获取结束后,与客户就需求达成一致,就可以不用管客户了,做你的详细设计吧(这个设计过程中可能会与客户有一定联系)。做完设计,才会进入编码。
如果使用迭代,具体过程会更复杂。
mobbs 2002-06-17
  • 打赏
  • 举报
回复
improgrammer()
UML是通过use case view来与客户沟通,通过logical view来与程序员沟通。
你说的"用户代表中有能直接理解UML的",可能是理解成要客户理解整个UML设计了。
同时,也不是"时间也过去不少了,开始准备编码吧"这样的。在需求获取结束后,与客户就需求达成一致,就可以不用管客户了,做你的详细设计吧(这个设计过程中可能会与客户有一定联系)。做完设计,才会进入编码。
如果使用迭代,具体过程会更复杂。
lucent 2002-06-17
  • 打赏
  • 举报
回复
可以到这里看看
http://www.china-pub.com/computers/common/info.asp?id=3330
lucent 2002-06-17
  • 打赏
  • 举报
回复
说到具体应用UML,我也没经验。但我想这里很多兄弟都看过《设计模式:可复用面向对象软件的基础》,我个人觉得,学UML一定要学UML的“设计模式”,像《UML对象设计与编程》、《UML和模式应用:面向对象分析与设计导论》等书可以一看。
improgrammer 2002-06-17
  • 打赏
  • 举报
回复
我的体会是:其实UML不那么好懂的。学起来特艰难。但用它来描述系统,有系统的方法,可以避免歧义,开发人员之间有了沟通的基础,在可以预见的将来还足够可用(稳定)。

至于和客户沟通嘛,你听他讲老半天,记下你理解的东西,构思系统,用UML表示出来,然后依据这个模型问用户九百九十九个问题,然后说:我认为这个模型(描述)足够准确(完备)了,这时侯,时间也过去不少了,开始准备编码吧。

今天用户代表中有能直接理解UML的,恐怕他自己成立软件公司赚钱去了。
t 2002-06-16
  • 打赏
  • 举报
回复
dongyingtao (dongyingtao)

I thought UML is a communicating way between developers.

I have two years experience with UML and developed by java. If there is NOT UML, I'm NOT able to show my designs to other developers which represent the relationship between classes or the process by objects with events.

But I thought the most important thing is patterns. Think of using patterns frequently well then using UML frequently too.

There is another opinion is when you draw an UML diagram, it could make your idea clear. That's why we use UML.

T.
j_d_s 2002-06-16
  • 打赏
  • 举报
回复
我正准备看UML,可是看了大家的高论,我感到,UML就和它的名字一样,就是用一个大家都可以看懂的方式或语言来交流,不管你是否懂得什么专业术语,所以,只要可以交流,沟通就行,不必拘于规定的要求,换句话,就是程序员之间以及程序员和客户之间的世界语言。
这是我来这里的收获,不知道是否正确?请指教!
WUYONG 2002-06-16
  • 打赏
  • 举报
回复
这个论坛里有好多高手,他们不发言无非是因为很多事情不是一两句话能够说得清的。
我不是高手,也许我的想法不那么正确,随便聊聊吧!

UML作为一种建模语言在面向对象设计和开发中到底有什么作用?
UML是一种以面向对象分析设计为基础的建模语言。用例、主角、各种图都是基于面向对象的概念。例如:主角是类,用例、用例图是类的协作,顺序图、交互图都是对象的协作图,类图是类的静态图等等。

在面向对象设计和开发中,怎样得到类?怎样得到类的属性、操作、关系和语义?这就是UML最核心的东西:由需求到分析/设计、由用例模型备到设计模型。

也许一部分人只将UML作为需求建模的工具,只晓得UML里有个用例模型。其实,将用例模型做好,只迈开了万里长征的第一步。90%的工作还在后面:面向对象分析与世纪(OOAD)。(以前不是有篇文章叫《UML的几大硬伤》吗?其作者就只关注了用例模型,后面的OOAD半句没提。)

UML有一套完整的方法论,让你从用例模型进化到分析/设计模型。这个方法论的“实现”,就是RUP的一个子集。
FlyingHero 2002-06-15
  • 打赏
  • 举报
回复
很少有客户能看懂用例图。很多客户好像是看懂了用例图,其实是他们自己不好意思承认看不懂。这样的客户我见过很多。
我觉得不一定非要把最后的需求说明拿给客户看。只要双方多沟通,不存在误解就行了。
AiWangji 2002-06-15
  • 打赏
  • 举报
回复
dongyingtao(dongyingtao)
用户当然最熟悉的是他们自己领域的习惯描述方法(他们的
行业标准)唠。为什么一定要知道UML的用例图?况且完整的
用户需求用UML描述的话,除了用例图,还会包括状态图、
顺序图和协作图等一些列图,这些一般用户都会完全懂吗?

好的系统分析员,是用用户的语言和用户进行沟通,进行需求确认,
然后将沟通的结果(需求)用UML(或其他方式)描述给后续者
进行进一步的建模。系统分析员是用户和软件开发者的桥梁。
而UML作为软件建模语言,它的重点还是为了我们业内人士的内部
沟通用的。
gmleon 2002-06-15
  • 打赏
  • 举报
回复
小弟刚刚这个学期学完了软件工程这个科目.因为我们主要的学习就是如何系统地开发,尤其是团队合作.我们学习的就是使用UML和画各种图,象:CLASS DIAGRAM, COLLABORATION DIAGRAM, 学完了之后,真的受益匪浅.

使用UML图形表示,首先是快捷和便利.在Analyzing和Designing Stages, 非常方便和Customers沟通.因为实际的客户通常都不是具备Programming能力的,所以如果使用我们的一些术语(这个在程序员之间非常方便,以至于大家都不知道怎样用非专业的语言去描述问题),客户就很难理解.用UML可以快速画草图,给人很直观.这个是在初期开发过程中频繁使用的原因.
而且,使用UML非常直观,因为是图形,基本不需要任何编程语言的介入,所以不会被任何语言自身的表达能力所限制.
其次,使用UML可以快速修改.在实际开发的初期过程中,通常是软件完全没有定型,而因此需要经常的跟客户沟通,所以改动也是非常频繁.因为是图形,UML可以快速被改动.

这种Graphical Design Language和Mathematical Design Language搭配使用,可以精确建模(Modeling),所以在系统软件开发中,使用比较多.

象我们吧,在这个学期就是团队合作开发由其他组提出的需要项目.使用了Graphical Method,一开始很不习惯,恨不得马上开始写代码,可是当我们按照程序,老实的使用UML等方法开发,然后再写代码的时候,才发现开发程序,真的很简单.别忘了,在软件工程(Waterfall Model) 里,设计(DESIGN),研究(ANALYZE)可是占到50%的人力时间呢。

以上就是小弟的一些见解。嘿嘿,因为自己实在是学的不怎么样,都是在考试复习中才领悟的,真的感觉相见恨晚。。。也许我写的错漏百出,希望各位高手大侠给予指正。:)
dongyingtao 2002-06-14
  • 打赏
  • 举报
回复
楼上的说用户看用例还是障碍?
有点不理解,用例图本身不就是用图形和自然语言描述系统和用户的关系吗,在这方面用户应该对业务比较清楚呀?怎么会看用例还有障碍呢?那用户原来用什么方式描述他们的业务流程?
我接触实际用户不多,可能理解有误,能不能详细点,举个例子?
ozzzzzz 2002-06-14
  • 打赏
  • 举报
回复
偶现在只用用例 别的还在考虑 不过总是觉得客户看用例还是用障碍
dongyingtao 2002-06-14
  • 打赏
  • 举报
回复
小弟以前一直致力于编写代码,刚刚涉及到真正的软件设计,没什么经验。不知道用过UML的大虾对使用UML来建模的软件设计过程比传统的非面向对象的设计过程有哪些好处,最好能有切身体会!给分不是问题,呵呵!:-)
加载更多回复(6)

1,265

社区成员

发帖
与我相关
我的任务
社区描述
软件工程/管理 管理版
社区管理员
  • 研发管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧