软件工程 第10章软件维护及软件文档._第1页
软件工程 第10章软件维护及软件文档._第2页
软件工程 第10章软件维护及软件文档._第3页
软件工程 第10章软件维护及软件文档._第4页
软件工程 第10章软件维护及软件文档._第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

1、 第第1010章章 软件维护及软件文档软件维护及软件文档软软件件生生命命周周期期 10.1 10.1 软件维护软件维护 10.2 10.2 软件文档软件文档 在软件开发过程中始终强调软件可维护性的原因:在软件开发过程中始终强调软件可维护性的原因: 一个计算机应用系统,由于一个计算机应用系统,由于需求和环境的变化需求和环境的变化、以及、以及自身自身暴露的问题暴露的问题,在交付用户使用后,对它进行维护是不可避免的。,在交付用户使用后,对它进行维护是不可避免的。 统计和估测结果表明,信息技术中统计和估测结果表明,信息技术中硬件费用一般占硬件费用一般占35%35%,软软件费用占件费用占65%65%,而

2、,而软件后期维护费用有时竟高达软件总费用的软件后期维护费用有时竟高达软件总费用的80%80%,所有前期开发费用仅占,所有前期开发费用仅占20%20%。 软件维护的基本任务:软件维护的基本任务: 保证软件在一个相当长的时期能够正常运行。保证软件在一个相当长的时期能够正常运行。 需要进行软件维护的原因有以下几种:需要进行软件维护的原因有以下几种: (1 1)改正软件的错误和缺陷。)改正软件的错误和缺陷。 (2 2)改进设计以适应新的软、硬件环境。)改进设计以适应新的软、硬件环境。 (3 3)增加新的应用范围。)增加新的应用范围。 如果如果希望软件系统能够活下来希望软件系统能够活下来,必须要对它进行

3、维护。,必须要对它进行维护。 如果如果希望软件系统有效益希望软件系统有效益,则必须设法降低维护的代价。,则必须设法降低维护的代价。 软件工程的目标之一:软件工程的目标之一: 提高软件的可维护性,减少软件维护所需要的工作量,降提高软件的可维护性,减少软件维护所需要的工作量,降低软件系统的总成本。低软件系统的总成本。 10.1.1 10.1.1 软件维护的内容软件维护的内容 10.1.2 10.1.2 软件维护的特点软件维护的特点 10.1.3 10.1.3 软件维护过程软件维护过程 10.1.4 10.1.4 软件可维护性软件可维护性 1.1.软件维护的定义:软件维护的定义: 软件已经交付使用后

4、,为了改正错误或满足新的需要而软件已经交付使用后,为了改正错误或满足新的需要而 修改软件的过程称为软件维护。修改软件的过程称为软件维护。预防性维护预防性维护 4%适应性适应性维维 护护改正性改正性维维 护护完善完善性维护性维护 2.2.软件维护的类型:软件维护的类型: (1)(1)改正性维护改正性维护 在软件交付使用后,因开发时测试的不彻底、不完全,必在软件交付使用后,因开发时测试的不彻底、不完全,必然会有部分隐藏的错误遗留到运行阶段。隐含的错误在某些特然会有部分隐藏的错误遗留到运行阶段。隐含的错误在某些特定的使用环境下会暴露出来。定的使用环境下会暴露出来。 为了为了识别和纠正错误、修改软件性

5、能上的缺陷识别和纠正错误、修改软件性能上的缺陷,而进行诊,而进行诊断和修改错误的过程称为改正性维护。断和修改错误的过程称为改正性维护。(2)(2)适应性维护适应性维护 在软件使用过程中,在软件使用过程中,外部环境外部环境(新的硬件、软件配置(新的硬件、软件配置等)、等)、数据环境数据环境(数据库平台、数据格式、数据输入(数据库平台、数据格式、数据输入/ /输出输出方式、数据存储介质等)可能发生变化。方式、数据存储介质等)可能发生变化。 为了使为了使所开发的软件适应环境变化所开发的软件适应环境变化而修改软件的过程称而修改软件的过程称为适应性维护。为适应性维护。 (3)(3)完善性维护完善性维护

