- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程第12章(不讲)
第12章 面向对象实现 12.1 程序设计语言 12.2 程序设计风格 12.3 测试策略 12.4 设计测试用例 12.5 小结 习题 概述 面向对象实现主要包括两项工作: 把面向对象设计结果翻译成用某种程序语言书写的面向对象程序; 测试并调试面向对象的程序。 面向对象程序的质量主要由设计的质量决定 语言的特点和程序设计风格影响程序的可靠性、可重用性及可维护性 面向对象的软件测试是保证可靠性的主要措施。 12.1 程序设计语言 12.1.1 面向对象语言的优点 面向对象设计的结果既可以用面向对象语言、也可以用非面向对象语言实现。 一般说来,应该尽量选用面向对象语言来实现面向对象分析、设计的结果。 面向对象语言的重要优点: 1. 一致的表示方法 从问题域-OOA-OOD-OOP,始终稳定不变。 2. 可重用性:能带来可观的商业利益。 3. 可维护性 12.1.2 面向对象语言的技术特点 1. 支持类与对象概念的机制 允许用户动态创建对象,可以用指针引用动态创建的对象。 系统必须管理内存,有两种方法: 自动回收“垃圾”的机制; 由程序员编写释放内存的代码。 2. 实现整体-部分(即聚集)结构的机制 有两种实现方法,分别使用指针和独立的关联对象实现整体-部分结构。 3. 实现一般-特殊(即泛化)结构的机制 包括实现继承、解决名字冲突(多重继承)的机制。 4. 实现属性和服务的机制 属性:支持实例连接的机制;属性的可见性控制;对属性值的约束。 服务:支持消息连接(即表达对象交互关系)的机制;控制服务可见性的机制;动态联编。 5.编译时类型检查 强类型语言有助于提高软件的可靠性和运行效率,大多数新语言都是强类型的。 弱类型:要求每个变量或属性隶属于一个对象 强类型:规定每个变量或属性必须准确地属于某个类 6. 类库 包容类:通用数据结构类(动态数组、表、队列、栈、树等等)。 接口类:独立于具体设备 (输入输出流) 。 7. 效率 类库中提供了更高效的算法和更好的数据结构。 绝大多数面向对象语言都实现了高效率查找。 8. 持久保存对象 数据不依赖于程序执行的生命期而长时间保存下来,则需要提供某种保存数据的方法。 9. 参数化类 所谓参数化类,就是使用一个或多个类型去参数化一个类的机制。C++语言也提供了类模板。 10. 开发环境 对软件生产率有很大影响 最基本的软件工具: 编辑程序,编译程序或解释程序,浏览工具,调试器(debugger)等。 12.1.3 选择面向对象语言 将来能否占主导地位 可重用性 类库和开发环境 其他因素 12.2 程序设计风格 良好的程序设计风格对面向对象实现来说尤其重要 能明显减少维护或扩充的开销 有助于在新项目中重用已有的程序代码 面向对象方法的一个主要目标,就是提高软件的可重用性。 12.2.1 提高可重用性 主要的准则: 1. 提高方法的内聚 一个方法(即服务)应该只完成单个功能。 2. 减小方法的规模 3. 保持方法的一致性 名字、参数特征(包括参数个数、类型和次序)、返回值类型、使用条件及出错条件的一致性,有助于实现代码重用。 提高可重用性 4. 把策略与实现分开 策略方法应该检查系统运行状态,并处理出错情况,它们并不直接完成计算或实现复杂的算法。 实现方法仅仅针对具体数据完成特定处理,通常用于实现复杂的算法。 应把算法的核心部分放在一个实现方法中。从策略方法中提取出具体参数,作为调用实现方法的变元。 5. 全面覆盖 应该针对输入条件的各种组合写出方法。 一个方法对空值、极限值及界外值等异常情况也应该作出有意义的响应。 提高可重用性 6. 尽量不使用全局信息 尽量降低方法与外界的耦合程度。 7. 利用继承机制 在面向对象程序中,使用继承机制是实现共享和提高重用程度的主要途径。 (1) 调用子过程。 (2) 分解因子。 (3) 使用委托。 (4) 把代码封装在类中。 12.2.2 提高可扩充性 1. 封装实现策略 应该把类的实现策略封装起来,对外只提供公有的接口,否则将降低今后修改数据结构或算法的自由度。 2. 不要用一个方法遍历多条关联链 一个方法应该只包含对象模型中的有限内容。 3. 避免使用多分支语句 应利用多态性机制,根据对象当前类型,自动决定应有的行为。 4. 精心确定公有方法 修改公有方法的代价通常都比较高。 12.2.3 提高健壮性 1. 预防用户的操作错误 软件系统必须具有处理用户操作错误的能力。 2. 检查参数的合法性 在使用公有方法时可能违反参数的约束条件。 3. 不要预先确定限制条件 应该使用动态内存分配机制,创建未预先设定限制条件的数据结构。 4. 先测试后优化 先测试程序的性能,合理地确定为提高性能应该着重优化的关键部分。
您可能关注的文档
最近下载
- 全球Web3.0技术产业生态发展报告.pdf VIP
- 《基于虚拟现实技术的数字艺术展览互动体验创新设计研究》教学研究课题报告.docx
- 2023湖南安全员B证考试题库及答案.pdf VIP
- 嵌入式技术与应用开发项目教程(STM32版)习题答案.pdf VIP
- 中考数学专项提升复习:三角形的动点问题.docx VIP
- 广东春季高考数学2024试卷 .pdf VIP
- 2025年国企招聘考试(公共基础知识)经典试题及答案.docx VIP
- 酸碱中和滴定.ppt VIP
- 某地老年公寓养老院建设项目可行性研究报告(不错).doc
- 2025-2026学年小学音乐四年级上册花城版(2024)教学设计合集.docx
有哪些信誉好的足球投注网站
文档评论(0)