计算机科学导论第7章 软件工程_第1页
计算机科学导论第7章 软件工程_第2页
计算机科学导论第7章 软件工程_第3页
计算机科学导论第7章 软件工程_第4页
计算机科学导论第7章 软件工程_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

1、第第7 7章章 软件工程软件工程2计算机科学导论计算机科学导论 学习目标学习目标u了解软件危机、软件工程的概念、软件的生命周期了解软件危机、软件工程的概念、软件的生命周期 u掌握软件开发模型和软件开发方法掌握软件开发模型和软件开发方法 u了解软件质量评价和保证体系了解软件质量评价和保证体系 u了解软件项目管理了解软件项目管理 u了解软件评审了解软件评审 u了解软件可靠性了解软件可靠性u了解软件容错了解软件容错u了解软件环境了解软件环境第第7 7章章 软件工程软件工程3计算机科学导论计算机科学导论7.1 软件工程软件工程7.1.1 软件危机软件危机 u1软件危机软件危机 概念:大型软件开发和维护

2、过程中遇到的一系列严重问题概念:大型软件开发和维护过程中遇到的一系列严重问题 。 表现形式:质量难以保证表现形式:质量难以保证 、开发成本和开发进度难以控制、开发成本和开发进度难以控制 、维护非常困难、维护非常困难 、用户不满意、用户不满意 。u2软件危机产生的原因:软件危机产生的原因: (1) 软件的规模越来越大,结构越来越复杂。软件的规模越来越大,结构越来越复杂。 (2) 软件开发的管理困难。软件开发的管理困难。 (3) 软件开发费用不断增加。软件开发费用不断增加。 (4) 软件开发技术落后。软件开发技术落后。 (5) 生产方式落后。生产方式落后。 (6) 开发工具落后,生产率提高缓慢。开

3、发工具落后,生产率提高缓慢。1968年美国航空公司订票系统达到年美国航空公司订票系统达到30万条指令;万条指令;IBM 360 OS第第16版达到版达到100万条指令,花了万条指令,花了5000人人年;年;1973年美国阿波罗计划达到年美国阿波罗计划达到1千万条指令;千万条指令;1979年哥伦比亚航天飞机系统达到年哥伦比亚航天飞机系统达到4000万条指令。万条指令。4计算机科学导论计算机科学导论7.1.1 软件危机软件危机u3软件危机的表现形式软件危机的表现形式(1) 软件的质量难以保证。软件的质量难以保证。(2) 软件开发成本和开发进度难以控制。软件开发成本和开发进度难以控制。(3) 软件的

4、维护非常困难。软件的维护非常困难。(4) 用户对用户对“已完成已完成”的软件系统不满意。的软件系统不满意。5计算机科学导论计算机科学导论7.1.2 软件工程的基本概念软件工程的基本概念u1.软件工程的概念软件工程的概念 研究大规模程序设计的方法、工具和管理的一门研究大规模程序设计的方法、工具和管理的一门工程科学,也就是运用系统的、规范的和可定量工程科学,也就是运用系统的、规范的和可定量的方法来开发、运行和维护软件的系统工程。的方法来开发、运行和维护软件的系统工程。u2软件工程的软件工程的7条基本原理条基本原理 (1) 用分阶段的生命周期计划进行严格管理。用分阶段的生命周期计划进行严格管理。 (

5、2) 坚持进行阶段评审。坚持进行阶段评审。 (3) 实行严格的产品控制。实行严格的产品控制。 (4) 采用现代程序设计技术。采用现代程序设计技术。 (5) 结果应能清楚地审查。结果应能清楚地审查。 (6) 开发小组的人员应该少而精。开发小组的人员应该少而精。 (7) 承认不断改进软件工程实践的必要性。承认不断改进软件工程实践的必要性。6计算机科学导论计算机科学导论u3软件工程的目标软件工程的目标 软件工程的目标是在给定成本、进度的前提下,开发出软件工程的目标是在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性具有可修改性、有效性、可靠性、可理解性、可维护性、可复用

