软件工程课后习题集(含答案解析)

合集下载

软件工程导论(第六版)部分课后习题-答案

软件工程导论(第六版)部分课后习题-答案

软件工程导论(第六版)部分课后习题-答案软件工程导论(第六版)部分课后习题-答案一、选择题1. 答案:B解析:选择题解析2. 答案:A解析:选择题解析二、判断题1. 答案:对解析:判断题解析2. 答案:错解析:判断题解析三、填空题1. 答案:软件工程解析:填空题解析2. 答案:开发、维护解析:填空题解析四、简答题1. 答案:软件需求分析是软件工程的第一步,它主要是通过对用户需求的调查和分析,确定软件系统需要具备的功能和性能以及相关约束条件。

解析:简答题解析2. 答案:软件开发过程中的质量保证主要包括软件测试和代码评审两个方面。

软件测试是通过运行和验证软件系统的过程,以确定其是否满足预期的需求和标准。

代码评审则是对软件代码进行审查和评估,在开发过程中发现和修复潜在的问题和错误。

解析:简答题解析五、计算题1. 答案:20解析:计算题解析2. 答案:1000解析:计算题解析六、案例分析题1. 答案:软件项目管理是指对软件项目进行规划、组织、分配和控制的过程。

它包括项目范围管理、时间管理、成本管理、质量管理、风险管理等方面。

在一个项目中,软件项目经理负责整体的项目管理工作,包括资源的分配、进度的控制、风险的管理等。

解析:案例分析题解析2. 答案:敏捷开发是一种迭代、逐步增量的软件开发方法。

它强调快速、灵活地响应用户需求的变化,通过频繁的迭代和持续的反馈来逐步完善软件系统。

敏捷开发方法注重团队合作、交流和高效的沟通,通过直接面对面的沟通取代冗长的文档和繁琐的流程,提高软件开发的效率和质量。

解析:案例分析题解析总结:本文主要针对《软件工程导论(第六版)》部分课后习题提供了答案和解析。

其中包括选择题、判断题、填空题、简答题、计算题和案例分析题等多个题型。

通过解答这些习题,读者可以进一步加深对软件工程的理解和掌握。

希望本文对读者有所帮助,谢谢阅读。

《软件工程》各章课后习题答案

《软件工程》各章课后习题答案

《软件工程》各章课后习题答案软件工程是计算机科学与技术的一门重要学科,旨在研究和应用工程原则和方法来开发高质量的软件系统。

课程中的习题对于加深学生对软件工程理论和实践的理解至关重要。

下面是对《软件工程》各章课后习题的答案,希望能够帮助你更好地掌握软件工程的知识。

第一章:软件工程导论1. 软件工程的定义:答:软件工程是通过应用系统化、规范化和可量化的方法进行软件开发、运行和维护的学科。

2. 软件工程的目标:答:软件工程的目标是提高软件开发的质量、效率和可靠性,使得软件能够满足用户的需求和期望。

3. 软件生命周期模型:答:常见的软件生命周期模型包括瀑布模型、迭代模型、敏捷模型等。

每个模型都有其独特的特点和适用场景。

4. 软件过程模型:答:软件过程模型描述了软件开发过程中的一系列活动和阶段,常见的软件过程模型包括瀑布模型、迭代模型、敏捷模型等。

5. 软件工程的基本原则:答:常见的软件工程基本原则包括分阶段、逐步求精、持续集成、迭代开发、需求优先等。

第二章:软件项目管理1. 软件项目管理的定义:答:软件项目管理是指对软件开发过程中的资源、进度、质量等进行有效管理,以确保软件项目能够按时、按质地完成。

2. 软件项目管理的内容:答:软件项目管理包括项目计划、需求管理、项目进度管理、资源管理、风险管理等方面。

3. 软件项目管理的方法:答:常见的软件项目管理方法包括敏捷项目管理、水平项目管理、里程碑项目管理等。

