软件工程课后作业第四章
- 格式:doc
- 大小:28.50 KB
- 文档页数:3
《软件工程》各章课后习题答案软件工程是计算机科学与技术的一门重要学科,旨在研究和应用工程原则和方法来开发高质量的软件系统。
课程中的习题对于加深学生对软件工程理论和实践的理解至关重要。
下面是对《软件工程》各章课后习题的答案,希望能够帮助你更好地掌握软件工程的知识。
第一章:软件工程导论1. 软件工程的定义:答:软件工程是通过应用系统化、规范化和可量化的方法进行软件开发、运行和维护的学科。
2. 软件工程的目标:答:软件工程的目标是提高软件开发的质量、效率和可靠性,使得软件能够满足用户的需求和期望。
3. 软件生命周期模型:答:常见的软件生命周期模型包括瀑布模型、迭代模型、敏捷模型等。
每个模型都有其独特的特点和适用场景。
4. 软件过程模型:答:软件过程模型描述了软件开发过程中的一系列活动和阶段,常见的软件过程模型包括瀑布模型、迭代模型、敏捷模型等。
5. 软件工程的基本原则:答:常见的软件工程基本原则包括分阶段、逐步求精、持续集成、迭代开发、需求优先等。
第二章:软件项目管理1. 软件项目管理的定义:答:软件项目管理是指对软件开发过程中的资源、进度、质量等进行有效管理,以确保软件项目能够按时、按质地完成。
2. 软件项目管理的内容:答:软件项目管理包括项目计划、需求管理、项目进度管理、资源管理、风险管理等方面。
3. 软件项目管理的方法:答:常见的软件项目管理方法包括敏捷项目管理、水平项目管理、里程碑项目管理等。
4. 软件项目管理的工具:答:常用的软件项目管理工具包括甘特图、PERT/CPM网络图、项目管理软件等。
第三章:软件需求分析与规格说明1. 软件需求的定义:答:软件需求是指用户对软件系统的要求和期望,包括功能需求、性能需求、接口需求等方面。
2. 软件需求分析的方法:答:常用的软件需求分析方法包括面向对象分析法、数据流图法、用例分析法等。
3. 软件需求规格说明的格式:答:常见的软件需求规格说明的格式包括自然语言描述、结构化描述、图形描述等。
软件工程课后习题参考答案软件工程课后习题参考答案1. 第一章规约与软件工程概述1.1 规约的定义规约是软件开发过程中明确要求的描述,包含了对软件需求、设计、实现、测试、部署和维护等各个阶段的要求和约束。
1.2 软件工程的概述软件工程是一门涉及对软件的开发、运行和维护的学科。
它通过应用工程原则和方法,以系统化、规范化、可靠化、经济化和高质量的方式来开发和维护软件。
2. 第二章软件需求规约2.1 软件需求规约的作用软件需求规约是对软件系统所需功能和性能的具体描述和说明,是软件开发的基础和依据。
它指导着开发团队的工作,确保软件的功能和性能符合用户的需求。
2.2 软件需求规约的要素软件需求规约包括功能需求、非功能需求和约束条件。
功能需求描述了软件系统应该具备的功能,非功能需求描述了软件系统的性能要求和质量特性,约束条件描述了软件系统所受限制的条件。
3. 第三章软件设计规约3.1 软件设计规约的目标软件设计规约是对软件系统进行结构化和模块化设计的过程,其目标是确保软件系统具备可靠性、可维护性、可扩展性和可重用性。
3.2 软件设计规约的方法软件设计规约采用面向对象设计、结构化设计和模块化设计等方法。
面向对象设计强调将问题领域的概念和对象转化为软件系统的类和对象,结构化设计强调将系统分解为模块,模块化设计强调模块间的接口和通信。
4. 第四章软件实现规约4.1 软件实现规约的目的软件实现规约是指将软件设计阶段得到的设计规约转化为计算机可执行的程序代码,其目的是确保软件系统的正确性、可靠性、可维护性和可测试性。
4.2 软件实现规约的技术软件实现规约采用编程语言、软件开发工具和软件开发环境等技术。
编程语言提供了描述算法和数据结构的语法和语义,软件开发工具提供了代码编辑、编译、调试和测试等功能,软件开发环境提供了开发的整体支持。
5. 第五章软件测试规约5.1 软件测试规约的目的软件测试规约是对软件系统进行功能、性能和质量等方面的验证和检测,其目的是找出软件系统的错误和缺陷,并修复和改进。
软件工程-习题及答案---第四章一、判断题1、(√)如果在需求分析阶段采用了结构化分析方法,则软件设计阶段就应采用结构化设计方法。
2、(√)概要设计与详细设计之间的关系是全局和局部的关系。
3、(×)一个模块的作用范围应该大于该模块的控制范围。
4、(√)模块间的耦合性越强,则模块的独立性越弱。
5、(×)在设计模块时,应使一个模块尽量包括多个功能。
6、(√)软件结构图可以利用数据流图映射出来。
7、(×)结构化设计是一种面向数据结构的设计方法。
8、(√)在结构化设计过程中首先要确认DFD。
二、选择题1、软件结构图的形态特征能反映程序重用率的是(C)。
A、深度B、宽度C、扇入D、扇出2、概要设计的目的是确定整个系统的(B)。
A、规模B、功能及模块结构C、费用D、测试方案3、耦合是对软件不同模块之间互连程度的度量。
各种耦合从强到弱的排列为(C)。
A、内容耦合,控制耦合,数据耦合,公共环境耦合B、内容耦合,控制耦合,公共环境耦合,数据耦合C、内容耦合,公共环境耦合,控制耦合,数据耦合D、控制耦合,内容耦合,数据耦合,公共环境耦合4、当一个模块直接使用另一个模块的内部数据时,这种模块之间的耦合为(D)。
A、数据耦合B、公共耦合C、标记耦合D、内容耦合5、数据耦合和控制耦合相比,则(B)成立。
A、数据耦合的耦合性强B、控制耦合的耦合性强C、两者的耦合性相当D、两者的耦合性需要根据具体情况分析6、衡量模块独立性的标准是(D)。
A、耦合的类型B、内聚的类型C、模块信息的隐藏性D、耦合性和内聚性7、如果某种内聚要求一个模块中包含的任务必须在同一段时间内执行,则这种内聚为(A)。
A、时间内聚B、逻辑内聚C、通信内聚D、信息内聚8、为了提高模块的独立性,模块内部最好是(C)。
A、逻辑内聚B、时间内聚C、功能内聚D、通信内聚9、在结构化设计方法中,下面哪种内聚的内聚性最弱(C)。
A、逻辑内聚B、时间内聚C、偶然内聚D、过程内聚10、软件设计是把(A)转换为软件表示的过程。
第四章练习题:一、填空题1.C/S、B/S、SOA、BPM等都是不同的体系结构。
2.数据字典包括数据项、数据流、数据存储和基本加工。
3.高内聚、松耦合是模块设计的基本原则。
4.软件设计把已确定的软件需求转换成特定形式的设计表示,使其得以实现。
5.设计模型是从分析模型转化而来的,主要包括四类模型:体系结构设计模型、数据设计模型、接口设计模型、构件设计模型。
6.面向对象设计的主要特点是建立了四个非常重要的软件设计概念:抽象性、信息隐藏、功能独立性和模块化。
7.模块层次图和模块结构图是模块功能划分的重要方法。
8.UML设计中主要采用的图示有类图、对象图、包图等。
9.软件模块设计,包括模块划分、模块独立性、模块的调用关系、每个模块的功能等。
10.数据库的设计一般要进行三个方面的设计:概念结构设计、逻辑结构设计和物理结构设计。
11.结构化程序设计方法的主要原则可以概括为自顶向下,模块化,逐步求精。
二、判断题1.软件设计是软件工程的重要阶段,是一个把软件需求转换为软件代码的过程。
(×)2.软件设计说明书是软件概要设计的主要成果。
(√)3.软件设计中的设计复审和设计本身一样重要,其主要作用是避免后期付出高代价。
(√)4.应用程序框架结构是一个可以重复使用的、大致完成的应用程序,可以通过对其进行定制,开发成一个客户需要的真正的应用程序。
(√)5.面向对象设计(OOD)是将面向对象分析(OOA)的模型转换为设计模型的过程。
(√)6.在进行概要设计时应加强模块间的联系。
(×)7.复用原则也是软件设计的一个重要原则。
(√)8.以对象、类、继承和通信为基础的面向对象设计方法也是常见的软件概要设计方法之一。
(√)三、选择题1.内聚是从功能角度来度量模块内的联系,按照特定次序执行元素的模块属于(D)方法。
A.逻辑内聚B.时间内聚C.过程内聚 D.顺序内聚2.概要设计是软件工程中很重要的技术活动,下列不是概要设计任务的是(B)。
软件工程第四章 MS概述什么是MS?MS(Microsoft)是全球领先的软件和技术服务公司,总部位于美国华盛顿州雷德蒙德市。
该公司主要从事计算机软件和硬件开发、生产和销售,以及提供各种与互联网相关的产品和服务。
MS的使命是通过提供先进的技术和创新的产品,以帮助个人和企业在数字化时代取得成功。
MS的产品和服务操作系统MS最知名的产品之一是Windows操作系统。
Windows操作系统是广泛使用的个人电脑操作系统,它提供了直观的用户界面和丰富的应用程序支持。
除了Windows操作系统外,MS还开发了其他操作系统,如Windows Server用于服务器领域。
办公软件MS Office是MS最受欢迎的软件套件之一。
它包括诸如Word、Excel和PowerPoint等应用程序,被广泛用于处理文字、表格和演示文稿等办公任务。
MSOffice还包括一些协作工具,如Outlook和Teams,用于电子邮件、日程安排和团队合作等方面。
开发工具MS提供了一系列开发工具,供开发人员创建各种软件应用程序。
Visual Studio是MS最受欢迎的集成开发环境之一,它支持多种编程语言,如C++、C#和JavaScript等。
此外,MS还提供了Azure云平台,用于构建、部署和管理云上的应用程序和服务。
云服务MS的云服务平台Azure提供了各种云计算服务,包括计算、存储、数据库、和物联网等。
Azure的弹性和可扩展性使得企业可以根据业务需求灵活地使用和调整资源。
此外,MS还提供了一系列其他云服务,如Office 365和Dynamics 365等。
MS的软件工程实践作为一家全球领先的软件公司,MS在软件工程方面拥有丰富的实践经验,并采用各种先进的方法和技术来提高软件开发过程的效率和质量。
敏捷开发MS在软件开发中广泛应用敏捷开发方法。
敏捷开发是一种迭代、增量的开发方式,通过团队协作、快速反馈和频繁交付来实现软件的快速开发和迭代。
一、选择题
1.不属于软件设计过程中应该遵循的基本原理的是()
A.模块化
B.抽象化
C.逐步求精
D.信息公开
2.与设计测试用例无关的文档是()。
A.项目开发计划
B.需求规格说明书
C.设计说明书
D.源程序3.软件测试用例主要由输入数据和()两部分组成。
A.测试计划
B.测试规则
C.预期输出结果
D.以往测试记录分析
二、简答题
1.可行性研究的任务是从哪三个方面进行研究的?
2.软件设计过程实际上就是将需求规格说明逐步转化为软件的源代码的过程。
作为设计阶段的前期,概要设计任务包括哪些?
答案:
一、1.D 2.A 3.C
二、
1.技术;经济;软件项目的可行性
2.①系统分析员审查软件需求分析所提供的文档,选择最佳方案,并对这些方案进行评审。
②确定模块结构,划分功能模块,将软件功能分配到所划分的最
小单元模块,确定模块
间的联系,确定数据结构、文件结构、数据库模式和测试方法。
③编写概要设计说明书,选择相关的软件工具描述软件结构,选择分解功能与划分模块的设计原则。
④对概要设计说明书进行评审,为详细设计提供可靠的输入。
第四章习题1、设计下列伪码程序的语句覆盖和路径覆盖测试用例:START INPUT(A,B,C)IFA>5 THENX=10 ELSEX=1 ENDIF IFB>10 THENY=20 ELSEY=2 ENDIF IFC>15 THENZ=30 ELSEZ=3 ENDIF PRINT(X,Y,Z)STOP 2、设计下列伪码程序的分支覆盖和条件组合覆盖测试用例:START INPUT(A,B,C,D)IF(A>0)AND(B>0)THENX=A+B ELSEX=A-B END IF(C>A)OR(D<B)THENY=C-D ELSEY=C+D END PRINT(X,Y)STOP 3、使用基本路径测试方法,设计测试下面列出的伪码程序的测试用例:1:START INPUT(A,B,C,D)2:IF(A>0)3:AND(B>0)4:THEN X=A+B 5:ELSE X=A-B 6:END 7:IF(C>A)8:OR(D<B)9:THEN Y=C-D 10: ELSE Y=C+D 11: END 12: PRINT (X ,Y )STOP 4、设计测试下列函数的测试方案:、设计测试下列函数的测试方案: 函数SEARCH (somearay ,size ,value )的功能是,在一个整数数组somearay 中搜索一个值为value 的整数,如果数组中有这个数,则函数值等于该数的下标,否则函数值等于-1。
数组的长度由参数size 指定。
假定数组第一个元素的下标为1。
5、一个折半查找程序可搜索按字母顺序排列的名字列表,如果查找的名字在列表中则返回真,否则返回假。
为了对它进行功能测试,应该使用哪些测试用例?真,否则返回假。
为了对它进行功能测试,应该使用哪些测试用例?6、航空公司A 向软件公司B 订购了一个规划飞行路线的程序。
假设你是软件公司C 的软件工程师。
第四章
4.1.简述软件设计阶段的基本任务。
答:(1)数据/类设计数据/类设计将分析类模型变换成类的实现和软件实现所需要的数据结构。
(2)体系结构设计体系结构设计定义了软件的整体结构,由软件部件、外部可见的属性和他们之间的关系组成。
(3)接口设计接口设计描述了软件内部、软件和协作系统之间以及软件同人之间的通信方式。
(4)部件级设计部件级设计将软件体系结构的结构性元素变换为对软件部件的过过程性描述。
4.2.软件设计与软件质量的关系是怎么样的?
答:设计是在软件开发中形成质量的阶段,设计提供了可以用于质量评估的软件表示,是将用户需求准确地转化为完整的软件产品或系统的主要途径。
4.4.简述模块、模块化及模块化设计的概念。
答:模块:具有名字、参数、功能等外部特征以及完场模块功能的程序代码和模块内部数据等特征。
模块化:把软件按照规定原则,划分为一个个较小的,相互独立的但又相互关联的部件。
模块化设计:简单地说就是程序的编写不是开始就逐条录入计算机语句和指令,而是首先用主程序、子程序、子过程等框架把软件的主要结构和流程描述出
来,并定义和调试好各个框架之间的输入、输出链接关系。
4.5.举例说明每种类型的模块耦合度和每种类型的模块内聚度。
答:1、巧合内聚:讲几个模块中没有明确表现出独立功能的相同程序代码段独立出来建立的模块称巧合内聚模块。
2、逻辑内聚:逻辑内聚是指完成一组逻辑相关任务的模块,调用该模块时,由传送给
模块的控制性参数来确定该模块应执行哪一种功能。
3、时间内聚:时间内聚是指一个模块中的所有任务必须在同一时间段内执行。
4、过程内聚:过程内聚是指一个模块完成多个任务,这些任务必须指定的过程执行。
5、通信内聚:通信内聚是指一个模块内所有处理元素都集中在某个数据结构的一块区
域中。
6、顺序内聚:顺序内聚是指一个模块完成多个功能,这些功能又必须顺序执行
7、功能内聚:功能内聚是指一个模块中各个部分都是为完成一项具体功能而协同工作,
紧密联系,不可分割。
1、内容耦合:当一个模块直接修改或操作另一个模块的数据,或者直接转入另一
个模块时,就发生了内容耦合。
此时,被修改的模块完全依赖于修
改它的模块。
如果发生下列情形,两个模块之间就发生了内容耦合
(1) 一个模块直接访问另一个模块的内部数据;
(2) 一个模块不通过正常入口转到另一模块内部;
(3) 两个模块有一部分程序代码重叠(只可能出现在汇编语言中);
(4) 一个模块有多个入口。
2、公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。
公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。
3外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。
4.控制耦合:如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。
5.标记耦合:一组模块通过参数表传递记录信息,就是标记耦合。
这个记录是某一数据结构的子结构,而不是简单变量。
其实传递的是这个数据结构的地址;
6.数据耦合:一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的。
7非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。
4.6.耦合和软件可移植性的概念有何关系?举例说明自己的结论。
答:耦合性是2个或多个模块相关的程度,可移植性是指软件从一个平台/环境转移到另一个平台/环境的难易程度。
4.7.用自己的话描述信息隐蔽概念,并讨论信息隐藏域模块独立两概念之间的关系。
答:1、信息隐蔽指在设计和确定模块时,使得一个模块内包含信息(过程或数据),对于不需要这些信息的其他模块来说,是不能访问的.
在面向对象方法中,信息隐蔽是通过对象的封装性来实现的。
2、信息隐蔽的概念与模块的独立性直接相关。
4.8.什么是模块的独立性?设计中为什么模块要独立?如何度量独立性?模块功能独立有何优点?
答:(1)模块独立性:1.模块独立性指每个模块只完成系统要求的独立的子功能,并且
与其他模块的联系最少且接口简单
2.模块独立性是指模块内部各部分及模块间的关系的一种衡量
标准,由内聚和耦合来度量。
(2)1、具有独立的模块的软件比较容易开发出来。
这是由于能够分割功能而且接口可以简化,当许多人分工合作开发同一个软件时,这个优点尤其重
要。
2、独立的模块比较容易测试和维护。
这是因为相对说来,修改设计和程序
需要的工作量比较小,错误传播范围小,需要扩充功能时能够"插入"模块。
总之,模块独立是优秀设计的关键,而设计又是决定软件质量的关键环节。
(3)模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合。
耦合衡量不同模块彼此间互相依赖(连接)的紧密程度;内聚衡量一个模块
内部各个元素彼此结合的紧密程度。
(4)1、具有独立的模块的软件比较容易开发出来。
这是由于能够分割功能而且接口可以简化,当许多人分工合作开发同一个软件时,这个优点尤其重要。
2、独立的模块比较容易测试和维护。
4.9软件设计规约主要包括哪些内容?自己寻找一个实例,亲自写一个设计规约。
答:包括软件设计规约的目的、范围、定义、首字母、缩写词、缩略语、参考资料和概述。