第2章-UML系统建模与分析设计-统一建模语言UML-36课件_第1页
第2章-UML系统建模与分析设计-统一建模语言UML-36课件_第2页
第2章-UML系统建模与分析设计-统一建模语言UML-36课件_第3页
第2章-UML系统建模与分析设计-统一建模语言UML-36课件_第4页
第2章-UML系统建模与分析设计-统一建模语言UML-36课件_第5页
已阅读5页,还剩181页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章统一建模语言UML本章目的:掌握UML特点和基本图标元素的表示符掌握UML软件系统体系结构的五种视图和九种基本图了解UML的用例模型、静态模型、动态模型的简单建模方法了解UML的系统体系结构模型掌握UML与软件开发统一过程2022/12/241第二章统一建模语言UML本章目的:掌握UML特点和基本图2.1UML模型系统体系结构2.1.1UML的诞生与发展2.1.2UML的主要特点2.1.3软件系统体系结构的描述2.1.4UML模型元素2022/12/2422.1UML模型系统体系结构2.1.1UML的诞生与发2.1.1UML的诞生与发展20世纪70年代出现了面向对象的程序设计语言。20世纪80年代,出现了面向对象的建模语言。在1989年到1994年期间,面向对象的方法从不到十种增加到了五十多种;一些方法脱颖而出,包括Booch方法、OMT和OOSE等方法;其他的方法还有Fusion方法、Shlaer-Mellor方法和Coad-Yourdon方法经过Booch、Rumbaugh和Jacobson三人的共同努力,于1996年发布了UML(UnifiedModelingLanguage)。2022/12/2432.1.1UML的诞生与发展20世纪70年代出现了面向对UML的标准化1997年11月14日,UML1.1版本被OMG(对象管理组织)采纳为标准,并陆续修订颁布了1.3、1.4和1.5等版本。2000年-2003年,UML2.0版本问世。2005年,UML2.0标准版本被OMG采纳。BoochRumbaughJacobson2022/12/244UML的标准化1997年11月14日,UML1.1版本被OMUML的形成过程2022/12/245UML的形成过程2022/12/1852.1.2UML的主要特点统一的标准UML是被OMG接受为标准,越来越多的开发人员使用UML进行软件开发,越来越多的厂商支持UML。面向对象是支持OO软件开发的建模语言。可视化、表达能力强(概念明确)建模表示法简洁,图形结构清晰,可视化、表示能力强大,容易掌握和使用。独立于过程UML不依赖于特定的软件开发过程。2022/12/2462.1.2UML的主要特点统一的标准2022/12/186可视化UML通过它的元模型和表示法,把那些通过文字或其他表达方法很难表达清楚的、隐晦的潜台词用简单直观的图形表达和暴露出来,准确而直观地描述其复杂的含义。例如:造一辆车身是红色金属漆的小轿车,装备四个普利司通牌子的轮胎,它是一辆四门车,车门时加厚的,并且前后门玻璃上贴黑色的膜。前后挡风玻璃里都装有电热丝,后视镜是电动可调的。2022/12/247可视化UML通过它的元模型和表示法,把那些通过文字或其他表达2022/12/2482022/12/188UML模型系统体系结构模型元素UML通用机制视图UML构成2022/12/249UML模型系统体系结构模型元素UML通用机制视图UML构成2事物关系结构事物行为事物分组事物辅助事物关联关系依赖关系泛化关系实现关系用例类接口协作主动类组件节点状态机交互机包注释模型元素UML聚合关系通用机制视图2022/12/2410事物关系结构事物行为事物分组事物辅助事物关联关系依赖关系泛化模型元素用例视图逻辑视图进程视图构件视图配置视图时序图协作图状态图活动图UML用例图类图对象图构件图配置图通用机制视图2022/12/2411模型元素用逻辑视进程视图构件配置时序协作状态活动UML用类对模型元素UML通用机制视图修饰注解规格说明通用划分扩展机制2022/12/2412模型元素UML通用机制视图修注规格说明通用划分扩展机制202描述系统的功能需求,找出用例和执行者;客户、分析者、设计者、开发者和测试者;描述用图:用例图和活动图;重要性:系统的中心,它决定了其他视图的开发,用于确认和最终验证系统。

1.用例视图2.1.3软件系统体系结构的描述2022/12/2413描述系统的功能需求,找出用例和执行者;1.用例视图2.1.32.逻辑视图描述如何实现系统内部的功能;分析者、设计者、开发者;类图和对象图、状态图、顺序图、合作图和活动图;重要性:描述了系统的静态结构和因发送消息而出现的动态协作关系。静态结构:类图、对象图动态行为:状态图、活动图、时序图、协作图

2022/12/24142.逻辑视图描述如何实现系统内部的功能;2022/12/1描述系统代码构件组织和实现模块,及它们之间的依赖关系;设计者、开发者;构件图;描述系统如何划分软件构件,如何进行编程。

3.构件视图

2022/12/2415描述系统代码构件组织和实现模块,及它们之间的依赖关系;3.描述系统的并发性,并处理这些线程间的通信和同步

;开发者和系统集成者

;状态图、顺序图、合作图、活动图、构件图和配置图

;将系统分割成并发执行的控制线程及处理这些线程的通信和同步

4.进程视图2022/12/2416描述系统的并发性,并处理这些线程间的通信和同步;4.进程视描述系统的物理设备配置;开发者、系统集成者和测试者

;配置图

;描述硬件设备的连接和哪个程序或对象驻留在哪台计算机上执行

