面向对象程序设计风格

1 面向对象实现

  • 把面向对象设计结果翻译成面向对象程序
  • 测试并调试面向对象的程序

2 程序设计语言

所有语言都可完成面向对象实现,但效果不同

  • 使用非面向对象语言编写面向对象程序,则必须由程序员自己把面向对象概念映射到目标程序中。
  • 选用面向对象语言的优点:
  • 将来能够占主导地位,产品有生命力
  • 可重用性
  • 类库和开发环境,考虑类库中提供有价值类,开发环境中提供基本软件工具和类库编辑工具及浏览工具。

3 程序设计风格

  • 提高可重用性
  • 提高方法的内聚
  • 减小方法的规模
  • 保持方法的一致性
  • 把策略与实现分开
  • 全面覆盖
  • 尽量不用全局信息
  • 利用继承机制
  • 提高可扩充性
  • 封装实现策略
  • 不要用一个方法遍历多条关联链
  • 避免使用分支语句
  • 精心确定公有方法
  • 提高健壮性
  • 预防用户操作错误
  • 检查参数合法性
  • 不预先确定限制条件
  • 先测试后优化

4 面向对象程序测试

  • 测试策略

面向对象架构风格的应用 面向对象设计风格_软件工程

单元测试

单元:封装的类和对象

对程序内部具体单一功能模块测试,如程序用C++实现,主要对类成员函数测试。

传统的测试方法都可使用,等价类划分、边值分析、逻辑覆盖法、基本路径法。

集成测试

在面向对象的软件中不存在层次的控制结构,传统的自顶向下或自底向上的集成测试就没有意义了。

此外,由于构成类的各个成分彼此间存在直接或间接的交互,一次集成一个操作到类中(传统的渐增式集成方法)通常是不现实的。

面向对象软件的集成测试主要有下述两种不同策略。

**基于线程的集成测试:**把响应系统的一个输入或一个事件所需类集成起来。

**基于使用的集成测试:**先测独立类,测完后测独立类下一层类(依赖类),到测完。

确认测试

测用户可见动作,可识别系统输出。

根据动态模型和描述系统行为的脚本设计确认测试用例。黑盒法

  • 测试用例设计
  • 测试类的方法
  1. 随机测试
  2. 划分测试
  1. 基于状态的划分
  2. 基于属性的划分
  3. 基于功能的划分
  1. 基于故障的测试
  1. 错误推测法
  • 集成测试方法
  1. 多类测试
    随机测试和划分测试