软件工程实用教程第三版郭宁主编课后习题及答案(供参考)

合集下载

软件工程实用教程第三版-郭宁主编-课后习题及答案

软件工程实用教程第三版-郭宁主编-课后习题及答案

软件工程实用教程第三版-郭宁主编-课后习题及答案第一章软件工程引论1.在下列选项中,(D)不是软件的特征。

A.系统性与复制性 B. 可靠性与一致性 C. 抽象性与智能型 D.有形性与可控性2.软件是一种(B)产品。

A.有形 B. 逻辑 C. 物质 D. 消耗3.软件工程是一种(A)分阶段实现的软件程序开发方法。

A.自顶向下B. 自底向上C. 逐步求精D. 面向数据流4.与计算机科学的理论研究不同,软件工程是一门(B)学科。

A.理论性 B. 工程性 C. 原理性 D. 心理性5.软件工程与计算机科学性质不同,软件工程着重于(C)。

A.原理探讨 B. 理论研究 C. 建造软件系统 D. 原理性的理论6.下列说法正确的是(B)A.软件工程的概念于20世纪50年代提出B.软件工程的概念于20世纪60年代提出C.20世纪70年代出现了客户机/服务器技术D.20世纪80年代软件工程学科达到成熟7.软件工程方法学中的软件工程管理是其中的一个重要内容,它包括软件管理学和软件工程经济学,它要达到的目标是(D)A.管理开发人员,以开发良好的软件B.采用先进的软件开发工具,开发优秀的软件C.消除软件危机,达到软件生产的规模效益D.以基本的社会效益为基础,工程化生产软件第二章软件生命周期及开发模型1.软件生命周期包括可行性分析和项目开发计划、需求分析、总体设计、详细分析、编码、(B)、维护等活动。

A.应用 B. 测试 C. 检测 D. 以上答案都不正确2.软件生命周期模型有多中,下列项目中,(C)不是软件生命周期模型。

A.螺旋模型 B. 增量模型 C. 功能模型 D. 瀑布模型3.软件生命周期中时间最长的阶段时(D)A.需求分析阶段 B. 总体设计阶段 C. 测试阶段 D. 维护阶段4.瀑布模型是一种(D)A.软件开发方法B. 软件生存周期C. 程序设计方法学D. 软件生存周期模型5.软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为(A)A.瀑布模型B. 对象模型C. 螺旋模型D. 层次模型6.在结构化的瀑布模型中,(D)阶段定义的标准将成为软件测试中系统测试阶段的目标A.详细设计阶段B. 总体设计阶段C. 可行性研究阶段D. 需求分析7.增量模型是一种(B)的模型A.整体开发B. 非整体开发C. 灵活性差D. 较晚产生工作软件8.(C)是指模拟某种产品的原始模型A.模型B. 最初模型C. 原型D. 进化模型9.建立原型的目的不同,实现原型的途径也有所不同,下列不正确的类型是(B)A.用于验证软件需求的原型B. 垂直原型C. 用于验证设计方案的原型D.用于演化出目标系统的原型10.原型化方法是一种(A)型的设计过程。

软件工程实用教程(2版)-第2、3、4、5章-习题与参考答案(人民邮电大学出版社 郭宁主编)

软件工程实用教程(2版)-第2、3、4、5章-习题与参考答案(人民邮电大学出版社 郭宁主编)

《软件工程实用教程》第2、3、4、5章习题与参考答案第2章软件生存周期及开发模型1.简述什么是软件生存周期?根据国家标准《计算机软件开发规范》,软件生存周期主要包括哪几个阶段?答案要点:软件生存周期是指软件产品从功能确定、设计、开发成功、投入使用,并在使用中不断修改、完善,直至被新的软件所替代,而停止该软件使用的全过程。

国家标准GB8566-1988《计算机软件开发规范》将软件生命周期划分为几个阶段:可行性研究、项目计划、需求分析、总体设计、详细设计、编码实现(包括单元测试)、集成测试、确认测试、系统运行和维护。

这几个阶段又可以归纳为3个大的阶段,即软件定义阶段,软件开发阶段和软件运行维护阶段。

2.瀑布模型有哪些特点?对于里程碑,你有哪些认识?答案要点:瀑布模型是一种基于里程碑的阶段过程模型,它所提供的里程碑式的工作流程,为软件项目按规程管理提供了便利。

例如,按阶段制定项目计划,分阶段进行成本核算,进行阶段性的评审等。

这为提高软件产品质量提供了有效保证。

瀑布模型的特点:•阶段性:前一阶段工作完成以后,后一阶段工作才能开始,前一阶段的输出文档是后一阶段的输入文档。

•阶段评审:在每一阶段工作完成后都要进行评审,以便尽早发现问题,避免后期的返工,如果评审不合格,则不开始下一阶段的工作。

•文档管理:在每阶段都规定了要完成的文档,没有完成文档,就认为没有完成该阶段的任务。