5.配置视图2022/12/2417描述系统的物理设备配置;5.配置视图2022/12/1817逻辑视图构件视图部署视图进程视图Usecase视图2022/12/2418逻辑视图构件视图部署视图进程视图Usecase2022/1高级语言程序设计2.1.4UML模型元素2022/12/2419高级语言程序设计2.1.4UML模型元素2022/12/事物关系结构事物行为事物分组事物辅助事物关联关系依赖关系泛化关系实现关系用例类接口协作主动类组件节点状态机交互机包注释模型元素UML聚合关系通用机制视图2022/12/2420事物关系结构事物行为事物分组事物辅助事物关联关系依赖关系泛化1构件事物:UML模型的静态部分,描述概念或物理元素它包括以下几种:类:具有相同属性相同操作相同关系相同语义的对象的描述接口:描述元素的外部可见行为,即服务集合的定义说明协作:描述了一组事物间的相互作用的集合用例:代表一个系统或系统的一部分行为,是一组动作序列的集合构件:系统中物理存在,可替换的部件节点:运行时存在的物理元素另外,参与者、信号应用、文档库、页表等都是上述基本事物的变体2行为事物:UML模型图的动态部分,描述跨越空间和时间的行为交互:实现某功能的一组构件事物之间的消息的集合,涉及消息、动作序列、链接状态机:描述事物或交互在生命周期内响应事件所经历的状态序列3分组事物:UML模型图的组织部分,描述事物的组织结构包:把元素组织成组的机制4注释事物:UML模型的解释部分,用来对模型中的元素进行说明,解释注解:对元素进行约束或解释的简单符号2022/12/24211构件事物:UML模型的静态部分,描述概念或物理元素20关联:连接(connect)模型元素及链接(link)实例。依赖:表示一个元素以某种方式依赖于另一种元素。泛化:表示一般与特殊的关系,即“一般”元素是“特殊”关系的泛化。聚合:表示整体与部分的关系。2022/12/2422关联:连接(connect)模型元素及链接(link)实例。关系(Relationships)关系是将事物联系在一起的方式,UML中定义了四种关系:2022/12/2423关系(Relationships)关系是将事物联系在一起的方类之间的关系----泛化关系在UML中,泛化关系用来表示类与类,接口与接口之间的继承关系.泛化关系有时也称为”isakindof”关系在UML中泛化关系用一条实线空心箭头有子类指向父类2022/12/2424类之间的关系----泛化关系在UML中,泛化关系用类之间的关系----实现关系在UML中,实现关系用来表示类与接口之间的实现关系.在UML中实现关系用一条虚线空心箭头由子类指向父类2022/12/2425类之间的关系----实现关系在UML中,实现关系用类之间的关系----依赖关系对于两个相对独立的系统,当一个系统负责构造另一个系统的实例,或者依赖另一个系统的服务时,这两个系统之间体现为依赖关系.例如生产零件的机器和零件,机器负责构造零件对象;充电电池和充电器,充电电池通过充电器来充电;自行车Bicycle和打气筒Pump,自行车通过打气筒来充气在现时生活中,通常不会为某一辆自行车配备专门的打气筒,而是在需要充气的时候,从附近某个修车棚里借个打气筒打气。在程序代码中,表现为Bicycle类的expand()方法有个Pump类型的参数。以下程序代码表示某辆自行车先后到两个修车棚里充气:2022/12/2426类之间的关系----依赖关系对于两个相对独立的系统,当一类之间的关系----关联关系对于两个相对独立的系统,当一个系统的实例与另一个系统的一些特定实例存在固定的对应关系时,这两个系统之间为关联关系。例如客户和订单,每个订单对应特定的客户,每个客户对应一些特定的订单;公司和员工,每个公司对应一些特定的员工,每个员工对应一特定的公司;自行车和主人,每辆自行车属于特定的主人,每个主人有特定的自行车。而充电电池和充电器之间就不存在固定的对应关系,同样自行车和打气筒之间也不存在固定的对应关系。Person类与Bicycle类之间存在关联关系,这意味着在Person类中需要定义一个Bicycle类型的成员变量2022/12/2427类之间的关系----关联关系对于两个相对独立的系统,当一类之间的关系----关联关系在现时生活中,当骑自行车去上班时,只要从家里推出自己的自行车就能上路了,不象给自行车打气那样,在需要打气时,还要四处去找修车棚。因此,在Person类的goToWork()方法中,调用自身的bicycle对象的run()方法。假如goToWork()方法采用以下的定义方式:那就好比去上班前,还要先四处去借一辆自行车,然后才能去上班。依赖2022/12/2428类之间的关系----关联关系在现时生活中,当骑自行车去上关联关系的名称关联关系的名称:关联关系可以有一个名称,用于描述该关系的性质.此关联名称应该是动词短语,因为它表明源对象正在目标对象上执行动作.2022/12/2429关联关系的名称关联关系的名称:关联关系可以有一个名称,用关联关系的角色当一个类处于关联的某一端时,该类就在这个关系中扮演一个特定的角色.具体来说,角色就是关联关系中一个类对另一个类所表现的职责.角色名称是名词或名称短语.2022/12/2430关联关系的角色当一个类处于关联的某一端时,该类就在这个关系关联关系的多重性关联关系的多重性是指有多少对象可以参与该关联,多重性可以用来表达一个取值范围,特定值,无限定的范围.2022/12/2431关联关系的多重性关联关系的多重性是指有多少对象可以参与该关联关联关系----聚合关系聚合关联是一种特殊的关联.它表示类间的关系是整体与部分的关系.简言之:关联关系中的一个类描述了一个较大的事物,它由较小的事物组成.聚合关系描述了“hasa”的关系,即整体对象拥有部分对象整体和部分之间用空心菱形箭头的连线连接,箭头指向整体2022/12/2432关联关系----聚合关系聚合关联是一种特殊的关联.它表关联关系----组成关系组合关系是更强形式的聚合.组合关系中,整件拥有部件的生命周期,所以整件删除时,部件一定会跟着删除.而且,多个整件不可以同时共享同一个部件。聚合关系中,整件不会拥有部件的生命周期,所以整件删除时,部件不会被删除.再者,多个整件可以共享同一个部件.UML中组成关系用实心的菱形实线表示2022/12/2433关联关系----组成关系组合关系是更强形式的聚合.20关联关系----导航性导航性表示可从源类的任何对象到目标类的一个或多个对象遍历.即:给定源类的一个对象,可以得到目标类的所有对象.可以在关联关系上加上箭头表示导航方向.只在一个方向上可以导航的关联称为单向关联,用一个带箭头的方向表示;在两个方向上都可以导航的关联称为双向关联,用一条没有箭头的实线表示.2022/12/2434关联关系----导航性导航性表示可从源类的任何对象到目标2.2UML系统模型与建模2.2.1用例模型及组成成分2.2.2静态模型与系统体系结构建模2.2.3动态模型与行为控制流建模2022/12/24352.2UML系统模型与建模2.2.1用例模型及组成成分2.2UML系统模型与建模三大类九种图表示用例模型图:由用例图组成。静态模型图:由类图、对象图、包图、构件图和配置图组成。动态模型图:由活动图、顺序图、状态图和合作图组成。2022/12/24362.2UML系统模型与建模三大类九种图表示用例模型图:由2.2.1用例模型及组成成分用例模型描述的时外部执行者所理解的系统功能。用例模型有若干用例图组成。用例图从用户的角度出发描述系统的功能需求,展示系统外部的各类角色与系统内部的各种用例之间的关系。用例模型驱动需求分析之后各阶段的开发。2022/12/24372.2.1用例模型及组成成分用例模型描述的时外部执行者所理静态模型:指对系统中对象之间相互进行的联系构建模型,这些关系不随时间发生变化。UML系统建模用于描述系统体系机构。1.类图(Classdiagram)类图描述系统所包含的类、类的内部结构及类之间的关系类图是逻辑视图的重要组成部分,用于对系统的静态结构建模。2.2.2静态模型与系统体系结构建模2022/12/2438静态模型:指对系统中对象之间相互进行的联系构建模型,这些关系类的图符分为长式和短式。如图2.5长式由类名、属性和操作三部分组成。类及类型名均用英文大写字母开头;属性和操作名为小写字母开头。2022/12/2439类的图符分为长式和短式。如图2.52022/12/18392.对象图diagram)对象图是类图的一个具体实例对象图符中对象名加了下划线.图2.6类图与对应的对象图.2022/12/24402.对象图diagram)对象图是类图的一个具体实例20223.包图包是一组分组机制,有一组关系密切的模型元素构成。包可以嵌套。包图是维护和控制系统总体结构的重要建模工具。包的内容:构成包的模型元素。包用于模型的组织管理时,称为子系统。包图表明包及其之间的依赖关系。2022/12/24413.包图包是一组分组机制,有一组关系密切的模型元素构成。包可2022/12/24422022/12/18424.构件图组件图显示代码本身的逻辑结构,它描述系统中存在的软件构件以及各构件之间的依赖关系。构件是系统体系结构中独立的物理可替换单位。构件可以看成是包与类对应的物理代码模块,逻辑上与包和类对应,实际上是一个文件。2022/12/24434.构件图组件图显示代码本身的逻辑结构,它描述系统中存在的软2022/12/24442022/12/18445.配置图配置图描述系统中软件和硬件的配置情况和系统体系结构,显示系统运行时刻的结构。配置图有结点和连接。结点指实际的物理设备及在该结点上运行的构件或对象。节点是一组运行期间的系统资源,如计算机、数据库、设备或存储器。描述一组节点及其关系,允许评估分配结果和资源分配。2022/12/24455.配置图配置图描述系统中软件和硬件的配置情况和系统体系结2022/12/24462022/12/1846动态模型主要描述系统的动态行为和控制结构。动态行为包括:对象生存期内的状态及状态迁移;对象之间动态合作关系,显示对象间交互过程和交互顺序;描述为面组用例所进行的活动及活动间的约述关系。动态模型包括:状态图、活动图、顺序图、合作图。2.2.3动态模型与行为控制流建模

