第六章 面向对象分析

合集下载

第六章 面向对象分析

第六章 面向对象分析
建立分析模型5个基本原则:
(1)建模信息域; 建模信息域;
(2)建模功能域,描述模块功能; 建模功能域,描述模块功能; 表示模型行为; (3)表示模型行为; 分解模型以显示更多细节; (4)分解模型以显示更多细节; 早期模型表示问题的本质, (5)早期模型表示问题的本质,而后期 模型提供实现细节。 模型提供实现细节。
引入面向对象的技术背景
面向对象的需求分析的方法的核心是利用面向对象的概念 和方法为软件的需求分析建造模型。 和方法为软件的需求分析建造模型。它包含面向对象风格的图 形语言机制和用于指导需求分析的面向对象方法学。 形语言机制和用于指导需求分析的面向对象方法学。面向对象 程序设计和方法已经发展成为一种成熟的、 程序设计和方法已经发展成为一种成熟的、有效的软件开发方 相比之下, 法。相比之下,面向对象的分析方法的出现和发展都比较落 但是,在目前, 后。但是,在目前,面向对象的需求分析已被软件工程界公认 为是具有发展潜力的重要的需求分析方法, 为是具有发展潜力的重要的需求分析方法,其优越性正在越来 越多的软件开发实践中得到证实。 越多的软件开发实践中得到证实。 UML统一了 面向对象建模的基本概念、术语和表示方 统一了 面向对象建模的基本概念、 不仅为面向对象的软件开发过程提供了丰富的表达手段, 法,不仅为面向对象的软件开发过程提供了丰富的表达手段, 而且也为软件开发人员提供了相互交流、 而且也为软件开发人员提供了相互交流、分享经验的共同语 言。 本章首先介绍面向对象的主要概念和思想,以 本章首先介绍面向对象的主要概念和思想 以“家庭保安系 为实例,介绍与需求分析相关部分UML 语言机制以及基 统”为实例,介绍与需求分析相关部分 的面向对象的需求方法和过程。 于UML的面向对象的需求方法和过程。 的面向对象的需求方法和过程

第6章-面向对象需求分析精品PPT课件

第6章-面向对象需求分析精品PPT课件
• 正式会谈提出实现准备好的议题,需要准备一 份会谈概要的书面材料,最好每人一份,一遍 陈述及发现忽略的项目。
• 对大型系统,通常有不同类型的用户,可形成 多种视点,这时需要进行面向多视点的需求分 析。
使用调查表
• 当需要对上百人进行个人意见调查时, 这种方法十分有效。经过仔细考虑的书 面回答可能比口头回答要准确。在非正 式会谈基础上制定的调查表效果更好。
• 一个功能需求没有满足,可能降低系统能力; 而一个非功能需求没有满足,可能导致整个系 统无法使用。
• 领域需求:来自对系统应用领域的需求, 通常表现为某个特定的功能需求,某个 特定的非功能需求,或对已存在需求的 约束。
• 这些需求对领域专家是显而易见的,所 以在需求陈述中不详细列出,而系统开 发人员对此不了解,导致需求不确定。
• 根据系统功能自己而不是软件开发活动将项目 分解为多个迭代周期,每个迭代周期完成需求 定义、分析、设计、实现等活动 ,生产出经 过测试和集成的、可执行的系统子集。在反复 迭代过程中可以获取应用反馈并在下一次迭代 周期中精化、增强系统功能。
• 目前有影响力的迭代过程模型是统一过程模型 和敏捷开发过程。
Rational统一过程模型
• RUP不是一个简单具体的过程,而是一 个通用的过程框架,适合于不同类型的 软件系统、不同的应用领域、不同类型 的组织、不同功能级别和项目规模。
• RUP的突出特点有:用例驱动,以架构 为核心,迭代和增量。
• RUP可以用二维坐标来描述。 • 横轴通过时间组织,是过程展开的生命周期特征,体现开发过程
• 客户使用的各种表格反映了他们工作流 程中各个环节的重点,是获得信息的重 要手段。
场景分析
• 把人与系统进行交互的场景描述出来, 易于理解和评论,再以形式化方式表示 出来,称为场景分析或情景分析。

面向对象分析第六章第七章精品文档

面向对象分析第六章第七章精品文档

