软件工程概论的练习题及答案

概述

一、填空题

1、软件由计算机程序、数据和文档组成。

2、软件是一种逻辑产品,它与物质产品有很大的区别。

3、计算机系统由硬件、软件、使用计算机的人、数据库、文档和执行过程组成。

4、软件的发展,到现在为止,经历了三个阶段:程序设计、程序系统和软件工程。

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

6、软件工程是一门综合性的交叉学科,它涉及计算机学科工程学科、管理学科和数学学科。

7、计算机科学的成果都可用于软件工程,但计算机科学着重于理论和原理,软件工程着重于建造软件系统。

8、软件工程研究的主要内容是方法、过程和工具等三个方面。

9、软件开发各阶段任务的划分应尽可能相对独立,同一阶段任务的性质应尽可能相同。

10、瀑布模型是将软件生存期各个活动规定为依线性顺序连接的若干阶段的模型。它规定了各阶段的活动由前至后,相互衔接的固定次序,如同瀑布流水,逐级下落。

11、演化模型是一种非整体开发模型。先开发一个原型软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的产品。

12、螺旋模型将开发过程分为几个螺旋周期。在每个螺旋周期内分为四个工作步骤:制定计划、风险分析、开发实施、用户评估。

13、喷泉模型是一种以用户要求为动力,以对象为驱动的模型。它使开发过程具有迭代性和无间隙性,适用于面向对象开发方法。

二、单项选择题

1、软件产品的生产主要是C。

A. 制造

B. 复制

C. 开发

D. 研制

2、个体手工劳动是B时代的软件生产方式。

A. 程序系统

B. 程序设计

C. 软件工程

D. 程序编码

3、软件工程是一门C学科。

A. 理论性

B. 原理性

C. 工程性

D. 心理性

4、软件开发费用只占软件生存期全部费用的B。

A. 1/2

B. 1/3

C. 1/4

D. 2/3

5、在软件开发过程中大约要花费C%的工作量进行测试和调试。

A. 20

B. 30

C. 40

D. 50

6、准确地解决“软件系统必须做什么”是B阶段的任务。

A. 可行性研究

B. 需求分析

C. 软件设计

D. 程序编码

7、软件生存期中时间最长的是D阶段。

A. 需求分析

B. 软件设计

C. 软件测试

D. 软件运行/维护

8、在软件生存期的模型中,D适合于大型软件的开发它吸收了软件工程中“演化”的概念。

A .喷泉模型B. 基于知识的模型C. 瀑布模型D. 螺旋模型

9、在软件生存期中,用户的参与主要在A。

A. 软件定义阶段

B. 软件开发阶段

C. 软件维护阶段

D. 整个软件生存期过程中

10、在软件开发过程中的每个阶段都要进行严格的D,以尽早发现在软件开发过程中产生的错误。

A. 检验

B. 验证

C. 度量

D. 评审

11、在软件开发和维护过程中需要变更需求时,为了保持软件各个配置成分的一致性,必须实施严格的B

A. 产品检验

B. 产品控制

C. 产品标准化

D. 开发规范

12、实践表明,采用先进的开发技术可提高软件开发的生产率,还可提高软件的D。

A. 可靠性

B. 可使用性

C. 安全性

D. 可维护性

13、为了提高软件开发过程的A,有效地进行管理,应当根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准。

A. 可见性

B. 生产率

C. 安全性

D. 有效性

14、随着开发小组人数的A,因交流开发进展情况和讨论遇到的问题而造成的通信开销也急剧增加。

A. 增加

B. 降低

C. 稳定

D. 不稳定

15、为保证软件开发的过程能够跟上技术的进步,必须不断地灵活地改进软件工程C。

A. 原则

B. 工具

C. 过程

D. 方法

三、选择填空题

1、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括内。

软件是计算机系统中与硬件相互依存的另一部分,它是包括(②)、(⑦)及(⑤)的完整集合。其中,(②)是按事先设计的功能和性能要求执行的指令序列。(⑦)是使程序能够正确操纵信息的数据结构。(⑤)是与程序开发、维护和使用有关的图文材料。

供选择的答案:A~C. ① 软件② 程序③ 代码④ 硬件⑤ 文档⑥ 外设⑦ 数据⑧ 图表

2、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括内。开发软件时对提高软件开发人员工作效率至关重要的是(①)。软件工程中描述生存周期的瀑布模型一般包括计划、(①)、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成(③)和(⑥)两步。

供选择的答案:A.① 程序开发环境②操作系统的资源管理功能③程序人员数量④计算机的并行处理能力B.① 需求分析②需求调查③可行性分析④问题定义 C、D.①方案设计②代码设计③概要设计④数据设计⑤运行设计⑥详细设计⑦故障处理设计⑧ 软件体系结构设计

3、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括内。有人将软件的发展过程划分为4个阶段:

第一阶段(1950~1950年代末)称为“程序设计的原始时期”,这时既没有( A ),也没有( B ),程序员只能用机器指令编写程序。

第二阶段(1950年代末~1960年代末)称为“基本软件期”。出现了(①),并逐渐普及。随着(④)的发展,编译技术也有较大的发展。

第三阶段(1960年代末~1970年代中期)称为“程序设计方法时代”。这一时期,与硬件费用下降相反,软件开发费急剧上升。人们提出了(⑤)和(⑧)等程序设计方法,设法降低软件的开发费用。

第四阶段(1970年代中期~现在)称“软件工程时期”。软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如(⑤)、(④)、编码、单元测试、综合测试、(①)及其整体有关的各种管理技术。

供选择的答案:

A~D:①汇编语言②操作系统③虚拟存储器概念④高级语言⑤结构式程序设计⑥数据库概念⑦固件

⑧模块化程序设计

E~G:① 使用和维护② 兼容性的确认③ 完整性的确认④ 设计⑤ 需求定义⑥ 图象处理

4、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括内。

软件工程的最终目的是以较少的投资获得可维护的、可靠的、高效率的和可理解的软件产品。软件工程技术应遵循(⑦)、(④)、(⑥)、(③)、一致性、确定性、完备性、可验证性、抽象和信息隐蔽。

原型法适用于开发较复杂的系统,原型可分为三种:(②)、(⑤)和(④)。

供选择的答案:A~D①有效性②合理性③局部化④协同性⑤实用性⑥模块化⑦抽象⑧信息隐蔽E~G:① 复用型② 实验型③ 废弃型④ 演化型⑤ 探索型

四、问答题

1、什么是软件?它的特性是什么?

答:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发,维护和使用有关的图文材料。

软件的特点是:

(1) 软件是一种逻辑实体,而不是具体的物理实体。它具有抽象性。

(2) 软件的生产与硬件不同,它没有明显的制造过程。

(3) 在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题。然而它存在退化问题。

(4) 软件的开发和运行常常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。

(5) 软件的开发至今尚未完全摆脱手工艺的开发方式。

(6) 软件本身是复杂的。软件的复杂性可能来自它所反映的实际问题的复杂性,也可能来自程序逻辑结构的复杂性。

(7) 软件成本相当昂贵。

2、试比较软件发展的三个时期的特点,从软件所指、软件工作范围、软件开发组织、决定质量的因素、开发技术和手段等几个方面说明它们的差别。

答:

3、软件工程是开发、运行、维护和修复软件的系统化方法,它包含哪些要素?试说明之。答:软件工程包括三个要素:方法、工具和过程。

软件工程方法为软件开发提供了“如何做”的技术。它包括了多方面的任务,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、算法过程的设计、编码、测试以及维护等。

软件工具为软件工程方法提供了自动的或半自动的软件支撑环境。

软件工程的过程则将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。过程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理、及软件开发各个阶段完成的里程碑。

4、软件工程过程有哪几个基本过程活动?试说明之。

答:软件工程过程的基本过程活动有4步:

· P (Plan) : 软件规格说明。规定软件的功能及其运行的限制;

· D (Do) : 软件开发。产生满足规格说明的软件;

· C (Check) : 软件确认。确认软件能够完成客户提出的要求;

· A (Action) : 软件演进。为满足客户的变更要求,软件必须在使用的过程中演进。

5、试说明“软件生存期”的概念。

答:软件与任何一个事物一样,有它的孕育、诞生、成长、成熟、衰亡的生存过程。这就是软件的生存期。它分为6个阶段:

(1) 软件项目计划:在这一步要确定软件工作范围,进行软件风险分析,预计软件开发所需要的资源,建立成本与进度的估算。根据有关成本与进度的限制分析项目的可行性。(2) 软件需求分析和定义:在这一步详细定义分配给软件的系统元素。可以用以下两种方式中的一种对需求进行分析和定义。一种是正式的信息域分析,可用于建立信息流和信息结构的模型,然后逐渐扩充这些模型成为软件的规格说明。另一种是软件原型化方法,即建立软件原型,并由用户进行评价,从而确定软件需求。

(3) 软件设计:软件的设计过程分两步走。第一步进行概要设计,以结构设计和数据设计开始,建立程序的模块结构,定义接口并建立数据结构。第二步做详细设计,考虑设计每一个模块部件的过程描述。经过评审后,把每一个加细的过程性描述加到设计规格说明中去。

(4) 程序编码:在设计完成之后,用一种适当的程序设计语言或CASE工具生成源程序。应当就风格及清晰性对代码进行评审,而且反过来应能直接追溯到详细设计描述。

(5) 软件测试:单元测试检查每一单独的模块部件的功能和性能。组装测试提供了构造软件模块结构的手段,同时测试其功能和接口。确认测试检查所有的需求是否都得到满足。在每一个测试步骤之后,要进行调试,以诊断和纠正软件的故障。

(6) 软件维护:为改正错误,适应环境变化及功能增强而进行的一系列修改活动。与软件维护相关联的那些任务依赖于所要实施的维护的类型。

6、试论述瀑布模型软件开发方法的基本过程,比较它的优点和缺点。

答:瀑布模型规定了各项软件工程活动,包括:制定软件项目计划,进行需求分析和定义,软件设计,程序编码,测试及运行维护。并且规定了它们自上而下,相互衔接的固定次序,如同瀑布流水,逐级下落。瀑布模型为软件开发和软件维护提供了一种有效的管理图式。根据这一图式制定开发计划、进行成本预算、组织开发力量,以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,从而保证了软件产品及时交付,并达到预期的质量要求。瀑布模型的缺点是缺乏灵活性,特别无法解决软件需求本身不明确或不准确的问题。这些问题的存在对软件开发会带来严重影响,最终可能导致开发出的软件并不是用户真正需要的软件,并且这一点在开发过程完成后才有所察觉。面对这些情况,无疑需要进行返工或是不得不在维护中纠正需求的偏差。但无论上述哪一种情况都必须付出高额的代价,并将为软件开发带来不必要的损失。

7、试说明演化模型软件开发方法的基本过程,比较它的优点和缺点。

答:由于在项目开发的初始阶段人们对软件的需求认识常常不够清晰,因而使得开发项目难于做到一次开发成功,出现返工再开发在所难免。因此,可以先做试验开发,其目标只是在于探索可行性,弄清软件需求;然后在此基础上获得较为满意的软件产品。通常把第一次得到的试验性产品称为“原型”。

演化模型从需求分析开始。软件开发人员与用户一起定义待开发软件系统的总目标,定义需求,确定软件的工作范围。然后快速设计软件中对使用者可见部分的表示,进而建造原型,再让用户或客户评估原型,根据评估结果,修改和细化待开发软件系统的需求,使之满足用户的需求。这个过程是一个迭代的过程。

演化模型的优点是:

·演化模型能够得到更好的软件需求,它不仅能够处理模糊的需求,而且开发人员与用户可通过原型充分进行交流;

·演化模型给用户提供了机会,以更改用户原来设想的不尽合理的最终系统;

·演化模型使得开发出来的最终系统更容易维护,对用户更友好;

·演化模型可以降低总的开发费用,缩短开发时间。

演化模型的缺点是:

·对于开发人员不熟悉的领域,演化模型可能误导开发者把系统的次要部分当作主要框架,作出不切题的原型;

·原型过快地收敛于需求集合,使得某些基本方面被忽视;

·长期在原型环境下开发,只注意得到令人满意的原型,容易“遗忘”用户环境与实际客户环境之间的差别。

8、试说明螺旋模型软件开发方法的基本过程,比较它的优点和缺点。

答:对于复杂的大型软件,开发一个原型往往达不到要求。螺旋模型将瀑布模型与演化模型结合起来,并且加入两种模型均忽略了的风险分析,弥补了两者的不足。