2022/12/2447动态模型主要描述系统的动态行为和控制结构。2.2.3动态1.顺序图(SequenceDiagram)用来描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。顺序图的一个用途是用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或引起状态转换的触发事件。两个轴:水平轴--对象;垂直轴--时间;垂直虚线--生命线,表示某段时间内对象存在。箭头:消息细长矩形框:表示对象的激活状态2022/12/24481.顺序图(SequenceDiagram)用来描述对象之2022/12/24492022/12/18492.合作图描述对象间的协作关系,协作图跟顺序图相似,显示对象间的动态合作关系。除显示信息交换外,协作图还显示对象以及它们之间的连接关系.合作图画成对象图,消息箭头表示对象间的消息流向,消息箭头必须附加标记,说明消息发送的先后顺序。协作图的一个用途是表示一个类操作的实现。2022/12/24502.合作图描述对象间的协作关系,协作图跟顺序图相似,显示对象2.合作图2022/12/24512.合作图2022/12/18513.状态图状态图是对类的一种补充描述,它展示了此类对象所具有可能的状态以及某些事件发生时其状态的转移情况。与交互图不同,交互图对共同工作的对象群体的行为建模,而状态图对单个对象的状态变化行为建模。事件状态迁移迁移动作2022/12/24523.状态图状态图是对类的一种补充描述,它展示了此类对象所具4.活动图

活动图是状态图的一个变体,用来描述执行算法的工作流程中涉及的活动活动图描述了一组顺序的或并发的活动

可以描述操作的行为;也可以描述用例和对象的内部工作过程。状态图-事件触发;活动图-一个活动结束自动进入下一活动。2022/12/24534.活动图活动图是状态图的一个变体,用来描述执行算法的工活动图2022/12/2454活动图2022/12/1854上述十种模型图可归纳为五种类型用例图:用例图静态图:类图、对象图、包图交互图:顺序图、协作图行为图:状态图、活动图实现图:组件图、部署图2022/12/2455上述十种模型图可归纳为五种类型2022/12/18552.3UML系统体系结构模型2.3.1子系统组织的系统体系结构2.3.2系统模型组织的系统体系结构2.3.3系统体系结构模型的描述方式2022/12/24562.3UML系统体系结构模型2022/12/18562.3.1子系统组织的系统体系结构子系统是描述系统某个行为的相对独立的抽象单位。每个子系统都有自己独立的接口,通过接口各个子系统相互交换信息,协同工作。子系统用“包”图符元素加上构造型<<subsysem>>表示;子系统也可以用右上角带有分支图形的“包”图符元素表示。2022/12/24572.3.1子系统组织的系统体系结构子系统是描述系统某个如果采用由子系统包描述系统的体系结构图,其最底层(叶结点)元素必须由模型包描述。而模型包一般用右上角带三角图形的图标元素“包”表示。图2-16不是一个完整的由子系统包组成的系统体系结构图。2022/12/2458如果采用由子系统包描述系统的体系结构图,其最底层(叶结点)元2.3.2系统模型组织的系统体系结构