4. 软件项目管理的工具:答:常用的软件项目管理工具包括甘特图、PERT/CPM网络图、项目管理软件等。

第三章:软件需求分析与规格说明1. 软件需求的定义:答:软件需求是指用户对软件系统的要求和期望,包括功能需求、性能需求、接口需求等方面。

2. 软件需求分析的方法:答:常用的软件需求分析方法包括面向对象分析法、数据流图法、用例分析法等。

3. 软件需求规格说明的格式:答:常见的软件需求规格说明的格式包括自然语言描述、结构化描述、图形描述等。

(完整word版)软件工程习题及答案解析

(完整word版)软件工程习题及答案解析

软件工程习题及答案一、选择题:1。

为了提高测试的效率,应该。

A、随机地选取测试数据B、取一切可能的输入数据作为测试数据C、在完成编码后制定软件的测试计划D、选择发现错误可能性大的数据作为测试数据2. 与设计测试数据无关的文档是。

A、需求说明书B、设计说明书C、源程序D、项目开发设计3. 结构设计是一种应用最广泛的系统设计方法,是以为基础、自顶向下、逐步求精和模块化的过程。

A、数据流B、数据流图C、数据库D、数据结构4。

概要设计的结果是提供一份。

A、模块说明书B、框图C、程序D、数据结构5。

需求分析是由分析员经了解用户的要求,认真细致地调研、分析,最终应建立目标系统的逻辑模型并写出。

A、模块说明书B、软件规格说明书C、项目开发计划D、合同文档6。

注释是提高程序可读性的有效手段,好的程序注释占到程序总量的。

A、1/6B、1/5C、1/4D、1/37. 变换型和事务型是程序结构的标准形式.从某处获得数据,再对这些数据作处理,然后将结果送出是属于。

A、变换型B、事务型8。

PAD(Problem Analysis Diagram)图是一种工具.A、系统描述B、详细设计C、测试D、编程辅助9. 分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的。

A、总貌B、细节C、抽象D、软件的作者10。

数据流图中,当数据流向或流自文件时,。

A、数据流要命名,文件不必命名B、数据流不必命名,有文件名就足够了C、数据流和文件均要命名,因为流出和流进数据流是不同的D、数据流和文件均不要命名,通过加工可自然反映出11. 分析员是.A、用户中系统的直接使用者B、用户和软件人员的中间人C、软件的编程人员D、用户和软件人员的领导12. 在软件开发中,有利于发挥集体智慧的一种做法是.A、设计评审B、模块化C、主程序员制D、进度控制13. 在开发软件时, 可用来提高程序员的工作效率.A、程序开发环境B、操作系统的作业管理功能C、编译程序的优化功能D、并行运算的大型计算机14. 结构化程序设计主要强调程序的。

软件工程(第四版)习题及解答1-7

软件工程(第四版)习题及解答1-7
(2)在左侧浏览器区域用鼠标右键单击用例视图(Use Case View)文件夹节点,然后选择【New】菜单|【Use Case Diagram】选项,新建一个用例图,可根据需要重新命名用例图名称如book,参考图6.31所示。
判定树:
Байду номын сангаас重量<=2Kg——12元
重量>2Kg且<=20Kg——6W元
重量>20Kg——6.5(W-20)+120
重量<=2Kg——24元
重量>2Kg且<=20Kg——12W元
重量>20Kg——13(W-20)+240
6.
设汇款金额为W元。判定树如下:
汇额本埠/外埠汇费
<=200 ----------------------- 2元
scd = fst
fst=k[i]
T
F
k[i]>scd
Scd=k[i]
I=i+1
输出fst,scd
(3)求s=1- 1/2!+1/3!-1/4! +…. +1/n!,其中n的值由键盘输入。
PAD图如下:
2.根据伪码画PAD图
3.将程序流程图转化为PAD图
(1)
(2)
(3)
(4)
(5)
对于分支结构
if(f)
3、(1)模块功能的完善化(2)消除重复功能,改善软件结构(3)模块规模应该适中(4)模块的深度、宽度、扇出和扇入都应适当(5)模块的作用范围应该在控制范围之内(6)力争降低模块接口的复杂程度(7)设计单入口、单出口的模块(9)模块功能应该可以预测
四、应用题
1、模块A和B是数据耦合,模块B是功能内聚。

