软件系统分析与设计 UML 期末考试复习总结
一、十个图的定义和基本图形的符号
UML中有10种基本视图可以完整地描述出所建造的系统,这10种图是用例图、类图、对象图、包图、构件图、配置图、活动图、顺序图、状态图和合作图。
0.UML的所有图的分类
从视图的角度:
1、用例视图:用例图、活动图
2、逻辑视图:类图、对象图、状态图、顺序图、合作图、活动图
3、构件视图:构件图——反映文件的依赖关系的图形
构件:文件(源文件、头文件、辅助文件等等)
4、进程视图:状态图、顺序图、合作图、活动图、构件图和配置图
5、配置视图:配置图
配置:设备(硬件设备、计算机、服务器等等)
从模型的角度
1、用例模型图:用例图
2、静态模型图:类图、对象图、包图、构件图、配置图
3、动态模型图:活动图、顺序图、状态图、合作图
1.用例图
由参与者(Actor)、用例(Use Case)以及它们之间的关系构成的用于描述系统功能的动态视图称为用例图。要在用例图上显示某个用例,可绘制一个椭圆,然后将用例的名称放在椭圆的中心或椭圆下面的中间位置。
要在用例图上绘制一个参与者(表示一个系统用户),可绘制一个人形符号。参与者和用例之间的关系使用带箭头或者不带箭头的线段来描述,箭头表示在这一关系中哪一方是对话的主动发起者,箭头所指方是对话的被动接受者。
1、小人:执行者——角色
2、椭圆:用例——操作,用动词短语描述
3、长方形:系统边界
在项目开发过程中,边界是一个非常重要的概念。这里说的系统边界是指系统与系统之间的界限。通常我们所说的系统可以认为是由一系列的相互作用的元素形成的具有特定功能的有机整体。
系统同时又是相对的,一个系统本身又可以是另一个更大系统的组成部分,因此,系统与系统之间需要使用系统边界进行区分开来。我们把系统边界以外的同系统相关联的其他部分,称之为系统环境。
4、线段:执行者参与到某个操作的执行过程中
5、用例之间的关系:
(1)includes包含(用虚线箭头,加上构造型):无条件
(2)extends扩展(用虚线箭头,加上构造型):有条件
(3)继承(用实线箭头,加上空心三角形)
包含
包含关系指用例可以简单地包含其他用例具有的行为,并把它所包含的用例行为作为自身行为的一部分。在UML中,包含关系是通过带箭头的虚线段加<>字样来表示,箭头由基础用例(Base)指向被包含用例(Inclusion)。
在处理包含关系时,具体的做法就是把几个用例的公共部分单独的抽象出来成为一个新的用例。主要有两种情况需要用到包含关系:
第一,多个用例用到同一段的行为,则可以把这段共同的行为单独抽 象成为一个用例,然后让其他用例来包含这一用例。
第二,某一个用例的功能过多、事件流过于复杂时,我们也可以把某一段事件流抽象成为一个被包含的用例,以达到简化描述的目的。
2. 扩展
在一定条件下,把新的行为加入到已有的用例中,获得的新用例叫做扩展用例(Extension),原有的用例叫做基础用例(Base),从扩展用例到基础用例的关系就是扩展关系。
一个基础用例可以拥有一个或者多个扩展用例,这些扩展用例可以一起使用。
3.泛化
用例的泛化指的是一个父用例可以被特化形成多个子用例,而父用例和子用例之间的关系就是泛化关系。
在用例的泛化关系中,子用例继承了父用例所有的结构、行为和关系,子用例是父用例的一种特殊形式。
子用例还可以添加、覆盖、改变继承的行为。在UML中,用例的泛化关系通过一个三角箭头从子用例指向父用例来表示。
泛化的示例:银行存款有两种方式,一种是银行柜台存款,一种是ATM机存款。在这里,银行柜台存款和ATM机存款都是存款的一种特殊方式,因此“存款”为父用例,“银行柜台存款”和“ATM机存款”为子用例。
2.活动图
活动图是一种用于描述系统行为的模型视图,它可用来描述动作和动作导致对象状态改变的结果,而不用考虑引发状态改变的事件。
在UML中,活动的起点用来描述活动图的开始状态,用黑的实心圆表示。活动的终止点描述活动图的终止状态,用一个含有实心圆的空心圆表示。活动图中的活动既可以是手动执行的任务,也可以是自动执行的任务,用圆角矩形表示。
1、活动:左右两个半圆形的矩形。一些动作或操作构成。用动词表示。
2、迁移:实线箭头。迁移是无条件的。不需要标明文字。
3、起始活动:实心圆点。只能有一个。
4、结束活动:空心圆含有一个实心圆点。可以有多个。
5、条件判定:菱形。一个入迁移,两个或多个出迁移。每个出迁移标明条件。条件应放入方括号中。
6、并发(同步):粗短线段——并发杆(同步杆)
(1)并发分劈:一个入迁移,多个出迁移
(2)并发接合:多个入迁移,一个出迁移
7、泳道:两条平行的垂直线。用于将活动分给不同的对象,每一个对象时一条泳道。(不是每个活动图所必需的)。可以代表对象或者页面。
用泳道表示并发是很清晰的。
动作:一个原子的活动、操作,无法细分。
活动:很多个动作构成,可以细分。
3.类图
4.对象图
对象图:类图的实例
1、长式:
(1)第一行是对象名和类名,加下划线,
第二行是属性(成员变量)的名称和值
第三行是操作(成员函数或方法)的名称、形参、返回值
2、短式:只有对象名和类名,加下划线
对线图基本元素
5.包图
1、基本单元:包——用于对类进行分类
(1)图标:大矩形的左上角有小矩形
2、包的嵌套
3、包之间的关系:
(1)依赖
(2)继承
(3)分层次——嵌套关系
包图基本元素
6.顺序图
1、对象:长方形。对象名下方加下划线。
2、生存线:垂直虚线。生存线上的消息是从上往下顺序执行。
3、**期:垂直的细长的长方形框
4、消息:箭头。可以加序号,也可以不加序号。
三、顺序图的一些注意细节:
1、构造消息:可以直接指向接收者对象(也可以指向接收者对象的生存线)。可以画成异步消息。
2、把同步消息和返回消息合并:
3、自调用消息:接收者和发送者是同一个对象。
4、释放消息:访问析构函数,释放对象占据的存储空间。可以在消息的末端画一个叉号。
5、分支:条件是用方括号括住,每个分支上都应该有条件。
6、约束标记:用花括号括住。
例子:时间上的约束。
7、循环:用一个大的方框框住一些消息,在方框的底部写出条件。
7.合作图
合作图(协作图)
一、组成部分
1、对象
2、链接:反映出 实体之间的关系(一对一、一对多、多对多)
3、消息:方法的调用,成员函数的调用
合作图基本元素
8.状态图
状态图的图标
1、状态:圆角矩形。
(1)长式画法:三行。状态名、状态变量(状态属性)、活动
(2)短式画法:一行。状态名。
2、迁移:实线箭头。
从源状态迁移到目的状态。
3、起始状态
4、结束状态
5、条件判定:菱形
6、并发(同步)杆:粗线段
(1)并发分劈
(2)并发接合
7、信号
(1)发出的信号
(2)收到的信号
9.构件图
构件图的图符:
(1)构件:带两个小方框的大的长方形。代表是一个文件。
写 文件名,或者写 子系统名::文件名。
还可以写 类名,还可以写 对象名。
构件图基本元素
10.配置图
二、构件图的建模步骤
这是之前程序的构件图,感觉就是画各个文件之间的依赖关系,首先要找准最底层被包含的文件,一般是头文件,然后层层向上,找到包含头文件的源文件或者头文件。
包含关系是指向被包含的,被包含的更改会影响包含他的文件。
后产生的文件依赖于先产生的。
三、状态图和活动图的共同点
四、用例建模的步骤
五、顺序图的主要组成部分
参考上文