3.试说明原型模型的两种实现方案各有什么特点?各适用于什么情况?答案要点:原型模型在软件分析、设计阶段的应用,用来解决用户对软件系统在需求分析上的模糊认识。

将模拟的手段引入需求分析的初期阶段,通过建立原型缩短用户与分析人员之间的距离。

快速原型方法具有以下一些特点。

•快速原型是用来获取用户需求的,或是用来试探某种设计是否有效。

一旦需求或设计确定下来,原型就将被抛弃。

因此快速原型要求快速构建、容易修改,以节约原型创建成本,加速开发速度。

快速原型往往采用软件生成工具来创建,例如,4GL语言。

软件工程 课后习题答案

软件工程   课后习题答案

第一章1.1什么是计算机软件?软件的特点是什么?计算机软件是指计算机系统中的程序及其文档软件的特点:软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算。

软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大。

软件的使用没有硬件那样的机械磨损和老化问题。

1.2简述软件的分类,并举例说明1.系统软件系统软件居于计算机系统中最接近硬件的一层,其他软件一般都通过系统软件发挥作用。

例如:编译软件、操作系统。

2.支撑软件支撑软件是支撑软件的开发和维护的软件。

例如:数据库管理系统、网络软件、软件工具、软件开发环境。

3.应用软件应用软件是特定应用领域专用的软件。

例如:工程/科学计算机软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。

1.3简述软件语言的分类,并举例说明。

1.需求定义语言是用于书写软件需求定义的语言。

例如:PSL/PSA。

2.功能性语言是用于书写软件功能规约的语言,通常又称为功能规约语言。

例如:广谱语言、Z语言。

3.设计性语言是用于书写软件设计规约的语言。

例如:PDL。

4.实现性语言也称为程序设计语言,是用于书写计算机程序的语言。

例如:C、java、PROLOG、FORTRAN、COBOL、Modula。

5.文档语言是用于书写软件文档的语言。

通常用自然语言或半形式化语言书写。

1.4什么是软件工程?软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。

软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的。

1.5简述软件工程的基本原则。

软件工程原则包括围绕工程设计、工程支持和工程管理所提出的以下4条基本原则。

1.选取适宜的开发模型必须认识需求定义的易变性,采用适宜的开发模型,保证软件产品满足用户的要求。

2.采用合适的设计方法合适的设计方法有助于这些特征的实现,以达到软件工程的目标。

3.提供高质量的工程支撑软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。

实用软件工程第3版习题解答-附答案

实用软件工程第3版习题解答-附答案

《实用软件工程》第3版习题参考答案习题 11.5 读者认同“4种开发方法”的方法论和“五个面向”的实践论吗?为什么?“四种开发方法”是指“面向过程的方法、面向对象的方法、面向数据的方法、形式化方法”。

面向过程的方法来源于面向过程的程序设计;面向对象的方法来源于面向对象的程序设计;面向数据的方法就是面向元数据的方法,它来源于关系数据库程序设计;形式化方法来源于离散数学中的集合运算和逻辑运算。

四种方法各适用于不同的场合,各有优缺点,互相促进,构成开发方法论的多极化世界。

“五个面向理论”是指“面向流程分析、面向数据设计、面向对象实现、面向功能测试、面向过程管理”,它是在综合“四种开发方法”各自的优点之后提出的软件工程实施理论,是对前者的继承与发展。

总之,上述提法既精彩又实用。

1.11 什么叫软件危机?通过本章的学习,你认为应该怎样克服软件危机?所谓软件危机,就是在软件开发和维护过程中所遇到一系列难以控制的问题。

“软件危机”这个专业术语的首次出现,是1968年NATO(North Atlantic Treaty Organization,北约)的计算机科学家,在联邦德国召开的国际学术会议上提出的。

为了克服软件危机,同样是在1968年,北约科技委员会召集了近50名一流的编程人员、计算机科学家和工业界巨头,讨论和制定摆脱“软件危机”的对策。

就在那次会议上,第一次提出了软件工程(Software Engineering)这个专业术语。

当时人们的想法是:若借用建筑工程或机器制造工程的思想、标准、规范、规程去开发软件与维护软件,也许能克服软件危机。

以后的实践证明:用工程的方法开发软件与维护软件是个好主意,但是要完全克服软件危机,还有许多其他工作要做。

例如,将软件公司纳入CMMI的过程改进轨道,就能真正克服软件危机。

2.4 简述瀑布模型、增量模型、迭代模型、原型模型、XP等模型的优缺点。

软件开发模型比较表4.10 业界存在哪三种需求分析方法?你认为哪一种方案更好?业界存在三种需求分析方法:面向功能分析、面向对象分析、面向数据分析。

软件工程课后习题参考答案

软件工程课后习题参考答案

软件工程课后习题参考答案软件工程课后习题参考答案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. 如何收集和管理需求?答:需求可以通过面对面的访谈、问卷调查、原型设计等方式进行收集。

需求管理可以通过需求文档、需求变更控制和需求跟踪等方法进行。

二、设计阶段答案在软件开发的设计阶段,我们需要制定软件系统的结构和组件。

