收藏 分享(赏)

8章软件维护、软件质量软件文档与软件产权保护 西安电子科技大学 软件工程教学课件.ppt

上传人:czsj190 文档编号:4789454 上传时间:2019-01-13 格式:PPT 页数:109 大小:1.21MB
下载 相关 举报
8章软件维护、软件质量软件文档与软件产权保护 西安电子科技大学 软件工程教学课件.ppt_第1页
第1页 / 共109页
8章软件维护、软件质量软件文档与软件产权保护 西安电子科技大学 软件工程教学课件.ppt_第2页
第2页 / 共109页
8章软件维护、软件质量软件文档与软件产权保护 西安电子科技大学 软件工程教学课件.ppt_第3页
第3页 / 共109页
8章软件维护、软件质量软件文档与软件产权保护 西安电子科技大学 软件工程教学课件.ppt_第4页
第4页 / 共109页
8章软件维护、软件质量软件文档与软件产权保护 西安电子科技大学 软件工程教学课件.ppt_第5页
第5页 / 共109页
点击查看更多>>
资源描述

1、第八章 软件维护、软件质量 软件文档与软件产权保护,西安电子科技大学课程,第八章 软件维护、软件质量、软件文档与软件产权保护,8.1 软件维护的定义所谓软件维护是在软件已经交付使用之后,为改正错误或满足新的需要而修改软件的过程.维护活动可分为四种类型 1) 改正性维护在软件交付使用后,由于测试不彻底,不完全,必然会有一部分隐藏的错误,改正软件性能上的缺陷,排除实施中的误使用,应进行的诊断和改正错误的过程,称为改正性维护.2) 适应性维护外部环境(新的硬、软件配置)或数据环境(数据库、数据格式、数据输入/输出方式、数据存贮介质)可能发生变化,为了使软件适应这种变化而修改软件的过程叫做适应性维护.

2、,第八章 软件维护、软件质量、软件文档与软件产权保护,3) 完善性维护完成扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性能,这种维护活动称为完善性维护. 4) 预测性维护把今天的方法学用于昨天的系统以满足明天的需要.即采用先进的软件方法对需要维护的软件或一部分(重新)进行设计,编制和测试.,第八章 软件维护、软件质量、软件文档与软件产权保护,影响维护工作因素1. 系统太小. 2. 程序设计语言. 3. 系统年龄. 4. 数据库技术的应用.5. 先进的软件开发技术. 6. 其他:如应用的类型,数学模型.任务难度 ,第八章 软件维护、软件质量、软件文档与软件产权保护,l 维护的特点结

3、构化维护和非结构化维护:有完整的软件配置(使用软件工程方法开发)的软件,虽然不能保证维护没有问题,但可以减少维护的工作量,并提高质量。l 维护的问题与维护有关的绝大多数问题,都可归因于软件定义和软件开发的方法有缺点. 1、深刻理解原开发人员的编程思想通常相当困难。2、软件人员的流动性,使得软件维护时很难与原开发人员沟通。3、没有文档或文档严重不足。4、软件设计时,欠考虑软件的可修改性,可扩展性。5、频繁的软件升级,要追踪软件的演化变得很困难,使软件难以修改,第八章 软件维护、软件质量、软件文档与软件产权保护,l 软件维护活动软件维护申请报告软件维护组织通常提供维护申请报告MRP(mainten

4、ance request form) 或称软件问题报告,由申请维护的用户填写。若遇见一个错误,用户必须完整的说明产生错误的情况,包括输入数据,软件组织内部应相应地做出软件修改报告,错误清单以及其他有关材料。维护申请报告是由软件组织外部提交的文档,它是计划维护工作的基础,软件组织内部应相应地作出软件修改报告SCR(software change report)。并指明:1)所需修改变动的性质2)申请修改的优先级3)为满足某个维护申请报告,所需的工作量4)预计修改后的状况,第八章 软件维护、软件质量、软件文档与软件产权保护,8.2 软件维护工作流程维护的事件流 从图描绘的事件流看到,对一项改正性维

5、护要求(图中“错误”通路)的处理,从估量错误的严重程度开始。如果是一个严重的错误(例如,一个关键性的系统不能正常运行),则在系统管理员的指导下分派人员,并且立即开始问题分析过程。如果错误并不严重,那么改正性的维护和其他要求软件开发资源的任务一起统筹安排。,第八章 软件维护、软件质量、软件文档与软件产权保护,适应性维护和完善性维护的要求沿着相同的事件流通路前进。应该确定每个维护要求的优先次序,并且安排要求的工作时间,好像它是另一个开发任务 (从所有意图和目标来看,它都属于开发工作)。如果一项维护要求的优先次序非常高,可能立即开始维护工作。 不管维护类型如何,都需要进行同样的技术工作。这些工作包括