6、在软件运行时期,用户往往会对软件提出新的功能要求与在软件运行时期,用户往往会对软件提出新的功能要求与性能要求。为了满足这些要求,需要修改或再开发软件。性能要求。为了满足这些要求,需要修改或再开发软件。 这种为这种为增加软件功能、增强软件性能增加软件功能、增强软件性能而进行的维护活动称而进行的维护活动称为完善性维护。为完善性维护。(4) (4) 预防性维护预防性维护: : 为了为了提高软件的可维护性和可靠性、提高软件的可维护性和可靠性、为以后进一步改进为以后进一步改进软件打下良好基础,而对软件进行的修改软件打下良好基础,而对软件进行的修改称为预防性维护。称为预防性维护。 即:采用先进的软件工程方

7、法对需要维护的软件或软件即:采用先进的软件工程方法对需要维护的软件或软件中的某一部分进行重新设计、编码和测试。中的某一部分进行重新设计、编码和测试。 l l预防性维护是预防性维护是 把今天的方法学用于昨天的系统以满足明把今天的方法学用于昨天的系统以满足明天的需要天的需要 3 3影响维护工作量的因素:影响维护工作量的因素:(1 1)系统的大小:)系统的大小: 系统规模越大,其功能就越复杂,软件维护的工作量也随之增大。系统规模越大,其功能就越复杂,软件维护的工作量也随之增大。(2 2)程序设计语言:)程序设计语言: 使用强功能的程序设计语言,可以控制程序的规模。语言的功能越使用强功能的程序设计语言

8、,可以控制程序的规模。语言的功能越强,生成程序的模块化和结构化程度越高,所需的指令数就越少,程序强,生成程序的模块化和结构化程度越高,所需的指令数就越少,程序的可读性越好。的可读性越好。(3 3)系统年龄:)系统年龄: 老系统比新系统需要更多的维护工作量。因为多次的修改可能造成老系统比新系统需要更多的维护工作量。因为多次的修改可能造成系统结构变得混乱,由于维护人员经常更换,程序变得越来越难于理解,系统结构变得混乱,由于维护人员经常更换,程序变得越来越难于理解,加之系统开发时文档不齐全,或在长期的维护过程中文档在许多地方与加之系统开发时文档不齐全,或在长期的维护过程中文档在许多地方与程序实现变得

9、不一致,从而使维护变得十分困难。程序实现变得不一致,从而使维护变得十分困难。3 3影响维护工作量的因素:影响维护工作量的因素:(4 4)数据库技术的应用:)数据库技术的应用: 使用数据库,可以简单而有效地管理和存储用户程序中的数据,还使用数据库,可以简单而有效地管理和存储用户程序中的数据,还可以减少生成用户报表应用软件的维护工作量。可以减少生成用户报表应用软件的维护工作量。(5 5)先进的软件开发技术:)先进的软件开发技术: 在软件开发过程中,如果采用先进的分析、设计、编程技术,如面在软件开发过程中,如果采用先进的分析、设计、编程技术,如面向对象技术、复用技术等,可减少大量的维护工作量。向对象

10、技术、复用技术等,可减少大量的维护工作量。(6 6)其它因素:)其它因素: 如软件的类型、数学模型、任务的难度、开关与标记、如软件的类型、数学模型、任务的难度、开关与标记、IFIF嵌套深度、嵌套深度、索引或下标数等,对维护工作量也有影响。索引或下标数等,对维护工作量也有影响。 1 1非结构化维护和结构化维护差别巨大非结构化维护和结构化维护差别巨大 (1 1)非结构化维护)非结构化维护 如果如果不采用软件工程方法开发软件不采用软件工程方法开发软件,则只有源程序,而,则只有源程序,而文文档很少或没有文档档很少或没有文档。维护活动只能从阅读、理解和分析源程序。维护活动只能从阅读、理解和分析源程序开始

