1、uml中图的放置位置
注释:
用例视图
用例视图中包括了系统中的所有参与者、用例和用例图,必要时还可以在用例视图中添加顺序图、活动图等
逻辑视图
逻辑系统关注系统是如何实现用例中所描述的功能的,主要是对系统功能性需求提供支持,即为用户提供服务方面,系统所应提供的功能。逻辑视图下的模型元素包括类图、顺序图和状态图等
组件视图
组件视图用来描述系统中各个实现模块以及它们之间的关系。组件视图包括模型代码库、执行文件、运行库和其它组件信息,按照内容来划分有包、组件和组件图组成。
部署视图
部署图显示系统的实际部署情况,它是为了便于理解系统在一组处理节点上的物理分布。部署视图中包括进程、处理器和设备。
较为重要的概念:
1、由参与者、用例以及用例与用例之间的关系构成的用于描述系统功能的动态视图称为用例图
参与者
2、参与者(Actor)是指存在于系统外部并直接与系统交互的人、系统或设备等。
参与者按是否使用系统核心功能可分为主要参与者与次要参与者。
用例
4、用例是系统为参与者提供的功能。
对于对用例的命名,我们可以给用例取一个简单、概括性的名称,一般为带有动作性的词。
用例在画图中用椭圆来表示
实线箭头,在用例图中用于连接参与者与用例,箭头方向指向用例。
5、用例关系
用例之间的关系包括:
① 包含关系(include)
包含(include)关系指的是两个用例之间的关系,
其中一个用例(称作基本用例,base use case)的行为包含了另一个用例(称作包含用例,inclusion case)的行为
② 扩展关系(extend)
扩展(extend)关系:将基用例中一段相对独立并且可选的动作,用扩展(Extension)用例加以封装,再让它从基用例中声明的扩展点(Extension Point)上进行扩展,从而使基用例行为更简练和目标更集中
③ 泛化关系(generalization)
泛化(generalization)代表一般与特殊的关系。
在泛化关系中,子用例继承了父用例的行为和含义。 下图为购买彩票的简单实现方式
用例图练习
注意:用例之间的关系尤为重要,结合软件分析。
2、选择编程语言
3、 添加符号
4、uml中图的分类
类型 包含图
1、静态图 类图、对象图、包图
2、行为图 状态图、活动图
3、用例图 用例图
4、交互图 顺序图、协作图
5、实现图 组件图、部署图
5、Rose主页视图说明
类图:
Rose中类生成java代码:正向工程
左键选中类->Tool->Java/J2EE->Generate Code->
由代码生成图形:逆向工程
Reverse Engineer
类与类之间的关系:
1、泛化关系
2、实现
3、关联
4、依赖
1、依赖(Dependency)
类一方的改动将引起另一方的变动。这是一种典型的临时关系,代表了类之间的一种短暂的交互。依赖关系在 Java 语言中体现为局部变量、方法的参数或者对静态方法的调用,
依赖用虚线箭头,箭头指向依赖的类。
在java 中. 依赖关系体现为: 局部变量, 方法中的参数, 和对静态方法的调用.
如工具类,现实生活中人与锤子。
2、泛化(Generalization)
在Java中此类关系通过关键字extends明确标识,依赖的特例
泛化定义了一般元素和特殊元素之间的分类关系,如果从面向对象程序设计语言的角度来说,类与类之间的泛化关系就是平常所说的类之间的继承关系。如人与男人和女人的关系 。
使用空心箭头标示泛化,箭头指向基类。
3、实现(Realization)
在Java中此类关系通过关键字implements明确标识,依赖的特例
实现是一种类与接口的关系, 表示类是接口所有特征和行为的实现
实现用带三角箭头的虚线表示,箭头指向接口
4、关联(Association)
关联关系是类与类之间的联结,它使一个类知道另一个类的属性和方法 ,关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。在 Java 中,关联关系是通过使用成员变量来实现的。 如人与身份证
双向关联:可以用两个箭头,也可以用不带箭头的实线。
5、聚合(Aggregation):
聚合关系描述的是部分与整体关系的关联,描述了“has a”的关系,汽车整车与发动机、座椅的关系
聚合关系是关联关系的一种,是更强的关联关系。
聚合是整体和部分之间的关系,例如汽车由引擎、轮胎以及其它零件组成。
聚合关系也是通过成员变量来实现的。但是,关联关系所涉及的两个类处在同一个层次上,而聚合关系中,两个类处于不同的层次上,一个代表整体,一个代表部分。
箭头指向到部分
汽车报废了可能发动机还完好无损
6、组合(Composition):
组合关系是一种更强形式的关联,整合控制成员的生命周期,如公司与部门的关系
UML类图关系中合成关系是关联关系的一种,是比聚合关系还要强的关系。
代表整体的对象负责代表部分对象的生命周期。
公司能创建部门
数据分装成类
类与类之间的关系
上面的关系可以用正向工程和逆向工程呈现