用例图——详解
来源:互联网 发布:应聘java简历自我评价 编辑:程序博客网 时间:2024/06/14 18:02
【用例图 定义】
用例图是指由参与者(Actor)、用例(Use Case)以及它们之间的关系构成的用于描述系统功能的静态视图。用例图(User Case)是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模
【用例图 构成】
1参与者
参与者不是特指人,是指系统以外的,在使用系统或与系统交互中所扮演的角色。因此参与者可以是人,可以是事物,也可以是时间或其他系统等等。还有一点要注意的是,参与者不是指人或事物本身,而是表示人或事物当时所扮演的角色。
例如:
小明是图书馆的管理员,他参与图书馆管理系统的交互,这时他既可以作为管理员这个角色参与管理,也可以作为借书者向图书馆借书,在这里小明扮演了两个角色,是两个不同的参与者。参与者在画图中用简笔人物画来表示,人物下面附上参与者的名称。
2用例
用例是对包括变量在内的一组动作序列的描述,系统执行这些动作,并产生传递特定参与者的价值的可观察结果。这是UML对用例的正式定义,对我们初学者可能有点难懂。我们可以这样去理解,用例是参与者想要系统做的事情。对于对用例的命名,我们可以给用例取一个简单、描述性的名称,一般为带有动作性的词。用例在画图中用椭圆来表示,椭圆下面附上用例的名称。
3系统边界
系统边界是用来表示正在建模系统的边界。边界内表示系统的组成部分,边界外表示系统外部。系统边界在画图中用方框来表示,同时附上系统的名称,参与者画在边界的外面,用例画在边界里面。因为系统边界的作用有时候不是很明显,所以我个人理解,在画图时可省略。
4箭头
箭头用来表示参与者和系统通过相互发送信号或消息进行交互的关联关系。箭头尾部用来表示启动交互的一方,箭头头部用来表示被启动的一方,其中用例总是要由参与者来启动。
【用例图 作用】
用例图
主要的作用有三个:(1)获取需求;(2)指导测试;(3)还可在整个过程中的其它工作流起到指导作用。元素之间的关系
关系包括用例之间的关系,角色之间的关系,用例和角色之间的关系。
角色之间的关系
角色之间的关系。由于角色实质上也是类,所以它拥有与类相同的关系描述,即角色之间存在泛化关系
(泛化关系的含义是把某些角色的共同行为提取出来表示为通用的行为)
用例之间的关系:
包含关系:基用例的行为包含了另一个用例的行为。基本用例描述在多个用例中都有的公共行为。包含关系本质上是比较特殊的依赖关系。它比一般的依赖关系多了一些语义。在包含关系中箭头的方向是从基本用例到包含用例。
本泛化关系:代表一般与特殊的关系。它的意思和继承的概念是类似的。不同的是继承使用在实施阶段,泛化使用在分析、设计阶段。在泛化关系中子用例继承了父用例的行为和含义,子用例也可以增加新的行为和含义或者覆盖父用例中的行为和含义。
扩展关系的基本含义和泛化关系类似,但在扩展用例到基本用例,这与包含关系是不同的。
关系中,对于扩展用例有更多的规则限制,基本用例必须声明扩展点,而扩展用例只能在扩展点上增加新的行为和含义。与包含关系一样,扩展关系也是依赖关系的版型。在扩展关系中,箭头的方向是从扩展用例之间的关系举例
包含:业务中,总是存在着维护某某信息的功能,如果将它作为一个用例,那新建、编辑以及修改都要在用例详述中描述,过于复杂;如果分成新建用例、编辑用例和删除用例,则划分太细。这时包含关系可以用来理清关系。
扩展:系统中允许用户对查询的结果进行导出、打印。对于查询而言,能不能导出、打印查询都是一样的,导出、打印是不可见的。导出、打印和查询相对独立,而且为查询添加了新行为。
泛化:子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。
【用例图 总结】
用例图展示了用例之间以及同用例参与者之间是怎样相互联系的。用例图用于对系统、子系统或类的行为进行可视化,使用户能够理解如何使用这些元素,并使开发者能够实现这些元素。
例图定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。
1 0
- 用例图——详解
- UML——用例图详解
- UML详解之一——用例图
- HttpClient详解(二)—请求详解
- 类图——详解
- linux—select详解
- linux—select详解
- linux—select详解
- linux—select详解
- linux—select详解
- Java—log4j详解
- linux—select详解
- iOS—UITextField详解
- linux—select详解
- [前端] requireJS—详解
- linux—select详解
- linux—select详解
- WebService—WSDL详解
- OK6410开发板bootloader架构设计分析---嵌入式回归第五篇
- 三步翻转法------有意思的方法
- Lab3:自行车码表
- Algorithm.Find(查找)
- 类的权限修饰符
- 用例图——详解
- WebService学习总结(一)——WebService的相关概念
- 彻底解决 Android Studio 乱码问题
- LeetCode *** 284. Peeking Iterator
- 计算机网络中的一些概念
- wps-奇数偶数页眉不同设定方法
- JSP基础整理
- eclipse/Myeclipse快速搜索某个字段或单词
- 嵌入式复位流程研究与优化