11、,维护十分困难,被称为非结构化的维护。开始,维护十分困难,被称为非结构化的维护。 l l非结构化维护需要付出很大代价非结构化维护需要付出很大代价( (浪费精力并且遭受挫折浪费精力并且遭受挫折) ),这种维护方式是没有使用良好定义的方法学开发出来的软件的这种维护方式是没有使用良好定义的方法学开发出来的软件的必然结果。常常由于必然结果。常常由于缺少系统设计、缺少程序内部文档缺少系统设计、缺少程序内部文档,难于,难于进行回归测试。例如:进行回归测试。例如:对于软件结构、全程数据结构、系统接对于软件结构、全程数据结构、系统接口、性能和口、性能和( (或或) )设计约束等经常会产生误解设计约束等经常会产

12、生误解,而且对程序代码,而且对程序代码所做的改动的后果也是难于估量的。所做的改动的后果也是难于估量的。 (2 2)结构化维护)结构化维护 用用软件工程方法开发的软件软件工程方法开发的软件具有具有各个阶段的文档各个阶段的文档。进行。进行维护活动时,需维护活动时,需从评价文档开始从评价文档开始;根据需求、设计的修改,来;根据需求、设计的修改,来进行程序的变动。这对于提高软件维护效率有很大的作用,称进行程序的变动。这对于提高软件维护效率有很大的作用,称为为结构化维护结构化维护。 l l结构化维护的工作过程:结构化维护的工作过程: 评价设计文档评价设计文档,确定软件重要的结构特点、性能特点以及接口特点

13、。,确定软件重要的结构特点、性能特点以及接口特点。 估量要求的改动将带来的影响,估量要求的改动将带来的影响,计划实施途径计划实施途径。 修改设计修改设计、对所做的修改进行复查。、对所做的修改进行复查。 编写相应的源编写相应的源程序程序、进行软件、进行软件测试测试。 使用在测试文档中包含的测试用例进行使用在测试文档中包含的测试用例进行回归测试回归测试。 软件软件文档完善文档完善和归档。和归档。 把修改后的软件再次把修改后的软件再次交付交付使用。使用。 维护要求维护要求配置配置评价设计评价设计计划途径计划途径修改设计修改设计重编程序重编程序评价代码评价代码?重编程序重编程序复查复查复查复查交付使用

14、交付使用软件软件代码代码结构化维护结构化维护非结构化维护非结构化维护结构化维护结构化维护 VS VS 非结构化维护非结构化维护 2 2软件维护的困难性软件维护的困难性 (1)(1) 理解别人的程序通常是非常困难的理解别人的程序通常是非常困难的,而且难度随着软件,而且难度随着软件配置成分的缺失而迅速增加;配置成分的缺失而迅速增加; (2)(2)文档的不一致性文档的不一致性:需要维护的软件没有合格的文档,或:需要维护的软件没有合格的文档,或文档资料不足。所以,容易理解且和程序保持一致的文档才是文档资料不足。所以,容易理解且和程序保持一致的文档才是真正具有价值的文档;真正具有价值的文档; (3)(3

15、)软件开发和软件维护在软件开发和软件维护在人员和时间上的差异人员和时间上的差异:当软件要:当软件要求维护时,不能指望开发人员解释说明软件。由于维护持续时求维护时,不能指望开发人员解释说明软件。由于维护持续时间很长,因此当需要解释软件时,开发人员已经不在附近了;间很长,因此当需要解释软件时,开发人员已经不在附近了; (4)(4)软件设计时,欠考虑软件的软件设计时,欠考虑软件的可修改性可修改性。 3 3软件维护费用持续攀升软件维护费用持续攀升 1970年:软件维护成本占总成本年:软件维护成本占总成本30%-40% 1980年:软件维护成本占总成本年:软件维护成本占总成本40%-60% 1990年:

16、软件维护成本占总成本年:软件维护成本占总成本70%-80% l l维护费用是软件维护的有形代价,其他无形代价包括:维护费用是软件维护的有形代价,其他无形代价包括: 可用的资源被软件维护所占用。可用的资源被软件维护所占用。 未能及时满足用户的维护要求时引起用户不满。未能及时满足用户的维护要求时引起用户不满。 维护时改动软件,引入了潜在故障,降低了软件质量。维护时改动软件,引入了潜在故障,降低了软件质量。 抽调人员从事维护工作,对新的开发过程造成混乱。抽调人员从事维护工作,对新的开发过程造成混乱。 导致生产率的大幅下降导致生产率的大幅下降l l用于维护工作的劳动可以划分成:用于维护工作的劳动可以划

17、分成: - - 生产性活动(如分析评价、修改设计、编写程序代码等)生产性活动(如分析评价、修改设计、编写程序代码等) - - 非生产性活动(例如理解程序代码、解释数据结构、接非生产性活动(例如理解程序代码、解释数据结构、接口特点、分析性能限度等)口特点、分析性能限度等)l l下述表达式给出了一个估算维护工作量下述表达式给出了一个估算维护工作量M的模型:的模型: M = P + Kexp(CD) 其中:其中:M是维护的总工作量;是维护的总工作量; P生产性活动工作量;生产性活动工作量;K 经验常数;经验常数; C 软件复杂性程度;软件复杂性程度; D 维护人员对软件的熟悉程度维护人员对软件的熟悉

18、程度 上述模型表明,如果软件开发没有运用软件工程方法学,而且原来上述模型表明,如果软件开发没有运用软件工程方法学,而且原来的开发人员未能够参与到维护工作之中,则维护开销巨大。的开发人员未能够参与到维护工作之中,则维护开销巨大。 4 4软件维护的副作用软件维护的副作用 修改软件是一项很危险的工作修改软件是一项很危险的工作, ,对一个复杂的逻辑过程对一个复杂的逻辑过程, ,那怕做一项微小的改动那怕做一项微小的改动, ,都可能引入潜在的错误。都可能引入潜在的错误。 虽然设计文档化和细致的回归测试有助于排除错误虽然设计文档化和细致的回归测试有助于排除错误, ,但但是维护仍然会产生副作用。是维护仍然会产

19、生副作用。 l l软件维护的副作用指,软件维护的副作用指,由于维护或在维护过程中其他一由于维护或在维护过程中其他一些不期望的行为引入的错误。些不期望的行为引入的错误。l l软件维护副作用大致可分为三类软件维护副作用大致可分为三类: : (1 1)编码副作用)编码副作用修改源程序时引入的错误。修改源程序时引入的错误。 例如:例如:修改或删除子程序修改或删除子程序; ; 修改或删除语句标号修改或删除语句标号; ; 修改或删除标识符修改或删除标识符; ; 修改逻辑操作符修改逻辑操作符; ; 为提高执行效率而做的修改为提高执行效率而做的修改; ; 修改文件的修改文件的openopen、closeclo

20、se操作操作; ; l l软件维护副作用大致可分为三类软件维护副作用大致可分为三类: :(2)数据副作用)数据副作用修改数据结构时引起的错误。修改数据结构时引起的错误。 例如:例如:局部和全局常量的再定义局部和全局常量的再定义; ; 记录或文件格式的再定义记录或文件格式的再定义; ; 增减数据或其他复杂数据结构的体积增减数据或其他复杂数据结构的体积; ; 重新初始化控制标志和指针重新初始化控制标志和指针; ; 重新排列重新排列I/OI/O表或子程序参数表;表或子程序参数表; l l软件维护副作用大致可分为三类软件维护副作用大致可分为三类: :(3)文档副作用)文档副作用修改软件时,没有对相关技