螺旋模型是一种风险驱动的模型。在软件开发中存在各种风险。项目越复杂,设计方案、资源、成本、进度等因素的不确定性越大,项目开发的风险也就越大。及时对风险进行识别、分析,采取对策,可消除或减少风险的损害。

螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相吻合。在每个螺旋周期内按四个象限,分为四个工作步。第一,制定计划:确定软件目标,选定实施方案,明确项目开发的限制条件;第二,风险分析:分析所选方案,识别风险,通过原型消除风险;第三,开发实施:实施软件开发;第四,客户评估:评价开发工作,提出修正建议,建立下一个周期的计划。

螺旋模型适合于大型软件的开发,应该说它是最为实际的方法,它吸收了软件工程“演化”的概念,使得开发人员和客户对每个演化层出现的风险有所了解,继而做出应有的反映。螺旋模型的优越性比起其它模型来说是明显的,但并不是绝对的。模型的使用需要具有相当丰富的风险评估经验和专门知识。如果项目风险较大,又未能及时发现,势必造成重大损失。此外,螺旋模型是出现较晚的新模型,远不如瀑布模型普及,要让广大软件人员和用户充分肯定它,还有待于更多的实践。

9、软件工程的基本目标有哪些?试说明它们之间的关系。

答:组织实施软件工程项目,从技术上和管理上采取了多项措施以后,最终希望达到以下几个主要的目标:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发工作,及时交付使用。

在具体项目的实际开发中,企图让以上几个目标都达到理想的程度往往是非常困难的。10、软件工程的基本原则有哪些?试说明之。

答:在软件开发过程中必须遵循下列软件工程原则。

·抽象 : 采用分层次抽象,自顶向下、逐层细化的办法进行功能分解和过程分解,可以由抽象到具体、由复杂到简单,逐步得到问题的解。

·信息隐蔽 : 遵循信息封装,使用与实现分离的原则,将模块设计成“黑箱”,可以将实现的细节隐藏在模块内部,使用者只能通过模块接口访问模块中封装的数据。

·模块化 : 按模块划分系统的体系结构,使得各模块间有良好的接口。这样有助于信息隐蔽和抽象,有助于表示复杂的系统。

·局部化 : 按抽象数据类型思想及问题域中的概念来建立模块,确保模块之间低耦合,模块内部高内聚。这有助于控制解的复杂性。

·确定性 : 软件开发过程中所有概念的表达应是确定的、无歧义性的、规范的。这有助于人们之间的沟通,保证整个开发工作协调一致。

·一致性 : 强调软件开发过程的标准化、统一化。包括文档格式的一致,工作流程的一致,

内、外部接口的一致,系统规格说明与系统行为的一致等。

·完备性 : 软件系统不丢失任何重要成分,可以完全实现系统所要求功能。

·可验证性 : 开发大型的软件系统需要对系统自顶向下、逐层分解。系统分解应遵循系统易于检查、测试、评审的原则,以确保系统的正确性。

11、软件工程的基本原理有哪些?试说明之。

答:软件工程的基本原理是:

·按软件生存期分阶段制定计划并认真实施。在软件生存期中需要完成许多不同性质的工作,所以应把软件生存期划分为若干阶段,并相应制定出可行的计划,且按照计划对软件的开发和维护活动进行管理。不同层次的管理人员都必须严格按照计划各尽其职地管理软件的开发和维护工作。

·坚持进行阶段评审。软件的质量保证工作不能等到编码阶段结束之后再进行。错误发现得越晚,为改正它所需付出的代价就越大。因此,在每个阶段都要进行严格的评审,以尽早发现在软件开发过程中产生的错误。

·坚持严格的产品控制。在软件开发过程中不应随意改变需求,因为改变一项需求往往需要付出较高的代价。但由于外界环境的变化或软件工作范围的变化,在软件开发过程中改变需求又是难免的,不能硬性规定禁止客户改变需求,只能依靠科学的产品变更控制技术来顺应需求的变更。其中主要是实施基线配置管理。

·使用现代程序设计技术。实践表明,采用先进的技术可提高软件开发的生产率,还可提高软件的可维护性。其中包括结构化程序设计技术,Jackson程序设计技术,面向对象程序设计技术等。

·明确责任。软件产品是看不见摸不着的逻辑产品。为了提高软件开发过程的可见性,有效地进行管理,应当根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,使得工作结果能够得到清楚的审查。

·用人少而精。合理安排软件开发小组人员的原则是参与人员应当少而精,即小组的成员应当具有较高的素质,且人数不应过多。人员素质高能大大提高软件开发的生产率,明显减少软件中的错误。软件开发小组人员少而精可以减少因交流开发进展情况和讨论遇到的问题而造成的通信开销。

·不断改进开发过程。必须不断地灵活地改进软件工程过程,积极主动地采用新的软件技术,注意不断总结经验。此外,需要注意收集和积累出错类型、问题报告等数据,用以评估软件技术的效果和软件人员的能力,确定必须着重开发的软件工具和应当优先研究的技术。

12、有人说:软件开发时,一个错误发现得越晚,为改正它所付出的代价就越大。对否?请解释你的回答。

答:软件开发时,一个错误发现得越晚,为改正它所付出的代价就越大。这个说法是对的。在1970年代,GTE、TRW和IBM等三家公司对此问题做了独立研究,最后它们得到相似的结

论:

从表中可以看出,在需求分析阶段检查和修复一个错误所需的代价只有编码阶段所需代价的1/5到1/10,而在维护阶段做同样的工作所付出的代价却是编码阶段的20倍。

项目管理

一、填空题

1、要成功地完成软件开发工作的一个主要的决定性因素是项目管理。

2、软件过程是软件生存期中的一系列相关工程活动集合。

3、所有的软件开发都可以看成是一个问题循环解决过程,其中包括4个截然不同的阶段:状态捕捉、问题定义、技术开发和方案综合。

4、在制定软件项目计划之前,必须先明确项目的目标和范围。项目的目标标明了软件项目的目的但不涉及如何去达到这些目的。

5、对软件进行度量,是为了表明软件产品的质量,弄清软件开发人员的生产率,建立项目估算的基线,帮助调整对新的工具和附加培训的要求。

6、软件质量的事后度量包括正确性、可维护性、完整性和可使用性。其中完整性包括危险性和安全性。

7、软件范围包括功能、性能、限制、接口和可靠性。

8、软件项目计划的第二个任务是对完成该软件项目所需的资源进行估算。资源包括人与工具。

9、对于一个大型的软件项目,要进行一系列的估算处理。主要靠分解和类推的手段进行。

10、基本COCOMO模型是一个静态单变量模型,它用一个已估算出的源代码行数(LOC)为自变量的(经验)函数来计算软件开发工作量。

11、成本-效益分析的目的,是从经济角度评价开发一个新的软件项目是否可行。

12、风险估计从两个方面估价风险。一是估计一个风险发生的可能性。一是估价与风险相关的问题出现后将会产生的结果。

13、一个软件任务由一个人单独开发,生产率最高。

14、在与软件成本相关的影响因素中,人员的能力是最大影响因素。

15、软件开发所需的人力随开发的进展逐渐增加,在编码与单元测试阶段达到高峰,以后又逐渐减少。

16、在建立项目组织时应注意的原则有三:①尽早落实责任,指定专人负责;②减少接口,要有合理的人员分工、好的组织结构、有效的通信,减少不必要的生产率的损失;③责权均衡。

17、风险出现概率可以使用从过去项目、直觉或其它信息收集来的度量数据进行统计分析估算出来。

18、用各种不同的方法对风险进行分类是可能的。从宏观上来看,可将风险分为项目风险、技术风险和商业风险。

二、选择题

1、所有的软件开发都可以看成是一个问题B过程。

A. 顺序解决

B. 循环解决

C. 分类解决

D. 分组解决

2、软件项目管理所涉及的范围覆盖了整个软件D。

A. 开发过程

B. 运行与维护过程

C. 定义过程

D. 生存期

3、为使软件开发获得成功,一个关键问题是必须对软件范围、风险、资源、任务、里程碑、成本,进度等做到心中有数,而C可以提供这些信息。

A. 计算机辅助工程

B. 软件开发工具

C. 软件项目管理

D. 软件估算

4、软件范围标明了软件要实现的基本功能,并尽量以A的方式界定这些功能。

A. 定量

B. 规范

C. 统一

D. 定性

5、只要事先建立特定的度量规程,很容易做到B开发软件所需要的成本和工作量、产生的代码行数等。

A. 间接度量

B. 直接度量

C. 间接估算

D. 直接估算

6、为了计算特征点,可以像计算功能点那样,对信息域值进行计数和加权。此外,需要对一个新的软件特征A进行计数。

A. 算法

B. 计算误差

C. 程序复杂性

D. 效率

7、对于软件的D,有一种简单的面向时间的度量,叫做平均变更等待时间MTTC(Mean Time To Change)。这个时间包括开始分析变更要求、设计合适的修改、实现变更并测试它、以及把这种变更发送给所有的用户。

A. 可靠性

B. 可修改性

C. 可测试性

D. 可维护性

8、软件的完整性是度量一个系统抗拒对它的C攻击(事故的和人为的)的能力。

A. 可靠性

B. 正确性

C. 安全性

D. 容错性

9、对每一种软件资源,应说明4个特性:资源的描述,资源的有效性说明,资源在何时开始需要,使用资源的持续时间。最后两个特性统称为A。

A. 时间窗口

B. 时间安排

C. 日程安排

D. 资源定义

10、业务系统计划工具借助特定的C建立一个组织的战略信息需求的模型,导出特定的信息系统。

A. 过程性语言

B. 形式化语言

C. 元语言

D. 伪码

11、软件开发成本主要是指软件开发过程中所花费的B及相应的代价。

A. 劳动力

B. 工作量

C. 资源

D. 持续时间

12、自顶向下估算软件成本的方法主要是从项目的整体出发进行B,即根据已完成项目的总成本(或总工作量),来推算待开发软件的总成本(或总工作量),然后按比例将它分配到各开发任务单元中去。

A. 分解

B. 类推

C. 推导

D. 评估

13、自底向上估算软件成本的方法主要是把待开发软件A,直到每一个子任务都已经明确所需要的开发工作量,然后把它们加起来,得到软件开发的总工作量。

A. 分解

B. 类推

C. 推导

D. 评估

16、系统的经济效益B因使用新系统而增加的收入加上使用新系统可以节省的运行费用。

A. 大于

B. 等于

C. 小于

D. 不等于

17、项目复杂性、规模和结构的不确定性构成C(估算)风险因素。

A. 技术

B. 经济

C. 项目

D. 商业

18、识别风险的一种最好的方法就是利用一组A来帮助人们了解在项目和技术方面有哪些风险。因此,Boehm建议使用一个“风险项目检查表”。

A. 提问

B. 项目

C. 脚本

D. 场景

19、在做风险评价时常采用的一个非常有效的方法就是定义D。

A. 风险评价标准

B. 风险影响因子

C. 风险调整因素

D. 风险参照水准

21、当几个人共同承担软件开发项目中的某一任务时,人与人之间必须通过交流来解决各自承担任务之间的A问题,即所谓通信问题。

A. 接口

B. 衔接

C. 调用

D. 控制

22、假设一个人单独开发软件,生产率是5000行/人年。若4个人组成一个小组共同开发这个软件,在每条通信路径上耗费的工作量是250行/人年。则组中每人的生产率降低为C

A. 4200

B. 4350

C. 4675

D. 4375

23、PERT技术叫做 B技术,它是采用网络图来描述一个项目的任务网络,安排开发进度,制定软件开发计划的最常用的方法。

A. 日程安排

B. 计划评审

C. 关键路径

D. 因果图

24、在进度压力下赶任务,其成果往往是以B产品的质量为代价的。

A. 浪费

B. 牺牲

C. 抵押

D. 维持

三、选择填空题

1、从供选择的答案中选出与下列有关软件过程叙述相对应的正确答案,将其编号填入到相应的括弧内。软件过程是软件(4)中的一系列相关软件工程(3)的集合。每一个软件过程又是由一组(6)、项目(8)、软件工程产品和交付物以及质量保证(SQA)点等组成。一个软件过程可以用右图的形式来表示。首先建立一个(2)过程框架,其中定义了少量可适用于所有软件项目的框架(3),再给出各个框架(3)的任务集合,最后是保护伞活动,如软件质量保证、软件配置管理以及测量等。软件过程模型的选择基于项目和应用的特点、采用的(5)和工具、要求的控制和需交付的产品。

