第2章 UML系统建模与分析设计-统一建模语言UML-36.ppt
第第2章章 UML系统建模系统建模与分析设计与分析设计-统一建模统一建模语言语言UML-362.1 UML模型系统体系结构模型系统体系结构2.1.1 UML2.1.1 UML的诞生与发展的诞生与发展2.1.2 UML2.1.2 UML的主要特点的主要特点2.1.3 2.1.3 软件系统体系结构软件系统体系结构的描述的描述2.1.4 UML2.1.4 UML模型元素模型元素2022/11/522.1.1 UML2.1.1 UML的诞生与发展的诞生与发展20世纪世纪70年代出现了面向对象的程序设计语言。年代出现了面向对象的程序设计语言。20世纪世纪80年代,出现了面向对象的建模语言。年代,出现了面向对象的建模语言。在在1989年到年到1994年期间年期间,面向对象的方法从不到十种增加面向对象的方法从不到十种增加到了五十多种到了五十多种;一些方法脱颖而出,包括;一些方法脱颖而出,包括Booch方法、方法、OMT和和OOSE等方法;等方法;其他的方法还有其他的方法还有Fusion方法、方法、Shlaer-Mellor 方法和方法和Coad-Yourdon方法方法经过经过Booch、Rumbaugh和和Jacobson三人的共同努力三人的共同努力,于于1996年发布了年发布了UML(Unified Modeling Language)。2022/11/53UMLUML的标准化的标准化1997年年11月月14日,日,UML1.1版本被版本被OMG(对象管理组织)(对象管理组织)采纳为标准,并陆续修订颁布了采纳为标准,并陆续修订颁布了1.3、1.4和和1.5等版本。等版本。2000年年-2003年,年,UML2.0版本问世。版本问世。2005年,年,UML2.0标准版本被标准版本被OMG采纳。采纳。Booch Rumbaugh JacobsonBooch Rumbaugh Jacobson2022/11/54UML UML 的形成过程的形成过程2022/11/552.1.2 UML2.1.2 UML的主要特点的主要特点统一的标准统一的标准UML是被是被OMG接受为标准,越来越多的开发人员使接受为标准,越来越多的开发人员使用用UML进行软件开发,越来越多的厂商支持进行软件开发,越来越多的厂商支持UML。面向对象面向对象是支持是支持OO软件开发的建模语言。软件开发的建模语言。可视化、表达能力强可视化、表达能力强(概念明确概念明确)建模表示法简洁,图形结构清晰,可视化、表示能力建模表示法简洁,图形结构清晰,可视化、表示能力强大,容易掌握和使用。强大,容易掌握和使用。独立于过程独立于过程UML不依赖于特定的软件开发过程。不依赖于特定的软件开发过程。2022/11/56可视化可视化UMLUML通过它的元模型和表示法,把那些通过文字或通过它的元模型和表示法,把那些通过文字或其他表达方法很难表达清楚的、隐晦的潜台词用其他表达方法很难表达清楚的、隐晦的潜台词用简单直观的图形表达和暴露出来,准确而直观地简单直观的图形表达和暴露出来,准确而直观地描述其复杂的含义。描述其复杂的含义。例如:造一辆车身是红色金属漆的小轿车,装备例如:造一辆车身是红色金属漆的小轿车,装备四个普利司通牌子的轮胎,它是一辆四门车,车四个普利司通牌子的轮胎,它是一辆四门车,车门时加厚的,并且前后门玻璃上贴黑色的膜。前门时加厚的,并且前后门玻璃上贴黑色的膜。前后挡风玻璃里都装有电热丝,后视镜是电动可调后挡风玻璃里都装有电热丝,后视镜是电动可调的。的。2022/11/572022/11/58UML模型系统体系结构模型系统体系结构模型元素模型元素UML通用机制通用机制视图视图UMLUML构成构成2022/11/59事物事物关系关系结构结构事物事物行为行为事物事物分组分组事物事物辅助辅助事物事物关联关联关系关系依赖依赖关系关系泛化泛化关系关系实现实现关系关系用用例例类类接接口口协协作作主主动动类类组组件件节节点点状状态态机机交交互互机机包包注注释释模型元素模型元素UML聚合聚合关系关系通用机制通用机制视图视图2022/11/510模型元素模型元素用用例例视视图图逻逻辑辑视视图图进进程程视视图图构构件件视视图图配配置置视视图图时时序序图图协协作作图图状状态态图图活活动动图图UML用用例例图图类类图图对对象象图图构构件件图图配配置置图图通用机制通用机制视图视图2022/11/511模型元素模型元素UML通用机制通用机制视图视图修修饰饰注注解解规格规格说明说明通用通用划分划分扩展扩展机制机制2022/11/512v描述系统的功能需求,找出用例和执行者;描述系统的功能需求,找出用例和执行者;v客户客户、分析者分析者、设计者设计者、开发者开发者和和测试者测试者;v描述用图:描述用图:用例图用例图和和活动图活动图;v重要性:系统的中心,它决定了其他视图的重要性:系统的中心,它决定了其他视图的开发,用于确认和最终验证系统。开发,用于确认和最终验证系统。1 1用例视图用例视图2.1.3 软件系统体系结构的描述软件系统体系结构的描述2022/11/5132 2逻辑视图逻辑视图v描述如何实现系统内部的功能描述如何实现系统内部的功能;v分析者分析者、设计者设计者、开发者开发者;v类图和对象图、状态图、顺序图、合作图类图和对象图、状态图、顺序图、合作图和活动图和活动图;v重要性:描述了系统的静态结构和因发送重要性:描述了系统的静态结构和因发送消息而出现的动态协作关系消息而出现的动态协作关系。静态结构静态结构:类图、对象图类图、对象图动态行为:动态行为:状态图、活动图、时序图、协作图状态图、活动图、时序图、协作图 2022/11/514v描述系统代码构件组织和实现模块,及描述系统代码构件组织和实现模块,及它们之间的依赖关系它们之间的依赖关系;v设计者设计者、开发者开发者;v构件图构件图;v描述系统如何划分软件构件,如何进行描述系统如何划分软件构件,如何进行编程编程。3 3构件视图构件视图 2022/11/515v描述系统的并发性,并处理这些线程间描述系统的并发性,并处理这些线程间的通信和同步的通信和同步;v开发者开发者和和系统集成者系统集成者;v状态图、顺序图、合作图、活动图、构状态图、顺序图、合作图、活动图、构件图和配置图件图和配置图;v将系统分割成并发执行的控制线程及处将系统分割成并发执行的控制线程及处理这些线程的通信和同步理这些线程的通信和同步。4 4进程视图进程视图2022/11/516v描述系统的物理设备配置;描述系统的物理设备配置;v开发者开发者、系统集成者系统集成者和和测试者测试者;v配置图配置图;v描述硬件设备的连接和哪个程序或对象描述硬件设备的连接和哪个程序或对象驻留在哪台计算机上执行驻留在哪台计算机上执行。5 5配置视图配置视图2022/11/517逻辑视图逻辑视图构件视图构件视图部署视图部署视图进程视图进程视图Use caseUse case视图视图2022/11/518高级语言程序设计2.1.4 UML模型元素模型元素2022/11/519事物事物关系关系结构结构事物事物行为行为事物事物分组分组事物事物辅助辅助事物事物关联关联关系关系依赖依赖关系关系泛化泛化关系关系实现实现关系关系用用例例类类接接口口协协作作主主动动类类组组件件节节点点状状态态机机交交互互机机包包注注释释模型元素模型元素UML聚合聚合关系关系通用机制通用机制视图视图2022/11/520v1 构件事物构件事物:UML模型的静态部分,描述概念或物理元素v 它包括以下几种:类类:具有相同属性相同操作 相同关系相同语义的对象的描述接口接口:描述元素的外部可见行为,即服务集合的定义说明协作协作:描述了一组事物间的相互作用的集合用例用例:代表一个系统或系统的一部分行为,是一组动作序列的集合构件构件:系统中物理存在,可替换的部件节点节点:运行时存在的物理元素v 另外,参与者、信号应用、文档库、页表等都是上述基本事物的变体v2 行为事物行为事物:UML模型图的动态部分,描述跨越空间和时间的行为交互交互:实现某功能的一组构件事物之间的消息的集合,涉及消息、动作序列、链接状态机状态机:描述事物或交互在生命周期内响应事件所经历的状态序列v3 分组事物分组事物:UML模型图的组织部分,描述事物的组织结构包包:把元素组织成组的机制v4 注释事物注释事物:UML模型的解释部分,用来对模型中的元素进行说明,解释注解注解:对元素进行约束或解释的简单符号2022/11/521l关联:连接(connect)模型元素及链接(link)实例。l依赖:表示一个元素以某种方式依赖于另一种元素。l泛化:表示一般与特殊的关系,即“一般”元素是“特殊”关系的泛化。l聚合:表示整体与部分的关系。2022/11/522关系(关系(RelationshipsRelationships)关系是将事物联系在一起的方式,UML中定义了四种关系:2022/11/523类之间的关系类之间的关系-泛化关系泛化关系在 UML 中,泛化关系泛化关系用来表示类与类,接口与接口之间的继承关系继承关系.泛化关系有时也称为”is a kind of”关系在 UML 中泛化关系用一条实线空心箭头有子类指向父类2022/11/524类之间的关系类之间的关系-实现关系实现关系在 UML 中,实现关系用来表示类与接口之间的实现关类与接口之间的实现关系系.在 UML 中实现关系用一条虚线空心箭头由子类指向父类2022/11/525类之间的关系类之间的关系-依赖关系依赖关系对于两个对于两个相对独立相对独立的系统,当一个系统负责构造另一个系统的的系统,当一个系统负责构造另一个系统的实例,或者依赖另一个系统的服务时,这两个系统之间体现为实例,或者依赖另一个系统的服务时,这两个系统之间体现为依赖关系依赖关系.例如生产零件的机器和零件,机器负责构造零件对象;充电电池和充电器,充电电池通过充电器来充电;自行车Bicycle和打气筒Pump,自行车通过打气筒来充气在现时生活中,通常不会为某一辆自行车配备专门的打气筒,而是在需要充气的时候,从附近某个修车棚里借个打气筒打气。在程序代码中,表现为Bicycle类的expand()方法有个Pump类型的参数。以下程序代码表示某辆自行车先后到两个修车棚里充气:2022/11/526类之间的关系类之间的关系-关联关系关联关系对于两个相对独立的系统,当一个系统的实例与另一个对于两个相对独立的系统,当一个系统的实例与另一个系统的一些特定实例存在系统的一些特定实例存在固定的对应关系固定的对应关系时,这两个系时,这两个系统之间为关联关系统之间为关联关系。例如客户和订单,每个订单对应特定的客户,每个客户对应一些特定的订单;公司和员工,每个公司对应一些特定的员工,每个员工对应一特定的公司;自行车和主人,每辆自行车属于特定的主人,每个主人有特定的自行车。而充电电池和充电器之间就不存在固定的对应关系,同样自行车和打气筒之间也不存在固定的对应关系。Person 类与 Bicycle 类之间存在关联关系,这意味着在 Person 类中需要定义一个需要定义一个 Bicycle Bicycle 类型的成员变量类型的成员变量2022/11/527类之间的关系类之间的关系-关联关系关联关系在现时生活中,当骑在现时生活中,当骑自行车去上班时,只自行车去上班时,只要从家里推出自己的要从家里推出自己的自行车就能上路了,自行车就能上路了,不象给自行车打气那不象给自行车打气那样,在需要打气时,样,在需要打气时,还要四处去找修车棚。还要四处去找修车棚。因此,在因此,在PersonPerson类的类的goToWorkgoToWork()()方法中,调用自身方法中,调用自身的的bicyclebicycle对象的对象的runrun()()方法。方法。假如假如goToWork()goToWork()方法方法采用以下的定义方式:采用以下的定义方式:那就好比去上班前,还要先四处去借一辆自行车,然后才能去上班。那就好比去上班前,还要先四处去借一辆自行车,然后才能去上班。依赖依赖2022/11/528关联关系的名称关联关系的名称关联关系的名称关联关系的名称:关联关系可以有一个名称关联关系可以有一个名称,用于描述该用于描述该关系的性质关系的性质.此关联名称应该是此关联名称应该是动词短语动词短语,因为它表明因为它表明源对象正在目标对象上执行动作源对象正在目标对象上执行动作.2022/11/529关联关系的角色关联关系的角色当一个类处于关联的某一端时当一个类处于关联的某一端时,该类就在这个关系中扮该类就在这个关系中扮演一个特定的角色演一个特定的角色.具体来说具体来说,角色就是关联关系中一角色就是关联关系中一个类对另一个类所表现的职责个类对另一个类所表现的职责.角色名称是角色名称是名词名词或名或名称短语称短语.2022/11/530关联关系的多重性关联关系的多重性关联关系的多重性是指有多少对象可以参与该关联关联关系的多重性是指有多少对象可以参与该关联,多多重性可以用来表达一个取值范围重性可以用来表达一个取值范围,特定值特定值,无限定的范无限定的范围围.2022/11/531关联关系关联关系-聚合关系聚合关系聚合关联是一种特殊的关联聚合关联是一种特殊的关联.它表示类间的关系是整体它表示类间的关系是整体与部分的关系与部分的关系.简言之简言之:关联关系中的一个类描述了一关联关系中的一个类描述了一个较大的事物个较大的事物,它由较小的事物组成它由较小的事物组成.聚合关系描述了聚合关系描述了“has a”的关系的关系,即整体对象拥有部即整体对象拥有部分对象分对象整体和部分之间用整体和部分之间用空心菱形箭头空心菱形箭头的连线连接的连线连接,箭头指向箭头指向整体整体2022/11/532关联关系关联关系-组成关系组成关系组合组合关系是更强形式的聚合关系是更强形式的聚合.组合组合关系中关系中,整件拥有部件的生命周期整件拥有部件的生命周期,所以整件删除所以整件删除时时,部件一定会跟着删除部件一定会跟着删除.而且而且,多个整件不可以同时多个整件不可以同时共享同一个部件。共享同一个部件。聚合聚合关系中关系中,整件不会拥有部件的生命周期整件不会拥有部件的生命周期,所以整件所以整件删除时删除时,部件不会被删除部件不会被删除.再者再者,多个整件可以共享同多个整件可以共享同一个部件一个部件.UML 中组成关系用中组成关系用实心的菱形实线实心的菱形实线表示表示2022/11/533关联关系关联关系-导航性导航性导航性表示可从源类的任何对象到目标类的一个或多导航性表示可从源类的任何对象到目标类的一个或多个对象遍历个对象遍历.即即:给定源类的一个对象给定源类的一个对象,可以得到目标可以得到目标类的所有对象类的所有对象.可以在关联关系上加上箭头表示导航可以在关联关系上加上箭头表示导航方向方向.只在一个方向上可以导航的关联称为只在一个方向上可以导航的关联称为单向关联单向关联,用一个用一个带箭头的方向表示带箭头的方向表示;在两个方向上都可以导航的关联在两个方向上都可以导航的关联称为称为双向关联双向关联,用一条没有箭头的实线表示用一条没有箭头的实线表示.2022/11/5342.2 UML系统模型与建模系统模型与建模2.2.1 2.2.1 用例模型用例模型及组成成分及组成成分2.2.2 2.2.2 静态模型静态模型与与系统体系结构建模系统体系结构建模2.2.3 2.2.3 动态模型动态模型与与行为控制流建模行为控制流建模2022/11/5352.2 UML2.2 UML系统模型与建模系统模型与建模三大类九种图表示三大类九种图表示v用例模型图用例模型图:由用例图组成。v静态模型图静态模型图:由类图、对象图、包图、构件图和配置图组成。v动态模型图动态模型图:由活动图、顺序图、状态图和合作图组成。2022/11/5362.2.1 2.2.1 用例模型及组成成分用例模型及组成成分z用例模型用例模型描述的时外部执行者所理解的系统功能描述的时外部执行者所理解的系统功能。z用例模型有若干用例图组成。用例模型有若干用例图组成。z用例图从用户的角度出发描述系统的用例图从用户的角度出发描述系统的功能需求功能需求,展,展示系统外部的各类角色与系统内部的各种用例之间示系统外部的各类角色与系统内部的各种用例之间的的关系。关系。z用例模型驱动需求分析之后各阶段的开发。用例模型驱动需求分析之后各阶段的开发。2022/11/537静态模型:静态模型:指对系统中对象之间相互进行的联系指对系统中对象之间相互进行的联系构建模型,这些关系不随时间发生变化。构建模型,这些关系不随时间发生变化。UMLUML系统建模用于描述系统体系机构。系统建模用于描述系统体系机构。1 1类图类图(Class diagram)v类图描述系统所包含的类、类的内部结构及类图描述系统所包含的类、类的内部结构及类之间的关系类之间的关系类图是逻辑视图的重要组成部分,用于对系统的静态结构建模。2.2.22.2.2静态模型与系统体系结构建模静态模型与系统体系结构建模2022/11/538类的图符分为长式和短式。如图2.5长式由类名、属性和操作三部分组成。类及类型名均用英文大写字母开头;属性和操作名为小写字母开头。2022/11/5392 2对象图对象图diagramdiagram)v对象图是类图的一个具体实例对象图是类图的一个具体实例v对象图符中对象名加了对象图符中对象名加了下划线下划线.v图图2.6类图与对应的对象图类图与对应的对象图.2022/11/5403 3包图包图v包是包是一组分组机制一组分组机制,有一组关系密切的模型元素构成。有一组关系密切的模型元素构成。包可以嵌套。包可以嵌套。v包图是包图是维护和控制系统总体结构维护和控制系统总体结构的重要建模工具。的重要建模工具。v包的内容包的内容:构成包的模型元素。:构成包的模型元素。v包用于模型的组织管理时,称为包用于模型的组织管理时,称为子系统子系统。v包图表明包及其之间的依赖关系。包图表明包及其之间的依赖关系。2022/11/5412022/11/5424 4构件图构件图v组件图组件图显示代码本身的逻辑结构,它描述系统中存显示代码本身的逻辑结构,它描述系统中存在的软件构件以及各构件之间的依赖关系。在的软件构件以及各构件之间的依赖关系。v构件是系统体系结构中独立的物理可替换单位。构件是系统体系结构中独立的物理可替换单位。v构件可以看成是包与类对应的物理代码模块,逻辑构件可以看成是包与类对应的物理代码模块,逻辑上与包和类对应,实际上是一个上与包和类对应,实际上是一个文件文件。2022/11/5432022/11/5445 5配置图配置图 配置图描述系统中软件和硬件的配置情况和系统配置图描述系统中软件和硬件的配置情况和系统体系结构,显示系统运行时刻的结构。体系结构,显示系统运行时刻的结构。配置图有配置图有结点结点和和连接连接。结点指实际的物理设备及在该结点上运行的构件结点指实际的物理设备及在该结点上运行的构件或对象。或对象。节点是一组运行期间的系统资源,如节点是一组运行期间的系统资源,如计算机、数据库、设备或存储器。计算机、数据库、设备或存储器。描述一组节点及其关系,允许评估分配结果和描述一组节点及其关系,允许评估分配结果和资源分配。资源分配。2022/11/5452022/11/546动态模型主要描述系统的动态模型主要描述系统的动态行为动态行为和和控制结构。控制结构。动态行为包括:动态行为包括:v对象生存期内的状态及状态迁移;对象生存期内的状态及状态迁移;v对象之间动态合作关系,显示对象间交互过程和交互顺序;对象之间动态合作关系,显示对象间交互过程和交互顺序;v描述为面组用例所进行的活动及活动间的约述关系。描述为面组用例所进行的活动及活动间的约述关系。动态模型包括:动态模型包括:状态图、活动图、顺序图、合作图。状态图、活动图、顺序图、合作图。2.2.3 动态模型与行为控制流建模动态模型与行为控制流建模 2022/11/5471 1顺序图顺序图(Sequence Diagram)v用来描述对象之间动态的用来描述对象之间动态的交互关系交互关系,着重体现对象,着重体现对象间消息传递的间消息传递的时间顺序时间顺序。v顺序图的一个用途是用来表示用例中的行为顺序。顺序图的一个用途是用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或引起状态转换的触发事件。一个类操作或引起状态转换的触发事件。v两个轴:两个轴:水平轴水平轴对象;对象;垂直轴垂直轴时间;时间;v垂直虚线生命线,表示某段时间内对象存在。垂直虚线生命线,表示某段时间内对象存在。v箭头:消息箭头:消息v细长矩形框:表示对象的激活状态细长矩形框:表示对象的激活状态2022/11/5482022/11/5492 2合作图合作图v描述对象间的协作关系,描述对象间的协作关系,协作图协作图跟顺序图相似,显示对象跟顺序图相似,显示对象间的间的动态合作关系动态合作关系。除显示信息交换外,协作图还显示对。除显示信息交换外,协作图还显示对象以及它们之间的象以及它们之间的连接连接关系关系.v合作图画成对象图,消息箭头表示对象间的消息流向,消合作图画成对象图,消息箭头表示对象间的消息流向,消息箭头必须附加标记,说明消息发送的先后顺序。息箭头必须附加标记,说明消息发送的先后顺序。v协作图的一个用途是表示一个类操作的实现。协作图的一个用途是表示一个类操作的实现。2022/11/5502 2合作图合作图2022/11/5513 3状态图状态图 状态图是对类的一种补充描述,它展示了此类对象所具有可能的状态以及某些事件发生时其状态的转移情况。与交互图不同,交互图对共同工作的对象群体的行为建模,而状态图对单个对象的状态变化行为建模。v事件事件v状态迁移状态迁移v迁移动作迁移动作2022/11/5524活动图 活动图是状态图的一个变体,用来描述执行算法的工作流活动图是状态图的一个变体,用来描述执行算法的工作流程中涉及的活动程中涉及的活动活动图描述了一组顺序的或并发的活动活动图描述了一组顺序的或并发的活动 可以描述操作的行为;也可以描述用例和对象的内部工作可以描述操作的行为;也可以描述用例和对象的内部工作过程。过程。状态图事件触发;活动图一个活动结束自动进入下一状态图事件触发;活动图一个活动结束自动进入下一活动。活动。2022/11/553活动图2022/11/554上述十种模型图可归纳为五种类型上述十种模型图可归纳为五种类型v用例图:用例图用例图:用例图v静态图:类图、对象图、包图静态图:类图、对象图、包图v交互图:顺序图、协作图交互图:顺序图、协作图v行为图:状态图、活动图行为图:状态图、活动图v实现图:组件图、部署图实现图:组件图、部署图 2022/11/5552.3 UML系统体系结构模型系统体系结构模型2.3.1 子系统子系统组织的系统体系结构组织的系统体系结构2.3.2 系统模型系统模型组织的系统体系结构组织的系统体系结构2.3.3 系统体系结构模型的描述方式系统体系结构模型的描述方式2022/11/5562.3.1 2.3.1 子系统子系统组织的系统体系结构组织的系统体系结构 子系统子系统是描述系统某个行为的相对独立的抽象单是描述系统某个行为的相对独立的抽象单位。位。每个子系统都有自己独立的接口,通过接口各个每个子系统都有自己独立的接口,通过接口各个子系统相互交换信息,协同工作。子系统相互交换信息,协同工作。子系统用子系统用“包包”图符元素加上构造型图符元素加上构造型表示;表示;子系统也可以用子系统也可以用右上角带有分支图形右上角带有分支图形的的“包包”图图符元素表示。符元素表示。2022/11/557如果采用由如果采用由子系统包子系统包描述描述系统的体系结构系统的体系结构图,图,其最底层(叶结点)元素必须由其最底层(叶结点)元素必须由模型包模型包描述。描述。而而模型包模型包一般用一般用右上角带三角图形右上角带三角图形的图标元素的图标元素“包包”表示。表示。图图216不是一个完整的由子系统包组成的系不是一个完整的由子系统包组成的系统体系结构图。统体系结构图。2022/11/5582.3.2 2.3.2 系统模型系统模型组织的系统体系结构组织的系统体系结构 UML中,系统模型一般用右上角带有三角图形右上角带有三角图形的“包”图符元素表示,并且可以在模型名上标注构造性2022/11/5592.3.3 2.3.3 系统体系结构模型的描述方式系统体系结构模型的描述方式在UML中,一个系统体系结构层次可以用两种描述方式:v基于模型的系统体系结构层次基于模型的系统体系结构层次v基于子系统的系统体系结构层次基于子系统的系统体系结构层次2022/11/5602022/11/561在用包描述一个多层的系统体系结构时,在在用包描述一个多层的系统体系结构时,在较高较高的各层次结构的各层次结构中既可以用中既可以用模型包模型包作为元素,也可作为元素,也可以用以用子系统包子系统包作为模型元素。但在作为模型元素。但在最底层最底层只能用只能用模型包模型包作为元素。作为元素。一般为了简便采用一般为了简便采用简单的包图简单的包图(不带分支或三角图不带分支或三角图符的包符的包)来建立系统的体系结构。来建立系统的体系结构。2022/11/5622.4 UML的扩展、调整机制的扩展、调整机制2.4.1 模型元素的分类与标记模型元素的分类与标记 2.4.2 模型元素的特性规格说明模型元素的特性规格说明 2.4.3 模型元素的语义扩展与约束模型元素的语义扩展与约束2022/11/5632.4 UML2.4 UML的扩展、调整机制的扩展、调整机制 模型元素模型元素UML通用机制通用机制视图视图修修饰饰注注解解规格规格说明说明通用通用划分划分扩展扩展机制机制2022/11/564UML的公共机制的公共机制2022/11/5652022/11/566特性规格说明特性规格说明2022/11/5672.4 UML2.4 UML的扩展、调整机制的扩展、调整机制 2.4.1 2.4.1 模型元素的分类与标记模型元素的分类与标记 2022/11/5682.4.2 2.4.2 模型元素的特性规格说明模型元素的特性规格说明 2022/11/5692.4.3 2.4.3 模型元素的语义扩展与约束模型元素的语义扩展与约束2022/11/570UML的建模原则的建模原则2022/11/571小结小结2022/11/5722.5 UML与软件开发统一过程与软件开发统一过程2022/11/573RUP的特点的特点RUP的的二维二维开发模型开发模型RUP可以用二维坐标来描述。可以用二维坐标来描述。v横轴通过时间组织横轴通过时间组织,是过程展开的生命周期特,是过程展开的生命周期特征,体现开发过程的征,体现开发过程的动态结构动态结构;v纵轴以内容来组织纵轴以内容来组织,是自然的逻辑活动,体现,是自然的逻辑活动,体现开发过程的开发过程的静态结构静态结构。2022/11/5742.5.1 迭代、渐增式的开发过程迭代、渐增式的开发过程 1开始阶段开始阶段 主要确定项目的范围和目标,并进行可行性分析。主要确定项目的范围和目标,并进行可行性分析。v理解问题领域的各种业务过程及其关系理解问题领域的各种业务过程及其关系v考虑和分析项目成本及可能得到的效益和风险考虑和分析项目成本及可能得到的效益和风险v明确待开发项目的意义和价值明确待开发项目的意义和价值v确定是否要开发此项目确定是否要开发此项目2022/11/5752详细规划阶段详细规划阶段收集详细的系统需求,进行高层次的系统分析收集详细的系统需求,进行高层次的系统分析和系统设计。和系统设计。v 对问题领域和功能作详细分析,画用例图。对问题领域和功能作详细分析,画用例图。v建立系统的基础体系结构。建立系统的基础体系结构。v进行风险分析,并制定对策。进行风险分析,并制定对策。v制定开发计划制定开发计划2022/11/576制订计划包括:制订计划包括:(1)用例分类)用例分类v 1)将用例的优先级分为三级。)将用例的优先级分为三级。v 2)体系结构方面的风险的风险。)体系结构方面的风险的风险。v 3)进度风险(对实现每个用例所需工作量估算的评价)分为三)进度风险(对实现每个用例所需工作量估算的评价)分为三级。级。(2 2)确定每次迭代的开发周期)确定每次迭代的开发周期v迭代周期;周期的长短;迭代次数迭代周期;周期的长短;迭代次数(3 3)将用例分配到各次迭代中)将用例分配到各次迭代中v高优先级,高体系结构风险和高进度风险的用例尽早实现。2022/11/5774 4移交阶段移交阶段 3系统构造阶段系统构造阶段渐增式开发渐增式开发集成测试集成测试 测试演示测试演示 保存测试案例保存测试案例2022/11/5782.5.2 软件开发步骤及核心支持活动软件开发步骤及核心支持活动 1需求分析需求分析v业务模型和用户需求分析模型业务模型和用户需求分析模型2系统设计系统设计v高层设计:定义子系统高层设计:定义子系统v详细设计:细化包的内容,规格说明。详细设计:细化包的内容,规格说明。3实现实现v设计模型图和规约转换成程序代码设计模型图和规约转换成程序代码4测试测试5配置配置2022/11/5796 6核心支持工作核心支持工作(1)配置与变化管理)配置与变化管理(2)项目管理)项目管理(3)环境设置)环境设置2022/11/5802.5.3 UML2.5.3 UML软件开发过程产生的模型软件开发过程产生的模型与文档与文档1模型模型(1)业务模型业务模型:建立问题领域的组织结构和业:建立问题领域的组织结构和业 务流程的抽象。务流程的抽象。描述方式:需求分析规格说明书。描述方式:需求分析规格说明书。(2)领域模型领域模型:建立问题领域的需求分析说明。:建立问题领域的需求分析说明。描述方式:需求分析规格说明书。描述方式:需求分析规格说明书。(3)用例模型用例模型:表达系统的功能。:表达系统的功能。描述方式:用例图、活动图及需求分析规格说描述方式:用例图、活动图及需求分析规格说 明书。明书。2022/11/581l基本功能分析;基本功能分析;l实现功能的对象;实现功能的对象;l对象之间的关系;对象之间的关系;4)分析模型(任选)分析模型(任选):只有复杂的系统才需要建:只有复杂的系统才需要建立独立的分析模型。该模型包括:立独立的分析模型。该模型包括:描述方式:类图、对象图、包图、顺序图、合描述方式:类图、对象图、包图、顺序图、合 作图、状态图和活动图。作图、状态图和活动图。2022/11/582(5)设计模型:)设计模型:系统具体解决方案,由调整和完善系统具体解决方案,由调整和完善 分析模型而成。分析模型而成。描述方式:类图、对象图、包图、顺序图、合作描述方式:类图、对象图、包图、顺序图、合作 图、状态图和活动图。图、状态图和活动图。(6)进程模型(任选)进程模型(任选):描述系统并发和同步机制。:描述系统并发和同步机制。有多线程的并发系统才建立。有多线程的并发系统才建立。描述方式:状态图、顺序图、合作图、活描述方式:状态图、顺序图、合作图、活 动图、构件图和配置图。动图、构件图和配置图。2022/11/583(8)配置模型)配置模型:描述系统软件在各个硬件上的配置。:描述系统软件在各个硬件上的配置。描述方式:配置图。描述方式:配置图。(9)测试模型:)测试模型:描述验证系统功能的途径。描述验证系统功能的途径。描述方式:测试案例和测试报告。描述方式:测试案例和测试报告。(7)实现模型:)实现模型:软件的系统体系结构。软件的系统体系结构。描述方式:包图和构件图。描述方式:包图和构件图。2022/11/584(1)技术文档)技术文档(2)管理文档)管理文档2文档文档2022/11/5852.5.4 UML2.5.4 UML软件开发过程的基本特征软件开发过程的基本特征 1 1用例驱动的系统用例驱动的系统 2022/11/586用例驱动用例驱动(1)所有的软件开发都是用户需求驱动的。所有的软件开发都是用户需求驱动的。统一软件开发过程采用统一软件开发过程采用用例来描述用户需求用例来描述用户需求,同时提,同时提供一套方法把用例转化为设计的类图,进一步变成最供一套方法把用例转化为设计的类图,进一步变成最终的程序代码。终的程序代码。在整个软件开发过程中,要求用例是在整个软件开发过程中,要求用例是可跟踪的可跟踪的,也就,也就是说,无论是设计阶段还是实现阶段的产品,都可以是说,无论是设计阶段还是实现阶段的产品,都可以找到相应的需求。找到相应的需求。用例还可以作为用户测试和验收最终软件产品的标准。用例还可以作为用户测试和验收最终软件产品的标准。2022/11/587系统体系结构系统体系结构系统体系结构系统体系结构是对系统语义的概括表述,内含一些决策,是对系统语义的概括表述,内含一些决策,主要涉及主要涉及软件系统的组织软件系统的组织(包括构成系统的(包括构成系统的结构元素结构元素、各、各元素的接口元素的接口、由元素间的各种协作所描述的各、由元素间的各种协作所描述的各元素行为元素行为、由结构元素和行为元素构成的由结构元素和行为元素构成的子系统子系统、相关的系统功能和、相关的系统功能和性能、其他约束等)以及支持这种组织的体系结构风格。性能、其他约束等)以及支持这种组织的体系结构风格。因此,在系统体系结构描述中,应关注子系统、构件、接因此,在系统体系结构描述中,应关注子系统、构件、接口、协作、关系和节点等重要模型元素,而忽略其他细节。口、协作、关系和节点等重要模型元素,而忽略其他细节。2022/11/588在系统的生存周期中,开发的任何阶段都要给出相关模型视角下的有关体系结构的描述,作为构思、构造、管理和改善系统的主要制品。3螺旋上升式的开发过程螺旋上升式的开发过程统一软件过程采用迭代和增量的开发方式,把一个软件产品划分成多个较小的部分,每一次完成一个部分,每次要迭代部分是产品的一个增量部分。每个增量部分的生产过程是受控的。4以质量控制和风险管理为目标以质量控制和风险管理为目标2以体系结构为中心以体系结构为中心2022/11/589小结小结2022/11/5902.6 本章小结本章小结lUML特点和基本图标元素的特点和基本图标元素的表示符表示符lUML软件软件系统体系结构系统体系结构的的五种视图五种视图和和九种九种基本图基本图lUML的的用例模型、静态模型、动态模型用例模型、静态模型、动态模型的的简单建模方法简单建模方法lUML的的系统体系结构模型系统体系结构模型lUML与与软件开发统一过程软件开发统一过程2022/11/5914.UML1.4与与2.0的比较的比较对对UML1.4进行了一些扩充。进行了一些扩充。用更为受限的用更为受限的通信图通信图代替了代替了协作图协作图。增加了增加了交互综述图交互综述图、定时图定时图、协议状态图协议状态图、组成结构图组成结构图等新等新图。图。2022/11/5922022/11/593