21、术文档进行修改软件时,没有对相关技术文档进行 相应修改,导致文档不能反映软件的当前状态。相应修改,导致文档不能反映软件的当前状态。 例如:例如:在设计文档和用户手册中未能准确反映修改情况;在设计文档和用户手册中未能准确反映修改情况; (如果设计文档不能与软件当前的状况对应则比没有文(如果设计文档不能与软件当前的状况对应则比没有文 档更糟。对用户来说档更糟。对用户来说, ,若使用说明中未能反映修改后若使用说明中未能反映修改后 的状况的状况, ,那么用户在这些问题上必定出错。)那么用户在这些问题上必定出错。) 维护完成后维护完成后, ,再次交付软件之前应再次交付软件之前应仔细复审整个配置仔细复审整

22、个配置, ,有有 效地减少文档副作用。效地减少文档副作用。软件维护过程,本质上是修改和软件维护过程,本质上是修改和压缩了的软件定义和开发压缩了的软件定义和开发 过程过程。软件维护过程主要包括如下环节:软件维护过程主要包括如下环节: 维护组织维护组织的建立的建立 维护事件流维护事件流的确定的确定 维护文档维护文档的编写和审查的编写和审查 1.1.维护组织维护组织(组织人员、明确维护责任、减少混乱)(组织人员、明确维护责任、减少混乱) 每个每个维护申请维护申请通过通过维护管理员维护管理员转告给转告给系统管理员系统管理员,系统,系统管理员一般都是对程序管理员一般都是对程序( (某一部分某一部分) )

23、特别熟悉的技术人员,他特别熟悉的技术人员,他们对维护申请及可能引起的软件修改进行评估,并向维护决们对维护申请及可能引起的软件修改进行评估,并向维护决策机构策机构( (一个或一组管理者一个或一组管理者) )报告,由它最后确定是否采取行报告,由它最后确定是否采取行动。动。维护决策机构维护决策机构维护管理员维护管理员系统管理员系统管理员维护人员维护人员配置管理员配置管理员维护申请维护申请 l l维护团队组织:维护团队组织: 对长期运行的复杂系统需要一个稳定的维护小组。对长期运行的复杂系统需要一个稳定的维护小组。 维护小组由以下成员组成:维护小组由以下成员组成: 1) 1) 组长组长:有经验的系统分析

24、员:有经验的系统分析员 2) 2) 维护程序员维护程序员:理解软件、分析程序、执行修改工作。:理解软件、分析程序、执行修改工作。2 2、维护流程:、维护流程:(1 1)制定维护申请报告(软件问题报告):)制定维护申请报告(软件问题报告): 由用户根据维护活动的要求来完成维护申请报告。由用户根据维护活动的要求来完成维护申请报告。 l l维护申请报告维护申请报告用用标准的格式标准的格式来来表达维护要求表达维护要求。软件维护人。软件维护人员通常提供给用户空白的维护请求表,由要求一项维护活动的用员通常提供给用户空白的维护请求表,由要求一项维护活动的用户填写。户填写。 l l对对改正性维护改正性维护:要

25、描述:要描述错误出现的现场信息错误出现的现场信息 ( (包括输入数包括输入数据、文件和其他运行信息据、文件和其他运行信息) ); l l对对适应性或完善性的维护适应性或完善性的维护:提出一个:提出一个简短的需求规格说明简短的需求规格说明书。书。(2 2)审查维护申请报告并批准。)审查维护申请报告并批准。软件维护申请报告实例软件维护申请报告实例评价负责人:*申请评价结果:修正错误批准 拒绝申请人:*环境 自 *年*月*日 至 *年*月*日 共计 0.5 人月维护时间维护要求及优先级:在测评之前必须修正,否则会造成测评结果的不准确软件:纠错维护 适应维护 完善维护硬件: 系统设备 外部设备维护类型