以下是几个常见问题的答案:1. 什么是软件设计?答:软件设计是根据需求分析得出的软件系统的功能和性能要求,制定软件系统的结构和组件的过程。

2. 设计过程中有哪些关键任务?答:设计过程中的关键任务包括制定软件架构、设计模块和组件、定义接口、评估设计质量等。

3. 如何评估设计质量?答:可以使用设计评审、设计规范检查、质量度量等方法来评估设计质量,确保设计满足需求并且易于实现和维护。

三、编码和测试阶段答案在软件开发的编码和测试阶段,我们需要实现和验证软件系统的功能。

以下是几个常见问题的答案:1. 什么是软件编码?答:软件编码是将设计好的软件模块转化为具体的计算机程序代码的过程。

2. 编码过程中需要注意哪些问题?答:编码过程中需要注意代码的可读性、可维护性,采用合适的命名规范和编码风格,并进行代码注释和文档编写,以便他人能够理解和使用代码。

软件工程第三版课后习题

软件工程第三版课后习题

第一章一、判断题1.S WE B O KV3分两大类,共有15个知识域。

(Y)2.软件工程的提出起源于软件危机,其目的是最终解决软件的生产工程化。

(Y)3.软件工程学一般包括软件开发技术和软件工程管理两方面的内容,软件开发方法学和软件工程环境属于软件开发技术的内容,软件工程经济学属于软件工程管理。

(N)4.软件开发中的最大问题不是管理问题,而是技术问题。

(N)5.X P(e X t r e me P r o g r a mm i n g,极限编程)是由K e n t B e c k提出的一套针对业务需求和软件开发实践的规则,包括13个核心实践。

(Y)二、选择题1.下列所述不是敏捷生存期模型的是(C)。

A.S c r u mB.X PC.V模型D.O P E NU P2.软件工程的出现主要是由于(C)。

A.程序设计方法学的影响C.软件危机的出现B.其他工程学科的影响D.计算机的发展3.以下(C)不是软件危机的表现形式。

A.开发的软件不满足用户的需要B.开发的软件可维护性差C.开发的软件价格便宜D.开发的软件可靠性差4.以下不是S WE B O KV3的软件工程实践中的知识域的是(B)。

A.软件需求B.工程基础C.软件构造D.软件设计5.下列所述不是软件组成的是(D)。

A.程序B.数据C.界面D.文档6.下列对“计算机软件”描述正确的是(A)。

A.是计算机系统的组成部分B.不能作为商品参加交易C.是在计算机硬件设备生产过程中生产出来的D.之存在语计算机系统工作时7.软件工程方法的提出源于软件危机,其目的应该是最终解决软件的(D)问题。

A.软件危机B.质量保证C.开发效率D.生产工程化8.软件工程设计软件开发技术和项目管理等方面内容,下述内容中(D)不属于开发技术的范畴。

A.软件开发方法B.软件开发工具C.软件工程环境D.软件工程经济第二章一、判断题1.面向对象开发过程是多次重复和迭代的演化过程,(需要补充:面向对象开发方法是)在概念和表示方法是的一致性保证了各项开发活动之间的平滑过渡。

软件工程第三版答案

软件工程第三版答案

软件工程第三版答案【篇一软件工程课后答案】1.1什么是计算机软件软件的特点是什么答计算机软件指计算机系统中的程序及其文档。

软件的特点是a软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确得估算;b软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大;c软件的使用没有硬件那样的机械磨损和老化问题。

1.2简述软件的分类,并举例说明。

答在计算机科学技术百科全书中,将软件分为系统软件、支撑软件和应用软件3类。

a系统软件系统软件居于计算机系统中最靠近硬件的一层,其他软件一般都通过系统软件发挥作用。

系统软件与具体的应用领域无关。

例如编译程序、操作系统等。

b支撑软件支撑软件是支撑软件的开发和维护的软件。

例如数据库管理系统、网络软件、软件工具、软件开发环境等。

c应用软件应用软件是特定应用领域专用的软件。

例如工程/科学计算软件、嵌入式软件、产品线软件、web 应用软件、人工智能软件。

1.4什么是软件工程答在计算机科学技术百科全书中软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。

1.5简述软件工程的基本原则。

答软件工程原则包括围绕工程设计、工程支持和工程管理提出的以下4条基本原则第一条围绕适宜的开发模型;第二条采用合适的设计方法;第三条提供高质量的工程支撑;第四条重视软件工程的管理。

1.6软件生存周期分哪几个阶段分别简述各个阶段的任务。

答软件生存周期有计算机系统工程、需求分析、设计、编码、测试、运行和维护6个阶段。

a计算机系统工程的任务是确定待开发软件的总体要求和范围,以及该软件与其他计算机系统元素之间的关系,进行成本估算,做出进度安排,并进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中做出选择。

b需求分析主要解决待开发软件要“做什么”的问题,确定软件的功能、性能、数据、界面等要求,生成软件需求规约。

软件工程方法与实践第三版答案

软件工程方法与实践第三版答案

