1 / 97
文档名称:

软件工程课件.ppt

格式:ppt   大小:745KB   页数:97页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

软件工程课件.ppt

上传人:文库新人 2018/9/6 文件大小:745 KB

下载得到文件列表

软件工程课件.ppt

相关文档

文档介绍

文档介绍:面向对象的程序设计语言
面向对象语言的优点
编码相对软件生命期的各个阶段来说是最容易的,所以为数较多的初级程序员均可参加这一阶段的工作。但是在软件生命期中,程序是经常需要被阅读的,例如设计测试用例、排错、修改、功能扩充等都需要程序员或其他人员阅读程序。可以这样说,在软件开发过程中,读程序的时间比写程序的时间还要多,因此,如何能够更完整、更准确地表达问题域语义,使所开发出的程序易于阅读,使所开发的系统具有很强的可重用性和可维护性,选择一种什么样的语言作为开发工具就显得尤为重要。
面向对象设计的结果要转换为计算机系统可以识别的代码,既可以用面向对象语言,也可以用非面向对象语言实现。设计阶段设计的对象和关联最终都必须用具体的编程语言或数据库实现。使用OO语言来实现OO设计相对来说比较容易,因为语言的结构与设计的构造是相似的,OO语言支持对象、多态性和继承性。使用非OO语言需要特别注意和规定保留程序的OO结构,OO概念可以映射到非OO语言结构中,这只是一个表达方式的问题,不是语言能力的问题,因为编程语言最终要转换为机器语言,但OO语言良好的风格尤为突出。由于语言本身充分支持面向对象概念的实现,因此,编译程序可以自动把面向对象概念映射到目标程序中。使用非面向对象语言编写面向对象程序,则必须由程序员自己把面向对象概念映射到目标程序中。
例如人语言并不直接支持类或对象的概念,程序员只能在结构中定义变量和相应的函数(事实上,不能直接在结构中定义函数而是要利用指针间接定义)。所有非面向对象语言都不支持一般到特殊结构的实现,使用这类语言编程时要么完全回避继承的概念,要么在声明特殊化类时,把对一般化类的引用嵌套在它里面。
我们说选用面向对象语言还是非面向对象语言,这只是一个表达方式的问题,不是语言能力的问题。从原理上说,使用任何一种通用语言都可以实现面向对象概念。在传统的面向功能的方法学中,强调的是确定和分解系统功能,这种做法虽然是目标的最直接的实现方式,但由于功能是软件系统中最不稳定、最容易变化的方面,因而获得的程序往往难于维护和扩充。OO方法开发软件,其结构源于客观世界稳定的对象结构,与传统软件相比,软件本身的内部结构发生了质的变化,易重用性和易扩充性都得到提高。围绕对象来组织软件系统,可以自然地将现实世界模型映射到软件结构中。因此,使用面向对象语言,实现面向对象概念,远比使用非面向对象语言方便。当然,方便性也并不是决定选择何种语言的关键因素。
选择程序设计语言的关键因素,是语言的一致的表达能力、可重用性及可维护性。面向对象语言刻画客观系统较为自然,它具有:
①识认性,系统中的基本构件可识认为一组可识别的离散对象;
②类别性,系统具有相同数据结构与行为的所有对象可组成一类;
③多态性,对象具有惟一的静态类型和多个可能的动态类型;
④继承性,在基于层次关系的不同类中共享数据和操作等特点。
因此,能够更完整、更准确地表达问题域语义的面向对象语言的语法是非常重要的,这将会对系统带来下述几个重要优点。
1. 一致的表示方法
从前面章节的讲述中可以知道,面向对象开发基于不随时间变化的、一致的表示方法。这种表示方法应该从问题域到OOA,从OOA到OOD,最后从OOD到面向对象编程(OOP),始终稳定不变。一致的表示方法既有利于在软件开发过程中始终使用统一的概念,也有利于编程人员理解软件的各种配置成分。
我们以“自动饮料售货机”为例,说明面向对象开发基于不随时间变化的、一致的表示方法。对于“自动饮料售货机”这一实例,在问题域、OOA、OOD或是OOP的各个阶段所用到的概念都是一致的、不变的。如:退币杆、找零、熄灯、投币口、投币、饮料、饮料倒出等,这对于用户、分析人员、编程人员、测试人员、维护人员来说,无疑是有很大的帮助的。
2. 可重用性
软件的可重用性的好坏对于提高软件产品的质量和软件开发效率意义重大。为了能带来可观的商业利益,必须在更广泛的范围中运用重用机制,而不是仅仅在程序设计这个层次上进行重用。因此,在OOA、OOD直到OOP中都显式地表示问题域语义,其意义是十分深远的。随着时间的推移,软件开发组织既可能重用它在某个问题域内的OOA结果,也可能重用相应的OOD和OOP结果。
我们仍以“自动饮料售货机”为例,说明可重用性对于提高软件产品的质量和软件开发效率意义重大。假设该“自动饮料售货机”可提供汽水、洛神、红茶、可乐、奶昔等五种饮料,有关这五种饮料所实施的操作是相同的,因此,可以构造一个饮料类,然后由该类构造汽水、洛神、红茶、可乐、奶昔等五种不同的对象。这对于提高软件开发质量和软件开发效率具有重要的意义。
3. 可维护性
软件维护是一件极为复杂的事情,在软件的开发成本中约占到70%左右。为了