6、性、可适应性、可移植性、可追踪性和可互操、可复用性、可适应性、可移植性、可追踪性和可互操作性并满足用户需要的软件产品。应该特别指出,作性并满足用户需要的软件产品。应该特别指出,“可可靠性靠性”目标在软件工程中有着重要的意义,广义上讲,目标在软件工程中有着重要的意义,广义上讲,它涉及产品设计的一系列问题,从而使产品能在相当长它涉及产品设计的一系列问题,从而使产品能在相当长的期间内稳定工作。从狭义上讲,可靠性是软件成功运的期间内稳定工作。从狭义上讲,可靠性是软件成功运行的概率度量,可靠性分析和可靠性测试可作为衡量软行的概率度量,可靠性分析和可靠性测试可作为衡量软件质量和其他开发过程的最重要的方法之

7、一。件质量和其他开发过程的最重要的方法之一。7.1.2 软件工程的基本概念软件工程的基本概念7计算机科学导论计算机科学导论u4软件工程的内容软件工程的内容 软件工程研究的主要内容包括软件开发技术和软件开发管理软件工程研究的主要内容包括软件开发技术和软件开发管理两个方面。在软件开发技术中,它主要研究软件开发方法、两个方面。在软件开发技术中,它主要研究软件开发方法、软件开发过程、软件开发工具和环境。在软件开发管理中,软件开发过程、软件开发工具和环境。在软件开发管理中,它主要研究软件管理学、软件经济学和软件心理学等。它主要研究软件管理学、软件经济学和软件心理学等。u5软件工程面临的问题软件工程面临的

8、问题 软件工程有许多需要解决的棘手问题,如软件费用、软软件工程有许多需要解决的棘手问题,如软件费用、软件可靠性、软件可维护性、软件生产率和软件复用等。件可靠性、软件可维护性、软件生产率和软件复用等。 (1) 软件费用。软件费用。 (2) 软件可靠性。软件可靠性。 (3) 软件可维护性。软件可维护性。 (4) 软件生产率。软件生产率。 (5) 软件复用。软件复用。7.1.2 软件工程的基本概念软件工程的基本概念8计算机科学导论计算机科学导论7.1.3 软件工程过程软件工程过程 软件工程过程规定了获取、供应、开发、操作和维护软软件工程过程规定了获取、供应、开发、操作和维护软件时要实施的过程、活动和

9、任务。其目的是为各种人员件时要实施的过程、活动和任务。其目的是为各种人员提供一个公共的框架,以便用相同的语言进行交流提供一个公共的框架,以便用相同的语言进行交流。 软件工程过程软件工程过程包含包含7个个过程过程: 获得过程、供应过程、开发过程、操作过程、维护过获得过程、供应过程、开发过程、操作过程、维护过程、管理过程、支持过程。程、管理过程、支持过程。9计算机科学导论计算机科学导论7.1.4 软件生命周期软件生命周期 一个软件从提出开发要求开始直到该软件报废为止一个软件从提出开发要求开始直到该软件报废为止的整个时期。的整个时期。 (包括可行性分析和项目开发计划、需求分析、概(包括可行性分析和项

10、目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等活动)。要设计、详细设计、编码、测试、维护等活动)。 10计算机科学导论计算机科学导论7.2 软件开发模型软件开发模型7.2.1 瀑布模型瀑布模型u瀑布模型是瀑布模型是1970年由温斯顿年由温斯顿罗伊斯(罗伊斯(Winston Royce,19291995)提出来的)提出来的,其基本思想是将软件的生存周期划分,其基本思想是将软件的生存周期划分为定义期、开发期与维护期为定义期、开发期与维护期3大阶段,每大阶段,每个阶段又分成几个具体的步骤和相对独个阶段又分成几个具体的步骤和相对独立的任务。开发工作按阶段、任务顺序立的任务。开发工作按阶段