软件工程方法与实践第三版答案一、选择题1.软件的主要特性是(ABC)。

A无形B)高成本C包括程序和文档D)可独立构成计算机系统2.软件工程三要素是(CD)A技术、方法和工具B)方法、工具和过程C)方法、对象和类D)过程、模型、方法3.包含风险分析的软件工程模型是(A)。

A螺旋模型B)瀑布模型C)增量模型D)喷泉模型4.软件工程的主要目标是(C)。

A软件需求B)软件设计C)风险分析D)软件实现5.下列属于面向对象开发方法的是(ABCD)。

ABooch B)UML C)Coad D)OMT6.软件危机的主要表现是(BD)。

A)软件成本太高B)软件产品的质量低劣C)软件开发人员明显不足D)软件生产率低下7.软件开发方法的主要工作模型有(ABC)A螺旋模型B)循环模型C)瀑布模型D)专家模型8.软件工程的目标有(ABC)。

A易于维护B)低的开发成本©)高性能D)短的开发期9.软件工程学的目的和意义是()A应用科学的方法和工程化的规范管理来指导软件开发B)克服软件危机C)作好软件开发的培训工作D)以较低的成本开发出高质量的软件二、判断题1.软件就是程序,编写软件就是编写程序。

()2.瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。

()3.结构化方法的工作模型是使用螺旋模型进行开发。

(~)4.结构化方法和JSP方法都不适合于大型软件的开发。

()5.原型化开发方法包括生成原型和实现原型两个步骤。

(~)6.面向对象的开发方法包括面向对象的分析、面向对象的设计和面向对象的程序设计。

()7.软件危机的主要表现是软件的需求量迅速增加,软件价格上升。

()8.软件工具的作用是为了延长软件产品的寿命。

()9.软件工程过程应该以软件设计为中心,关键是编写程序。

()10.RCP法与RSP法的主要区别是前者采用循环渐进的开发方式,原型将成为最终的产品,而后者将被废弃。

()三、简答题1.软件产品的特性是什么?答:·软件是一种逻辑产品,具有无形性:·软件产品的生产主要是研制:·软件不存在磨损和老化问题,但存在退化问题:。

软件工程课本习题答案

软件工程课本习题答案
2.3形式化方法的特点是什么?
形式化方法的主要特点是:
(1)软件需求规格说明被细化为用数学记号表达的详细的形式化规格说明;
(2)设计、实现和单元测试等开辟过程由一个变换开辟过程代替。通过一系列变换将形式的规格说明细化成为程序。
2.5安装RationalRose2000/2002/2003,并练习基本操作。
缺点:RUP只是一个开辟过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容;此外,它没有支持多项目的开辟结构,这在一定程度上降低了在开辟组织内大范围实现重用的可能性。
合用范围:合用于基于构件的软件开辟。
2软件工程方法与工具
2.1软件工程的三种基本要素是什么,各自的作用是什么?
术问题,更重要的是必须有科学严格的管理。
(5)缺少有效的软件评测手段,提交给用户的软件的质量不能彻底保证。
1.5什么是软件工程?
第1章 作业参考答案
软件工程是指导计算机软件开辟和维护的工程学科。采用工程的概念、原理、技术和方法来开辟和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开辟出高质量的软件并有效地维护它,这就是软件工程。
产生软件危机的原因:除了软件本身的特点,其原因主要有以下几个方面:
(1)缺乏软件开辟的经验和有关软件开辟数据的积累,使得开辟工作计划很难制定。
(2)软件人员与用户的交流存在障碍,使得获取的需求不充分或者存在错误。
(3)软件开辟过程不规范。如,没有真正了解用户的需求就开始编程序。
(4)随着软件规模的增大,其复杂性往往会呈指数级升高。需要不少人分工协作,不仅涉及技
必须做什么”这个问题。
(3)软件设计:本阶段要回答的关键问题是“目标系统如何做?”为此,必须在设计阶段中制

软件工程第一二三章习题参考答案

软件工程第一二三章习题参考答案

第一章软件工程概述软件是计算机程序及其有关旳数据和文档旳结合。

软件危机是指在计算机软件开发和维护时所碰到旳一系列问题。

软件危机重要包括两方面旳问题: 一是怎样开发软件以满足对软件日益增长旳需求;二是怎样维护数量不停增长旳已经有软件。

软件工程是软件开发、运行、维护和引退旳系统措施。

软件工程是指导计算机软件开发和维护旳工程学科。

软件工程采用工程旳概念、原理、技术和措施来开发与维护软件。

软件工程旳目旳是实现软件旳优质高产。

软件工程学旳重要内容是软件开发技术和软件工程管理。

软件开发措施学是编制软件旳系统措施, 它确定软件开发旳各个阶段, 规定每一阶段旳活动、产品、验收旳环节和完毕准则。

常用旳软件开发措施有构造化措施、面向数据构造措施和面向对象措施等。

习题参照答案:1) 1. 什么是软件危机?为何会出现软件危机?2)答: 软件危机是指在计算机旳开发和维护过程中所碰到旳一系列严重问题。