6、修改软件设计、复查、必要的代码修改、单元测试和集成测试(包括使用以前的测试方案的回归测试)、验收测试和复审。不同类型的维护强调的重点不同,但是基本途径是相同的。维护事件流中最后一个事件是复审,它再次检验软件配置的所有成分的有效性,并且保证事实上满足了维护要求表中的要求。,第八章 软件维护、软件质量、软件文档与软件产权保护,第八章 软件维护、软件质量、软件文档与软件产权保护,第八章 软件维护、软件质量、软件文档与软件产权保护,保存维护记录对于软件生命周期的所有阶段而言,以前记录保存都是不充分的,而软件维护则根本没有记录保存下来。由于这个原因,往往不能估价维护技术的有效性,不能确定一个产品程序的“

7、优良”程度,而且很难确定维护的实际代价是什么。 保存维护记录遇到的第一个问题就是,哪些数据是值得记录的?Swanson提出了下述内容: 程序标识; 源语句数; 机器指令条数; 使用的程序设计语言; 程序安装的日期; 自从安装以来程序运行的次数; 自从安装以来程序失效的次数; 程序变动的层次和标识; 因程序变动而增加的源语句数; 因程序变动而删除的源语句数; 每个改动耗费的人时数; 程序改动的日期; 软件工程师的名字; 维护要求表的标识; 维护类型; 维护开始和完成的日期; 累计用于维护的人时数; 与完成的维护相联系的纯效益。,第八章 软件维护、软件质量、软件文档与软件产权保护,评价维护活动缺乏

8、有效的数据就无法评价维护活动,如果已经开始保护维护记录了,则可以对维护工作做一些定量度量。(1) 每次程序运行平均失效的次数;(2) 用于每一类维护活动的总人时数;(3) 平均每个程序、每种语言、每种维护类型所做的程序变动数;(4) 维护过程中增加或删除一个源语句平均花费的人时数;(5) 维护每种语言平均花费的人时数;(6) 一张维护要求表的平均周转时间;(7) 不同维护类型所占的百分比。,第八章 软件维护、软件质量、软件文档与软件产权保护,维护工作流程许多软件的维护十分困难,原因在于这些软件的文档和源程序难于理解,难于修改。从原则上讲,软件开发工作应严格按照软件工程要求进行。但实际上往往不能

9、真正做到。例如,文档不全,质量差;开发过程不注意结构化方法,忽视程序设计风格等。所以为了使软件易于维护,必须考虑的是软件具有可维护性。8.3 软件可维护性定性的定义:维护人员理解、修改、改进该软件的难易程度。提高可维护性是支配软件工程方法论的所有步骤的目标。可维护性,实用性,可靠性是衡量软件质量的特性。可维护性的度量人们一直期望对软件的可维护性作出定量度量。但实属不易,许多研究集中在这个方面,形成了一个引人注目的学科软件度量学。下面介绍度量一个可维护的程序的七种特性时常用的方法。,第八章 软件维护、软件质量、软件文档与软件产权保护,1)可理解性可理解性表明人们阅读源代码和相关文档,了解程序功能

10、及其如何进行的容易程度。可理解性,使用一种叫做“9010测试”方法衡量。一份被测源程序清单给一位有经验的程序员阅读十分钟。让该程序员凭自己的理解和记忆,写出该程序90%,若写出来,则该程序具有可理解性。 2)可靠性可靠性表明一个程序按照用户的要求和设计目标在给定的时间内正确执行的概率。其度量标准有:l 平均失效间隔时间MTTF:l 平均修复时间MTTRl 有效性 (A=MTBD/(MTBD+MDT)3)可测试性可测性表明验证程序正确性的容易程度,程序越简单,证明其正确性就越容易。对于程序模块,可用程序复杂度来度量可测性。,第八章 软件维护、软件质量、软件文档与软件产权保护,4) 可修改性可修改

11、性表明程序容易的程度; 设C是程序中各个模块的平均复杂性,N是必须修改的模块数,A是要修改的模块的平均复杂性,修改难度D为D=A/C若D1,则该程序修改困难。A和C可用任何一种度量程序复杂性的方法计算。 5) 可移植性可移植性表明转移到一个新的计算环境的可能性的大小。一个可移植性的程序具有结构良好,灵活,不依赖于某一具体计算机或操作系统的性能。,第八章 软件维护、软件质量、软件文档与软件产权保护,6) 效率效率表明一个程序能执行预定功能而又不浪费机器资源的程度。机器资源:内存容量,外存容量,执行时间。 7)可使用性从用户观点出发,把可使用性定义为程序方便使用及易于使用的程度。用于可使用性度量的

