导图社区 813软件工程-维护
用于813软件工程和期末复习串知识点,维护的主要目的是提高软件的可维护性,减少软件维护所需要的工作量,降低软件系统的总成本。
用于813软件工程和期末复习串知识点,可行性研究是进行了一次大大简化了的系统分析和设计的过程,也是在较高层次上以较为抽象的方式进行的系统分析和设计的过程。
用于813软件工程和期末复习串知识点,对象是封装了数据结构以及可以被施加在这些数据结构上的操作的封装体,这个封装体有可以唯一地标识它的名字,而且向外界提供一组服务。
用于813软件工程和期末复习串知识点,软件工程是一门指导软件开发和维护的工程型学科,它采用了工科的概念、技术、原理、方法,把经历时间考验的的管理技术和当前能用到的最好的技术方法结合起来,以经济的开发出高质量的软件并有效的维护它。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
维护
目的
主要目的是提高软件的可维护性,减少软件维护所需要的工作量,降低软件系统的总成本。
软件维护的定义
定义
所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。
四种维护类型
1、改正性维护
把诊断和改正错误的过程称为改正性维护
2、适应性维护
把为了和变化了的环境适当地配合而进行的修改软件的活动,是既必要又经常的维护活动。
3、完善性维护
在使用软件的过程中用户往往提出增加新功能或修改已有功能的建议,还可能提出一般性的改进意见。为了满足这类要求,需要进行完善性维护。这项维护活动通常占软件维护工作的大部分。
4、预防性维护
为了改进未来的可维护性或可靠性,或为了给未来的改进奠定更好的基础而修改软件时,通常叫预防性维护。
软件维护的特点
结构化和非结构化维护
非结构化维护
软件配置的唯一成分时程序代码。要浪费很大的精力。
结构化维护
有一个完整的软件配置存在。确实能减少精力并且能提高维护的总体质量。
维护的代价昂贵
1、维护费用只不过是软件维护的最明显的代价。
2、因为可用的资源必须供维护任务使用,以致耽误丧失了开发的良机,这是软件维护的一个无形的代价。
3、当看来合理的有关改错或修改的要求不能及时满足时将引起用户不满。
4、由于维护时的改动,在软件中引入了潜伏的错误,从而降低了软件的质量。
5、当必须把软件工程师调去从事维护工作时,将在开发过程中造成混乱。
维护的问题很多
1、理解别人写的程序通常非常困难,而且困难程度随着软件配置成分的减少而迅速增加。
2、需要维护的软件往往没有合格的文档,或者文档资料显著不足。
3、当要求对软件进行维护时,不能指望由开发人员给人们仔细说明软件。
4、绝大多数软件在设计时没有考虑将来的修改。
5、软件维护不是一项吸引人的工作。
软件维护过程
维护过程本质上是修改和压缩了的软件定义和开发过程。首先必须建议一个维护组织,随后必须确定报告和评价的过程,而且必须为每个维护要求规定一个标准化的事件序列。此外,还应该建议一个适用于维护活动的记录保管过程,而且规定复审标准。
维护组织
维护报告
又叫软件问题报告表
维护管理员提出的维护要求表
1、满足维护要求表中提出的要求所需要的工作量
2、维护要求的性质
3、这项要求的优先次序
4、与修改有关的事后数据
维护的事件流
首先应该确定要求进行的维护的类型。
保存维护记录
评价维护活动
软件的可维护性
维护人员理解、改正、改动、改进这个软件的难易程度
决定软件可维护性的因素
1、可理解性
软件的可理解性表现为外来读者理解程序的结构、功能、接口和内部处理过程的难易程度。模块化、详细的设计文档、结构化设计、程序内部的文档和良好的高级程序设计语言等,都有助于提高软件的可理解性。
2、可测试性
诊断和测试的容易程度取决于软件容易理解的程度。良好的文档、软件结构、可用的测试工具、调试工具、以前设计的测试过程都是很重要的。
3、可修改性
耦合、内聚、信息隐藏、局部化、控制域与作用域的关系,都影响软件的 可维护性。
4、可移植性
把软件从一种计算环境转移到另一种计算环境的难易程度。
5、可重用性
重用是指同一事物不做修改或者稍加改动就在不同环境中多次重复使用。大量使用可重用的软件构件来开发软件。
6、文档
影响软件可维护性的决定性因素
分类
用户文档
系统文档
预防性维护
局部再工程
再深入理解原有设计的基础上用软件工程的方法重新设计、重新编码、测试那些需求变更的软件部分。
软件再工程
以软件工程方法学为指导,对程序全部重新设计,重新编码和测试,为此可以使用CASE工具(逆向工程和再工程工具)来帮助理解原有的设计。
软件在工程过程
库存目录分析
每个软件组织都应该保存其拥有的所有应用系统的库存目录。该目录包含关于每个应用系统的基本信息。
预防性维护的三种对象
1、预定将使用多年的程序
2、当前正在成功地使用的程序
3、在最近的将来可能要做重大修改或增强的程序
文档重构
老程序固有的特点是缺乏文档。
处理方法
保存现状
针对当前正在修改的哪些部分建立完整文档。
仍然应该把文档工作减少到必须的最小量
逆向工程
逆向工程是个恢复设计结果的过程。逆向工程工具从现存的程序代码中抽取出有关数据、体系结构和处理过程的设计信息。
代码重构
代码重构是最常见的再工程活动。很多老程序由完整、合理的体系结构,但是个体模块的编码方式很难理解、测试、维护。要重构可疑模块的代码。
首先用重构工具分析源代码,标注出和结构化程序设计概念相违背的部分。然后重构有问题的代码。最后,复审和测试生成的重构代码,并更新代码文档。
数据重构
数据重构发生在相当低的抽象层次上,它是一种全范围的再工程活动。
正向工程
正向再工程也成为革新或改造,这项工作不仅从现有的程序中恢复设计信息,而且使用该信息去改变或重构现有系统,以提高其整体质量。