26、远程维护现场维护维护安排预计维护的结果:修正程序中的人员权限,使得每种类型的人员只能进行自身类型的测评。问题说明:(数据输入、错误现象)不同类型的人员可以进行交叉测评。按需求:各类人员只进行自身类型的测评,如管理人员只能对管理人员进行测评,教师只能测评教师。项目编号网络测评系统项目名称(3 3)进行维护:)进行维护: 首先首先确定要进行维护的类型确定要进行维护的类型: l l对改正性维护:评价错误的严重性对改正性维护:评价错误的严重性 l l对适应性和完善性维护:如同进行另一个开发工作对适应性和完善性维护:如同进行另一个开发工作 实施维护实施维护任务:任务: 修改软件设计、代码修改、测试、复审

27、修改软件设计、代码修改、测试、复审 维护请求维护请求类型类型类型类型严重性严重性评估后按优先评估后按优先级在队列排队级在队列排队“救火行动救火行动”, ,当当排在队列之首排在队列之首评估后分类评估后分类评估后按优先评估后按优先级在队列排队级在队列排队采取的行动采取的行动通知请求者通知请求者并说明原因并说明原因按优先级在按优先级在队列中排队队列中排队从维护请求队列之首取出一任务从维护请求队列之首取出一任务按按SESE方法学规划、组织、实施工程方法学规划、组织、实施工程队列中还有维护请求吗?队列中还有维护请求吗?资源用于开发新的软件。资源用于开发新的软件。y yn n改正性改正性其他其他完善性完善

28、性适应性适应性拒绝拒绝接受接受并不严重并不严重非常严重非常严重软软件件维维护护的的工工作作流流(4 4)写出软件修改报告:)写出软件修改报告: 软件修改报告指出:软件修改报告指出: 为满足软件问题报告实际要求的为满足软件问题报告实际要求的工作量工作量 要求要求修改的性质修改的性质 请求请求修改的优先权修改的优先权 关于修改的关于修改的事后数据事后数据。 (5 5)复审。)复审。软件修改报告示例软件修改报告示例维护结果:维护结果:经过对需求的进一步确认,对指定编号的模块进行了修改,纠正了源经过对需求的进一步确认,对指定编号的模块进行了修改,纠正了源程序中出现的错误。程序中出现的错误。维护人员:维

29、护人员:*0.2个人月个人月修改部分源程序修改部分源程序查错,确定错误位置查错,确定错误位置*月月*日日维护人员维护人员工作量工作量增增/删删/改改维护内容维护内容日期日期编号:编号:evalobject_01机器指令长度:机器指令长度:25Kb程序安装日期:程序安装日期:*年年*月月*日日程序运行时间:程序运行时间:模块名称:模块名称:测评控制管理测评控制管理源程序行数:源程序行数:210编程语言:编程语言:PHP失效次数:失效次数:3初始状态描述:初始状态描述:不同类型的人员可以进行交叉测评。按需求:各类人员只进行自不同类型的人员可以进行交叉测评。按需求:各类人员只进行自身类型的测测评,如

30、管理人员只能对管理人员进行测评,教师只能测评教师。身类型的测测评,如管理人员只能对管理人员进行测评,教师只能测评教师。项目名称:项目名称:网络测评系统网络测评系统计划编号:计划编号:eval_wh_012日期日期:*年年*月月*日日记录编号:记录编号:eval_wh_012 1.1.可维护性定义可维护性定义: : 软件可维护性软件可维护性是指纠正软件系统出现的错误和缺陷,以是指纠正软件系统出现的错误和缺陷,以及为满足新的要求及为满足新的要求进行修改、扩充或适应的容易程度进行修改、扩充或适应的容易程度。 l l许多软件的维护十分困难,原因在于这些软件的许多软件的维护十分困难,原因在于这些软件的文

31、档不文档不全、质量差、开发过程不注意采用好的方法,忽视程序设全、质量差、开发过程不注意采用好的方法,忽视程序设计风格计风格等。等。 l l许多维护要求并不是因为程序中出错而提出的,而是为许多维护要求并不是因为程序中出错而提出的,而是为适应环境变化或需求变化适应环境变化或需求变化而提出的。而提出的。 l l为了使得为了使得2.2.决定软件可维护性的因素决定软件可维护性的因素: : 决定软件可维护性的因素主要有下述决定软件可维护性的因素主要有下述7 7个:个: 可理解性;可使用性;可测试性;可理解性;可使用性;可测试性; 可移植性;可修改性;效率;可靠性可移植性;可修改性;效率;可靠性 l l对于