11、、任务顺序进行,如同自上而下的瀑布一样。进行,如同自上而下的瀑布一样。11计算机科学导论计算机科学导论7.2.1 瀑布模型瀑布模型要求定义确认设计确认编码确认测试确认维护确认需求说明书设计说明书源程序清单测试报告软件维护报告12计算机科学导论计算机科学导论7.2 软件开发模型软件开发模型7.2.2 快速原型法模型快速原型法模型13计算机科学导论计算机科学导论7.2 软件开发模型软件开发模型7.2.3 螺旋模型螺旋模型需求计划操作概念 软件需求提交部分确定目标方案限制条件费用累加风险分析风险分析风险分析原型1原型2原型3可操作原型详细设计编程模块测试组装测试确认测试运行评估方案,标识、解决风险软

12、件产品设计设计验证和确认需求验证开发计划测试计划集成和计划下阶段工作开发验证下一级产品14计算机科学导论计算机科学导论7.2 软件开发模型软件开发模型7.2.4 喷泉模型喷泉模型 实 现软件设计系统设计分 析15计算机科学导论计算机科学导论7.2 软件开发模型软件开发模型7.2.5 转换模型转换模型模型检查软件需求形式化说明( M0)(M2)软件设计形式化说明( M)程序(Mn)变换变换变换16计算机科学导论计算机科学导论7.2 软件开发模型软件开发模型7.2.6 智能模型智能模型 用户概念支持需求分析专家系统需求分析概要设计详细设计编码测试维护支持设计专家系统支持测试专家系统支持维护专家系统

13、17计算机科学导论计算机科学导论7.3 软件开发方法软件开发方法7.3.1 面向数据结构方法面向数据结构方法通过分析信息结构,并使用专门的图通过分析信息结构,并使用专门的图形描述工具形描述工具数据结构图进行系统数据结构图进行系统分析,从而得到软件结构。分析,从而得到软件结构。18计算机科学导论计算机科学导论7.3.2 统一建模语言统一建模语言(UML)一种面向对象的建模语言。它只是给出一一种面向对象的建模语言。它只是给出一套用于建模的元素及表示符号,并定义了它套用于建模的元素及表示符号,并定义了它们的语义,而并不涉及如何进行系统建模。们的语义,而并不涉及如何进行系统建模。 19计算机科学导论计

14、算机科学导论7.3.3 软件复用和构件技术软件复用和构件技术 利用人们长期进行软件开发而积累的知识、经验、设利用人们长期进行软件开发而积累的知识、经验、设计方法、需求分析、设计、编码、测试、文档等,来计方法、需求分析、设计、编码、测试、文档等,来进行新的软件开发。复用对象可以包括整个软件开发进行新的软件开发。复用对象可以包括整个软件开发过程及其成果。过程及其成果。 构件构件(Component)是在软件系统设计中可以明确辨识是在软件系统设计中可以明确辨识的构成成分。而可复用构件的构成成分。而可复用构件(Reusable Component)是是指具有相对独立的功能和可复用价值的构件。指具有相对

15、独立的功能和可复用价值的构件。20计算机科学导论计算机科学导论7.4 软件质量评价和保证软件质量评价和保证 7.4.1 软件质量的定义软件质量的定义 (1) 与所确定的功能和性能需求的一致性与所确定的功能和性能需求的一致性 (2) 与所成文的开发标准的一致性与所成文的开发标准的一致性 (3) 与所有专业开发的软件所期望的隐含特性的一致性与所有专业开发的软件所期望的隐含特性的一致性21计算机科学导论计算机科学导论7.4.2 软件质量的度量和评价软件质量的度量和评价u影响软件质量的因素可以分为以下两大类:影响软件质量的因素可以分为以下两大类:(1)直接度量的因素,如单位时间内千行代码直接度量的因素