A.④

B.③

C.⑥

D. ⑧

E.

② F. ⑤

供选择的答案:A~F.①工程②公共③活动④生存期⑤方法⑥工作任务⑦功能⑧里程碑 2、从供选择的答案中选出与下列有关软件项目管理叙述相对应的正确答案,将其编号填入到相应的括弧内。

由于软件工程有如下的特点,使软件管理比其它工程的管理更为困难。软件产品(2)。(6)标准的过程。大型软件项目往往是(3)项目。(2)的作用是为有效地定量地进行管理,把握软件工程过程的实际情况和它所产生的产品质量。在制定计划时,应当对人力、项目持续时间、成本作出(4);(5)实际上就是贯穿于软件工程过程中一系列风险管理步骤。最后,每一个软件项目都要制定一个(1),一旦(6)制定出来,就可以开始着手(5)。

供选择的答案:A. ② B. ⑥ C. ③ D. ② E. ④ F. ①G. ⑥H. ⑤

A~C. ①可见的②不可见的③“一次性”④“多次”⑤存在⑥不存在

D~H.①进度安排②度量③风险分析④估算⑤追踪和控制⑥开发计划

3、从供选择的答案中选出与下列有关软件度量叙述相对应的正确答案,将其编号填入到相应的括弧内。

软件的度量包括( A1 )和( B4 )。软件产品的( A 1 )包括产生的代码行数、执行速度等。软件产品的( B )则包括若干质量特性。我们还可进一步将软件度量如右图所示那样分类。软件( C )度量主要关注软件工程过程的结果;( D )度量则指明了软件适应明确和不明确的用户要求到什么程度;( E )度量主要关注软件的一些特性而不是软件开发的全过程。从图中还可看到另一种分类方法:面向( F )的度量用于收集与直接度量有关软件工程输出的信息和质量信息。面向( G )的度量提供直接度量的尺度。面向( H )的度量则收集有关人们开发软件所用方式的信息和人们理解有关工具和方法的效率的信息。

A. ①

B. ④

C. ④

D. ①

E. ②

F. ⑤

G. ⑦

H. ③

供选择的答案:A~B.①直接度量②尺度度量③二元度量④间接度量 C~E.①质量②技术

③成本④生产率 F~H.①过程②对象③人④存取⑤规模⑥进程⑦功能⑧数据

4、从供选择的答案中选出与下列有关软件估算叙述相对应的正确答案,将其编号填入到相应的括弧内。估算资源、成本和进度时需要经验、有用的历史信息、足够的定量数据和作定量度量的勇气。通常估算本身带有( A )。项目的复杂性越高,规模越大,开发工作量( B ),估算的( A )就( C )。项目的

结构化程度提高,进行精确估算的能力就能( D ),而风险将( E )。有用的历史信息( F ),总的风险会减少。

供选择的答案:A. ③ B. ② C. ⑦ D. ① E. ③ F. ②

A. ①风范(范型)②风格③风险④度量 B~F.①增加②越多③降低④不变⑤越少⑥越高⑦越大

5、从供选择的答案中选出与下列有关软件估算叙述相对应的正确答案,将其编号填入到相应的括弧内。

在软件项目估算时,将代码行LOC和功能点FP数据在两个方面使用:一是作为一个估算变量,度量软件每一个( A )的大小;一是联合使用从过去的项目中收集到的( B )和其它估算变量,进行成本和( C )估算。LOC和FP是两种不同的估算技术,但两者有许多共同的特征,只是LOC和FP技术对于分解所需要的( D )不同。当用( E )作为估算变量时,功能分解是绝对必要且应达到很详细的程度,而用( F )作为估算变量时,分解程度可以不很详细。( E )是直接估算,( F )是间接估算。若计划人员对每个功能分别按最佳的、可能的、悲观的三种情况给出LOC或FP估计值,记作a, m, b,则LOC或FP 的期望值E的公式为( G ),m是加权的最可能的估计值,遵循( H )。

供选择的答案:A. ③, B. ⑦, C. ⑤, D. ①, E. ②, F. ①, G. ②, H. ③。

A~C.①模块②软件项目③分量④持续时间⑤工作量⑥进度⑦基线数据⑧改进数据 D.①详细程度②分解要求③改进过程④使用方法 E,F.①FP ②LOC G.①E = (a+m+b)/3 ②E = (a+4m+b)/6

③E = (2a+3m+4b)/3 ④ H.①χ概率②γ概率③β概率④泊松

6、从供选择的答案中选出与下列有关软件估算叙述相对应的正确答案,将其编号填入到相应的括弧内。

在考虑各种软件开发资源时,( A )是最重要的资源。如果把软件开发所需的资源画成一个金字塔形:在塔的上层是最基本的资源( A ),在底部为( B )。( B )包括硬件资源和软件资源。( C )、( D )和其它硬件设备属于硬件资源。IPSE工具属于软件资源中的( E )。为了提高软件的生产率和软件产品的质量,可建立( F )。

供选择的答案:A. ② B. ③ C. ② D. ④ E. ⑥ F. ⑤

A, B.①方法②人力③工具④上下文环境 C, D.①虚拟机②目标机③自动机④宿主机

E, F.①维护工具②分析设计工具③支持工具④编程工具⑤可复用构件库⑥框架工具⑦原型化模拟工具

7、从供选择的答案中选出与下列有关软件成本估算叙述相对应的正确答案,将其编号填入到相应的括弧内。

定义一个人参加劳动时间的长短为( A ),其度量单位为PM(人月)或PY(人年)。而定义完成一个软件项目(或软件任务)所需的( A )为( B ),其度量单位是人月/项目(任务),记作PM(人月)。进一步地,定义单位( A )所能完成的软件( C )的数量为软件( D ),其度量单位为LOC/PM。它表明一般指( E )的一个平均值。例如,一个软件的开发工作量如下表所示。该软件共有源代码2900行,其中, 500行用于测试,2400行是执行( F )的源代码。则劳动生产率是( G ) (LOC/PM)。

供选择的答案:A. ④ B. ② C. ④ D. ① E. ① F. ② G. ④

A, B, D.①生产率②工作量③成本④劳动量E.①开发全过程②某开发阶段③软件生存期④某开发任务

F, C.①软件②程序③进程④产品 G.①520 ②120 ③320 ④240

8、从供选择的答案中选出与下列有关软件成本估算叙述相对应的正确答案,将其编号填入到相应的括弧内。对于一个大型的软件项目,由于项目的复杂性,需要进行一系列的估算处理。主要按( A )和( B )

手段进行。估算的方法分为三类:从项目的整体出发,进行( B )的方法称为( C )估算法。把待开发的软件细分,直到每一个子任务都已经明确所需要的开发工作量,然后把它们加起来,得到软件开发总工作量的方法称为( D )估算法。而把待开发的软件项目与过去已完成的软件项目做类比,区分出类似部分和不同部分分别处理的方法称为( E )估算法。( F )是由多位专家进行成本估算的方法。

供选择的答案:A. ③, B. ①, C. ②, D. ③, E. ①, F. ④

A,B.①类推②类比③分解④综合

C~F.①差别②自顶向下③自底向上④专家判定技术⑤循序渐进⑥比较

10、从供选择的答案中选出与下列有关软件成本估算叙述相对应的正确答案,将其编号填入到相应的括弧内。

一个规模为10KDSI的商用微机远程通信的嵌入型软件,使用中间COCOMO模型进行软件成本估算。程序的名义工作量MM = ( A );程序实际工作量MM = ( B );开发所用的时间TDEV = ( C );如果软件开发人员的工资都按每月6000美元计算,则该软件项目的开发人员的工资总额 = ( D )。

表1 中间COCOMO模型的名义工作量与进度公式

表2 影响工作量的因素fi 的取值

A. ③,

B. ②,

C. ①,

D. ④

供选择的答案:A,B. ①45.8 ②51.5 ③44.38 ④54.2 C.①8.9月②9.8月③7.8月④10.9月

D.①26.4万美元②36万美元③20.96万美元④30.9万美元

11、从供选择的答案中选出与下列有关软件成本-效益分析叙述相对应的答案,将其编号填入到相应的括弧内。

假设开发某个计算机应用系统的投资额为3000元,该计算机应用系统投入使用后,每年可以节约1000

元,5年内可能节约5000元。3000元是现在投资的钱,5000元是5年内节省的钱,两者不能简单地比较。假定年利率为12%,利用计算货币现在价值的公式,可以算出该计算机应用系统投入使用后每年预计节省的金额的现在价值。

A. ④,

B. ②,

C. ③

则该系统的纯收入是( A ),投资回收期是( B ),投资回收率为( C )。

供选择的答案:A.①512.3元②729.28元③602.4元④612.27元 B.①2. 4年②3.93年③4.25年④2.78元 C.①25% ②30% ③20% ④15%

12从供选择的答案中选出与下列有关软件风险分析叙述相对应的正确答案,将其编号填入到相应的括弧内。

在特定情况下,是否必须进行风险分析,是对项目开发的形势进行( A )后确定的。( A )可以按如下步骤进行:明确项目的目标、总策略、具体策略和为完成所标识的目标而使用的方法和资源;保证该目标是( B ),项目成功的标准也是( B );考虑采用某些条目作为项目成功的( C );根据估计的结果来确定是否要进行风险分析。

一般来说,风险分析的方法要依赖于特定问题的需求和有关部门所关心的方面。具体分3步进行。第一步识别潜在的风险项,首先进行( D )过程;第二步估计每个风险的大小及其出现的可能性,选择一种( E ),它可以估计各种风险项的值;第三步进行风险评估。风险评估也有三个步骤:确定( F ),确定( G ),把风险与“参照风险”做比较。

供选择的答案:A. ② B. ① C. ② D. ② E. ③ F. ④ G. ③

A.①风险管理②风险估计③风险评价④风险测试

B.①可度量的②不可度量的③准确的④不确定的

C.①规范②标准③过程模型④设计要求 D,E.①信息分类②信息收集③度量尺度④标准⑤度量工具⑥信息获取 F,G.①风险的范围②风险的特性③风险的级别④风险的评价标准⑤风险的排除策略

13、从供选择的答案中选出与下列有关软件风险分析叙述相对应的正确答案,将其编号填入到相应的括弧内。

风险分析实际上是4个不同的活动,按顺序依次为( A )、( B )、风险评价和( C )。在风险评价时,应当建立一个三元组:[ ri, li, xi ],ri是风险描述,li是( D ),而xi是风险的影响。一个对风险评价很有用的技术是定义( E )。( F )、( G )、( H )是三种典型的( E )。在做风险分析的上下文环境中一个( E )就存在一个单独的点,叫做参照点或( I )。在这个点上要公正底给出判断。实际上,参照点能在图上表示成一条平滑的曲线的情况很少,多数情况它是一个( J )。

供选择的答案:A. ②, B. ③, C. ①, D. ②, E. ①, F. ③, G. ④, H. ⑥, I.

②, J. ④

A~C.①风险驾驭和监控②风险识别③风险估计④风险消除

D.①风险的大小②风险的概率③风险的时间④风险的范围

E.①风险参照水准②风险度量③风险监控④风险工具

F~H.①生产率②功能③成本④进度⑤范围⑥性能I, J.①凹点②崩溃点③终点④区域⑤拐点⑥原点

14、从供选择的答案中选出与下列有关软件进度管理叙述相对应的正确答案,将其编号填入到相应的括弧

任何软件项目都必须做好项目管理工作,最常使用的进度管理工具是( A ),当某一开发项目的进度有可能拖延时,应该( B )。对于一个典型的软件开发项目,各开发阶段需投入的工作量的百分比大致是( C )。各阶段所需不同层次的技术人员大致是( D ),而管理人员在各阶段所需数量也不同,相对而言大致是( E )。

供选择的答案:A.①数据流图②程序结构图③因果图④PERT图

B.①增加新的开发人员②分析拖期原因加以补救③从别的小组抽调人员临时帮忙④推迟预定完成时间

A. ④

B. ②

C. ③

D.

③ E. ①

15从供选择的答案中选出与下列有关软件进度管理叙述相对应的正确答案,将其编号填入到相应的括内。

