欢迎来到天天文库
浏览记录
ID:19605485
大小:740.00 KB
页数:72页
时间:2018-10-04
《面向对象实现ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、面向对象实现第十二章张海藩《软件工程导论》(第5版)2021/8/141面向对象实现的两项工作面向对象实现主要包括两项工作:把面向对象设计结果翻译成用某种程序语言书写的面向对象程序;测试并调试面向对象的程序。2021/8/142面向对象程序的质量面向对象程序的质量基本上由面向对象设计的质量决定。所采用的程序语言的特点和程序设计风格也将对程序的可靠性、可重用性及可维护性产生深远影响。2021/8/143面向对象测试的特殊性目前,软件测试仍然是保证软件可靠性的主要措施,对于面向对象的软件来说,情况也
2、是如此。面向对象测试的目标,也是用尽可能低的测试成本发现尽可能多的软件错误。面向对象程序中特有的封装、继承和多态等机制,给面向对象测试带来一些新特点,增加了测试和调试的难度。2021/8/144主要内容程序设计语言程序设计风格测试策略设计测试用例2021/8/145“程序设计语言”主要内容面向对象语言的优点面向对象语言的技术特点选择面向对象语言2021/8/146面向对象设计结果的实现面向对象设计的结果既可以用面向对象语言,也可以用非面向对象语言实现。使用面向对象语言时,由于语言本身充分支持面向
3、对象概念的实现,因此,编译程序可以自动把面向对象概念映射到目标程序中。使用非面向对象语言编写面向对象程序,则必须由程序员自己把面向对象概念映射到目标程序中。例如,C语言并不直接支持类或对象的概念,程序员只能在struct中定义变量和相应的函数(事实上,不能直接在结构中定义函数而是要利用指针间接定义)。所有非面向对象语言都不支持一般-特殊结构的实现,使用这类语言时要么完全回避继承的概念,要么在声明特殊化类时,把一般化类的引用嵌套在它里面。2021/8/147选用语言的关键选用面向对象语言还是非面向
4、对象语言,关键不在于语言功能强弱。从原理上说,使用任何一种通用语言都可以实现面向对象概念。当然,使用面向对象语言,实现面向对象概念,远比使用非面向对象语言方便,但方便性不是决定选择何种语言的关键因素。选择编程语言的关键因素,是语言的一致的表达能力、可重用性及可维护性。从面向对象观点看来,能够更完整、更准确地表达问题域语义的面向对象语言的语法是非常重要的,因为这会带来一些重要优点:一致的表示方式可重用性可维护性2021/8/148面向对象语言的重要优点-1一致的表示方法面向对象的开发基于不随时间变
5、化的、一致的表示方法。这种表示方法应该从问题域到OOA,从OOA到OOD,最后从OOD面OOP,始终保持不变。在软件开发的全过程中始终保持表示方法稳定不变,既有利于在软件开发过程中使用统一的概念,又有利于维护人员理解软件的各种配置成分。2021/8/149面向对象语言的重要优点-2可重用性为了能带来可观的商业利益,必须在更广泛的范围中运用重用机制,而不仅仅在程序设计这个层次上进行重用。在OOA,OOD直到OOP中都始终显式地表示问题域语义,意义十分深远。这样做既可能重用OOA结果;也可能重用相应
6、的OOD和OOP结果。2021/8/1410面向对象语言的重要优点-3可维护性尽管人们反复强调保持文档与源程序一致的必要性,但实际工作很难做到在交付软件系统时,“文档”和“源程序”——这两个软件配置的不同成分——保持完全一致,即维护人员面对的往往只有源程序本身。因此,程序内部表达问题域语义,对维护人员理解待维护的软件有很大帮助。以ATM系统为例。假设在维护该系统时没有合适的文档资料可供参阅,于是维护人员人工浏览程序或使用软件工具扫描程序,记下或打印出程序显式陈述的问题域语义,维护人员看到“ATM
7、”、“账户”、“现金兑换卡”等,这对维护人员理解所要维护的软件将有很大帮助。2021/8/1411为什么选择面向对象语言?在选择编程语言时,应该考虑的首要因素,是在供选择的语言中哪个语言能最好地表达问题域语义。一般说来,应该尽量选用面向对象语言来实现面向对象分析、设计的结果。2021/8/1412“程序设计语言”主要内容面向对象语言的优点面向对象语言的技术特点选择面向对象语言2021/8/1413面向对象语言借鉴了历史上许多程序语言的特点面向对象语言的形成借鉴了历史上许多程序语言的特点,从中吸取
8、了丰富的营养:从20世纪50年代诞生的LIST语言中引进了动态联编的概念和交互式开发环境的思想;从20世纪60年代推出的SIMULA语言中引进了类的概念和继承机制;还爱到20世纪70年代末期开发的Modula_2语言和Ada语言中数据抽象机制的影响。2021/8/1414两大类面向对象语言20世纪80年代以来,面向对象语言大量涌现,形成了两大类:纯面向对象语言,如Smalltalk和Eiffel等语言混合型面向对象语言,即在过程语言的基础上增加面向对象机制,如C++一般说来:纯面向对象语言着重支
此文档下载收益归作者所有