软件工程7-1
软件工程(第四版)习题及解答1-7
为了解决软件危机,既要有技术措施(好的方法和工具),也要有组织管理措施。(1)使用好的软件开发技术和方法。(2)使用好的软件开发工具,提高软件生产率。(3)有良好的组织、严密的管理,各方面人员相互配合共同完成任务。
系统目标和范围说明书
1.项目名称:X航运公司机票预订系统。
2.背景:目前,由旅客人工到航运公司排队购票,费时、费力、管理工作量大、手续繁琐效率低,制约了公司业务的发展。
3.项目目标:建立一个网络化的机票预订系统。
4.项目范围:软件开发费用不超过X万元。
5.初步设想:建议在系统中完成安排航班、打印取票通知、打印票务账单、打印机票等主要功能。
2、1.审核系统的规模和目标2.分析研究现行系统3.设计新系统的高层逻辑模型4.获得并比较可行的方案5.撰写可行性研究报告。
3、(1)问题定义:航运公司机票预订系统问题定义
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - -
习题参考答案
第1章
一、判断题
1× 2 √ 3× 4√ 5× 6√ 7√ 8× 9√10×
二、选择题
1-5CADDD6-10ADAAD11-15AAADA
三、简答题
1、软件包括程序、数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能够正确地处理信息的数据结构;文档是与程序开发、维护和使用有关的图文资料。软件包括程序,程序只是软件的一部分。
《软件工程实用教程》第7_章_软件测试技术
第7 章 軟體測試技術
7.2.3 白盒測試方法 白盒測試也稱結構測試或邏輯驅動測試。在使 用白盒測試方案時,測試者必須檢查程式的 內部結構,從檢查程式的邏輯著手,對所有 邏輯路徑進行測試,得出測試數據。 開始 1 .邏輯覆蓋法:以程式內部的邏輯結構為基礎 的測試用例設計技術。 X=x/a a>1andb= 0 (1)語句覆蓋 X=x+1 A = 2 o r (2)判定覆蓋 x>1 (3)條件覆蓋 輸出a,b,x
第7 章 軟體測試技術
3.錯誤推測法
錯誤推測法是基於經驗和直覺推測程式中所 有可能存在的各種錯誤,從而有針對性的 設計測試用例的方法。
第7 章 軟體測試技術
4.因果圖方法 (1) 分析軟體規格說明描述中,哪些是原因(即輸入條件 或輸入條件的等價類 ),哪些是結果 (即輸出條件 ) , 並給每個原因和結果賦予一個識別字。 (2) 分析軟體規格說明描述中的語義,找出原因與結果之 間、原因與原因之間對應的關係,根據這些關係,畫 出因果圖。 (3) 由於語法或環境限制,有些原因與原因之間,原因與 結果之間的組合情況不可能出現。為表明這些特殊情 況,在因果圖上用一些記號表明約束或限制條件。 (4) 把因果圖轉換為判定表。 (5) 把判定表的每一列拿出來作為依據,設計測試用例
第7 章 軟體測試技術
7.1.2 軟體測試原則 1. 應早並不斷地進行測試 2. 程式員應盡可能避免檢查自己的程式 3. 測試用例應當包括合理的輸入條件和 不合理的輸入條件 4. 測試用例應包括輸入數據和預期的輸 出結果兩部分 5. 全面檢查每個測試結果 6. 嚴格按照測試計畫來測試 7. 充分注意測試中的集群現象 8. 注意遵守“經濟性”的原則
第7 章 軟體測試技術
3)根據規格說明的每個輸出條件,使用前面的原則 1)。 4)根據規格說明的每個輸出條件,應用前面的原則 2)。 5)如果程式的規格說明給出的輸入域或輸出域是有序集 合,則應選取集合的第一個元素和最後一個元素作 為測試用例。 6)如果程式中使用了一個內部數據結構,則應當選擇這 個內部數據結構的邊界上的值作為測試用例。 7)分析規格說明,找出其他可能的邊界條件。
软件工程7-史济民
• 系统元素包括组成系统的类、子系统与接口、包等。系统 元素设计是对每个设计元素进行详细设计。主要的设计内 容是:
• 类/对象设计; • 子系统设计; • 包设计。
模式的应用
• 提倡在OOD中充分应用设计模式。 • 模式的定义
• 模式是解决某一类问题的方法论,也是对通用问题 的通用解决方案。
① 确定任务的特征。 ② 定义一个协调者任务和与之关联的对象。 ③ 集成其他任务和协调者。
• 任务管理部件的设计一般遵循如下的步骤 与策略:
① 识别由事件驱动和时间驱动的任务。
② 识别关键性任务、任务优先级以及任务管理 类。任务管理类是为了实现而引入的专门用 于管理和协调其他任务的任务。
③ 定义任务。说明任务的名称、功能、优先级 任务与其他任务的通信方式。
属性、操作、协作 者
类/对象 模型
用例 模型
对象关系模型
对象-行为模型
责任设计
消息设计 类及对象设计 系统架构设计
面向对象设计的任务
• OOD的软件设计可划分为两个层次,即系统架构 设计和系统元素设计。设计过程是循环渐进的。
1. 系统架构设计
• 软件系统架构是指系统主要组成元素的组织或结构,以及 其他全局性决策,组成元素之间通过接口进行交互。系统 架构包含关于软件系统组织的许多重要决定。
<<Interface>>
ICourseCatalogSystem
0..*
1 (from External System Interfaces)
4、分布式实现机制
• 为实现分布式结构,需完成以下工作。 1. 确定网络拓扑配置 2. 将设计元素分配到网络节点
• 节点容量(指内存量和处理能力) • 通信介质带宽(总线、LAN、WAN) • 硬件与通信链路的可用性、重选路由 • 对冗余与容错能力的要求 • 响应时间要求 • 吞吐量要求
软件工程-面向对象分析
第7章面向对象分析•7.1.1 面向对象分析过程面向对象的分析主要以用例模型为基础。
开发人员在收集到的原始需求的基础上,通过构建用例模型从而得到系统的需求。
进而再通过对用例模型的完善,使得需求得到改善。
所谓用例是指系统中的一个功能单元,可以描述为参与者与系统之间的一次交互。
用例常被用来收集用户的需求。
①首先要找到系统的操作者,即用例的参与者。
参与者是在系统之外,透过系统边界与系统进行有意义交互的任何事物。
②可以把参与者执行的每一个系统功能都看作一个用例。
可以说,用例描述了系统的功能,涉及系统为了实现一个功能目标而关联的参与者、对象和行为。
③确定了系统的所有用例之后,就可以开始识别目标系统中的对象和类了。
把具有相似属性和操作的对象定义为一个类。
边界类示意图控制类示意图目标系统的类可以划分为边界类、控制类和实体类。
Ø边界类代表了系统及其操参与者的边界,描述参与者与系统之间的交互。
它更加关注系统的职责,而不是实现职责的具体细节。
通常,界面控制类、系统和设备接口类都属于边界类。
Ø控制类代表了系统的逻辑控制,描述一个用例所具有的事件流的控制行为,实现对用例行为的封装。
通常,可以为每个用例定义一个控制类。
Ø实体类描述了系统中必须存储的信息及相关的行为,通常对应于现实世界中的事物。
确定了系统的类和对象之后,就可以分析类之间的关系了。
对象或类之间的关系有依赖、关联、聚合、组合、泛化和实现。
①依赖关系是“非结构化”的和短暂的关系,表明某个对象会影响另外一个对象的行为或服务。
②关联关系是“结构化”的关系,描述对象之间的连接。
③聚合关系和组合关系是特殊的关联关系,它们强调整体和部分之间的从属性,组合是聚合的一种形式,组合关系对应的整体和部分具有很强的归属关系和一致的生命期。
比如,计算机和显示器就属于聚合关系。
④泛化关系与类间的继承类似。
⑤实现关系是针对类与接口的关系。
明确了对象、类和类之间的层次关系之后,需要进一步识别出对象之间的动态交互行为,即系统响应外部事件或操作的工作过程。
软件工程考核知识点-第7章-软件测试
软件工程考核知识点-第7章-软件测试7.1 软件测试的目的及原则7.1.1 软件测试的目的(1)软件测试是为了发现错误而执行程序的过程。
(2)一个好的测试用例能够发现至今尚未发现的错误。
(3)一个成功的测试是发现了至今尚未发现的错误的测试。
因此,测试阶段的基本任务应该是根据软件开发各阶段的文档资料和程序的内部结构,精心设计一组“高产”的测试用例,利用这些实例执行程序,找出软件中潜在的各种错误和缺陷。
7.1.2软件测试的原则在软件测试中,应注意以下原则:(1)测试用例应由输入数据和预期的输出数据两部分组成。
这样便于对照检查,做到"有的放矢"。
(2)测试用例不仅选用合理的输入数据,还要选择不合理的输入数据。
这样能更多地发现错误,提高程序地可靠性。
对于不合理地输入数据,程序应拒绝接受,并给出相应提示。
(3)除了检查程序是否做了它应该做的事,还应该检查程序是否做了它不应该做的事。
例如程序正确打印出用户所需信息的同时还打印出用户并不需要的多余的信息。
(4)应制定测试计划并严格执行,排除随意性。
(5)长期保留测试用例。
测试用例的设计耗费很大的工作量,必须作为文档保存。
因为修改后的程序可能有新的错误,需要进行回归测试。
同时,为以后的维护提供方便。
(6)对发现错误较多的程序段,应进行更深入的测试。
有统计数字表明,一段程序中所发现的错误数越多,其中存在的错误概率也越大。
因为发现错误数多的程序段,其质量较差。
同时在修改错误过程中又容易引入新的错误。
(7)程序员避免测试自己的程序。
测试是一种"挑剔性"的行为,心理状态是测试自己程序的障碍。
另外,对需求规格说明的理解而引入的错误则更难发现。
因此应由别的人或另外的机构来测试程序员编写的程序会更客观,更有效。
7.2 测试方法软件测试方法一般分为两大类:动态测试方法与静态测试方法,而动态测试方法中又根据测试用例的设计方法不同,分为黑盒测试与白盒测试两类。
计算机软件工程国家标准目录明细
DZ/T 0169-1997 物探化探计算机软件开发规范1997-11-1GA 560-2005 互联网上网服务营业场所信息安全管理系统营业场所端与营业场所经营管理系统接口技术要求2006-1-1GA 662-2006 互联网公共上网服务场所信息安全管理系统上网服务场所端接口技术要求2007-1-1GA 663-2006 互联网公共上网服务场所信息安全管理系统远程通讯端接口技术要求2007-1-1GB/T 11457-1995 软件工程术语1995-1-2 ↓已被下行标准取代GB/T 11457-2006 信息技术软件工程术语2006-7-1 现行GB/T 12504-1990 计算机软件质量保证计划规范1991-7-1 已作废GB/T 12505-1990 计算机软件配置管理计划规范1991-7-1 已作废GB/T 13400.1-1992 网络计划技术常用术语1992-1-2 现行GB/T 13400.2-1992 网络计划技术网络图画法的一般规定1992-1-2 ↓已被下行标准取代GB/T 13400.2-2009 网络计划技术第2部分:网络图画法的一般规定2009-11-1 现行GB/T 13400.3-1992 网络计划技术在项目计划管理中应用的一般程序1992-1-2 ↓已被下行标准取代GB/T 13400.3-2009 网络计划技术第3部分:在项目管理中应用的一般程序2009-11-1 现行GB/T 13502-1992 信息处理程序构造及其表示的约定 1993-5-1 现行GB/T 14079-1993 软件维护指南1993-8-1 已作废GB/T 14085-1993 信息处理系统计算机系统配置图符号及约定1993-8-1 现行GB/T 14246.1-1993 信息技术可移植操作系统界面第1部分:系统应用程序界面(POSIX.1) 1993-12-1 现行GB/T 14394-1993 计算机软件可靠性和可维护性1994-1-1 ↓已被下行标准取代GB/T 14394-2008 计算机软件可靠性和可维护性管理 2008-12-01 现行GB/T 15532-1995 计算机软件单元测试1995-1-2 ↓已被下行标准取代GB/T 15532-2008 计算机软件测试规范2008-9-1 现行GB/T 15534-1995 信息处理系统数据库语言NDL 1995-12-1 已作废GB/T 15538-1995 软件工程标准分类法1995-1-2 已作废GB/T 15853-1995 软件支持环境1996-8-1 已作废GB/T 15936.4-1996 信息处理文本与办公系统办公文件体系结构(ODA)和交换格式第四部分:文件轮廓1996-10-1 现行GB/T 16260 -1996 信息技术软件产品评价质量特性及其使用指南1996-10-1 ↓已被下行标准取代GB/T 16260.1-2006 软件工程产品质量第1部分:质量模型2006-7-1 现行GB/T 16260.2-2006 软件工程产品质量第2部分:外部度量2006-7-1 现行GB/T 16260.3-2006 软件工程产品质量第3部分:内部度量2006-7-1 现行GB/T 16260.4-2006 软件工程产品质量第4部分:使用质量的度量2006-7-1 现行GB/T 16647-1996 信息技术信息资源词典系统(IRDS)框架1997-7-1 现行GB/T 16680-1996 软件文档管理指南1997-7-1 现行GB/T 16682.1-1996 信息技术国际标准化轮廓的框架和分类方法第1部分:框架1997-7-1 现行GB/T 16682.2-1996 信息技术国际标准化轮廓的框架和分类方法第2部分:OSI轮廓用的原则和分类方法1997-7-1 现行GB/T 16684-1996 信息技术信息交换用数据描述文卷规范1997-7-1 现行GB/T 17544-1998 信息技术软件包质量要求和测试1999-6-1 现行GB/T 17917-1999 商场管理信息系统基本功能要求2000-4-1 ↓已被下行标准取代GB/T 17917-2008 零售企业管理信息系统基本功能要求2009-6-1 现行GB/T 18234-2000 信息技术CASE工具的评价与选择指南2001-8-1 现行GB/T 18491.1-2001 信息技术软件测量功能规模测量第1部分:概念定义2002-6-1 现行GB/T 18492-2001 信息技术系统及软件完整性级别2002-6-1 现行GB/T 18714.1-2002 信息技术开放分布式处理参考模型第1部分:概述2002-10-1 现行GB/T 18714.2-2002 信息技术开放分布式处理参考模型第2部分:基本概念2002-10-1 现行GB/T 18714.3-2003 信息技术开放分布式处理参考模型第3部分:体系结构2004-8-1 现行GB/T 18905.1-2002 软件工程产品评价第1部分: 概述2003-5-1 现行GB/T 18905.2-2002 软件工程产品评价第2部分: 策划和管理2003-5-1 现行GB/T 18905.3-2002 软件工程产品评价第3部分: 开发者用的过程2003-5-1 现行GB/T 18905.4-2002 软件工程产品评价第4部分: 需方用的过程2003-5-1 现行GB/T 18905.5-2002 软件工程产品评价第5部分: 评价者用的过程2003-5-1 现行GB/T 18905.6-2002 软件工程产品评价第6部分: 评价模块的文档编制2003-5-1 现行GB/T 20157-2006 信息技术软件维护2006-7-1 现行GB/T 20158-2006 信息技术软件生存周期过程配置管理2006-7-1 现行GB/T 20917-2007 软件工程软件测量过程2007-7-1 现行GB/T 20918-2007 信息技术软件生存周期过程风险管理2007-7-1 现行GB/T 8566-1988 计算机软件开发规范1988-12-1 ↓已被下行标准取代GB/T 8566-1995 信息技术软件生存期过程1995-12-1 ↓已被下行标准取代GB/T 8566-2001 信息技术软件生存周期过程2002-6-1 ↓已被下行标准取代GB/T 8566-2007 信息技术软件生存周期过程2007-7-1 现行GB/T 8567-1988 计算机软件产品开发文件编制指南1988-7-1 ↓已被下行标准取代GB/T 8567-2006 计算机软件文档编制规范2006-7-1 现行GB/T 9385-1988 计算机软件需求说明编制指南1988-1-2 ↓已被下行标准取代GB/T 9385-2008 计算机软件需求规格说明规范2008-9-1 现行GB/T 9386-1988 计算机软件测试文件编制规范1988-12-1 ↓已被下行标准取代GB/T 9386-2008 计算机软件测试文件编制规范2008-9-1 现行GB/Z 18493-2001 信息技术软件生存周期过程指南2002-6-1 现行GB/Z 18914-2002 信息技术软件工程CASE工具的采用指南2003-5-1 现行GB/Z 20156-2006 软件工程软件生存周期过程用于项目管理的指南2006-7-1 现行GJB 437-1988 军用软件开发规范1988-6-1GJB 438A-1997 武器系统软件开发文档1998-5-1GJB 1419-1992 军用计算机软件摘要1993-3-1HB 6464-1990 软件开发规范1991-2-1 已作废HB 6465-1990 软件文档编制规范1991-2-1 已作废HB 6466-1990 软件质量保证计划编制规定1991-2-1 已作废HB 6467-1990 软件配置管理计划编制规定1991-2-1 已作废HB 6468-1990 软件需求分析阶段基本要求1991-2-1 已作废HB 6469-1990 软件需求规格说明编制规定1991-2-1HB/Z 177-1990 软件项目管理基本要求1991-2-1HB/Z 178-1990 软件验收基本要求1991-2-1HB/Z 179-1990 软件维护基本要求1991-2-1HB/Z 180-1990 软件质量特性与评价方法1991-2-1HB/Z 182-1990 状态机软件开发方法1991-2-1MH/T 0019-1999 中国民用航空总局管理信息系统基础信息规范2000-3-1SB/T 10264-1996 餐饮业计算机管理软件开发设计基本规范 1996-10-1SB/T 10265-1996 饭店业计算机管理软件开发设计基本规范 1996-10-1SJ 20681-1998 地空导弹指挥自动化系统软件模块通用规范1998-5-1SJ 20822-2002 信息技术软件维护2003-3-1SJ 20823-2002 信息技术软件生存周期过程配置管理2003-3-1SJ/T 11234-2001 软件过程能力评估模型2001-5-1SJ/T 11235-2001 软件能力成熟度模型2001-5-1SJ/T 11290-2003 面向对象的软件系统建模规范第1部分:概念与表示法2003-10-1SJ/T 11291-2003 面向对象的软件系统建模规范第3部分:文档编制2003-10-1SJ/Z 11289-2003 面向对象领域工程指南2003-10-1YDN 138-2006 基于PC终端的互联网内容过滤软件技术要求2006-8-16YDN 139-2006 基于PC终端的互联网内容过滤软件测试方法2006-8-16。
软件工程课程设计-7-配置手册
新生入学管理信息系统配置手册拟制人审核人批准人XX年XX月XX日目录1 VC对运行环境的要求 (1)1.1对硬件环境的要求 (1)1.2对软件环境的要求 (1)2 数据库系统 (3)3 对操作系统的要求 (6)1 VC对运行环境的要求vc对运行环境的要求包括三部分:硬件环境、软件环境和操作系统。
1.1 对硬件环境的要求当前主流计算机的配置完全可以满足VC的开发,较大的内存和CPU有利于提高运行效率。
表1.1列出了硬件要求的最低配置。
表1.1 vc环境硬件要求硬件要求CPU 使用586以上的处理器内存64MB以上硬盘500MB以上其他网卡等互联网设备1.2 对软件环境的要求软件系统开发需要VC程序和Access数据库系统。
VCVC++是微软公司开发的一个IDE(集成开发环境),换句话说,就是使用c+ +的一个开发平台.有些软件就是这个编出来的...另外还有VB,VF.只是使用不同语言...但是,VC++是Windows平台上的C++编程环境,学习VC要了解很多Windo ws平台的特性并且还要掌握MFC、ATL、COM等的知识,难度比较大。
W indows下编程需要了解Windows的消息机制以及回调(callback)函数的原理;MFC是Win32API的包装类,需要理解文档视图类的结构,窗口类的结构,消息流向等等;COM是代码共享的二进制标准,需要掌握其基本原理等等。
c++的安装作为visual studio的一个组件,可以通过安装visual studio来获得VC作为一个主流的开发平台一直深受编程爱好者的喜爱,但是很多人却对它的入门感到难于上青天,究其原因主要是大家对他错误的认识造成的,严格的来说VC++不是门语言,虽然它和C++之间有密切的关系,如果形象点比喻的话,可以把C++看作为一种“工业标准”,而VC++则是某种操作系统平台下的“厂商标准”,而“厂商标准”是在遵循“工业标准”的前提下扩展而来的。
软件工程(第四版)习题及解答1-7
软件工程(第四版)习题及解答1-7软件工程(第四版)习题及解答1-7软件工程一直是信息技术领域中一门重要的学科,它涉及到软件设计、开发、测试和维护等多个方面。
对于学习软件工程的学生来说,练习和解答一些相关习题是非常重要的。
本文将为大家提供《软件工程(第四版)》中的习题1-7的解答和详细讨论。
1. 习题1题目描述:什么是软件工程?为什么软件工程如此重要?解答:软件工程是一门学科,涵盖了软件开发的所有阶段,包括需求分析、软件设计、编码、测试和维护等。
软件工程关注如何以系统化的、规范的方法来开发高质量的软件。
软件工程之所以如此重要,原因有以下几点:首先,软件工程能够提供一个结构化的方法来开发软件,保证开发流程可控、可预测。
通过规范的过程和方法,可以减少软件开发过程中的风险和错误。
其次,软件工程将软件开发过程分解为不同的阶段,并引入了各种工具和技术来支持这些阶段的开发工作。
这些工具和技术能够提高开发效率,减少开发成本。
此外,软件工程还注重软件质量管理,包括软件测试、验证和验证等方面,以确保最终交付给用户的软件是高质量可靠的。
最后,软件工程也关注软件的维护和更新。
由于软件在使用过程中会面临各种问题和需求变化,软件工程可以帮助开发人员及时响应和解决这些问题,提供更好的用户体验。
2. 习题2题目描述:简要解释软件需求分析的目标和过程。
解答:软件需求分析的目标是识别和规范用户对软件系统的需求,确保开发人员和用户对软件系统的期望一致,并将这些需求转化为可行的系统规格说明。
软件需求分析的过程包括以下几个步骤:1) 需求收集:通过与用户沟通、调研等方式,收集用户对软件系统的需求。
可以采用面谈、问卷调查、观察等方法。
2) 需求分析和整理:对收集到的需求进行分析和整理,将其转化为可理解的形式。
可以使用需求建模工具和技术,如用例图、数据流图等。
3) 需求规格说明:在此阶段,将需求转化为详细的规格说明,包括功能需求、性能需求、质量需求等。
软件工程_第七章_面向数据流的设计方法
第七章面向数据流的设计方法面向数据流的设计方法,即通常所说的结构设计法(简称SD方法),是根据需求阶段对数据流的分析(一般用数据流图和数据字典表示)设计软件结构。
数据流图主要描绘信息在系统内部加工和流动的情况,面向数据流的设计方法根据数据流图的特性定义两种“映射”,这两种映射能机械地将数据流图转换为程序结构。
该方法的目标是为软件结构设计提供一个系统化的途径,使设计人员对软件有一个整体的认识。
本章所述技术用于软件的概要设计描述,包括模块、界面和数据结构的定义,这是所有后续开发工作的基础。
每种软件设计方法都有长处和不足,先用哪种方法首先应考虑它适用的范围。
任何软件系统都可以用数据流图表示,理论上,面向数据流的设计方法可用于任一种软件系统的开发。
然而,该方法对那些顺序处理信息且不含层次数据结构的系统最为有效,例如过程控制、复杂的数值分析过程、以及科学与工程方面的应用,等等。
当SD方法用于完全的数据处理时,即使系统中作用层次数据也同样行之有效。
从系统设计的角度出发,软件设计方法可以分为三大类。
第一类是根据系统的数据流进行设计,称为面向数据流的设计或者过程驱动的设计,以结构化设计方法为代表。
第二类是根据系统的数据结构进行设计,称为面向数据结构的设计或者数据驱动的设计,以LCP(程序逻辑构造)方法、Jackson 系统开发方法和数据结构化系统开发(DSSD)方法为代表。
第三类设计方法即面向对象的设计。
第一节基本概念和设计过程面向数据流设计方法是基于模块化、自顶向下细化、结构化程序设计等程序设计技术基础上发展起来的。
该方法实施的要点是:①建立数据流的类型。
②指明流的边界。
③将数据流图映射到程序结构。
④用“因子化”方法定义控制的层次结构。
⑤用设计测量和一些启发式规则对结构进行细化。
一、在系统结构图(SC)中的模块在系统结构图中不能再分解的底层模块为原子模块。
如果一个软件系统的全部实际加工(数据计算或处理)都由底层的原子模块来完成,而其他所有非原子模块仅仅执行控制或协调功能,这样的系统就是完全因子分解的系统。
软件工程(第六版)
2018年大连理工大学出版社出版的图书
01 成书过程
03 教材目录 05 教材特色
目录
02 内容简介 04 教学资源 06 作者简介
《软件工程(第六版)》是高树芳主编,2018年7月由大连理工大学出版社出版的高职高专类课程规划教材, 是“十二五”职业教育国家规划教材、高职高专计算机教指委优秀教材,也是新世纪高职高专教材编审委员会组 编的软件专业系列规划教材之一,该书可作为高职高专计算机专业教材,也可供从事计算机软件开发及应用的广 大科技人员做参考。
2.该书以设计、开发一个与“瑞天图书管理系统”功能相似的、规模较小的图书管理系统作为教学项目,并 将此教学项目分为若干教学任务,贯穿教材前9章。
作者简介
高树芳:福建农林大学资源与环境学院副教授。
谢谢观看
该书由石家庄邮电职业技术学院高树芳任主编,由陕西国防工业职业技术学院陈巧莉、中国邮政集团公司石 家庄市分公司汪海智、石家庄邮电职业技术学院张昱和陈建群、四川信息职业技术学院周建儒任副主编。具体编 写分工为:高树芳编写第1~3章;张昱编写第4~5章;陈巧莉编写第6~7章;周建儒编写第8章;陈建群编写第 9~10章和第11章前5节;汪海智编写第11章后面内容。
该书分为11章,第1章是软件工程概述;第2~5章分别介绍软件项目计划、需求分析、概要设计、详细设计; 第6~7章介绍面向对象概念和Rose建模技术以及面向对象的分析与设计;第8~10章介绍编码、软件测试与软件 维护;第11章介绍软件项目管理。
成书过程
《软件工程(第六版)》按照典型的软件开发过程,把握高职高专学生的专业知识背景与接受能力,以案例 为主来组织教材内容;对传统软件工程内容采取了简洁化、提纲式编写策略,删除了陈旧内容、弱化了过于深奥 且应用性不强的理论知识,并用图形取代文字描述,提高了教材的“视觉化”;重新编写了面向对象软件工程内 容;增加了Visio、Rose等软件工程建模工具内容,提高了教材的实践性。
软件工程导论(第六版)部分课后习题答案
1-1 什么是软件危机?是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
1-3 什么是软件工程?是指导计算机软件开发和维护的一门工程学科。
1-4 简述结构化型和面向对象型的要点,并分析它们的优缺点。
目前使用得最广泛的软件工程方法学( 2种):1. 传统方法学:也称为生命周期方法学或结构化型。
优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。
缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。
2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。
1-6 什么是软件过程?它与软件工程方法学有何关系?z 软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤z 软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称型1-7 什么是软件生命周期模型,试比较瀑布模型,快速原型模型,增量模型,和螺旋模型的优缺点,说明每种模型的适用围。
软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。
生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。
瀑布模型的优点:1.可强迫开发人员采用规的方法; 2.严格规定了每个阶段必须提交的文档;3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
瀑布模型的缺点: 1.在软件开发初期,指明用户全部需求是困难的; 2.需求确定后,经过一段时间才得到软件最初版本; 3.完全依赖规格说明,导致不能满足用户需求。
适用中小型项目。
快速原型模型的优点:1满足用户需求程度高;2用户的参与面广;3返工现象少快速原型模型的优点:不适用大型软件的开发适用于小型项目。
软件工程第7章习题
5. 软件测试用例主要由输入数据和( 成 A 测试计划 C 预期输出结果 B 测试规则
)两部分组
D 以往测试记录分析 答案: C )
6. 成功的测试是指运行测试用例后( A 未发现程序错误 C 证明程序正确
B 发现了程序错误 D 改正了程序错误 答案: B
7. 下列几种逻辑覆盖标准中, 查错能力最强的是( 答案: D
8. 在黑盒测试中, 着重检查输入条件组合的方法是 ( ) A 等价类划分法 C 错误推测法 B 边界值分析法 D 因果图法 )
)
A 语句覆盖 B 判定覆盖 C 条件覆盖 D 条件组合覆盖
答案: D 9. 软件测试过程中的集成测试主要是为了发现( 阶段的错误 A 需求分析 B 概要设计 C 详细设计 D 编码 答案: B
4. 在单元测试时, 需要为被测试模块设计( 答案: 驱动模块与桩模块 5. 在集成测试时有两种测试方法, 它们是( 答案: 渐增式和非渐增式 6. 软件测试是为了( )而执行程序的过程 )
)
答案: 发现错误 7. 运行被测试程序的方法称为( 答案: 动态 )测试
8. 动态测试中, 主要测试软件功能的方法称为( 答案: 黑盒
12. 集成测试中的具体方法是(
)
答案: 渐增式和非渐增式测试方法 二. 选择题 1. 软件测试中, 白盒法是通过分析程序的( 设计测试用例的 A 应用范围 B 内部逻辑 C 功能 答案: B 2 . 黑盒法是根据程序的( A 应用范围 B 内部逻辑 ) 来设计测试用例的 C 功能 D 输入数据 )来
D 输入数据
答案: C
3. 为了提高软件测试的效率, 应该(
A 随机地选取测试数据 B 取一切可能的输入数据作为测试数据 C 在完成编码以后制定软件的测试计划
软件工程-答案
系考班级生答题姓名不得学过号此线竖写《软件工程》参考答案一、1C、2B、3B、4D、5D、6B、7C、8C、9A、10C11C、12C、13B、14C、15B、16C、17B、18C、19C、20D二、填空题(每空1分,共10分)1. 数据。
2. 数据处理。
3. 软件需求。
4. 事物型系统结构图。
5. 确认(系统)、系统(确认)。
6. 容错功能。
7. 特性。
8. 可移植性(效率)、效率(可移植性)。
三、判断题1、 3、5、6、7、82、 3、4、6、7、8四、名词解释1.软件工程:开发、运行、维护和修复软件的系统方法。
2.等价类:等价类是指某个输入域的子集合。
在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。
3.模块独立性:是指软件系统中每个模块只涉及要求的子功能,而和软件系统中其他的模块的接口是简单的。
4.软件的可靠性:是软件在给定的时间间隔及给定的环境条件下,按设计的要求,成功地运行程序的概率。
5.原型化方法:是软件开发方法的一种。
在软件分析人员获得一组基本需求说明后,通过快速分析构造出一个小型的软件系统,满足用户的基本需求。
通过用户对基本系统试用,征得用户得意见和建议,然后对软件系统进行完善和修改。
通过不断地构造原型,直到满足用户得要求,得到最终得产品。
五、简答题1.什么是软件生存期?依据软件生存期,开发一个软件需要那些步骤?。
软件生存期是软件从制定计划、需求分析、软件设计、程序编码、测试、运行、维护直到退役的生存过程。
依据软件生存期,开发一个软件需要如下步骤:制定计划需求分析和定义软件设计程序编码软件测试运行/维护2.软件开发前要进行可行性论证分析,具体分析那些内容。
经济可行性技术可行性法律可行性抉择3.软件维护的类型有那些?简述其含义。
改正性维护:识别、纠正软件中隐藏的错误。
适应性维护:为了使软件适应环境的变化而修改软件的过程。
完善性维护:为了满足用户的新的功能、性能要求而修改软件的过程。
软件工程 第7章--面向对象设计
§1. OOD准则
5、Cohesion:模块内各个元素彼此结合的紧密程度。 服务内聚(service cohesion):一个服务只完成一个功能。
类内聚(class cohesion):一个类只有一个用途,否则分 解之。
一般-特殊内聚(general-particular cohesion):
17
类构件
类构件:面向对象技术中的“类” 。类构件有3种 重用方式:
–实例重用 –继承重用 –多态重用 1. 可重用类构件应具备的特点 (1) 模块独立性强。具有单一、完整的功能,且经 过反复测试被确认是正确的。是一个不受或很少受 外界干扰的封装体,其内部实现在外面是不可见的。
18
(2) 具有高度可塑性。软构件的应用环境比集成电 路更广阔、更复杂。显然,要求一个软构件能满足 任何一个系统的设计需求是不现实的。因此,可重 用的软构件必须具有高度可裁剪性,必须提供为适 应特定需求而扩充或修改已有构件的机制,而且所 提供的机制必须使用起来非常简单方便。
对象 设计
面向对 象分析
人机界 面设计
任务管 理设计
数据管 理设计
4
§1. OOD准则
§1. OOD准则:优秀软件设计的一个重要特点是 容易维护
回顾:SD准则包括
Modularization Information hiding
Abstraction
Module independence
对于 OOD有类似的准则: 1、Module = Object
• Inheritance —— 无须改动原有代码
13
② 设计重用 —— 当移植系统时
§3. 软件重用
③ 分析重用 —— 当需求未变,而系统结构改变 时(例如将HDIS改为OO实现)
《软件工程》教学课件CH7-1面向对象的概念
面向对象分析与设计的建模
软件开发需要把问题解决模型化。 模型化是理解一个复杂系统的工具; 模型是系统早期抽象的重要结构; 常用的面向对象分析与设计模型 Rumbaugh 等人的 OMT 模型 Coad 和 Yourdon 的模型 Booch 开发模型 UML 统一建模语言
面向对象的特点
抽象性:对象的数据抽象和行为抽象; 封装性:信息隐蔽; 共享性: 同一类中所有实例共享数据结构和行为特征; 同一应用中所有实例通过继承共享数据结构和 行为特征; 不同应用中所有实例通过复用共享数据结构和 行为特征
对象
对象是系统中用来描述客观事物的一个实体,是 构成系统的一个基本单位,由一组属性和一组对 属性进行操作的服务组成。 属性一般只能通过执行对象的操作来改变。
2)
a.
b.
c.
3)
a. b.
活动定义了工作人员所执行的工作。有 3 类 步骤: 思考步骤 执行步骤 评审步骤 制品是过程生产、修改或使用的一种信息。 RUP 的制品分为 5 个信息集。 管理集:计划制品、操作制品 需求集:构想文档、项目相关人员需求、 用例模型和业务模型
c.
d.
e.
4)
设计集:设计模型、软件体系结构描述、 测试模型 实现集:源代码和可执行程序、相关数据 结构和数据文档 实施集:安装资料、用户文档、培训材料 工作流用来描述生成结果的活动序列,用以 描述工作人员之间的交互。在 RUP 中共有 9 个核心过程工作流,包括 6 个核心工程工作 流和 3 个核心支持工作流。
用例和参与者的事例 银行储户通过自动取款机(自动柜员机)提款, 转账或检查账户余额。用一组用例表达如下:
软件工程(第四版)习题及解答9-8
第1章
一、判断题
1× 2 √ 3× 4√ 5× 6√ 7√ 8× 9√10×
二、选择题
1-5CADDD6-10ADAAD11-15AAADA
三、简答题
1、软件包括程序、数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能够正确地处理信息的数据结构;文档是与程序开发、维护和使用有关的图文资料。软件包括程序,程序只是软件的一部分。
1、
“学生管理系统”的顶层图案={学号+姓名+性别+年龄+专业+班级}
成绩库=学号+课程号+分数
课程库=课程号+课程名+学分
学生信息=学号+姓名+性别+年龄+专业+班级
考试成绩=学号+课程号+分数
学号=”00001”...”99999”
姓名=2{汉字}4
系统目标和范围说明书
1.项目名称:X航运公司机票预订系统。
2.背景:目前,由旅客人工到航运公司排队购票,费时、费力、管理工作量大、手续繁琐效率低,制约了公司业务的发展。
3.项目目标:建立一个网络化的机票预订系统。
4.项目范围:软件开发费用不超过X万元。
5.初步设想:建议在系统中完成安排航班、打印取票通知、打印票务账单、打印机票等主要功能。
(3)系统流程图
第3章
一、判断题
1√ 2 × 3√ 4 × 5√ 6× 7× 8√
二、选择题
1-5 BACDB 6-10 ABDAA 11-15 BABDB 16-20 ADCDB
三、简答题
1、需求分析的基本任务是要准确地理解旧系统、定义新系统的目标,为了满足用户需要,回答“系统必须做什么”的问题,即确定系统必须完成哪些工作,对新系统提出完整、准确、清晰、具体的要求。
南京理工大学软件工程习题7
【7-1】关于软件产品来讲,有4个方面阻碍着产品的质量,即( A )、( B )、( C )及本钱、时刻和进度等条件。
重视软件进程的质量是最近几年来质量治理理论和实践的新进展。
重视软件进程质量的操纵,其部份缘故可能是:相关于产品质量的操纵来讲,进程质量的操纵是( D )、( E )、( F ),而产品质量的操纵是( G )、( H )、( I )。
供选择的答案: A C. ① 开发时刻 ② 开发技术③ 进程质量 ④ 风险操纵 ⑤ 质量操纵 ⑥ 人员素养 ⑦ 项目治理⑧ 配置治理 D I. ① 主动的② 被动的 ③ 整体的 ④ 系统的 ⑤ 先期的 ⑥ 事后的 ⑦ 个别的 ⑧ 部份的【7-2】McCall 提出了说明软件质量的11个质量特性。
它们是( A )、( B )、( C )、( D )、( E )、( F )、( G )、( H )、效率、可测试性和互连性。
咱们把这11个特性分为3组,使其别离隶属于产品修正、产品转移和产品运行等3个方面,如下图。
供选择的答案: A H.① 可读性 ② 正确性 ③ 功能性 ④ 完整性 ⑤ 靠得住性 ⑥ 可移植性 ⑦ 可复用性 ⑧ 灵活性 ⑨ 可保护性 ⑩ 可利用性【7-3】什么缘故软件需要保护?保护有哪几种类型?简述它们的保护进程。
【7-4】 在软件保护的实施进程中,为了正确、有效地修改,需要经历以下3个步骤:( A )、( B )、( C )。
( A )是决定保护成败和质量好坏的关键。
( C )包括( D )确认、运算机确认和保护后的( E )。
供选择的答案: A C. ① 修改程序② 成立目标程序 ③ 分析和明白得程序 ④ 从头验证程序 ⑤ 验收程序D. ① 动态 ② 静态 ③ 人工 ④ 自动E. ① 验证 ② 验收 ③ 查验④ 存档 ( E ) 可测试性 产品转移 产品修正 ( G ) ( H ) ( A ) ( B ) 效率 ( C ) ( D ) 产品运行【7-5】从供选择的答案当选出同以下各表达关系最紧密的字句。
软件工程工具分类
软件工程工具分类软件工程工具分类1-需求管理工具1-1 用户故事管理工具1-2 需求追踪工具1-3 原型设计工具2-版本控制工具2-1 分布式版本控制工具2-2 集中式版本控制工具2-3 版本控制工作流管理工具3-项目管理工具3-1 项目计划工具3-2 进度跟踪工具3-3 团队协作工具4-缺陷管理工具4-1 缺陷追踪工具4-2 缺陷报告工具4-3 缺陷分析工具5-自动化测试工具5-1 单元测试工具5-2 集成测试工具5-3 性能测试工具6-文档管理工具6-1 文档版本控制工具 6-2 协同编辑工具6-3 文档归档工具7-运维管理工具7-1 部署工具7-2 监控工具7-3 自动化运维工具8-持续集成工具8-1 构建工具8-2 自动化测试工具8-3 部署工具9-数据管理工具9-1 数据备份与恢复工具9-2 数据库迁移工具9-3 数据库监控工具10-日志管理工具10-1 日志收集工具10-2 日志分析工具10-3 日志展示工具11-效率提升工具11-1 代码托管平台11-2 编辑器和集成开发环境 11-3 自动化构建工具12-安全管理工具12-1 代码静态分析工具12-2 漏洞扫描工具12-3 安全审计工具13-可视化工具13-1 统计图表工具13-2 项目可视化工具13-3 流程图绘制工具附件:1-细化分类的软件工程工具列表2-工具使用指南和帮助文档3-案例分析和实际应用示例法律名词及注释:1-版权:指著作权法所规定的对个人或组织在创作作品上所享有的专有权利。
2-商标:指代表一家企业或组织所创制的,用以与其他公司或组织的产品或服务相区别的标记。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
什么是软件的质量?
如何描述质量
用人的健康做类比 如何判断人是否健康?
体检因素:身高、体重、心跳、血压、血液、体温等
如何描述软件的质量
软件系统功能齐全是不是就是质量好? 用户界面友好是不是就是软件的质量好? 没有BUG是不是就是软件的质量好? 用户满意?
运行正确的软件就是高质量的软件吗?不贪污的官就是好官 吗?
兼容性 互操作性
环境变化 混合应用环 境下软件的 可操作性 学习所用时 间 学习所用时 间 人的因素 人的因素
产品将易于使 用
可使用性
易理解性 易学性 易操作性 沟通性
1.1.2 软件质量评价的准则
1978年,Walters和McCall等人提出了从软件质量要素、准则到度量的 三个层次式的模型。 McCall选择的软件质量要素评价准则共21种,它们是: (1)可审查性(auditability)。检查软件需求、规格说明、标准、过程、 指令、代码与合同是否一致的难易程度。 (2)准确性(accuracy)。计算和控制的精度,是对无误差程序的一种定 量估计。最好表示成相对误差的函数。值越大表示精度越高。 (3)通信通用性(communication commonality)。使用标准接口、协议、 规范的程序。 (4)完全性 (completeness)。所需功能完全实现的程度。 (5)简明性(conciseness)。程序源代码的紧凑与简洁性。 (6)一致性(consistency)。设计文档与系统实现的一致性。 (7)数据通用性(data commonality)。在程序中使用标准的数据结构 和类型。 (8)容错性(error-tolerance)。系统在各种异常条件下提供继续操作 的能力。 (9)执行效率(execution Efficiency)。程序运行效率。 (10)可扩充性(expandability)。能够对结构设计、数据设计和过程设 计进行扩充的程度。
软件质量
软件质量的定义: ANSI/IEEE Std 729-1983定义软件质量为“与软件 产品满足规定的和隐含的需求的能力有关的特征 或特性的全体”。 M.J. Fisher 定义软件质量为“所有描述计算机软 件优秀程度的特性的组合”。 质量特性及其组合,是软件开发与维护中的重要考虑 因素 为满足软件的各项精确定义的功能、性能需求, 符合文档化的开发标准,需要相应地给出或设计 一些质量特性及其组合。 如果这些质量特性及其组合都能在产品中得到满 足,则这个软件产品质量就是高的。
讨论软件的质量定义,一般地从4个角度来看,即用户的角度、 开发商的角度、产品的角度和价值的角度。 1976年美国的B.W.Boehm和R.Brown 先后提出了三层次的评 价度量模型:软件质量要素、准则、度量。随后G.Mruine提出 了自己的软件质量度量SQM技术,波音公司在软件开发过程中 采用了SQM技术,日本的NEC公司也提出了自己的SQM工具, 即SQMAT,并且在成本控制和进度安排方面取得了良好的效果。 IEEE标准1061-1998以表格的形式,定义了有关确认和收集与软 件质量需求有关一个模型,或称为一个框架。
《现代软件工程》
第七部分 现代软件工程的质量保证
《现代软件工程》
本部分主要参考书
《软件验证与确认的最佳管理方法》(美)Steven R. Rakitin 著于秀山等译(电子工业出版社)2002 《测试流程管理》(美)Rex Black著(北京大学出版社) 2001 《软件工程与软件测试自动化教程》张克东、庄燕滨(电子 工业出版社) 《软件工程规范》(美)Watts. S.Humphrey著,傅为、苏俊、 许青松译(清华大学出版社)2004 《软件配置管理策略与Rational ClearCase》(美)Brian A. White著尤克滨等译(人民邮电出版社)2003
软件质量评价准则需求正确执行任务的能力。 “正确性”的语义涵 盖了“精确性”。 正确性无疑是第一重要的软件质量属性。 技术评审和测试的第一关都是检查工作成果的正确性。 机器不会主动欺骗人,软件运行出错通常都是人造成的,所以不要找借 口埋怨机器有毛病。 2、健壮性 健壮性是指在异常情况下,软件能够正常运行的能力。 正确性描述软件在需求范围之内的行为,而健壮性描述软件在需求范围 之外的行为。 开发者往往把异常情况当成正常情况而不作处理,结果降低了健壮性。 用户才不管正确性与健壮性的区别,反正软件出了差错都是开发方的错。 所以提高软件的健壮性也是开发者的义务。 健壮性有两层含义:一是容错能力,二是恢复能力。
产品度量
一种用来测量软件开发过程中任何中间或最终产品特性的度量
IEEE定义的软件质量度量框架
第一层次:质量需求
在四层模型的第一层,软件产品质量层,是产品必须满足的质量需求。 它是用用户术语描述的,主要有四点: (1)产品将在用户所在组织当前使用的平台和操作系统上运行。 (2) 产品将是可靠的并能防止数据丢失的机制。 (3) 产品将提供完成某些任务所必需的功能。 (4) 产品将易于使用。
在模型的第二层,表示与整个质量需求有关的特殊质量特性,它代表 了用户的质量需求。它采用从用户角度考虑的立场,把软件质量分解 成四类质量特性,这四个质量特性是软件的基本特征。 IEEE的四个质量特性是: 可移植性、可靠性、功能性、可使用性。
第二层次:质量特性
四层模型
质量需求 产品将在多 平台和当前 用户正在使 用的操作系 统上运行 质量特 性 可移植 性 质量子特性 硬件独立性 软件独立性 易安装性 可重用性 产品将是可 靠的并能提 供防止数据 丢失的机制 可靠性 无缺陷性 直接度量 硬件依赖性 软件依赖性 安装时间 能够用于其 他软件中 测试覆盖 审查覆盖 容错性 数据完整性 数据恢复 可用性 软件可用的 百分比 度量描述(例子) 计算硬件的依赖性 计算软件的依赖性 测量安装时间 计算能够或已经应用于 其他软件系统的模块数 量 测量测试覆盖度 计算已做过的代码审查 模块 统计用户数据被破坏情 况 测量恢复被破坏的数据 的能力 软件可用时间除以总的 软件使用时间
1.1.1 软件的质量要素 1.1.2 软件质量评价的准则 1.1.3 软件质量的度量 1.1.4 软件质量度量的实施
1.1.1 软件的质量要素
什么是软件的质量? • ISO9000的质量定义: • 质量的定义:反映实体满足明确和隐含需 要能力的特性综合 • 定义的说明:
– 明确需要:指合同中用户明确提出的要求与需要 – 隐含需要:指由生产企业通过市场调研进行识别与 探明的要求或需要
IEEE定义的软件质量度量框架
软件产品质量
特性 直接度量
特性 直接度量
特性 直接度量
子特性
子特性
子特性
度量
度量
度量
IEEE定义的软件质量度量框架
度量框架 一种用来组织、选择、沟通、评价软件系统要求的质量属性的 辅助决策法。它逐层分解为特性、子特性和度量
质量特性 质量子特性 直接度量 预计度量 质量度量
第七部分 现代软件工程的质量保证
现代软件工程的质量保证过程-1 软件测试的组织与管理-2
软件系统的可靠性工程-3
配置管理方法与实践-4
第七部分 现代软件工程的质量保证
第一章 现代软件工程的质量保证过程
软件的质量要素与度量-1.1
软件工程的质量保证过程-1.2
软件工程的质量保证活动-1.3
软件质量保证体系建设-1.4
质量需求 产品将提供完 成某些任务所 必需的功能
质量特性 功能性
质量子特性 完备性 正确性 安全性
直接度量 测试覆盖 缺陷密度 数据安全性 用户安全性
度量描述(例子) 计算调用或分支测量覆盖 计算每一版本发布前的缺陷 统计用户数据被破坏的情况 没有被阻止的非法用户入侵 数 软件安装后必须修改的环境 变量数量 混合应用环境下可正确运行 的数量 新用户学习软件特性所花费 的时间 新用户学会操作软件提供的 基本功能所花费的时间 新用户基于人类工程学对软 件消极方面的评价数量 新用户基于人类工程学对软 件消极方面的评价数量
质量与等级的关系
等级的含义是:对功能用途相同、但技术特性不同的存在 事务的一种分类或排序 例如:高质量——无错误、可读性强的用户手册 低等级——有限的功能 低质量——错误百出、编排混乱的用户手册 高等级——大量功能 确定质量和等级标准水平,是项目经理的责任
可度量的软件的质量要素
质量的要素
软件质量
软件质量的因素与度量有关
直接度量的因素
如单位时间内千行代码中所产生的错误数。 如可用性或可维护性
间接度量的因素
软件质量
软件质量的度量模型
1976年,Boehm第一次提出了软件质量度量的 层次模型。 1978年,Walters和McCall等人提出了从软件质 量要素、准则到度量的三个层次式的模型。 1985年,ISO建议软件质量模型由三层组成:
高层:软件质量需求评价准则(SQRC) 中层:软件质量设计评价准则(SQDC) 低层:软件质量度量评价准则(SQMC)
现代软件工程的标准体系ISO/IEC12207
需求
设计
实现
测试
维护
实用产品 软件质量保证
基础产品 风险管理 应用成果 软件配置管理
软件工程项目管理
1.1 软件质量的要素与度量
McCall的软件质量评价准则
(11)通用性(generality)。程序部件潜在的应用范围的广泛性,即部件可重用。 (12)硬件独立性(hardware independence)。软件同支持他运行的硬件系统不相 关的程度。 (13)检测性(instrumentation)。监视程序的运行,一旦发生错误时,能明确地 标识错误的程度。 (14)模块化(modularity)。程序部件的功能独立性。 (15)可操作性(operability)。操作一个软件的难易程度。 (16)安全性(security)。控制或保护程序和数据不受破坏的机制,以防止程序和 数据受到意外的或蓄意的存取、使用、修改、毁坏或泄密。 (17)自文档化(sdlf-documentation)。源代码提供有意义文档的程度。 (18)简单性(simplicity)。理解程序的难易程度。 (19)软件系统独立性(software system independence)。程序与非标准的程序设 计语言特征、操作系统特征以及其他环境约束无关的程度。 (20)可追踪性(reacebility)。从设计表示或实际程序构件,追踪到需求的能力。 (21)易培训性(training)。软件支持新用户使用该系统的能力。