16、,如单位时间内千行代码(Thousands of Lines of Code,KLOC)中所产生的错误数。中所产生的错误数。(2) 间接度量的因素,如可用性或可维护性。间接度量的因素,如可用性或可维护性。22计算机科学导论计算机科学导论7.4.2 软件质量的度量和评价软件质量的度量和评价 设备独立性完整性准确性一致性设备效率可存取性通信性结构性准确性自描述性简洁性可扩充性可移植性可靠性效率环境工程可测试性可理解性可修改性易读性可使用性可维护性总能力可训练性可操作性可跟踪性完整性容错性准确性一致性执行效率复杂性安全性工具性可审计性可用性简明性产品操作产品修改可扩充性模块性自描述性通用性简洁性硬件

17、独立性软件独立性通信公用性数据公用性正确性可靠性效率完备性可维护性适应性可测试性可移植性可重用性互操作性产品适应Boehm软件质量度量模型McCall软件质量度量模型23计算机科学导论计算机科学导论7.4.3 软件质量保证软件质量保证u1.软件质量保证的含义软件质量保证的含义 质量保证就是向用户及社会提供满意的高质量的产品质量保证就是向用户及社会提供满意的高质量的产品,确保软件产品从诞生到消亡为止的所有阶段的质量,确保软件产品从诞生到消亡为止的所有阶段的质量活动,即确定、达到和维护需要的软件质量而进行的活动,即确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动。所有有计划、有系

18、统的管理活动。 u2.质量保证的策略质量保证的策略质量保证策略的发展大致可以分为质量保证策略的发展大致可以分为3个阶段:个阶段:(1) 以检测为主。以检测为主。(2) 以过程管理为主。以过程管理为主。(3) 以新产品开发为主。以新产品开发为主。24计算机科学导论计算机科学导论7.4.3 软件质量保证软件质量保证u3质量保证的主要任务质量保证的主要任务(1) 正确定义用户需求。正确定义用户需求。(2) 技术方法的应用。技术方法的应用。(3) 提高软件开发的工程能力。提高软件开发的工程能力。(4) 软件的复用。软件的复用。(5) 发挥每个开发人员的能力。发挥每个开发人员的能力。(6) 组织外部力量

19、协作。组织外部力量协作。(7) 排除无效劳动。排除无效劳动。(8) 提高计划和管理质量。提高计划和管理质量。25计算机科学导论计算机科学导论7.4.3 软件质量保证软件质量保证u4质量保证与检验质量保证与检验 软件质量必须在设计和实现过程中加以保证。在软软件质量必须在设计和实现过程中加以保证。在软件开发工程的各个阶段实施检验。检验的实施有实件开发工程的各个阶段实施检验。检验的实施有实际运行检验际运行检验(即白盒测试和黑盒测试即白盒测试和黑盒测试)和鉴定两种形和鉴定两种形式,可在各开发阶段中结合起来使用。式,可在各开发阶段中结合起来使用。26计算机科学导论计算机科学导论7.5 质量度量模型质量度

20、量模型 7.5.1 McCall 质量度量模型质量度量模型 u1面向软件产品运行面向软件产品运行(1) 正确性。软件满足设计说明及用户预期目标的程度正确性。软件满足设计说明及用户预期目标的程度(2) 可靠性。软件按照设计要求,在规定时间和条件下不可靠性。软件按照设计要求,在规定时间和条件下不出故障,持续运行的程度出故障,持续运行的程度(3) 效率。为了完成预定功能,软件系统所需的计算机资效率。为了完成预定功能,软件系统所需的计算机资源和程序代码数量的程度源和程序代码数量的程度(4) 完整性。对非授权者访问软件或数据行为的控制程度完整性。对非授权者访问软件或数据行为的控制程度(5) 可用性。用户

