收藏 分销(赏)

敏捷软件开发第七讲-UML概述.ppt

上传人:pc****0 文档编号:13738695 上传时间:2026-04-07 格式:PPT 页数:43 大小:3.22MB 下载积分:10 金币
下载 相关 举报
敏捷软件开发第七讲-UML概述.ppt_第1页
第1页 / 共43页
敏捷软件开发第七讲-UML概述.ppt_第2页
第2页 / 共43页


点击查看更多>>
资源描述
Page,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,HUAWEI TECHNOLOGIES CO.,LTD.,Page,*,单击此处编辑母版标题样式,Huawei Confidential,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Thank you,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,英文目录标题,:35-40pt,颜色,:R153 G0 B0,内部使用字体,:,FrutigerNext LT Medium,外部使用字体,:Arial,中文目录标题,:35-40pt,颜色,:R153 G0 B0,字体,:,黑体,英文目录正文,:28-30pt,子目录,(2-5,级,):20-30pt,颜色,:,黑色,内部使用字体,:,FrutigerNext LT Regular,外部使用字体,:Arial,中文目录正文,:28-30pt,子目录,(2-5,级,):20-30pt,颜色,:,黑色,字体,:,细黑体,HUAWEI TECHNOLOGIES CO.,LTD.,Huawei Confidential,Security Level:Internal Public,*,HUAWEI TECHNOLOGIES CO.,LTD.,Page,*,单击此处编辑母版标题样式,Huawei Confidential,英文标题,:32-35pt,颜色,:R153 G0 B0,内部使用字体,:,FrutigerNext LT Medium,外部使用字体,:Arial,中文标题,:30-32pt,颜色,:R153 G0 B0,字体,:,黑体,英文正文,:20-22pt,子目录,(2-5,级,):18pt,颜色,:,黑色,内部使用字体,:,FrutigerNext LT Regular,外部使用字体,:Arial,中文正文,:18-20pt,子目录,(2-5,级,):18pt,颜色,:,黑色,字体,:,细黑体,配色参考方案:,建议同一页面内不超过四种颜色,以下是,13,组配色方案,同一页面内只选择一组使用。(仅供参考),客户或者合作伙伴的标志放在右上角,.,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Thank you,HUAWEI TECHNOLOGIES CO.,LTD.,Page,*,单击此处编辑母版标题样式,Huawei Confidential,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第七讲:,UML,概述,目录,UML,(统一建模语言),UML,图,UML,语法描述,有效使用,UML,图,UML,使用原则,总结,UML,(统一建模语言),UML,(统一建模语言),是一个绘制软件概念图的图形化记法,(notation),。人们可以用,它绘制,图形,用这些图形来表示一个计划进行的软件设计的问题域,或者用这些图来表示一,个已经,完成的软件实现,。,Fowler,描述,它们时分成了三种不同的层次:,概念层(,Conceptual,)、规格说明层(,Specification,)和实现层(,Implementation,),,现在将,细述后面两种。,UML,(统一建模语言),规格说明,层和实现层的图形与源代码有明显的关系,实际上,规格说明层的图是,准备,用来,转换成成源代码,的,类似地,实现层的图是打算用来,描述已经存在的源代码的,。在这些,层次,的图形,有许多规则和语义学要遵从,这些图较少有歧义,基本上都有严格的格式,。,UML,(统一建模语言),在另外一方面,概念层上的图形与源代码没有什么严格的关系,它们与人类自然语言相关。它们是用来描述有关已经存在的人类的问题领域的概念和抽象的速记。它们无须遵从严格的语义规则,因此它们的意思理解会有歧义、主题可被,解释,。例如下面是一,个概念层次的,UML,图:,UML,中的图形,UML,有三类主要的图,,静态图,(static diagrams),描述了那些不发生变化的软件元素,的逻辑,结构,描绘了类、对象、数据结构及其存在于它们之间的关系。,动态图,(,Dynamic diagrams,),展示了在运行期间的软件实体的变化,描绘了执行流程、实体改变状态的方式。,物理图,(Physical diagrams),显示了软件实体的不变化的物理结构,,描绘库,文件、字节文件、数据文件等等,以及存在于它们之间的关系。,UML,中图形表达的关系,依赖,(dependency,),:,是,两个事物之间的语义关系,其中一个事物(独立事物)发生变化,会影响到另一个事物(依赖事物)的,语义。,关联,(association),:,是,一种结构关系,,,它指明一个事物的对象与另一个事物的对象,间的联系。,泛化,(generalization),:,是,一种特殊,/,一般的关系。也可以看作是常说的继承,关系。,实现,(realization),:,是,类元之间的语义关系,其中的一个类元指定了由另一个类元,保证,执行的,契约。,各,UML,图及特征,用例图,(,Use Case Diagram),用例图是,从用户角度描述系统功能,,是用户所能观察到的系统功能的模型图,用例是系统中的一个功能单元,类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构,(,类的属性和操作,),类图是以类为中心来组织的,类图中的其他元素或属于某个类或与类相关联,类图,(Class Diagram),对象图,(,Object,Diagram,),对象图是类图的实例,,,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,,,而不是实际的类,顺序图,(Sequence Diagram),顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互,顺序图的一个用途是用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或引起状态转换的触发事件,各,UML,图及特征,协作图,(Collaboration Diagram),协作图描述对象间的协作关系,协作图跟顺序图 相似,显示对象间的动态合作关系。除显示信息交换外,协作图还显示对象以及它们之间的关系,.,协作图的一个用途是表示一个类操作的实现,状态图,(State Chart Diagram,),状态图是一个类对象所可能经历的所有历程的模型图。状态图由对象的各个状态和连接这些状态的转换组成,各,UML,图及特征,活动图,(Activity Diagram),活动图是状态图的一个变体,用来描述执行算法的工作流程中涉及的活动,活动图描述了一组顺序的或并发的活动,构,件图,(Compo,n,ent Diagram),构件图为系统的构件建模型,构件即构造应用的软件单元,还包括各构件之间的依赖关系,以便通过这些依赖关系来估计对系统构件的修改给系统可能带来的影响,各,UML,图及特征,部署,图,(Deployment Diagram),部署视图描述位于节点实例上的运行构件实例的安排。节点是一组运行资源,如计算机、设备或存储器。这个视图允许评估分配结果和资源分配,类图,顺序图,需求分析,BD,FD/DD,类图,顺序图,用例图,用例文档,用例图,顺序图,主要,UML,图之间的关系,UML,图的关系,各,UML,图及特征,类,是对一组具有相同属性、相同操作、相同关系和相同语义的对象的描述,对象,接口,是描述了一个类或构件的一个服务的操作集,协作,定义了一个交互,它是由一组共同工作以提供某种协作行为的角色和其他元素构成的一个群体,用例,是对一组动作序列的描述,主动类,对象至少拥有一个进程或线程的类,构件,是系统中物理的、可替代的部件,参与者,在系统外部与系统直接交互的人或事物,节点,是在运行时存在的物理元素,交互,它由在特定语境中共同完成一定任务的一组对象间交换的消息组成,状态机,它描述了一个对象或一个交互在生命期内响应事件所经历的状态序列,包,把元素组织成组的机制,注释事物,是,UML,模型的解释部分,依赖,一条可能有方向的虚线,关联,一条实线,可能有方向,泛化,一条带有空心箭头的实线,实现,一条带有空心箭头的虚线,UML,语法描述,使用图,(Diagrams),为什么用模型,?,问题:为什么工程师要建造模型,(models),?为什么航天工程师要建造航天器的模型?,为什么桥梁,工程师要建造桥的模型?提供这些模型的目的是什么?,有效地使用,UML,UML,在软件开发人员之间传达设计概念是非常方便的。在一小群开发人员中,许多,事情可在一,个白板上进行,。,UML,用于表达集中的设计思想相当不错,,例如下面的类图:,有效地使用,UML,另一方面,在表达算法细节时,UML,不是特别理想,。下面是一个简单,的冒泡排序代码,表达这个简单的,模块使用,UML,图就不是,令人非常满意。,有效地使用,UML,类图只能给,我们一个粗略的结构,但是它不方便、也无法反映出让人,感兴趣,的细节。,有效地使用,UML,序列图,不比代码容易读,况且它还相当难以创建。,有效地使用,UML,UML,在创建大型软件,结构时,作为,“,路标图,”,(roadmaps,),是,比较有用,这样的,“,路标图,”,给,开发人员一个快速的手段,用来发现某一个类依赖于另外哪些类,并为整个系统的结构,的提供,了一个参考。,有效地使用,UML,UML,图需要经过深思熟虑。我们不需要一个有上千页的序列,图,相反,我们需要一个非常明显的描述了系统主要观点的图。没有,UML,图比一个由,许多线,和许多框纠缠在一起组成的混乱的图更糟糕的情况了,,千万不要做出这样的,UML,图。,有效地使用,UML,大多数,UML,图,都是,临时性,的,使用,Case,工具或画图工具作图尽量只用,一次即可。但是符合下列特征的图应该保存下来,最好放在一个,Web,服务器上或一,个网络知识库中。,表现你的系统中一个通用设计解决方案的,图,记录了复杂的协议,难以通过代码了解的,图,提供了比较少涉及到的系统范围内的,“,路标图,”,的,图,记录了比代码更易表述的设计意图的图,迭代精化,如何,建立,UML,呢?是在灵光乍现时去画下他们?是不是一定要先画类图再画序列,图呢,?是不是我们丰富完成了部分细节之前一定要搭建好整个系统的架构呢,?,答案,是:,绝对不是,!,每一个人在一小步的细节上都是做得比较好,并且能够很好地,评估它,,但是无法实现一次大的跳跃,。,因此,想要建立,非常有用的,UML,图,,应该在迭代的每,一,小步中设计它们。,迭代精化,行为,(Behavior),优先,举,一个例子,,设计一个个,控制便携式电话的,软件完成,一个,电话呼叫的软件。,先开始画一个,有关问题的简单序列图:,首先想象,一下,软件检测到每一个按钮的操作,然后发一个消息给控制拨号的对象。画了一个,Button,的对象和一个,Dialler,对象,并且显示出,Button,对象发一个,digit,消息给,Dialler,对象。,迭代精化,行为,(Behavior),优先,当,Dialler,接收到这个,digit,消息的时候,它将做什么呢?是的,它需要在一个屏幕上,显示,数字出来。因此,也许它将发送一个,displayDigit,消息给,Screen,对象。,迭代精化,行为,(Behavior),优先,接下来,,这个,Dialler,对象最好从扬声器中发一个拨号音,因此,我们将发送一个,tone,消息,给,Speaker,对象。,迭代精化,行为,(Behavior),优先,有时,用户将按,“,发送,”,按钮要完成呼叫,这时,我们将指示便携式电话连接到无线网络,,并发,送出被拨打的电话号码。,迭代精化,行为,(Behavior),优先,当连接被建立后,这个,Radio,对象能够告诉,Screen,对象去显示出,“,使用中,”,的指示,状态,。这个消息将被在另外一个控制线程中被发出,(,它将会用序列号前面的字符来描述,),。最后,的协作图将如下,图所,示:,迭代精化,检查结构,建立,支持这个协作图的类图,这个类图将会为协作图中的每一个对象建立一个类,(class),,建立针对协作之间联接的,联系。,迭代精化,检查结构,前的类图设计,Button,对象要依靠,Dialler,对象,会导致出现这样的代码:,迭代精化,检查结构,为了打破,Button,对,Dialler,的依赖,并允许,Button,被实际使用于需要接到到,按钮按下,操作的任何地方,。改进设计:,迭代精化,检查结构,为什么,Dialler,会,有一个叫做,buttonPressed,的方法是很奇怪的。通过用一批小的适配器可以解决这个问题,解除所有没有意义的标记,。再次改进设计:,迭代精化,检查结构,当做图,的时候能够想象到你的代码是极其重要的。我们把图当作了解代码的一条捷径,并不是,替代,代码。,如果画,着图但是不能想像出它代表着什么样的代码,你是正在空气中建筑着城堡,。停下来,你正在做的,想想如何如能将它可以转化成代码。不要为了,图而画图,,代码,才是你要表现,的。,迭代精化,检查结构,经过一系列的结构检查,最初的序列图明显不合用了,最终版本演变为:,UML,使用原则,画,UML,图是一种非常有用的活动,它也可能成为一种浪费时间的、可怕的,活动,因为,UML,图不是源代码,也不能视作方法、变量和,关系,声明,。使用,UML,的决定是一件好事,也可能成为一件坏事。它依赖你确定怎么使用、多大范围内的,使用,它,。,不要,制定什么都必须画图的规则,这样的规则将比不用更糟糕。项目的大量,时间被,浪费在追逐那个根本没有人去读的图上。,UML,使用原则,什么时候画图,:,当许多人需要,同时进行开发时,这些人需要都理解一个系统的特定部分的,设计结构,时,开始画图。当所有的人都已经声明理解了的时候,结束画图。,当两个人或更多人不同意一个特定的元素如何设计的时候,你需要你的团队意见,一致,的时候,要找一个时间进行讨论做出决定,比如投票,或一个公正的宣告的,方式进行,,,这时需要,画图。当决定做出来后,擦掉这些图。,当需要,探讨一个设计的想法时,画图能够帮你更好的地思考。当你得到了能够,帮助,你完成思考的代码的要点的时候,扔掉这些图,。,UML,使用原则,什么时候画图,:,当你需要向其他人或自己解释一部分代码的结构的时候,你可以画图。当你觉得,其实,最好看代码来进行解释的时候,停止,画图。,当项目快要结束,顾客需要你将图与其他文档一起提供的时候,,开始画图。,UML,使用原则,什么,时候,停止,画图:,不要因为觉得过程需要而,画图。,不要,因为觉得,一个好的,设计者就必须画图、不要因为不,画图反而感觉有罪的想法而,去画图,。好的设计者只有在需要的时候才去编写代码和,画图。,不要在编码之前的设计阶段去为创建全面的文档而画图,这样的文档基本没有,意义并且,将会浪费大量的时间,。,不要为了其他人编码而去画图。真正的软件构架师将去实现自己的设计的编码。,这样能把设计工作简单明了化。,总结,一些,人站在白板前能够使用,UML,他们更好地思考一个设计问题,。,UML,图,将会在一个极短周期内以迭代的方式创建。最好首先研究动态场景,然后确定静态结构的内在涵义,。在非常,短的迭代周期内,同时完善动态图或静态图是相当重要,的。,UML,是一种工具,工具本身不是最终的目的。作为一种工具,它能够帮助你,思考你的设计,和,在团队间进行有效的信息,传达,。有节制,地使用它们,它们将给你极大的帮助。如果滥用它的话,,它,将极大地浪费你的时间。当用到,UML,的时候,尽量,精简。,附录,UML,学习参考书籍,附录,UML,学习参考书籍,1.,用例驱动,UML,对象建模应用,范例分析,Doug Rosenberg,、,Kendall Scott,著,人民邮电出版社,,2005,。,2.UML,精粹,标准对象建模语言简明指南,(第,3,版),Martin Fowler,著,徐家福 译,清华大学出版社,,2005,。,3.UML,对象、组件和框架,Catalysis,方法,Desmond Francis D,Souza,、,Alan Cameron Wills,著,清华大学出版社,,2004,。,4.UML,和模式应用,(第,2,版),Craig Larman,著,机械工业出版社,,2004,。,5.,有效用例模式,Steve Adolph,Paul Bramble,著,车立红 译,清华大学出版社,,2003,。,6.,用例建模,,,Kurt Bittner,著,姜昊 译,清华大学出版社,,2003,7.UML,和统一过程实用面向对象的分析和设计,Jim Arlow,Ila Neustadt,,机械工业出版社,,2003,。,8.UML,风格,Scott W.Ambler,著,王少峰 译,清华大学出版社,,2004,。,9.UML,用户指南,Grady Booch,,,Ivar Jacobson,著,邵维忠等译,机械工业出版社,,2001,年,6,月。,10.UML,参考手册,Ivar Jacobson,,,James Rumbaugh,。姚淑兰,唐发根译。机械工业出版社,,2001,。,附录,UML,建模工具,1.,2.,3.,4.,需求分析,BD,FD,DD,用例图,类图,顺序图,活动图,对象图,协作图,状态图,构件图,部署图,:最适用:适用:可能适用:不适用,附录 各个阶段用到,UML,模型图,附录,UML,全部图的关系,用例图,用例文档,用例图,用例文档,对象图,状态图,构件图,类图,活动图,部署图,活动图,部署图,对象图,类图,状态图,协作图,顺序图,协作图,顺序图,活动图,部署图,需求分析,BD,FD/DD,全部图之间的关系,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服