对于一个小型的软件开发项目,一个人就可以完成需求分析、设计、编码和测试工作。但随着软件项目规模增大,需要有多人共同参与同一软件项目的工作。当几个人共同承担软件开发项目中的某一任务时,人与人之间必须通过交流来解决各自承担任务之间的( A )问题,即通信问题。通信需花费时间和代价,会引起软件错误( B ),( C )软件生产率。如果一个软件开发小组有n个人,每两人之间都需要通信,则共有( D )条通信路径。假设一个人单独开发软件,生产率是5000行/人年,且在每条通信路径上耗费的工作量是250行/人年。若4个人组成一个小组共同开发这个软件,则小组中每个人的软件生产率为( E )。若小组有6名成员,则小组中每个成员的软件生产率为( F )。因此,有人提出,软件开发小组的规模不能太大,人数不能太多,一般在( G )人左右为宜。A. ③ B. ② C. ① D.

② E. ③ F. ② G. ④

供选择的答案:A.①分配②管理③接口④协作 B,C. ①降低②增加③不变

D.①n(n+1)/2 ②n(n-1)/2 ③n(n-1)(n-2)/6 ④n2/2

E,F. ①4875 ②4375 ③4625 ④5735 G.①8~15 ②1~2 ③2~5 ④2~8

16、从供选择的答案中选出与下列有关软件进度管理叙述相对应的正确答案,将其编号填入到相应的括内。软件项目的进度管理有许多方法,但( A )不是常用的进度控制图示方法。在几种进度控制图示方法中,( B )难以表达多个子任务之间的逻辑关系,使用( C )不仅能表达子任务之间的逻辑关系,而且可以找出关键子任务。在( C )中,用带箭头的边表示( D ),用圆圈结点表示( E ),它标明( D )的( F )。

供选择的答案::A. ② B. ① C. ③ D. ⑥ E. ③ F. ⑤

A~C.①甘特图②IPO ③PERT ④时标网状图 D~F.①数据流②控制流③事件④处理⑤起点或终点⑥任务 17从供选择的答案中选出与下列有关软件项目管理叙述相对应的正确答案,将其编号填入到相应的括弧

软件项目管理的主要职能包括:( A ),建立组织,配备人员,( B )和( C )。由于软件项目的特有性质,使得项目管理存在一定困难。第一、( D ),软件工程过程充满了大量高强度的脑力劳动;第二、( E ),在特定机型上,利用特定的硬件配置,由特定的系统软件和支撑软件支持,形成了特定的开发环境;第三、( F ),软件项目经历的各个阶段都深透了大量的手工劳动,远未达到自动化的程度;第四、( G ),用户要经过专门的培训,才能掌握操作步骤,且需要配备专职维护人员进行售后服务;第五、( H ),为高质量地完成软件项目,充分发掘人员的智力才能和创造精神。

在总结和分析足够数量失误的软件项目之后可知,造成软件失误的原因大多与( I )工作有关。在软件项目开始执行时,执行的过程中及项目进行的最后阶段都会遇到种种问题。

供选择的答案:A. ② B. ④ C. ⑥ D. ② E. ③ F. ⑤ G. ④ H. ① I. ④

A~C.①编码②制定计划③开发④指导⑤测试⑥检验

D~H.①软件工作渗透了人的因素②智力密集,可见性差③单件生产④使用方法繁琐,维护困难⑤劳动密集,自动化程度低 I.①设计②维护③测试④管理⑤实践⑥指导⑦审核⑧分析

18从供选择的答案中选出与下列有关软件项目组织叙述相对应的正确答案,将其编号填入到相应的括弧内。

软件项目组织的原则是( A )、( B )和( C )。一般有( D )、( E )、( F )三种组织结构的模式。( F )实际上是( D )和( E )两种模式的复合。( E )这种模式在小组之间的联系形成的接口较多,但便于软件人员熟悉小组的工作,进而成为这方面的专家。

供选择的答案:A. ② B. ③ C. ⑥ D. ③ E. ④ F. ①

A~C.①推迟责任的落实②尽早落实责任③减少接口④增加联系⑤责权分离⑥责权均衡

D~F.①矩阵形模式②主程序员小组模式③按课题划分的模式④按职能划分的模式⑤民主制小组模式

19从供选择的答案中选出与下列有关软件开发小组叙述相对应的正确答案,将其编号填入到相应的括弧内。

软件开发小组的目的是发挥集体的力量进行软件研制。因此,小组从培养( A )的观点出发进行程序设计消除软件的( B )的性质。通常,程序设计小组的组织形式有三种,如下图所示的a属于( C ),b 属于( D ),c属于( E )。 A. ② B. ④ C. ③ D. ② E. ①

供选择的答案:A, B.①“局部”②“全局”③“集体”④“个人” C~E.①层次式小组②民主制小组③主程序员制小组

需求分析

一、填空

1、在软件需求分析阶段,分析人员要确定对软件的综合要求,其中最重要的是功能要求。

2、需求分析阶段产生的最主要的文档是需求规格说明书。

3、解决一个复杂的问题,往往采取的策略是分解。

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

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

6、可以从4个方面研究可行性,即技术可行性、经济可行性、社会可行性、( )可行性。

7、结构化分析方法从三个方面建模:数据建模、功能建模、行为建模。

8、实体―关系图用于数据建模,它最初用于数据库设计。

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

10、状态―迁移图用于行为建模,状态中包含活动,状态因事件发生转移。

11、数据词典中有四类条目,分别为数据流、加工、数据存储、外部实体。

二、单项选择

1、软件需求分析阶段的工作可以划分以下四个方面:对问题的识别、分析与综合、制定需求规格说明和C。

A.总结

B. 阶段性报告

C. 需求分析评审

D. 以上答案都不正确

2、各种需求分析方法都有它们共同适用的D。

A. 说明方法

B. 描述方法

C. 准则

D. 基本原则

3、软件需求分析应从问题的信息域和功能域出发。信息域应包括信息流、信息内容和C。

A. 信息项

B. 数据结构

C. 信息结构

D. 信息内容

4、需求分析产生的文档是C。

A. 项目开发计划

B. 可行性分析报告

C. 需求规格说明书

D. 软件设计说明书

5、需求分析中,分析人员要从用户那里解决的最重要的问题是A。

A. 要让软件做什么

B. 要给该软件提供什么信息

C. 要求软件工作效率如何

D. 要让该软件具有何种结构

6、可行性研究的目的是B。

A.开发项目

B.项目值得开发否

C.规划项目

D.维护项目

7、技术可行性要解决D。

A. 存在侵权否

B. 成本效益问题

C. 运行方式可行

D. 技术风险问题

8、研究开发资源的有效性属于A可行性的一部分。

A. 技术

B. 经济

C. 社会

D. 操作

9、在可行性研究过程中,对每一个合理的候选方案,分析人员都应准备如下资料D。

A. 系统流程

B. 组成系统的物理元素清单、成本―效益分析

C. 实现该系统的进度计划

D. 以上全部

10、软件需求分析的任务不应包括C。

A. 问题分析

B. 信息域分析

C. 结构化程序设计

D. 确定逻辑模型

11、结构化语言、判定表和判定树属于A规格说明的描述工具。

A. 加工

B. 控制

C. 数据描述

D. 脚本

12、加工激活表属于B规格说明的描述工具。

A. 加工

B. 控制

C. 数据描述

D. 脚本

13、基数和参与性属于C图的描述工具。

A. 控制流

B. 数据流

C. 实体―关系

D. 状态―迁移

14、分层数据流图是一种比较严格又易于理解的描述方式,它的顶层数据流图描述了系统的B。

A. 细节

B. 输入与输出

C. 软件的作者

D. 绘制的时间

15、对于分层的数据流图,父图与子图的平衡是指子图的输入、输出数据流同父图的输入、输出数据流A。

A. 必须一致

B. 数目必须相等

C. 名字必须相同

D. 数目必须不等

16、在数据流图的基本图形符号中,加工是以信息结构或B作为加工对象的。

A. 数据结构

B. 信息内容

C. 信息流

D. 数据内容

17、一个局部数据存储当它作为D时就把它画出来。

A. 某些加工的数据接口

B. 某个加工的特定输入

C. 某个加工的特定输出

D. 某些加工的数据接口或某个加工的特定输入/输出

18、软件需求规格说明书的内容不应包括对B的描述。

A. 主要功能

B. 算法的详细过程

C. 用户界面及运行环境

D. 软件的性能

19、需求规格说明书的作用不应包括B。

A. 软件设计的依据

B. 软件可行性研究的依据

C. 软件验收的依据

D. 用户和开发人员对软件要做什么的共同理解

20、快速原型化思想是在研究D阶段的方法技术中产生的。

A. 可行性研究

B. 软件设计

C. 程序编码

D. 需求分析

21、用于整个开发阶段,及早提供一个原型系统的是D原型。

A. 实验型

B. 探索型

C. 提交型

D. 演化型

22、用于软件设计阶段,考察实现方案是否可行的是C原型。

A. 探索型

B. 演化型

C. 实验型

D. 增量型

三、选择填空

1、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括弧内。软件需求分析的任务不应包括( A )。进行需求分析可使用多种工具,但( B )是不适用的。在需求分析中,分析员要从用户那里解决的最重要的问题是( C )。需求规格说明书的内容不应当包括( D )。该文档在软件开发中具有重要的作用,但其作用不应当包括( E )。

供选择的答案:A.③, B.③, C.①, D.②, E.④

A.①问题分析②信息域分析③结构化程序设计④确定逻辑模型

B.①数据流图②判定表③PAD图④数据词典

C.①要让软件做什么②要给该软件提供哪些信息③要求软件工作效率如何④要让软件具有什么样的结构

D.①对重要功能的描述②对算法的详细过程性描述③软件确认准则④软件的性能

E.①软件设计的依据②用户和开发人员对软件要“做什么”的共同理解③软件验收的依据④软件可行性分析的依据

2、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括弧内。当前系统的(A )模型描述现行系统的实际业务处理过程,反映了现行系统具体( B )的现实。当前系统的( C )模型描述现行系统的功能结构、数据组织以及动态行为,反映了现行系统( D )的本质。

目标系统是指待开发的新系统。根据计算机系统的特点,分析、比较目标系统和当前系统逻辑上的差别,确定目标系统的软件工作范围,采用自顶向下逐步分解的分析策略,确定目标系统的功能结构、数据组织以及动态行为,从而建立起目标系统的( E )模型。

供选择的答案:A.②, B.①, C.⑤, D.③, E.⑤

A, C, E:①对象②物理③服务④过程⑤逻辑 B, D:①怎么做②何时做③做什么④为何做⑤谁来做

3、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括弧内。结构化分析模型从多视角来描述系统。在分析模型的核心是( A ),它描述了所有在目标系统中使用和生成的数据对象。围绕着这个核心有三种图:( B )、( C )和( D )。( B )描述数据对象及其关系,用于建立数据模型;( C )描述数据在系统中如何被传递和变换,用于建立功能模型,同时还需要给出加工规格说明;( D )描述系统对外部事件如何响应,用于建立行为模型,同时还需要给出控制规格说明。Petri网主要用于描述相互独立,协同操作的处理系统,即( E )的处理系统。

【供选择的答案】A.②, B.⑧, C.④, D.③, E.①

A~D:①对象图②数据词典③状态迁移图④数据流程图⑤时序图⑥事件追踪图⑦控制流程图⑧实体关系图⑨仿真图⑩行为图 E:①并发执行②事件驱动③时钟驱动④随机执行⑤顺序执行

4、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括弧内。软件需求分析方法必须能够理解和表达问题领域的信息域和功能域。信息域包括(A)、(B)和(C)。( A )表示数据和控制在系统中传递时的变化方式。输入对象首先被变换成数据和控制的( D )

信息,然后再变换成输出结果信息。

( B )表示信息在计算机中的组织形式。各种数据和控制对象按什么逻辑关系组织在一起,又按什么物理关系存储在计算机中,必须靠( B )分析来解决。

( C )可以利用数据词典明确地表示,也可以通过数据或数据对象的层次结构隐含地表示。

对数据进行变换就是程序所表现的功能。两个功能之间的数据传递确定了功能之间的( E )。

【供选择的答案】A.⑦, B.②, C.⑥, D.③, E.②

A~C:①信息属性②信息结构③信息服务④信息通信⑤信息抽象⑥信息内容⑦信息流⑧信息层次⑨信息项⑩信息行为 D~E:①连接②接口③中间④通讯⑤联系

5、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括弧内。原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于( A )系统。它从用户界面的开发入手,首先形成( B ),用户( C ),并就( D )提出意见,它是一种( E )型的设计过程。