UML中,系统模型一般用右上角带有三角图形的“包”图符元素表示,并且可以在模型名上标注构造性<<Model>>2022/12/24592.3.2系统模型组织的系统体系结构UML中,系统模型2.3.3系统体系结构模型的描述方式在UML中,一个系统体系结构层次可以用两种描述方式:基于模型的系统体系结构层次基于子系统的系统体系结构层次2022/12/24602.3.3系统体系结构模型的描述方式在UML中,一个系统2022/12/24612022/12/1861在用包描述一个多层的系统体系结构时,在较高的各层次结构中既可以用模型包作为元素,也可以用子系统包作为模型元素。但在最底层只能用模型包作为元素。一般为了简便采用简单的包图(不带分支或三角图符的包)来建立系统的体系结构。2022/12/2462在用包描述一个多层的系统体系结构时,在较高的各层次结构中既可2.4UML的扩展、调整机制2.4.1模型元素的分类与标记2.4.2模型元素的特性规格说明

2.4.3模型元素的语义扩展与约束2022/12/24632.4UML的扩展、调整机制2.4.1模型元素的分类2.4UML的扩展、调整机制模型元素UML通用机制视图修饰注解规格说明通用划分扩展机制2022/12/24642.4UML的扩展、调整机制模型元素UML通用机制视图UML的公共机制2022/12/2465UML的公共机制2022/12/18652022/12/24662022/12/1866特性规格说明2022/12/2467特性规格说明2022/12/18672.4UML的扩展、调整机制2.4.1模型元素的分类与标记2022/12/24682.4UML的扩展、调整机制2.4.1模型元素的分2.4.2模型元素的特性规格说明

2022/12/24692.4.2模型元素的特性规格说明2022/12/1862.4.3模型元素的语义扩展与约束2022/12/24702.4.3模型元素的语义扩展与约束2022/12/187UML的建模原则2022/12/2471UML的建模原则2022/12/1871小结2022/12/2472小结2022/12/18722.5UML与软件开发统一过程2022/12/24732.5UML与软件开发统一过程2022/12/1873RUP的特点RUP的二维开发模型RUP可以用二维坐标来描述。横轴通过时间组织,是过程展开的生命周期特征,体现开发过程的动态结构;纵轴以内容来组织,是自然的逻辑活动,体现开发过程的静态结构。2022/12/2474RUP的特点RUP的二维开发模型2022/12/18742.5.1迭代、渐增式的开发过程

1.开始阶段

主要确定项目的范围和目标,并进行可行性分析。理解问题领域的各种业务过程及其关系考虑和分析项目成本及可能得到的效益和风险明确待开发项目的意义和价值确定是否要开发此项目2022/12/24752.5.1迭代、渐增式的开发过程1.开始阶段20222.详细规划阶段收集详细的系统需求,进行高层次的系统分析和系统设计。对问题领域和功能作详细分析,画用例图。建立系统的基础体系结构。进行风险分析,并制定对策。制定开发计划2022/12/24762.详细规划阶段收集详细的系统需求,进行高层次的系统分析和系制订计划包括:(1)用例分类1)将用例的优先级分为三级。2)体系结构方面的风险的风险。3)进度风险(对实现每个用例所需工作量估算的评价)分为三级。(2)确定每次迭代的开发周期迭代周期;周期的长短;迭代次数(3)将用例分配到各次迭代中高优先级,高体系结构风险和高进度风险的用例尽早实现。2022/12/2477制订计划包括:(1)用例分类2022/12/18774.移交阶段

3.系统构造阶段渐增式开发集成测试测试演示保存测试案例2022/12/24784.移交阶段3.系统构造阶段渐增式开发2022/12/182.5.2软件开发步骤及核心支持活动

1.需求分析业务模型和用户需求分析模型2.系统设计高层设计:定义子系统详细设计:细化包的内容,规格说明。3.实现设计模型图和规约转换成程序代码4.测试5.配置2022/12/24792.5.2软件开发步骤及核心支持活动

1.需求分析206.核心支持工作(1)配置与变化管理(2)项目管理(3)环境设置2022/12/24806.核心支持工作(1)配置与变化管理2022/12/18802.5.3UML软件开发过程产生的模型与文档1.模型(1)业务模型:建立问题领域的组织结构和业务流程的抽象。描述方式:需求分析规格说明书。(2)领域模型:建立问题领域的需求分析说明。描述方式:需求分析规格说明书。(3)用例模型:表达系统的功能。描述方式:用例图、活动图及需求分析规格说明书。2022/12/24812.5.3UML软件开发过程产生的模型与文档1.模型20基本功能分析;实现功能的对象;对象之间的关系;4)分析模型(任选):只有复杂的系统才需要建立独立的分析模型。该模型包括:

描述方式:类图、对象图、包图、顺序图、合作图、状态图和活动图。2022/12/2482基本功能分析;4)分析模型(任选):只有复杂的系统才需要建立(5)设计模型:系统具体解决方案,由调整和完善分析模型而成。描述方式:类图、对象图、包图、顺序图、合作图、状态图和活动图。(6)进程模型(任选):描述系统并发和同步机制。有多线程的并发系统才建立。描述方式:状态图、顺序图、合作图、活动图、构件图和配置图。2022/12/2483(5)设计模型:系统具体解决方案,由调整和完善(6)进程模型(8)配置模型:描述系统软件在各个硬件上的配置。描述方式:配置图。(9)测试模型:描述验证系统功能的途径。描述方式:测试案例和测试报告。(7)实现模型:软件的系统体系结构。描述方式:包图和构件图。2022/12/2484(8)配置模型:描述系统软件在各个硬件上的配置。(9)测试模(1)技术文档(2)管理文档2.文档2022/12/2485(1)技术文档2.文档2022/12/18852.5.4UML软件开发过程的基本特征