软件工程第6章-课后作业参考(附答案)

软件工程第6章-课后作业参考(附答案)

软件⼯程第6章-课后作业参考(附答案)第六章作业题参考答案3.画出下列伪码程序的程序流程图和盒图: STARTIF p THENWHILE q DO f END DO ELSEBLOCK g nEND BLOCK END IF STOP 答:(1)流程图如图6-1所⽰:图6-1从伪码变成的程序流程图(2)该程序的盒图如图6-2所⽰:图6-2 从伪码变成的程序盒图4.下图给出的程序流程图代表⼀个⾮结构化的程序,请问:(1)为什么说它是⾮结构化的?(2)设计⼀个等价的结构化程序。

(3)在(2)题的设计中你使⽤附加的标志变量flag吗?若没⽤,请再设计⼀个使⽤flag 的程序;若⽤了,再设计⼀个不⽤flag 的程序。

答:(1)通常所说的结构化程序,是按照狭义的结构程序的定义衡量,符合定义规定的程序。

图⽰的程序的循环控制结构有两个出⼝,显然不符合狭义的结构程序的定义,因此是⾮结构化的程序。

(2)使⽤附加的标志变量flag,⾄少有两种⽅法可以把该程序改造为等价的结构化程序,图6-3描绘了等价的结构化程序的盒图。

(a)解法1(b)解法2图6-3 与该图等价的结构化程序(⽤flag)(3)不使⽤flag把该程序改造为等价的结构化程序的⽅法如图6-4所⽰。

图6-4 与该图等价的结构化程序(不⽤flag)8.画出下列伪码程序的流图,计算它的环形复杂度。

你觉得这个程序的逻辑有什么问题吗?C EXAMPLELOOP:DO WHILE X>0A=B+1IF A>10THEN X=AELSE Y=ZEND IFIF Y<5THEN PRINT X,YELSE IF Y=2THEN GOTO LOOPELSE C=3END IFEND IFG=H+REND DOIF F>0THEN PRINT GELSE PRINT KEND IFSTOP答:(1)该伪码的流程图如图6-8所⽰:图6-8 程序流程图根据该程序流程图,可得该程序流图如图6-9所⽰:图6-9 程序流图环形复杂度V(G)=流图中的区域数=流图中判定结点数⽬+1=6+1=7 (判定结点为:1、3、6、8、10、11)(2)该算法问题在于控制最外层循环的变量Z不仅没有经过初始化,并且在该循环内部没有任何有可能该变Z的语句。

(完整版)软件工程概论课后习题答案

(完整版)软件工程概论课后习题答案
逐步增加产品的功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给用户组织带来的冲击。
项目失败的风险较低,虽然在某些增量构件中可能遇到一些问题,但其他增量构件将能够成功地交付给客户。
优先级最高的服务首先交付,然后再将其他增量构件逐次集成进来。因此,最重要的系统服务将接受最多的测试。
产生软件危机的原因:除了软件本身的特点,其原因主要有以下几个方面:
(1)缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作计划很难制定。
(2)软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误。
(3)软件开发过程不规范。如,没有真正了解用户的需求就开始编程序。
(4)随着软件规模的增大,其复杂性往往会呈指数级升高。需要很多人分工协作,不仅涉及技术问题,更重要的是必须有科学严格的管理。
(3)软件设计:本阶段要回答的关键问题是“目标系统如何做?”为此,必须在设计阶段中制定设计方案,把已确定的各项需求转换成相应的软件体系结构。结构中的每一组成部分都是意义明确的构件,此即所谓概要设计。进而具体描述每个构件所要完成的工作,为源程序编写打下基础,此即所谓详细设计。
(4)程序编码和单元测试:本阶段要解决的问题是“正确地实现已做的设计”,为此,需要选择合适的编程语言,把软件设计转换成计算机可以接受的程序代码,并对程序结构中的各个模块进行单元测试,然后运用调试的手段排除测试中发现的错误。要求编写出的程序应当是结构良好、清晰易读的,且与设计相一致的。
1.3如果将软件开发比作高楼大厦的建造,可以将软件的设计比作什么?
可以将软件的设计比作建筑设计,软件设计的成果相当于建筑设计的设计图纸。
1.4什么是软件危机?它有哪些典型表现?为什么会出现软件危机?
软件危机:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