这些问题决不仅仅是不能正常运行旳软件才具有旳, 实际上, 几乎所有软件都不一样程度地存在这些问题。

3)出现软件危机旳原因:首先与软件自身旳特点有关, 另首先也和软件开发与维护旳措施不对旳有关。

软件不一样于硬件, 它是计算机系统中逻辑件而不是物理部件。

管理和控制软件开发过程相称困难。

软件是规模庞大, 并且程序复杂性将伴随程序规模旳增长而呈指数上升。

目前相称多旳软件专业人员对软件开发和维护尚有不少糊涂观念, 在实践过程中或多或少地采用了错误旳措施和技术, 这是使软件问题发展成软件危机旳重要原因。

总结如下:4)获得对旳旳顾客需求和对旳地描述需求很困难5)开发人员对需求旳对旳理解也有困难6)常常在没有对旳理解之前就仓促开始编程7)软件项目缺乏有效旳组织、管理和内部交流8)缺乏软件开发措施、模型和工具旳支持9)软件维护旳困难性2. 假设你是一家软件企业旳总工程师, 当你把图1.1给手下旳软件工程师们观看, 告诉他们及早发现并改正错误旳重要性时, 有人不一样意你旳观点, 认为规定在错误进入软件之前就清除它们是不现实旳, 并举例说: “假如一种故障是编码错误导致旳, 那么, 一种人怎么能在设计阶段清除它呢?”你怎么反驳他?答: 在软件开发旳不一样阶段进行修改付出旳代价是很不相似旳, 在初期引入变动, 波及旳面较少, 因而代价也比较低;在开发旳中期, 软件配置旳许多成分已经完毕, 引入一种变动要对所有已完毕旳配置成分都做对应旳修改, 不仅工作量大, 并且逻辑上也更复杂, 因此付出旳代价剧增;在软件已经完毕时再引入变动, 当然付出旳代价更高。

软件工程教程课后参考答案

软件工程教程课后参考答案

软件工程教程课后参考答案软件工程是一个涉及软件开发生命周期的综合性学科,它包含了软件需求、设计、开发、测试和维护等多个环节。

本文将为大家提供软件工程教程的课后参考答案,帮助读者更好地理解和掌握软件工程的相关知识。

一、软件需求分析在软件开发过程中,需求分析是非常关键的一步。

它的目的是明确用户的需求,为后续的软件设计和开发提供依据。

需求分析主要包括以下几个步骤:1.1 需求搜集:通过与用户沟通、调研等方式收集用户需求,可以采用面谈、问卷调查等方法。

1.2 需求分析:对搜集到的需求进行整理和分析,明确用户的具体需求和优先级。

1.3 需求规格说明:将需求以文档形式进行规格化,包括用例图、用例描述、功能需求等。

1.4 验证需求:通过与用户的确认、需求评审等方式,确保需求的正确性和完整性。

二、软件设计软件设计是指根据需求分析的结果,对软件进行整体架构、模块划分等设计工作。

下面是软件设计的一般过程:2.1 系统架构设计:确定系统的整体结构,包括模块划分、模块之间的关系等。

2.2 模块设计:对系统中的每个模块进行详细设计,包括定义模块接口、数据结构等。

2.3 数据库设计:设计系统所需的数据库结构,包括数据表的设计、关系建立等。

2.4 用户界面设计:设计软件的用户界面,包括界面布局、交互方式等。

2.5 验证设计:对设计进行评审和验证,确保设计的合理性和可行性。

三、软件开发软件开发是指根据需求和设计的结果,进行编码、调试和测试等开发工作。

下面是软件开发的一般过程:3.1 编码实现:根据设计文档进行编码工作,将设计的结果转化为可执行的程序。

3.2 单元测试:对每个模块进行独立测试,确保模块的功能和接口正确。

3.3 组件测试:将多个模块组装在一起进行测试,确保各个模块之间的协同工作正常。

3.4 系统测试:对整个软件系统进行测试,包括功能测试、性能测试等。

3.5 调试和修复:在测试过程中发现问题,进行调试和修复,确保软件的稳定性和可靠性。

软件工程课后习题参考答案

软件工程课后习题参考答案

软件工程课后习题参考答案1.简述软件开发的本质答: 软件开发的本质就是实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。

P192.简述实施软件开发的基本途径。

答: 实施软件开发的基本途径是系统建模。

所谓系统建模,是指运用所掌握的知识,通过抽象,给出该系统的一个结构——系统模型。

P193.简述何谓模型以及软件开发中所涉及的模型。

答: 模型是一个抽象。

该抽象是在意图所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述。

软件开发中所涉及的模型可分为两大类,一类称为概念模型,描述了系统是什么;另一类统称为软件模型,描述了实现概念模型的软件解决方案。

4.简述软件开发所涉及的两大类技术。

答: 软件开发所涉及的两大类技术为: 一是求解软件的开发逻辑,二是求解软件的开发手段。

5、简述需求与需求规约的基本性质。

