软件工程导论期末题库.docx
《软件工程导论期末题库.docx》由会员分享,可在线阅读,更多相关《软件工程导论期末题库.docx(14页珍藏版)》请在冰豆网上搜索。
软件工程导论期末题库
1、填空题
1.一般来说,可以从__一致性__、_完整性___、_现实性____与_有效性___四个方面验证软件需求的正确性。
2.IPO图就是_输入、处理与输出图_的简称,它就是美国IBM公司发展完善起来的一种图形工具。
3.系统流程图就是描述__物理模型__的传统工具,用图形符号表达了系统中各种元素之间的_____信息流动_____情况。
4.数据流图中的箭头表示数据流,椭圆或圆形表示数据处理,矩形表示数据的源点/终点。
5.软件测试的步骤按顺序分别就是:
___单元测试_____、子系统测试、系统测试(子系统与系统测试通常称为集成测试)、__确认测试__与_____系统测试(集成测试)____
6.软件生命周期一般可分为_问题定义_、可行性研究、_需求分析_、设计编码、_测试_、运行与维护阶段。
7.可行性研究主要集中在以下四个方面_经济可行性_、__技术可行性____、__法律可行性___与抉择。
8.在结构化设计中,HIPO图应用在总体设计阶段,由IPO图与_层次图_两部分组成。
9.复杂问题的对象模型通常由下述五个层次组成:
主题层、___类与对象_层、__结构___层、_属性_层与__服务_层。
10.实施精化设计的目标就是基于模块的“高内聚低耦合”的原则,提高模块的_独立性。
11.软件生命周期一般可分为___问题定义_、可行性研究、__需求分析__、概要设计__、详细设计、编码、__软件测试_、运行与维护阶段。
12.面向对象的数据存储管理模式分为__文件__、_关系数据库__与__面向对象数据库___三种。
13.单元测试一般以_白盒_测试为主,__黑盒__测试为辅。
14.软件工程三要素包括_方法_、__工具___与__过程___,其中,_过程_支持软件开发的各个环节的控制与管理。
15.类构件的重用方式有_实力重用__、__继承重用______与_多态重用__三种。
16.能力成熟度模型分为5个等级:
初始级、____可重复____级、__已定义___级、____已管理__级与__优化____级。
2、判断题
1、向滞后的项目中增加人手会使得项目更加滞后。
(T)
2、过程描述语言可以用于描述软件的系统结构。
(F)
3、按照瀑布模型开发软件的一条指导思想就是清楚地区分逻辑设计与物理设计,以便尽早开始程序的物理实现。
(F)
5、只有质量差的软件产品才需要维护。
(F)
6.层次图用来描述软件的层次结构。
层次图中的一个矩形框代表一个模块,方框间的连线表示模块的组成关系。
在层次图中除最顶层的方框之外,给每个方框都加编号,即成为带有编号的层次图。
(F)
7.建立动态模型的第一步,就是编写典型交互行为的脚本。
(T)
8、软件错误可能出现在开发过程的早期,越早修改越好。
(T)
9、软件模块的耦合就是越低越好。
(T)
10、一个好的测试用例在于能发现至今未发现的错误。
(T)
11、面向对象设计的结果只能采用面向对象语言来实现(F)
12、一个成功的项目唯一提交的就就是运行程序。
(F)
13、用例之间的关系有3种。
(T)
14、面向对象设计准则也要遵循弱耦合的原则,但就是继承耦合则应该提高,紧密地继承耦合与高度的一般-特殊内聚就是一致的。
(T)
15、软件工作的考虑范围主要就是程序设计与实现。
(F)
16、环形复杂度定量度量程序的逻辑复杂度,可以用这个公式来计算环形复杂度:
流图G的环形复杂度V(G)=N–E+2。
(改成E-N+2)(F)
17、等价类划分方法将所有可能的输入数据划分成若干部分,然后从每一部分中选取少数有代表性的数据作为测试用例。
(T)
18、在进行总体(改成概要)设计时应加强模块间的联系。
(F)
19、系统结构图就是精确表达程序结构的图形表示法。
因此,有时也可以将系统结构图当作系统流程图使用。
(T)
20、建立动态模型的第一步,就是编写典型交互行为的脚本。
(T)
21、在程序调试时,找出错误的位置与性质比改正该错误更难。
(F)
22、如果通过软件测试没有发现错误,则说明软件就是正确的。
(F)
23、快速原型模型可以有效地适应用户需求的动态变化。
(T)
24、模块化,信息隐藏,抽象与逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。
(T)
25、集成测试主要由用户来完成。
(F)
26、面向对象=对象+类+继承+消息传递。
(T)
27、面向对象的分析就是面向计算机系统建立软件系统的对象模型。
(F)
3、选择题
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.逻辑内聚B.时间内聚
C.偶然内聚D.功能内聚
12、需求分析就是()。
A、软件开发工作的基础 B、软件生存周期的开始
C、由系统分析员单独完成的 D、由用户自己单独完成的
13、在白盒测试技术测试用例的设计中,()就是最强的覆盖标准。
A.语句覆盖B.路径覆盖
C.条件组合覆盖D.判定覆盖
14.软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错,直至修改的回归测试过程称为()。
A、改正性维护 B、适应性维护
C、完善性维护 D、预防性维护
15.()就是把对象的属性与操作结合在一起,构成一个独立的对象,其内部信息对外界就是隐蔽的,外界只能通过有限的接口与对象发生联系。
A、多态性B、继承
C、封装D、消息
16、对象实现了数据与操作的结合,使数据与操作()于对象的统一体中。
A.结合B.隐藏C.封装D.抽象
17、面向对象的开发方法中,()将就是面向对象技术领域内占主导地位的标准建模语言。
A.Booch方法B.Coad方法C.UML语言D.OMT方法
18、()意味着一个操作在不同的类中可以有不同的实现方式。
A.多态性B.多继承C.类的可复用D.信息隐藏
19、单元测试的测试用例主要根据()的结果来设计。
A.需求分析B.源程序C.概要设计D.详细设计
20、软件测试就是为了()而执行程序的过程。
A、纠正错误B、发现错误
C、避免错误D、证明正确
21.类构件的重用方式有多态重用、继承重用与()
A.实例重用B、重载重用
C、代码重用D、方法重用
22、支持面向对象技术的软件生存周期模型就是()。
A、喷泉模型 B、螺旋模型
C、增量模型 D、瀑布模型
23、在白盒测试技术测试用例的设计中,()就是最弱的覆盖标准。
A.语句覆盖B.路径覆盖
C.条件组合覆盖D.判定覆盖
1.下面哪些测试方法属于白盒测试()。
//BCD就是黑盒测试
A、基本路径测试 B、等价类划分 C、边界值分析
D、错误推测 E、逻辑覆盖测试
2.下列哪些选项就是属于内容耦合()。
A、一个模块直接访问另一个模块的内部数据
B、一个模块有多个入口
C、一个模块不通过正常入口转到另一模块内部
D、一个模块只有一个入口
3.下列属于度量效益方法的就是()。
A、货币的时间价值B、投资回收期
C、收入D、投资回报率
4.数据流图就是用于表示软件模型的一种图示方法,在下列可采用的绘制方法中,哪些就是常采用的()。
A、自顶向下B、自底向上C、分层绘制D、逐步求精
5.软件设计中一般将用到图形工具,下列哪种些可用作设计的图形工具()。
A、结构图
B、实体联系图
C、IPO图
D、层次图
4、简答题:
1.简述增量模型的优点与缺点。
答:
优点:
采用增量模型的优点就是人员分配灵活,刚开始不用投入大量人力资源。
如果核心产品很受欢迎,则可增加人力实现下一个增量。
当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。
这样即可先发布部分功能给客户,对客户起到镇静剂的作用。
此外,增量能够有计划地管理技术风险。
缺点:
1)由于各个构件就是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。
2)在开发过程中,需求的变化就是不可避免的。
增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型与快速原型模型,但也很容易退化为边做边改模型,从而就是软件过程的控制失去整体性。
3)如果增量包之间存在相交的情况且未很好处理,则必须做全盘系统分析,这种模型将功能细化后分别开发的方法较适应于需求经常改变的软件开发过程。
2.简述软件设计的过程。
答:
软件设计就是把许多事物与问题抽象起来,并且抽象它们不同层次与角度,就是将需求转变为软件陈述的过程,就是迭代的过程。
软件设计,要根据需求规格说明 书,对整个设计过程进行计划,然后实施具体的设计过程,即“先整体,再局部”,也就是不断迭代与精化的过程。
然后需要对生成的设计规格说明书进行评审,启动 质量评价的标准,若未通过评审,需重新修改设计,直至评审通过,确定最后定型的过程本身。
进入后续阶段,完成软件设计过程。
3、原型化方法主要用于解决什么问题?
试说明这种方法的主要优缺点。
答:
建立原型的主要原因就是为了解决在产品开发的早期阶段需求不确定的问题,用户、经理与其她非技术项目风险承担者发现在确定与开发产品时,原型可以使她们的想象更具体化。
原型在软件开发过程中可以起到以下主要作用:
(1)明确并完善需求原型作为一种需求工具,它初步实现所理解的系统的一部分。
用户对原型的评价可以指出需求中的许多问题,在您开发真正产品之前,可以最低的费用来解决这些问题。
(2)探索设计选择方案原型作为一种设计工具,用它可以探索不同的用户界面技术,使系统达到最佳的可用性,并且可以评价可能的技术方案。
(3)发展为最终的产品原型作为一种构造工具,就是产品最初子集的完整功能实现,通过一系列小规模的开发循环,您可以完成整个产品的开发。
4、请瞧下列伪代码程序,要求完成下列问题:
(1)画出代码的流程图(4分)
(2)根据该程序流程图画出该程序的流图;(4分)
(3)计算该流图的环形复杂度;(4分)
START
INPUT(A,B,C)
IFA>5
THENX=10
ELSEX=1
ENDIF
IFB>10
THENY=20
ELSEY=2
ENDIF
IFC>15
THENZ=30
ELSEZ=3
ENDIF
PRINT(X,Y,Z)
STOP
答:
法一:
环形复杂度=E-N+2=18-16+2=4
法二:
环形复杂度=P+1=3+1=4
5、简述结构化程序设计方法的基本特点。
答:
(1)尽可能少用goto语句的程序设计方法;
(2)每个代码块都单入单出;
(3)使用控制结构:
顺序、选择与循环;
(4)自顶向下逐步求精。
6、请比较快速原型模型与螺旋模型的优缺点,并说明各自的适用范围。
答:
模型
优点
缺点
适用范围
快速原型模型
易于获取客户真实需求
可能导致系统设计差、效率低,难于维护
适用于对软件需求缺乏准确认识的情况
螺旋模型
风险驱动,降低风险
风险分析人员需要有经验且经过充分训练
内部开发的大型软件项目
7、衡量模块独立性的两个定性标准就是什么?
这两个标准的定义分别就是什么?
在我们的软件设计中,关于模块独立性我们追求的目标就是什么?
答:
衡量模块独立性的两个定性标准就是内聚与耦合(2分)。
耦合就是指对一个软件结构内不同模块彼此之间互相依赖(连接)的紧密程度;而内聚则标志一个模块内部各个元素彼此结合的紧密程度(2分)。
在我们的软件设计中,关于模块独立性我们追求的目标就是紧密内聚松散耦合(1分)。
8、什么就是黑盒测试法?
答:
黑盒测试法把程序瞧成一个黑盒子,完全不考虑程序的内部结构与处理过程(2分)。
它只检查程序功能就是否能按照规格说明书的规定正常使用(1分),程序就是否能适当地接收输入数据(1分),产生正确地输出信息(1分)。
9、面向对象设计中,存在有哪几种耦合与内聚?
答:
弱耦合:
交互耦合,继承耦合
强内聚:
服务内聚,类内聚,一般-特殊内聚
10、某个程序的伪码如下(前面的标号只用于标明语句顺序,不参与程序运行):
START
IFL1THEN
S1
DOWHILEL2
S2
IFL3THEN
S3
ELSE
S4
ENDIF
ENDDO
EISE
S5
ENDIF
STOP
(1)试将其转换成PAD图(5分)
(2)计算程序的环路复杂度(5分)
法一:
环路复杂度=E-N+2=15-13+2=4
法二:
环路复杂度=P+1=3+1=4
11、简述面向对象的4个要点的含义。
答:
面向对象的4个要点就是:
对象分解、数据专有、继承、封装性。
(1分)
1)对象分解:
认为客观世界就是由各种对象组成的。
(1分)
2)数据专有,方法共享:
把所有对象都划分成各种对象类(简称为类,class),每个对象类都定义了一组数据与一组方法。
(1分)
3)继承:
按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。
(1分)
4)封装性:
对象彼此之间仅能通过传递消息互相联系。
(1分)
12、在下面用例图中,有哪些行为者,有哪些用例?
答:
行为者:
Banknetwork,Manager,Clerk
用例:
Authorizepurchase,Logontoredister,Sellgoods,Restockinventory,Openstore
13、航空公司托运行李规定:
乘客可以免费托运重量不超过20公斤的行李。
当行李超过20公斤时,对头等舱的国内乘客超重部分每公斤收费3元,对其它舱的国内乘客超重部分每公斤收费5元,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。
要求用判定树来表示计算行李费的算法。
答:
14、已知有一段代码实现了“输出ABC三个数中的最大值”,要求完成下列问题:
(1)画出代码的流程图(4分)
(2)根据该程序流程图画出该程序的流图;(4分)
(3)计算该流图的环形复杂度;(4分)
答:
(1)流程图
(2)流图
(3)复杂度计算方法
1、等于流图中的区域数
2、或等于(边数-节点数+2)
3、或等于(判定节点数+1)
因此复杂度为4
15、多余答案:
题目应该就是(软件维护的过程)
在软件开发完成交付用户使用后,为了保证软件在一个相当长的时期能够正常运行,就需要对软件进行维护。
软件维护的过程:
(1)确认维护要求。
(1分)
(2)对于改正性维护申请,评价错误的严重性。
对于严重的错误,立即安排人员,分析问题原因,进行"救火"性的紧急维护;对于不严重的错误,根据任务情况与轻重缓急进行统一安排。
(2分)
(3)对于适应性与完善性维护申请,需要确定申请的优先级,然后安排维护工作。
并不就是所有的完善性维护申请都必须承担,需要考虑商业需要、现有资源、未来发展方向等进行决定。
(2分)