1.用例驱动的系统

2022/12/24862.5.4UML软件开发过程的基本特征1.用例驱动的用例驱动(1)所有的软件开发都是用户需求驱动的。统一软件开发过程采用用例来描述用户需求,同时提供一套方法把用例转化为设计的类图,进一步变成最终的程序代码。在整个软件开发过程中,要求用例是可跟踪的,也就是说,无论是设计阶段还是实现阶段的产品,都可以找到相应的需求。用例还可以作为用户测试和验收最终软件产品的标准。2022/12/2487用例驱动(1)所有的软件开发都是用户需求驱动的。2022/1系统体系结构系统体系结构是对系统语义的概括表述,内含一些决策,主要涉及软件系统的组织(包括构成系统的结构元素、各元素的接口、由元素间的各种协作所描述的各元素行为、由结构元素和行为元素构成的子系统、相关的系统功能和性能、其他约束等)以及支持这种组织的体系结构风格。因此,在系统体系结构描述中,应关注子系统、构件、接口、协作、关系和节点等重要模型元素,而忽略其他细节。2022/12/2488系统体系结构系统体系结构是对系统语义的概括表述,内含一些决策在系统的生存周期中,开发的任何阶段都要给出相关模型视角下的有关体系结构的描述,作为构思、构造、管理和改善系统的主要制品。3.螺旋上升式的开发过程统一软件过程采用迭代和增量的开发方式,把一个软件产品划分成多个较小的部分,每一次完成一个部分,每次要迭代部分是产品的一个增量部分。每个增量部分的生产过程是受控的。4.以质量控制和风险管理为目标2.以体系结构为中心2022/12/2489在系统的生存周期中,开发的任何阶段都要给出相关模型视角下的有小结2022/12/2490小结2022/12/18902.6本章小结UML特点和基本图标元素的表示符UML软件系统体系结构的五种视图和九种基本图UML的用例模型、静态模型、动态模型的简单建模方法UML的系统体系结构模型UML与软件开发统一过程2022/12/24912.6本章小结UML特点和基本图标元素的表示符2022/4.

UML1.4与2.0的比较•对UML1.4进行了一些扩充。•用更为受限的通信图代替了协作图。•增加了交互综述图、定时图、协议状态图、组成结构图等新图。2022/12/24924.UML1.4与2.0的比较•对UML1.4进行了一些扩2022/12/24932022/12/1893第二章统一建模语言UML本章目的:掌握UML特点和基本图标元素的表示符掌握UML软件系统体系结构的五种视图和九种基本图了解UML的用例模型、静态模型、动态模型的简单建模方法了解UML的系统体系结构模型掌握UML与软件开发统一过程2022/12/2494第二章统一建模语言UML本章目的:掌握UML特点和基本图2.1UML模型系统体系结构2.1.1UML的诞生与发展2.1.2UML的主要特点2.1.3软件系统体系结构的描述2.1.4UML模型元素2022/12/24952.1UML模型系统体系结构2.1.1UML的诞生与发2.1.1UML的诞生与发展20世纪70年代出现了面向对象的程序设计语言。20世纪80年代,出现了面向对象的建模语言。在1989年到1994年期间,面向对象的方法从不到十种增加到了五十多种;一些方法脱颖而出,包括Booch方法、OMT和OOSE等方法;其他的方法还有Fusion方法、Shlaer-Mellor方法和Coad-Yourdon方法经过Booch、Rumbaugh和Jacobson三人的共同努力,于1996年发布了UML(UnifiedModelingLanguage)。2022/12/24962.1.1UML的诞生与发展20世纪70年代出现了面向对UML的标准化1997年11月14日,UML1.1版本被OMG(对象管理组织)采纳为标准,并陆续修订颁布了1.3、1.4和1.5等版本。2000年-2003年,UML2.0版本问世。2005年,UML2.0标准版本被OMG采纳。BoochRumbaughJacobson2022/12/2497UML的标准化1997年11月14日,UML1.1版本被OMUML的形成过程2022/12/2498UML的形成过程2022/12/1852.1.2UML的主要特点统一的标准UML是被OMG接受为标准,越来越多的开发人员使用UML进行软件开发,越来越多的厂商支持UML。面向对象是支持OO软件开发的建模语言。可视化、表达能力强(概念明确)建模表示法简洁,图形结构清晰,可视化、表示能力强大,容易掌握和使用。独立于过程UML不依赖于特定的软件开发过程。2022/12/24992.1.2UML的主要特点统一的标准2022/12/186可视化UML通过它的元模型和表示法,把那些通过文字或其他表达方法很难表达清楚的、隐晦的潜台词用简单直观的图形表达和暴露出来,准确而直观地描述其复杂的含义。例如:造一辆车身是红色金属漆的小轿车,装备四个普利司通牌子的轮胎,它是一辆四门车,车门时加厚的,并且前后门玻璃上贴黑色的膜。前后挡风玻璃里都装有电热丝,后视镜是电动可调的。2022/12/24100可视化UML通过它的元模型和表示法,把那些通过文字或其他表达2022/12/241012022/12/188UML模型系统体系结构模型元素UML通用机制视图UML构成2022/12/24102UML模型系统体系结构模型元素UML通用机制视图UML构成2事物关系结构事物行为事物分组事物辅助事物关联关系依赖关系泛化关系实现关系用例类接口协作主动类组件节点状态机交互机包注释模型元素UML聚合关系通用机制视图2022/12/24103事物关系结构事物行为事物分组事物辅助事物关联关系依赖关系泛化模型元素用例视图逻辑视图进程视图构件视图配置视图时序图协作图状态图活动图UML用例图类图对象图构件图配置图通用机制视图2022/12/24104模型元素用逻辑视进程视图构件配置时序协作状态活动UML用类对模型元素UML通用机制视图修饰注解规格说明通用划分扩展机制2022/12/24105模型元素UML通用机制视图修注规格说明通用划分扩展机制202描述系统的功能需求,找出用例和执行者;客户、分析者、设计者、开发者和测试者;描述用图:用例图和活动图;重要性:系统的中心,它决定了其他视图的开发,用于确认和最终验证系统。