答:需求的基本性质:1) 必要的,该需求是用户所要求的。

2) 无歧义的,该需求只能用一种方式解释。

3) 可测的,该需求是可进行测试的。

4) 可跟踪的,该需求可从一个开发阶段跟踪到另一个阶段。

5) 可测量的,该需求是可测量的。

需求规约的基本性质:1) 重要性和稳定性程度: 按需求的重要性和稳定性,对需求进行分级。

2) 可修改的: 在不过多地影响其他需求的前提下,可以容易地修改一个单一需求。

3)完整的:没有被遗漏的需求。

4)一致的:不存在互斥的需求。

6、简述软件需求的分类答:软件需求可以分为两大类:一类是功能需求,一类是非公能需求,而非公能需求可分为性能需求,外部接口需求、功能需求7、举例说明功能需求和非功能需求之间的基本关系。

答:非功能需求可作用于一个或多个功能需求,例如非功能需求可作用于一个或多个功能需求其中,非功能需求1作用于功能需求1和功能需求3等;非功能需求2作用于功能需求2等。

P248、有哪几种常用的初始需求发现技术?答:有5种常用的需求发现技术:自悟、交谈、观察、小组会和提炼。

软件工程实用教程第三版_郭宁主编_课后习题与答案

软件工程实用教程第三版_郭宁主编_课后习题与答案

第一章软件工程引论1.在下列选项中,(D)不是软件的特征。

A.系统性与复制性B. 可靠性与一致性C. 抽象性与智能型D.有形性与可控性2.软件是一种(B)产品。

A.有形B. 逻辑C. 物质D. 消耗3.软件工程是一种(A)分阶段实现的软件程序开发方法。

A.自顶向下B. 自底向上C. 逐步求精D. 面向数据流4.与计算机科学的理论研究不同,软件工程是一门(B)学科。

A.理论性B. 工程性C. 原理性D. 心理性5.软件工程与计算机科学性质不同,软件工程着重于(C)。

A.原理探讨B. 理论研究C. 建造软件系统D. 原理性的理论6.下列说法正确的是(B)A.软件工程的概念于20世纪50年代提出B.软件工程的概念于20世纪60年代提出C.20世纪70年代出现了客户机/服务器技术D.20世纪80年代软件工程学科达到成熟7.软件工程方法学中的软件工程管理是其中的一个重要内容,它包括软件管理学和软件工程经济学,它要达到的目标是(D)A.管理开发人员,以开发良好的软件B.采用先进的软件开发工具,开发优秀的软件C.消除软件危机,达到软件生产的规模效益D.以基本的社会效益为基础,工程化生产软件第二章软件生命周期及开发模型1.软件生命周期包括可行性分析和项目开发计划、需求分析、总体设计、详细分析、编码、(B)、维护等活动。

A.应用B. 测试C. 检测D. 以上答案都不正确2.软件生命周期模型有多中,下列项目中,(C)不是软件生命周期模型。

A.螺旋模型B. 增量模型C. 功能模型D. 瀑布模型3.软件生命周期中时间最长的阶段时(D)A.需求分析阶段B. 总体设计阶段C. 测试阶段D. 维护阶段4.瀑布模型是一种(D)A.软件开发方法B. 软件生存周期C. 程序设计方法学D. 软件生存周期模型5.软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为(A)A.瀑布模型B. 对象模型C. 螺旋模型D. 层次模型6.在结构化的瀑布模型中,(D)阶段定义的标准将成为软件测试中系统测试阶段的目标A.详细设计阶段B. 总体设计阶段C. 可行性研究阶段D. 需求分析7.增量模型是一种(B)的模型A.整体开发B. 非整体开发C. 灵活性差D. 较晚产生工作软件8.(C)是指模拟某种产品的原始模型A.模型B. 最初模型C. 原型D. 进化模型9.建立原型的目的不同,实现原型的途径也有所不同,下列不正确的类型是(B)A.用于验证软件需求的原型B. 垂直原型C. 用于验证设计方案的原型D.用于演化出目标系统的原型10.原型化方法是一种(A)型的设计过程。

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

第一章软件工程引论1.在下列选项中,(D)不是软件的特征。

A.系统性与复制性 B. 可靠性与一致性 C. 抽象性与智能型 D.有形性与可控性2.软件是一种(B)产品。

A.有形 B. 逻辑 C. 物质 D. 消耗3.软件工程是一种(A)分阶段实现的软件程序开发方法。

A.自顶向下B. 自底向上C. 逐步求精D. 面向数据流4.与计算机科学的理论研究不同,软件工程是一门(B)学科。

A.理论性 B. 工程性 C. 原理性 D. 心理性5.软件工程与计算机科学性质不同,软件工程着重于(C)。

