软件工程概论_8_面向对象需求分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3.对象-关系图
•(1)关联
• 关联表示两个类的对象之间存在某种语义上的联系。 例如,作家使用计算机,我们就认为在作家和计算机之间 存在某种语义连接,因此,在类图中应该在作家类和计算 机类之间建立关联关系。
(1)关联
•普通关联 • 普通关联是最常见的关联关系,只要在类与类之间存在连 接关系就可以用普通关联表示。 • 通常,关联是双向的,可在一个方向上为关联起一个名字, 在另一个方向上起另一个名字(也可不起名字)。为避免混淆, 在名字前面(或后面)加一个表示关联方向的黑三角。在表示 关联的直线两端可以写上重数,它表示该类有多少个对象与对 方的一个对象连接。重数的表示方法通常有: • 0…1 表示0到1个对象 • 0…*或* 表示0到多个对象 • 1+或1…* 表示1到多个对象 • 1…15 表示1到15个对象 • 3 表示3个对象 •如果图中未明确标出关联的重数,则默认重数是1。
2. 类/对象图 3. 对象关系图 4. 对象行为图
1. 用例图
• 一个“用例”可描述软件 系统和一个外部角色之间的一 次交互。其中角色可以是一个 人、另一个软件、一个硬件或 其他与系统交互的实体。 •(1)组成符号

