


单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,统一建模语言(,UML,),第,2,章,UML,概述,2.1,为什么需要,UML,计算机图形学的名言:一幅图顶得上一千个字,2.1.1,建模的意义,模型是对现实的简化,建模是为了更好地理解系统模型帮助我们按照实际情况或需求对系统可视化;,(,掌握不了文字,画幅画代替,),模型允许我们详细说明系统的结构、行为;,模型给出了一个构造系统的模板;,模型对我们作出的决策进行文档化先有文档,再有代码),2.1.2,建模的原理,选择创建什么模型对如何动手解决问题和如何形成解决方案有意义深远的影响三只小猪盖房子 摩天大厦,每一种模型可以在不同的精度级别上表示最好的模型可以让你根据观察的角色及原因选择它的详细程度对每个系统最好用一组几乎独立的模型去处理飞机模型,2.1.3,选择,UML,使用,UML,建立对象模型来映射现实世界,UML,实现业务域到计算机世界的完整、有序的映射,2.1.3,选择,UML,UML,Unified Modeling Language,Unified,组合了当前最好的面向对象软件建模方法,Grady Booch,,,James Rumbaugh,,,Ivar Jacobson,,,UML,三位主要贡献者,1.OMT,(,James Rumbaugh,),2.The Booch method,(,Grady Booch,),3.OOSE,(,Ivar Jacobson,),Modeling,用于表达现实的简化视图,以便于面向对象软件系统的设计与实现,Language,UML,主要是遵循精确语法的图形语言(还包括规则 约束 扩展机制),2.1.3,选择,UML,2.1.3,选择,UML,UML,目标:提供全面的建模语言(为所有事情所有人),便于开发组所有成员交流与通信。
2.1.3,选择,UML,Unified,Modeling,Language,其它方法,Booch91,OMT-1,OOSE,Booch93,OMT-2,Unified Method 0.8,UML 0.9&0.91,UML 1.0,UML 1.1,UML 1.3,UML 1.4,(使用非常多的一个版本),UML 1.5,UML 2.0,UML,合作伙伴意见,2.2 UML,的发展历史,95,96.6,和,96.10,97.1,97.9,99.6,01.9,03.3,最新,OMG,P67 www.OMG.org,2.3 UML,的特点,统一的标准,已经被,OMG,接受为标准建模语言,面向对象,支持面向对象开发,可视化,表示能力强,独立于开发过程,可以适用于不同软件过程,概念明确,表示简洁,结构清晰,容易学习掌握,理解,UML,的特点,UML,是一种语言,遵循特定的规则,允许创建各种模型,并不告诉设计者需要创建哪些模型,自己不断总结探索,并不提供开发过程,即:什么时候该创建什么图,这个模型怎么用,,UML,并不给出指导,由,Unified Process,给出,,Unified Process,不是本课程重点。
软件工程三要素:方法(,UML,)、工具(,rose,)、过程(,Unified Process,),UML,是可视化语言,UML,是图形化语言,图形便于交流(一幅图抵上千文字),理解,UML,的特点,UML,是用于构造系统或理解系统的语言,UML,既支持正向工程,又支持反向工程,UML,是文档化语言,将所构造的系统用图形方式记录下来,便于新程序员跟进,开发产品新版本时很有用,2.4 UML,的构成,基本构造块,规则,公共机制,2.4.1,基本构造块,事物(元素),thing,模型中最具代表性成分的抽象,关系,relationship,事物之间的联系,图,diagram,相关事物的集合,事物(,Thing,),P68,结构事物(,structural thing,),类(,class,),接口(,interface,),协作(,collaboration,),用例(,use case,),主动类(,active class,),构件(,component,),节点(,node,),事物(,Thing,),行为事物(,Behavioral Thing,),交互(,interaction,),状态机(,state machine,),事物(,Thing,),分组事物(,Group Thing,),包(,package,),注释事物(,Annotational thing,),注解(,note,),关联(,association,),泛化(,generalization,),实现(,realization,),依赖(,dependency,),关系(,relationship,),图(,diagram,),用例图(,use case diagram,),顺序图(,sequence diagram,),协作图(,collaboration diagram,),类图(,class diagram,),对象图(,object diagram,),活动图(,activity diagram,),状态图(,state chart diagram,),构件图(,component diagram,),部署图(,deployment diagram,),用例图(,use case diagram,),类图(,class diagram,),顺序图(,sequence diagram,),协作图(,collaboration diagram,),活动图(,activity diagram,),描述多个,对象状态,的变化,状态图(,state chart diagram,),仅描述,一个,对象,构件图(,component diagram,),部署图(,deployment diagram,),2.4.2,通用机制,规范说明(,specification,),元素语义的文本描述,用来描述细节,图则是可视化描述,修饰(,adornment,),对标准的表示,符号增加细节描述,2.4.2,通用机制,通用划分(,common division,),类和对象,接口和实现,2.4.2,通用机制,扩展机制(,extensibility mechanism,),版型(,stereotype,),根据已有的元素修订的新元素。
2.4.2,通用机制,扩展机制(,extensibility mechanism,),标记值(,tagged value,),模型元素附加的命名信息,任何元素都可使用有时候和注解起到相同作用2.4.2,通用机制,扩展机制(,extensibility mechanism,),约束(,constraint,),语义文字描述的语义限制,2.5 UML,的体系结构,4+1,视图模型,逻辑视图,(Logical View),实现视图,(Implementation View),进程视图,(Process View),部署视图,(Logical View),用例视图,(Use Case View),表示系统功能性需求,表示系统的概念设计和子系统结构等,说明代码的结构,说明系统中并发执行和同步情况,定义硬件结点的物理结构,2.5 UML,的体系结构,用例视图 (,UML,是用例驱动的),描述系统的功能需求,逻辑视图,表示系统的概念设计和子系统结构,进程视图(并发视图),系统中并发执行和同步的情况,实现视图,系统构件、代码的组成结构,部署视图,系统硬件节点的物理结构,视图是,UML,中图的组合,用户还可根据需要自己定义视图,2.6 UML,的应用领域,UML,最常用的是进行软件系统建模,企业信息系统,银行金融服务,电信、交通、零售,基于,Web,的服务,UML,还可以描述非软件系统,如机构组成或工作流等,UML,可以应用于系统开发的各个阶段,2.7,支持,UML,的工具,Rational Rose,(市场占用率较高),Sybase PowerDesigner,Microsoft visio,Borland Together,2.8,一个,UML,的例子,import java.awt.Graphics;,class HelloWorld extends java.applet.Applet,public void paint(Graphics g),g.drawString(“Hello,World!”,10,10);,HelloWorld,类图,1,类,注释,HelloWorld,类图,2,继承关系,依赖关系,HelloWorld,构件图,小结,理解建模的意义,在系统分析和设计时,,UML,作用非常重要。
了解,UML,发展历史,最初由三位专家设计,,UML,的出现结束了,OO,领域中的方法大战理解,UML,的特点,了解,UML,的组成,理解,UML,的体系结构,谢谢观看,。