A.原理探讨 B. 理论研究 C. 建造软件系统 D. 原理性的理论6.下列说法正确的是(B)A.软件工程的概念于20世纪50年代提出B.软件工程的概念于20世纪60年代提出C.20世纪70年代出现了客户机/服务器技术D.20世纪80年代软件工程学科达到成熟7.软件工程方法学中的软件工程管理是其中的一个重要内容,它包括软件管理学和软件工程经济学,它要达到的目标是(D)A.管理开发人员,以开发良好的软件B.采用先进的软件开发工具,开发优秀的软件C.消除软件危机,达到软件生产的规模效益D.以基本的社会效益为基础,工程化生产软件第二章软件生命周期及开发模型1.软件生命周期包括可行性分析和项目开发计划、需求分析、总体设计、详细分析、编码、(B)、维护等活动。

A.应用 B. 测试 C. 检测 D. 以上答案都不正确2.软件生命周期模型有多中,下列项目中,(C)不是软件生命周期模型。

A.螺旋模型 B. 增量模型 C. 功能模型 D. 瀑布模型3.软件生命周期中时间最长的阶段时(D)A.需求分析阶段 B. 总体设计阶段 C. 测试阶段 D. 维护阶段4.瀑布模型是一种(D)A.软件开发方法B. 软件生存周期C. 程序设计方法学D. 软件生存周期模型5.软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为(A)A.瀑布模型B. 对象模型C. 螺旋模型D. 层次模型6.在结构化的瀑布模型中,(D)阶段定义的标准将成为软件测试中系统测试阶段的目标A.详细设计阶段B. 总体设计阶段C. 可行性研究阶段D. 需求分析7.增量模型是一种(B)的模型A.整体开发B. 非整体开发C. 灵活性差D. 较晚产生工作软件8.(C)是指模拟某种产品的原始模型A.模型B. 最初模型C. 原型D. 进化模型9.建立原型的目的不同,实现原型的途径也有所不同,下列不正确的类型是(B)A.用于验证软件需求的原型B. 垂直原型C. 用于验证设计方案的原型D.用于演化出目标系统的原型10.原型化方法是一种(A)型的设计过程。

A.在外向内B. 自顶向下C. 自内向外D. 自底向上11.对于原型的使用建议,以下说法不正确的是(C)A.对于开发周期很长的项目,能够使用原型B. 在系统的使用可能变化较大、不能相对稳定是,能够使用原型 C. 缺乏开发工具,或对原型的可用工具不了解的时候,能够使用原型 D. 开发者对系统的某种设计方案的实现无信心或无十分的把握时,能够使用原型12.原型模型的主要特点之一是(B)A.开发完毕才见到产品B. 及早提供工作软件C. 及早提供全部完整软件D. 开发完毕才见到工作软件第三章结构化需求分析1.需求工程的主要目的是(C)A.制定系统开发的具体方案B. 进一步确定系统的需求C. 解决系统是“做什么的为题” D. 解决系统是“如何做的问题”2.需求分析的任务不包括(B)A.问题分析B. 系统设计C. 需求分析D.需求评审3.软件分析的第一步要做的工作是(A)A.定义系统的目标B. 定义系统的功能模块C. 分析用户需求D. 分析系统开发的可行性4.可行性研究的目的是用最小的代价在尽可能短的时间内确定问题的(A)A.能否可解B. 工程进度C. 开发计划D. 人员配置5.需求分析最终结果是产生(B)A.项目开发计划B. 需求规格说明书C. 设计说明书D. 可行性分析报告6.在结构化分析方法中,(C)是表达系统内部数据运动的图形化技术A.数据字典B. 实体关系图C. 数据流图D. 状态转换图7.DFD中的每个加工至少需要(D)A.一个输入流B. 一个输出流C. 一个输入或输出流D. 一个输入流和一个数处理8.需求分析的主要方法有(C)A.形式化分析方法B. PAD图描述C. 结构化分析方法D. 程序流程图9.SA法的主要描述手段有(B)A.系统流程图和模块图B. DFD图、数据字典、加工说明C. 软件结构图、加工说明D. 功能结构图、加工说明10.软件需求分析阶段的工作,可以分为以下4个方面:对问题的识别、分析与综合、编写需求分析文档以及(C)A.总结B. 编写阶段性报告C. 进行需求分析评审D. 以上答案都不正确第四章结构化软件设计1.在面向数据流的软件设计方法中,一般将信息里与分为(D)A.数据流和控制流 B. 变换流和控制流 C. 事务流和控制流 D. 变换流和事务流2.耦合度可以分为七级,其中最松散的耦合是(A)A.非直接耦合B. 数据耦合C. 特征耦合D. 控制耦合3.当模块中包含复杂的条件组合,只有(A)能够清晰的表达出各种动作之间的对应关系A.判定表和判定树B. 盒图C. 流程图D. 关系图4.一个软件的宽度是指其控制的(C)A.模块数B. 层数C. 跨度D. 厚度5.面向数据流的软件设计方法可将(C)映射成软件结构A.控制结构B. 模块C. 数据流D. 事务流第五章面向对象的需求分析1.采用UML进行软件建模的过程中,类图是系统的一种静态视图,用(B)可明确表示两类事物之间存在的整体/部分形式的关联关系。