1.用例视图2.1.3软件系统体系结构的描述2022/12/24106描述系统的功能需求,找出用例和执行者;1.用例视图2.1.32.逻辑视图描述如何实现系统内部的功能;分析者、设计者、开发者;类图和对象图、状态图、顺序图、合作图和活动图;重要性:描述了系统的静态结构和因发送消息而出现的动态协作关系。静态结构:类图、对象图动态行为:状态图、活动图、时序图、协作图

2022/12/241072.逻辑视图描述如何实现系统内部的功能;2022/12/1描述系统代码构件组织和实现模块,及它们之间的依赖关系;设计者、开发者;构件图;描述系统如何划分软件构件,如何进行编程。

3.构件视图

2022/12/24108描述系统代码构件组织和实现模块,及它们之间的依赖关系;3.描述系统的并发性,并处理这些线程间的通信和同步

;开发者和系统集成者

;状态图、顺序图、合作图、活动图、构件图和配置图

;将系统分割成并发执行的控制线程及处理这些线程的通信和同步

4.进程视图2022/12/24109描述系统的并发性,并处理这些线程间的通信和同步;4.进程视描述系统的物理设备配置;开发者、系统集成者和测试者

;配置图

;描述硬件设备的连接和哪个程序或对象驻留在哪台计算机上执行