32、不同类型的维护,这对于不同类型的维护,这7 7种特性的侧重点也不相同。种特性的侧重点也不相同。 3.3.提高可维护性的方法提高可维护性的方法 l l开发软件时考虑可维护性开发软件时考虑可维护性 (1) (1) 建立明确的软件质量目标。建立明确的软件质量目标。 (2) (2) 利用先进的软件开发技术和工具。利用先进的软件开发技术和工具。 (3) (3) 建立明确的质量保证审查。建立明确的质量保证审查。 (4) (4) 选择可维护的程序设计语言。选择可维护的程序设计语言。 (5) (5) 改进软件文档。改进软件文档。软件开发期间各个阶段的审查重点软件开发期间各个阶段的审查重点文档是影响软件可维护性

33、的决定因素文档是影响软件可维护性的决定因素。由于长期使用的大。由于长期使用的大型软件系统在使用过程中必然会经受多次修改,所以文档型软件系统在使用过程中必然会经受多次修改,所以文档与程序代码同等重要。与程序代码同等重要。软件的开发渗透着软件开发人员的复杂脑力劳动,文档作软件的开发渗透着软件开发人员的复杂脑力劳动,文档作为为软件产品的主要形式软件产品的主要形式集中体现了软件开发人员的劳动成集中体现了软件开发人员的劳动成果。软件开发工作伴随着大量的信息要记录和使用,因此果。软件开发工作伴随着大量的信息要记录和使用,因此文档的编制在软件开发工作中占有相当大的工作量,文档文档的编制在软件开发工作中占有相

34、当大的工作量,文档在软件生存期中的地位和作用越来越突出。在软件生存期中的地位和作用越来越突出。文档的作用文档的作用(1)提高软件开发过程的能见度:)提高软件开发过程的能见度:把开发过程中发生的事件以把开发过程中发生的事件以某种可以阅读的方式记录在文档中,管理人员可把这些记载下来的材料某种可以阅读的方式记录在文档中,管理人员可把这些记载下来的材料作为作为检查软件开发进度和开发质量的依据,检查软件开发进度和开发质量的依据,实现对软件开发工作的管理。实现对软件开发工作的管理。 (2)提高开发效率:)提高开发效率:软件文档的编制,使得软件文档的编制,使得开发人员对各个阶段开发人员对各个阶段的工作都进行

35、周密的思考、全面衡量,从而减少返工的工作都进行周密的思考、全面衡量,从而减少返工。并可在开发的早并可在开发的早期发现错误和不一致性,便于及时加以纠正;期发现错误和不一致性,便于及时加以纠正; (3)软件开发的阶段工作成果;)软件开发的阶段工作成果;文档的作用文档的作用(4)记录开发过程中的信息:)记录开发过程中的信息:便于协调以后的软件开发、使用便于协调以后的软件开发、使用和维护;和维护;(5)提供对软件的运行、维护和培训的有关信息:)提供对软件的运行、维护和培训的有关信息:文档起着文档起着多种桥梁作用,便于管理人员、开发人员、操作人员、用户之间的协作、多种桥梁作用,便于管理人员、开发人员、操

36、作人员、用户之间的协作、交流和了解,使软件开发活动更有效;交流和了解,使软件开发活动更有效;(6)便于潜在用户了解软件的功能、性能等各项指标。)便于潜在用户了解软件的功能、性能等各项指标。文档的分类文档的分类 按照文档的产生和使用范围,软件文档大致可分为三类:按照文档的产生和使用范围,软件文档大致可分为三类:(1)(1)开发文档:开发文档:作为开发人员前一阶段工作成果的体现和后一阶段作为开发人员前一阶段工作成果的体现和后一阶段工作的依据。包括工作的依据。包括项目开发计划项目开发计划、可行性研究报告可行性研究报告、软件需求说明书软件需求说明书、数据要求说明书数据要求说明书、概要设计说明书概要设计

