软件工程课后题答案.docx
- 文档编号:25493913
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:31
- 大小:36.88KB
软件工程课后题答案.docx
《软件工程课后题答案.docx》由会员分享,可在线阅读,更多相关《软件工程课后题答案.docx(31页珍藏版)》请在冰豆网上搜索。
软件工程课后题答案
软件工程课后题答案
第一章软件工程引论
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.
B)可明确表示两
C)
C.控制对象、
B)
采用UML进行软件建模的过程中,类图是系统的一种静态视图,用(类事物之间存在的整体/部分形式的关联关系。
A.依赖关系B.聚合关系C.泛化关系D.实现关系
2.在UML语言中,图中的a、b、c三中图形符号按照顺序分别表示(Kim,Keehyun
Kim,HyunsooJung,Yoontae
A.边界对象、实体对象、控制对象B.实体对象、边界对象、控制对象
实体对象、边界对象D.边界对象、控制对象、实体对象
3.不同的对象收到同一消息可以产生完全不同的结果,这一现象叫做(
A.继承B.多态C.动态绑定D.静态绑定
第六章面向对象的软件设计
1.下面哪种设计模式定义了对象间的一种一对多的依赖关系,以便当一个对象的状态发生
改变时,所有依赖于它的对象都得到通知并自动刷新(D)
A.Adapter(适配器)B.lterator(迭代器)C.Prototype(原型)D.Observer(观察
者)
2.UML中有多种类型的图,其中,(B)对系统的使用方式进行了分类;()显示了类及
苴
丿、
相互关系;()显示了人或对象的活动,其方式类似于流程图;通信图显示了在某种情况下
对象之间发送的消息;()与通信图类似,但强调的是顺序而不是连接。
A.用例图、顺序图、类图、活动图B.用例图、类图、活动图、顺序图C.类图、顺序图、
活动图、用例图D.活动图、顺序图、用例图、类图
3.UML类图的类与类之间的关系有5种:
继承、依赖、关联、组合和聚合,若类A需要使
用标准数学函数类库中提供的功能,那么类A与标准类库中提供的类之间存在(A)关系
A.依赖B.关联C.聚合D.组合
第七章软件测试技术
1.用边界值分析法,假定1
A.X=1,X=100B.X=0,X=1,X=100,X=101C.X=2,X=99D.X=0,X=101
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.单元测试一般以白盒为主,测试的依据是(A)
A.模块功能规格说明B.系统模块结构图C.系统需求规格说明D.统计出错的次
数
7.下次关于a、3测试的描述中正确的是(C)
A.a测试不需要用户代表参加B.3测试不是验收测试的一种C.a测试可以有用户
代表参加D.3测试是系统测试的一种
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.软件工程出现的主要原因是软件危机的出现。
V文档是软件产品的一部分,没有文档的
软件就不能称为软件。
V软件危机的主要表现是软件需求量迅速增加,软件价格上升。
X-
个成功的项目唯一应该提交的就是运行程序法。
x与计算机科学的理论研究不同,软件工
程是一门原理性学科。
x
第二章软件生命周期及开发模型
1.瀑布模型和增量模型都属于整体开发模型。
X
2.原型模型可以有效地适应用户需求的动态变化。
X
3.螺旋模型在瀑布模型和增量模型的基础上增加了风险分析活动。
V
4.软件过程改进也是软件工程的范畴。
V
5.在软件开发中采用原型系统策略的主要困难是成本问题。
X第三章结构化需求分析
1.
2.
3.
4.需求分析的主要目的是制定软件开发的具体方案。
X用户对软件需求的描述不精确,
往是产生软件危机的原因之一。
"分层的DFD图可以用于可行性分析阶段,描述系统的物理结构。
X在用户需求分析时观察用户手工操作过程不是为了模拟手工操作过程,而是为
了获取第
一手资料,并从中提取有价值的需求。
“
5.需求规格说明数描述了系统每个功能的实现。
X
第四章结构化软件设计
1.在同一用户界面中,所有的菜单选择,命令输入、数据显示和其它功能应采用不同的形式和风格。
X
2.最高的耦合度是数据耦合。
V
3.编程中应采用统一的标准和约定,降低程序的复杂性。
“
4.流程图也称为框图程序,是程序最常用的一种表示法。
"
5.理想的人机界面应针对具有典型个性的特定的一类用户设计。
V
6.重视程序结构的设计,能是程序具有较好的层次结构。
V
7.软件过程不用遵循“自上而下,逐步求精”的原则和单入口单出口的结构化设计思想。
X
8.软件开发、设计几乎都是从头开始,成本和进度很难估计。
V
9.耦合度是对软件结构中模块间关联程度的一种度量。
在设计软件是应追求耦合尽可能紧密的系统。
X
10.SD法是一种面向数据结构的设计方法,强调程序结构与问题结构相适应。
X第五章面向对象的需求分析
1.边界对象表示了系统与参与者之间的接口。
在每一个用例中,该对象从参与者处收集信息,并将之转换为一种实体对象和控制对象使用的形式。
V
2.采用面向对象的方法开发软件的过程中,抽取和整理用户需求并建立问题域精确模型的过程叫面向对象分析。
V
3.继承仅仅允许单重继承,即不允许一个子类有多个父类。
X第六章面向对象的软件设计
1.面向对象程序设计应该在面向对象分析之前,因为只有产生了设计结果才可以对其进行分析。
X
2.面向对象设计产生的结果在形式上可以与面向对象分析产生的结果类似,例如都可以使用UML表达。
V
第七章软件测试技术
1.软件测试就是为了验证软件功能的实现是否正确,是否完成既定目标的活动,所以软件测试在软件工程而后期才开始具体的工作。
X
2.发现错误多的模块,可能残留在模块中的错误也多。
V
3.测试人员在测试过程中发现一处问题,如果问题影响不大,而自己有可以修改,应立即将此问题正确修改,以加快、提高开发的进程。
X
4.路径测试不属于单元测试的内容。
V
5.测试只要做到语句覆盖和分支覆盖,就可以发现程序中的所有错误。
X
6.软件测试只能发现错误,但不能保证测试后的软件没有错误。
V
7.集成测试是有最终用户来实施的。
X
8.所有的逻辑覆盖标准中,查错能力最强的语句覆盖。
X
9.等价类划分方法能够有效的检测输入条件的各种组合可能引起的错误。
x
10.验收检测方法需要考察模块间接口和各模块之间的联系。
x第八章软件维护技术
1.
2.
3.
4.
5.
维护申请报告是一种由用户产生的文档,它用作计划维护任务的基础。
x维护阶段是软件
生存周期中时期最短的阶段,也是花费精力和费用最少的阶段。
x在软件维护中,因修改
软件而导致出现错误或其它情况成为维护的副作用。
"为了提高软件的可维护性和可靠性
而对软件进行的修改称为适应性维护。
x维护的副作用有编码副作用、数据副作用、文档
副作用3种。
"第一章软件工程引论
1.什么是软件危机?
它和软件工程有什么关系?
答:
软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
概括地说,
软件危机包含下述两方面的问题:
如何开发软件,以满足对软件日益增长的需求;如何维护
数量不断膨胀的已有软件。
2.简述软件和软件工程的定义以及软件工程的形成过程。
答:
软件是与计算机系统操作有关的程序、规程、规则及其文档和数据的统称。
软件由两部
分组成:
一是机器可执行的程序和有关的数据;二是与软件开发、运行、维护、使用和培训有关的文档。
软件工程是指导计算机软件开发和维护的工程学科。
它强调按照软件产品的生产特性,采用
工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术
和当前最好的技术结合起来,以便经济地开发出高质量的软件并有效地维护它。
软件工程
的发展经历了以下3个阶段。
第一阶段:
20世纪70年代,一传统软件工程时代。
第二阶段:
20世纪80年代,一过程软件工程时代。
第三阶段:
进入20世纪90年代以后,一构件软件工程时代。
3.软件工程的目标是什么?
如何解决多目标之间的矛盾?
答:
软件工程的目标:
软件开发成本较低。
软件功能能够满足用户的需求。
软件性能较好。
软件可靠性高。
软件易于使用、维护和移植。
能按时完成开发任务,并及时交付使用。
有些目标之间是相互补充的,如易于维护和高可靠性之间、功能强与可用性之间;有些目标
是彼此相互冲突的,如若只考虑降低开发成本,很可能同时也降低了软件的可靠性,如果一
味追求提高软件的性能,可能造成开发出的软件对硬件的依赖性较强,从而影响到软件的可
移植性;不同的应用对软件质量的要求不同,如对实时系统来说,其可靠性和效率比较重要;
对生命周期较长的软件来说,其可移植性、可维护性比较重要,所以,应该根据不同的系统
需求决定个目标之间的重要性。
4.在软件开发中软件开发工具有什么作用?
答:
软件开发工具是指用来辅助软件开发、维护和管理的软件。
现代软件工程方法得以实施
的重要保证是软件开发工具和环境。
软件开发工具使软件在开发效率、工程质量、减少软件
开发对人的依赖性等多方面得到改善
5.什么是软件支持过程?
它与软件工程方法学有何关系?
答:
软件过程是指生产满足需求且达到工程目标的软件产品所涉及的一系列相关活动,
它覆盖了需求分析、系统设计、实施以及支持维护等各个阶段。
软件过程有各种分类方法。
按性质划分软件过程可概括为基本过程类、支持过程和组织过程
类。
可见软件支持过程是软件过程中的一种。
6.在软件工程知识体系中,将软件工程划分为哪些知识域?
答:
SWEBO将软件工程知识体系划分为10个知识域,分为两类过程。
一类是开发与维护过
程,包括软件需求、软件设计、软件构造、软件测试和软件维护;另一类是支持过程,包括软件配置管理、软件工程管理、软件工程过程、软件工程工具与方法、软件质量。
7.B.W.Boehm提出的软件工程基本原则的作用是什么?
答:
1•采用分阶段的生命周期计划,以实现对项目的严格管理
2•坚持进行阶段评审,以确保软件产品质量
3•实行严格的产品控制,以适应软件规格的变更
4•采用现代程序设计技术
5•软件成果能清楚地审查
6•开发小组人员应该少而精
7.承认不断改进软件工程实践的必要性
第二章软件生命周期及开发模型
1.简述什么是软件生命周期。
根据国家标准《计算机软件开发规范》,软件生命周期主要包括哪几个阶段?
答:
作为工程化的一般特征,软件产品和其他工业产品一样,软件产品也包括设计、生产、使用和消亡几个阶段,并称之为软件的生命周期,即指软件产品从功能确定、设计、开发成
功、投入使用,并在使用中不断修改、完善,直至被新的软件所替代,而停止该软件使用的全过程。
国家标准GB8566-1988《计算机软件开发规范》将软件生命周期划分为几个阶段:
可行性研究、项目计划、需求分析、总体设计、详细设计、编码实现(包括单元测试、集成测试、确认测试)、系统运行和维护。
这几个阶段又可以归纳为3个阶段,即软件定义阶段,软件开发阶段和软件运行维护阶段。
2.瀑布模型有哪些特点?
对于里程碑,你有哪些认识?
答:
1970年W.Royce最早提出瀑布模型。
答:
瀑布模型的特点:
(1).线性化模型结构;
(2).各阶段具有里程碑特征;(3).基于文档的驱动;(4).严格的阶段评审机制。
其中的里程碑是指瀑布模型中的阶段只能逐级到达、不能跨越;每个阶段都有明确的任务,都需要产生确定的成果。
由于瀑布模型是一种线性模型,要求项目严格按规程推进,必须等
到所有开发工作全部完成以后才能获得可以交付的软件产品。
因此,瀑布模型不太适用于用
户需求经常变更的软件项目。
瀑布模型是一种基于里程碑的阶段过程模型,它所提供的里程碑式的工作流程,为软件项目
按规程管理提供了便利。
例如,按阶段制订项目计划,分阶段进行成本核算,进行阶段性的评审等。
这为提咼软件产品质量提供了有效保证。
3.试说明原型模型的两种实现方案各有什么特点,各适用于哪些情况。
答:
原型可以分为3类。
1)抛弃式原型:
这种原型在目的达到后即被抛弃,原型不作为最终产品,如上所述。
2)进化式原型:
这类原型的形成和发展是逐步完成的,它是高度动态迭代和高度动态循环,
每次迭代都要对系统重新进行需求规格说明、重新设计、重新实现和重新评价,所以是对付
变化最为有效的方式。
3)增量式模型:
系统是一次一段地增量构造,与演化式原型的最大区别在于增量式开
4.
6.
7.
8.发是在软件总体设计基础上进行的。
一般认为,只有大型项目才采用螺旋模型,原因是
什么?
答:
螺旋模型的优越性在于它吸收了“进化”的概念,使得开发人员和用户对每一个演化层出现的风险均有所了解,并对此做出反应。
但使用该模型需要丰富的风险评估经验
和专门知识,如果项目风险较大又未及时发现,势必造成重大损失。
实际上,对软件项目进
行风险分析也需要费用,假如项目风险分析费用过高,甚至超过了项目的开发费用,显然就
不合适了。
一般大型项目才有较高的风险,才有进行详细风险分析的必要。
因此,这种模型
比较适合大型的软件项目。
为什么说构建复用模型是一种有利于软件按工业流程生产的过
程模型?
答:
对象技术将事物实体封装成包含数据和数据处理方法的对象,并抽象为类。
经过适当的设计和实现的类也可称为构件。
由于构件具有一定的通用性,可以在不同的软件
系统中被复用。
在基于构件复用的软件开发中,软件由构件装配而成,这就如同用标准零件
装配汽车一样。
构件复用技术,它能带来更好的复用效果,并且具有工程特性,更能适应软件按工业流程生产的需要。
敏捷方法的价值观和原则与传统的方法有哪些联系和区别?
答:
相对于“非敏捷”,敏捷不仅是体现在有效地响应变化,它还包括鼓励程序员团队与业务专
家之间的紧密协作、面对面地沟通(认为比书面的文档更有效)、强调可运行软件的快速交
付而不是中间产品,敏捷过程提倡可持续开发。
建立紧凑而自我组织型的团队,能够很好地
适应需求变化的代码编写和团队组织方法,也更注重软件开发中人的作用。
每隔一定时间,团队都要总结如何更有效率,然后相应地调整自己的行为。
从产品角度看,敏捷方法适用
于需求萌动并且快速改变的情况,如系统有比较高的关键性、可靠性、安全性方面的要求,则可能不完全适合;从组织结构的角度看,组织结构的文化、人员、沟通则决定了敏捷方法
是否适用。
有什么情况下会建议不用敏捷方法来开发软件系统?
从产品角度看,敏捷方法
适用于需求萌动并且快速改变的情况,如系统有比较高的关键性、可靠性、安全性方面的要
求,则可能不完全适合;从组织结构的角度看,组织结构的文化、人员、沟通则决定了敏捷方法是否适用。
具有原型化的瀑布模型具有什么特点?
他和瀑布模型最大的不同是什么?
答:
为了克服瀑布模型的问题,可以在需求阶段或设计阶段平行地进行几次快速建立原型的工作。
原型开发后,可以获得更为清晰的需求反馈信息,既可以消除风险或减少不确定性,又可以采用平行瀑布模型方式。
在瀑布模型的各阶段间转换时,可以适当并行扩展各阶段的
开发工作。
例如,在需求分析完成60%寸,就可以开始进行这60%已完成分析部分的设计工
作,同时并行进行其余40%勺需求分析。
第三章结构化需求分析
1.简述什么是需求分析?
需求分析的任务是什么?
答:
需求分析:
开发人员准确地理解用户的要求,进行细致的调查分析,将用户非形式的需
求陈述转化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过程。
基本任
务:
⑴问题识别:
双方确定对问题的综合需求,这些需求包括功能需求,性能需求,环境需求,用户界面需求;分析与综合,导出软件的逻辑模型;编写文档:
包括编写
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 课后 答案