供选择的答案:A.① B.③ C.④ D.① E.①

A. ①需求不确定性高的②需求确定的③管理信息④决策支持

B. ①用户界面使用手册②用户界面需求分析说明书③系统界面原型④完善的用户界面

C. ①改进用户界面的设计②阅读文档资料③模拟用户界面的运行④运行用户界面原型

D. ①同意什么和不同意什么②使用和不使用哪一种编程语言③程序的结构④执行速度是否满足要求

E. ① 自外向内② 自顶向下③ 自内向外④ 自底向上

四、问答题

1、在软件需求分析时,首先建立当前系统的物理模型,再根据物理模型建立当前系统的逻辑模型。试问:什么是当前系统?当前系统的物理模型与逻辑模型有什么差别?

答:所谓当前系统可能是需要改进的某个已在计算机上运行的数据处理系统,也可能是一个人工的数据处理过程。当前系统的物理模型客观地反映当前系统实际的工作情况。但在物理模型中有许多物理的因素,随着分析工作的深入,有些非本质的物理因素就成为不必要的负担,因而需要对物理模型进行分析,区分出本质的和非本质的因素,去掉那些非本质的因素即可获得反映系统本质的逻辑模型。所以当前系统的逻辑模型是从当前系统的物理模型抽象出来的。

2、软件需求分析是软件工程过程中交换意见最频繁的步骤。为什么交换意见的途径会经常阻塞?

答:软件需求分析过程中,由于最初分析员对要解决的问题了解很少,用户对问题的描述、对目标软件的要求也很凌乱、模糊,再加上分析员和用户共同的知识领域不多,导致相互间通信的需求。首先,由于分析员和用户之间需要通信的内容相当多,业务知识上的不足,表达方式的不足,可能对某些需求存在错误解释或误解的可能性,造成需求的模糊性。其次,用户和分析员之间经常存在无意识的“我们和他们”的界限,不是按工作需要组成统一的精干的队伍,而是各自定义自己的“版图”,并通过一系列备忘录、正式的意见书、文档,以及提问和回答来相互通信。历史已经证明,这样会产生大量误解。忽略重要信息,无法建立成功的工作关系。

3、你认为一个系统分析员的理想训练和基础知识是什么?请说明理由。

答:系统分析员处在用户和高级程序员之间,负责沟通用户和开发人员的认识和见解,起着桥梁的作用。一方面要协助用户对所开发的软件阐明要求,另一方面还要与高级程序员交换意见,探讨用户所提要求的合理性以及实现的可能性。最后还要负责编写软件需求规格说明和初步的用户手册。

为能胜任上述任务,分析员应当具备如下的素质:

(1) 能够熟练地掌握计算机硬、软件的专业知识,具有一定的系统开发经验。

(2) 善于进行抽象的思维和创造性的思维,善于把握抽象的概念,并把它们重新整

理成为各种逻辑成分,并给出简明、清晰的描述。

(3) 善于从相互冲突或混淆的原始资料中抽出恰当的条目来。

(4) 善于进行调查研究,能够很快学习用户的专业领域知识,理解用户的环境条件。

(5) 能够倾听他人的意见,注意发挥其它人员的作用。

(6) 具有良好的书面和口头交流表达能力。

4、可行性研究主要研究哪些问题?试说明之。

答:可行性研究主要做4个方面的研究:经济可行性:进行成本⁄效益分析。从经济角度判断系统开发是否“合算”。技术可行性:进行技术风险评价。从开发者的技术实力、以往工作基础、问题的复杂性等出发,判断系统开发在时间、费用等限制条件下成功的可能性。法律可行性:确定系统开发可能导致的任何侵权、妨碍和责任。方案的选择:评价系统或产品开发的几个可能的候选方案。最后给出结论意见。

5、信息和信息结构有什么区别?有没有不存在信息流的系统?有没有不存在信息结构的系统?

答:什么是信息?广义地讲,信息就是消息。宇宙三要素(物质、能量、信息)之一。它是现实世界各种事物在人们头脑中的反映。此外,人们通过科学仪器能够认识到的也是信息。信息的特征为:可识别、可存储、可变换、可处理、可传递、可再生、可压缩、可利用、可共享。我们通常讲的信息域就是对信息的多视角考虑。信息域包含3个不同的视图:信息内容和关系、信息流和信息结构。为了完全理解信息域,必须了解每一个视图。

信息结构:它是信息在计算机中的组织形式。一般表示了各种数据和控制对象的内部组织。数据和控制对象是被组织成n维表格,还是组织成有层次的树型结构? 在结构中信息与其它哪些信息相关? 所有信息是在一个信息结构中,还是在几个信息结构中? 一个结构中的信息与其它结构中的信息如何联系? 这些问题都由信息结构的分析来解决。

信息流:表示数据和控制在系统中传递时的变化方式。输入对象首先被变换成中间信息(数据或控制),然后再变换成输出结果信息。沿着变换路径,可能从已有的数据存储(如磁盘文件或内存缓冲区)中引入附加的信息。对数据进行变换是程序中应有的功能或子功能。两个变换功能之间的数据传递就确定了功能间的接口。所以,没有信息流的系统相当于没有功能的系统,这样的系统的存在是毫无意义的。而没有信息结构的系统是没有信息的系统,这样的系统不是计算机能够处理的系统。

6、软件需求分析的操作性原则和需求工程的指导性原则是什么?

答:所有的需求分析方法都与一组操作性原则相关联:

·必须理解和表示问题的信息域。

·必须定义软件将完成的功能。

·必须表示软件的行为(作为外部事件的结果)。

·必须对描述信息、功能和行为的模型进行分解,能够以层次方式揭示其细节。

·分析过程应当从要素信息转向细节的实现。

通过使用这些原则,分析员可以系统地处理问题。首先检查信息域以便更完整地理解目标软件的功能,再使用模型以简洁的方式表达目标软件的功能和行为,并利用自顶向下、逐层分解的手段来降低问题的复杂性。在这些处理过程中,因处理需求带来的逻辑约束和因其它系统元素带来的物理约束需要通过软件要素和视图的实现加以检验和确认。

除此以外,Davis建议了一组针对“需求工程”的指导性原则:

·在开始建立分析模型之前应当先理解问题。如果问题没有很好理解就急于求成,常常会产生一个解决错误问题的完美的软件。

·强力推荐使用原型。这样做可以使用户了解将如何与计算机交互,而人们对软件质量的认识常常是基于对界面“友好性”的切身体会。

·记录每一个需求的起源和原因。这是建立对用户要求的可追溯性的第一步。

·使用多个视图,建立系统的数据、功能和行为模型。这样做可帮助分析员从多方面分析和理解问题,减少遗漏,识别可能的不一致之处。

·给需求赋予优先级。因为过短的时限会减少实现所有软件需求的可能性。因此,对需求排定一个优先次序,标识哪些需求先实现,哪些需求后实现。

·注意消除歧义性。因为大多数需求都是以自然语言描述,存在叙述的歧义性问题,造成遗漏和误解。采用正式的技术评审是发现和消除歧义性的好方法。

遵循以上原则,就可能开发出较好的软件需求规格说明,为软件设计奠定基础。

7、数据流图的作用是什么?它有哪些基本成份?

答:数据流图可以用来抽象地表示系统或软件。它从信息传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程,同时可以按自顶向下、逐步分解的方法表示内容不断增加的数据流和功能细节。因此,数据流图既提供了功能建模的机制,也提供了信息流建模的机制,从而可以建立起系统或软件的功能模型。

数据流图的基本成份有4种:

8、考务处理系统的分层数据流图如下图所示。

该考务处理系统有如下功能:

①对考生送来的报名表进行检查;

②对合格的报名表编好准考证号码后将准考证送给考生,并将汇总后的考生名单送给阅卷站;

③对阅卷站送来的成绩表进行检查,并根据考试中心指定的合格标准审定合格者;

④填写考生通知单(内容包含考试成绩及合格⁄不合格标志),送给考生;

⑤按地区、年龄、文化程度、职业、考试级别等进行成绩分类统计及试题难度分析,产生统计分析表。

(1) 图(c)中,加工1.1的输入数据流是( A ),输出数据流是( B ),图(b)中,加工2的输出数据流是( C ),它是由( D )和( E )组成。

供选择的答案:答:A. ② B. ⑤ C. ① D. ⑥ E. ⑧ F. ②其中,D与E的答案可互换。A~E. ①统计分析表②报名表③准考证④考生通知单

⑤合格报名表⑥难度分析表⑦错误成绩表⑧分类统计表

(2) 图(d)中的文件“试题得分表”是否在图(b)中漏掉了?回答是( F )。

软件工程(概论)习题与答案

一、单选题 1、软件产品与物质产品有很大的区别,软件产品是一种()产品。 A.有形 B.消耗 C.逻辑 D.文档 正确答案:C 2、在()年的NATO会议上,软件工程的术语被首次提出。 A.1966 B.1968 C.1970 D.1972 正确答案:B 3、软件开发中实现映射的基本手段是() A.抽象 B.分层 C.隔离 D.建模 正确答案:D 4、下列哪项不属于软件工程框架的三元组。() A.目标 B.范围 C.原则 D.活动 正确答案:B

5、下列哪个不是软件维护的类型。() A.完善性维护 B.纠错性维护 C.适应性维护 D.更新性维护 正确答案:D 6、只有高水平的(),才能生产出高质量的软件产品。 A.软件开发技术 B.软件开发工具 C.软件工程管理 D.项目开发经验 正确答案:C 二、多选题 1、下列关于软件的说法正确的是() A.软件是通过定制进而生产制造出来的 B.软件没有磨损老化问题。 C.软件开发的成本很高 D.软件开发和运行必须依赖计算机环境 正确答案:B、C、D 2、下列软件属于系统软件的是() A.操作系统 B.编译器 C.中间件 D.浏览器

正确答案:A、B 3、下述软件属于支撑软件的是() A.财务管理软件 B.编译器 C.中间件 D.数据库 正确答案:C、D 4、下述软件属于应用软件的是() A.财务管理软件 B.数据库 C.编译器 D.浏览器 正确答案:A、D 5、软件工程是一门交叉性学科,下列哪些学科是软件工程涉及的? A.数学 B.计算机科学 C.管理科学 D.工程科学 正确答案:A、B、C、D 6、下列属于软件模型的是() A.概念模型 B.设计模型 C.实现模型 D.部署模型

软件工程概论_北京联合大学中国大学mooc课后章节答案期末考试题库2023年

软件工程概论_北京联合大学中国大学mooc课后章节答案期末考试题库2023年 1.需求不明确或可能发生变化的大型复杂软件系统适合使用瀑布模型来开发。 参考答案: 错误 2.V模型是对瀑布模型的修正,强调测试验证;V模型中的各个开发阶段之间 强调最大重叠。 参考答案: 错误 3.在需求工程中,主要产生三类重要的文档:项目前景和范围文档、用户需求 文档、需求规格说明书。其中,用例文档可以用来代替用户需求文档,起到记录、交流领域信息和用户期望的作用。 参考答案: 正确 4.软件结构设计是()。 参考答案: 从数据流图导出初始结构图 5.模块化、信息隐藏、抽象和逐步求精的软件设计原则有助于得到高内聚、低 耦合的软件产品。 参考答案: 正确

6.在软件生存周期各个阶段,工作量最大的是需求分析阶段。 参考答案: 错误 7.快速原型模型的缺点之一就是缺少项目标准,不断修改原型可能导致原型质 量低下;容易退化为边做边改。 参考答案: 正确 8.与设计测试用例无关的文档是()。 参考答案: 项目开发计划 9.软件的几种维护中,以()占比最高。 参考答案: 完善性维护 10.软件测试用例主要由输入数据和()两部分组成。 参考答案: 预期输出结果 11.软件开发全过程的测试工作都可以实现自动化。 参考答案: 错误

12.如果一个变量在整个程序运行期间都存在,但是仅在说明它的函数内是可见 的,这个变量的存储类型应该被说明为()。 参考答案: 内部变量 13.不属于白盒测试的技术是()。 参考答案: 边界值分析 14.项目的前景和范围文档、用户需求文档都被视为属于(),重点都是用户 的现实世界。 参考答案: 用户文档 15.系统需求规格说明书、软件需求规格说明书、硬件需求规格说明书、接口需 求规格说明书和人机交互文档一起被用于系统开发,都被认为是()。 参考答案: 开发文档 16.原型方法的最大有点就是能够及早地发现并解决系统开发中的不确定性,从 而降低软件项目失败的风险。 参考答案: 正确