12、检查项目有:(1) 程序是否具有自描述性?(2) 程序是否能始终如一按照用户要求运行?(3) 程序是否让用户对数据速率有一个满意地和适当程度?(4) 程序是否容易学会使用?(5) 程序是否具有容错性?(6) 程序是否灵活?,第八章 软件维护、软件质量、软件文档与软件产权保护,为了保证软件的可维护性,有四种类型的软件审查1、在检查点进行复查保证软件质量的最佳方法是在软件开发的最初阶段就把质量考虑进去,并在开发过程每一阶段的终点,设置检查点进行检查。,可以使用各种质量特性检查表,或度量标准来检查可维护性。各种质量标准应当在管理部门、用户、软件开发人员、软件维护人员当中达成一致意见。,第八章 软件维

13、护、软件质量与软件文档,第八章 软件维护、软件质量、软件文档与软件产权保护,2、验收检查验收检查是一项特殊的检查点的检查,是交付使用前的最后一次检查,是软件运行投入之前保证可维护性的最后机会。下面是验收检查必须遵循的最小验收标准:(1)需求和规范标准 需求应当以可测试的术语进行书写,排列优先次序并定义; 区分必须的、任选的、将来的需求; 包括对系统运行时计算机设备的需求;对维护、测试、操作、以及维护人员的需求;对测试工具等的需求; (2)设计标准 程序应设计成分层的模块结构。每个模块应完成唯一的功能,并达到高内聚、低耦合; 通过一些知道预期变化的实例,说明设计的可扩充性、可伸缩性和可适应性。,

14、第八章 软件维护、软件质量、软件文档与软件产权保护,(3)源代码标准 尽可能使用最高级的程序设计语言,且只使用语言的标准版本; 所有的代码必须具有良好的结构; 所有的代码必须文档化在注释说明它的输入,输出、以及便于测试/再测试的一些特点与风格(4)文档标准文档中应说明程序的输入/输出、使用方法/算法、错误恢复方法、所有参数的范围以及缺省条件等3、周期性地维护审查检查点复查和验收检查,可用来保证新软件系统的可维护性。对已有的软件系统,则应当进行周期性地维护审查。,第八章 软件维护、软件质量、软件文档与软件产权保护,周期性地维护审查实际上是开发阶段检查点复查的继续,并且采用的检查方法、检查内容都是

15、相同的。4、对软件包进行检查软件包是一种标准化了的,可为不同单位、不同用户使用的软件。软件包卖主考虑他的专利权,一般不会提供给用户他的源代码和程序文档。软件包维护的方法如下:使用单位的维护人员首先要仔细分析、研究卖主提供的用户手册、培训手册、新版本说明、计算机环境要求书、未来特性表,以及卖方提供的验收测试报告等,在此基础上,深入了解本单位的希望和要求,编制软件包的检验程序。该检验程序检查软件包所执行的功能是否与用户的要求与条件相一致。,第八章 软件维护、软件质量、软件文档与软件产权保护,改进程序的文档在软件维护阶段,利用历史文档,可以大大简化维护工作。历史文档有三种:(1) 系统开发日志:它记

16、录项目的开发原则,开发目标,优先次序,选择某种设计方案的理由决策策略,使用的测试技术和工具,每天出现的问题,计划的成功和失败之处。,第八章 软件维护、软件质量、软件文档与软件产权保护,(2) 错误记载它把出错的历史记录下来,对于预测今后可能发生的错误类型及出错频率有很大帮助。此外对出错的统计,跟踪,可以合理的评价软件质量度量标准和软件方法的有效性。(3)系统维护日志它记录了在维护阶段有关系统修改目的信息。包括修改的宗旨,修改的策略,存在的问题,问题所在的位置,解决问题的办法,修改要求和说明,注意事项,新版本说明等信息。它有助于人们了解程序修改背后的思维过程,以进一步了解修改的内容和修改带来的影

17、响。,第八章 软件维护、软件质量、软件文档与软件产权保护,维护的副作用维护的目的是为了延长软件的寿命并让其创造更多的价值,经过一段时间的维护,软件中的错误减少了,功能增强了。但修改软件是危险的,每修改一次,潜伏的错误就可能增加一分。这种因修改软件造成的错误或其他不希望出现的情况称为维护的副作用。维护的副作用有编码副作用、数据副作用、文档副作用三种。1、编码副作用在使用程序设计语言修改源代码时可能引入错误。例如l 删除或修改一个子程序、一个标号、一个标识符;l 改变程序代码的时序关系,改变占用存储器的大小,改变逻辑运算符;l 修改文件的打开或关闭;,第八章 软件维护、软件质量、软件文档与软件产权

18、保护,l 改进程序的执行效率;l 把设计上的改变翻译成代码的改变;l 为边界条件的逻辑测试做改变。以上这些变动都容易引入错误,要特别小心,仔细的修改,避免引入新的错误。2数据副作用在修改数据结构时,有可能造成软件设计与数据结构不匹配,因而导致软件错误。数据副作用是修改软件信息结构导致的结果。例如:l 重新定义局部或全部的常量,重新定义记录或文件格式;l 增加或减少一个数据或高层数据结构的大小;l 修改全局或公共数据;l 重新初始化控制标志或指针;l 重新排列输入/输出或子程序的参数。,第八章 软件维护、软件质量、软件文档与软件产权保护,以上这些情况都容易导致设计与数据不相容的错误。数据副作用可