软件工程课后习题答案

软件工程课后习题答案

软件工程课后习题答案1. 什么是软件工程?软件工程是一种应用工程原理和方法的学科,目的是开发高质量的软件。

软件工程包括以下几个方面:•需求分析:确定用户的需求,并将其转化为可执行的软件功能。

•设计:设计软件的架构和模块,并确定各个模块的功能和关系。

•编码:实现软件的设计,将设计的模块通过编程语言编写成可执行的代码。

•测试:通过不同的测试方法和技术对软件进行验证,确保软件的质量和可靠性。

•维护:对软件进行改进和修复,以适应用户需求的变化和修复软件中的错误。

2. 软件工程的目标是什么?软件工程的目标是开发高质量的软件,以满足用户的需求。

具体目标包括:•可靠性:软件应该能够正常运行并处理各种输入情况,不会崩溃或导致系统故障。

•可维护性:软件应该易于理解和修改,以适应用户需求的变化和修复软件中的错误。

•可扩展性:软件应该能够在不改变其基本架构的情况下,方便地添加新的功能模块。

•可重用性:软件应该能够被多个项目和团队复用,以提高开发效率。

•可测试性:软件应该易于测试,以确保其功能和性能符合预期。

3. 软件开发生命周期有哪几个阶段?软件开发生命周期通常包括以下几个阶段:1.需求分析和定义阶段:在这个阶段,软件工程师与用户沟通,了解用户的需求和期望。

然后,设计师将这些需求转化为软件规格说明。

2.软件设计阶段:在这个阶段,设计师根据需求规格说明书设计软件的架构和模块,并确定模块之间的关系和功能。

3.编码阶段:在这个阶段,开发人员根据设计文档编写代码,实现软件的功能。

4.测试阶段:在这个阶段,测试人员使用不同的测试方法和技术对软件进行验证,以确保软件的质量和可靠性。

5.部署和维护阶段:在这个阶段,软件工程师将软件部署到实际的运行环境中,并根据用户的反馈进行改进和修复。

4. 什么是软件需求?软件需求是对系统或软件功能和性能的描述,它描述了用户的需求和期望。

软件需求通常包括以下几个方面:•功能需求:描述软件应该具有的功能,以及这些功能如何满足用户的需求。

《软件工程》课后习题答案

《软件工程》课后习题答案

1、可行性研究的目的是用最小的代价,在尽可能短的时间,确定该项目是否能够开发。

2、程序设计时代的生产方式是个体手工,程序系统时代的生产方式是作坊式小团体,软件工程时代的生产方式是工程化。

3、喷泉模型是一种以需求分析为动力,以对象为驱动的模型。

4、需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是功能需求。

5、可行性研究需要从以下三个方面分析研究每种解决方法的可行性:技术可行性、经济可行性、社会可行性。

6、可行性研究的目的不是去开发一个软件项目,而是研究这个软件项目是否值得开发,其中的问题能否解决。

7、判定树较判定表直观易读,判定表进行逻辑验证较严格,能把所有的可能性全部都考虑到。

