- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程导论(第12章)
考虑Bank类相对于ATM类的操作序列: verifyAcct. verifyPIN. [ ( verifyPolicy. withdrawReq ) | depositReq | acctInfoReq ]n 2. 从动态模型导出测试用例 Empty acct setup acct working acct nonworking acct dead acct open Setup acct Deposit(initial) close Withdraw (final) deposit withdraw Balance Credit Acct Info Account类的状态转换图 应使Account类实例遍历所有允许的状态转换: 测试用例1: open. setupacct. deposit(initial). withdraw(final). Close 测试用例2: open. setupacct. deposit(initial). deposit. blance. credit. withdraw(final). Close 测试用例3: open. setupacct. deposit(initial). deposit. withdraw. AcctInfo. withdraw(final). Close …… 练习题 填空题: 1、面向对象测试的目标是用尽可能低的( )发现尽可能多的( )。 2、面向对象实现包括两项工作:( )和( )。 3、选择编程语言的关键因素是语言的( )、( )和( )。 4、一般代码重用有两种,分别为( )和( )。 5、良好的面向对象程序设计风格必须遵循的三种准则:( )、( )和( )。 6、测试单个类的方法主要有三种,分别为( )、( )和( )。 简答题: 1、简述选择面向对象语言时应该着重考虑哪4个实际因素? 2、简述面向对象集成测试的两种策略? 3、P.304 第1,2,3,4,5,6,7,8题 第12章 面向对象实现 12.1.1 面向对象语言的优点 使用面向对象语言时,编译程序可以自动把面向对象概念映射到目标程序中。 使用非面向对象语言编写面向对象程序,则必须由程序员自己把面向对象概念映射到程序中。 选择编程语言的关键因素 一致的表示方法:从问题域到OOA,从OOA到OOD,从OOD到OOP,具有不随时间变化的特性 可重用性:分析结果、设计结果、代码 可维护性:从文档到代码。 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 提高可重用性 代码重用有两种:1.本项目内的代码重用 2.新项目重用旧项目的代码 面向对象程序设计准则: 提高方法内聚:方法的原子性 减少方法的规模:方法数量要适当 保持方法的一致性:方法的名称、参数等 把策略与实现分开:决策类和操作类分开 全面覆盖 尽量不使用全局信息 利用继承机制 12.2.2 提高可扩充性 封装实现策略 不要用一个方法遍历多条关联链 避免使用多分支语句 精心确定公有方法 12.2.3 提高健壮性 预防用户的操作错误 检查参数的合法性 不要预先确定限制条件 先测试后优化 12.3 测试策略 12.3.1 面向对象的单元测试 基类:操作 A:X 子类:操作 A1:X A2:X A3:X 有必要在每个子类中测试操作 X 不孤立地测试单个操作(函数),而是把操作作为类的一
文档评论(0)