软件工程——软件维护总结

一.软件维护

1.概念:在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。

2.目的:通过必要的维护工作使得系统持久的满足用户的需要。

维护的分类 

(1)改正性维护:在软件交付使用后,因开发时测试的不彻底、不完全,必然会有部分隐藏的错误遗留到运行阶段。这些隐藏下来的错误在某些特定的使用环境下就会暴露出来。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就叫做改正性维护 。

(2)适应性维护:在使用过程中,外部环境(新的硬、软件配置)数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化 。

(3)完善性维护:在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为满求了足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。

(4)预防性维护:采用先进的软件采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编制和测试。

各类维护活动的根本目的是: 延长软件生存期

维护的重要特点

结构化维护与非结构化维护的对比

 维护的成本

  维护工作的劳动包括生产性活动和非生产性活动

  维护工作量的模型   M = p + Ke^(c - d)- = +

M是维护中消耗的总工作量

p是上面描述的生产性工作量

K是一个经验常数

c是因缺乏好的设计和文档而导致复杂性的度量

d是对软件熟悉程度的度量

维护的问题

•别人的程序很难读懂

•文档与代码不一致   

•开发人员往往不参加维护

•大多数软件在设计时没有考虑将来的修改

二.维护的过程

本质:修改和压缩了的软件定义和开发过程

  1. 可维护性的度量

软件可维护性是指纠正软件系统出现的错误和缺陷,以及为满足新的要求进行修 改、扩充或压缩的容易程度。 n

可维护性、可使用性、可靠性是衡量软件质量的主要质量特性

  1. 衡量可维护性的软件特性

可理解性 可使用性 可测 试 性 可移植性 可修改性 效率 可靠性

  1. 文档 ——可维护性的决定因素
  1. 逆向过程与再工程

逆向工程是指分析已有的程序,寻求比源代码高级的抽象式更高一级的抽象形式。 再生工程,也称为修复和改造工程,它是在逆向工程所获信息的基础上修改或再 生 已有的系统,产生系统的一个新版本。

  1. 逆向工程恢复信息的级别

  实现级:程序的抽象语法树、符号表等信息

结构级:如调用图、结构图

功能级:反映程序段功能和段间关系的信息

领域级:反映程序分量与应用领域概念间对应关系的信息

  1. 逆向工程的方法

  反汇编、反编译

程序分析技术: 程序结构分析工具

程序功能分析工具

 

 

1、实验目的与要求 (1) 上网查询浏览有关软件工程环境网站,了解有关软件工程环境的定义、配置、功能和用途; (2) 下载有关软件工程标准,如国际ISO9000-3、国家GB8567-1988、2006和行业标准等,重点阅读软件分析阶段的文档编写指南; (3) 由指导老师指定或由学生自己选择一实验题目——软件工程项目。 (4) 安装、运行、熟悉Visio绘图工具的基本功能,并熟练掌握各种分析建模工具的使用方法,如系统流程图、数据流图、E-R图等,完成选定题目需求规格说明书中功能、数据和行为模型的创建与和说明。 2、实验内容 1. 软件工程环境: 软件工程环境 (SoftWare Engineering Environment ,简称SEE) 是指以软件工程为依据,支持典型软件生产的系统。软件工程环境是软件工程学科各方面研究发展的物化表现,具有以下特点:(1)软件工程环境强调支持软件生产的全过程。实践表明:软件工具仅支持生命周期中某些特定活动,工具箱将一些相互关联的工具组织到一起,使其相互通信,从而支持了生命周期中某些成组活动,自动化程序有所提高。软件开发环境旨在通过环境信息库和消息通信机制实现工具的集成,从而为软件生命周期中某些过程的自动化提供了更有效的支持。不同的过程模型导致不同类型的软件开发环境。然而,软件过程领域的最新研究结果表明,软件过程概念已不仅局限在软件开发和软件维护,而是发展到包括系统集成和软件产品的制作与生产。SEE旨在解决软件过程中各个过程和活动如何按照各条路径并行完成。管理、支持、获取、供应等过程贯穿于整个生存周期,特别是管理活动和支持活动,从合作观点来看,对于软件生产具有更为重要的地位。因此,促使人们在更高的层次上考虑如何运用“整体大于各部分之和”的系统工程,提高整个软件过程的整体计算机辅助支持程度。(2)软件工程环境强调大型软件的工业化生产。软件发展已经形成了大规模的产品市场。因此,软件产品的生产也必将走上工业化的道路。所请的工业化是指能够形成规模经济的生产形式。工程化注重软件生产过程中软件生产者具有一定的工程训练,遵循一定的工程准则。工业化则更加强调软件生产过程中生产资料的作用,表现为把大量的生产者的技能和经验转移到生产工具之中,从而减少生产过程中的劳动比例、减少生产工具的增值比例。SEE是为工业化生产提供一整套的支持设施。(3)软件工程环境以集成和剪裁作为主要技术路径,实现软件工业化生产的目标。SEE具有多维性,表现在不仅要集成与软件开发技术相关的工具,还要集成与支持技术、管理技术相关的工具,并将它们有机地结合在一起。(4)标准化。软件生产走向工业化需要建立相应的工业标准。SEE正在形成一个国际性标准。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值