19、以通过详细的设计文档加以控制,在此文档中描述了一种交叉对照表,把数据元素、记录、文件和其它结构联系起来。3文档副作用对数据流、软件结构、模块逻辑或任何其它有关特性进行修改时,必须对相关技术文档进行相应修改。否则会导致文档与程序功能不匹配、缺省条件改变、新错误信息不正确等错误,使文档不能反映软件当前的状态。如果对可执行软件的修改没有反映在文档中,就会产生文档副作用。例如:l 修改交互输入的顺序或格式,没有正确的记入文档中;l 过时的文档内容、索引和文本可能造成冲突等。,第八章 软件维护、软件质量、软件文档与软件产权保护,因此,必须在软件交付之前对整个软件配置进行评审,以减少文档副作用。事实上,有

20、些维护请求并不要求改变软件设计和源代码,而是指出在用户文档中不够明确的地方。在这种情况下,维护工作主要集中在文档。为了控制因修改而引起的副作用,要做到:l 按模块把修改分组;l 自顶向下的安排被修改模块的顺序;l 每次修改一个模块;l 对每个修改了的模块,在安排修改下一个模块之前要确定这个修改的副作用。可使用交叉引用表、存储映像表、执行流程跟踪等。,第八章 软件维护、软件质量、软件文档与软件产权保护,反推工程与再生工程反推工程是分析一个程序过程,以最大努力去建立比源代码抽象层次更高的程序表达式。反推工程也是一个设计的恢复过程。反推工程工具集可以从一个现有的软件中提取有关的数据、体系结构,以及过

21、程设计方面的信息。再生工程也叫做更新或改造工程,它不仅只是从现有系统中恢复设计信息,而是利用这些信息去改变或重建现存系统,尽最大努力来提高他们的整体质量。再生工程软件不仅可以再现现有系统的功能,而同时,开发人员为了提高系统的整体性能,还增加了新的功能。,第八章 软件维护、软件质量、软件文档与软件产权保护,8.4 软件质量定义从实际应用角度,软件质量(software quality)定义(1) 与明确确定的功能和性能需求的一致性(2) 与明确成文的开发标准的一致性(3) 与所有专业开发的软件所期望的隐含的特性的一致性上述定义突出了三点:(1)需求是质量度量的基础,缺少与需求的一致性就无质量可言

22、(2)专门的标准定义了一系列的开发准则,它指导软件工程化的开发方式(3)通常,对许多隐含需求不采用直接提出的方法(如良好的可维护性的要求)而忽视满足软件隐含的需求,那末,这样的软件质量也是不可信的。,第八章 软件维护、软件质量、软件文档与软件产权保护,8.5 软件质量因素影响软件质量的因素分两大类:(1) 可以直接度量的因素。(2) 只能间接度量的因素。如可用性或可维护性1976年,Boehm等人提出了定量的评价软件质量的概念,并给出了30个质量度量公式,来确定评价软件质量,首次提出了软件质量度量的层次模型。1978年,Walters和Mccall提出了从软件质量要素准则到度量的三个层次软件质

23、量度量模型。,第八章 软件维护、软件质量、软件文档与软件产权保护,软件质量因素归纳为11个,并给出了它们之间下例的关系:G.murine根据上述等人的工作,提出了软件质量度量(SQM)技术,定量的评价软件(美国波音,日本的NEC在软件开发中都采用了该技术)。国际标准组织(ISO)1985年提出了有关SQM的工作报告,Boehm 提出的软件质量度量模型.,第八章 软件维护、软件质量、软件文档与软件产权保护,主要用途 中间构造 基本构造,软件质量度量模型图,第八章 软件维护、软件质量、软件文档与软件产权保护,软件质量主要从三方面来评价(1)软件可使用性 ; (2)软件可维护性;(3)软件可移植性从

24、模型可知,把软件质量的概念分解若干层次,对于最底层的软件质量概念引入数量化的概念,则得到软件质量的整体评价.Boehm等人关于软件质量特性完整定义如下:(1) 可使用性:程序可靠的、高效率的、考虑到 人的因素的程度;(2) 可维护性:当需求改变时,程序修改和完善的难以程度;,第八章 软件维护、软件质量、软件文档与软件产权保护,(3)可移植性:程序在其他计算机配置上运行的 难易程度;(4)可靠性:在一定的资源情况下,程序完成 预定功能的程度;( 5 ) 效 率: 程序完成预定功能的程度;(6)环境工程:程序在用户一定时间和精力下或 不影响用户信心的前提下完成任务的程度;(7)可测试性:为程序建立