A.依赖关系B. 聚合关系C. 泛化关系D. 实现关系2.在UML语言中,图中的a、b、c三中图形符号按照顺序分别表示(C)A.边界对象、实体对象、控制对象B. 实体对象、边界对象、控制对象C. 控制对象、实体对象、边界对象 D. 边界对象、控制对象、实体对象3.不同的对象收到同一消息可以产生完全不同的结果,这一现象叫做(B)A. 继承B. 多态C. 动态绑定D. 静态绑定第六章面向对象的软件设计1.下面哪种设计模式定义了对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新(D)A. Adapter(适配器)B. Iterator(迭代器)C. Prototype(原型)D. Observer(观察者)2.UML中有多种类型的图,其中,(B)对系统的使用方式进行了分类;()显示了类及其相互关系;()显示了人或对象的活动,其方式类似于流程图;通信图显示了在某种情况下对象之间发送的消息;()与通信图类似,但强调的是顺序而不是连接。

A. 用例图、顺序图、类图、活动图B. 用例图、类图、活动图、顺序图C. 类图、顺序图、活动图、用例图 D. 活动图、顺序图、用例图、类图3.UML类图的类与类之间的关系有5种:继承、依赖、关联、组合和聚合,若类A需要使用标准数学函数类库中提供的功能,那么类A与标准类库中提供的类之间存在(A)关系A. 依赖B. 关联C. 聚合D. 组合第七章软件测试技术1.用边界值分析法,假定1<X<100,那么X在测试中应该取的边界值是(B)A.X=1,X=100B. X=0,X=1,X=100,X=101C. X=2,X=99D. X=0,X=1012.下列关于软件验收测试的合格通过准则错误的是(C)A. 软件需求分析说明书中定义的所有功能已全部实现B. 所有测试项没有C. 立项审批表、需求分析文档、设计文档和编码实现不一致 D.验收测试工件齐全3. 以下关于集成测试的内容正确的有(D)①集成测试也叫组装测试或者联合测试②测试在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失③测试一个模块的功能是否会对另一个模块的功能产生不利影响④测试各个子功能组合起来,能否达到预期要求的父功能⑤测试全局数据结构是否有问题⑥测试单个模块的误差累积起来,是否会放大,从而达到不能接受的程度A.①②④⑤⑥B. ②③④⑤⑥C. ①②③⑤⑥D. 以上全部正确4.为了提高测试的效率,应该(D)A.随机的选取测试数据 B. 取一切可能的输入数据作为测试数据 C. 在完成编码以后制定软件的测试计划 D. 选择发现错误的可能性大的数据作为测试数据5.软件调试的目的是(A)A.找出错误所在并改正之B. 排除存在错误的可能性C. 对错误性质进行分类D.统计出错的次数6.单元测试一般以白盒为主,测试的依据是(A)A.模块功能规格说明B. 系统模块结构图C. 系统需求规格说明D. 统计出错的次数7.下次关于α、β测试的描述中正确的是(C)A.α测试不需要用户代表参加B. β测试不是验收测试的一种C. α测试可以有用户代表参加 D. β测试是系统测试的一种8.软件测试的目的是(B)A.评价软件的质量B. 发现软件的错误C. 找出软件中所有的错误D. 证明软件是正确的9.软件测试用例主要由输入数据和(C)两部分组成A.测试计划B. 测试规则C. 预期输出结果D. 以往测试记录分析10.在黑盒测试中,着重检查输入条件组合的方法是(D)A.等价类划分法B. 边界值分析法C. 错误推测法D. 因果图法第八章软件维护技术1. 随着软硬件环境变化而修改软件的过程是(B)A. 校正性维护B. 适宜性维护C. 完善性维护D. 预防性维护2. 为了提高软件的可维护性,在编码阶段应注意(B)A. 保存测试用例和数据B. 提高模块的独立性C. 文档的副作用D. 养成好的程序设计风格3. 为提高系统性能而进行的修改属于(C)A. 纠正性维护B. 适应性维护C. 完善性维护D. 测试性维护4. 软件生命周期中,(D)阶段所站的工作量最大A. 分析阶段B. 设计阶段C. 编码阶段D. 维护阶段5. 系统维护中要解决的为题来源于(D)A. 系统分析阶段B. 系统设计阶段C. 系统实施阶段D. 上述3个阶段(A、B、C)都包括6.软件维护的副作用,是指(C)A. 开发时的错误B. 隐含的错误C. 因修改软件而造成的错误D. 运行时的误操作第一章软件工程引论1.软件工程出现的主要原因是软件危机的出现。

√2.文档是软件产品的一部分,没有文档的软件就不能称为软件。

√3.软件危机的主要表现是软件需求量迅速增加,软件价格上升。

×4.一个成功的项目唯一应该提交的就是运行程序法。

×5.与计算机科学的理论研究不同,软件工程是一门原理性学科。

×第二章软件生命周期及开发模型1.瀑布模型和增量模型都属于整体开发模型。

×2.原型模型可以有效地适应用户需求的动态变化。

相关文档
最新文档