软件工程概论的练习题及答案.docx
- 文档编号:8466520
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:39
- 大小:122.50KB
软件工程概论的练习题及答案.docx
《软件工程概论的练习题及答案.docx》由会员分享,可在线阅读,更多相关《软件工程概论的练习题及答案.docx(39页珍藏版)》请在冰豆网上搜索。
软件工程概论的练习题及答案
概述
一、填空题
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/2B.1/3C.1/4D.2/3
5、在软件开发过程中大约要花费C%的工作量进行测试和调试。
A.20B.30C.40D.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、要成功地完成软件开发工作的一个主要的决定性因素是项目管理。
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(MeanTimeToChange)。
这个时间包括开始分析变更要求、设计合适的修改、实现变更并测试它、以及把这种变更发送给所有的用户。
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.4200B.4350C.4675D.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)。
软件产品的(A1)包括产生的代码行数、执行速度等。
软件产品的(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②LOCG.①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.2C.①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);根据估计的结果来确定是否要进行风险分析。
一般
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 概论 练习题 答案