- 5
- 0
- 约5.39千字
- 约 46页
- 2019-06-04 发布于广东
- 举报
(1)软件体系结构进化的过程 软件体系结构的恢复 从软件和源代码中抽取体系结构描述非常关键,这时从软件的各个方面综合提取,包括软件的静态元素和动态元素: 静态元素包括模块之间的调用关系、依赖关系、类之间的继承关系和继承的层次、包之间的导入关系、软件编译时构件间的依赖关系,等等; 动态元素包括进程间的通信过程、运行时模块间的调用过程、对业务的执行过程、对输入和相关事件的响应过程,等等。 对抽取出的各种元素进行综合后,形成软件的体系结构描述。 软件体系结构的恢复 软件体系结构提取综合过程 软件体系结构 软件体系结构的改善 软件体系结构的恢复只是把遗留软件的体系结构设计信息重新提取和组织,而软件进化的目标是使遗留软件适应新的需求和环境,因此下一步就需要对软件体系结构进行改善。 改善需要以恢复后的体系结构为基础,以新出现的需求为依据,结合遗留软件系统之外的可复用构件或模块,对体系结构进行改造。 集中式遗留系统向分布式系统的进化 支持用户界面分布的体系结构进化 内容 10.1 遗留系统 10.2 软件的进化策略 10.3 软件再工程 10.4 软件体系结构的进化 10.5 代码重构和数据重构 10.6 软件移植 代码和数据重构 在改善软件体系结构之后,还需要通过更加具体的重构活动修改源代码和数据以适应未来的变化。 通常,代码重构和数据重构并不修改整体的软件体系结构,它趋向于关注个体模块的设计细节以及模块中的局部数据结构定义。 代码重构 代码重构的目标是生成具有相同功能、但质量比原来程序更高的代码。 代码重构可以有多种方式,例如: 用布尔代数对程序逻辑进行描述,然后应用一系列变换规则来重构逻辑,以从混乱、无结构的代码导出遵循良好程序设计思想的程序。 用资源交换图(resource exchange diagram)映射每个程序模块及其与其他模块之间交互的资源(数据类型、过程、变量等),通过创建资源流的表示,程序结构可以被重构以达到模块间的最小耦合,提高软件质量和可维护性。 数据重构 需要对所有包含数据定义、文件描述、I/O和接口描述的程序语句进行分析,抽取数据项和对象,获取关键数据流的信息,理解现有的数据结构实现。 进行数据重设计,要澄清数据定义,使现存数据结构或文件格式中的数据项或物理记录格式之间保持一致,并保证所有数据命名遵从约定的标准以及删除程序流程中的别名。 数据重构有可能包括从一种文件格式到另一种文件格式的转换,或从一种类型数据库到另一种类型数据库的转换。 内容 10.1 遗留系统 10.2 软件的进化策略 10.3 软件再工程 10.4 软件体系结构的进化 10.5 代码重构和数据重构 10.6 软件移植 软件移植的概念 软件移植(Migration)也可以看作是软件进化和再工程的一种形式,是应用软件的运行从一种操作环境迁移到另外一种操作环境的过程,例如操作系统、特定硬件平台、数据库系统等发生变化。 一般情况下,软件移植应该是迁移到相对更加适合或更加先进的环境中,该过程面临着较大的技术变更。 软件移植大部分情况下都要对应用软件与运行环境的接口相关部分进行修改,不论是嵌入式软件还是一般信息管理软件,因此良好的接口定义能够促使软件移植更加顺利。 移植需要考虑的问题 移植过程中最可能出现的主要问题有哪些? 客户的要求以及优先级是什么? 用户接口是否需要与以前保持一致,包括输入/输出、报告、文件等与用户日常使用相关的内容? 资金和资源具有哪些约束? 哪些因素可能会对满足客户目标产生影响? 是否需要支持遗留系统和新系统的重叠使用?如果是,需要多久? 目标系统的数据库是否与遗留系统一致? 是否需要软件工具来执行遗留数据库的转换? 新系统要支持哪些与遗留系统具有接口的外部系统?等等 移植需要综合考虑的内容 编程语言 用户界面 平台和体系结构 数据库 数据库优先的信息系统移植 结构转化 数据库包含两部分:结构(Schema)和数据(Data),首先对数据库结构进行转化,当新的数据库结构确定后再以此为基础进行数据转换和程序转换。 程序转换 对于程序转换,可以分为三种不同层次的转换,即包装(P1)、语句重写(P2)和逻辑重写(P3),很明显其成本和移植后的系统质量都是递增的: 包装:对新数据库进行包装以符合遗留软件访问数据的逻辑,这使得遗留程序能直接访问新的数据库系统。 语句重写:对数据库访问语句进行重写,使得能够使用新型数据库的数据访问特征。该方式和包装方式都不对程序的逻辑进行改变。 逻辑重写:对整个程序进行重写,使其能够充分利用新型数据库的所有强大能力。但该方式需要对程序逻辑具有深入的理解。 信息系统移植策略 第十章软件设计的进化 * 内容 10.1 遗留系统 10.2 软件的进化策略 10.3 软件再工程 10.4 软件
原创力文档

文档评论(0)