软件工程之面向对象技术

来源:互联网 发布:vb sleep函数 编辑:程序博客网 时间:2024/06/05 06:16

前言

面向对象围绕它的四个概念展开,重点讲述了四个概念的步骤,相关模型和测试。

什么是面向对象

面向对象=对象+类+继承+通信;一个软件系统使用这四个概念设计实现,则该系统是面向对象。
对象:
面向对象开发模式的基本成份;
每个对象可用它本身的一组属性和它可以执行的一组操作来定义;
属性一般只能通过执行对象的操作来改变;
操作描述了对象执行的功能;

消息:一个对象与另一个对象的通信单元

一组具有相同数据结构和相同操作的对象的集合
类的定义包括一组数据属性和在数据上的一组合法操作
类的规格说明定义了施加于对象的数据存储上的一组操作

类的实现

变量的声明、操作界面的实现及支持界面操作的函数的实现,可实现一个类的预期行为和状态
实现与语言有关,一个好的面向对象语言应当分离共有界面与其内部实现

类的测试

在最抽象的层次开始,沿继承关系继续向下进行,已测试过的部分不需要从新测试。

求精和维护之前的软件维护重点介绍了;

对象模型化技术OMT

模型化过程是一个迭代过程。

对象模型

其中对象模型是三个模型中最关键的模型。描述系统的静态结构,包括构成系统的类和对象,它们的属性和操作及它们之间的关系;OMT中,类与类之间的关系叫做关联。

关联中又有三种关系:
聚合:整体与部分;
限定:对关联的含义做某种约束;
角色:用来说明关联的一端;

动态模型

注重于系统的控制逻辑,包括状态图和时间追踪图;
两者间的关系:状态图描述一个对象的个体行为,事件追踪图给出多个对象所表现出的集体行为。

状态图:
一个状态和事件的网络,侧重描述每一类对象的动态行为;动态模型由多个状态图组成;

事件追踪图:
侧重于说明发生于系统执行过程中的一个特定场景;场景是完成系统某个功能的一个事件序列。

事件特点:
事件发生于某一时刻;每个事件单独发生;事件从一个对象向另一个对象传送信息;

功能模型

多个数据流图组成,指明从外部输入,通过操作和内部存储,直到外部输出的整个数据流情况。
数据流图允许加入控制流,但不提倡夹带控制流。

以上三个的关系:
功能模型“做什么”
动态模型”何时做”
对象模型”对谁做”

OOA概念模型的层次

五个层次:
类与对象、属性、服务、结构和主题

面向对象分析步骤

1.类和对象是对应用领域有关概念的抽象;
选择类和对象的原则:
目标系统记住类和对象的某些事情;类和对象应当提供某些服务或处理;多属性;所有属性对于类中所有实例都应有意义。
2.标识结构
应当寻找什么
3.属性层
对前面已识别的类和对象做进一步的说明。
标识属性的方法和策略:
.找出属性
.将属性安放到适当位置
.找出实例连接
.检查特殊情况
.描述属性
.考虑取值范围、极限值、缺省值等时候会受到其他属性值等。

1.对象-类层
OOA模型的基础,待开发系统的基本构造;
2.信息建模
从现实世界中捕捉并抽象出应用论域的基本结构的过程。OOA过程中最基本和最关键的活动之一。

服务层的方法和策略;
消息连接的方法和策略
对每一个对象,需要查询该对象需要哪些对象的服务;查询哪个对象需要该对象的服务。

面向对象设计OOD

高层设计
构造应用软件的总体模型

特点

可表征为标识和定义模块的过程;
可以是一个单个的类,也可以是由一些类组合成的子系统
定义过程是职责驱动的

高层设计原则

子系统的各个高层部件之间的通信量最小;
子系统应把那些成组的类打包,形成高度的内聚;
逻辑功能分组,一个一个单元识别并定位问题事件;

上面五个层次用于建立系统的四个组成成份
问题论域部分;
人机交互部分;
任务管理部分;
数据管理部分;

类设计

用户界面部分设计OOA

之前的文章用户界面设计和软件测试已经有详细介绍。