可将两种工具结合起来,先用判定表做底稿,在此基础上产生判定树。

8、软件工具的发展特点是软件工具有单一工具向多个工具集成化方向发展。

重视用户界面的设计,不断的采用新理论和新技术。

软件工具的商品化推动了软件产业的发展,而软件产业的发展,又增加了对软件工具的需求,促进了软件工具的商品化进程。

9、环境集成主要有数据集成、界面集成、控制集成、平台集成、过程集成。

10、可行性研究实质上是进行一项简化、压缩了的需求分析、设计过程。

11、结构化方法有结构化分析、结构化设计、结构化程序设计构成,它是一种面向数据流的开发方法。

12、投资回收期就是累计的经济效益等于最初的项目投资所需的时间。

13、详细描述处理过程常用三种描述工具:图形、表格和语言。

14、数据流图中,每个加工至少有一个输入流和一个输出流。

15、结构化设计以数据流为基础映射成软件结构。

16、当数据流图中某个加工的一组动作存在着多个条件复杂组合的判断时,使用判定表或判定树较好。

17、由于运用原型的目的和方式不同,在使用原型时也采取不同的策略,有抛弃策略和附加策略。

18、有两类维护技术:在开发阶段是用来减少错误、提高软件可维护性面向维护的技术,在维护阶段用来提高维护的效率和质量的维护支援技术。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章练习题一、填空题1、软件工程三要素是:方法、工具、过程。

2、软件开发方法是指软件开发过程中所应遵循的方法和步骤。

二、名词(术语)解释:1、可靠性---是指在给定的时间间隔,程序成功运行的概率。

可靠性是衡量软件质量的一个重要目标。

2、可理解性---指系统具有清晰的结构,能直接反映问题的需求。

可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植和重用。

三、问答题1、面向对象方法的优点是什么?答:(1)将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。

(2)以数据为中心,而不是基于对功能的分解,使得软件结构相对稳定,软件的重用性、可靠性、可维护等特性都较好。

2、可视化开发方法的优点有哪些?答:(1)简化了图形用户界面的设计和编码工作,将开发的注意力主要集中在程序的执行逻辑和工作流程上。

(2)软件开发简单,易学、易上手。

(3)专业或非专业人员都能参与软件开发活动。

第二章练习题一、填空题:1、软件工程过程是:为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工程活动。

2、一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程经历的生存过程称为软件生存期或叫生命期。

3、软件生命周期的阶段划分为3个时期是:定义时期、开发时期、维护时期。

4、软件工程标准的5个层次是:国际标准、国家标准、行业标准、企业规、项目规。

二、简答题:1、瀑布模型的优点有哪些?答:1、强迫开发人员采用规的技术方法;2、严格地规定了每个阶段必须提交的文档;3、每个阶段结束前必须正式进行严格的技术审查和管理复审。

2、瀑布模型的缺点是什么?答:1、在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。

2、在需求分析阶段,当需求确定后,无法及时验证需否正确、完整。

3、作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。

3、原型模型适应什么场合?答:原型模型比瀑布模型更符合人们认识事物的过程和规律,是一种较实用的开发框架。

它适合于那些不能预先确切定义需求的软件系统的开发,更适合于那些项目组成员(包括分析员、设计员、程序员和用户)不能很好交流或通信有困难的情况。

第三章练习题一、填空题1、COCOMO II的3个阶段是:应用组装、早期设计、后体系结构。

2、分析任务图中的里程碑路径被称为关键路径。

3、项目的特征:唯一性、一次性、整体性、多目标性、寿命周期阶段性。

二、简答题1、什么是里程碑?答:在制定项目进度计划时,在进度时间表上设立一些重要的时间检查点,这样一来,就可以在项目执行过程中利用这些重要的时间检查点来对项目的进程进行检查和控制。

这些重要的时间检查点被称作项目的里程碑(Milestone)。

2、请扼要描述Boehm的十大风险事项。