5.配置视图2022/12/24110描述系统的物理设备配置;5.配置视图2022/12/1817逻辑视图构件视图部署视图进程视图Usecase视图2022/12/24111逻辑视图构件视图部署视图进程视图Usecase2022/1高级语言程序设计2.1.4UML模型元素2022/12/24112高级语言程序设计2.1.4UML模型元素2022/12/事物关系结构事物行为事物分组事物辅助事物关联关系依赖关系泛化关系实现关系用例类接口协作主动类组件节点状态机交互机包注释模型元素UML聚合关系通用机制视图2022/12/24113事物关系结构事物行为事物分组事物辅助事物关联关系依赖关系泛化1构件事物:UML模型的静态部分,描述概念或物理元素它包括以下几种:类:具有相同属性相同操作相同关系相同语义的对象的描述接口:描述元素的外部可见行为,即服务集合的定义说明协作:描述了一组事物间的相互作用的集合用例:代表一个系统或系统的一部分行为,是一组动作序列的集合构件:系统中物理存在,可替换的部件节点:运行时存在的物理元素另外,参与者、信号应用、文档库、页表等都是上述基本事物的变体2行为事物:UML模型图的动态部分,描述跨越空间和时间的行为交互:实现某功能的一组构件事物之间的消息的集合,涉及消息、动作序列、链接状态机:描述事物或交互在生命周期内响应事件所经历的状态序列3分组事物:UML模型图的组织部分,描述事物的组织结构包:把元素组织成组的机制4注释事物:UML模型的解释部分,用来对模型中的元素进行说明,解释注解:对元素进行约束或解释的简单符号2022/12/241141构件事物:UML模型的静态部分,描述概念或物理元素20关联:连接(connect)模型元素及链接(link)实例。依赖:表示一个元素以某种方式依赖于另一种元素。泛化:表示一般与特殊的关系,即“一般”元素是“特殊”关系的泛化。聚合:表示整体与部分的关系。2022/12/24115关联:连接(connect)模型元素及链接(link)实例。关系(Relationships)关系是将事物联系在一起的方式,UML中定义了四种关系:2022/12/24116关系(Relationships)关系是将事物联系在一起的方类之间的关系----泛化关系在UML中,泛化关系用来表示类与类,接口与接口之间的继承关系.泛化关系有时也称为”isakindof”关系在UML中泛化关系用一条实线空心箭头有子类指向父类2022/12/24117类之间的关系----泛化关系在UML中,泛化关系用类之间的关系----实现关系在UML中,实现关系用来表示类与接口之间的实现关系.在UML中实现关系用一条虚线空心箭头由子类指向父类2022/12/24118类之间的关系----实现关系在UML中,实现关系用类之间的关系----依赖关系对于两个相对独立的系统,当一个系统负责构造另一个系统的实例,或者依赖另一个系统的服务时,这两个系统之间体现为依赖关系.例如生产零件的机器和零件,机器负责构造零件对象;充电电池和充电器,充电电池通过充电器来充电;自行车Bicycle和打气筒Pump,自行车通过打气筒来充气在现时生活中,通常不会为某一辆自行车配备专门的打气筒,而是在需要充气的时候,从附近某个修车棚里借个打气筒打气。在程序代码中,表现为Bicycle类的expand()方法有个Pump类型的参数。以下程序代码表示某辆自行车先后到两个修车棚里充气:2022/12/24119类之间的关系----依赖关系对于两个相对独立的系统,当一类之间的关系----关联关系对于两个相对独立的系统,当一个系统的实例与另一个系统的一些特定实例存在固定的对应关系时,这两个系统之间为关联关系。例如客户和订单,每个订单对应特定的客户,每个客户对应一些特定的订单;公司和员工,每个公司对应一些特定的员工,每个员工对应一特定的公司;自行车和主人,每辆自行车属于特定的主人,每个主人有特定的自行车。而充电电池和充电器之间就不存在固定的对应关系,同样自行车和打气筒之间也不存在固定的对应关系。Person类与Bicycle类之间存在关联关系,这意味着在Person类中需要定义一个Bicycle类型的成员变量2022/12/24120类之间的关系----关联关系对于两个相对独立的系统,当一类之间的关系----关联关系在现时生活中,当骑自行车去上班时,只要从家里推出自己的自行车就能上路了,不象给自行车打气那样,在需要打气时,还要四处去找修车棚。因此,在Person类的goToWork()方法中,调用自身的bicycle对象的run()方法。假如goToWork()方法采用以下的定义方式:那就好比去上班前,还要先四处去借一辆自行车,然后才能去上班。依赖2022/12/24121类之间的关系----关联关系在现时生活中,当骑自行车去上关联关系的名称关联关系的名称:关联关系可以有一个名称,用于描述该关系的性质.此关联名称应该是动词短语,因为它表明源对象正在目标对象上执行动作.2022/12/24122关联关系的名称关联关系的名称:关联关系可以有一个名称,用关联关系的角色当一个类处于关联的某一端时,该类就在这个关系中扮演一个特定的角色.具体来说,角色就是关联关系中一个类对另一个类所表现的职责.角色名称是名词或名称短语.2022/12/24123关联关系的角色当一个类处于关联的某一端时,该类就在这个关系关联关系的多重性关联关系的多重性是指有多少对象可以参与该关联,多重性可以用来表达一个取值范围,特定值,无限定的范围.2022/12/24124关联关系的多重性关联关系的多重性是指有多少对象可以参与该关联关联关系----聚合关系聚合关联是一种特殊的关联.它表示类间的关系是整体与部分的关系.简言之:关联关系中的一个类描述了一个较大的事物,它由较小的事物组成.聚合关系描述了“hasa”的关系,即整体对象拥有部分对象整体和部分之间用空心菱形箭头的连线连接,箭头指向整体2022/12/24125关联关系----聚合关系聚合关联是一种特殊的关联.它表关联关系----组成关系组合关系是更强形式的聚合.组合关系中,整件拥有部件的生命周期,所以整件删除时,部件一定会跟着删除.而且,多个整件不可以同时共享同一个部件。聚合关系中,整件不会拥有部件的生命周期,所以整件删除时,部件不会被删除.再者,多个整件可以共享同一个部件.UML中组成关系用实心的菱形实线表示2022/12/24126关联关系----组成关系组合关系是更强形式的聚合.20关联关系----导航性导航性表示可从源类的任何对象到目标类的一个或多个对象遍历.即:给定源类的一个对象,可以得到目标类的所有对象.可以在关联关系上加上箭头表示导航方向.只在一个方向上可以导航的关联称为单向关联,用一个带箭头的方向表示;在两个方向上都可以导航的关联称为双向关联,用一条没有箭头的实线表示.2022/12/24127关联关系----导航性导航性表示可从源类的任何对象到目标2.2UML系统模型与建模2.2.1用例模型及组成成分2.2.2静态模型与系统体系结构建模2.2.3动态模型与行为控制流建模2022/12/241282.2UML系统模型与建模2.2.1用例模型及组成成分2.2UML系统模型与建模三大类九种图表示用例模型图:由用例图组成。静态模型图:由类图、对象图、包图、构件图和配置图组成。动态模型图:由活动图、顺序图、状态图和合作图组成。2022/12/241292.2UML系统模型与建模三大类九种图表示用例模型图:由2.2.1用例模型及组成成分用例模型描述的时外部执行者所理解的系统功能。用例模型有若干用例图组成。用例图从用户的角度出发描述系统的功能需求,展示系统外部的各类角色与系统内部的各种用例之间的关系。用例模型驱动需求分析之后各阶段的开发。2022/12/241302.2.1用例模型及组成成分用例模型描述的时外部执行者所理静态模型:指对系统中对象之间相互进行的联系构建模型,这些关系不随时间发生变化。UML系统建模用于描述系统体系机构。1.类图(Classdiagram)类图描述系统所包含的类、类的内部结构及类之间的关系类图是逻辑视图的重要组成部分,用于对系统的静态结构建模。2.2.2静态模型与系统体系结构建模2022/12/24131静态模型:指对系统中对象之间相互进行的联系构建模型,这些关系类的图符分为长式和短式。如图2.5长式由类名、属性和操作三部分组成。类及类型名均用英文大写字母开头;属性和操作名为小写字母开头。2022/12/24132类的图符分为长式和短式。如图2.52022/12/18392.对象图diagram)对象图是类图的一个具体实例对象图符中对象名加了下划线.图2.6类图与对应的对象图.2022/12/241332.对象图diagram)对象图是类图的一个具体实例20223.包图包是一组分组机制,有一组关系密切的模型元素构成。包可以嵌套。包图是维护和控制系统总体结构的重要建模工具。包的内容:构成包的模型元素。包用于模型的组织管理时,称为子系统。包图表明包及其之间的依赖关系。2022/12/241343.包图包是一组分组机制,有一组关系密切的模型元素构成。包可2022/12/241352022/12/18424.构件图组件图显示代码本身的逻辑结构,它描述系统中存在的软件构件以及各构件之间的依赖关系。构件是系统体系结构中独立的物理可替换单位。构件可以看成是包与类对应的物理代码模块,逻辑上与包和类对应,实际上是一个文件。2022/12/241364.构件图组件图显示代码本身的逻辑结构,它描述系统中存在的软2022/12/241372022/12/18445.配置图配置图描述系统中软件和硬件的配置情况和系统体系结构,显示系统运行时刻的结构。配置图有结点和连接。结点指实际的物理设备及在该结点上运行的构件或对象。节点是一组运行期间的系统资源,如计算机、数据库、设备或存储器。描述一组节点及其关系,允许评估分配结果和资源分配。2022/12/241385.配置图配置图描述系统中软件和硬件的配置情况和系统体系结2022/12/241392022/12/1846动态模型主要描述系统的动态行为和控制结构。动态行为包括:对象生存期内的状态及状态迁移;对象之间动态合作关系,显示对象间交互过程和交互顺序;描述为面组用例所进行的活动及活动间的约述关系。动态模型包括:状态图、活动图、顺序图、合作图。2.2.3动态模型与行为控制流建模