2019/10/18
共27页 第25页
(1)对象模型的表示:
2019/10/18
共27页 第26页
(2)实例连接与关联关系的表示
实例连接:又称为链,用于表达对象之间的
静态联系(通过对象属性表示一个对象对另一 个对象之间的依赖关系。
表示法:
类1
连接名称
类2
m
n

2019/10/18
共27页 第27页
建立对象模型
2、标识结构(确定关联)
面向对象分析的下一步工作是标识结构。 一般化-特殊化结构(Gen-Spec结构) 整体-部分结构(Whole-Part结构)
2019/10/18
共27页 第47页
建立对象模型
标识Gen-Spec结构的方法和策略:
对于每一个类和对象,将它看作是一个一 般化的类,对它的所有特殊情况,考虑以 下问题: – 它是否在问题论域中? – 它是否在系统的职责内? – 继承性是否存在? – 它是否能够符合选择类和对象的标准?
0个 多个
链属性
2019/10/18
共27页 第30页
说明:
聚合:代表整体与部分的关系,这是一 种特殊形式的关联。
限定:用以对关联的含义做某种约束。 角色:用来说明关联的一端。由于多数
关联具有两个端点,因而涉及到两个角 色。 连接属性:允许使用附加的属性说明对 象之间的连接
2019/10/18
2019/10/18
共27页 第32页
一般/特殊结构表示法:
表示一般与 特殊结构
一般类 一般类 (父类、基类、超类)
继承
特殊类 ......
特殊类 特殊类 (子类)
子类的公共属性和操作归属于一般类

第6章 面向对象系统分析

第6章  面向对象系统分析

面向对象系统分析是指采用面向对象的思想, 对系统进行分析,根据用户需求提取出系统应具有 的属性和行为,是属于问题抽象阶段,解决“做什 么”的问题。下面以图书管理系统为例来阐述面向 对象系统分析的基本思想。
6.1.1 系统分析的基本思想
首先,提取系统属性。通过参与某校图书馆的日常工作, 及工作人员的介绍,我们知道了图书馆的一般工作流程,了 解了图书馆的各个组成部分,及各个部门。根据这些信息, 我们提取了该系统的属性: (1)书库及书籍出/入库管理部门; (2)读者信息档案及管理部门; (3)还书柜台; (4)借书柜台; (5)读者及书籍信息查询室。 其次,确定系统行为。图书馆需要做的工作有: (1) 读者的注册与注销, (2)新书入库/旧书出库 (3)书籍的借阅与归还, (4) 读者信息/书籍信息查询等。 还有很多细节问题,可能在开始时无法考虑周全。我们要给 这些问题留出解决空间。
打印档案信息 查询档案信息 打印多个学生信息 修改档案信息
图6.4 学籍管理系统的档案管理用例细化
5.绘制用例图及进行用例描述
1)绘制用例图
系统管理
系统管理员admin 班级管理
档案管理 授权人员 登录验证 交费管理 学生管理 数据库
一般人员
<<communicate>> 课程管理
<<communicate>>
6.3 面向对象的UML静态建模
6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 对象/类模型的组成 对象/类静态建模过程 标识系统实体类 标识对象/类的操作 标识对象/类的属性 标识界面类(交互类)
6.3.1 对象/类模型的组成
对象/类模型由实体类、属性类或界面类(交互 类)或业务逻辑类按一定的关联关系组合而成。实 体类表示系统中应用的、持续的、应保存的数据信 息,如学生档案、交费记录和成绩等;属性类表示 对象/类包括的信息和行为,如学生的属性有学号、 姓名、出生年月、家庭住址、联系电话、入学时间 等;界面类(交互类)表示角色和系统之间的交互 访问界面(Interface),如各种窗体、对话框等; 业务逻辑类表示用户执行的并由系统支持的任务, 如存取数据的处理、业务逻辑的推理或运算、内部 消息的传递等。

软件工程 6 面向对象分析