答:Personnel shortfalls人员短缺Unrealistic schedules and budgets不现实的进度和预算Developing the wrong functions开发了错误功能Developing the wrong user interfaces开发了错误的用户界面Gold-plating华而不实Continuing stream of requirements changes不断的需求改变Shortfalls in externally-performed tasks外部执行的任务不符合要求Shortfalls in externally-furnished components外部提供的组件不符合要求Real-time performance shortfalls实时性能不符合要求Straining computer science capabilities超出了计算机科学的能力3、如何成功管理风险?答:建立恰当的机制选择有效的识别方法选择有效评估发生可能性方法选择有效评估风险影响方法建立预防措施开发风险应对措施确定紧迫性确定风险的责任人4、什么是项目管理?答:两种含义管理活动:一种有意识地按照项目管理的特点和规律,对项目进行组织管理的活动管理学科:以项目管理活动为研究对象的一门学科,它是探索项目活动科学组织管理的理论与方法。

5、什么是软件项目管理?答:软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。

软件项目管理的对象是软件工程项目,他所涉及的围覆盖了整个软件工程过程。

第4章练习题四、填空题1、需求可分解为4个层次:业务需求、用户需求、功能需求和非功能需求。

2、用户需求:用户需用户使用该软件要完成的任务。

3、功能需求:功能需求定义了软件必须实现的功能。

4、需求分析阶段的工作有以下四个方面:引发、分析、编制需求分析阶段文档——规格说明、确认。

5、软件项目中40%-——60%的问题都是在需求阶段埋下的祸根!2、简答题1、IEEE在软件工程标准词汇表中的需求定义是什么?答:⑴用户解决问题或达到目标所需的条件或权能(Capability)。

⑵系统或系统部件要满足合同、标准、规或其它正式规定文档所需具有的条件或权能。

⑶一种反映上面(1)或(2)所描述的条件或权能的文档说明。

2、需求分析的目标是什么?答:构造一个完全地、精致地目标系统逻辑模型;确定设计约束和定义软件有效性要求。

3、需求分析的任务是什么?答:需求分析阶段研究的对象是软件项目的用户要求,其任务是借助当前系统的逻辑模型,调查研究、分析综合,并通过抽象思维、逻辑推理导出目标系统的逻辑模型,解决系统“做什么”的问题,并将结果准确表达。

4、请你扼要描述需求分析的实现步骤。

答:(1)分析现实世界,充分理解当前系统,并用一个具体模型描述,获得当前系统的物理模型。

(2)在理解当前系统“怎么做”的基础上,抽取“作什么”的本质,抽象出系统的逻辑模型。

(3)分析目标系统与当前系统逻辑上的差别,导出目标系统的逻辑模型。

(4)对目标系统逻辑模型进行补充,以求完整地描述。

5、需求规格书明书的主体容包括哪些?答:1)概述:软件需求的简要说明2)界面描述:软件系统的实现环境3)模型分析:系统模型的形式规定、限制和说明4)质量评审要求5)其他6、需求规格说明书的基本要什么?答:1)完整:考虑细致2)一致:前后容一致3)精确:数据、任务要精确4)无二义性:不提模棱两可的问题5)符合标准:按国家、国际标准书写6)易维护:应便于修改三、术语解释:聚合关联--------一个类是另一个类的所有物或元素,用一端带有空心菱形的关联来表示,“has-a”关系。

组装关联--------是一种特殊类型的聚合,复合类的实例是物理上由成分类的实例组成的(如,自行车由轮子、手把组成),用实心菱形的聚合表示。

概化关联———一个子类继承父类的所有属性、操作和关联,用一端带有三角形的关联表示,“is-a”关系。

第5章练习题一、填空题:1、健壮性:如果系统包含了适应环境以及从环境中或其他单元中的问题中恢复的机制,那么我们称该系统是健壮的。

