软件设计的进化.ppt
《软件设计的进化.ppt》由会员分享,可在线阅读,更多相关《软件设计的进化.ppt(47页珍藏版)》请在三一办公上搜索。
1、作业点评,刘鑫刘甫,1,第十讲:软件设计的进化,董威,文艳军,陈振邦国防科技大学计算机学院,软件设计与体系结构,3,内容,10.1 遗留系统10.2 软件的进化策略10.3 软件再工程10.4 软件体系结构的进化10.5 代码重构和数据重构10.6 软件移植,4,遗留系统,遗留系统是过去开发的计算机系统,通常使用了目前已经过时或不再使用的技术。这些系统的开发可能在生命周期中一直持续,通过变更来适应新需求、新运行平台等方面的变化。遗留系统不仅包括硬件和软件,还包括遗留的业务过程和步骤。对这类系统的一部分进行变更将不可避免地导致其它组成部分的变更。,5,遗留系统的组成,6,遗留系统的层次模型,7,
2、内容,10.1 遗留系统10.2 软件的进化策略10.3 软件再工程10.4 软件体系结构的进化10.5 代码重构和数据重构10.6 软件移植,8,(1)进化策略的分类,遗留软件的维护和升级将会受到预算、期限等多种因素的约束,因此开发者需要对遗留软件系统的实际情况进行评价,然后选择最合适的进化策略:完全放弃该软件 不改变该软件系统并继续进行常规的维护 对软件系统实施再工程(re-engineering)以提高可维护性 用新系统替换遗留软件系统的全部或其中一部分,9,(2)进化策略的选择,选择合适的进化策略需要对遗留软件系统进行准确的评价。在对遗留软件进行评价时,业务需求和技术这两个方面均要进行
3、考虑。,10,遗留软件系统的评价,11,业务价值的评价,为了评价一个系统的业务价值,首先需要明确系统最终用户及其管理者,并从下面四个主要方面对系统进行考察:系统的使用 系统支持的业务过程 系统的可靠性 系统的输出,12,系统质量的评价,从技术角度来评价一个软件系统,需要同时考虑应用软件本身以及软件运行的环境。环境包括硬件和所有相关的支撑软件,例如对于系统维护所需要的编译器等。认为环境很重要的原因是,很多软件系统的变更是由于环境变更导致的,例如硬件或操作系统的升级。如果可能,在环境评价的过程中,应对系统及其维护过程的某些方面进行度量。,13,环境评价考虑的因素,14,技术评价考虑的因素,15,内
4、容,10.1 遗留系统10.2 软件的进化策略10.3 软件再工程10.4 软件体系结构的进化10.5 代码重构和数据重构10.6 软件移植,16,再工程的概念,软件系统的进化过程包括对必须改进的程序进行理解,然后实现相应的改进。但是,对于许多存在已久的遗留系统,这些系统已经难以理解和更改。对这些遗留软件进行维护的成本甚至会超过用户所能容忍的程度。这样,就需要通过再工程来对软件系统进行重建,改进其功能和性能以满足用户的最新需要,并提高整个系统的可靠性和可维护性。,17,再工程的优点,减少风险。对关键软件完全进行重新开发具有很高的风险。新开发的软件系统未在实践中充分应用,可能在开发过程中存在的某
5、些问题还未暴露出来。而新系统开发如果延迟完成,将会造成极大的损失。减少成本。根据以往的实践经验和统计,再工程的成本要明显比开发一个全新的软件低。,18,正向工程和再工程,19,(1)业务过程重构,对于遗留系统,其支持的业务过程可能已经发生了变化,因此在实施软件再工程之前,应该对变化的业务过程进行重构。业务过程重构主要包括定义业务目标、标识并评估现有的业务过程、以及创建修订后能更好满足目标的业务过程。,20,业务过程重构模型,21,(2)软件再工程的过程模型,22,(3)软件再工程的经济因素,由于成本原因,软件再工程并不一定是用户的最终选择,用户可能希望能从成本-收益来判定是否实施再工程。而在面
6、对多个遗留软件时,也可以通过成本-收益分析结果来确定哪个系统的重构优先级最高。,23,软件再工程的成本收益模型,P1:软件当前的年度维护成本P2:软件当前的年度运作成本P3:软件当前的年度业务价值P4:实施再工程后预期的年度维护成本P5:实施再工程后预期的年度运作成本P6:实施再工程后预期的年度业务价值P7:估计的再工程成本P8:估计的再工程所需时间P9:再工程风险因子L:期望的系统生存年数,24,软件再工程的成本收益模型,如果继续进行维护(不实施再工程),该应用软件的后续维护成本为:Cmaint=P3-(P1+P2)L而再工程的相关成本定义为:Creeng=P6-(P4+P5)(L-P8)-
7、(P7 P9)于是,再工程的整体收益为:成本收益=Creeng-Cmaint,25,(4)信息恢复的级别和方法,软件的逆向工程就是分析已有的程序,寻求比源代码更高层次的抽象表现形式。一般认为,凡是在软件生命周期内,将软件某种形式的描述转换成更为抽象形式的活动都属于逆向工程的一部分。逆向工程导出的信息可分为如下4个抽象层次:(1)实现级,包括程序的抽象语法树、符号表等信息;(2)结构级,包括反映程序各部分之间相互依赖关系的信息,例如调用图、结构图等;(3)功能级,包括反映程序段功能及程序段之间关系的信息;(4)领域级,包括反映程序组成部分或程序诸实体与应用领域概念之间对应关系的信息。,26,恢复
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件设计 进化

链接地址:https://www.31ppt.com/p-6028036.html