用例图、类图中有哪些关系
2015-08-29 10:42
302 查看
用例图中的关系有关联(Association)、泛化(Generalization)、包含(Include)、扩展(Extend)。
类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization), 关联(Association), 聚合(Aggregation), 组合(Composition), 依赖(Dependency)。
关联、泛化、实现、聚合、组合、依赖在我的博客UML的四种关系(如需浏览请猛戳红色字体)中已经详细阐述过了,这里着重讲一下包含和扩展。
(1)包含关系(Include):
定义 : 当两个或多个用例中共用一组相同的动作时,可以将相同的动作提取出来作为一个单独的子用例,供多个基用例所共享。因为子用例被抽出,基用例并非一个完整的用例,所以包含关系中的基用例必须和子用例一起使用才够完整,执行基用例子用例也必然被执行。
用例图中使用带箭头的虚线表示(在线上标注<<include>>),箭头从基用例指向子用例。
包含实例:
众所周知,只要执行维护数据库操作必然要用到增删改查四大功能,图示就表示维护数据库动作中包含增、删、改、查(箭头指向被包含方)。
(2)扩展关系(Extend):
定义:是对基用例的扩展,基用例是一个完整的用例,即使没有子用例的参与,也可以完成一个完整的功能。扩展的基用例中存在一个扩展点,只有扩展点被激活时,子用例才会被执行。
用例图中使用带箭头的虚线表示(在线上标注<<extend>>),箭头从子用例指向基用例。
例如:
查询学生信息上机记录和查询学生充值记录模块可以不需要子用例的参与而独自完成。只有点击导出为excel按钮时才会执行相应的导出动作。
小结:
包含和扩展的区别:包含关系中,子用例是基用例不可或缺的一部分,只要基用例被执行,子用例一定会执行;扩展关系中,子用例是基用例单纯的功能扩展,即使没有子用例的参与,基用例的功能一样能完成。
类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization), 关联(Association), 聚合(Aggregation), 组合(Composition), 依赖(Dependency)。
关联、泛化、实现、聚合、组合、依赖在我的博客UML的四种关系(如需浏览请猛戳红色字体)中已经详细阐述过了,这里着重讲一下包含和扩展。
(1)包含关系(Include):
定义 : 当两个或多个用例中共用一组相同的动作时,可以将相同的动作提取出来作为一个单独的子用例,供多个基用例所共享。因为子用例被抽出,基用例并非一个完整的用例,所以包含关系中的基用例必须和子用例一起使用才够完整,执行基用例子用例也必然被执行。
用例图中使用带箭头的虚线表示(在线上标注<<include>>),箭头从基用例指向子用例。
包含实例:
众所周知,只要执行维护数据库操作必然要用到增删改查四大功能,图示就表示维护数据库动作中包含增、删、改、查(箭头指向被包含方)。
(2)扩展关系(Extend):
定义:是对基用例的扩展,基用例是一个完整的用例,即使没有子用例的参与,也可以完成一个完整的功能。扩展的基用例中存在一个扩展点,只有扩展点被激活时,子用例才会被执行。
用例图中使用带箭头的虚线表示(在线上标注<<extend>>),箭头从子用例指向基用例。
例如:
查询学生信息上机记录和查询学生充值记录模块可以不需要子用例的参与而独自完成。只有点击导出为excel按钮时才会执行相应的导出动作。
小结:
包含和扩展的区别:包含关系中,子用例是基用例不可或缺的一部分,只要基用例被执行,子用例一定会执行;扩展关系中,子用例是基用例单纯的功能扩展,即使没有子用例的参与,基用例的功能一样能完成。
相关文章推荐
- 灵州会盟及民族友好历史传统研讨会在吴忠召开
- nusoap传递对象数组
- 1049 -- 矩阵翻转
- Leetcode: Reverse Linked List
- javascript再探
- 《TCP/IP详解卷1:协议》——第3章 IP:网际协议(转载)
- 详解slf4j+logback在java工程中的配置
- 对人类社会的认识
- 1048 -- 求某一整数序列的全排列问题
- Nginx防爬虫或限制浏览器访问
- android开发SQLite之getReadableDatabase() 和 getWritableDatabase()方法
- 程序员面试金典1.5:实现字符串的压缩功能
- 来发背包开开胃(OJ--3303
- 《程序员思维训练》读书小记
- IOS开发中@2x图片等适应不同分辨率手机
- 机器学习算法与Python实践之(七)逻辑回归(Logistic Regression)
- linxu shell iconv 转码问题
- 【Python系列1】中文分词之后输出最大长度词
- URAL 1012 K-based Numbers. Version 2 dp+大数
- Adapter数据变化改变现有View的实现原理及案例