25、验证准则和性能评价的难易程度;( 8 )可理解性:程序便于用户理解的难易程度;( 9 )可修改性:程序便于修改的难易程度;,第八章 软件维护、软件质量、软件文档与软件产权保护,(10) 设备独立性:程序的所有部分在其他硬件配置上运行的难易程度; (11) 完整性:程序的所有部分被给出和各部分被充分开发的程度; (12) 准确性:程序的输出满足原定目标的程度; (13) 一致性:程序中出现的标记,术语和符号前后一致的程度; (14) 设备效率:程序使用设备资源的程度; (15) 可存取性:可灵活选择程序构件的难易程度; (16) 通信性:程序便于用户满足规格说明的输入和产生被用户使用的输出的难易

26、程度; (17) 结构性:程序中相互依赖部分组织模式的确定程度;,第八章 软件维护、软件质量、软件文档与软件产权保护,(18) 自描述性:用户在确定或验证程序目标,假设,限制,输入,输出和修改状态时,程序能提供信息的程度; (19) 简洁性:多余信息不在程序中出现的程度; (20)易读性:通过阅读程序来理解其功能的难易程度; (21) 可扩充性:程序的计算能力或数据存储要扩充的程度; McCall认为:因素是软件质量的反应,而软件属性可用作评价准则,定量化的度量软件属性从而反映出软件质量的好坏,因素之间存在着有利和不利影响。,第八章 软件维护、软件质量、软件文档与软件产权保护,第八章 软件维护

27、、软件质量、软件文档与软件产权保护,第八章 软件维护、软件质量、软件文档与软件产权保护,第八章 软件维护、软件质量、软件文档与软件产权保护,由于因素之间存在着逆相关,即没有一种软件的设计能使得软件所有的质量因素都最佳。实际上,应根据不同类型的软件的不同要求做不同的选择。如:航空航天,可靠性是关键;商业系统,可维护性是关键;实时软件 : 效率是关键。 其质量因素定义如下:(1)可用性:熟悉、操作、准备输入和解释程序输出所需工作量的程度;(2)正确性:程序满足其规格说明和完成任务(用户)目标的程度;(3)可靠性:程序在要求的精度下,能够完成其规定功能的期望程度;,第八章 软件维护、软件质量、软件文

28、档与软件产权保护,(4)效率: 程序完成其功能所需计算资源和程序代码数量的程度; (5)完备性: 对非授权人访问软件或数据行为的控制程度; (6)可维护性:找到并改正程序中的一个错误所需的代价程度; (7)适应性:修改一个运行程序所需工作量的程度 (8)可测试性:测试一个程序,以保证其完成它所规定功能多少工作量的程度; (9)可移植性:搬动一个程序从一个硬件软件系统环境到另一个应软件系统环境所需的工作量程度;,第八章 软件维护、软件质量、软件文档与软件产权保护,(10)可重用性:程序或程序的一部分能够在另一相关应用程序中可重用的程度;(11)互操作性:将一个系统耦合到另一系统所需工作量的程度;

29、对上述质量因素进行直接的度量是困难的,在一定程度上甚至是不可能的。 不幸的事,McCall定义的许多度量只能是主观的度量,这些量度可用检查表的形式对软件的专门属性进行“分级”,在分级中使用了量度。,第八章 软件维护、软件质量、软件文档与软件产权保护,8. 6 软件文档的作用和分类1)什么是文档文档(document)是指某种数据媒体和其中所记录的数据。它具有永久性,并可以由人或机器阅读,通常仅用于描述人工可读的东西。在软件工程中,文档常常用来表示对活动、需求、过程或结果进行描述、定义、规定、报告或认证的任何书面或图示的信息。它们描述和规定了软件设计和实现的细节,说明使用软件的操作命令。,第八章

30、 软件维护、软件质量、软件文档与软件产权保护,文档也是软件产品的一部分,没有文档的软件就不成其为软件。软件文档的编制(documentation)在软件开发工作中占有突出的地位和相当大的工作量。 2)软件文档的作用在软件的生产过程中,总是伴随着大量的信息要记录、要使用。因此,软件文档在产品的开发生产过程中起着重要的作用。,第八章 软件维护、软件质量、软件文档与软件产权保护,(1)提高软件开发过程的能见度。把开发过程中发生的事件以某种可阅读的形式记录在文档中。管理人员可把这些记载下来的材料作为检查软件开发进度和开发质量的依据,实现对软件开发的工程管理。(2)提高开发效率。软件文档的编制,使得开发

31、人员对各个阶段的工作都进行周密的思考、全盘权衡、从而减少返工。并且可在开发早期发现错误和不一致性,便于及时加以纠正。,(1) 作为开发人员在一定阶段的工作成果和结束标志。(2) 记录开发过程中的有关信息,便于协调以后的软件开发、使用和维护。(3) 提供对软件的运行、维护和培训的有关信息,便于管理人员、开发人员、操作人员、用户之间的协作、交流和了解。使软件开发活动更科学、更有成效。(4) 便于潜在用户了解软件的功能、性能等各项指标,为他们选购符合自己需要的软件提供依据。文档在各类人员、计算机之间 的多种桥梁作用可从图中看出。,第八章 软件维护、软件质量、软件文档与软件产权保护,第八章 软件维护、