21、熟悉、使用及准备输入和解释输出所需可用性。用户熟悉、使用及准备输入和解释输出所需工作量的大小工作量的大小27计算机科学导论计算机科学导论7.5.1 McCall 质量度量模型质量度量模型u2面向软件产品修正面向软件产品修正(1) 可维护性。指找到并改正程序中的一可维护性。指找到并改正程序中的一个错误所需付出代价的程度。个错误所需付出代价的程度。(2) 可测试性。指测试软件以确保其能够可测试性。指测试软件以确保其能够执行预定功能所需工作量的程度。执行预定功能所需工作量的程度。(3) 适应性。指修改或改进一个已投入运适应性。指修改或改进一个已投入运行的软件所需工作量的程度。行的软件所需工作量的程度

22、。28计算机科学导论计算机科学导论u3面向软件产品转移面向软件产品转移 (1) 可移植性。指将一个软件系统从一个可移植性。指将一个软件系统从一个计算机系统或环境移植到另一个计算机系计算机系统或环境移植到另一个计算机系统或环境中运行时所需的工作量。统或环境中运行时所需的工作量。(2) 可复用性。指一个软件或软件的部件可复用性。指一个软件或软件的部件能再次用于其他相关应用的程度。能再次用于其他相关应用的程度。(3) 可互操作性。指将一个系统耦合到另可互操作性。指将一个系统耦合到另一个系统所需的工作量。一个系统所需的工作量。7.5.1 McCall 质量度量模型质量度量模型29计算机科学导论计算机科

23、学导论7.5.2 ISO的软件质量评价模型的软件质量评价模型 软件质量度量模型由软件质量度量模型由3层组成。层组成。 高层是软件质量需求评价准则高层是软件质量需求评价准则(SQRC); 中层是软件质量设计评价准则中层是软件质量设计评价准则(SQDC); 低层是软件质量度量评价准则低层是软件质量度量评价准则(SQMC)。30计算机科学导论计算机科学导论7.6 软件的复杂性软件的复杂性7.6.1 软件复杂性的基本概念软件复杂性的基本概念u软件复杂性度量的要素很多,主要有以下几种:软件复杂性度量的要素很多,主要有以下几种:(1) 规模:即总共的指令数,或源程序行数。规模:即总共的指令数,或源程序行数

24、。(2) 难度:通常由程序中出现的操作数的数目所决定的难度:通常由程序中出现的操作数的数目所决定的量来表示。量来表示。(3) 结构:通常用与程序结构有关的度量来表示。结构:通常用与程序结构有关的度量来表示。(4) 智能度:即算法的难易程度。智能度:即算法的难易程度。31计算机科学导论计算机科学导论7.6.1 软件复杂性的基本概念软件复杂性的基本概念u减少程序复杂性,可提高软件的简单性和可理减少程序复杂性,可提高软件的简单性和可理解性,并使软件开发费用减少,开发周期缩短解性,并使软件开发费用减少,开发周期缩短,软件内部潜藏错误减少。为了度量程序的复,软件内部潜藏错误减少。为了度量程序的复杂性,要

25、求复杂性度量满足以下假设:杂性,要求复杂性度量满足以下假设:(1) 它可以用来计算任何一个程序的复杂性。它可以用来计算任何一个程序的复杂性。(2) 对于不合理的程序,如对于长度动态增长的程序对于不合理的程序,如对于长度动态增长的程序,或者对于原则上无法排错的程序,不应当使用它,或者对于原则上无法排错的程序,不应当使用它进行复杂性计算。进行复杂性计算。(3) 如果程序中指令条数、附加存储量及计算时间增如果程序中指令条数、附加存储量及计算时间增多,不会减少程序的复杂性。多,不会减少程序的复杂性。32计算机科学导论计算机科学导论7.6.2 软件复杂性的度量方法软件复杂性的度量方法u(1)代码行度量法