2022/12/24140动态模型主要描述系统的动态行为和控制结构。2.2.3动态1.顺序图(SequenceDiagram)用来描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。顺序图的一个用途是用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或引起状态转换的触发事件。两个轴:水平轴--对象;垂直轴--时间;垂直虚线--生命线,表示某段时间内对象存在。箭头:消息细长矩形框:表示对象的激活状态2022/12/241411.顺序图(SequenceDiagram)用来描述对象之2022/12/241422022/12/18492.合作图描述对象间的协作关系,协作图跟顺序图相似,显示对象间的动态合作关系。除显示信息交换外,协作图还显示对象以及它们之间的连接关系.合作图画成对象图,消息箭头表示对象间的消息流向,消息箭头必须附加标记,说明消息发送的先后顺序。协作图的一个用途是表示一个类操作的实现。2022/12/241432.合作图描述对象间的协作关系,协作图跟顺序图相似,显示对象2.合作图2022/12/241442.合作图2022/12/18513.状态图状态图是对类的一种补充描述,它展示了此类对象所具有可能的状态以及某些事件发生时其状态的转移情况。与交互图不同,交互图对共同工作的对象群体的行为建模,而状态图对单个对象的状态变化行为建模。事件状态迁移迁移动作2022/12/241453.状态图状态图是对类的一种补充描述,它展示了此类对象所具4.活动图

活动图是状态图的一个变体,用来描述执行算法的工作流程中涉及的活动活动图描述了一组顺序的或并发的活动

可以描述操作的行为;也可以描述用例和对象的内部工作过程。状态图-事件触发;活动图-一个活动结束自动进入下一活动。2022/12/241464.活动图活动图是状态图的一个变体,用来描述执行算法的工活动图2022/12/24147活动图2022/12/1854上述十种模型图可归纳为五种类型用例图:用例图静态图:类图、对象图、包图交互图:顺序图、协作图行为图:状态图、活动图实现图:组件图、部署图2022/12/24148上述十种模型图可归纳为五种类型2022/12/18552.3UML系统体系结构模型2.3.1子系统组织的系统体系结构2.3.2系统模型组织的系统体系结构2.3.3系统体系结构模型的描述方式2022/12/241492.3UML系统体系结构模型2022/12/18562.3.1子系统组织的系统体系结构子系统是描述系统某个行为的相对独立的抽象单位。每个子系统都有自己独立的接口,通过接口各个子系统相互交换信息,协同工作。子系统用“包”图符元素加上构造型<<subsysem>>表示;子系统也可以用右上角带有分支图形的“包”图符元素表示。2022/12/241502.3.1子系统组织的系统体系结构子系统是描述系统某个如果采用由子系统包描述系统的体系结构图,其最底层(叶结点)元素必须由模型包描述。而模型包一般用右上角带三角图形的图标元素“包”表示。图2-16不是一个完整的由子系统包组成的系统体系结构图。2022/12/24151如果采用由子系统包描述系统的体系结构图,其最底层(叶结点)元2.3.2系统模型组织的系统体系结构

UML中,系统模型一般用右上角带有三角图形的“包”图符元素表示,并且可以在模型名上标注构造性<<Model>>2022/12/241522.3.2系统模型组织的系统体系结构UML中,系统模型2.3.3系统体系结构模型的描述方式在UML中,一个系统体系结构层次可以用两种描述方式:基于模型的系统体系结构层次基于子系统的系统体系结构层次2022/12/241532.3.3系统体系结构模型的描述方式在UML中,一个系统2022/12/241542022/12/1861在用包描述一个多层的系统体系结构时,在较高的各层次结构中既可以用模型包作为元素,也可以用子系统包作为模型元素。但在最底层只能用模型包作为元素。一般为了简便采用简单的包图(不带分支或三角图符的包)来建立系统的体系结构。2022/12/24155在用包描述一个多层的系统体系结构时,在较高的各层次结构中既可2.4UML的扩展、调整机制2.4.1模型元素的分类与标记2.4.2模型元素的特性规格说明

2.4.3模型元素的语义扩展与约束2022/12/241562.4UML的扩展、调整机制2.4.1模型元素的分类2.4UML的扩展、调整机制模型元素UML通用机制视图修饰注解规格说明通用划分扩展机制2022/12/241572.4UML的扩展、调整机制模型元素UML通用机制视图UML的公共机制2022/12/24158UML的公共机制2022/12/18652022/12/241592022/12/1866特性规格说明2022/12/24160特性规格说明2022/12/18672.4UML的扩展、调整机制2.4.1模型元素的分类与标记2022/12/241612.4UML的扩展、调整机制2.4.1模型元素的分2.4.2模型元素的特性规格说明

2022/12/241622.4.2模型元素的特性规格说明2022/12/1862.4.3模型元素的语义扩展与约束2022/12/241632.4.3模型元素的语义扩展与约束2022/12/187UML的建模原则2022/12/24164UML的建模原则2022/12/1871小结2022/12/24165小结2022/12/18722.5UML与软件开发统一过程2022/12/241662.5UML与软件开发统一过程2022/12/1873RUP的特点RUP的二维开发模型RUP可以用二维坐标来描述。横轴通过时间组织,是过程展开的生命周期特征,体现开发过程的动态结构;纵轴以内容来组织,是自然的逻辑活动,体现开发过程的静态结构。2022/12/24167RUP的特点RUP的二维开发模型2022/12/18742.5.1迭代、渐增式的开发过程

1.开始阶段

主要确定项目的范围和目标,并进行可行性分析。理解问题领域的各种业务过程及其关系考虑和分析项目成本及可能得到的效益和风险明确待开发项目的意义和价值确定是否要开发此项目2022/12/241682.5.1迭代、渐增式的开发过程1.开始阶段20222.详细规划阶段收集详细的系统需求,进行高层次的系统分析和系统设计。对问题领域和功能作详细分析,画用例图。建立系统的基础体系结构。进行风险分析,并制定对策。制定开发计划2022/12/241692.详细规划阶段收集详细的系统需求,进行高层次的系统分析和系制订计划包括:(1)用例分类1)将用例

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论