32、软件质量、软件文档与软件产权保护,3)文档的分类软件文档从形式上来看,大致可分为两类:一类是开发过程中填写的各种图表,可称之为工作表格;另一类是应编制的技术资料或技术管理资料,可称之为文档或文件。软件文档的编制可以用自然语言、特别设计的形式语言、介于两者之间的半形式语言(结构化语言)、各类图形表示、表格编制文档。文档可以书写,也可以在计算机支持系统中产生,但它必须是可阅读的。按照文档产生和使用的范围,软件文档大致可分为三类。,第八章 软件维护、软件质量、软件文档与软件产权保护,(1) 开发文档:这类文档是在开发过程中,作为软件开发人员前一阶段工作成果的体现和后一阶段工作依据的文档。包括软件需求

33、说明书、数据要求说明书、概要设计说明书、详细设计说明书、可行性研究报告、项目开发计划。 (2) 管理文档:这类文档是在软件开发过程中,由软件开发人员制定的需提交管理人员的一些工作计划或工作报告。使管理人员能够通过这些文档了解软件开发项目安排、进度、资源使用和成果等。包括项目开发计划、测试计划、测试报告、开发进度月报及项目开发总结。,第八章 软件维护、软件质量、软件文档与软件产权保护,(3) 用户文档:这类文档是软件开发人员为用户准备的有关该软件使用、操作、维护的资料。包括用户手册、操作手册、维护修改建议、软件需求说明书。 4) 软件文档的工作国家标准局在1988年1月发布了计算机软件开发规范和

34、软件产品开发文件编制指南,作为软件开发人员工作的准则和规程。它们基于软件生存期方法,把软件产品从形成概念开始,经过开发、使用和不断增补修订,直到最后被淘汰的整个过程应提交的文档归于以下13种。,第八章 软件维护、软件质量、软件文档与软件产权保护,(1) 可行性研究报告:说明该软件项目的实现在技术上、经济上和社会因素上的可行性,详述为合理地达到开发目标可供选择的各种可能的实现方案,说明并论述所选定实施方案的理由。 (2)项目开发计划:为软件项目实施方案制定出的具体计划。它应包括各部分工作的负责人员、开发的进度、开发经费的概算、所需的硬件和软件资源等。项目开发计划应提供给管理部门,并作为开发阶段评

35、审的基础。,第八章 软件维护、软件质量、软件文档与软件产权保护,(3)软件需求说明书:也称软件规格说明书。其中对所开发软件的功能、性能、用户界面及运行环境等做出详细的说明。它是用户与开发人员双方对软件需求取得共同理解基础上达成的协议,也是实施开发工作的基础。(4)数据要求说明书:该说明书应当给出数据逻辑描述和数据采集的各项要求,为生成和维护系统的数据文件作好准备。(5)概要设计说明书:该说明书是概要设计工作阶段的成果。它应当说明系统的功能分配、模块划分、程序的总体结构、输入输出及接口设计、运行设计、数据结构设计和出错处理设计等,为详细设计奠定基础。,第八章 软件维护、软件质量、软件文档与软件产

36、权保护,(6)详细设计说明书:着重描述每一个模块是如何实现的,包括实现算法、逻辑流程等。 (7)用户手册:详细描述软件的功能、性能、和用户界面,使用户了解如何使用该软件。 (8)操作手册:为操作人员提供该软件各种运行情况的有关知识,特别是操作方法细节。 (9)测试计划:针对组装测试和确认测试,需要为组织测试制定计划。计划应包括测试的内容、进度、条件、人员、测试用例的选取原则、测试结果允许的偏差范围等。,第八章 软件维护、软件质量、软件文档与软件产权保护,(10)测试分析报告:测试工作完成以后,应当提交测试计划执行情况的说明。对测试结果加以分析,并提出测试的结论性意见。(11)开发进度月报:该月

37、报是软件人员按月向管理部门提交的项目进展情况的报告。报告应包括进度计划与实际执行情况的比较、阶段成果、遇到的问题和解决的办法,以及下个月的打算等。,第八章 软件维护、软件质量、软件文档与软件产权保护,(12)项目开发总结报告:软件项目开发完成之后,应当与项目实施计划对照,总结实际执行的情况,如进度、成果、资源利用、成本和投入的人力。此外,还需对开发工作作出评价,总结经验和教训。(13)维护修改建议:软件产品投入运行之后,可能有修正、更改等问题,应当对存在的问题、修改的考虑以及修改的影响估计等作详细的描述,写成维护修改建议,提交审批。,第八章 软件维护、软件质量、软件文档与软件产权保护,8.7