软件工程 6 面向对象分析
例:复查“图书借阅管理系统“中的参与者与用 例
建立用例图
第六章 面向对象分析
标题 用例名称: 用例标识号: 简要说明: 前置条件:
基本事件流:
其他事件流:
异常事件流:
后置条件:
编写用例描述
说明
借阅图书。
UC204
读者可通过此用例借阅图书,借阅成功后修改读者和图书的状态。
读者选择要借阅的图书。
⒈ 判断该读者的状态是否为正常。 ⒉ 判断该图书的状态是否为正常可借。 ⒊ 判断读者是否还能借阅图书,即是否已到最大借阅数。 ⒋ 上述条件都满足时,修改读者的状态和图书的状态,完成借阅过程。 ⒌ 用例结束。
需求人员事前准备 访谈内容的设计,列出大纲 访谈方式 可以全面了解用户的业务 不适用于大规模用户
访谈-用户访谈问题大纲第六章 面向对象分析
1. 用户情况
姓名:
(用户姓名)
公司及部门:
(用户所在公司及部门)
职务:
(用户在公司中的职务)
主要职责:
(用户在公司中所负的主要职责)
(注:多留些空白,以记录其他基本情况)
第六章 面向对象分析
访谈-用户访谈问题大纲(续)
4. 反馈理解情况 业务问题理解: 有否补充问题: 5. 询问非功能需求 可靠性预期: 性能预期: 维护和服务预期: 安全需求: 安装和配置需求: 其它需求: 6. 总结 访谈之后如何联系: 用户参加需求审阅: 需求优先级:
(对刚才询问用户的业务问题,用自己的话复述问题,以确认问题没有被误解) (用户对刚才的理解是否有需要补充之处)
用例向与之关联的角色输出什么信息? 用例需要对哪些硬件设备进行操作? 例:“图书借阅管理系统“中类的识别
第六章 面向对象分析

第六章 面向对象分析

第六章 面向对象分析


Logo
学生注册课程1次,对应1个注册控制类; 1个注册控制类对应1个课表,1个课表包括4门主课
<<boundary>> RegisterForCoursesForm 1 1 0..1 <<control>> RegistrationController
<<entity>> Student 1

Logo 绘制出选课用例创建课表事件流的协作图(时间和空间)
5: // display course offerings( ) 6: // display blank schedule( ) : Course Catalog
4: // get course offerings( ) : RegisterForCoursesForm : CourseCatalogSystem
对象-行为模型
对象关系模型
中国石油大学胜利学院
6.1.1 面向对象分析

Logo
OOA与SA相比较的优点?
(1)同时加强了对问题域和软件系统的理解;加强理解 (2)改进包括用户在内的与软件分析有关的各类人员之 间的交流;改进交流
(3)对需求的变化具有较强的适应性;适应变化
(4)很好地支持软件复用;支持复用
2: // get course offerings( ) 8: // create schedule with offerings( )
1: // create schedule( ) 7: // select 4 primary and 2 alternate offerings( )
3: // get course offerings(forSemester)

面向对象分析第六章第七章

面向对象分析第六章第七章

2019/10/15
共27页 第32页
一般/特殊结构表示法:
表示一般与 特殊结构
一般类 一般类 (父类、基类、超类)
继承
特殊类 ......
特殊类 特殊类 (子类)
子类的公共属性和操作归属于一般类
并被每一个子类共享,每一个子类都
继承了一般类的特征。
2019/10/15
共27页 第33页
一般/特殊结构举例(归纳关系):
2019/10/15
共27页 第9页
几个常用的术语
面向对象(OO) 面向对象方法(OOM) 面向对象分析(OOA) 面向对象设计(OOD) 面向对象程序设计(OOP) 面向对象测试(OOT) 面向对象需求分析(OORA) 面向对象领域分析(OODA) 面向对象数据库系统(OODBMS) 面向对象计算机辅助软件工程(OOCASE)
2019/10/15
共27页 第16页
对象模型化技术(三视点技术)
(Object Model Tech. OMT)
对象模型化技术用于把分析时收集的 信息构造在三类模型中,即对象模型、 功能模型和动态模型。
这个模型化的过程是一个迭代过程。
2019/10/15
共27页 第17页
分析模型
•对象模型: 描述静态结构, 定义做

可感知的物理实体 人或组织的角色 应该记忆的事件 两个多个事件的相互作用,通常具
有交易或接触性质 需要说明的概念
2019/10/15
共27页 第45页
建立对象模型
(2)筛选出正确的类-&-对象
冗余 无关 笼统 属性
操作 实现
2019/10/15

第六章(1)_面向对象分析