一幅用例图包含的模型元 素有系统、行为者(角色)、 用例及用例之间的关系
•自动售货机系统用例图
主题(Subject)层:主题给出分析模型的总体概貌,是控制读者 在同一时间所能考虑的模型规模的机制。 类-&-对象(Class & Object)层:对象是数据及其处理的抽象。 它反映了保存有关信息和与现实世界交互的能力。 结构(Structure)层:结构表示问题域的复杂性。类 - 成员结构 反映了一般-特殊关系,整体 - 部分结构反映了整体 - 部分的关 系。 属性(Attribute)层:属性是数据元素,用来描述对象或分类结 构的实例,可在图中给出并在对象的储存中指定,即给出对象 定义的同时,指定属性。 服务(Serves)层:服务是接收到消息后必须执行的一些处理, 可在图上标明它并在对象的储存中指定,即给出对象定义的同 时,定义服务。
2) 面向对象分析的五个层次 面向对象分析由五个主要活动组成,即确定类-&-对象、识别 结构、识别主题、定义属性和定义服务(方法)。对于一个复杂 问题的面向对象的模型可用五个层次表示:类-&-对象层、结 构层,主题层、属性层和服务层,见图3.3.8。
主题层 subject level 类-&-对象层object 结构层 structure 属性层 attribute 服务层 serves
签定保险单 销售统计
客户
客户统计
保险销售员
•(3) 用例之间的关系
• 用例之间存在两种关系:扩展关系和使用关系。 •① 扩展关系 • 向一个用例中添加一些动作后构成了另一个用例,这 两个用例之间的关系就是扩展关系,后者继承前者的一些 行为,通常把后者称为扩展用例。
签保险单
扩展
签汽车购买契约
(3) 用例之间的关系
述了系统的静态结构;动态模型描述了系统的交互次序;功能模型描
述了系统的数据变换。 其中,对象模型是最基础的、最核心的、最重要的。无论解决什么问题,
首先要在问题域中提取和定义出对象模型。
当问题涉及用户界面与过程控制时,动态模型是重点。如果问 题涉及大量数据变换,则功能模型非常重要。对象模型中的操 作(即服务)可以出现在动态模型和功能模型内。
面向对象需求分析
• 需求分析工作是一个发现和评价的过程. 需求分析力图 达到下列目标: •①通过分析信息流程和结构来提供软件开发的基础; •②通过标识接口细节,提供一个深入的功能说明来描述软 件;确定设计约束和定义软件有效性要求。 • 建立和保持与用户的通讯,使上述两个目标能够达到。
面向对象需求分析
•② 使用关系
• 当一个用例使用另一个用例时,这两个用例之间就构 成了使用关系。一般说来,如果在若干个用例中有某些相 同的动作,则可以把这些相同的动作提取出来单独构成一 个用例(称为抽象用例)。 签保险单
使用 使用
签汽车保险单
签房屋保险单
•含扩展和使用关系的用例图
(3) 用例之间的关系
•扩展与使用之间的异同:
1.面向对象分析过程 (1)分析过程概述 分析过程就是提取系统的需求的过程,是指为了满足用户的需 求,系统必须“做什么”,而不是“怎么做”(系统如何实现)。 系统分析通常是从一个需求文档(陈述)和用户一系列的讨论开 始的。一般来说,由用户、领域专家、系统的开发者以及其他 有关人员参加制定需求文档。
用面向对象方法开发软件,通常需要建立对象模型、动 态模型和功能模型三种模型。对象模型是描述系统数据结构 的;动态模型是描述系统控制结构的;功能模型是描述系统 功能的。
数据、控制和操作等是这三种模型都涉及到的共同概念,只 不过是各自描述的侧重点不同罢了。一个典型的软件系统应 包含数据结构(对象模型)、执行操作(动态模型)和完成数据 值的变化(功能模型)。
• 一.面向对象分析模型的组成结构 • 二.面向对象分析模型描述工具 • 三.面向对象分析的基本过程
• 四. 面向对象分析方法
• 五. 小结
一.面向对象分析模型的组成结构
数据模型
属性、操作、协作者
功能模型
类/对象 模型
对象关系模型
使用实例
对象-行为模型
行为模型
二.面向对象分析模型描述工具
1. 用例图
Fra Baidu bibliotek
3) 五个层次对应的五个活动
五个主要活动可以同时(并行)处理;可以从较高抽象层转移 到较低的具体层,然后再返回到较高抽象层继续处理;当系统 分析员在确定类-&-对象的同时,想到该类的服务,则可以先 确定服务后,再返回去继续寻找类-&-对象;没有必要遵循自 顶向下,逐步求精的原则。 4) 面向对象分析流程 一般情况下,面向对象分析过程可按照下列流程进行:确 定类—&—对象、识别结构、识别主题、定义属性、建立动态 模型、建立功能模型、定义服务(方法)。但是,对于大型的、 复杂的问题,不可能严格按照上面流程进行,需要反复多次进 行寻找、确定、识别、建立和定义来构造模型。
然后,是需求建模。系统分析员根据提取的用户需求,深入理解用户需求,
识别出问题域内的对象,并分析它们相互之间的关系,抽象出目标系统 应该完成的需求任务,并用OOA模型准确地表示出来,即用面向对象
观点建立对象模型、动态模型和功能模型。
最后,是需求评审。通过用户、领域专家、系统分析员和系统设计人员的 评审,并进行反复修改后,确定需求规格说明。 (2)面向对象分析的三个模型与五个层次 1) 面向对象分析的三个模型: 面向对象分析的模型包括:对象模型、动态模型和功能模型。对象模型描
(1) 类图
•服务
•服务也就是操作,UML描述操作的语法格式如下:
•可见性 操作名(参数表): 返回值类型{性质串} •操作可见性的定义方法与属性相同。 •参数表是用逗号分隔的形式参数的序列。描述一个参数的 语法如下: • 参数名: 类型名=默认值 •当操作的调用者未提供实在参数时,该参数就使用默认值
•③ 用例必须是完整的。
(1)组成符号
行为者 • 也称为角色,用一个线条人表示。行为者是指与系统 交互的人或其他系统,它代表外部实体。使用用例并且与 系统交互的任何人或物都是行为者。
关联
行为者和用例之间或用例和用例之间的关系,用直线 表示。
•(2)建立用例图 例:保险商务系统的用例图
保险商务系统
首先,系统分析员要对需求文档进行分析。需求文档通常是不 完整、不准确的,也可能还是非正式的。通过分析可以发现和 改正需求文档中的歧义性、不一致性,剔除冗余的内容,挖掘 潜在的内容,弥补不足,从而使需求文档更完整、更准确。快 速地建立一个原型系统,通过在计算机上运行原型系统,使得 分析员和用户尽快交流和相互理解,从而能更正确地、更完整 地提取和确定用户的需求。
学生 姓名:string 学号: string
上课 考试
(1) 类图
类名 • 应该是富于描述性的、简洁的而且无二义性的。为类命名时应该遵 守以下几条准则:

•使用标准术语。
• 应该使用在应用领域中人们习惯的标准术语作为类名,不要随意创 造名字。例如,“交通信号灯”比“信号单元”这个名字好,“传送带” 比“零件传送设备”好。
• 这两种关系都意味着从几个用例中抽取那些公共的行 为并放入一个单独的用例中,而这个用例被其他用例使用 或扩展,但是,使用和扩展的目的是不同的。通常在描述 一般行为的变化时采用扩展关系;在两个或多个用例中出 现重复描述又想避免这种重复时,可以采用使用关系。
2. 类/对象图
•类图描述类及类与类之间的静态关系。 •(1) 类图 例:
• 需求分析的任务是确定系统必须完成哪些工作,也就 是对目标系统提出完整、准确、清晰、具体的要求。
• 在需求分析阶段结束之前,系统分析员应该写出软件 需求规格说明书,以书面形式准确地描述软件需求。 • 在分析软件需求和书写软件需求规格说明书的过程中, 分析员和用户都起着关键的、必不可少的作用。用户必须 把他们对软件的需求尽量准确、具体地描述出来;分析员 必须通过与用户沟通获取用户对软件的需求。
2.面向对象建模 (1)建模与模型 建模是将问题域的解空间定义成一种模型,以帮助系统分析 人员更好地理解问题。 模型是为了理解问题而对问题所做出的一种抽象,而且是对 问题的一种无歧义的描述。模型由一组图示符号和组织这些 符号的规则组成。利用它们来定义和描述问题域中的术语和 概念。 建模的目的主要是为了减少复杂性。 (2)面向对象模型
2. 类/对象图
•(2) 对象图 •对象与类具有相同的表示形式。例如:
王平:学生
姓名:王平 学号:050106 上课 考试
3.对象-关系图
• • • 描述类与类之间的关系。 类关系模型同时也表示出了类之间消息传递的路径。 例:
学生
购买
1:1 0:m

来自
1:1 1:1
出版商
• 类与类之间通常有关联、泛化(继承)、依赖和细化 等4种关系。
8
面向对象的分析
面向对象的分析(OOA)方法是相当于软件开发过程中的 问题定义和需求分析阶段,它是用面向对象的概念和方法为软 件需求建造模型,分析的过程是提取和确定系统需求的过程。 面向对象分析的需求规格说明主要包括三种模型:对象模 型、动态模型和功能模型。在面向对象方法中,类、对象和事 物等概念之间的关系如图所示。
(1) 类图
•属性 •UML描述属性的语法格式如下:
•可见性 属性名: 类型名=初值{约束特性}
•属性的可见性(即可访问性)通常有下述3种: •公有的(public)、私有的(private)和保护的(protected),
•分别用加号(+)、减号(-)和井号(#)表示。
•如果未声明可见性,则表示该属性的可见性尚未定义。 •注意,没有默认的可见性。 •类型名表示该属性的数据类型,它可以是基本数据类型, 也可以是用户自定义的类型。
•使用具有确切含义的名词。
• 尽量使用能表示类的含义的日常用语作名字,不要使用空洞的或含 义模糊的词作名字。例如,“库房”比“房屋”或“存物场所”更确切。
•必要时用名词短语作名字。
• 为使名字的含义更准确,必要时用形容词加名词或其他形式的名词 短语作名字。例如,“最小的领土单元”、“储藏室”、“公司员工”等 都是比较恰当的名字。
(1)组成符号
系统 • 系统由一个矩形表示,内部可包含一个或多个用例。 • 代表系统的方框的边线表示系统的边界,用于划定系统的 功能范围,定义了系统所具有的功能。描述该系统功能的用例 置于方框内,代表外部实体的行为者置于方框外。 用例 • 用一个椭圆形表示。 • 一个用例是可以被行为者感受到的、系统的一个完整的功 能。用例具有下述特征: •① 用例代表某些用户可见的功能,实现一个具体的用户目标; •② 用例总是被行为者启动的,并向行为者提供可识别的值;
3.常用的面向对象分析与设计模型 常用的面向对象分析与设计模型有四类: ● James Rumbaugh 等人的 OMT 模型; ● Coad 和 Yourdon 的模型;
● Booch 开发模型;
● UML 统一建模语言。
面向对象需求分析
• 需求分析是软件定义时期的最后一个阶段,它的基本 任务是准确地回答“系统必须做什么?”这个问题。
相关文档
最新文档