软件工程概论复习题(答案)

软件工程概论复习题答案 一、单选题 1.软件工程的纵向分解是把软件开发分为几个(B) A.模块B.阶段C.子系统D.过程 2.McCall软件质量度量模型中属于面向软件产品操作的是(D) A.适应性B.可重用性C.可测试性D.可用性 3.快速原型模型中,用于及早向用户提交一个原型系统的是(D) A.实验型原型B.探索型原型C.提交型原型D.演化型模型4.软件维护中,因重新初始化控制标志或指针而引起的错误是以下哪一项的副作用(B)A.文档B.数据C.编码D.设计 5.软件维护费用高的主要原因是(B) A.生产率高B.生产率低C.人员多D.人员少 6.根据对软件开发机构调查的结果可知,各类维护活动所占的比重是(A)A.完善性占50%,适应性占25%,校正性占21%,其他维护占4% B.完善性占25%,适应性占50%,校正性占21%,其他维护占4% C.完善性占21%,适应性占25%,校正性占50%,其他维护占4% D.完善性占21%,适应性占50%,校正性占25%,其他维护占4% 7.下列属于用白盒技术设计测试用例的是(B) A.错误推测B.逻辑覆盖C.等价类划分D.因果图 8.有助于培养良好的编程风格并且第一个体现了结构化编程思想的程序设计语言的是(A) A.PASCALB.FORTRAN C.DL/1D.C 9.在软件详细设计过程中不采用的工具为(C) A.判定表B.PDL C.数据流图D.IPO图 10.根据输入输出的数据结构产生程序结构的设计方法是(B) A.PARNAS方法B.JACKSON方法C.WIRTH方法D.DIJKSTRA方法11.在软件设计中,为解决一个大而复杂的问题把软件系统划分为一个个完成某一特定的子功能的方法称为(C) A.细化B.结构化C.模块化D.抽象化 12.结构化方法在建立软件系统的结构模块时按照以下哪种方法进行?(B) A.由底向上B.自顶向下C.随机D.回归 13.两个模块之间传递的是同一个数据结构的地址,这种耦合方式称为(C ) A.控制耦合B.公告耦合C.标记耦合D.数据耦合 14.结构化设计是以哪个阶段产生的DFD图为基础,按一定的步骤映射成软件结构?(B)A.可行性分析B.需求分析C.概要设计D.详细设计 15.结构化方法的基本原则是功能的分解和( C ) A.模块化B.信息隐藏C.抽象D.细化 16.数据字典和数据流图共同构成了系统的(B) A.物理模型B.逻辑模型C.原型D.目标模型

软件工程概论期末复习题

软件工程概论期末复习 题 Document number【980KGB-6898YT-769T8CB-246UT-18GG08】

期末总复习 1.选择、判断、简答 2.判定树和判定表 3.用例图、类图、对象模型、顺序图等 4.McCabe环路复杂性度量; 5.黑盒测试和白盒测试 6.数据流图 7.成本效益分析 习题 一、判定树和判定表 1.请用判定表画出以下问题的行为逻辑。 人们往往根据天气情况决定出门时的行装;天气可能下雨,也可能不下雨;天气可能变冷,也可能不变冷。如果天气要下雨,出门时带上雨伞;如果天气变冷,出门时要穿上大衣。 2. 某厂对部分职工重新分配工作的政策是:年龄在20岁以下者,初中文化程度脱产学习,高中文化程度当电工。20岁至40岁之间,中学文化程度,男性当钳工,女性当车工,大学文化程度都当技术员。年龄在40岁以上者,中学文化程度当材料员,大学文化程度当技术员。请用结构化语言﹑判定表或判定树描述上述问题的加工逻辑。 二、McCabe环路复杂性度量 某程序的描述如下: if (( a > b && i > 10)|| (a < b && i <= 5) ) k = a; else k = b; 1)画出单个条件的嵌套的分支结构;(5分) 2)计算该结构的McCabe环路复杂性度量;(5分) 3)为完成基本路径测试,求它的一组独立的路径。(5分) 三、测试: 变量的命名规则一般规定如下:变量名的长度不多于30个字符,第一个字符必须为英文字母,其他字母可以是英文字母、数字以及下划线的任意组合。请用等价分类法设计测试用例。 四、数据流图 某教务系统具备以下功能,输入用户ID号及口令后,经验证进入教务管理系统,根据请求进行分类处理,可进行如下功能的处理:

软件工程导论第六版课后习题答案完整版

软件工程导论第六版课后习题答案完整版首先,感谢您对软件工程导论课后习题答案的需求。以下是软件工程导论第六版课后习题的完整答案。 第一章:软件工程概述 1.1 问题 1. 什么是软件工程? 答:软件工程是一种应用工程原理、方法和工具来开发和维护高质量软件的学科。 1.2 问题 1. 什么是软件? 答:软件是一系列按照特定顺序组织的计算机数据和指令。 第二章:软件过程模型 2.1 问题 1. 软件过程模型有哪些类型? 答:常见的软件过程模型包括瀑布模型、迭代模型、螺旋模型和敏捷开发模型等。 2.2 问题 1. 瀑布模型的特点是什么?

答:瀑布模型是一种线性顺序模型,以阶段划分为基础,每个阶段的任务在进入下一个阶段前必须完成。 第三章:需求分析与规格说明 3.1 问题 1. 软件需求描述包括哪些方面的内容? 答:软件需求描述需要包括功能性需求、非功能性需求、用户需求和系统需求等。 3.2 问题 1. 什么是需求跟踪? 答:需求跟踪是指在软件开发过程中,通过建立需求和软件项目中其他相关工件之间的关联,确保需求的准确实现和变更的有效管理。 第四章:软件设计 4.1 问题 1. 软件设计的目标是什么? 答:软件设计的目标是通过确定软件的整体结构和组成部分,确保软件满足需求并具有良好的可维护性和可重用性。 第五章:软件测试与维护 5.1 问题

1. 什么是软件测试? 答:软件测试是一种评估和改进软件质量的过程,目的是发现错误并提高软件的可靠性和可用性。 5.2 问题 1. 什么是软件维护? 答:软件维护是指在软件交付后的整个生命周期中对软件进行修改和改进,以满足用户需求和修复错误。 第六章:软件配置管理 6.1 问题 1. 软件配置管理的目标是什么? 答:软件配置管理的目标是确保软件在开发和维护过程中的可控性和可追踪性,以及保持软件配置的稳定性和一致性。 6.2 问题 1. 软件版本控制是什么? 答:软件版本控制是指对软件的不同版本进行管理,包括版本的创建、检出、合并和更新等操作。 至此,我们完成了软件工程导论第六版课后习题的完整答案。 总结:本文中,我们回答了软件工程导论第六版课后习题的各个章节的问题。这些问题涵盖了软件工程的概述、软件过程模型、需求分

软件工程概论课后习题答案

软件工程概论课后习题答案 软件工程概论郑人杰等版 第1章软件与软件工程的概念 1.1 举出你所知道的应用软件的例子。 办公软件、嬉戏软件、财务软件、银行软件、人事管理软件、工资管理软件、学籍管理软件等。 1.2 认为“软件就是程序,软件开发就是编程序。”这种观点是否正确?为什么? 认为“软件就是程序,软件开发就是编程序。”这种观点是错误的。 首先,软件是计算机系统中与硬件互相依存的另一部分,它是包括程序,数据及其相关文档的完整集合,程序只是软件的组成部分之一;第二,在软件开发中,编程只是软件开发过程的一个阶段。 1.3 假如将软件开发比作高楼大厦的建筑,可以将软件的设计比作什么? 可以将软件的设计比作建造设计,软件设计的成绩相当于建造设计的设计图纸。 1.4 什么是软件危机?它有哪些典型表现?为什么会浮现软件 危机? 软件危机:软件危机是指在计算机软件的开发和维护过程中所碰到的一系列严峻问题。 典型表现:

(1)对软件开发成本和进度的估量经常很不精确。 (2)用户对“已完成的”软件系统不惬意的现象常常发生。 (3)软件产品的质量往往靠不住。 (4)软件经常是不行维护的。 (5)软件通常没有适当的文档资料。 (6)软件成本在计算机系统总成本中所占的比例逐年升高。 (7)软件开发生产率提高的速度,既跟不上硬件的进展速度,也远远跟不上计算机应用 快速普及深化的趋势。 产生软件危机的缘由:除了软件本身的特点,其缘由主要有以下几个方面: (1) 缺乏软件开发的阅历和有关软件开发数据的堆积,使得开发工作方案很难制定。 (2) 软件人员与用户的沟通存在障碍,使得猎取的需求不充分或存在错误。 (3) 软件开发过程不规范。如,没有真正了解用户的需求就开头编程序。 (4) 随着软件规模的增大,其复杂性往往会呈指数级上升。需要无数人分工配合,不仅涉及 技术问题,更重要的是必需有科学严格的管理。

软件工程概论 西交大考试题库及答案

软件工程概论 一、单项选择题(本大题共137小题,每小题2分,共274分) 1.软件是一种( B )产品 A.有形 B.逻辑 C.物质 D.消耗 2.一个CASE工作台是一组( A ),支持设计、实现或测试等特定的软件开发阶段。A.工具集 B.软件包 C.平台集 D.程序包 3.研究软硬件资源的有效性是进行( A )研究的一方面。 A.技术可行性 B.经济可行性 C.社会可行性 D.操作可行性 4.SA方法是一种( A ) A.自顶向下逐层分解的分析方法 B.自底向上逐层分解的分析方法 C.面向对象的分析方法 D.以上都不是 5.需求分析最终结果是产生( C ) A.项目开发计划 B.可行性分析报告 C.需求规格说明书 D.设计说明书 6.软件工程方法学的研究内容包含软件开发技术和软件工程管理两个方面,其期望达到的最终目标是(A ) A.软件开发工程化

B.消除软件危机 C.实现软件可重用 D.程序设计自动化 7.增量模型是一种( B )模型 A.整体开发 B.非整体开发 C.灵活性差 D.较晚产生工作软件 8.技术可行性要解决( D )。 A.存在侵权否 B.成本-效益问题 C.运行方式可行 D.技术风险问题 9.在数据流图中,有名字及方向的成分是( C ) A.控制流 B.信息流 C.数据流 D.信号流 10.结构化分析方法(SA)最为常见的图形工具是( C )A.程序流程图 B.实体联系图 C.数据流图 D.结构图 11.软件工程方法得以实施的主要保证是( C ) A.硬件环境 B.开发人员的素质 C.软件开发工具和软件开发的环境 D.软件开发的环境 12.瀑布模型的问题是(B ) A.用户容易参与开发 B.缺乏灵活性

软件工程概论的练习题及答案

概述 一、填空题 1、软件由计算机程序、数据和文档组成。 2、软件是一种逻辑产品,它与物质产品有很大的区别。 3、计算机系统由硬件、软件、使用计算机的人、数据库、文档和执行过程组成。 4、软件的发展,到现在为止,经历了三个阶段:程序设计、程序系统和软件工程。 5、程序设计时代的生产方式是个体手工艺者,程序系统时代的生产方式是手工作坊,软件工程时代的生产方式是工程化。 6、软件工程是一门综合性的交叉学科,它涉及计算机学科工程学科、管理学科和数学学科。 7、计算机科学的成果都可用于软件工程,但计算机科学着重于理论和原理,软件工程着重于建造软件系统。 8、软件工程研究的主要内容是方法、过程和工具等三个方面。 9、软件开发各阶段任务的划分应尽可能相对独立,同一阶段任务的性质应尽可能相同。 10、瀑布模型是将软件生存期各个活动规定为依线性顺序连接的若干阶段的模型。它规定了各阶段的活动由前至后,相互衔接的固定次序,如同瀑布流水,逐级下落。 11、演化模型是一种非整体开发模型。先开发一个原型软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的产品。 12、螺旋模型将开发过程分为几个螺旋周期。在每个螺旋周期内分为四个工作步骤:制定计划、风险分析、开发实施、用户评估。 13、喷泉模型是一种以用户要求为动力,以对象为驱动的模型。它使开发过程具有迭代性和无间隙性,适用于面向对象开发方法。 二、单项选择题 1、软件产品的生产主要是C。 A. 制造 B. 复制 C. 开发 D. 研制 2、个体手工劳动是B时代的软件生产方式。 A. 程序系统 B. 程序设计 C. 软件工程 D. 程序编码 3、软件工程是一门C学科。 A. 理论性 B. 原理性 C. 工程性 D. 心理性 4、软件开发费用只占软件生存期全部费用的B。 A. 1/2 B. 1/3 C. 1/4 D. 2/3 5、在软件开发过程中大约要花费C%的工作量进行测试和调试。 A. 20 B. 30 C. 40 D. 50 6、准确地解决“软件系统必须做什么”是B阶段的任务。 A. 可行性研究 B. 需求分析 C. 软件设计 D. 程序编码 7、软件生存期中时间最长的是D阶段。 A. 需求分析 B. 软件设计 C. 软件测试 D. 软件运行/维护 8、在软件生存期的模型中,D适合于大型软件的开发它吸收了软件工程中“演化”的概念。 A .喷泉模型B. 基于知识的模型C. 瀑布模型D. 螺旋模型 9、在软件生存期中,用户的参与主要在A。 A. 软件定义阶段 B. 软件开发阶段 C. 软件维护阶段 D. 整个软件生存期过程中 10、在软件开发过程中的每个阶段都要进行严格的D,以尽早发现在软件开发过程中产生的错误。 A. 检验 B. 验证 C. 度量 D. 评审 11、在软件开发和维护过程中需要变更需求时,为了保持软件各个配置成分的一致性,必须实施严格的B A. 产品检验 B. 产品控制 C. 产品标准化 D. 开发规范 12、实践表明,采用先进的开发技术可提高软件开发的生产率,还可提高软件的D。

