UML模型图

日期: 栏目:足球直播 浏览:51 评论:0

  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

(1). 关联关系(association)

  表示对象之间的联系

  描述类的结构之间的关系。具有方向、名字、角色和多重性等信息。一般的关联关系语义较弱。也有两种语义较强,分别是聚合与组合

  表示类与类之间的连接,它使得一个类知道另外一个类的属性和方法。

  关联可以使用单箭头表示单向关联,使用双箭头或者不适用箭头表示双向关联,不建议使用双向关联,关联有两个端点,每个端点可以有一个基数,表示这个关联的类可以有几个实例。

  在这里插入图片描述

  关联关系体现的是两个类,或者类与接口之间的强依赖关系,这种关系很强烈,比依赖更强,不是偶然性的,也不是临时性的,而是一种长期性,相对平等的关系

  表现在代码层面,为被关联的类B以类属性的形式出现在类A中,也可能是关联类A引用了被关联类B的全局变量。

  (2). 聚合关系(aggregation)

  特殊关联关系,指明一个聚集(整体)和组成部分之间的关系

  表示两个类之间是“is part of”关系,即整体–部分关系。

  是关联关系的特例,是强的关联关系,聚合是整个与个体的关系,即has-a关系,

  此时整体和部分是可以分离的,他们具有各自的生命周期,部分可以属于多个对象,也可以被多个对象共享

  在这里插入图片描述

(3). 组合关系(compostion)

  语义更强的聚合,部分和整体具有相同的生命周期

  组合关系应该是A类的属性中含有一个B的对象;构成has a关系

  也是关联关系的一种特例,体现的是一种contain-a关系,比聚合更强,是一种强聚合关系。它同样体现整体与部分的关系,但此时整体与部分是不可分的,整体生命周期的结束也意味着部分生命周期的结束

  它表示部分对象被嵌入到整体对象中。

  在这里插入图片描述

(4). 泛化关系(继承关系)(generalization)

  在面向对象中一般称为继承关系,存在于父类与子类、父接口与子接口之间

  关系时指一个类(子类、子接口)继承另外一个类(称为父类、父接口)的功能,并可以增加它自己新功能的能力,继承是类与类或者接口与接口最常见的关系,在Java中通过关键字extends来表示

  在这里插入图片描述

(5). 实现关系(realization)

  对应于类和接口之间的关系

  是指一个class实现interface接口(一个或者多个),表示类具备了某种能力,实现是类与接口中最常见的关系,在Java中通过implements关键字来表示。

  在这里插入图片描述

(6). 依赖关系(dependency)

  表示类与类之间的连接,表示一个类依赖于另外一个类的定义,依赖关系时是单向的。简单理解就是类A使用到了类B,这种依赖具有偶然性、临时性,是非常弱的关系。但是类B的变化会影响到类A。

  在这里插入图片描述

(7). 几种关系强弱比较

  泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

  在这里插入图片描述

  对象图是系统在某一时刻的快照。

  部署图描述系统资源运行时的物理分布,系统资源成为结点

  部署图用于静态建模,是表示运行时过程节点结构、构件实例及其对象结构的图。

  如果含有依赖关系的构件实例放置在不同节点上,部署视图可以展示出执行过程中的瓶颈。

  部署图的两种表现形式:实例层部署图和描述层部署图

  在这里插入图片描述

  部署图与构件图相同的构成元素:

  部署图与构件图的关系:

  组件图描述可重用的系统组件及组件间的依赖

  构件图用于静态建模,是表示构件类型的组织以及各种构件之间依赖关系的图。

  构件图通过对构件间依赖关系的描述来估计对系统构件的修改给系统可能带来的影响。

  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  用例图描述执行者在各个用例中的参与情况

  用例图的功能:

  (1). 定义

  状态机图是对单个类的对象的生命周期进行建模,描述了对象时间上的动态行为,每个对象被认为是事件驱动的孤立实体

  事件表达对象间的调用、显式信号、值的改变或时间的推移

  状态描述对象生命周期的一段时间,可以是等待其它事件时所处的时间,或是执行某一活动时所处的时间,状态分为简单状态和复合状态

  状态图用于揭示Actor、类、子系统和组件的复杂特性。 为实时系统建模。

(2). 状态图的组成

  状态

  转移

  在这里插入图片描述

(1). 定义

  活动图是用状态机对工作流进行建模的特殊形式,它和流程图很类似,不过它支持并发控制

  活动图一般不描述所有的运算细节,它显示活动的流,但不显示执行活动的对象

  活动图处于系统的外部和内部视图之间,所以它可以作为设计的起点,为了完成设计,每个活动必须扩展成一个和多个操作,每个操作被指派给特定的对象来实现

  带有生命线的活动图和无生命线的活动图

  在这里插入图片描述

  在这里插入图片描述

(1). 定义

  对象行为是通过交互来实现的,交互是对象间为完成某一目的而进行的一系列消息交换

  消息是对象间的单向通信,从发送者到接受者的携带信息的控制流消息可能带有值参

  消息序列可用两种图表示:序列图(重点在消息的时间顺序)和协作图(重点在交换消息的对象间的关系)对协作图来说,时间顺序可以从顺序号获得

(1). 定义

  协作图包含分类角色和关联角色,当它实例化时,对象被绑定到分类角色,链被绑定到关联角色。

  协作图对实现协作的对象和链进行建模,而忽略其他对象

  协作图是一种交互图,强调的是发送和接收消息的对象之间的组织结构,使用协作图来说明系统的动态情况。

  协作图主要描述协作对象间的交互和链接,显示对象、对象间的链接以及对象间如何发送消息。

  协作图可以表示类操作的实现。

