软件工程 --面向对象技术
面向对象技术
面向对象=对象+类+继承+通讯
对象 最基本的成分 属性 方法
消息 对象与对象的通信
类 一组就有相同数据结构和相同操作的对象的集合
类 定义包括一组数据属性和在数据上的一组合法操作
继承 使用已经存在的定义作为基础建立新定义的技术
新类的定义可以是即存类所声明的数据和新类所增加的声明的组合
类的生存期
对象模型化技术OMT
把分析时收集的信息构造在三类模型中,对象模型,功能模型和动态模型
对象描述类之间的关系 有 聚合,限定,角色
动态模型 着重于系统的控制逻辑 两个图表示 状态图和追踪图
状态图是一个状态和事件的网络,侧重描述每一类对象的动态行为
状态是对某一时刻中属性特征的概括。而状态迁移表示这一类对象在何时对系统内外发生的哪些事件做出任何响应
事件
一个事件发生在某一时刻 每个事件都是单独发生的
功能模型
通过计算。从输入数据能得到什么样的输出数据,步考虑参加计算的数据按什么时候执行
由多个数据流图组成,他们指明从外部输入,通过操作和内部储存,直到外部输出,这整个的数据流情况
基于三个模型的分析过程
功能模型定义做什么
动态模型定义何时做
对象模型定义对谁做
Coad与yourdon 面向对象分析
OOA 有两个任务
构造OOA概念模型的层次
五个层次 类与对象,属性,服务,结构和主题
对象-类层
1对象-类模 如何建立基本块 2信息建模,就是指从现实世界中捕捉并抽象出应用论域的基本结构的过程3应用论域是非常重要的。 同一概念在不同论域中抽象出来的基本构造块是不同的
属性层 对象的属性和实例连接共同组成了OOA模型的属性层
服务层
对象的服务,加上对象实例之间的消息通信,共同组成了OOA模型的服务层,消息连接用有向箭头表示
结构层
1机构层的一种类型,描绘出了该系统的整体结构2结构层的另一种类型成为一般特殊结构或泛化特化结构,泛化特化结构表面了类的继承性
主题层
OOA 模型的结构庞大而复杂,可以将对象归类到各种主题中,把有关的对象用一个主题边框框起来
识别类和对象
标识结构 一般特殊化结构 整体部分结构
定义服务的方法和策略 1找出每一个对象的所有状态,在各种状态需要做的工作,利用状态迁移图 2 找出必要的操作3 建立消息连接4描述服务
识别主题 可以看成是最高的模块或子系统 对于面向对象分析模型,主题表示模型的整体框架
OOD 面向对象设计 高层设计 类设计
高层设计 就是构建应用 软件的总体模型
高层设计应遵循的原则
1应使得在子系统的各个 高层部件之间的通信量达到最小2子系统应当把那些成组的类打包,形成高度的内聚3 逻辑功能分组,提供一个一个单元,识别并定位问题事件
Coad与Yourdon 高层是设计方法
问题论域部分 包括与应用问题直接有关的所有类和对象
人机交互部分 用户界面设计
1用户分类 按技能层次分类,按组织层次分类,按职能分类
2描述人及其任务的脚本 对以上定义的每一类用户,列出对以下问题做出的考虑,什么人目的,特点,成功的关键因素,熟练程度以及任务脚本
3设计命令层 建立一个初始的命令层,细化命令层,研究现行的人机交互活动的内同和准则
4设计详细的交互
用户界面设计有若干原则 一致性,操作步骤少,不要 “哑播放”
5 继续做原型 用户界面原型是用户界面设计的重要工作
6 设计HIC(人机交互)类 窗口余姚进一步细化 设计HIC类,首先从组织窗口和部件的用户界面界面的设计开始
任务管理部分设计
任务,是进程的别称,是执行一系列活动的一段程序
任务管理包括任务的选择和调整
数据管理部分的设计
提供了在数据管理系统图中储存和检索对象的基本结构,包括对永久性数据的访问和管理
它分离了数据管理机构所关心的事项,包括文件、关系型DBMS或面向对象DBMS等
数据管理方法 文件管理,关系数据库管理和面向对象数据库管理
面向对象环境下的测试策略
单元测试 组装测试分为2种 基于线索测试 基于应用的测试
确认测试 黑盒测试方法
类的测试用例组
一个类的测试用例组由满足测试需求的用例组成
每个测试用例是一系列输入值,它们将在要求的处理中执行,以满足测试需求