软件工程导论习题答案

软件工程导论习题答案 《软件工程导论》课后习题答案 第一章软件工程概论 1.什么是软件危机? 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题表现在以下几个方面: (1)用户对开发出的软件很难满意。 (2)软件产品的质量往往靠不住。 (3)一般软件很难维护。 (4)软件生产效率很低。 (5)软件开发成本越来越大。 (6)软件成本与开发进度难以估计。 (7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。 4.构成软件项目的最终产品: 应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。 5.什么是软件生存周期? 软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。 6.软件生存周期为什么划分成阶段? (1) 任何一个阶段的具体任务不仅独立,而且简单,便于不同人员

分工协作,从而降低整个软件开发工作的困难程度。 (2) 可以降低每个阶段任务的复杂程度,简化不同阶段的联系,有利于工程的组织管理,也便于采用良好的技术方法。 (3) 使软件开发的全过程以一种有条不紊的方式进行,保证软件的质量,特别是提高了软件的可维护性。 7.应该怎样来划分阶段? (1)每一个阶段的任务尽可能独立; (2)同一阶段内的任务性质尽可能相同; (3)每一个阶段任务的开始和结束有严格的标准。 8.软件开发模型有几种?它们的开发方法有可特点? 软件开发模型有瀑布型、渐增型和变换型。 瀑布型开发方法是按照软件生存周期的划分依次实施,每一个阶段有明确规定的任务。它的特点: (1)各个阶段的顺序性和依赖性; (2)划分逻辑设计与物理设计,尽可能推迟程序的物理实现; (3)每个阶段必须完成规定的文档,对其中问题通过复审及早发现,及早解决。 渐增型开发方法及特点: (1) 从部分需求出发,先建立一个不完全的系统,通过测试运行该系统取得经验和信息反馈,加深对软件需求的理解,进一步使系统扩充和完善。如此反复,直至软件人员和用户对所设计完成的软件系统满意为止。 (2) 在渐增型开发下的软件是随软件开发的过程而逐渐形成的。 (3) 渐增型开发方法适合于知识型软件的开发,设计系统时对用户需求的认识开始不是很清楚的,需要在开发过程中不断认识、不断获得新的知识去丰富和完善系统。多数研究性质的试验软件,一般采用此方法。 变换型开发方法及特点:

软件工程概论课后习题答案

软件工程概论课后习题答案 第一题: 答案:软件危机是指在软件开发过程中所遇到的一系列问题和挑战。具体表现为软件项目超过预算、延迟交付、功能缺陷等现象。造成软 件危机的原因包括需求不明确、项目管理不善、技术问题等。解决软 件危机的方法包括引入软件工程的概念和方法、改善需求管理、加强 项目管理等。 第二题: 答案:软件生命周期是指软件从被提出需求到废弃的整个过程。常 见的软件生命周期模型包括瀑布模型、迭代模型、螺旋模型等。瀑布 模型是最经典的软件生命周期模型,按照顺序划分为需求分析、系统 设计、编码、测试、运维等阶段。迭代模型是将开发过程划分为多个 迭代周期,并在每个迭代周期中完成需求分析、设计、编码、测试等 工作。螺旋模型则是将开发过程划分为多个风险评估和迭代的阶段, 将风险管理纳入软件开发的全过程。 第三题: 答案:软件过程是一组相互关联的活动,用于开发和维护软件系统。常见的软件过程模型包括瀑布模型、迭代模型、敏捷开发等。瀑布模 型是将软件开发过程划分为需求分析、系统设计、编码、测试、运维 等阶段,按照顺序逐个进行。迭代模型则是将软件开发过程划分为多 个迭代周期,每个迭代周期都包含需求分析、设计、编码、测试等活

动。敏捷开发则是一种以人和交互为核心的开发方法,强调迭代开发 和灵活响应变化。 第四题: 答案:软件质量是指软件产品满足用户需求和期望的程度。常见的 软件质量特性包括正确性、健壮性、可靠性、可维护性、可移植性等。正确性是指软件是否满足用户需求和规格说明。健壮性是指软件在异 常情况下的容错能力。可靠性是指软件在一定条件下的稳定性和可信度。可维护性是指软件是否容易进行修改和维护。可移植性是指软件 在不同环境下的可移植性和兼容性。 第五题: 答案:软件测试是通过对软件进行测试活动,检测和预防软件中的 缺陷和错误。常见的软件测试方法包括黑盒测试、白盒测试、灰盒测 试等。黑盒测试是基于需求规格说明进行测试,主要检查软件的功能 是否满足需求。白盒测试是基于软件内部结构进行测试,主要检查软 件的代码是否符合规范和逻辑正确。灰盒测试则是结合黑盒测试和白 盒测试的特点,既关注软件的功能是否满足需求,又关注软件的内部 结构。 第六题: 答案:需求工程是确定和分析用户对软件系统的需求,并将其转化 为可验证的规格说明的过程。常见的需求工程活动包括需求获取、需 求分析、需求建模、需求验证等。需求获取是通过与用户沟通和收集

软件工程习题解答

第一章软件工程概论 一、填空题 ⑴ 软件是计算机系统中与硬件相互依存的部分,它是包括(A)、(B)、及(C)的完整集合。其中,(A)是按事先设计的功能和性能要求执行的指令序列,(B)是使程序员能够正确操纵信息的数据结构,(C)是与程序开发、维护和使用有关的图文材料。 ①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表 ⑵ 开发软件时,对于提高软件开发人员工作效率至关重要的是(A)。软件工程中描述软件生存周期的瀑布类型一般包括计划、(B)、设计、编码、测试、维护等几个阶段。其中,设计阶段在管理上可以依次分成(C)和(D)两个步骤。 A:① 程序开发环境② 操作系统的资源管理功能 ③ 开发程序人员数量④ 计算机的并行处理能力 B:① 需求分析②需求调查③可行性分析④问题定义 C、D:① 方案设计② 代码设计③ 概要设计④ 数据设计 ⑤ 运行设计⑥ 详细设计⑦ 故障处理设计⑧ 软件体系结构设计 ⑶ 有人将软件的发展过程划分为四个阶段,第一阶段(20世纪50年代),称为程序设计的“原始时期”。这时既没有(A),也没有(B),程序员只能用机器指令编写程序。第二阶段(20世纪60年代),称为“基本软件期”。出现了(A),并逐渐普及。随着(B)的发展,编译技术也有较大的发展。第三阶段(20世纪60年代末至70年代中期)称为“程序设计方法时代”。这一时期,与硬件价格下降相反,软件开发费用急剧上升。人们提出了(C)和(D)等程序设计方法,设法降低软件的开发费用。第四阶段(20世纪70年代中期至今),称为“软件工程”时期。软件开发技术不再仅仅是程序设计技术,而是包括了软件开发的各个阶段。如(E)、(F)、编码、单元测试、综合测试、(G)及其整体有关的各种管理技术。 A、B、C、D:① 汇编语言② 操作系统③ 虚拟存储器概念④ 高级语言 ⑤ 结构化程序设计⑥ 数据库概念⑦ 固件⑧ 模块化程序设计 E、F、G:① 使用和维护② 兼容性的确认③ 完整性的确认 ④ 设计⑤ 需求定义⑥ 图像处理 二、简答题 ⑴ 软件工程过程有哪几种基本活动,试加以说明。 ⑵ 试说明软件生存周期的概念。 ⑶ 试论述瀑布模型软件开发方法的基本过程。 ⑷ 软件工程是开发、运行、维护和修复软件的系统化方法,它包括哪些要素?试加以说明。 ⑸ 软件工程的基本原则有哪些?试加以说明。 ⑹有人认为软件开发时,一个错误发现的越晚,为改正它所付出的代价就越大,请提出你的观点并解释。 ⑹软件生命周期将软件开发分为几个阶段?每一阶段所要完成的主要任务是什么? 第二章系统分析 1、在软件开发的早期阶段为什么要进行可行性分析?应该中哪些方面研究目标系统的可行性? 2、

《软件工程导论》试题及答案

《软件工程导论》试题及答案 软件工程导论试题及答案 一、选择题 1. 软件工程是一门多学科交叉的学科,其中包括以下哪些学科? A. 计算机科学 B. 电子工程 C. 数学 D. 管理学 E. 心理学 答案:A、B、C、D 2. 软件工程的目标是什么? A. 提高软件开发效率 B. 提高软件质量 C. 提高软件可靠性 D. 提高软件维护性 E. 提高软件安全性 答案:A、B、C、D、E

3. 软件过程模型是指软件开发过程中的一种抽象表示方法,常用的软件过程模型有哪些? A. 瀑布模型 B. 增量模型 C. 螺旋模型 D. 敏捷模型 E. 喷泉模型 答案:A、B、C、D 4. 以下哪个开发方式可以在软件开发过程中提供更多的灵活性和快速反馈? A. 瀑布模型 B. 增量模型 C. 螺旋模型 D. 敏捷模型 答案:D 5. 软件需求分析的主要任务是什么? A. 确定软件的功能和性能需求 B. 定义软件系统的架构

C. 设计软件的用户界面 D. 实施软件测试 答案:A 二、填空题 1. 软件工程的核心目标是提高软件的 ______ 和 ______ 。 答案:质量、可靠性 2. 软件工程中的四个基本活动是需求分析、设计、 ______ 和 ______ 。 答案:实现、维护 3. 瀑布模型的五个阶段依次是:需求分析、设计、编码、 ______ 和 ______ 。 答案:测试、维护 4. “快速原型”开发模型注重 ______ 。 答案:用户参与 5. 敏捷开发模型的核心原则是 ______ 。 答案:迭代开发 三、简答题 1. 请简要说明为什么软件工程是一门多学科交叉的学科?

软件工程概论期末测试试卷含答案

软件工程概论期末测试试卷A卷 一.单项选择题每小题1分,共22分 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.多态性B.多继承C.类的可复用D.信息隐藏 7.单元测试的测试用例主要根据的结果来设计; A.需求分析B.源程序C.概要设计D.详细设计 8.随着软硬件环境变化而修改软件的过程是 ; A.校正性维护B.适应性维护 C.完善性维护D.预防性维护 9.在白盒测试技术测试用例的设计中, 是最弱的覆盖标准; A.语句覆盖B.路径覆盖 C.条件组合覆盖D.判定覆盖 10.结构化程序设计的一种基本方法是 ; A.筛选法B.迭代法 C.逐步求精法D.递归法 11.不适合作为科学工程计算的程序设计语言是 ; A.Pascal B.C C.Fortran D.Prolog 12.只有单重继承的类层次结构是层次结构; A.网状型B.星型 C.树型D.环型 13.面向对象的开发方法中, 将是面向对象技术领域内占主导地位的标准建模语言;

软件工程导论 第五章课后答案【精选文档】

第五章习题答案 1、为每种类型的模块耦合举一个具体例子。 答:耦合是对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问某一模块的点,以及通过接口的数据,一般模块之间可能的连接方式有7种,构成耦合的7种类型,它们之间的关系为: 下面举例说明以上各种耦合: a.非直接耦合(Nondirect Coupling)在这种情况下,两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,这就是非直接耦合。例如在实数的运算中,有两个模块分别完成几个实数的求和,求乘积功能,这两个模块之间没有直接联系,只有在主模块调用中有执行的前后顺序而已,这个例子即属于非直接耦合。 b.数据耦合(Data Coupling)即一个模块访问另一个模块时,彼此之间是通过数据参数来交换输入,输出信息的,这种耦合为数据输入,输出信息的这种耦合为数据耦合.如有两个模块,其中A完成两个烽的比较,求出其中最大的并返回该值,模块B是完成了个数的比较,求出其中最大的并返回该最大值,为完成四个数的比较,模块B调用模块A即可完成,在这种调用关系中,模块A的运算结果作为一个参烽参加B的运算,这两个模块之间即发生数据耦合。数据耦合是松散的耦合,模块间的独立性比较强。

c.标记耦合(Stamp Coupling),即一组模块通过参数传递记录信息,这就是标记耦合.事实上,这组模块共享了这个记录,它是某一数据结构的子结构,而不是简单变量。 d.控制耦合(Control Coupling)即一个模块通过开关标志,名字等控制住处明显的控制,选择另一模块的功能,这就是控制耦合,如下图所示,这一种耦合实质是在单一接口上实现选择多功能模块中的某项功能,如程序设计中用到多路选择结构即是最好的例子。 e.外部耦合(External Coupling)即一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递全局数据结构,而且不是通过参数表传递全局变量的信息。如C语言中都访问被说明为extern类型的外部变量的各个模块之间即发生外部耦合。外部耦合引起的问题类似于下面要介绍的公共耦合,区别在于外部耦合中不存在依赖于一个数据结构内部各项的物理安排。 f.公共耦合(Common Coupling)若一组模块都访问同一个公共数据环境,则它们之间的耦合就是公共耦合。公共的数据环境可以是全局的数据结构,共享的通信区,内存的公共覆盖区等。如几个模块对同一个数据库的查询就属于这种耦合。公共耦合可以分为松散的公共耦合和紧密的公共耦合,其中松散的公共耦合是单向操作,如两个或多个模块对同一个文件的读操作;而紧密的公共耦合是双向的操作,如两个或多个模块对同一文件的读写操作。下面用图表示松散的和紧密的公共耦合.

软件工程导论试题及答案

A、PB B、VB C、UML D、SQL Server 2000中的SQL语言 14、与设计测试数据无关的文档是() A、需求分析说明书 B、概要设计说明书 C、源程序 D、项目开发计划 15、软件测试中的测试实例主要由输入数据和()组成 A、测试规则 B、测试计划 C、预期输出结果 D、以往测试记录分析 三、简答题(共20分) 1.项目A是为银行开发ATM(自动取款机)软件,项目B是为网络公司开发网络数据流分析软件,请问按照面向数据流设计方法(SD法),两个项目应分别采用何种方法将需求分析的功能模型转换成软件结构,为什么?(6分)2.某保险公司对投保人的汽车保费计算方法如下:单身男,年龄30岁以下(含30岁),计保费标准A,30岁以上计保费标准B;已婚男30岁以下(含30岁),计保费标准C,30岁以上计保费标准D,单身女,年龄25岁以下(含25岁),计保费标准E,25岁以上计保费标准F;已婚女25岁以下(含25岁),计保费标准G,25岁以上计保费标准H,请画出对 应的判定树。(8分)

9、√ 10、√ 11、√ 12、× 13、× 14、× 15、√ 二、项选择题:每题1分,共15分 1、C 2、B 3、B 4、A 5、B 6、D 7、B 8、B 9、A 10、A 11、A 12、A 13、D 14、D 15、C 三、简答题(总共20分) 1、总共6分,项目A 用事务流(2分),项目B 用变换流(2分),项目A 回答原因(1分),项目B 回答原因(1分) 2、总共8分,画对每个条件1分 3、每写出一种语言或工具1分,写出应用领域1分,如C#(C/B/S 结构软件),JA V A (B/S 结构软件),C++(系统软件),DEPHI (开发C/S 结构软件)、PB (开发C/S 结构下基于数据库的软件)。 四、综合题(总共25分) 1、共10分每对一个对象类1分,写出一个对象类的关系0.5分 2、测试题共15分

软件学院《软件工程概论》试题及答案

软件工程概论考试试卷 科目:软件工程概论 专业: 软件工程 一、 单项选择题:在每小题列出的四个备选答案中只有一个....答案.. 是符合题目要求。请将正确答案填入“单项选择题答题表”对应的格中。(每小题1分, 1. 瀑布模型的关键不足在于( )。 A .过于简单 B .不能适应需求的动态变更 C .过于灵活 D .各个阶段需要进行评审 2. 软件危机的表现不包括( )。 A .软件质量不可靠 B .软件几乎是不可维护的 C .测试过程中发现的错误较多 D .缺少文档 3. 软件可行性研究一般不考虑( )。 A .是否有足够的人员和相关的技术来支持系统开发 B .是否有足够的工具和相关的资源来支持系统开发 C .待开发软件是否有市场、经济上是否合算 D .待开发的软件是否会有质量问题 4. 需求分析的任务不包括( )。

A.确定对系统的综合要求 B.分析系统的数据要求 C.设计模块内部算法的处理过程 D.导出逻辑模型并修正开发计划 5. ()和数据流图共同构成系统的逻辑模型,没有它,数据流图就 不完整。 A.系统流程图 B.E-R图 C.数据字典 D.层次方框图 6. 使用实体-联系图(ER图)建立的概念性数据模型中包含3种互相关 联的信息:()。 A.数据对象,属性,方法 B.数据对象,属性,联系 C.数据表,属性,联系 D.数据表,实体,联系 7. 为了提高模块的独立性,模块之间最好使用()。 A. 控制耦合 B. 公共耦合 C. 内容耦合 D. 数据耦合 8. 在总体设计阶段,可用来描绘软件结构的图形工具不包括()。 A. 层次图 B. HIPO图 C.盒图 D.结构图 9. 结构化程序设计的三种基本控制结构不包括()。 A.顺序 B.选择 C.转移 D.循环10. 下列关于详细设计中的说法中正确的是()。 A.详细设计任务相当于设计程序的“蓝图” B.详细设计的根本目标是应该怎样具体地实现系统 C.详细设计≠编写代码 D.以上都正确 11. 结构化程序之所以具有易于阅读,并且有可能验证其正确性,究其本 质是由于()。 A.它强调编程风格 B.选择良好的数据结构和算法 C. 有限制地使用GOTO语句 D.只有三种基本结构 12. 一般来说,在软件生命周期中成本最高的阶段是()。 A.详细设计 B.软件编码 C.软件测试 D.软件维护

软件工程导论第5版习题十三参考答案

3、下面叙述对一个计算机辅助设计(CAD)软件的需求: 该CAD软件接受由工程师提供的二维或三维几何图形数据。工程师通过用户界面与CAD系统交互并控制它,该用户界面应该表现出良好的人机界面设计特征。几何图形数据及其他支持信息都保存在一个CAD数据库中。开发必要的分析、设计模块,以产生所需要的设计结果,这些输出将显示在各种不向的图形设备上。应该适当地设计软件,以便与外部设备交互并控制它们。所用的外部设备包括鼠标、数字化扫描仪和激光打印机。 要求: (1)进一步精化上述要求,把CAD软件的功能分解成若干个子功能; (2)用代码行技术估算每个子功能的规模; (3)用功能点技术估算每个子功能的规模; (4)从历史数据得知,开发这类系统的平均生产率是620LOC/PM,如果软件工程师的平均月工资是8000元,请估算开发本系统的工作量和成本; (5)如果从历史数据得知,开发这类系统的平均生产率是6.5FP/PM,请估算开发本系统的工作量和成本。 答: (1)习题中仅对需求做了粗略描述,每项需求都应该进一步扩展,以提供细节需求和定量约束。例如,在开始估算软件规模之前,需要确定“良好的人机界面设计特征”的具体含义,以及对“CAD数据库”的规模和复杂度的具体需求。 经过对需求的进一步精化,分解出软件的下述7个主要的子功能: ·用户界面及控制机制; ·二维几何图形分析; ·三维几何图形分析; ·数据库管理; ·计算机图形显示机制; ·外部设备控制; ·设计分析模块。 (2)为了用代码行技术估算软件规模,应该针对每个子功能都分别估计出下述3个值:乐观值(即最小规模),悲观值(即最大规模)和可能值(即最可能规模)。然后用式(10.1)所示的加权平均法计算每个子功能的规模,结果示于表l0.4。 (3)使用功能点技术估算软件规模时,对软件的分解是基于信息域特性而不是基于软件功能。表l0.5给出了对5个信息域特性的估计值。为了计算未调整的功能点数,假设每个信息域特性的复杂度都是平均级别的。

软件工程导论课后习题答案

软件工程导论课后习题答案 软件工程导论课后习题答案 在软件工程导论课中,习题是帮助学生巩固所学知识的重要方式。通过解答习题,学生可以更好地理解软件工程的基本概念和方法。下面是一些常见的软件 工程导论课后习题及其答案,希望能对大家的学习有所帮助。 1. 什么是软件工程? 答案:软件工程是一门研究如何以系统化的、规范化的、可度量的方法开发和 维护软件的学科。它涉及软件开发的各个阶段,包括需求分析、设计、编码、 测试和维护等。 2. 软件生命周期是什么? 答案:软件生命周期指软件从开始开发到最终退役的整个过程。它包括需求分析、设计、编码、测试、发布和维护等阶段。软件生命周期的目标是确保软件 按照既定的质量标准和进度要求完成。 3. 什么是软件需求? 答案:软件需求是对软件系统功能、性能和约束条件的描述。它包括用户需求、系统需求和软件需求规格等。软件需求是软件开发的基础,对于软件项目的成 功至关重要。 4. 什么是软件设计? 答案:软件设计是将软件需求转化为软件结构的过程。它包括软件体系结构设计、模块设计和接口设计等。软件设计要求结构清晰、模块化、可扩展和可维护。 5. 什么是软件测试?

答案:软件测试是通过运行软件系统,发现并修复其中的错误和缺陷的过程。 它包括单元测试、集成测试和系统测试等。软件测试旨在确保软件的质量和可 靠性。 6. 什么是软件维护? 答案:软件维护是在软件交付后对其进行修改和改进的过程。它包括错误修复、性能优化和功能扩展等。软件维护的目标是确保软件持续满足用户的需求。 7. 什么是软件配置管理? 答案:软件配置管理是对软件开发过程中的各种配置项进行管理和控制的过程。它包括配置项的标识、变更控制和版本管理等。软件配置管理能够确保软件开 发过程的可控性和可追溯性。 8. 什么是软件质量保证? 答案:软件质量保证是通过制定和实施质量管理计划,确保软件开发过程和产 品满足质量要求的过程。它包括质量标准的制定、质量度量和质量审查等。软 件质量保证能够提高软件的可靠性和可维护性。 9. 什么是软件过程改进? 答案:软件过程改进是通过分析和改进软件开发过程,提高组织能力和产品质 量的过程。它包括过程评估、过程度量和过程改进计划等。软件过程改进能够 提高软件开发效率和产品质量。 10. 什么是敏捷开发? 答案:敏捷开发是一种以人为核心、迭代和增量的开发方法。它强调团队合作、快速响应变化和持续交付价值。敏捷开发能够提高开发效率和客户满意度。 以上是一些常见的软件工程导论课后习题及其答案。通过解答这些习题,可以

软件工程习题及答案解析

一、选择题: 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/6 B、1/5 C、1/4 D、1/3 7. 变换型和事务型是程序结构的标准形式。从某处获得数据,再对这些数据作处理,然后将结果送出是属于。 A、变换型 B、事务型 8. PAD (Problem Analysis Diagram)图是一种工具。 A、系统描述 B、详细设计 C、测试 D、编程辅助 9. 分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的。 A、总貌 B、细节 C、抽象 D、软件的作者 10. 数据流图中,当数据流向或者流自文件时,。 A、数据流要命名,文件不必命名 B、数据流不必命名,有文件名就足够了 C、数据流和文件均要命名,因为流出和流进数据流是不同的 D、数据流和文件均不要命名,通过加工可自然反映出

相关文档
最新文档