2、原型化分为两种类型是:抛弃型原型和快速原型化。

二、简答题:1、满足质量属性有哪7个方面?答:可修改性、性能、安全性、可靠性、健壮性、易使用性、商业目标2、体系结构模式有哪6种?---P161答:理解系统复用以前系统元素展示构建系统蓝图推测系统将会如何演变分析依赖关系为管理决策提供支持3、造成设计崩溃的原因有哪些?答:缺少具体的设计方案缺少设计过程的元方案问题优先级选择不合理在定义解决方案时,难以考虑所有的约束难以在脑海中用多个步骤或多个用例对设计进行模拟难以跟踪和报告解决方案已经推迟的子问题难以从子问题进行扩展,以形成完整的解决方法第6章练习题一、填空1、6条设计原则是:模块化、接口、信息隐藏、增量式开发、抽象、通用性。

2、模块的扇入定义为:指直接调用该模块的上级模块的个数。

扇入大表示模块的复用程序高。

3、模块的扇出定义为:是指该模块直接调用的下级模块的个数。

扇出大表示模块的复杂度高,需要控制和协调过多的下级模块;但扇出过小(例如总是1)也不好。

扇出过大一般是因为缺乏中间层次,应该适当增加中间层次的模块。

扇出太小时可以把下级模块进一步分解成若干个子功能模块,或者合并到它的上级模块中去。

设计良好的软件结构,通常顶层扇出比较大,中间扇出小,底层模块则有大扇入。

4、设计模式的4个基本要素是:名称、要解决的问题、解决方案、应用后的效果。

二、简答题1、模块耦合有哪6种类型?答:容耦合公共耦合控制耦合标记耦合数据耦合非直接耦合3、模块聚有哪7种类型?答:巧合聚:部分各不相关。

逻辑聚:只通过代码的逻辑结构关联。

时态聚:设计被划分成几个用来表示不同执行状态的模块:初始化、读写输入、计算、打印输出,在一个任务中被使用而形成聚。

过程聚:按照每个确定的顺序执行一系列的功能。

通信聚:某些功能操作或生成同一个数据集。

功能聚:一个模块中包含了所有必须的元素,每个处理元素对于执行单个功能来说都是必须的。

信息聚:在功能聚的基础上,将其调整为数据抽象化和基于对象的设计。

三、术语解释信息隐藏------每个模块的实现细节对于其它模块来说是隐蔽的。

也就是说,模块中包含的信息(过程和数据)不允许其它不需要这些信息的模块使用。

第8-9章练习题一、填空1、测试用例的设计方法大体可分为两类:白盒测试和黑盒测试。

2、语句覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每个可执行语句都至少执行一次。

3、边界值总结为三句话是:刚刚等于;刚刚大大于;刚刚小于。

4、单元测试又称模块测试,它着重对软件设计的模块(软件构件或模块)进行验证。

5、常用的系统测试包括恢复测试,安全测试,压力测试,性能测试。

6、安全测试用来验证集成在系统中的保护机制能否实际保护系统不受非法侵入。

二、简答题1、软件测试的目的是什么?答:测试是一个为了发现错误而执行程序的过程一个好的测试用例是指很可能找到迄今为至尚未发现的错误的测试用例一个成功的测试是指揭示了迄今为至尚未发现的错误的测试2、什么是白盒测试(又称为结构测试)?答:把测试对象看作一个透明的盒子,测试人员根据程序部的逻辑结构及有关信息设计测试用例,检查程序中所有逻辑路径是否都按预定的要求正确地工作。

3、什么是黑盒测试?答:(又称行为测试)把测试对象看做一个黑盒子,测试人员完全不考虑程序部的逻辑结构和部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能需求。

4、什么是等价类?答:等价类是指输入域的某个子集,该子集中的每个输入数据对揭露软件中的错误都是等效的,测试等价类的某个代表值就等价于对这一类其他值的测试。

相关文档
最新文档