3.3面向对象的分析方法
作者:互联网
什么是对象?
在现实世界中的一个东西,只要是有概念或者是实体存在。
如:一名职工、一本图书、一项贷款、一项生产计划、一场演出等。
几种著名的面向对象方法
- UML(一种可视化建模语言,能描述开发需要的各种视图,并以此为基础组建系统。)
- OMT
- OOSE
面向对象的软件开发模型
1、数据模型(对象模型):
描述系统数据结构的对象模型;
2、行为模型(动态模型)
描述系统控制结构
3、功能模型(用例图)
描述系统功能。
一个典型的软件系统使用数据结构(对象模型),执行操作(动态模型),并且完成数据值的变化(功能模型)。
功能模型——用例图UCD
(1)用例图的基本图形符号
用例建模用于描述系统需求,把系统当作黑盒,从用户的角度,描述系统的场景。
主要图形元素有以下几个:
参与者:是指外部用户或外部实体在系统中扮演的角色。可以是一个人、一个计算机子系统、硬件设备或者时间等角色【一个小人儿】
用例:对一组动作序列的描述,系统通过执行这一组动作序列为参与者产生一个可观察的结果。用例名往往用动宾结构命名。【一个椭圆】
执行关联: 参与者(Actor )执行用例(Use Case)之间的关系【直线儿】
(2)用例建模的过程
建立用例模型的顺序是:
1.确定谁会直接使用该系统。这些都是参与者(Actor)。
2.选取其中一个参与者。
3.定义该参与者希望系统做什么,参与者希望系统做的每件事成为一个用例。
4.对每件事来说,何时参与者会使用系统,通常会发生什么,这就是用例的基本过程。
5.描述该用例的基本过程。
6.考虑一些可变情况,把他们创建为扩展用例。
7.复审不同用例的描述,找出其中的相同点,抽出相同点作为共同的用例。
8.重复步骤2~7,找出每一个用例。
要素
(1)参与者
参与者(actor)是指系统以外的、需要使用系统或与系统交互的东西,包括人、设备、外部系统等。
参与者的三种表示形式
如何确定参与者?
在获取用例前首先要确定系统的参与者,开发人员可以通过回答以下的问题来寻找系统的参与者。
(1)谁将使用该系统的主要功能?
(2)谁将需要该系统的支持以完成其工作?
(3)谁将需要维护、管理该系统,以及保持该系统处于工作状态?
(4)系统需要处理哪些硬件设备?
(5)与该系统交互的是什么系统?
(6)谁或什么系统对本系统产生的结果感兴趣?
示例:饮料自动售货系统
在饮料自动售卖机中,最先想到的参与者是顾客。
其次,供应商向自动贩卖机添加饮料。收银员从自动贩卖机收钱。
(2)用例(Use Case)
“用例”的定义
对一组动作序列的描述,系统通过执行这一组动作序列为参与者产生一个可观察的结果
图形表示
用椭圆形表示
用例特征
-
说明了系统具有的一种行为模式
-
说明了一个参与者与系统执行的一个相关的事件序列
-
提供了一种获取系统需求的方法
-
提供了一种与最终的用户和领域专家进行沟通的方法
-
提供了一种测试系统的方法
怎么获取用例?
参与者希望用户执行什么任务?
参与者在系统中访问哪些信息(创建、存储、修改、删除等)?
需要将哪些外界信息提供给系统
需要将系统的什么事情告诉参与者
如何维护系统
(3)系统和关联
系统:用于界定系统功能范围,描述该系统功能的用例都置于其中,而描述外部实体的参与者都置于其外。
关联:连接参与者和用例,表示参与者所代表的系统外部实体与该用例所描述的系统需求有关。
用例之间的关系
关联(Association):、泛化(Inheritance)、包含(Include)、扩展(Extend)
(1)关联(Association)
表示参与者与用例之间的通信,任何一方都可发送或接受消息。
【箭头指向】:指向消息接收方
注:参与者可以参与多个用例,由此形成子系统
(2)泛化(Inheritance)
【箭头指向】:指向父用例
就是通常理解的继承关系,子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。
子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。
(3)包含(Include)
【箭头指向】:指向分解出来的功能用例
包含关系用来把一个较复杂用例所表示的功能分解成较小的步骤。一个用例可以包含另外一个用例。
(4)扩展(Extend)
【箭头指向】:指向基础用例
扩展关系是指用例功能的延伸,相当于为基础用例提供一个附加功能。由一个用例的扩展点可以扩展出另外一个用例。
包含(include)、扩展(extend)的区别:
包含:在执行基本用例时,一定会执行包含用例部分
扩展:一个基本用例执行时,可以执行、也可以不执行扩展用例部分
关联、包含、扩展、泛化 的区别:
举例:自动售货系统 初步的用例图
用例扩展后的用例图
用例实例一:ATM系统用例图
用例实例二:图书借阅系统用例图
标签:用例,分析方法,模型,扩展,系统,面向对象,3.3,参与者,描述 来源: https://www.cnblogs.com/tupo/p/15642390.html