导图社区 软件测试
软件工程:软件可维护性是指纠正软件系统出现的错误和缺陷,以及满足新的要求进行修改、扩充或压缩的容易程度
一篇关于数据结构思维导图,数据结构的基本概念、算法与算法评价等。希望对你有所帮助!
这是一篇关于运算符和表达式思维导图,包含C语言运算符、基本算数运算、逻辑运算、自增自减运算等。感兴趣的小伙伴可以关注点赞收藏哦~~
这是一篇关于数据的表现形式及其运算的思维导图,数据的表现形式和运算方式是计算机科学中的重要概念,它们是计算机进行数据处理和计算的基础。
社区模板帮助中心,点此进入>>
论语孔子简单思维导图
《傅雷家书》思维导图
《童年》读书笔记
《茶馆》思维导图
《朝花夕拾》篇目思维导图
《昆虫记》思维导图
《安徒生童话》思维导图
《鲁滨逊漂流记》读书笔记
《这样读书就够了》读书笔记
妈妈必读:一张0-1岁孩子认知发展的精确时间表
软件维护
定义
软件维护是指在软件系统交付使用后,为了改正软件运行错误,或者因满足新的需求而加入新功能的修改软件的过程
分类
改正性维护
把在软件投入使用后才逐渐暴露出来的错误的诊断、定位、改错的过程,称为改正性维护(21%)
适应性维护
使软件适应外部新的硬件和软件环境或者数据环境发生的变化,而进行修改软件的过程(25%)
完善性维护
为了满足用户使用过程中对软件提出的新的功能与性能要求,需要对原来的软件的功能进行修改或扩充(50%)
预防性维护
为了提高软件未来的可维护性、可靠性等,或为了给未来的改进奠定更好的基础而修改软件的过程(4%)
特点
1.软件维护是软件生存周期中延续时间最长、工作量最大的一个阶段
2.软件维护不仅工作量大、任务重、而且维护不当的话,还会产生一些意想不到的副作用
3.软件维护实际上是一个修改和简化了的软件开发活动
4.软件维护工作未受到软件设计者们的足够重视
过程
结构化维护和非结构化维护
维护流程
1.建立维护机构
(1)维护管理员
(2)修改批准人员
(3)系统管理员
(4)配置管理员
(5)维护人员
2.编写软件维护申请报告
3.确定软件维护工作流程
(1)确认维护类型
(2)实施相应维护
(3)维护评审
4.整理软件维护文档
5.评价软件维护性能
软件可维护性
软件可维护性是指纠正软件系统出现的错误和缺陷,以及满足新的要求进行修改、扩充或压缩的容易程度
衡量可维护性的特性
可使用性
从用户观点出发,把可使用性定义为程序方便、实用及易于使用的程度
可靠性
表明一个程序按照用户的要求和设计目标,在给定的一段时间内正确执行的概率
可理解性
表现为维护人员通过阅读源代码和相关文档,理解软件的结构、接口、功能和内部过程的难易程度
可测试性
指证实程序正确性的难易程度
可修改性
指修改程序的难易程度
可移植性
指程序从一个计算机环境移到另一个计算机环境的适应能力
效率
表明一个程序能执行预定功能而又不浪费机器资源的程度
提高软件可维护性的方法
1.建立明确的软件质量目标和优先级
相互促进
可理解性和可测试性
可理解性和可修改性
相互抵触
效率和可移植性
效率和可修改性
2.使用提高软件质量的技术和工具
(1)模块化方法
(2)结构化方法
(3)面向对象方法
3.选择便于维护的程序设计语言
4.采取明确的、有效的质量保证审查措施
5.完善程序的文档
软件维护中存在的问题
1.软件维护困难的表现
(1)读懂别人的程序是很困难的,而文档的不足更增加了这种难度
(2)文档的不一致性是软件维护困难的又一个因素,主要表现在各种文档之间的不一致及文档与程序之间的不一致性,从而导致维护人员不知所措,布置怎样进行修改
(3)软件开发和软件维护在人员和时间上存在差异
(4)软件维护不是一件吸引人的工作
软件维护的副作用
1.修改代码的副作用
2.修改数据的副作用
3.修改文档的副作用
再工程和逆向工程
软件再工程旨在对现存的大量软件系统进行挖掘、整理,以得到有用的软件构件,或对已有软件进行维护,以延长其生存期
软件再工程的定义
1.增进对软件的理解
2.准备或直接提高软件的可维护性、复用性或演化性
软件逆向工程的定义
软件的逆向工程就是分析程序,力图在比源代码更高的抽象层次上建立程序表示的过程
实施软件再工程的原因
1.再工程可帮助软件机构降低软件演化的风险
2.再工程可帮助软件机构步长软件的投资
3.再工程可使得软件易于进一步变更
4.再工程有着广阔的市场
软件再工程技术
1.改进软件
(1)软件重构
(2)文档重写、加注释及文档更新
(3)复用工程
(4)重新划分模块
(5)数据再工程
(6)业务过程在过程再过程
(7)可维护性分析、业务量分析和经济分析
2.理解软件
(1)浏览
(2)分析与度量
(3)逆向工程与设计恢复
3.获取、保护及扩充软件的已有知识
(1)程序分解
(2)对象恢复
(3)程序理解
(4)知识库和程序变换