38、对文档编制的质量要求为使软件文档能起到多种桥梁的作用,使它有助于程序员编制程序,有助于管理人员监督和管理软件的开发,有助于用户了解软件的工作和应作的操作,有助于维护人员进行有效的修改和扩充,文档的编制必须保证一定的质量。如果不重视文档编写工作,或是对文档编写工作的安排不当,就不可能得到高质量的文档。质量差的文档不仅使读者难于理解,给使用者造成许多不便,而且会削弱对软件的管理(难以确认和评价开发工作的进展情况),提高软件成本(一些工作可能被迫返工),甚至造成更加有害的后果(如误操作等)。,第八章 软件维护、软件质量、软件文档与软件产权保护,第八章 软件维护、软件质量、软件文档与软件产权保护,高质

39、量的文档应当体现在以下几个方面1)针对性:文档编制以前应分请读者对象。按不同的类型、不同层次的读者,决定怎样适应他们的需要。例如,管理文档主要是面向管理人员的,用户文档主要是面向用户的,这两类文档不应像开发文档(面向开发人员)那样过多使用软件的专用术语。2)精确性:文档的行文应当十分确切,不能出现多义性的描述。同一课题几个文档的内容应当是协调一致、没有矛盾的。,第八章 软件维护、软件质量、软件文档与软件产权保护,3)清晰性:文档编写应力求简明,如有可能,配以适当的图表,以增强其清晰性。 4)完整性:任何一个文档都应当是完整的、独立的,它应自成体系。例如,前言部分应作一般性介绍,正文给出中心内容

40、,必要时还有附录,列出参考资料等。同一课题的几个文档之间可能有些部分内容相同,这些重复是必要的。不要在文档中出现转引其它文档内容的情况。例如,一些段落没有具体描述,而用“见*文档*节”的方式,这将给读者带来许多的不便。5)灵活性:各个不同软件项目,其规模和复杂程度有着许多实际区别,不能一律看待。,第八章 软件维护、软件质量、软件文档与软件产权保护,(1)应根据具体的软件开发项目,决定编制的文档种类。软件开发的管理部门应该根据本单位承担的应用软件的专业领域和本单位的管理能力,制定一个对文档编制要求的实施规定。主要是:在不同条件下,应该形成哪些文档?这些文档的详细程度?该开发单位每一个项目负责人都

41、应当认真执行这个实施规定。对于一个具体的应用软件项目,项目负责人应根据上述实施规定,确定一个文档编制计划。其中包括:l 应当编制哪几种文档,详细程度如何。l 各个文档的编制负责人和进度要求。,第八章 软件维护、软件质量、软件文档与软件产权保护,l 审查、批准的负责人和时间进度安排。l 在开发时期内各文档的维护、修改和管理的负责人,以及批准手续。l 有关的开发人员必须严格执行这个文档编制计划。 (2)当所开发的软件系统非常大时,一种文档可以分成几卷编写。例如:l 项目开发计划可分写为:质量保证计划、配置管理计划、用户培训计划、安装实施计划等。l 系统设计说明书可分写为:系统设计说明书、子系统设计

42、说明书。l 程序设计说明书可分写为:程序设计说明书、接口设计说明书、版本说明。l 操作手册、安装实施过程。,第八章 软件维护、软件质量、软件文档与软件产权保护,l 测试计划可分写为:测试计划、测试设计说明、测试规程、测试用例。 l 测试分析报告可分写为:综合测试报告、验收测试报告。 l 项目开发总结报告也可分写成:项目开发总结报告、资源环境统计。(3)应根据任务的规模、复杂性、项目负责人对该软件的开发过程及运行环境所需详细程度的判断,确定文档的详细程度。,第八章 软件维护、软件质量、软件文档与软件产权保护,(4)对国际GB8567-88计算机软件产品开发文件编制指南所建议的所有条款都可以扩展,

43、进一步细分,以适应需要;反之,如果条款中有些细节并非必需,也可以根据实际情况压缩合并。(5)程序的设计表现形式,可以使用程序流程图、判定表、程序描述语言(PDL)、或问题分析图(PAD)等。(6)对于文档的表现形式,没有规定或限制。可以使用自然语言、也可以使用形式化的语言。,第八章 软件维护、软件质量、软件文档与软件产权保护,6)可追溯性:由于各开发阶段编制的文档与各个阶段完成的工作有密切的关系,前后两个阶段生成的文档,随着开发工作的逐步延伸,具有一定的继承关系,在一个项目各开发阶段之间提供的文档必定存在着可追溯的关系。例如,某一项软件需求,必定在设计说明书、测试计划、甚至用户手册中有所体现。

