面向对象分析第六章第七章-文档资料
第六章 面向对象分析
(1)建模信息域; 建模信息域;
(2)建模功能域,描述模块功能; 建模功能域,描述模块功能; 表示模型行为; (3)表示模型行为; 分解模型以显示更多细节; (4)分解模型以显示更多细节; 早期模型表示问题的本质, (5)早期模型表示问题的本质,而后期 模型提供实现细节。 模型提供实现细节。
引入面向对象的技术背景
面向对象的需求分析的方法的核心是利用面向对象的概念 和方法为软件的需求分析建造模型。 和方法为软件的需求分析建造模型。它包含面向对象风格的图 形语言机制和用于指导需求分析的面向对象方法学。 形语言机制和用于指导需求分析的面向对象方法学。面向对象 程序设计和方法已经发展成为一种成熟的、 程序设计和方法已经发展成为一种成熟的、有效的软件开发方 相比之下, 法。相比之下,面向对象的分析方法的出现和发展都比较落 但是,在目前, 后。但是,在目前,面向对象的需求分析已被软件工程界公认 为是具有发展潜力的重要的需求分析方法, 为是具有发展潜力的重要的需求分析方法,其优越性正在越来 越多的软件开发实践中得到证实。 越多的软件开发实践中得到证实。 UML统一了 面向对象建模的基本概念、术语和表示方 统一了 面向对象建模的基本概念、 不仅为面向对象的软件开发过程提供了丰富的表达手段, 法,不仅为面向对象的软件开发过程提供了丰富的表达手段, 而且也为软件开发人员提供了相互交流、 而且也为软件开发人员提供了相互交流、分享经验的共同语 言。 本章首先介绍面向对象的主要概念和思想,以 本章首先介绍面向对象的主要概念和思想 以“家庭保安系 为实例,介绍与需求分析相关部分UML 语言机制以及基 统”为实例,介绍与需求分析相关部分 的面向对象的需求方法和过程。 于UML的面向对象的需求方法和过程。 的面向对象的需求方法和过程
面向对象分析资料
面向对象分析软件开发的分析过程就是提取系统需求的过程, 分析工作主要包括理解、表达和验 证。
面向对象分析的关键是识别问题域内的对象及其关系。
本章内容主要包括: 面向对 象分析的基本过程、发现对象的方法、定义属性与服务、定义结构、实例连接等。
8.1 基础知识8.1.1分析的基本过程一般来说,需求分析过程是系统分析员与领域专家反复交流和多次修正的过程。
也就是说,理解和验证的过程通常交替进行, 反复迭代,而且往往需要利用原型系统作业辅助工具。
面向对象分析,就是抽取和整理用户需求并建立问题域精确模型 的过程。
8.1.2发现对象的方法问题域和系统责任是面向对象分析的基本出发点。
分析员的主要工作就是:通过不断地研究问题域,建立一个能满足用户需求的系统模型。
1 .系统责任系统开发初期,用户对系统提出的各种要求和期望就是用户需求。
的功能、性能、可靠性、保密要求、交互方式等技术性要求和资金强度、 资源使用限制等非技术要求。
分析员提高分析这些系统需求,逐渐搞清系统责任。
2•问题域研究方法要发现对象、定义对象类、主要途径就是研究问题域。
方法是:现场跟单、获取领域知识、吸收经验、听取用户见解。
3•确定系统边界在系统的分析与设计中, 由于是将实际的系统计算机化,统与它的周围都要发生联系。
那么我们如何确定系统边界,键的问题。
确定系统边界就是划出被开发的系统和与该系统打交道的人或物之间的 明确界限,并确定它们之间的接口。
8.1.3定义属性与服务面向对象的程序设计以对象为基本单位来组织系统中的数据与操作, 题域中的直接映射。
面向对象方法用对象表示问题域中的事务, 而事务的静态特征和动态特征分别用对象中的一组属性和服务来表示。
1 .定义属性为了发现对象的属性,就要借鉴与以往相似的问题域中是否有已开发的面 向对象分析模型,就可能复用其中同类对象的属性定义。
问题域和系统责任,以系统责任为目标进行正确的抽象, 应有的属性。
面向对象分析第六章第七章共92页文档
段
基于三个模型的分析步骤:
➢ 需求陈述 ➢ 对象建模 ➢ 动态建模 ➢ 功能建模 ➢ 添加操作反复建模
2020/3/29
共27页 第19页
OOA的基本过程
从理解系统的使用方式开始,确定使用场景(脚 本),构造问题域模型。
OOA概念模型由五个层次组成:
– 主题层
– 类与对象层
– 结构层
– 属性层
– 服务层
事情的实体
•功能模型: 描述处理(数据变换),
指明系统应“做什么”
•动态模型: 描述交互过程, 规定什么
时候做
2020/3/29
共27页 第17页
OMT模型系统分析和设计过程概观图
产生需求
分
问题描述
析
建立模型
阶 段
对象模型、动态模型、功能模型
结构及对象 设计
设
详细的对象模型
计
详细的动态模型
阶
详细的功能模型
面向对象分析是软件开发过程中的 问题定义阶段。这一阶段的两个重 要步骤:
➢领域域分析:建立概括的系统实 现模型
➢应用分析:根据特定应用的需求 对论域分析的模型进行细化
最后成果:得到对问题领域的清晰 而精确的定义。
2020/3/29
共27页 第14页
7.1 分析过程需要完成: ➢ 找到特定对象 ➢ 基于对象的公共特性组合这些对象 ➢ 标识出对问题的抽象 ➢ 标识出抽象之间的关系
数据字典
明
(DD)
说
明
状态变迁图
(STD图)
控制说明
面向对象分析模型的组成结构
静
数
态 对象
功能 据
结
模型 使用实例 模型
第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),如各种窗体、对话框等; 业务逻辑类表示用户执行的并由系统支持的任务, 如存取数据的处理、业务逻辑的推理或运算、内部 消息的传递等。
第七章面向对象分析总结
7.2.2 例子
个储户可能拥有多个账户。柜员负责把储户提交的存款 或取款事务输进柜员终端,接收储户交来的现金或支票 ,或付给储户现金。柜员终端与相应的分行计算机通信 ,分行计算机具体处理针对某个账户的事务并且维护账 户。 拥有银行账户的储户有权申请领取现金兑换卡。使 用现金兑换卡可以通过ATM访问自己的账户。目前仅限 于用现金兑换卡在ATM上提取现金(即取款),或查询 有关自己账户的信息(如某个指定账户上的余额)。将 来可能还要求使用ATM办理转账、存款等事务。所谓现 金兑换卡就是一张特制的磁卡,上面有分行代码和卡号 。
7.1.1 概述
在面向对象建模的过程中,系统分析员必须认真向领 域专家学习。尤其是建模过程中的分类工作往往有很 大难度。继承关系的建立实质上是知识抽取过程,它 必须反映出一定深度的领域知识,这不是系统分析员 单方面努力所能做到的,必须有领域专家的密切配合 才能完成。 在面向对象建模的过程中,还应该仔细研究以前针对 相同的或类似的问题域进行面向对象分析所得到的结 果。由于面向对象分析结果的稳定性和可重用性,这 些结果在当前项目中往往有许多是可以重用的。
第七章:面向对象分析
7.1 7.2 7.3 7.4 7.5 7.6 7.7
分析过程 需求陈述 建立对象模型 建立动态模型 建立功能模型 定义服务 面向对象实例分析
7.1.1 概述
面向对象分析,就是抽取和整理用户需求并建立问题 域精确模型的过程。 面向对象分析过程从分析陈述用户需求的文件开始。 通过分析,可以发现和改正原始陈述中的二义性和不 一致性,补充遗漏的内容,从而使需求陈述更完整、 更准确。在分析需求陈述的过程中,系统分析员需要 反复多次地与用户协商、讨论、交流信息,还应该调 研,了解现有的类似的系统。 接下来,系统分析员应该深入理解用户需求,抽象出 目标系统的本质属性,并用模型准确地表示出来。
第七章面向对象分析
Rational统一开发过程
1. 最佳软件开发实践 为了以一种更好的、迭代的、可预测的方式开 发软件产品,总结了软件开发的最佳实践:
1) 迭代式软件开发; 2) 需求管理; 3) 基于构件的软件体系结构; 4) 建立软件可视化模型; 5) 不断验证软件质量; 6) 控制变更。
2. Rational统一开发过程
面向对象的特点
❖ 抽象性:对象的数据抽象和行为抽象; ❖ 封装性:信息隐蔽; ❖ 共享性:
❖同一类中所有实例共享数据结构和行为特征; ❖同一应用中所有实例通过继承共享数据结构
和行为特征; ❖不同应用中所有实例通过复用共享数据结构
和行为特征
对象
❖ 对象是系统中用来描述客观事物的一个实体, 是构成系统的一个基本单位,由一组属性和一 组对属性进行操作的服务组成。
1) 过程的中心概念是工作人员,工作人员不 是指某一个人,而是指完成工作的角色。 工作人员定义人们应履行的行为和职责。
2) 活动定义了工作人员所执行的工作。有 3 类步骤:
面向对象(OO,Object Oriented)可用公式表示为:面 向对象= 对象+类+继承+通信
面向对象的基本思想是从现实世界客观存在的事物出发来构 造软件系统,并在系统构造中尽可能运用人类的自然思维方 式,将一个实际问题看成是一个对象或几个对象的集合。
面向对象分析是在系统所要求解的问题中找出对象(具有属性 和行为)以及它所属的类,并定义好对象与类;
❖ 纵轴表明过程的静态状况,通过过程构件、 活动、工作流、制品和工作人员描述过程。
工作流
业务建模
沿
需求
内 分析与设计 容
轴
实现
的
测试
组 织
面向对象分析和设计第七章PPT课件
7.2.3发现类的策略
1、考虑问题域 2、考虑系统边界 3、考虑系统责任
6
7.2.4审查和筛选
找到了候选类后,要对它们逐个进行审查,看看 它们是不是OOA模型真正需要的,从而筛选掉一 些对象。
1、舍弃无用对象
对于每个候选对象,要判断它在系统中是否真正有用, 判断的标准是它们是否提供了有用的属性和服务
3
7.2.1 确定类
4
7.2.2 正确运用抽象原则
在OOA中正确运用抽象原则 首先要舍弃哪些与系统责任无关的事物,只注
意与系统责任有关的事物。
其次,对于与系统责任有关的事物,也不是把 它们的任何特征都在相应的对象中表达出来, 而要舍弃哪些与系统责任无关的特征。
如何判断事物是否与系统责任有关呢?一是该 事物是否为系统提供一些有用的信息,或者它 是否需要系统为它保存和管理某些信息。二是 它是否向系统提供某些服务,或者,它是否需 要系统描述它的某些行为。
7.5 定义服务
分析员通过分析对象的行为来发现和定义对象的每个服务。 但对象的行为往往与对象所处状态相关
状态模型表示方法 状态图 1、什么是对象的状态 有两种理解: ①对象或者类的所有属性的当前值 ②对象或类的整体行为(例如相应消息)的某些规则所能
8
异常情况的检查和调整
1、类的属性或服务不适合该类的全部对象 2、属性及服务相同的类 3、属性和服务相似的类 4、对同一事物的重复描述
9
7.3标识类的关系
一旦有了候选类列表,就可以绘制出它们之间的 关系。有四种类型的关系: 继承:子类继承了超类的所有属性和行为 关联:一种类型的对象与另一种类型的对象关联 聚合:强关联,一个类的实例由另一个类的实例 构成。 组合:强聚合,组合的对象不能由其它对象共享, 且与构成它的对象一起消亡。
面向对象分析第六章第七章
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
软件工程第七章面向对象分析.2021优秀PPT文档
面向对象建模
▪ 面向对象模型
➢ 对象模型:定义了“做什么”的实体 ➢ 动态模型:规定在何种状态下,接受什么事件
的触发而“做什么” ➢ 功能模型:指明了系统应该“做什么”
对象模型
▪ 对象模型可以看成是数据流和语义数据模型的 结合
➢ 对象模型表示静态的、结构化系统的“数据”性质。 ➢ 它是对模拟客观世界实体的对象,以及对象彼此间
▪ UML的模型元素:
➢ 一类模型元素用于表示模型中的某个概念,如类、 对象、用例、结点、构件、包、接口等;
➢ 另一类模型元素用于表示模型元素之间相互连接的 关系,主要有关联、泛化(表示一般与特殊的关 系)、依赖、聚集(表示整体与部分的关系)等。
UML模型元素
注解
类 属性 操作
对象 属性 操作
状态
用例
结点
关联
构件 泛化
包
接口
角色
依赖
聚集
UML模型视图
▪ UML主要是用来描述模型的。它可以从不同视角 为系统建模,形成不同的视图(View)。每个视 图又由一组图(Diagram)构成。
▪ 两类图:
➢ 静态图:包括用例图、类图、对象图、构件图和部署 图
➢ 动态图:包括状态图、时序图、协作图和活动图
➢ 参与者:用小人形表示 ➢ 用例:用椭圆表示 ➢ 关联:用直线表示说明参与者驱动某个用例 ➢ 边界:用矩形框表示,说明系统关注点。
▪ 用例的表述方式
➢ 文字表述 ➢ 图形表述
POS机系统部分用例图
描 述 用 例
用例不同部分 说明
用例名称 以动词开始描述用例名称
范围
要设计的系统
级别
“用户目标”或者是“子功能”
起了一系列的状态变化。
面向对象分析第六章第七章精品文档
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页
一般/特殊结构表示法:
表示一般与 特殊结构
一般类 一般类 (父类、基类、超类)
继承
特殊类 ......
特殊类 特殊类 (子类)
子类的公共属性和操作归属于一般类
第七章-面向对象分析
9
7.1 面向对象分析过程(2)
说明: 1、右图为参考过 程。面向对象分析 过程中的活动是迭 代进行的,避免过 程机械化。 2、重点突出对象 模型的建立。
10
*面向对象分析的基本原则
• 1)抽象原则
– 对象是对现实世界中事物的抽象;类是对象的抽象;一般 类是对特殊类的进一步抽象;属性是对事物静态特征的抽 象;服务是事物动态特征的抽象。
19
2.1 考虑问题域
• 1)人员:需要由系统保存和管理其信息的人员;在系统 中提供某些服务的人员。 • 2)组织:在系统中发挥一定作用的组织结构。如行政单 位、业务部门、办事机构、社会团体、工作班组等。 • 3)设备:是指在系统中动态地运行,由系统进行监控或 者供系统使用的各种设备、仪表、机器以及运输工具。 • 4)物品:是指那些需要由系统管理的各种物品。包括商 品等有形物品,还有如计划、某项业务等无形物品。 • 5)事件:指那些需要由系统长期记忆的事件。 • 6)表格:广义的。业务报表、统计表、登记表、户口簿 、订单、成绩单等等。 • 7)结构:通过考虑结构得到一些启发。
– 静态结构——对象模型 – 交互次序——动态模型 – 数据交换——功能模型(DFD)
• 解决的问题不同,三个子模型的重要性也不同
– 对象模型——对任何问题都很重要 – 动态模型——涉及交互和时序的问题 – 功能模型(DFD)——大运算量的问题
• 动态模型和功能模型中都包含了对象模型中的操 作(即服务或方法)
6
*获取用户需求
• 一、研究用户需求。通常包括以下活动:
– (1)阅读有关文档:阅读用户提交的需求文档等一切与 用户需求有关的书面材料。 – (2)与用户交流:了解用户的需求,搞清有关用户需求 的疑点。 – (3)进行实地调查:有些需求问题,通过以上途径仍然 不能完全明确,则需要到现场作适当的调查,因为以上资 料可能表达得不够准确、清晰。 – (4)记录所得认识:随时记录通过阅读、交流和调查所 得到的认识,更要记录所存在的疑点。 – (5)整理相关资料:纠正初始需求文档中不符合的内容 ,整理出一份确切表达系统责任的需求文档。
第六章 面向对象分析
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)
第六章(1)_面向对象分析
6.4 建立对象模型
建立对象模型的典型工作步骤:
确定对象类和关联,对于大型复杂问题还要进一步划分出 若干个主题; 给类和关联增添属性,以进一步描述它们; 利用适当的继承关系进一步合并和组织类;
在建立动态模型和功能模型之后,确定类中的操作。
6.1 三个模型的建模思想
• 6.1.4 三个模型之间的关系
1. 针对每个类建立的动态模型,描述了类实例的生命周期或运行周期。 2. 状态转换驱使行为发生,这些行为在数据流图中被映射成处理,在用例图中被 映射成用例,它们同时与类图中的服务相对应。
3. 功能模型中的处理(或用例)对应于对象模型中的类所提供的服务。通常,复 杂的处理(或用例)对应于复杂对象提供的服务,简单的处理(或用例)对应 于更基本的对象提供的服务。有时一个处理(或用例)对应于多个服务,也有 一个服务对应于多个处理(或用例)的时候。 4. 数据流图中的数据存储,以及数据的源点/终点,通常是对象模型中的对象。
6.4.建立对象模型
面向对象分析首要的工作,是建立问题域的对象模型。 对象模型描述了现实世界中的“类与对象”以及它们之间 的关系,表示了目标系统的静态数据结构。
静态数据结构对应用细节依赖较少,比较容易确定 当用户的需求变化时,静态数据结构相对来说比较稳定
因此,用面向对象方法开发绝大多数软件时,都首先建立 对象模型,然后再建立另外两个子模型。
• 6.1.2 动态模型
动态模型表示瞬时的、行为化的系统“控制”性质,它规定了对象模型中 对象的合法变化序列。 一旦建立起对象模型后,就需要考察对象的动态行为。所有的对象都有自 己的生命周期。对一个对象而言,生命周期由许多阶段组成,在每个 特定阶段中,都有适合该对象的一组运行规律和行为规则,用以规范 对象的行为,生命周期中的阶段也就是对象的状态
面向对象分析
② 可以把参与者执行的每一个系统功能都看作一个用例。可以说,用例描述了系统 的功能,涉及系统为了实现一个功能目标而关联的参与者、对象和行为。
③ 确定了系统的所有用例之后,就可以开始识别目标系统中的对象和类了。把具有 相似属性和操作的对象定义为一个类。
② 关联关系是“结构化”的关系,描述对象之间的连接。 ③ 聚合关系和组合关系是特殊的关联关系,它们强调整体和部分之
间的从属性,组合是聚合的一种形式,组合关系对应的整体和部 分具有很强的归属关系和一致的生命期。比如,计算机和显示器 就属于聚合关系。 ④ 泛化关系与类间的继承类似。 ⑤ 实现关系是针对类与接口的关系。
• 现实的实体经常用指明其稳定特性的词来描述。大多数物理对象具有形状、重量、颜色和 材料类型等特性;人具有生日、父母、名字、肤色等特性,特性可被视为在类和某确定域 之间的二元关系。
面向对象的开发方法
• 传统的面向过程的开发方法是以过程为中心,以算法为驱动,因此,面向过程的编程语言 是程序=算法+数据
7.1 面向对象分析方法
明确了对象、类和类之间的层次关系之后,需要进一步 识别出对象之间的动态交互行为,即系统响应外部事件或操 作的工作过程。一般采用顺序图将用例和分析的对象联系在 一起,描述用例的行为是如何在对象之间分布的。也可以采 用协作图、状态图或活动图。
最后,需要将需求分析的结果用多种模型图表示出来, 并对其进行评审。由于分析的过程是一个循序渐进的过程, 合理的分析模型需要多次迭代才能得到。
封装
• 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类 或者对象操作,对不可信的进行信息隐藏。
• 对象间的相互联系和相互作用过程主要通过消息机制得以实现。对象之间并不需要过多的 了解对方内部的具体状态或运动规律。面向对象的类是封装良好的模块,类定义将其说明 (用户可见的外部接口)与实现(用户不可见的内部实现)显式地分开,其内部实现按其 具体定义的作用域提供保护。类是封装的最基本单位。封装防止了程序相互依赖性而带来 的变动影响。在类中定义的接收对方消息的方法称为类的接口。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2019/3/9
共27页 第7页
4、混合开发模式
在大型系统的开发中,只用一种开发模 式很难说哪种开发模式对整个问题的解 决最好。 系统开发时,通常把大型问题分解成一 组子问题。对于每个子问题可以采用适 当的软件开发模式。 这种设计需要有某种实现语言或一组协 同语言的支持。许多流行的功能不断增 强的语言可支持不只一种设计开发模式。
2019/3/9
共27页 第16页
对象模型化技术(三视点技术)
(Object Model Tech. OMT)
对象模型化技术用于把分析时收集的 信息构造在三类模型中,即对象模型、 功能模型和动态模型。
2019/3/9
这个模型化的过程是一个迭代过程。
共27页 第17页
分析模型
• 对象模型: 描述静态结构, 定义做
2019/3/9 共27页 第6页
开发模式所具有的的共性:
每个开发模式都有它的支持者和用户; 每个开发模式都特别适合于某种类型的问 题或子问题; 每一个开发模式都用不同的方式考虑问题; 每一个开发模式都使用不同的方法来分解 问题; 每一个开发模式都导致不同种类的块、过 程、产生规则。
共27页 第2页
2019/3/9
面向对象方法概述
什么是开发模式? 什么是面向对象开发模式? 为什么要用面向对象方法?
2019/3/9
共27页 第3页
一、软件开发模式(Paradigm)
1、什么是开发模式 开发模式又称为范型、范例、风范或模式 (Pattern)。开发模式定义了:
– 特定问题和应用的开发过程中将遵循的步骤; – 确定将用于表示问题和解的那些成分的类型; – 利用这些成分表示与问题解决有关的抽象; – 直接得到问题的结构。
面向对象分析是软件开发过程中的
问题定义阶段。这一阶段的两个重 要步骤: 领域域分析:建立概括的系统实 现模型 应用分析:根据特定应用的需求 对论域分析的模型进行细化 最后成果:得到对问题领域的清晰 而精确的定义。
2019/3/9 共27页 第15页
7.1 分析过程需要完成: 找到特定对象 基于对象的公共特性组合这些对象 标识出对问题的抽象 标识出抽象之间的关系
设 计 阶 段
基于三个模型的分析步骤:
需求陈述 对象建模 动态建模 功能建模 添加操作反复建模
2019/3/9
共27页 第20页
OOA的基本过程
从理解系统的使用方式开始,确定使用场景(脚 本),构造问题域模型。 OOA概念模型由五个层次组成: – 主题层 – 类与对象层 – 结构层 – 属性层 – 服务层 – 这五个层次是分析过程中的层次,每个 层次的工作都为系统的规格说明增加了 一个组成部分。
共27页 第21页
2019/3/9
OOA的层次结构
2019/3/9
共27页 第22页
7.2 需求陈述(软件需求说明书 (SRS))
(Software Requirement Specification)
需求分析阶段要完成的文档。
SRS的作用:
• 开发者与用户间事实上的技术合同书
事情的实体
• 功能模型: 描述处理(数据变换),
指明系统应“做什么”
• 动态模型: 描述交互过程, 规定什么
时候做
2019/3/9 共27页 第18页
OMT模型系统分析和设计过程概观图
产生需求
问题描述
建立模型
对象模型、动态模型、功能模型 结构及对象 设计
分 析 阶 段
详细的对象模型 详细的动态模型 详细的功能模型
控制说明
面向对象分析模型的组成结构
静 态 结 构
动态模型 数 据 变 换
对象 功能 模型 使用实例 模型
(Use Case)
交互次序
输入 输出
过程1
过程2 过程3 传统方法数据与过程是分离的 消息 消息 数据实体
对象
属于该对象 的数据
处理数据的方法
2019/3/9
共27页 第14页 对象把数据和处理数据的方法封状成一个单元
第三篇 主要内容
1.面向对象的基本概念与模型(6章)
2.面向对象分析(7章) 3.面向对象设计(8章) 4.面向对象软件的实现与测试(9章)
2019/3/9
共27页 第1页
第六章面向对象的概念与模型
本章要解决的问题:
面向对象方法学概述 传统方法和面向对象方法有何不同? 面向对象方法学的主要优点 面向对象的概念 面向对象建模
2019/3/9
共27页 第4页
2、开发模式的影响
开发模式的选择影响到整个软件开发生 存期。开发模式支配了:
设计方法 编码语言 测试和检验技术
2019/3/9
共27页 第5页
3、几种流行的开发模式 目前流行的开发模式有多种,它们提 供了可进行系统分解的多种方法。 面向过程的开发模式; 面向对象的开发模式; 面向存取的开发模式; 面向进程的开发模式; 逻辑性的开发模式; 函数型的开发模式; 说明性的开发模式。
共27页 第10页
第七章 面向对象分析
如何用OO软件工程方式进行系统分析? 如何描述OO系统?如何对OO系统建模?
如何建立对象模型?
如何建立动态页
结构化分析模型的组成结构
加 数 据 E-R图 数据流图 工 说 ( DFD ) 对 数据字典 明 象 (DD) 说 明 状态变迁图 (STD图)
2019/3/9 共27页 第9页
几个常用的术语
2019/3/9
面向对象(OO) 面向对象方法(OOM) 面向对象分析(OOA) 面向对象设计(OOD) 面向对象程序设计(OOP) 面向对象测试(OOT) 面向对象需求分析(OORA) 面向对象领域分析(OODA) 面向对象数据库系统(OODBMS) 面向对象计算机辅助软件工程(OOCASE)
2019/3/9 共27页 第8页
例:
一个智能数据分析系统的设计,可 把它看做是 4 个子系统。系统有: 一个数据库界面。使用了面向存取的 开发模式进行设计; 智能数据分析。使用逻辑性的开发模 式完成; 一组分析算法。分析算法是过程性的, 所以使用过程性的开发模式设计; 用户界面。使用面向对象开发模式。