版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章
面向对象的需求分析
北京理工大学讨算机宗
第1页
第6章面向对象的需求分析
6.1面向对象与面向过程的比较
6.2面向对象的概念
6.3面向对象的分析过程
6.4UML概述
6.5基于UML的需求分析
北京理工大学讨算机宗
第2页
6.1面向对象与面向过程的比较
面向对象方法与技术研究的发展面向对象的发展
起源于20世纪60年代中期;结构化方法存在问题
出发点和基本原则是使开发软件的方法与过程尽可能接近人类
认识世界解决问题的方法与过程,这样更好的把客观世界的问
题空间映射到软件的解空间
仿真语言simula67
20世纪80年代初期:Smalltalk语言是面向对象技术发展的重
要里程碑
■它是一种新兴的程序设计方法,其基本思想是使用对象、类、
继承、封装、消息等基本概念来进行程序设计。
.现在面向对象方法已深入到计算机领域的几乎所有分支,远
远超出了程序设计的语言和编程技术的范畴。
■面向对象方法是对软件生命周期的各个阶段(包括分析、设
计、编程、测试和维护),以及它所涉及的各个领域(如人机
界面、数据库、软件复用、形式化方法、CASE工具等)已形成
或正在形成面向对象的理论和技术体系
■OOA、OOD、OOP、OOSE、OOOS>OODBMS
北京理工大学讨算机条
第3页
面向对象的发展
结构化方法存在问题
通常的需求分析具有两方面的意义:
1.在认识事物方面:具有分析、认识问题域的方法、原则和策
略,使开发人员对问题域的理解比不遵循软件工程方法时更
为全面、深刻和有效。
2.在描述事物方面:具有较完整的体系和文档规范,这比自然
语言更为准确,更利于后期开发。
结构化的软件工程在需求分析这两方面存在不足:
1.它对问题描述不是以问题域中固有的事物作为基本单位。
2.它是在全局范围内,以功能、数据或数据流为中心来进行分
析。所以这些方法的分析结果不能直接地映射问题域,而是
经过了不同程度的转化和重新组合,因而容易隐蔽一些对问
题理解的偏差。
北京理工大学讨算机条
第4页
面向对象分析与结构化分析的根本区别
传统的软件过程学
1)结构化分析的实体关系——过程设计
图,关注实体的属性和相互间
的关系;而面向对象的分析,
问题域
除此之外还有非常主要的一
点,就是关注实体的行为。.需求分析.
2)结构化分析的数据流图,
,分析与设计鸿沟
将数据和加工处理分开;而面I,_____
向对象的分析是将数据实体和引然诏口/总体设计
他们的处理动作视为不可分割一,
的整体来考虑的。详细V_设_计___
3)结构化分析建造系统的元
素是基于过程的功能,或者加编程语言编程
工处理;而面向对象分析建造
测试
系统的基本元素是封装了操作
的对象类。
计算机
北京理工大学讨算机条
第5页
编程、测试和维护面向对象的发展
结构化方法存在问题
编程和测试
1.分析方法的缺陷很容易产生对问题域的错误理解;
2.分析与设计的鸿沟容易造成设计人员对分析结果的错误转换,
导致在编程的过程中,程序员往往需要对分析员已经认识过的
问题域重新进行认识,并可能产生与分析员不同的理解。
软件维护
1.对使用中发现的错误进行修改。由于结构化程序强调以功能为
模块划分的标准,模块功能单一,导致修改时,会产生新的问
题。
2.对因需求发生变化而进行修改。由于程序不能映射问题域以及
各个阶段文档不能对应,每一步追溯或修改都存在许多理解障
碍。
北京理工大学讨算机宗
6.2面向对象的概念
面向对象方法的基本思想是从现实世界中客观存在的事物出发
构造软件系统,并在系统构造中尽可能运用人类的自然思维方
式。
Coad和Yourdon给出定义:“面向对象二对象+类+继承+通信”.
如果一个软件系统是使用这样4个概念设计和实现的,则我
们认为这个软件系统是面向对象的。
面向对象软件工程方法是问题域
面向对象方法在软件工程OOA
领域的全面运用。它包括自然语言OOD
面向对象分析
「OOP
面向对象设计面向对象的编程语言
面向对象编程yOOT
面向对象测试I计算机
面向对象的软件维护面向对象的软件工程方法
北京理工大学讨算机条
第7页
面向对象分析领域分析
领域分析--创建可以广泛地用于整个应用领域范畴的可复用类(构件)
领域分析的输入输出
领域知识源
技术文件
提取类领域
已有应用
析
复用标准分
彳客户评定模型
型
2__专家建议模
型子设备语言
需求
多媒体视频
领域分析活动:
•定义被调查的领域,相关的设计、规约、代码、政策、标准、规程等项
•对领域中提取的项,划分种类并提取模式,命名,并且分层。
•收集领域中应用的代表性样本
•分析每个样本中的应用,标识对象、说明理由、定义适应性、估算复用率等
•开发对象分析模型,作为设计和构造类的基础
北京理工大学讨算机宗
第R页
面向对象设计
ObjectOrientedDesign,00D
00A的职责:00A针对问题域运用00方法,建立一反映
问题域的00A模型,而不考虑与系统实现有关的因素
(包括编程语言、图形用户界面、数据库等),从而
使00A独立于具体的实现。
・00D的职责:针对系统的一个具体实现运用00方法。其中包
括两方面工作,一是把00A模型直接搬到00D(不经过转换,
仅作某些必要的修改和调整),作为00D的一个部分;二是针
对具体实现中的人机界面、数据存储、任务管理等因素补充
一些与实现有关的部分,这些部分与00A采用相同的表示法和
模型结构。
北京理工大学讨算机宗
第9页
面向对象编程:ObjectOrientedProgram,OOP
面向对象编程(OOP)又称作面向对象实现(001),
OOP工作就是用同一种面向对象编程语言把00D模型中
的每个成分,用面向对象程序设计语言实现。
面向对象测试:ObjectOrientedTest,00T
面向对象测试(00T):对于用00技术开发的软件,在测试
过程中,运用00技术进行以对象概念为中心的软件测试。
在用00P编写的程序中,对象的封装性,把对象的静态和动
态特征组合在一起,使对象成为一个独立的程序单位,从而
大大减少了错误的影响范围。
00T以对象的类作为基本测试单位,查错范围:
1.类定义之内的属性和服务。
2.类的继承关系所产生的不同方法的测试。对基类测试完成
之后,产生类的测试重点只是那些新定义的属性和服务」
北京理工大学计算机:72
面向对象维护
ObjectOrientedMaintenance
面向对象软件工程方法为改进软件维护提供了有效的
途径。
1.程序与问题域一致,各阶段表示一致,从而降低了
理解的难度。
2.无论是程序错误而逆向追溯到问题域,还是需求发生
变化而从问题域正向追踪到程序,道路都是比较平坦
面向对象维护将系统中最容易变化的因素(功能)作
为对象的服务封装在对象内部,使得一个对象的修改
对其它影响很小。
北京理工大学讨算机条
第*页
面向对象基本概念---对象(Object)
客观世界是由各种对象组成的,任何事物都是复杂的
对象,可以由比较简单的对象以某种方式组合而成。这样,
可以把整个世界看做一个最复杂的对象。因此,对象是指一个
实体,它能够保存一个状态(或称信息或数据),并且它能提供一系列操作(
或称行为),这些操作或能检查或能影响对象的状态。
■对象具有封装性(encapsulation)
■对象具有自治性(autonomy)
objectchair
■对象具有通信性。
■对象具有被动性。.________cost$50
texturewood
■对象具有暂存性oobjectlocationsanctum
■对象可具有持久性(persistence)colorblack
、Move。j
北京理工大学讨算机宗
第12页
类(Class)
把所有对象都划分成各种对象类(简称为类),每个对象
类都定义了一组数据和一组方法。数据用于表示对象的静
态属性,用于描述对象的当前状态。方法用于描述对象的
动态特征,用于描述对象状态的改变过程。
classCc~lassfurnitureobiJect
cost
textureobjectchair
location
colorcost$50
texturewood
locationscantum
colorblack
attributeabstractMove()
北京理工大学讨算机宗
第13页
消息(Message)
00方法中的消息
消息就是向对象发出的服务请求,它应含有下述信息:
提供服务的对象标识、服务标识、输入信息和回答信息。
信息的接受者是提供服务的对象。在设计时,它对外提供的
每个服务都应该规定消息的格式,这种规定称做消息协议。
面向对象基本特征---封装性(Encapsulation)
对象是进行处理的主体,必须发消息请求执行它的某个操作
,处理它的私有数据,同时不能从外界直接对它的私有数据进行
操作。也就是说,一切局部于该对象的私有信息,都被封装在该
对象类的定义中,在对象的外部是不可见的,即不能直接使用,
这就是“”。
数据和过程的内部实现细节对外界隐藏(信息隐藏),这将减
少当变化发生时副作用的传播。
数据结构和操纵它们的操作被合并在单个命名实体(类)中,
这将便于构建复用。
被封装对象间的接口被简化。一个发送消息的对象不需要关心
接收对象的内部数据结构。因此,接口被简化,系统耦合度被降
低。
北京理工大学计算机/给1U右
面向对象基本特征---继承性(Inheritance)
按照子类(派生类)与父类(基类)的关系,把若干个对象类组成
一个层次结构的系统。在这种层次结构中,通常下层的派生
类具有和上层的基类相同的特性(包括数据和方法),这种表示
object:
WangNing
HaoHaidong
北京理工大学讨算机宗
第16页
面向对象基本特征---多态性(Polymorphism)
对象的多态性是指在一般类中定义的属性或服务被特殊类继
承之后,可以具有不同的数据类型或表现出不同的行为。
多态性的表示有静态类型和动态类型。动态类型(虚函数)
可以在程序执行期间在实例之间进行变化。静态类型(函数
重载)是在程序上下文中由实体说明决定的。
北京理工大学讨算机条
第17页
类/对象之间的关系——一般与特殊
一般一特殊:是由一组具有一般一特殊关系的类所组成的
结构。它是一个以类为结点,以继承关系为边的连通有向
图。如果由一些存在单继承关系的类形成的结构又称作层
次结构或树型结构,如果由一些存在多继承关系的类形成
的结构又称作网状结构。
学生交通工具
大学生中学生轮船客运工具
初中生高中生客轮
树型结构网状结构
北京理工大学讨算机宗
第18页
类/对象之间的关系类/对象之间的关系
——部分与整体——实例连接
一个对象是另一个(组)对象
•实例连接反映对象与
的组成部或分。整体——部分
对象之间的静态联系。
结构由一组彼此间存在着这种
这种双边关系在实现
组成关系的对象构成。整体一
中可以通过对象的属
部分结构又称做组装结构
性表达出来。所以这
(CompositionStructure)。
种关系称作实例连接。
组成结构
第19页
类/对象之间的关系——消息连接
描述对象之间的动态联系是用消息连接。若一个对象在执行
自己的服务时需要请求另一个对象为它完成某个服务。那么
这两个对象之间存在着消息连接。消息连接是有向的,从消
息的发送者指向消息的接受者。
北京理工大学讨算机宗
第20页
面向过程开发模型
面向过程开发模式产生过程的抽象。
这些抽象的基础是把软件视为处理流,并定义成由一系
列步骤构成的算法。
每一步骤都是带有预定输入和特定输出的一个过程,把
这些步骤串联在一起可产生合理的稳定的贯通于整个程
序的控制流,最终产生一个简单的具有静态结构的体系
结构。
面向过程开发模型特点
・过程性开发模式侧重建立构成问题解决的处理流。
•数据抽象、数据结构根据算法步骤的要求开发,它贯穿于
过程,提供过程所要求操作的信息。
•系统的状态是一组全局变量,这组全局变量保存状态的值,
把它们从一个过程传送到另一个过程。
北京理工大学讨算机宗
第21页
面向对象开发模型
在面向过程开发模式中优先考虑的是过程抽象,
在面向对象开发模式中优先考虑的是实体(问
题论域的对象)。
.在面向对象开发模式中,把标识和模型化问题
论域中的主要实体做为系统开发的起点,主要
考虑对象的行为而不是必须执行的一系列动作。
面向对象开发模型特点
•面向对象系统中的对象是数据抽象与过程抽象的综合。
•系统的状态保存在各个数据抽象的所定义的数据存储中。
•控制流包含在各个数据抽象中的操作内。
•在面向对象体系结构:消息从一个对象传送到另一个对象;
•算法被分布到各种实体中。
北京理工大学讨算机宗
第22页
举例:数据流图
举例:系统层次结构图
银行存取款子系统
信
客户
户
存
息
密
帐
取
记录
码
息
打
偏
增
记
印
验
新
帐
日志
证
证
露
块
模
模块
块
模块
模
模块
北京理工大学讨算机条
第24页
北京理工大学讨算机宗
第25页
面向对象项目估算和进度安排
由于00A的方法不同于传统方法,因此,有必要对明显设计
用于00软件的方法补充传统软件成本估算:
使用工作量分解、FP分析以及任何其它可应用于传统应用的
方法来进行估算。
♦:♦使用00A开发场景脚本(use-case)并确定计数。
❖使用00A确定关键类的数量。
划分应用的界面类型并确定支持类的倍数:将关键类的数量
和上面的倍数相乘可得到支持类数量的估算。
♦:♦将整个类的数量和每个类的平均工作单元相乘,一般每个类
10〜15个人日。
通过乘上每个场景脚本的平均工作单元,对基于类的估算进
行交叉检查。
北京理工大学讨算机条
第26页
面向对象分析方法
Rambaugh方法
也称为对象建模技术(ObjectModelingTechnique,
OMT),用于分析、系统设计和对象级设计。分析活动创
建三个模型:对象模型、动态模型和功能模型。
Coad和Yourdon方法
被认为是最容易学习的00A方法。建模符号简单,且开发
分析模型的指导原则是直接的。该方法00A过程如下:
标识对象
定乂一*般/特殊结构
定义整体/部分结构
标识主题
定义属性
定义服务
北京理工大学讨算机条
第27页
面向对象模型的组成——
一对象微型、动态模型、功能模型
面向对象分析的关键是识别出问题领域内的对象,并分析
它们相互间的关系,最终建立起问题域的简洁、精确、可
理解的正确模型。在面向对象观点建立起的模型中,对象
模型是最基本、最重要、最核心的模型。
面向对象分析过程从分析用户需求陈述的文件开始。
面向对象得到的模型包含对象的三个要素:
静态结构(对象模型)
交互次序(动态模型)
数据变换(功能模型)
北京理工大学讨算机条
第28页
对
象对象模型表示静态的、结构化的系统的“数据”性质。
模它是对模拟客观世界实体的对象以及对象彼此间的关系的
型映射,描述了系统的静态结构。面向对象方法强调围绕对
象而不是围绕功能来构造系统。对象模型为建立动态模型
和功能模型,提供了实质性的框架。
对象模型的图形符号
对象模型的命名
“类_&一对象”是一个专用术语,它的含
义是“一个类及属于该类的对象”。
X.使用标准术语
2.使用具有确切
含义的名词
3.必要时用名词
短语作名字
“类”符号
“类一&一对象”符号
北京理工大学讨算机条
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 密码基础及应用 8
- 德州学院英语语音期末复习题
- 2026年国外绘本教学现状研究
- 2026年食品安全检测流程及标准规范
- 2026年银行存量客户经营管理措施方案
- 2026年小学生民俗文化活动方案策划
- 2026年实验室安全分享小案例分析报告
- 2026年幼儿园教师年度规划教学目标
- 2026年过敏性休克急救措施与护理流程
- 2026年烘干房设计方案及流程
- 公路工程技术标准(2025版)
- 建筑垃圾消纳处置方案
- 芜湖市鸠江区2025-2026学年第二学期五年级语文期末考试卷(部编版含答案)
- 2025年贵州省高考物理试卷真题(含答案解析)
- 「2026」国家开放大学电大专科《外科护理学》期末试题及答案(试卷号:2403)
- 哈尔滨市总工会财务制度
- 环保公司介绍
- 防风安全培训课件
- 雨课堂学堂在线学堂云《软件无线电》单元测试考核答案
- 商道融绿:中国责任投资年度报告2025
- 急性胰腺炎恢复期肠内营养向口服过渡方案
评论
0/150
提交评论