第八章 面向对象分析
1.传统软件工程方法对应的软件过程模型(或者软件生命周期模型)通常是瀑布模型,划分为以下阶段:
a.问题定义;
b.需求分析;
c.可行性研究;
d.概要设计;
e.详细设计;
f.编码;
h.测试;
i.维护
2.目前通常将通用的传统软件工程方法划分为以下阶段:
a.需求分析;
b.概要设计;
c.详细设计;
d.编程;
e.测试;
f.维护;
3.目前较新的文献将软件工程方法划分为以下阶段:
a.系统工程;
b.分析;
c.设计;
d.测试;
e.维护;
4.面向对象软件工程方法对应的软件过程模型分为以下阶段:
a.面向对象的分析OOA;
b.面向对象的设计OOD;
c.面向对象的编程OOP;
d.面向对象的测试OOT;
e.面向对象的软件维护OOSM;
5.面向对象的基本概念
5.1 对象
a.世界上所有的事物都可以称为对象。
b.对象的两大要素:属性和操作(方法)。
属性是静态特征的描述,操作是动态特征的描述。对象同时具备静态特征和动态特征。
c.对象的特点:
以数据为中心;
对象是主动的;
实现数据封装;
模块独立性好;
d.对象的标识是对象名。
5.2 类
a.类是一个抽象的概念。根据抽象的原则对客观事物进行归纳和划分,并且只关注与当前目标相关的特征,
从而就把具有相同特征的事物归为了一个类。
c.类是具有相同属性和相同操作的对象的集合。
5.3 封装
a.封装,是指按照信息屏蔽的原则,把对象的属性和操作结合在一起,构成一个独立的对象。
c.外部对象不能直接操作对象的属性,只能使用对象提供的服务。
d.封装的作用,在于保护了类的具体实现,隐藏了用户无需关心的细节,同时对用户体现出来相同的接口(即操作方法),
从而提高了可复用性。
5.4 继承
a.继承表达了对象的一般与特殊的关系。特殊类的对象具有一般类的全部属性和服务。
c.继承具有传递性。(即父类、子类、孙类等。。。)
5.5 消息
a.定义:消息指的是向某个对象发出的服务请求。
b.对象提供的服务规定的消息格式称为消息协议。
c.消息包括:
被请求的对象标识、被请求的服务标识、输入信息、应答信息。
5.6.结构与连接
a.部分与整体的关系
b.一般与特殊的关系
c.实例连接的关系
d.消息连接的关系
5.7 多态性
a.多态性指的是一般类中定义的属性和服务,在特殊类中不改变其名字,但通过各自不同的实现后,可以具有不同的数据类型
或具有不同的行为。
b.静态分派:方法的重载,即同名不同参;
c.动态分派:方法的重写;
6.统一建模语言UML
6.1 UML的层次
元——元模型:定义描述元模型的语言;
元模型:描述模型的语言;
模型:对现实世界的抽象,用来描述信息领域;
用户对象:一个特定的信息领域对象;
7.面向对象分析
7.1 需求陈述
a.面向对象分析就是抽取和整理用户需求并建立问题域精确模型的过程。
b.面向对象分析从分析陈述用户需求的文件开始。
7.2 建立对象模型
a.建立对象模型的首要工作,就是建立问题域的对象模型;
b.建立对象模型:
确定类和对象:
确定关联:
进一步完善:
确定属性:
识别继承关系:
自底向上:抽象出现有类的共同性质泛华出父类,即归纳思维的过程;
自顶向下:把现有类细化成更具体的子类,即演绎思维的过程;
7.3 建立动态模型
a.在开发交互式系统时,动态模型非常重要。
b.建立动态模型的步骤:
编写典型交互行为的脚本:
从脚本中提取出事件:
排列事件发生的次序:
比较各个对象的状态图:
7.4 建立功能模型
a.功能模型的主要内容:
数据之间的依赖关系:
数据处理能力;
主要工具借用面向过程软件设计方法的数据流图和数据字典;
功能处理可以使用IPO图、伪码等多种方式进一步描述;
b.功能模型建立的主要步骤:
画出基本相同模型图:
画出功能级数据流图;
描述处理框功能:
7.5 定义服务
需要显式画出服务:
a.从事件导出的事件;
b.与数据流图中处理框对应的操作;
c.利用继承减少冗余操作;
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!