44、必要时应能作到跟踪追查。8.8 文档的管理和维护在整个软件生存期中,各种文档作为半成品或是最终成品,会不断生成、修改或扩充。为了最终得到高质量的产品,达到上节提出的质量要求,必须加强对文档的管理。以下几个方面是应当作到的。,第八章 软件维护、软件质量、软件文档与软件产权保护,1)软件开发小组至少应设一位文档保管员,负责集中保管本项目已有文档的两套主文本。这两套主文本的内容完全一致。其中的一套可按一定手续,办理借阅。 2)软件开发小组的成员可根据工作需要在自己手中保存一些个人文档。这些一般都应是主文本的复制件,并注意与主文本保持一致,在作必要的修改时,也应先修改主文本。 3)开发人员个人只保存着

45、主文本中与它工作有关的部分文档。,第八章 软件维护、软件质量、软件文档与软件产权保护,4)在新文档取代旧文档时,管理人员应及时注销旧文档。文档的内容有更动时,管理人员应随时修订主文本,使其及时反映更新了的内容。 5)项目开发结束时,文档管理人员应收回开发人员的个人文档。发现个人文档与主文本有差别时,应立即着手解决。这往往是在开发过程中没有及时修订主文本造成的。 6)在软件开发的过程中,可能发现需要修改已完成的文档。特别是规模较大的项目,主文本的修改必须特别谨慎。修改以前要充分估计修改可能带来的影响,并且要按照:提议评议审核批准实施的步骤加以严格的控制。,第八章 软件维护、软件质量、软件文档与软

46、件产权保护,第八章 软件维护、软件质量、软件文档与软件产权保护,各类人员与软件文档编制的关系项目负责人应该根据上述实施规定,确定一个文档编制计划,其中包括: 1、应该编制哪几种文档,详细程度如何? 2、各个文档的编制负责人和进度要求 3、审查、批准的负责人和时间进度安排 4、在开发时期内各文档的维护、修改和管理的负责人以及批准手续 5、有关的开发人员必须严格执行这个文档编制计划,第八章 软件维护、软件质量、软件文档与软件产权保护,软件文档的国家标准1、计算机软件产品开发文件编制指GB8567-882、计算机软件配置管理计划规范GBT12505-903、计算机软件质量保证计划规范GBT12504

47、-904、需求分析说明书5、总体设计说明书6、详细设计说明书,第八章 软件维护、软件质量、软件文档与软件产权保护,8.9 软件知识产权的法律保护计算机软件是一种人类智力的创作成果。这种成果所享有的经济权利和精神权利,主要是靠知识产权法来保护的。知识产权,又称智力产权或智慧产权,主要包括著作权、专利权和商标权。中华人民共和国著作权法中明确规定,计算机软件是其受保护课题中的一项。到目前为止,世界上已有30多个国家明文在版权法(即著作权法)中保护这种客体;另外,还又一部分国家通过司法解释将版权法的保护延及软件。这是一种较普遍的趋势。,第八章 软件维护、软件质量、软件文档与软件产权保护,但不论是在我国

48、,还是在国外,版权法对软件的保护,并没有完全排斥其它知识产权的保护。不同的知识产权法对软件的保护,在有些场合下是可以选择的或并行的(即重叠的)或交叉的。交叉指同时适用两种或多种知识产权法中的各一部分;重叠则指同时适用两种或多种知识产权法。,第八章 软件维护、软件质量、软件文档与软件产权保护,8.9.1 版权法对计算机软件的保护版权保护制度是从保护文字作品开始的,如今在大多数国家,文字作品仍是版权法的主要保护对象。而计算机软件中的文档中的大部分是文字作品,源程序中的注释部分也是文字作品。如果把代码看作是某种特殊的文字,这样程序也可以被看作是文字作品。所以,以版权法保护计算机软件是合适的。,第八章

49、 软件维护、软件质量、软件文档与软件产权保护,版权法所保护的,并不是文字作品或其他作品中所反映出的作者的构思、方案或思想,而是只是这些构思、方案或思想的表达方式。这也是大多数国家都承认的。一个计算机软件设计完成以后,不论是程序还是文件,都在一定程度上表达了设计者的某种构思。所以,以版权法保护计算机软件也是合适的。版权法中首先要保护的是权利人对其作品享有复制权。计算机软件与其他作品相比较,更难以创作而更易于复制。所以,自然成为他人剽窃和谋取私利的对象。从这个角度看,以复制权法保护计算机软件也是非常合适的。,第八章 软件维护、软件质量、软件文档与软件产权保护,8.9.2 专利法对计算机软件的保护版权法只保护某种构思、设计的表达形式,不保护构思或设计本身。这是版权法对计算机软件保护的局限性.因此,软件开发人员一般也不愿意他人未经许可就把表达在软件中的构思或设计白白拿走,事实是这种构思本身也是软件开发人员的创作性劳动,类似于发明成果。这时,我们就需要使用另一个领域的法律,这个领域中的法律将保护构思或设计本身,即未经创作人许可,为营利目的而利用他人设计构思去制作软件产品,就是侵犯了创作者在这个领域享有的专有权(claims priority)。这种专有权专利权,就是专利法。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 通信信息 > 电子电气自动化

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报