26、代码行度量法 : 以源代码行数作为程序复杂性的度量以源代码行数作为程序复杂性的度量 。u(2) McCabe度量法度量法 : 又称环路度量,以图论为工具,先画出程序图,然后用该又称环路度量,以图论为工具,先画出程序图,然后用该图的环路数作为程序复杂性的度量值。图的环路数作为程序复杂性的度量值。 33计算机科学导论计算机科学导论7.7 软件项目管理软件项目管理 7.7.1 软件项目计划软件项目计划 目标是为项目负责人提供一个框架,使之能合理目标是为项目负责人提供一个框架,使之能合理地估算软件项目开发所需的资源、经费和开发进地估算软件项目开发所需的资源、经费和开发进度,并控制软件项目开发过程按此计

27、划进行。度,并控制软件项目开发过程按此计划进行。 34计算机科学导论计算机科学导论7.7.2 软件项目计划内容软件项目计划内容范围:范围:对该软件项目的综合描述,定义该项目所要对该软件项目的综合描述,定义该项目所要完成的工作以及性能限制,包括:项目目标;主要功完成的工作以及性能限制,包括:项目目标;主要功能;性能限制;系统接口;特殊要求;开发概述。能;性能限制;系统接口;特殊要求;开发概述。资源:资源:资源包括:人员资源;硬件资源;软件资源资源包括:人员资源;硬件资源;软件资源;其他。;其他。进度安排:进度安排:给出实施进度、资源使用表、成本估算给出实施进度、资源使用表、成本估算、培训计划等。

28、、培训计划等。35计算机科学导论计算机科学导论7.7.3 软件工程规范软件工程规范u软件工程规范可分为软件工程规范可分为3级:级:(1) 国际标准与国家标准;国际标准与国家标准;(2) 行业标准与工业部门标准;行业标准与工业部门标准;(3) 企业级标准与开发小组级标准。企业级标准与开发小组级标准。36计算机科学导论计算机科学导论7.7.4 软件开发成本估算软件开发成本估算u成本估算方法成本估算方法(1) 自上而下的估算方法。自上而下的估算方法。(2) 自下而上的估算方法。自下而上的估算方法。(3) 差别估算方法。差别估算方法。专家估算法、类推估算法、算式估算法等专家估算法、类推估算法、算式估算

29、法等。37计算机科学导论计算机科学导论7.7.5 风险分析风险分析风险分析对于软件项目管理是决定性风险分析对于软件项目管理是决定性的,然而现在还有很多软件项目不考的,然而现在还有很多软件项目不考虑风险就着手进行,有时这种做法可虑风险就着手进行,有时这种做法可能会导致灾难性的后果。能会导致灾难性的后果。38计算机科学导论计算机科学导论7.7.6 软件项目进度安排软件项目进度安排1软件开发任务的并行性软件开发任务的并行性2Gantt图图3工程网络图工程网络图39计算机科学导论计算机科学导论7.7.7 软件质量保证软件质量保证u软件质量保证是软件工程管理的重要内容,软件质量保证是软件工程管理的重要内

30、容,软件质量保证应作好以下几个方面的工作:软件质量保证应作好以下几个方面的工作:(1) 采用技术手段和工具。采用技术手段和工具。(2) 组织正式技术评审。组织正式技术评审。(3) 加强软件测试。加强软件测试。(4) 推行软件工程规范推行软件工程规范(标准标准)。(5) 对软件的变更进行控制。对软件的变更进行控制。(6) 对软件质量进行度量。对软件质量进行度量。40计算机科学导论计算机科学导论7.8 软件可靠性软件可靠性 7.8.1 软件可靠性定义软件可靠性定义一个程序按照用户的要求和设计的目标一个程序按照用户的要求和设计的目标,执行其功能的正确程度。,执行其功能的正确程度。一个可靠的程序应要求