(2). 协作图与时序图转换

  打开时序图,Ctrl+A选中图中的所有的元素,然后菜单上找到DESIGNE | Model Transformation (MDA) | Transform Selected Elements,在弹出的界面中右边的Transformations 中选Communication, 再点击 Do Transform 即可。

  注释用于解释设计的思路,便于理解

  一个好的模型应该有详尽的注释

  软件模型必须是完整的,以便于软件系统的建造。此模型必须具备足够的详细信息以供软件建造使用。

  构成完整模型的详细信息就是模型的规范说明(简称规范)

  规范说明的内容一般用属性名和属性值的形式来表达。UML中有许多预定义的属性

  属性一般作为模型成分附加说明

  修饰描述UML模型成分最主要的特征

  UML模型中类:

  UML扩充机制(extensibility mechanisms):

  UML是一种建模语言而不是方法,这是因为UML中没有过程的概念,而过程正是方法的一个重要组成部分UML本身独立于过程,这意味着用户在使用UML进行建模时,可以选用任何适合的过程

  在这里插入图片描述

  基于UML的系统开发采取增量迭代开发模型

  在这里插入图片描述

  需求

  最初需求规格说明应当由代表系统最终用户的人员提供,内容包括系统基本功能需求和对计算机系统的要求

  分析

  分析的任务是找出系统的所有需求并加以描述,同时建立模型,以定义系统中的关键领域类,应由系统用户和开发人员合作完成

  分析的第一步是定义用例,以描述所开发系统的外部功能需求用例分析包括阅读和分析需求说明,此时需要与系统的潜在用户进行讨论

  设计

  设计阶段的任务是通过综合考虑所有的技术限制,以扩展和细化分析阶段的模型

  设计阶段可以分为两个部分:

  实现

  构造或实现阶段是对类进行编程的过程可以选择某种面向对象对象编程语言(如Java)作为实现系统的软件环境Java很容易实现从逻辑视图到代码部件的映射,因为类到Java代码文件之间是一一映射关系

  测试和配置

  完成系统编码后,需要对系统进行测试,它通常包括:单元测试、集成测试、系统测试和验收测试

  如果把软件开发比作学校建一座高楼,那么软件工程就是指导我们怎么盖,不至于在构建一座大楼的时候,最后不知不觉变成四不像大佬们都在玩{精选官网网址: www.vip333.Co }值得信任的品牌平台!。而UML图正是对大楼主体架构的设计。软件工程是软件开发设计的灵魂,是我们前进的思想性指导。它使我们的设计有法可依,有章可循。比如我们学校现在盖的大楼,必须要有蓝图来规划哪块哪块盖什么楼,什么类别的都是前期需要用例建模来具体协商的。

  具体步骤:

  1.前期的需求分析描述需要用例图,用例图的使用者是学校,了解这栋大楼的主体结构,功能是什么,教学楼还是宿舍。学校最关心的是楼质量问题和安全性,是否能够满足学生的基本使用。

  2.进一步需要设计楼内部的具体结构,此时就需要类图,对象图,组件图和部署图来制定标准化的结构,详细的描述内部需求和具体设施的安排,为具体施工指明工作点。大佬们都在玩{精选官网网址: www.vip333.Co }值得信任的品牌平台!

  3.接下来就需要安排具体的人员开工,活动图安排各个工种在自己的岗位工作;状态图安排施工设备的使用情况,表明设备的忙碌和空闲状态;而具体施工步骤需要工程安排每一块的开始,不能先上后下,从基地开始。

  此外还需要各个施工队的协作,连接性是这个工程的最后标志,各个团队之间必须密切协作才能完成整体的。

  在这里插入图片描述

  用例图用来建模客户的需求。角色以及系统功能建模是用例建模来画的。它们之间的关系建模被用于角色和用例。每个用例都代表了客户的需求。需求分析不仅适用于软件系统进行而且适用于建筑工程行业。

  此阶段是寻找问题 -就是找刺的,需要考虑系统可能遇到的问题是主要的工作。借助于逻辑视图和动态视图实现。系统的静态由类图来建模,系统的动态则是协作图、序列图、活动图和状态图建模。只是列出系列的问题和稍微一点解决思路,不作出详细的解决方案。只是大方向上的做出引导,提纲,具体细节需要下一阶段结合实际分析。

  将分析阶段列出的问题进行汇总,根据提纲作出具体、细节办法。进而把分析结果扩展为技术层次的解决依据,不在停留在文字方面,需要依靠用户接口提供技术基础结构。数据库在这个技术基础结构中,分析阶段的领域问题类被嵌入在其中。构造阶段的详细的规格说明是设计阶段的结果。

  把设计阶段的类转换成某种面向对象程序设计语言的代码。只能在构造阶段实现代码的转变,其他阶段不能!在对UML表述的分析和设计模型进行转换时,最好不要直接把模型转化成代码。在早期阶段,模型是理解系统并对系统进行结构化的手段。

  根据测试的先后顺序排序:单元测试、集成测试、系统测试和接受测试。不同的测试采用不同的UML图作为工作的基础。类图和类的规格说明是单元测试;组件图和协作图的是集成测试;系统测试实现用例图来确认系统的行为符合这些图中的定义。大佬们都在玩{精选官网网址: www.vip333.Co }值得信任的品牌平台!

  在系统测试阶段,UML模型还可以作为测试阶段的依据。如单元测试使用类图和类规格说明;集成测试使用组件图和协作图;系统测试用例图来验证系统的行为;验收测试由用户进行,以验证系统测试的结果是否满足在分析阶段确定的需求。

UML模型图

UML模型图