第六章(1)_面向对象分析
需求陈述、应用领域的专业知识以及关于客观世界的常识 ,是建立对象模型的主要信息来源。
6.4 建立对象模型
建立对象模型的典型工作步骤:
确定对象类和关联,对于大型复杂问题还要进一步划分出 若干个主题; 给类和关联增添属性,以进一步描述它们; 利用适当的继承关系进一步合并和组织类;
在建立动态模型和功能模型之后,确定类中的操作。
6.1 三个模型的建模思想
• 6.1.4 三个模型之间的关系
1. 针对每个类建立的动态模型,描述了类实例的生命周期或运行周期。 2. 状态转换驱使行为发生,这些行为在数据流图中被映射成处理,在用例图中被 映射成用例,它们同时与类图中的服务相对应。
3. 功能模型中的处理(或用例)对应于对象模型中的类所提供的服务。通常,复 杂的处理(或用例)对应于复杂对象提供的服务,简单的处理(或用例)对应 于更基本的对象提供的服务。有时一个处理(或用例)对应于多个服务,也有 一个服务对应于多个处理(或用例)的时候。 4. 数据流图中的数据存储,以及数据的源点/终点,通常是对象模型中的对象。
6.4.建立对象模型
面向对象分析首要的工作,是建立问题域的对象模型。 对象模型描述了现实世界中的“类与对象”以及它们之间 的关系,表示了目标系统的静态数据结构。
静态数据结构对应用细节依赖较少,比较容易确定 当用户的需求变化时,静态数据结构相对来说比较稳定
因此,用面向对象方法开发绝大多数软件时,都首先建立 对象模型,然后再建立另外两个子模型。
• 6.1.2 动态模型
动态模型表示瞬时的、行为化的系统“控制”性质,它规定了对象模型中 对象的合法变化序列。 一旦建立起对象模型后,就需要考察对象的动态行为。所有的对象都有自 己的生命周期。对一个对象而言,生命周期由许多阶段组成,在每个 特定阶段中,都有适合该对象的一组运行规律和行为规则,用以规范 对象的行为,生命周期中的阶段也就是对象的状态

软件工程实用案例 第6章 面向对象的需求分析

