- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅谈软件复用技术四个关键问题
浅谈软件复用技术四个关键问题
[摘要]软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。60年代出现的软件危机导致了有关软件复用的研究。软件复用是指重复使用“为了复用目的而设计的软件”的过程。通过软件复用,在应用系统开发中可以充分利用已有的开发成果,消除了包括分析、设计、编码、测试等在内的许多重复劳动,从而提高了软件开发的效率。同时,通过复用高质量的已有开发成果,避免了重新开发可能引入的错误,从而提高了软件的质量。
[关键词]软件复用技术 软件危机 软件复用
中图分类号:TP3 文献标识码:B 文章编号:1002-6908(2007)1020048-01
一、引言
软件复用的概念是由McI1roy在1968年的NATO软件工程会议上提出的。McI1roy提出了发展以可复用源代码软件构件为基础的软件工业和利用COTS (Component Off The Shelf)构件工业化生产软件的观点。软件复用被认为是解决所谓“软件危机”的技术上可行的、现实的解决方案。软件复用的对象包括软件开发过程中所使用和产生的各种资源:源代码、各种文档、测试数据、设计方法、体系结构等等,总称可复用构件。软件复用是为了改善软件生产的资金投入大、开发周期长、软件产品失败率高等不能满足市场需求的现状,充分利用已有的高质量软件产品和部件,经过组装集成快速搭建应用软件系统的软件开发理论。经历了结构化程序设计、面向对象技术、软件构件技术的发展,软件复用已经成为加速软件工业化早日实现的重要力量。
二、面向对象技术
面向对象技术提供了新的认知和表示世界的思想和方法。面向对象方法就是用对象来作为描写客观信息的基本单元,它包括封装在一起的对象标识、对象属性和对象操作。面向对象技术是以对象为基础来构件系统的,可以通过一个指向对象的指针或对它的引用,就可以访问这个对象的所有数据和方法,用面向对象技术建造起来的系统不仅易于管理和使用,而且源代码的可读性高。如果没有对象,在程序中必须保存大量的变量和一个个孤立的函数,然后在这些没有多大关连的变量和函数之间进行变量传递,这不仅给编程增加了很大的复杂性,而且使得程序的可读性极差。通过把这些有关连的变量和函数封装在一个对象中,大大的简化了编程的复杂性,提高了程序可读性,并且提供了一种抽象,该抽象是可扩展性的关键。正是因为面向对象技术的特点,封装和继承使得面向对象技术成为了软构件技术的基础。
面向对象技术具有以下一些特性能够使它和软件复用相结合:
(一)对象是可重用构件的雏形,面向对象技术中,对象(类)已经充当了构成系统的基本单元,由于它的一系列特有的性质,使它具有了可重用构件的雏形;
(二)对象是部件化了的软件单元,具有通用性;
(三)对象具有抽象性:具有用户定义的复杂的数据类型功能,使它能表示一些复杂工程领域的问题;
(四)对象具有封装性:保证了对象类及对象可作为独立性很强的模块,为大型软件提供可靠的软件集成的单元模块;
(五)对象具有继承性:提供了一种代码共享的手段,可以避免重复代码的设计,使得面向对象方法确实行之有效,同时,可以通过继承机制不断扩充功能,而不影响原有软件的运行;
(六)对象具有易维护性:对象实现了抽象和封装,使其中可能出现的错误限制在自身,不会向外传播,易于检错和修改。面向对象技术的这些特性,使其很容易与软件复用技术相结合,OO(Object Oriented)技术中类的聚集、实例对类的成员函数或操作的引用、子类对父类的继承等使软件的可重用性有了较大的提高,而且这种类型的重用容易实现,所以这种方式的软件重用发展软快,并且能够使软件开发过程向缩短软件开发周期、降低成本和提高软件质量的方向发展。
三、三种复用方式
(一)“原封不动”复用
寻找“原封不动”使用的现存类,提供所需要的特性。此时。所需要的类已经存在。现在建立它的一个实例,用以提供所需要的特性。这个实例可直接为应用软件利用,或者它可以用来做另一个类的实现部分。通过复用一个现存类.可得到不加修改就能工作的已测试的代码。由于大多数面向对象语言的两个特性,即界面与实现的分离(信息隐蔽和封装1,这种复用一般是成功的。
(二)进化性复用
此时,一个能够完全符合要求特性的类可能并不存在,但是,如果具有类似功能的类存在,则可以通过继承。由现存的类渐进式地设计新类。如果新类将要成为一个现存类的子类,它应当继承这个现存类的所有特性。然后新类可以对需要追加的数据及必需的功能作局部定义 还可以将几个现存类的特性混合起来开发出新的类.每个现存类是某些概念的模型.混合起来则产生了一个为特定待开发软件所用的具
文档评论(0)