




已阅读5页,还剩88页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020/5/8,1,第二章统一建模语言UML,本章目的:,掌握UML特点和基本图标元素的表示符掌握UML软件系统体系结构的五种视图和九种基本图了解UML的用例模型、静态模型、动态模型的简单建模方法了解UML的系统体系结构模型掌握UML与软件开发统一过程,2020/5/8,2,2.1UML模型系统体系结构,2.1.1UML的诞生与发展2.1.2UML的主要特点2.1.3软件系统体系结构的描述2.1.4UML模型元素,2020/5/8,3,2.1.1UML的诞生与发展,20世纪70年代出现了面向对象的程序设计语言。20世纪80年代,出现了面向对象的建模语言。在1989年到1994年期间,面向对象的方法从不到十种增加到了五十多种;一些方法脱颖而出,包括Booch方法、OMT和OOSE等方法;其他的方法还有Fusion方法、Shlaer-Mellor方法和Coad-Yourdon方法经过Booch、Rumbaugh和Jacobson三人的共同努力,于1996年发布了UML(UnifiedModelingLanguage)。,2020/5/8,4,UML的标准化,1997年11月14日,UML1.1版本被OMG(对象管理组织)采纳为标准,并陆续修订颁布了1.3、1.4和1.5等版本。2000年-2003年,UML2.0版本问世。2005年,UML2.0标准版本被OMG采纳。,BoochRumbaughJacobson,2020/5/8,5,UML的形成过程,2020/5/8,6,2.1.2UML的主要特点,统一的标准UML是被OMG接受为标准,越来越多的开发人员使用UML进行软件开发,越来越多的厂商支持UML。面向对象是支持OO软件开发的建模语言。可视化、表达能力强(概念明确)建模表示法简洁,图形结构清晰,可视化、表示能力强大,容易掌握和使用。独立于过程UML不依赖于特定的软件开发过程。,2020/5/8,7,可视化,UML通过它的元模型和表示法,把那些通过文字或其他表达方法很难表达清楚的、隐晦的潜台词用简单直观的图形表达和暴露出来,准确而直观地描述其复杂的含义。例如:造一辆车身是红色金属漆的小轿车,装备四个普利司通牌子的轮胎,它是一辆四门车,车门时加厚的,并且前后门玻璃上贴黑色的膜。前后挡风玻璃里都装有电热丝,后视镜是电动可调的。,2020/5/8,8,2020/5/8,9,UML模型系统体系结构,UML构成,2020/5/8,10,事物,关系,结构事物,行为事物,分组事物,辅助事物,关联关系,依赖关系,泛化关系,实现关系,用例,类,接口,协作,主动类,组件,节点,状态机,交互机,包,注释,模型元素,UML,聚合关系,通用机制,视图,2020/5/8,11,2020/5/8,12,2020/5/8,13,描述系统的功能需求,找出用例和执行者;客户、分析者、设计者、开发者和测试者;描述用图:用例图和活动图;重要性:系统的中心,它决定了其他视图的开发,用于确认和最终验证系统。,1用例视图,2.1.3软件系统体系结构的描述,2020/5/8,14,2逻辑视图,描述如何实现系统内部的功能;分析者、设计者、开发者;类图和对象图、状态图、顺序图、合作图和活动图;重要性:描述了系统的静态结构和因发送消息而出现的动态协作关系。静态结构:类图、对象图动态行为:状态图、活动图、时序图、协作图,2020/5/8,15,描述系统代码构件组织和实现模块,及它们之间的依赖关系;设计者、开发者;构件图;描述系统如何划分软件构件,如何进行编程。,3构件视图,2020/5/8,16,描述系统的并发性,并处理这些线程间的通信和同步;开发者和系统集成者;状态图、顺序图、合作图、活动图、构件图和配置图;将系统分割成并发执行的控制线程及处理这些线程的通信和同步。,4进程视图,2020/5/8,17,描述系统的物理设备配置;开发者、系统集成者和测试者;配置图;描述硬件设备的连接和哪个程序或对象驻留在哪台计算机上执行。,5配置视图,2020/5/8,18,2020/5/8,19,高级语言程序设计,2.1.4UML模型元素,2020/5/8,20,事物,关系,结构事物,行为事物,分组事物,辅助事物,关联关系,依赖关系,泛化关系,实现关系,用例,类,接口,协作,主动类,组件,节点,状态机,交互机,包,注释,模型元素,UML,聚合关系,通用机制,视图,2020/5/8,21,1构件事物:UML模型的静态部分,描述概念或物理元素它包括以下几种:类:具有相同属性相同操作相同关系相同语义的对象的描述接口:描述元素的外部可见行为,即服务集合的定义说明协作:描述了一组事物间的相互作用的集合用例:代表一个系统或系统的一部分行为,是一组动作序列的集合构件:系统中物理存在,可替换的部件节点:运行时存在的物理元素另外,参与者、信号应用、文档库、页表等都是上述基本事物的变体2行为事物:UML模型图的动态部分,描述跨越空间和时间的行为交互:实现某功能的一组构件事物之间的消息的集合,涉及消息、动作序列、链接状态机:描述事物或交互在生命周期内响应事件所经历的状态序列3分组事物:UML模型图的组织部分,描述事物的组织结构包:把元素组织成组的机制4注释事物:UML模型的解释部分,用来对模型中的元素进行说明,解释注解:对元素进行约束或解释的简单符号,2020/5/8,22,关联:连接(connect)模型元素及链接(link)实例。依赖:表示一个元素以某种方式依赖于另一种元素。泛化:表示一般与特殊的关系,即“一般”元素是“特殊”关系的泛化。聚合:表示整体与部分的关系。,2020/5/8,23,关系(Relationships),关系是将事物联系在一起的方式,UML中定义了四种关系:,2020/5/8,24,类之间的关系-泛化关系,在UML中,泛化关系用来表示类与类,接口与接口之间的继承关系.泛化关系有时也称为”isakindof”关系在UML中泛化关系用一条实线空心箭头有子类指向父类,2020/5/8,25,类之间的关系-实现关系,在UML中,实现关系用来表示类与接口之间的实现关系.在UML中实现关系用一条虚线空心箭头由子类指向父类,2020/5/8,26,类之间的关系-依赖关系,对于两个相对独立的系统,当一个系统负责构造另一个系统的实例,或者依赖另一个系统的服务时,这两个系统之间体现为依赖关系.例如生产零件的机器和零件,机器负责构造零件对象;充电电池和充电器,充电电池通过充电器来充电;自行车Bicycle和打气筒Pump,自行车通过打气筒来充气在现时生活中,通常不会为某一辆自行车配备专门的打气筒,而是在需要充气的时候,从附近某个修车棚里借个打气筒打气。在程序代码中,表现为Bicycle类的expand()方法有个Pump类型的参数。以下程序代码表示某辆自行车先后到两个修车棚里充气:,2020/5/8,27,类之间的关系-关联关系,对于两个相对独立的系统,当一个系统的实例与另一个系统的一些特定实例存在固定的对应关系时,这两个系统之间为关联关系。例如客户和订单,每个订单对应特定的客户,每个客户对应一些特定的订单;公司和员工,每个公司对应一些特定的员工,每个员工对应一特定的公司;自行车和主人,每辆自行车属于特定的主人,每个主人有特定的自行车。而充电电池和充电器之间就不存在固定的对应关系,同样自行车和打气筒之间也不存在固定的对应关系。Person类与Bicycle类之间存在关联关系,这意味着在Person类中需要定义一个Bicycle类型的成员变量,2020/5/8,28,类之间的关系-关联关系,在现时生活中,当骑自行车去上班时,只要从家里推出自己的自行车就能上路了,不象给自行车打气那样,在需要打气时,还要四处去找修车棚。因此,在Person类的goToWork()方法中,调用自身的bicycle对象的run()方法。假如goToWork()方法采用以下的定义方式:,那就好比去上班前,还要先四处去借一辆自行车,然后才能去上班。,依赖,2020/5/8,29,关联关系的名称,关联关系的名称:关联关系可以有一个名称,用于描述该关系的性质.此关联名称应该是动词短语,因为它表明源对象正在目标对象上执行动作.,2020/5/8,30,关联关系的角色,当一个类处于关联的某一端时,该类就在这个关系中扮演一个特定的角色.具体来说,角色就是关联关系中一个类对另一个类所表现的职责.角色名称是名词或名称短语.,2020/5/8,31,关联关系的多重性,关联关系的多重性是指有多少对象可以参与该关联,多重性可以用来表达一个取值范围,特定值,无限定的范围.,2020/5/8,32,关联关系-聚合关系,聚合关联是一种特殊的关联.它表示类间的关系是整体与部分的关系.简言之:关联关系中的一个类描述了一个较大的事物,它由较小的事物组成.聚合关系描述了“hasa”的关系,即整体对象拥有部分对象整体和部分之间用空心菱形箭头的连线连接,箭头指向整体,2020/5/8,33,关联关系-组成关系,组合关系是更强形式的聚合.组合关系中,整件拥有部件的生命周期,所以整件删除时,部件一定会跟着删除.而且,多个整件不可以同时共享同一个部件。聚合关系中,整件不会拥有部件的生命周期,所以整件删除时,部件不会被删除.再者,多个整件可以共享同一个部件.UML中组成关系用实心的菱形实线表示,2020/5/8,34,关联关系-导航性,导航性表示可从源类的任何对象到目标类的一个或多个对象遍历.即:给定源类的一个对象,可以得到目标类的所有对象.可以在关联关系上加上箭头表示导航方向.只在一个方向上可以导航的关联称为单向关联,用一个带箭头的方向表示;在两个方向上都可以导航的关联称为双向关联,用一条没有箭头的实线表示.,2020/5/8,35,2.2UML系统模型与建模,2.2.1用例模型及组成成分2.2.2静态模型与系统体系结构建模2.2.3动态模型与行为控制流建模,2020/5/8,36,2.2UML系统模型与建模,三大类九种图表示,用例模型图:由用例图组成。静态模型图:由类图、对象图、包图、构件图和配置图组成。动态模型图:由活动图、顺序图、状态图和合作图组成。,2020/5/8,37,2.2.1用例模型及组成成分,用例模型描述的时外部执行者所理解的系统功能。用例模型有若干用例图组成。用例图从用户的角度出发描述系统的功能需求,展示系统外部的各类角色与系统内部的各种用例之间的关系。用例模型驱动需求分析之后各阶段的开发。,2020/5/8,38,静态模型:指对系统中对象之间相互进行的联系构建模型,这些关系不随时间发生变化。UML系统建模用于描述系统体系机构。1类图(Classdiagram)类图描述系统所包含的类、类的内部结构及类之间的关系类图是逻辑视图的重要组成部分,用于对系统的静态结构建模。,2.2.2静态模型与系统体系结构建模,2020/5/8,39,类的图符分为长式和短式。如图2.5长式由类名、属性和操作三部分组成。类及类型名均用英文大写字母开头;属性和操作名为小写字母开头。,2020/5/8,40,2对象图diagram),对象图是类图的一个具体实例对象图符中对象名加了下划线.图2.6类图与对应的对象图.,2020/5/8,41,3包图,包是一组分组机制,有一组关系密切的模型元素构成。包可以嵌套。包图是维护和控制系统总体结构的重要建模工具。包的内容:构成包的模型元素。包用于模型的组织管理时,称为子系统。包图表明包及其之间的依赖关系。,2020/5/8,42,2020/5/8,43,4构件图,组件图显示代码本身的逻辑结构,它描述系统中存在的软件构件以及各构件之间的依赖关系。构件是系统体系结构中独立的物理可替换单位。构件可以看成是包与类对应的物理代码模块,逻辑上与包和类对应,实际上是一个文件。,2020/5/8,44,2020/5/8,45,5配置图,配置图描述系统中软件和硬件的配置情况和系统体系结构,显示系统运行时刻的结构。配置图有结点和连接。结点指实际的物理设备及在该结点上运行的构件或对象。节点是一组运行期间的系统资源,如计算机、数据库、设备或存储器。描述一组节点及其关系,允许评估分配结果和资源分配。,2020/5/8,46,2020/5/8,47,动态模型主要描述系统的动态行为和控制结构。动态行为包括:对象生存期内的状态及状态迁移;对象之间动态合作关系,显示对象间交互过程和交互顺序;描述为面组用例所进行的活动及活动间的约述关系。动态模型包括:状态图、活动图、顺序图、合作图。,2.2.3动态模型与行为控制流建模,2020/5/8,48,1顺序图(SequenceDiagram),用来描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。顺序图的一个用途是用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或引起状态转换的触发事件。两个轴:水平轴对象;垂直轴时间;垂直虚线生命线,表示某段时间内对象存在。箭头:消息细长矩形框:表示对象的激活状态,2020/5/8,49,2020/5/8,50,2合作图,描述对象间的协作关系,协作图跟顺序图相似,显示对象间的动态合作关系。除显示信息交换外,协作图还显示对象以及它们之间的连接关系.合作图画成对象图,消息箭头表示对象间的消息流向,消息箭头必须附加标记,说明消息发送的先后顺序。协作图的一个用途是表示一个类操作的实现。,2020/5/8,51,2合作图,2020/5/8,52,3状态图,状态图是对类的一种补充描述,它展示了此类对象所具有可能的状态以及某些事件发生时其状态的转移情况。与交互图不同,交互图对共同工作的对象群体的行为建模,而状态图对单个对象的状态变化行为建模。事件状态迁移迁移动作,2020/5/8,53,4活动图,活动图是状态图的一个变体,用来描述执行算法的工作流程中涉及的活动活动图描述了一组顺序的或并发的活动可以描述操作的行为;也可以描述用例和对象的内部工作过程。状态图事件触发;活动图一个活动结束自动进入下一活动。,2020/5/8,54,活动图,2020/5/8,55,上述十种模型图可归纳为五种类型用例图:用例图静态图:类图、对象图、包图交互图:顺序图、协作图行为图:状态图、活动图实现图:组件图、部署图,2020/5/8,56,2.3UML系统体系结构模型,2.3.1子系统组织的系统体系结构2.3.2系统模型组织的系统体系结构2.3.3系统体系结构模型的描述方式,2020/5/8,57,2.3.1子系统组织的系统体系结构,子系统是描述系统某个行为的相对独立的抽象单位。每个子系统都有自己独立的接口,通过接口各个子系统相互交换信息,协同工作。子系统用“包”图符元素加上构造型表示;子系统也可以用右上角带有分支图形的“包”图符元素表示。,2020/5/8,58,如果采用由子系统包描述系统的体系结构图,其最底层(叶结点)元素必须由模型包描述。而模型包一般用右上角带三角图形的图标元素“包”表示。图216不是一个完整的由子系统包组成的系统体系结构图。,2020/5/8,59,2.3.2系统模型组织的系统体系结构,UML中,系统模型一般用右上角带有三角图形的“包”图符元素表示,并且可以在模型名上标注构造性,2020/5/8,60,2.3.3系统体系结构模型的描述方式,在UML中,一个系统体系结构层次可以用两种描述方式:基于模型的系统体系结构层次基于子系统的系统体系结构层次,2020/5/8,61,2020/5/8,62,在用包描述一个多层的系统体系结构时,在较高的各层次结构中既可以用模型包作为元素,也可以用子系统包作为模型元素。但在最底层只能用模型包作为元素。一般为了简便采用简单的包图(不带分支或三角图符的包)来建立系统的体系结构。,2020/5/8,63,2.4UML的扩展、调整机制,2.4.1模型元素的分类与标记2.4.2模型元素的特性规格说明2.4.3模型元素的语义扩展与约束,2020/5/8,64,2.4UML的扩展、调整机制,2020/5/8,65,UML的公共机制,2020/5/8,66,2020/5/8,67,特性规格说明,2020/5/8,68,2.4UML的扩展、调整机制,2.4.1模型元素的分类与标记,2020/5/8,69,2.4.2模型元素的特性规格说明,2020/5/8,70,2.4.3模型元素的语义扩展与约束,2020/5/8,71,UML的建模原则,2020/5/8,72,小结,2020/5/8,73,2.5UML与软件开发统一过程,2020/5/8,74,RUP的特点,RUP的二维开发模型RUP可以用二维坐标来描述。横轴通过时间组织,是过程展开的生命周期特征,体现开发过程的动态结构;纵轴以内容来组织,是自然的逻辑活动,体现开发过程的静态结构。,2020/5/8,75,2.5.1迭代、渐增式的开发过程,1开始阶段主要确定项目的范围和目标,并进行可行性分析。理解问题领域的各种业务过程及其关系考虑和分析项目成本及可能得到的效益和风险明确待开发项目的意义和价值确定是否要开发此项目,2020/5/8,76,2详细规划阶段,收集详细的系统需求,进行高层次的系统分析和系统设计。对问题领域和功能作详细分析,画用例图。建立系统的基础体系结构。进行风险分析,并制定对策。制定开发计划,2020/5/8,77,制订计划包括:,(1)用例分类1)将用例的优先级分为三级。2)体系结构方面的风险的风险。3)进度风险(对实现每个用例所需工作量估算的评价)分为三级。(2)确定每次迭代的开发周期迭代周期;周期的长短;迭代次数(3)将用例分配到各次迭代中高优先级,高体系结构风险和高进度风险的用例尽早实现。,2020/5/8,78,4移交阶段,3系统构造阶段,渐增式开发集成测试测试演示保存测试案例,2020/5/8,79,2.5.2软件开发步骤及核心支持活动,1需求分析业务模型和用户需求分析模型2系统设计高层设计:定义子系统详细设计:细化包的内容,规格说明。3实现设计模型图和规约转换成程序代码4测试5配置,2020/5/8,80,6核心支持工作,(1)配置与变化管理(2)项目管理(3)环境设置,2020/5/8,81,2.5.3UML软件开发过程产生的模型与文档,1模型(1)业务模型:建立问题领域的组织结构和业务流程的抽象。描述方式:需求分析规格说明书。(2)领域模型:建立问题领域的需求分析说明。描述方式:需求分析规格说明书。(3)用例模型:表达系统的功能。描述方式:用例图、活动图及需求分析规格说明书。,2020/5/8,82,基本功能分析;实现功能的对象;对象之间的关系;,4)分析模型(任选):只有复杂的系统才需要建立独立的分析模型。该模型包括:,描述方式:类图、对象图、包图、顺序图、合作图、状态图和活动图。,2020/5/8,83,(5)设计模型:系统具体解决方案,由调整和完善分析模型而成。描述方式:类图、对象图、包图、顺序图、合作图、状态图和活动图。,(6)进程模型(任选):描述系统并发和同步机制。有多线程的并发系统才建立。描述方式:状态图、顺序图、合作图、活动图、构件图和配置图。,2020/5/8,84,(8)配置模型:描述系统软件在各个硬件上的配置。描述方式:配置图。,(9)测试模型:描述验证系统功能的途径。描述方式:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 砂料机安装外包协议合同
- 生产经营纠纷调解协议书
- 项目部租赁泵车合同范本
- 研发产品转化协议书模板
- 烤肉桌椅转让协议书模板
- 机关食堂承包合同协议书
- 物业服务业务协议书范本
- 焊工培训考试协议书模板
- 空压机租赁转让合同范本
- 阳台栏杆改造安全协议书
- 2025年钻头市场分析现状
- 2025年四级中式烹调师(中级)职业技能鉴定参考试题库(含答案)
- 2025-2030全球及中国精制花生油行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 2025劳动合同范本下载「版」
- 员工内部冲突管理
- 高中家长会 高一下学期期末家长会课件
- 饮料包装设计对销售影响研究-洞察分析
- 医院产房停电应急预案
- 口腔门诊顾客关系管理策略
- 骨痹病护理查房
- 住宅楼排水管道更换施工方案
评论
0/150
提交评论