软件设计的进化.ppt_第1页
软件设计的进化.ppt_第2页
软件设计的进化.ppt_第3页
软件设计的进化.ppt_第4页
软件设计的进化.ppt_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

作业点评 刘鑫刘甫 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 代码重构 代码重构的目标是生成具有相同功能 但质量比原来程序更高的代码 代码重构可以有多种方式 例如 用布尔代数对程序逻辑进行描述 然后应用一系列变换规则来重构逻辑 以从混乱 无结构的代码导出遵循良好程序设计思想的程序 用资源交换图 resourceexchangediagram 映射每个程序模块及其与其他模块之间交互的资源 数据类型 过程 变量等 通过创建资源流的表示 程序结构可以被重构以达到模块间的最小耦合 提高软件质量和可维护性 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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论