31、是正确的、完整一个可靠的程序应要求是正确的、完整的、一致的和健壮的。的、一致的和健壮的。 41计算机科学导论计算机科学导论7.8.2 软件可靠性指标软件可靠性指标u(1) 平均失效等待时间平均失效等待时间MTTF假如对假如对n个相同的系统个相同的系统(硬件或者软件硬件或者软件)进行测试,它们进行测试,它们的失效时间分别是的失效时间分别是t1,t2,tn,则平均失效等待时间,则平均失效等待时间MTTF(Mean Time To Failure:MTTF)定义为:定义为:说明:平均失效等待时间说明:平均失效等待时间MTTF是失效率是失效率的倒数:的倒数:MTTF=1/。 其中,其中, 是由用户给出

32、的指标目标值。是由用户给出的指标目标值。u(2) 平均失效间隔时间平均失效间隔时间MTBF 指两次相继失效之间的平均时间。指两次相继失效之间的平均时间。 42计算机科学导论计算机科学导论7.8.3 软件可靠性模型软件可靠性模型u(1) 可靠性增长模型可靠性增长模型 硬件可靠性理论导出的模型,通过度量硬件的稳定硬件可靠性理论导出的模型,通过度量硬件的稳定可用程度,用其错误出现和纠正的速率来表示。可用程度,用其错误出现和纠正的速率来表示。 可靠性增长模型的基本思想是一个错误发现并改正可靠性增长模型的基本思想是一个错误发现并改正后,它的可靠性有一个定值的增长。后,它的可靠性有一个定值的增长。43计算

33、机科学导论计算机科学导论u(2) 基于程序内部特性的模型基于程序内部特性的模型 通过计算存在于软件中的错误的预计数通过计算存在于软件中的错误的预计数 ,衡,衡量软件的可靠性。量软件的可靠性。u(3) 植入模型植入模型 在软件中在软件中“植入植入”已知的错误,在历经一段已知的错误,在历经一段时间的测试之后时间的测试之后, 可以发现错误,并计算发可以发现错误,并计算发现的植入错误数与发现的实际错误数之比。现的植入错误数与发现的实际错误数之比。 7.8.3 软件可靠性模型软件可靠性模型44计算机科学导论计算机科学导论7.9 软件评审软件评审u在软件开发的各个阶段都要采用评审的方法在软件开发的各个阶段

34、都要采用评审的方法,以发现软件中的缺陷,然后加以改正。,以发现软件中的缺陷,然后加以改正。u主要包括:主要包括:(1) 设计的规格说明书要符合用户的要求。设计的规格说明书要符合用户的要求。(2) 程序要按照设计规格说明书所规定的情况程序要按照设计规格说明书所规定的情况正确执行。正确执行。45计算机科学导论计算机科学导论7.9.1 设计质量的评审内容设计质量的评审内容u评价软件的规格说明是否合乎用户的要求评价软件的规格说明是否合乎用户的要求u评审可靠性评审可靠性u评审保密措施实现情况评审保密措施实现情况u评审操作特性实施情况评审操作特性实施情况u评审性能实现情况评审性能实现情况u评审软件是否具有

35、可修改性、可扩充性、可互换性和评审软件是否具有可修改性、可扩充性、可互换性和可移植性可移植性u评审软件是否具有可测试性评审软件是否具有可测试性u评审软件是否具有复用性评审软件是否具有复用性46计算机科学导论计算机科学导论7.9.2 程序质量的评审内容程序质量的评审内容u程序质量评审通常是从开发人员的角度进行程序质量评审通常是从开发人员的角度进行评审,直接与开发技术有关,它着眼于软件评审,直接与开发技术有关,它着眼于软件本身的结构、与运行环境的接口、变更带来本身的结构、与运行环境的接口、变更带来的影响而进行的评审活动。的影响而进行的评审活动。47计算机科学导论计算机科学导论7.9.2 程序质量的