软件工程实用案例 第6章  面向对象的需求分析
(3) 类可以派生出子类,子类继承父类全部特性(数据和 操作),又可以有自己的新特性。子类与父类形成类的 层次结构。
(4) 对象之间通过消息传递相互联系。类具有封装性, 其数据和操作等对外界是不可见的,外界只能通过消 息请求进行某些操作,提供所需的服务。
6.1 面向对象的基本概念
软件工程学家Codd和Yourdon认为:
bus306.showG(); }
//执行自有方法showG
类的继承是软件重用的一种形式,通过继承的属性和行为扩充原有类的功能, 节省了程序开发时间。
6.1 面向对象的基本概念
3. 多态性(Polymorphism) 多态性的概念可以被说成“一个方法,多种实现”。
1) 重写(Overriding)
消息的基本格式为:对象名.方法名(参数)
Katie.shaketail()
在面向对象中,所有的功能都是通过对象之间互发消 息来实现的,消息机制可以像搭积木一样,快速开发 出一个全新的系统。
6.1 面向对象的基本概念
6.1.2 封装、继承和多态性
1. 封装(Encapsulation)
封装是面向对象方法的一个重要原则,它把对象的属 性和服务结合成一个独立的系统单元,是一种信息隐 藏技术,将对象的外部特征(可用的方法)与内部实现 细节(属性、方法如何实现)分开,对象的外部特征对 其他对象来说是可访问的,而它的内部细节对其他对 象是隐蔽的。
运行结果:
public class shapeTest
半径为:2 面积为:12.57 底为:3 高为:4 面积为:6
{ public static void main(String args[])
{ Shape c=new Circle(2);

第六章面向对象的分析和设计方法

第六章面向对象的分析和设计方法

之2面02向0/对10象/2设5 计
6.1 面向对象方法 6.1.1面向对象方法概述 6.1.2面向对象的软件工程(OOSE) 6.1.3面向对象的基本概念和特征
之2面02向0/对10象/2设5 计
6.1 面向对象方法 6.1.1面向对象方法概述
• 面向对象不仅是一些具体的软件开发技术与策略 ,而且是一整套关于如何看待软件系统与现实世 界的关系,以什么观点来研究问题并进行求解, 以及如何进行系统构造的软件方法学。
一般/特殊结构又称作分类结构,是一组有一般 /特殊关系的类所组成的结构。
(2)整体/部分结构
整体/部分结构又称为组装结构,它描述对象之 间的组成关系,即一个对象是另一个对象的组 成部分。
之2面02向0/对10象/2设5 计
6.1 面向对象方法 6.1.3 面向对象的基本概念和特征
6. 结构与连接 (3)实例连接
之2面02向0/对10象/2设5 计
6.1 面向对象方法 6.1.3 面向对象的基本概念和特征
3. 类和类层次
(1)类
在OO方法中,类的定义是具有相同属性和服务的 一组对象的集合,它为属于该类的全部对象提供 了统一的抽象描述,其内部包括属性和服务两个 主要部分。
之2面02向0/对10象/2设5 计
• 面向对象方法的基本思想是从现实世界中客观存 在的事物出发来构造软件系统,并在系统构造中 尽可能运用人类的自然思维方式。
之2面02向0/对10象/2设5 计
6.1 面向对象方法 6.1.1面向对象方法概述
1.面向对象方法的主要特点
(1) 从问题域中客观存在的事物出发来构造软 件系统,用对象作为对这些事物的抽象表示 ,并以此作为系统的基本构成单位。
6. 2 面向对象的分析 6.2.1面向对象分析基本过程及原则

slide6 面向对象分析基础

slide6 面向对象分析基础

UML的构成 UML的构成
计算机学院 软件工程
Байду номын сангаас 事物
结构事物:类,接口,用例等 动作事物:动态部分,代表时间和空间上的动作. 分组事物:包 注释事物:模型的解释部分
计算机学院 软件工程
结构事物
① ② ③ ④ ⑤ ⑥ ⑦ UML模型中最基本的结构化事物,包括: 类 接口 协作 用例 活动类 组件 节点
:UML模型的解释部分 4. 注释事物 :UML模型的解释部分。
计算机学院 软件工程
UML中的关系 中的关系
① 关联 ② 依赖 ③ 泛化 ④ 实现 ⑤ 聚合
计算机学院 软件工程
UML中的图 中的图
计算机学院 软件工程
(2)状态机:由一系列对象的状态组成。
计算机学院 软件工程
分组事物 ,注释事物
3. 分组事物 :UML模型中组织的部分。 UML模型中组织的部分 UML模型中组织的部分。 分组事物只有一种: 分组事物只有一种:包。 包是一种将有组织的元素分组的机制。 包是一种将有组织的元素分组的机制。 包只存在于开发阶段。 包只存在于开发阶段。
第六章 面向对象分析
主要内容: 主要内容: 面向对象的基本概念 UML概述 概述
计算机学院 软件工程
面向对象方法学概述
Coad和 Yourdon提出用下列等式认识面向对象方法 提出用下列等式认识面向对象方法: Peter Coad和Edward Yourdon提出用下列等式认识面向对象方法: 对象(object) 面向对象 = 对象(object) 分类(classification) + 分类(classification) 继承(inheritance) + 继承(inheritance) 通过消息的通信( messages) + 通过消息的通信(communication with messages) 可以说, 可以说,采用这四个概念开发的软件系统是面向对象的 面向对象的技术观点: 面向对象的技术观点: 客观世界由对象组成,任何客观实体都是对象, ① 客观世界由对象组成,任何客观实体都是对象,复杂对象可以 由简单对象组成。 由简单对象组成。 具有相同数据和操作的对象可归纳成类,对象是类的一个实例。 ② 具有相同数据和操作的对象可归纳成类,对象是类的一个实例。 类可以派生出子类, ③ 类可以派生出子类,子类除了继承父类的全部特性外还可以有 自己的特性。 自己的特性。 对象之间的联系通过消息传递来维系。 ④ 对象之间的联系通过消息传递来维系。

第6章面向对象分析

第6章面向对象分析

用户界面的位置
识别控制类
控制类负责协调边界类和实体类,通常在现实 世界中没有对应的事物。它负责接收边界类的 信息,并将其分发给实体类。对于控制类来说, 我们初步给每个用例设置一个控制类,随着分 析的发展有可能进行分解和合并。
注意:
在有些情况下,用例事件流的逻辑结构十分 简单,这时没有必要使用控制类,边界类可 以实现用例的行为,例如图书馆图书信息关 系系统中的“登录”用例就是这种情况。
1.负责中外文图书借还。 2.配合采编人员做好书目数据维护、图书赔偿注销工作。 3.负责书库全部藏书的整理、排架及流通取、还架工作。 4.各图书阅览室的财产、阅览工作. 5.图书补旧。
1.负责中外文期刊、报纸、检索刊等的收登,验收、装订、财 2.连续出版物编目,建数据库、连续出版物流通阅览和读者服 3.开展有关连续出版物管理和利用方面的研究工作。
3.检查“一致性”的问题列表
类或用例有重名吗? 具有相同名字的实体表示相同的对象吗? 所有的实体都以同样的细节进行描述吗? 是否存在具有相同属性和关系却不在同一个继
第8步 构造用户界面的原型
系统分析员已经确定了用例与角色之间的对 应关系,现在要确定角色如何启动用例,以 及用例以什么形式向角色提供信息。这项活 动的结果是用户界面原型。
界面设计人员考虑下面的问题:
需要哪些界面元素来启动用例? 用户界面元素之间如何相关? 用户界面看起来应该是什么样的? 应该如何处理这些用户界面元素? 针对所涉及的业务领域,对用户界面元素有何特殊
如果不是信息系统,总还有系统的使用者吧,把系 统的使用者都列出来。
外部系统
需要与本系统发生关系(功能,数据)的其他软件 系统
外部设备
与本系统发生关系的外部设备(控制的设备,或接 受其他设备的控制)

第6章 面向对象的需求分析

第6章 面向对象的需求分析

第6章面向对象的需求分析本章主要讲述面向对象软件开发方法所涉及到的基本概念,以及用UML如何表示面向对象方法所用到的概念。

具体包括面向对象的概念与特征;统一建模语言(UML);基于UML的需求分析等。

6.1 基本内容6.1.1 面向对象的概念与特征1.面向对象方法概述面向对象的基本思想是将一个实际问题看成是一个对象或几个对象的集合。

面向对象分析过程是在系统所要求解的问题中找出对象(属性和行为)以及它所属的类,并定义对象与类;面向对象设计是把系统所要求解的问题分解为一些对象及对象间传递消息的过程;面向对象实现是把数据和处理数据的过程结合为一个对象。

对象既可以像数据一样被处理,又可以像过程一样被描述处理的流程和细节。

总之,面向对象分析到面向对象设计再到面向对象实现(即OOA→OOD→OOI)不用转换。

面向对象分析与设计的实质是一种系统建模的技术,它不是从功能或算法上考虑整个系统,而是从系统的组成上进行分解,利用类及对象作为软件的基本构造单元,以更接近人类思维的方式建立模型,从而使设计出的系统尽可能直接地描述现实世界,构造出模块化、可重用、易维护的软件。

2.面向对象的基本概念(1) 对象对象是一个封装了数据和操作的实体。

对象的结构特征由属性表示,数据描述了对象的状态,操作可操纵私有数据(把数据称为“私有”的,是因为数据是封装在对象内部,是属于对象的。

)改变对象的状态。

对“对象”概念的理解,应该把握:从广义上讲,面向对象中的对象就是我们实际生活中可以感触或意识到的人或物的真实写照,而系统分析和程序设计中的对象(即对象模型)是这些实际人和物的数学抽象。

也就是说,我们把客观世界的实体称之为问题(问题域)的对象。

对象也可以是一种概念实体,我们并不能直接感触到这些实体,但可以意识到其存在。

比如,打印队列在生活中并不存在,但是在程序员的思维中可以意识到这个实体的存在,而且起到一定的作用,它完全可以作为系统中的对象。

第六章面向对象的需求分析

第六章面向对象的需求分析
图 (sequence diagram) 与 合 作 图 (collaboration diagram)两种形式。顺序图强调对象之间消息发送 的时间序。合作图更强调对象间的动态协作关系。
合作图也可通过消息序号来表示消息传递的时间序,
只不过这种表示不如顺序图那样直观。
2019/9/5
15
状态图描述类的对象的动态行为。它包含对象所 有可能的状态、在每个状态下能够响应的事件以 及事件发生时的状态迁移与响应动作。
2019/9/5
29
(3) 部分的详细设计。对于系统中某些重要的、或 者风险比较高的用例,可以采用交互图进一步探 讨其内部实现过程。同样,对于系统中的关键类, 也可以详细研究其属性和操作,并在UML类图中 加以表现。
(4) 部分的原型构造。针对用例生成详尽的交互图, 对所有相关类给出明确的属性和操作定义。
前三个类为一般化的“用户”类的子类。
一门“课程”可由一到多个“课程设置”构成,例如,对 于全校性的公共基础课,由于选修的学生太多,必须安排 不同的老师、不同的教室或者不同的时间段。
“学生”、“老师”与“课程设置”之间,“课程注册表” 与“课程注册管理器”之间,以及“课程注册管理器”与 “课程”之间存在着关联关系。
问题空间中的对象。 为应用问题寻求软件解,是借助于计算机语言对其提供的
实体施加某些动作,以动作的结果给出问题的解。 面向对象(Object-Oriented,简称OO)的需求分析方法通过
提供对象、对象间消息传递等语言机制让分析人员在解空 间中直接模拟问题空间中的对象及其行为
2019/9/5
3
1990年代中后期诞生并迅速成熟的UML(统一建模语 言,Unified Modeling Language)是面向对象技术发展 的一个重要里程碑。UML统一了面向对象建模的基本 概念、术语和表示方法,不仅为面向对象的软件开发过 程提供了能力丰富的表达手段,而且也为软件开发人员 提供了互相交流、分享经验的共用语言。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中国石油大学胜利学院
三种分析类
边界类
Logo
实体类 系统边界 系统信息
控制类
协调用例行为
中国石油大学胜利学院
查找分析类——边界类

Logo
怎么划分:为每对参与者/用例确定一个边界类 作用:将系统和外界隔离开,外界的变化不影响 内部元素。(对系统依赖于环境的那部分进行建 模)
学生 课程注册 课程目录系统

中国石油大学胜利学院
第四章 UML的组成



Logo
静态图

用例图、类图、对象图、构件图和部署图
动态图

状态图、时序图、协作图和活动图

视图

用例视图

从用户的角度看到的系统应有的外部功能 描述系统的静态结构和对象间的动态协作关系 展示系统的动态行为及其并发性


逻辑视图

进程视图
在这一点,提交课程表子事件流被执行
对象-行为模型-协作图(P96)
协作图用于描 述相互协作的 对象间的交互 和链接,体现 对象之间的静 态链接。P95
计算机
Logo
打印队列
[打印机忙] 2.2:保存文件
1:打印文件
[打印机就绪] 2.1:打印文件
打印服务器
打印机
中国石油大学胜利学院
6.2.2建立对象—行为模型-协作图
中国石油大学胜利学院
Logo识别与Βιβλιοθήκη 定分析类三种分析类

Logo

边界类<<boundary>> (系统与外界交互的边界) 用户界面 系统接口 硬件接口 控制类<< control>>(系统运行中的控制逻辑) 封装用例所特有的控制行为 实体类<<entity>>(系统要存储和维护的信息) 系统存储的信息及其相关行为

中国石油大学胜利学院
面向对象分析模型P139

OOA的模型(组成结构)
需求模型(以用例模型为主体,第五章) 类/对象模型(全部的类和对象) 对象-关系模型(对象之间的静态关系) 对象-行为模型(系统的动态行为)

属性、操作、协作者
Logo
类/对象 模型
以用例模 型 为主体的 需求模型
Logo
协作图
:Client
:Supplier

Client Supplier
类图
Client
0..* 0..* Prime suppliers
Supplier
PerformResponsibility()
关联
中国石油大学胜利学院
6.2.3建立对象—关系模型
例:选课用例的参与类图 显示了类的实例之间的数量关系
2: // get course offerings( ) 8: // create schedule with offerings( )
1: // create schedule( ) 7: // select 4 primary and 2 alternate offerings( )
3: // get course offerings(forSemester)
: RegistrationController
10: // add schedule(Schedule) : Student 9: // create with offerings( ) : Schedule : Student
中国石油大学胜利学院
6.2.2 建立对象—行为模型
为分析类分配职责(为类确定操作) 为消息的接受者一方的类分配操作,以消息名称命名。
Student Course Offering Course Catalog System
Schedule
CloseRegistration Form
Course Catalog System
Schedule CloseRegistration Controller
Close Registration
新建一个 课程表 显示本学期有效的 课程提供的清单 显示空的课程 表让学生选择 课程
3: // get course offerings(forSemester) 4: // get course offerings( ) 5: // display course offerings( )
6: // display blank schedule( )


OOA建模步骤



需求理解 定义类和对象 标识对象的属性和操作 标识类的结构和层次 建立对象---关系模型 建立对象---行为模型 评审OOA模型
中国石油大学胜利学院
6.2 面向对象分析建模

基于用例的面向对象分析方法
Logo
1、建立类和对象 2、建立对象-行为模型 3、建立对象-关系模型 回顾需求阶段产生的用例规约,补充必要的详细信息; 研究用例的事件流,将用例的职责分配给若干分析类; 基于这些职责分配以及分析类之间的协作,即可开始为分 析类间的关系建模了 一旦分析了用例,就需要查看确定的类,确保它们被详尽 地描述。 并确保分析模型各个部分之间的一致


Logo
学生注册课程1次,对应1个注册控制类; 1个注册控制类对应1个课表,1个课表包括4门主课
<<boundary>> RegisterForCoursesForm 1 1 0..1 <<control>> RegistrationController
<<entity>> Student 1
中国石油大学胜利学院
Logo
: Student
: RegisterForCoursesForm
: RegistrationController
: CourseCatalogSystem
: Schedule
: Student
: Course Catalog
1: // create schedule( ) 2: // get course offerings( )
Logo
打印文件
[打印机就绪] 打印文件
时序图用来描述对 象之间的动态交互, 着重体现对象间消 息传递的时间顺序。 P95
[打印机忙] 保存文件
文档打印系统的时序图
中国石油大学胜利学院
6.2.2建立对象—行为模型P145
绘制出选课用例创建课表事件流的时序图 确定对象:参与者-边界类对象-控制类对象-实体类对象 流程: (1)新建一个课程表 学生申请,注册课程表边界类对象接收,调用控制类获取开课 信息,调用课程目录系统之间的边界类,找出课程信息。 (2)显示本学期有效的课程清单 边界类对象调用自己的方法向学生显示课表信息。 (3)显示空的课表 边界类对象调用自己的方法向学生提供空白课表。 (4)学生选课 学生选4门主课,边界类对象创建课程表,控制类对象创建课程 表,将数据信息加入实体类(学生、课表)。
对象-行为模型
对象关系模型
中国石油大学胜利学院
6.1.1 面向对象分析

Logo
OOA与SA相比较的优点?
(1)同时加强了对问题域和软件系统的理解;加强理解 (2)改进包括用户在内的与软件分析有关的各类人员之 间的交流;改进交流
(3)对需求的变化具有较强的适应性;适应变化
(4)很好地支持软件复用;支持复用
(5)确保从需求模型到设计模型的一致性。 确保一致
中国石油大学胜利学院
6.1.2 面向对象分析模型

分析模型的特点

Logo
全面覆盖软件的功能需求 分析模型与软件的实现无关 分析模型的表述方法与所采用的分析技术有关

OOA共同特征
类和类层次的表示 建立对象-关系模型 建立对象-行为模型
RegistrationController
中国石油大学胜利学院
查找分析类——实体类

确定相关的各个实体(包括属性与方法),是系 统存储和管理的信息,通常来源于参与者。
Logo
学生
课程表
课程目录
中国石油大学胜利学院
步骤二: 建立对象-行为模型-时序图(p96)
打印文件 计算机 打印服务器 打印机 打印队列
软件工程
六、面向对象分析
OOA方法及示例
中国石油大学胜利学院
问题讨论式学习——带着问题去学

Logo
第五章介绍的面向对象需求模型和第六章面向对 象分析有什么区别和联系?(第四章?) 简述面向对象分析模型的组成结构? 为什么叫分析类? 为什么把分析类划分类型?划分为哪几种类型? 分别代表什么? 用哪几种UML图可以表示对象之间的交互? 分析模型中的静态结构模型和动态行为模型之间 有什么联系?

Logo 绘制出选课用例创建课表事件流的协作图(时间和空间)
5: // display course offerings( ) 6: // display blank schedule( ) : Course Catalog
4: // get course offerings( ) : RegisterForCoursesForm : CourseCatalogSystem
中国石油大学胜利学院
步骤一:识别与确定分析类

为什么叫分析类? 用例分析阶段定义的类叫分析类。 分析类由何而来? 第五章需求模型的用例模型而来。 为什么给分析类划分类型? 有助于建立一个稳固的系统,分类后,对于需求 变更只影响一部分类。 划分为哪几类?分别代表什么? 边界类:系统与外部环境交互的边界 控制类:系统运行中的控制逻辑 实体类:系统要存储的信息
相关文档
最新文档