软件工程导论课件之第12章-面向对象实现(第六版)(张海藩编著)
- 格式:ppt
- 大小:478.50 KB
- 文档页数:44
第一章、软件工程学概述软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
软件危机包含下述两个方面的问题:1.如何开发软件,以满足对软件日益增长的需求。
2.如何维护数量不断膨胀的已有软件。
具体的说,软件危机主要有以下一些典型表现:1.对软件开发成本的进度的估计常常很不准确。
2.用户对“已完成的”软件系统不满意的现象经常发生3.软件产品的质量往往靠不住。
4.软件常常是不可维护的。
5.软件通常没有适当的文档材料。
6.软件成本在计算机系统总成本中所占的比例逐年上升。
7.软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
软件生命周期:一个软件从定义、开发、使用和维护,知道最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生命周期。
软件配置:程序、文档和数据。
软件工程学的一个重要的目标:就是提高软件的可维护性,减少软件维护的代价。
软件:是程序、数据及相关文档的集合。
程序:是能够完成预定功能和性能的可执行的指令序列。
数据:是使程序能够适当地处理信息的数据结构。
文档:是开发、使用和维护程序所需要的图文资料。
软件工程:指导计算机软件开发和维护的一门工程学科。
软件工程具有下属的本质特性:1.软件工程关注于大型程序的构造。
2.软件工程的中心课题是控制复杂性。
3.软件经常变化。
4.开发软件的效率非常重要。
5.和谐地合作是开发软件的关键。
6.软件必须有效地支持它的用户。
7.在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。
软件工程的7条基本原理:1.用分阶段的生命周期计划严格管理。
2.坚持进行阶段评审。
3.实行严格的产品控制4.采用现代程序设计技术。
5.结构应能清楚的审查。
6.开发小组的人员应该少而精。
7.承认不断改进软件工程实践的必要性。
软件工程:包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。
通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为泛型。
第12章面向对象实现1.面向对象实现应该选用哪种程序设计语言?为什么?答:(1)面向对象实现应该尽量选用面向对象语言来实现面向对象分析、设计的结果。
(2)原因①一致的表示方法。
面向对象开发基于不随时间变化的、一致的表示方法。
既有利于在软件开发过程中始终使用统一的概念,也有利于维护人员理解软件的各种配置成分。
②可重用性。
既可重用面向对象分析结果,也可重用相应的面向对象设计和面向对象程序设计结果。
③可维护性。
程序显式地表达问题域语义,对维护人员理解待维护的软件有很大帮助。
在选择编程语言时,应该考虑的首要因素是哪个语言能最恰当地表达问题域语义。
2.面向对象程序设计语言主要有哪些技术特点?答:(1)支持类与对象概念的机制。
(2)实现聚集结构的机制。
(3)实现泛化结构的机制。
(4)实现属性和服务的机制。
(5)类型检查机制。
(6)类库。
(7)效率。
(8)持久保存对象的机制。
(9)参数化类的机制。
(10)开发环境。
3.选择面向对象程序设计语言时主要应该考虑哪些因素?答:(1)将来能否占主导地位。
(2)可重用性。
(3)类库和开发环境。
(4)其他因素,包括售后服务、对运行环境的需求、集成已有软件的难易程度等。
4.良好的面向对象程序设计风格主要有哪些准则?答:面向对象程序设计风格应遵循如下准则:(1)提高重用性。
(2)提高可扩展性。
(3)提高健壮性。
5.测试面向对象软件时,单元测试、集成测试和确认测试各有哪些新特点?答:(1)单元测试,是在类层面上的测试。
由于继承和复合,类(或对象)在很多情况下已不再是单纯意义上的单个操作。
因此,具体的测试将在多有与操作有关的每个子类语境中进行。
(2)集成测试,由于面向对象软件中类的成分直接和间接交互,使得传统测试放法已经失去意义。
因此有两种策略可供选择,分别是基于线程的测试和基于使用的测试。
(3)确认测试,关注与用户可见的动作和用户识别的系统输出,但基于场景的测试总是主宰面向对象系统的确认测试。