软件工程课后习题及其答案.docx
《软件工程课后习题及其答案.docx》由会员分享,可在线阅读,更多相关《软件工程课后习题及其答案.docx(38页珍藏版)》请在冰豆网上搜索。
软件工程课后习题及其答案
软件工程习题
CH1一、填空题
一、软件工程需要解决的问题包括:
费用、靠得住性、可保护性、生产率和重用。
二、到目前为止,软件生产的进展经历了三个阶段,即程序设计、程序系统和软件工程。
3、运算机科学中的研究曾国都可用于软件工程,但运算机科学偏重于原理和理论,而软件工程偏重于软件系统构造。
4、软件工程有效管理科学的方式和原理进行软件生产的管理。
五、软件工程是用科学知识和技术原理来概念、开发、保护软件的一门科学。
六、软件工程研究的主要内容包括软件开发技术和软件开发管理技术两个方面。
在软件开发技术方面,主要研究开发方式、开发进程、开发工具。
在软件开发管理技术方面主要研究管理学、经济学、心理学。
7、作为一门交叉学科,软件工程具有很强的综合性,它涉及运算机科学、工程科学、管理科学、数学等领域。
八、软件生产周期是指一个软件从提出开发要求开始直到该软件报废为止的整个时期。
通常包括问题概念、可行性研究、需求分析、整体设计、详细设计、编码、测试、保护等活动,能够将这些活动以适当方式分派到不同阶段去完成。
九、开发软件工具的主要目的是为了提高软件生产效率和改善软件的质量。
10、描述软件开发进程中各类活动如何执行的模型称为周期模型。
1一、从软件工程诞生以来,已经提出了多种软件开发方式,如结构化方式、面向数据的方式、面向对象的方式,它们对软件工程及软件产业的进展起到了不可估量的作用。
1二、结构化方式由结构化分析、结构化设计和结构化程序设计组成。
它是一种面向数据流的开发方式。
13、增量模型是一种非整体开发方式的模型。
软件在该模型中是“逐渐”开发出来的,开发一部份向用户展示一部份,可让用户及早看到部份软件,及早发觉问题。
或先开发一个“原型”软件,完成部份主要功能,展示给用户并征求意见,然后慢慢完善,最终取得满意的软件产品。
14、喷泉模型是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方式。
它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性。
喷泉模型使开发进程具有迭代性和无间隙性。
1五、结构化方式总的指导思想是自顶向下慢慢求精。
它的大体原则是功能的分解和抽象。
它是软件工程中最先出现的开发方式,特别适用于数据处置领域的问题。
1六、螺旋模型将瀑布模型和增量模型结合起来,加入了两种模型均忽略了的风险分析,弥补了这两种模型的不足。
17、螺旋模型将开发进程分为几个螺旋周期,在每一个螺旋周期内分为4个工作步骤。
第一步制定计划,肯定目标,选定实施方案,明确开发限制条件。
第二步风险分析,分析所选方案、识别风险,通过原型消除风险。
第三步开发实施,实施软件开发。
第四步用户评估,评价开发工作,提出修改意见,成立下一周期的计划。
1八、面向对象开发方式包括面向对象分析、面向对象设计、面向对象实现三部份。
1九、目前有若干种软件生存周期模型,例如瀑布模型、增量模型、螺旋模型、喷泉模型、原型模型、RUM模型。
20、瀑布模型是将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型。
它包括问题概念、可行性研究、需求分析、整体设计、详细设计、编码、测试、保护,它规定了由前至后、彼此衔接的固定顺序,犹如瀑布流水,逐级下落。
2一、简单实用、应用普遍、技术成熟的开发方式是结构化方式。
2二、增量构造模型是在前面的开发阶段按瀑布模型进行整体开发,后面的开发阶段按增量方式开发。
23、增量模型是在项目的开发进程中以一系列的增量方式开发系统。
增量方式包括增量开发和增量提交。
24、按照原型的目的、方式和内容的取舍不同,原型特征可分为可执行的规格说明、基于脚本的设计、采用专门语言和能重用软件四类。
2五、增量构造模型是在瀑布模型的基础上,对一些阶段进行整体开发,对另一些阶段进行增量开发。
2六、增量开发是指在项目开发周期内,以必然的时刻距离开发部份工作软件;增量提交是指在项目开发周期内,以必然的时刻距离增量方式向用户提交工作软件及相应文档。
27、原型模型又称快速原型模型,它是增量模型的另一种形式。
2八、快速原型模型按照原型的不同,有探索型原型、实验型原型、演化型原型三类。
2九、原型开发步骤包括:
快速分析、构造原型、运行原型、评价原型和修改。
30、快速原型的思想是在研究需求分析的方式和技术中产生的。
3一、瀑布模型本质上是一种线性顺序模型。
3二、对于演化型,用原型进程代替全数开发阶段。
这是典型的演化提交模型的形式,它是在强有力的软件工具支持下,通过原型进程的反复循环,直接取得软件系统。
33、快速原型是利用原型辅助软件开发的一种思想。
通过简单快速分析,快速实现一个原型,用户与开发者在试用原型、反复评价进程中增强通信与反馈,通过改良原型,减少误解,弥补遗漏,适应转变,最终提高软件质量。
34、探索型的原型模型是把原型用于开发的需求分析阶段,目的是要弄清用户需求,肯定所期望的特性,并探索各类方案的可行性。
3五、构造原型时,必需注意功能性能取舍,忽略一切暂不时不关心的部份。
3六、用原型进程来代替设计阶段,考查设计方案的可行性与合理性,这是快速原型的实验型原型。
37、探索型的原型模型主要针对开发目标模糊、用户与开发者对项目都缺乏经验的情形,通过对原型的开发来明确用户的需求。
3八、用原型进程代替全数开发阶段,这种快速原型是演化型原型。
3九、快速原型模型是在原型基础上,逐渐完成整个系统的开发工作。
40、实验型原型主要用于设计阶段,考核实现方案是不是适合和可否实现。
4一、对于实验型,用原型进程来代替设计阶段,即在设计阶段引入原型,快速分析实现方案,快速构造原型,通过运行,考查设计方案的可行性与合理性,原型成为设计的整体框架或设计结果的一部份。
4二、软件开发中的原型是软件的一个初期可运行的版本,它反映了最终系统的重要特征。
43、增量模型按照增量方式和形式的不同,分为渐增模型和原型模型。
44、若原型不知足需求说明,则按照明确的要求修改原型,若原型不知足用户需求,则修改和规定需求说明,从头构造原型。
4五、瀑布模型不适应需求可变的软件开发,只有到开发结束才能见到整个软件系统。
4六、用原型进程来代替需求分析、使需求说明完整、一致、准确,这种快速原型是探索型原型。
47、瀑布模型属于整体开发模型,增量模型属于非整体开发模型。
4八、增量模型在开发进程中以一系列增量方式开发系统,推延某阶段的细节,从而及早产生工作软件。
4九、软件原型是软件的初期可运行版本,反映最终系统的重要特性。
50、增量构造模型在需求分析和设计阶段按整体方式开发,但在编码和测试阶段按增量方式开发。
二、选择题
一、软件是一种(B)产品。
A.有形B.逻辑C.物质D.消耗
二、软件工程学的目的应该是最终解决软件生产率的(B)问题。
A.提高软件开发效率B.使软件生产工程化
C.消除软件危机D.增强软件的质量保证
3、与运算机科学的理论研究不同,软件工程是一门(B)学科。
A.理论性B.工程性C.原理性D.心理性
4、软件危机的主要原因有(C)。
①软件本身的特点②用户利用不妥③硬件靠得住性差
④对软件的错误熟悉⑤缺乏好的开发方式和手腕
A.③④B.①②③C.①⑤D.①③
五、在运算机软件开发和保护中所产生的一系列严峻的问题通常称为“软件危机”,这些问题中相对次要的因素是(D)。
A.文档质量B.开发效率C.软件功能D.软件性能
六、软件工程与运算机科学性质不同,软件工程着重于(C)。
A.原理探讨B.理论研究C.构造软件系统D.方式的应用
7、软件工程学科出现的主要原因是(C)。
A.运算机的进展B.网络的进展C.软件危机的出现D.程序设计方式学的影响
八、软件工程方式学的研究内容包括软件开发技术和软件开发管理两个方面,其期望达到的最终目标是(A)。
A.软件开发工程化B.消除软件危机C.实现软件可重用D.程序设计自动化
九、由于软件生产的复杂性和高本钱性,使大型软件的生产出现危机,软件危机的主要表现包括了下述(D)方面。
①生产本钱太高②需求增加难以知足③进度难以控制④质量难以保证
A.①②B.②③C.④D.全数
10、软件生存周期模型有多种,下列选项中,(C)模型不是软件生存周期模型。
A.螺旋B.增量C.功能D.瀑布
1一、结构化方式和原型化方式是软件开发中常常利用的两种大体方式,在实际的应用中,它们之间的关系表现为(B)。
A.彼此排斥B.彼此补充C.交替利用D.独立利用
1二、软件生存周期包括可行性研究、需求分析、整体设计、详细设计、编码、(B)和保护。
A.工具B.测试C.方式D.文档
13、软件开发的瀑布模型,一般都将开发进程划分为:
分析、设计、编码和测试等阶段,一般以为可能占用人员最多的阶段是(C)。
A.分析阶段B.设计阶段C.编码阶段D.测试阶段
14、解决“软件系统做什么”是(C)阶段的任务。
A.可行性研究B.详细设计C.需求分析D.编码
1五、瀑布模型中软件生命周期划分为8个阶段:
问题概念、可行性研究、需求分析、整体设计、详细设计、编码、测试、保护。
8个阶段又可划分为三个周期:
计划、开发和(A)。
A.运行B.可行性研究C.详细设计D.测试与排错
1六、从传统瀑布模型看,在软件生命周期中的8个阶段中,下面(C)选项对软件的影响最大。
A.详细设计阶段B.整体设计阶段C.需求分析阶段D.测试和保护阶段
17、在瀑布模型中,(A)阶段概念的标准将成为软件测试中的系统阶段测试目标。
A.需求分析阶段B.整体设计阶段C.详细设计阶段D.可行性研究阶段
1八、软件生存周期中时刻最长的阶段是(D)。
A.需求分析阶段B.整体设计阶段C.测试阶段D.保护阶段
1九、检查软件产品是不是符合需求概念的进程称为(B)。
A.集成测试B.确认测试C.验证测试D.验收测试
20、在软件生存周期中,用户主如果在(A)参与软件开发。
A.软件概念期B.软件开发期C.软件保护期D.整个软件生存周期
2一、螺旋模型将瀑布模型和增量模型结合,并增加了(B)。
A.系统工程B.风险分析C.设计评审D.进度控制
2二、螺旋模型在(D)基础上,沿着螺线自内向外每旋转一圈,就取得元宵的一个新版本。
A.模块划分B.子程序分解C.设计D.原型
23、喷泉模型描述了(A)的开发模型,它表现了这种开发方式创建软件的进程所固有的迭代和开发各阶段之间无“间隙”的特征。
A.面向对象B.面向数据流C.面向数据结构D.面向数据驱动
24、瀑布模型中,(D)阶段概念的标准将成为软件测试中的系统测试阶段的目标。
A.详细设计阶段B.整体设计阶段C.可行性研究阶段D.需求分析阶段
2五、增量模型是一种(B)模型。
A.整体开发B.非整体开发C.灵活性差D.较晚产生工资软件
2六、增量模型是(C)。
A.与瀑布模型无关B.与原型模型有关C.瀑布模型的改良D.原型模型的变种
三、简答题
一、什么是软件危机?
它有哪些典型表现?
为何会出席软件危机
答:
通常把在运算机软件的开发与保护进程中所碰到的一系列严峻问题笼统地称为软件危机。
软件危机主要表现:
①对软件开发本钱和进度的估量常常很不准确(效率低)
②用户对“已完成的”软件系统不满意的现象常常发生(需求不准)
③软件产品的质量往往靠不住(质量差)
④软件常常是不可保护的(保护难)
⑤软件通常没有适当的文档资料(重用差)
⑥软件本钱在运算机系统总本钱中所占的比例逐年上升(本钱高)
⑦软件开发生产率提高的速度远远跟不上运算机应用迅速普及深(性能低)
入的趋势
产生软件危机的原因:
①客观原因:
软件是运算机系统中的逻辑部件而不是物理部件,其显著特点是“可见性”,因此,管理和控制软件开发进程相当困难。
另外,软件保护通常意味着更正或修改原有的设计,从而使得软件较难保护。
软件的另一个突出特点是规模庞大,而持续复杂性将随着程序规模增加以指数速度上升。
软件可能具有的状态通常都是天文数字,无法完全预见软件可能碰到的每一种情形。
②主观原因:
在运算机系统进展初期阶段开发软件的个体化特点,使得许多软件工程师对软件开发和保护有很多糊涂熟悉,在实际工作中或多或少地采用了错误的方式,这是使软件问题进展成软件危机的主要原因。
错误的熟悉和做法主要表现为,轻忽软件需求分析的重要性,以为软件开发就是写程序,轻视软件保护。
。
必需熟悉到程序只是完整的软件产品的一个组成部份,一个软件产品必需由一个完整的配置组成。
软件配置包括程序、文档和数据。
严酷的事实是,在软件开发后期阶段引入一个变更比在初期引入同一个变更所需付出的代价高几百倍。
所谓软件保护就是在软件开发工作结束以后在利用现场对软件进行修改。
因此,保护是极端艰苦复杂的工作,需要花费专门大代价。
由此可见,轻视软件保护是一个最大的错误。
软件工程的一个重要目标就是提高软件的可保护性,减少软件保护的代价。
二、什么是软件工程?
它有哪些本质特征?
如何用软件工程消除软件危机?
答:
软件工程是指导运算机软件开发和保护的一门工程学科,该学科的目的是生产出能按期交付的、在预算范围内的、知足用户需求的、质量合格的软件产品。
软件工程具有下述本质特性:
(1)软件工程关注大型程序的构造
(2)软件工程的中心课题是控制复杂性
(3)软件常常转变
(4)开发软件的效率超级重要
(5)和谐的合作是开发软件的关键
(6)软件必需有效地支持它的用户
(7)由具有一种文化背景的人代替具有另一种文化背景的人创造产品
软件工程的7条原理是消除软件危机的保证:
(1)用生命周期计划严格管理
(2)坚持进行阶段评审
(3)实行产品一致性控制
(4)采用最新的软件设计技术
(5)清楚地审查软件产品
(6)开发小组的人员应该少而精
(7)承认不断改良软件工程实践的必要性
3、什么是软件生命周期模型?
试比较瀑布模型、快速原型模型、增量原型模型和螺旋模型。
答:
软件生命周期模型归纳地描述软件进程,规定了软件进程包括的各个阶段,和完成这些阶段的顺序。
典型的生命周期模型有:
(1)瀑布模型
瀑布模型规定了各项软件工程活动自上而下,彼此衔接的固定顺序,犹如瀑布流水,逐级下落。
长处:
①强迫开发人员采用规范的技术方式;
②严格地规定了每一个阶段必需提交的文档;
③每一个阶段提交的产品必需通过质量保证小组的仔细验证。
缺点:
在可运行的软件产品交付给用户之前,用户只能通过文档来了解未来的产品是什么样的;开发人员与用户之间缺乏有效的沟通,极可能致使最终开发的软件产品不能真正知足用户的需求。
(2)快速原型
瀑布型模型的缺点在于软件开发阶段推动是直线型的,工程实践说明这是一个“理想化”模型,不完全符合人们熟悉问题的规律。
原型化开发方式主要思想是:
先成立一个能够反映用户需求的原型系统(“样机”),使得用户和开发者能够对目标系统的概貌进行评价、判断。
然后对原型进行若干轮反复的扩充、改良、求精,最终成立完全符合用户需求的目标系统。
初始原型能够超级简单,它只实现未来系统的主要功能,系统主要模块之间的重要接口。
初始原型主要用于向用户展示系统功能概貌。
确认开发人员对系统主要功能的理解。
对系统应该具有的功能的演示运行通常能够对用户与开发人员之间的沟通起到催化剂作用,确立用户对项目开发的信心。
长处:
①任何功能一经开发就可以进入测试以便验证是不是符合产品需求。
②帮忙导引出高质量的产品要求。
若是没有可能在一开始就弄清楚所有的产品需求,它们能够分批取得。
而对于已提出的产品需求,则可按照对现阶段原型的试用而做出修改。
③风险管理能够在初期就取得项目进程数据,可据此对后续的开发循环做出比较切实的估算。
提供机缘去采取初期预防办法,增加项目成功的机率。
④大大有助于初期成立产品开发的配置管理,产品构建,自动化测试,缺点跟踪,文档管理。
均衡整个开发进程的负荷。
⑤开发中的经验教训能反馈应用于本产品的下一个循环进程,大大提高质量与效率。
⑥若是风险管理发觉资金或时刻已超出可经受的程度,则能够决定调整后续的开发,或在一个适当的时刻结束开发,但仍然有一个具有部份功能的,可工作的产品。
⑦心理上,开发人员早日见到产品的雏型,是一种鼓舞。
⑧利用户能够在新的一批功能开发测试后,当即参加验证,以便提供超级有价值的反馈。
⑨可使销售工作有可能提前进行,因为能够在产品开发的中后期取得包括了主要功能的产品原型去向客户作展示和试用。
缺点:
①“模型效应”对于开发者不熟悉的领域把次要部份看成主要框架,做出不切题的原型。
②原型迭代不收敛于开发者预先的目标。
即每次更改,为了消除错误,次要部份愈来愈大,“淹没”了主要部份。
③原型过快收敛于某些特定需求,而忽略了一些大体点,专门是与系统大体性能有关的部份。
④资源计划和管理较为困难,随时更新文档也带来麻烦、版本控制可能致使失控。
⑤长期在原型环境上开发,只注意取得满意的原型,容易“遗忘”用户环境和原型环境的不同。
(3)增量模型
增量模型把软件产品作为一系列的增量构件来设计、编码、集成和测试。
每一个构件由多个彼此作用的模块组成,而且能够完成特定的功能。
利用增量模型时,第一个增量构件往往实现软件的大体需求,提供最核心的功能。
特点:
①以功能递增的方式进行软件开发
②能较快地产生可操作的系统;
③在每一步递增中,都能够把用户/开发者的经验结合到不断求精的产品中;从而利用户④有比较丰裕的时刻学习和适应新软件,减少全新软件给客户组织带来的冲击;
⑤可改善测试效果和降低软件开发总本钱。
(4)螺旋模型
将瀑布模型、原型模型等结合起来,并强调风险分析。
4、试述软件生命周期8个阶段要解决的关键问题和里程碑
阶段
关键问题
里程碑
问题定义
要解决的问题是什么?
关于规模和目标的报告书
可行性研究
有可行的解吗?
系统的高层逻辑模型
需求分析
系统必须做什么?
系统的逻辑模型
总体设计
概括地说,应该如何解决这个问题?
系统层次图或结构图
详细设计
怎样具体地实现这个系统?
编码规格说明
编码和单元测试
正确的程序模块
源程序、单元测试方案和结果
综合测试
符合要求的软件
综合测试方案和结果、软件配置
维护
持久地满足拥用户需要
维护记录
Ch2可行性研究
一、填空题
一、软件可行性研究的目的就是用最小代价在尽可能短的时刻内肯定该软件项目是不是能够开发、是不是值得开发。
二、可行性研究的目的不是是开发一个软件项目,而是研究那个项目是不是值得去开发、其中的问题可否解决。
3、可行性研究的本质是要进行一次简化、紧缩了需求分析和设计进程,要在较高层次上以较抽象的方式进行需求分析和设计进程。
4、可行性研究需要从技术可行性、经济可行性、社会可行性和操作可行性四个方面分析研究每种解决方案的可行性。
五、技术可行性是对开发项目的功能、性能、限制条件进行分析,肯定现有资源条件下,技术风险有多大,项目是不是能实现。
六、经济可行性一般要考虑的情形包括:
本钱和效益。
7、技术可行性的研究包括:
本钱-效益分析、公司经营的长期策略、开发所需要的本钱和资源和潜在的市场前景。
八、社会可行性所涉及的范围包括合同、责任、侵权、用户组织的管理模式、范围和其他一些技术人员常常不了解的陷阱。
九、典型的可行性研究有以下步骤:
肯定项目的规模和目标、研究正在运行的系统、成立新系统的高层逻辑模型、导出和评价各类方案、推荐可行的方案和编写可行性研究报告。
10、一个可行性研究报告的主要内容如下:
引言、可行性研究的前提、对现有系统的分析所建议系统的技术的可行性、所建议系统的经济可行性、社会因素可行性分析、其他可供选择的方案、结论意见。
1一、系统效益=经济效益+社会效益。
1二、效益分有型效益和无形效益两种。
13、项目开发计划的主要内容:
项目概述、实施计划、人员组织及分工和交付期限。
14、纯收入=经济效益-投资。
1五、系统流程图图形符号表示系统中各个元素之间的信息流动。
1六、软件工程有两种效益,它们是有形效益和无形效益。
17、可行性的最后一个步骤是编写可行性研究报告。
1八、系统的经济效益等于因利用新的系统而增加的收入加上利用新的系统能够节省的运行费用。
1九、经费利用是不是合理是从社会角度评价开发一个新的软件项目是不是可行。
20、可行性研究中描述系统高层次物理模型的工具是系统流程图。
2一、可行性研究的本质是进行一次简化、紧缩了的需求分析和设计。
2二、可行性研究的第一个步骤是肯定项目的规模和目标。
二、选择题
一、研究开发资源有效性是进行(A)可行性研究的一个方面
A.技术B.经济C.社会D.操作
二、在软件可行性研究中、能够从不同的角度对软件进行研究,其中是从软件的功能可行性角度考虑的是(B)可行性
A.经济B.技术C.操作D.社会
3、在遵循软件工程原则开发软件进程中,计划阶段应该依次完成(B)
A.可行性研究、需求分析、问题概念B.问题概念、可行性研究、需求分析
C.需求分析、问题概念、可行性研究D.可行性研究、问题概念、需求分析
4、技术可行性要解决(D)
A.存在侵权否B.本钱-效益问题C.运行方式可行D.技术风险问题
五、制定软件计划的目的在于及早对欲开发的软件进行合理估价,软件计划的任务是(D)
A.组织与管理B.分析与估算C.设计与测试D.计划与调度
六、可行性研究中,系统流程图用于描述(A)
A.当前运行的系统B.当前逻辑模型C.目标系统D.新系统
7、研究软硬件资源的有效性是进行(A)可行性研究的一方面。
A.技术B.经济C.社会D.操作
八、可行性研究要进行的需求分析和设计应是(C)。
A.详