欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载  

    11软件设计的进化.ppt

    • 资源ID:2086458       资源大小:751.01KB        全文页数:47页
    • 资源格式: PPT        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    11软件设计的进化.ppt

    作业点评,刘鑫 刘甫,1,第十讲:软件设计的进化,董威,文艳军,陈振邦 国防科技大学计算机学院,软件设计与体系结构,3,内容,10.1 遗留系统 10.2 软件的进化策略 10.3 软件再工程 10.4 软件体系结构的进化 10.5 代码重构和数据重构 10.6 软件移植,4,遗留系统,遗留系统是过去开发的计算机系统,通常使用了目前已经过时或不再使用的技术。 这些系统的开发可能在生命周期中一直持续,通过变更来适应新需求、新运行平台等方面的变化。 遗留系统不仅包括硬件和软件,还包括遗留的业务过程和步骤。对这类系统的一部分进行变更将不可避免地导致其它组成部分的变更。,5,遗留系统的组成,6,遗留系统的层次模型,7,内容,10.1 遗留系统 10.2 软件的进化策略 10.3 软件再工程 10.4 软件体系结构的进化 10.5 代码重构和数据重构 10.6 软件移植,8,(1)进化策略的分类,遗留软件的维护和升级将会受到预算、期限等多种因素的约束,因此开发者需要对遗留软件系统的实际情况进行评价,然后选择最合适的进化策略: 完全放弃该软件 不改变该软件系统并继续进行常规的维护 对软件系统实施再工程(re-engineering)以提高可维护性 用新系统替换遗留软件系统的全部或其中一部分,9,(2)进化策略的选择,选择合适的进化策略需要对遗留软件系统进行准确的评价。 在对遗留软件进行评价时,业务需求和技术这两个方面均要进行考虑。,10,遗留软件系统的评价,11,业务价值的评价,为了评价一个系统的业务价值,首先需要明确系统最终用户及其管理者,并从下面四个主要方面对系统进行考察: 系统的使用 系统支持的业务过程 系统的可靠性 系统的输出,12,系统质量的评价,从技术角度来评价一个软件系统,需要同时考虑应用软件本身以及软件运行的环境。 环境包括硬件和所有相关的支撑软件,例如对于系统维护所需要的编译器等。 认为环境很重要的原因是,很多软件系统的变更是由于环境变更导致的,例如硬件或操作系统的升级。 如果可能,在环境评价的过程中,应对系统及其维护过程的某些方面进行度量。,13,环境评价考虑的因素,14,技术评价考虑的因素,15,内容,10.1 遗留系统 10.2 软件的进化策略 10.3 软件再工程 10.4 软件体系结构的进化 10.5 代码重构和数据重构 10.6 软件移植,16,再工程的概念,软件系统的进化过程包括对必须改进的程序进行理解,然后实现相应的改进。 但是,对于许多存在已久的遗留系统,这些系统已经难以理解和更改。 对这些遗留软件进行维护的成本甚至会超过用户所能容忍的程度。 这样,就需要通过再工程来对软件系统进行重建,改进其功能和性能以满足用户的最新需要,并提高整个系统的可靠性和可维护性。,17,再工程的优点,减少风险。对关键软件完全进行重新开发具有很高的风险。新开发的软件系统未在实践中充分应用,可能在开发过程中存在的某些问题还未暴露出来。而新系统开发如果延迟完成,将会造成极大的损失。 减少成本。根据以往的实践经验和统计,再工程的成本要明显比开发一个全新的软件低。,18,正向工程和再工程,19,(1)业务过程重构,对于遗留系统,其支持的业务过程可能已经发生了变化,因此在实施软件再工程之前,应该对变化的业务过程进行重构。 业务过程重构主要包括定义业务目标、标识并评估现有的业务过程、以及创建修订后能更好满足目标的业务过程。,20,业务过程重构模型,21,(2)软件再工程的过程模型,22,(3)软件再工程的经济因素,由于成本原因,软件再工程并不一定是用户的最终选择,用户可能希望能从成本-收益来判定是否实施再工程。 而在面对多个遗留软件时,也可以通过成本-收益分析结果来确定哪个系统的重构优先级最高。,23,软件再工程的成本收益模型,P1 :软件当前的年度维护成本 P2 :软件当前的年度运作成本 P3 :软件当前的年度业务价值 P4 :实施再工程后预期的年度维护成本 P5 :实施再工程后预期的年度运作成本 P6 :实施再工程后预期的年度业务价值 P7 :估计的再工程成本 P8 :估计的再工程所需时间 P9 :再工程风险因子 L:期望的系统生存年数,24,软件再工程的成本收益模型,如果继续进行维护(不实施再工程),该应用软件的后续维护成本为: Cmaint = P3 - (P1 + P2) × L 而再工程的相关成本定义为: Creeng = P6 - (P4 + P5) × (L - P8) - (P7 × P9) 于是,再工程的整体收益为: 成本收益 = Creeng - Cmaint,25,(4)信息恢复的级别和方法,软件的逆向工程就是分析已有的程序,寻求比源代码更高层次的抽象表现形式。 一般认为,凡是在软件生命周期内,将软件某种形式的描述转换成更为抽象形式的活动都属于逆向工程的一部分。 逆向工程导出的信息可分为如下4个抽象层次: (1) 实现级,包括程序的抽象语法树、符号表等信息; (2) 结构级,包括反映程序各部分之间相互依赖关系的信息,例如调用图、结构图等; (3) 功能级,包括反映程序段功能及程序段之间关系的信息; (4) 领域级,包括反映程序组成部分或程序诸实体与应用领域概念之间对应关系的信息。,26,恢复信息的方法,用户指导下的搜索与变换 变换式方法 基于领域知识的方法 模版识别法,27,内容,10.1 遗留系统 10.2 软件的进化策略 10.3 软件再工程 10.4 软件体系结构的进化 10.5 代码重构和数据重构 10.6 软件移植,28,(1)软件体系结构进化的过程,29,(2)软件体系结构的恢复,30,抽取体系结构描述,从软件和源代码中抽取体系结构描述非常关键,这时从软件的各个方面综合提取,包括软件的静态元素和动态元素: 静态元素包括模块之间的调用关系、依赖关系、类之间的继承关系和继承的层次、包之间的导入关系、软件编译时构件间的依赖关系,等等; 动态元素包括进程间的通信过程、运行时模块间的调用过程、对业务的执行过程、对输入和相关事件的响应过程,等等。 对抽取出的各种元素进行综合后,形成软件的体系结构描述。,31,体系结构综合过程,32,(3)软件体系结构的改善,软件体系结构的恢复只是把遗留软件的体系结构设计信息重新提取和组织,而软件进化的目标是使遗留软件适应新的需求和环境,因此下一步就需要对软件体系结构进行改善。 改善需要以恢复后的体系结构为基础,以新出现的需求为依据,结合遗留软件系统之外的可复用构件或模块,对体系结构进行改造。,33,集中式遗留系统向分布式系统的进化,34,支持用户界面分布的体系结构进化,35,内容,10.1 遗留系统 10.2 软件的进化策略 10.3 软件再工程 10.4 软件体系结构的进化 10.5 代码重构和数据重构 10.6 软件移植,36,代码和数据重构,在改善软件体系结构之后,还需要通过更加具体的重构活动修改源代码和数据以适应未来的变化。 通常,代码重构和数据重构并不修改整体的软件体系结构,它趋向于关注个体模块的设计细节以及模块中的局部数据结构定义。,37,代码重构,代码重构的目标是生成具有相同功能、但质量比原来程序更高的代码。 代码重构可以有多种方式,例如: 用布尔代数对程序逻辑进行描述,然后应用一系列变换规则来重构逻辑,以从混乱、无结构的代码导出遵循良好程序设计思想的程序。 用资源交换图(resource exchange diagram)映射每个程序模块及其与其他模块之间交互的资源(数据类型、过程、变量等),通过创建资源流的表示,程序结构可以被重构以达到模块间的最小耦合,提高软件质量和可维护性。,38,数据重构,需要对所有包含数据定义、文件描述、I/O和接口描述的程序语句进行分析,抽取数据项和对象,获取关键数据流的信息,理解现有的数据结构实现。 进行数据重设计,要澄清数据定义,使现存数据结构或文件格式中的数据项或物理记录格式之间保持一致,并保证所有数据命名遵从约定的标准以及删除程序流程中的别名。 数据重构有可能包括从一种文件格式到另一种文件格式的转换,或从一种类型数据库到另一种类型数据库的转换。,39,内容,10.1 遗留系统 10.2 软件的进化策略 10.3 软件再工程 10.4 软件体系结构的进化 10.5 代码重构和数据重构 10.6 软件移植,40,软件移植的概念,软件移植(Migration)也可以看作是软件进化和再工程的一种形式,是应用软件的运行从一种操作环境迁移到另外一种操作环境的过程,例如操作系统、特定硬件平台、数据库系统等发生变化。 一般情况下,软件移植应该是迁移到相对更加适合或更加先进的环境中,该过程面临着较大的技术变更。 软件移植大部分情况下都要对应用软件与运行环境的接口相关部分进行修改,不论是嵌入式软件还是一般信息管理软件,因此良好的接口定义能够促使软件移植更加顺利。,41,移植需要考虑的问题,移植过程中最可能出现的主要问题有哪些? 客户的要求以及优先级是什么? 用户接口是否需要与以前保持一致,包括输入/输出、报告、文件等与用户日常使用相关的内容? 资金和资源具有哪些约束? 哪些因素可能会对满足客户目标产生影响? 是否需要支持遗留系统和新系统的重叠使用?如果是,需要多久? 目标系统的数据库是否与遗留系统一致? 是否需要软件工具来执行遗留数据库的转换? 新系统要支持哪些与遗留系统具有接口的外部系统?等等,42,移植需要综合考虑的内容,编程语言 用户界面 平台和体系结构 数据库,43,数据库优先的信息系统移植,44,数据库转换,数据库转换可以分为物理转换(D1)和概念转换(D2): 物理转换:把遗留数据库的设施直接转换为目标数据库中最接近的设施。这种方式最节省成本,但可能导致较低的质量,不能体现出新系统的价值。 概念转换:对遗留数据库的精确语义描述进行恢复,并使用目标数据库的标准方法对结构进行开发。该方式具有较高质量,但成本较高。,45,程序转换,对于程序转换,可以分为三种不同层次的转换,即包装(P1)、语句重写(P2)和逻辑重写(P3),很明显其成本和移植后的系统质量都是递增的: 包装:对新数据库进行包装以符合遗留软件访问数据的逻辑,这使得遗留程序能直接访问新的数据库系统。 语句重写:对数据库访问语句进行重写,使得能够使用新型数据库的数据访问特征。该方式和包装方式都不对程序的逻辑进行改变。 逻辑重写:对整个程序进行重写,使其能够充分利用新型数据库的所有强大能力。但该方式需要对程序逻辑具有深入的理解。,46,信息系统移植策略,47,谢谢,

    注意事项

    本文(11软件设计的进化.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开