文档详情

软件工程(西南交通大学软件工程)剖析.ppt

发布:2016-11-28约2.39千字共17页下载文档
文本预览下载声明
第12章 面向对象实现 12.1.1 面向对象语言的优点 使用面向对象语言时,编译程序可以自动把面向对象概念映射到目标程序中。 使用非面向对象语言编写面向对象程序,则必须由程序员自己把面向对象概念映射到程序中。 1980年的smalltalk-80发展了Simula-67的对象和类的概念,并引入了方法、消息、元类及协议等概念,所以有人将smalltalk80称为第一个面向对象语言。 但是,使面向对象广泛流行的是C++。 12.1.2 面向对象语言的技术特点 选择面向对象语言时应考虑的技术特点: 1. 支持类与对象概念的机制 2. 实现整体-部分(聚集)结构的机制 3. 实现一般-特殊(泛化)结构的机制 4. 实现属性和服务的机制 5. 类型检查 6. 类库 7. 效率 8. 持久保存对象 9. 参数化类 10. 开发环境 12.1.3 选择面向对象语言 1. 将来能否占主导地位 2. 可重用性 3. 类库和开发环境 4. 其他因素 有否提供技术支持?提供开发人员什么开发平台?对及其性能的需求?集成已有软件的容易程度。 12.2 程序设计风格 12.2.1 提高可重用性 12.2.2 提高可扩充性 12.2.3 提高健壮性 12.3 测试策略 12.3.1 面向对象的单元测试 基类:操作 A:X 子类:操作 A1:X A2:X A3:X 有必要在每个子类中测试操作 X 不孤立地测试单个操作(函数),而是把操作作为类的一部分进行测试。 12.3.2 面向对象的集成测试 两种不同的测试策略: 1)基于线程的测试(thread based testing) 将响应系统的一个输入或一个事件所需要的哪些类集成起来测试。 2)基于使用的测试(use based testing) 先测试独立类,再测试使用独立类的下一层次的类(依赖类),重复直至完毕。 12.3.3 面向对象的确认测试 主要是根据动态模型和描述系统行为的脚本来设计确认测试用例。 12.4 设计测试用例 12.4.1 测试类的方法 1. 随机测试 ATM系统中account(帐户)类的操作有:Open(打开)、Setup(建立)、Deposit(存款)、Withdraw(取款)、Balance(余额)、Summarize(清单)、CreditLimit(透支限额)、Close(关闭)。 可以随机地产生一系列不同的操作序列: 测试用例1:Open.Setup.Deposit.Balance.Summarize.Withdraw.Close 测试用例2: Open.Setup.Withdraw.Deposit.Balance.CreditLimit.Close 2. 划分测试(类似于等价类划分) 1)基于状态的划分 改变Account类状态的操作: deposit, withdraw; 不改变Account类状态的操作: balance, summarize, creditLimit 测试用例: 1.open.setup.deposit.deposit.withdraw.withdraw.close; 2.open.setup.balance.summarize.creditLimit.close; 2)基于属性的划分 根据类操作使用的属性来划分操作。 例,按属性Balance分可三类: 使用Balance的操作; 不使用Balance的操作; 不使用也不修改balance的操作。 3)基于功能的划分 依据类操作完成的功能来划分类操作。 例,初始化操作:open,setup 计算操作:deposit,withdraw 查询操作:balance, summarize, creditLimit 3. 基于故障的测试 一般依靠经验和直觉,类似于错误推测测试法。 12.4.2 集成测试方法 测试类协作可以使用随机测试方法、划分测试方法、行为测试等。 1. 多类测试 2. 从动态模型导出测试用例 Empty acct setup acct working acct nonworking acct dead acct open Setup acc
显示全部
相似文档