37、说明书、详细设计说明书详细设计说明书(也可包含(也可包含源程源程序序文档);文档);(2)(2)管理文档:管理文档:由软件开发人员制定的、需提交管理人员的一些工由软件开发人员制定的、需提交管理人员的一些工作计划或工作报告,使管理人员能够了解软件开发项目安排、进度、作计划或工作报告,使管理人员能够了解软件开发项目安排、进度、资源、使用和成果等。包括资源、使用和成果等。包括项目开发计划项目开发计划、测试计划测试计划、开发进度月报开发进度月报、项目开发总结项目开发总结; (3)(3)用户文档:用户文档:软件开发人员为用户准备的有关该软件的使用操作软件开发人员为用户准备的有关该软件的使用操作和维护的资

38、料,包括和维护的资料,包括用户手册用户手册、操作手册操作手册、维护修改建议维护修改建议、软件需求软件需求说明书说明书等;等;在项目开发过程中,应该按要求编写好十三种文档,文档编在项目开发过程中,应该按要求编写好十三种文档,文档编制要求具有针对性、精确性、清晰性、完整性、灵活性、可制要求具有针对性、精确性、清晰性、完整性、灵活性、可追溯性。追溯性。 可行性分析报告:可行性分析报告: 说明该软件开发项目的实现在技术上、经济上和社会因素上的说明该软件开发项目的实现在技术上、经济上和社会因素上的 可行性,评述为了合理地达到开发目标可供选择的各种可能实可行性,评述为了合理地达到开发目标可供选择的各种可能

39、实 施方案,说明并论证所选定实施方案的理由。施方案,说明并论证所选定实施方案的理由。 项目开发计划:项目开发计划: 为软件项目实施方案制订出具体计划,应该包括各部分工作的为软件项目实施方案制订出具体计划,应该包括各部分工作的 负责人员、开发的进度、开发经费的预算、所需的硬件及软件负责人员、开发的进度、开发经费的预算、所需的硬件及软件 资源等。资源等。 软件需求说明书软件需求说明书(软件规格说明书):(软件规格说明书): 对所开发软件的功能、性能、用户界面及运行环境等作出详细对所开发软件的功能、性能、用户界面及运行环境等作出详细 的说明。它是在用户与开发人员双方对软件需求取得共同理解的说明。它是

40、在用户与开发人员双方对软件需求取得共同理解 并达成协议的条件下编写的,也是实施开发工作的基础。该说并达成协议的条件下编写的,也是实施开发工作的基础。该说 明书应给出数据逻辑和数据采集的各项要求,为生成和维护系明书应给出数据逻辑和数据采集的各项要求,为生成和维护系 统数据文件做好准备。统数据文件做好准备。 概要设计说明书:概要设计说明书: 该说明书是概要设计阶段的工作成果,它应说明功能分配、模该说明书是概要设计阶段的工作成果,它应说明功能分配、模 块划分、程序的总体结构、输入输出以及接口设计、运行设计、块划分、程序的总体结构、输入输出以及接口设计、运行设计、 数据结构设计和出错处理设计等,为详细设计提供基础。数据结构设计和出错处理设计等,为详细设计提供基础。 详细设计说明书:详细设计说明书: 着重描述每一模块是怎样实现的,包括实现算法、逻辑流程等。着重描述每一模块是怎样实现的,包括实现算法、逻辑流程等。 用户操作手册:用户操作手册: 本手册详细描述软件的功能、性能和用户界面,使用户对如何本手册详细描述软件的功能、性能和用户界面,使用户对如何 使用该软件得到具体的了解,为操作人员提供该软件各种运行使用该软件得到具体的了解,为操作人员提供该软件各种运行

温馨提示

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

评论

0/150

提交评论