36、评审内容程序质量的评审内容u1软件的软件的结构结构功能功能结构结构功能的功能的通用性通用性模块的模块的层次层次模块结构模块结构处理过程的处理过程的结构结构u2与运行环境的与运行环境的接口接口与与硬件的硬件的接口接口与与用户的用户的接口接口48计算机科学导论计算机科学导论7.10 软件容错技术软件容错技术7.10.1 容错软件定义容错软件定义u归纳容错软件的定义,有以下归纳容错软件的定义,有以下4种:种: (1) 规定功能的软件,在一定程度上对自身错误的作用规定功能的软件,在一定程度上对自身错误的作用(软件错误软件错误)具有具有屏蔽能力,则称此软件为具有容错功能的软件,称之为容错软件。屏蔽能力,

37、则称此软件为具有容错功能的软件,称之为容错软件。 (2) 规定功能的软件,在一定程度上能从错误状态自动恢复到正常状规定功能的软件,在一定程度上能从错误状态自动恢复到正常状态,则称为容错软件。态,则称为容错软件。 (3) 规定功能的软件,发生错误时,仍然能在一定程度上完成预期的规定功能的软件,发生错误时,仍然能在一定程度上完成预期的功能,则称之为容错软件。功能,则称之为容错软件。 (4) 规定功能的软件,在一定程度上具有容错能力的软件,则称为容规定功能的软件,在一定程度上具有容错能力的软件,则称为容错软件。错软件。49计算机科学导论计算机科学导论7.10.2 容错的一般方法容错的一般方法1结构冗

38、余结构冗余2信息冗余信息冗余3时间冗余时间冗余4冗余附加技术冗余附加技术50计算机科学导论计算机科学导论7.10.3 容错软件的设计过程容错软件的设计过程u容错系统的设计过程包括以下设计步骤:容错系统的设计过程包括以下设计步骤:(1) 按设计任务要求进行常规设计,尽量保证设计的按设计任务要求进行常规设计,尽量保证设计的正确。正确。(2) 对可能出现的错误分类,确定实现容错的范围。对可能出现的错误分类,确定实现容错的范围。(3) 按照按照“成本成本效率效率”最优原则,选用某种冗余最优原则,选用某种冗余手段手段(结构、信息、时间结构、信息、时间)来实现对各类错误的屏蔽来实现对各类错误的屏蔽(4)

39、分析或验证上述冗余结构的容错效果。如果没有分析或验证上述冗余结构的容错效果。如果没有达到预期的效果,则应重新进行冗余结构设计。达到预期的效果,则应重新进行冗余结构设计。51计算机科学导论计算机科学导论7.11 软件工程环境软件工程环境7.11.1 软件开发环境软件开发环境u(1) 软件开发环境:软件开发环境: 在计算机的基本软件的基础上,为了支持在计算机的基本软件的基础上,为了支持软件的开发而提供的一组工具软件系统软件的开发而提供的一组工具软件系统 。u(2) 对软件开发环境的要求对软件开发环境的要求: 一体化一体化 、通用性、通用性 、适应性和灵活性、适应性和灵活性 、易使、易使用、经济高效

40、用、经济高效 。52计算机科学导论计算机科学导论7.11.2 软件开发环境的分类软件开发环境的分类u (1)按解决的问题分类按解决的问题分类 :程序设计环境程序设计环境 、系统合成环境、系统合成环境 、项目管理环境、项目管理环境u (2) 按软件开发环境的演变趋向分类按软件开发环境的演变趋向分类 : 以语言为中心的环境以语言为中心的环境 、工具箱环境、工具箱环境 、基于方法、基于方法的环境的环境u (3) 按集成化程度分类按集成化程度分类 : 第一代第一代 、第二代、第二代 、第三代、第三代53计算机科学导论计算机科学导论7.11.3 软件工具的基本概念软件工具的基本概念u1.软件工具软件工具 指为支持计算机软件的开发、维护、模拟、移植指为支持计算机软件的开发、维护、模拟、移植或管理而研制的程

温馨提示

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

评论

0/150

提交评论