- 1、本文档共95页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
13.1 软件演化的动态特性13.1.1 软件的本质特性 Lehman和Belady对软件演化的动态特性进行了系统的研究,提出了著名的关于系统变更的定律,被称为Lehman定律,该定律总结了软件在变更过程中的演化特性。 Lehman定律的主要内容包括: (1) 软件维护是一个必然的过程。现实环境是在不断变化的,新的需求会不断地涌现,因此运行在相应环境中的软件也应随之发生变化,从而继续发挥其作用。 (2) 软件的不断修改会导致软件的退化。因此为了防止这种退化,必须改善软件的结构和质量。 (3) 软件系统的演化特性是在早期的开发阶段建立起来的。软件规模限制着较大的变更发生,较大的变更会引起更多新的缺陷。在大型软件开发组织中,较大的软件变更需要组织的决策和预算的变动,而这种决策过程也制约着新版本的时间周期。 (4) 软件开发的效率与投入的资源无关。在大型软件开发项目中,团队成员数量的增加使项目的有效交流变得十分困难,过多的沟通时间使得开发人员没有足够的时间完成自己的开发任务,也会导致开发效率的相对低下。 (5) 在软件系统中添加新的功能不可避免地会产生新的缺陷,因此若软件的功能增量较大意味着需要发布一个新版本,若新增功能较少,则其主要任务是修补这些新产生的软件缺陷。 Lehman的结论揭示了软件演化的普遍特性,现实环境决定了软件系统不可避免地发生变更,软件的持续变更又会引入新的缺陷,甚至会破坏原有的系统结构。对于软件变更引起的各种问题,人们通常采用不同的策略进行处理,即进行软件维护和软件再工程。 13.1.2 遗留系统问题 许多大型系统往往具有较长的生命周期,使用时间多为10年以上。由于某些软件在业务中的重要性和稳定性,一些机构甚至仍然依赖于已经有20多年历史的软件系统,因此,这些老系统出现任何问题都会对机构的业务带来巨大影响。人们把这些老系统称为遗留系统。 经历长时间运行的遗留系统往往已不是最初交付的系统,这期间系统内、外部环境的变化,如市场、法规、管理上的变化以及软、硬件技术的发展等,都使软件系统面对新的需求,需要随着业务的变化而改变。因此,遗留系统在其生命周期中是不断变更着的,但如果要抛弃一个遗留软件系统,用一个全新开发的软件系统去替换它,则存在巨大风险,其原因在于: 首先,遗留系统很少具有完整的文档,往往最初的文档已经不存在了,即使存在,也很难包含所做变更的所有细节,因此,很难有一个简单的方法可以产生与遗留系统功能相同的新系统。其次,业务过程和遗留系统的操作方式紧密地“交织”在一起。这些业务过程已经根据软件服务的特点做了调整,为的是充分发挥软件服务的优势,弥补其不足。如果系统被替换,这些过程也必须改变。这样一来,替换的成本以及对业务的影响就难以估量。 另外,重要的业务规则隐藏在软件内部,业务规则是对某些业务功能施加的约束,新的系统可能会打破这些规则,从而会给业务带来不可预知的结果。例如,一家保险公司可能将保单申请的风险评估规则嵌入到软件中,如果不保留这些规则,公司就可能接受高风险保单,由此带来日后昂贵的赔付。同时,开发新软件本身是有风险的,所以新系统会遇到难以预料的问题。它可能无法按时交付,对软件支付的价格也可能要超出预期的估计。 在这种情况下,继续使用遗留系统则可以避免以上所述风险,但是对现有软件进行变更也会带来较大的代价,越老的系统越是如此。其主要的原因在于:系统的不同部分是由不同的团队实现的,整个系统中的程序设计风格是不一致的;系统的部分或全部可能是用一种已被淘汰的编程语言写的,目前已难以找到能使用这种语言的程序员;系统文档通常是不充分的和过时的。 有些时候,系统源代码是唯一的系统文档,而有些时候系统源代码已经不复存在,只剩下系统的可执行版本;经过许多年的维护,系统结构可能已经被破坏,理解系统设计的难度逐渐加大。加进来的新程序可能以一种特别的接口方式与系统的其他部分对接;系统可能对空间或运行速度进行了优化,但可读性不好,这对那些掌握现代软件工程技术的人员来说理解起来是相当困难的。源程序中可能使用了许多小的程序设计窍门,对新人来说同样是极难弄懂的。系统所处理的数据可能保留在一些结构不相容的文件中,这些文件中的数据可能存在重复现象,数据也已经过时、不精确,也不完整。 因此,如果继续使用遗留系统,根据需要做系统变更,成本不可避免地要增加。如果用新系统替换遗留系统,费用和风险也会很高,而且新系统不一定能像遗留系统那样对系统提供有力的支持。所以需要有软件工程技术来延长遗留系统的生命周期,降低系统的维护成本,即进行软件维护和软件再工程。 13.2 软 件 维 护13.2.1 软件维护内容 1.软件维护的类型 软件维
您可能关注的文档
- (嵌入式实时操作系统uC OS-2教程)第4章中断处理与时间管理.ppt
- (嵌入式实时操作系统uC OS-2教程)第6章消息.ppt
- (嵌入式实时操作系统uC OS-2教程)第7章信号量与互斥信号量.ppt
- (嵌入式实时操作系统uC OS-2教程)第9章内存管理.ppt
- (嵌入式实时操作系统uC OS-2教程)第11章μCOS-Ⅱ几个版本的区别.ppt
- (嵌入式系统原理及应用)第1章嵌入式系统概论.ppt
- (嵌入式系统原理及应用)第5章嵌入式系统开发工具.ppt
- (嵌入式系统原理及应用)第7章嵌入式Linux系统开发环境.ppt
- (软件测试)第0章绪论.ppt
- (软件测试)项目八对Windows计算器程序进行功能测试.ppt
文档评论(0)