广东海洋大学《软件工程》历年考题总集.docx
《广东海洋大学《软件工程》历年考题总集.docx》由会员分享,可在线阅读,更多相关《广东海洋大学《软件工程》历年考题总集.docx(18页珍藏版)》请在冰豆网上搜索。
广东海洋大学《软件工程》历年考题总集
广东海洋大学《软件工程》历年考题
总集-答案
一、填空题(每空1分,共20分)
1.软件工程方法学包含3个要素:
__过程__、__方法__和__工具__。
2.瀑布模型的成功在很大程度上是由于它基本上是一种__文档___驱动的模型。
3.面向过程方法学强调__自顶向下___顺序地完成软件开发的各阶段任务;面向对象方法学的出发点和基本原则是尽量模拟人类习惯的__思维方式__,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程。
4.数据流图有四种基本符号:
正方形(或立方体)表示数据的__源点或终点__;圆角矩形(或圆形)代表___数据加工(或数据处理)___;开口矩形(或两条平行横线)代表___数据存储___;箭头表示___数据流___。
5.软件结构的设计是以模块为基础的,以__数据流图___的结果为依据,从实现的角度进一步划分为模块,并组成模块的__层次结构___。
6.信息流有__变换流____和___事务流____两种类型。
7.对象的两个基本要素:
___属性____和__服务____。
8.软件维护包括__改正性____维护、__适应性___维护、__完善性___维护、__预防性___维护四项活动。
1.面向过程方法学强调自顶向下顺序地完成软件开发的各阶段任务;面向对象方法学的出发点和基本原则是模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程。
2.总体设计阶段必须回答的关键问题是系统应该如何实现。
3.数据流图和数据字典共同构成系统的逻辑模型,
4.需求分析过程应该建立数据模型、功能模型、行为模型3种模型。
5.模块的独立程度可以由内聚、藕合两个定性标准度量。
6.进行边界条件测试时,使用刚好等于、刚好小于和刚好大于最大值或最小值的数据结构、控制量和数据值的测试方案,非常可能发现软件中的错误。
7.对象的两个基本要素是:
属性和服务。
8.发现和定义系统中的对象类是在用例模型的基础上,识别实体类、边界类和控制类。
9.面向对象程序设计风格强调提高可重用性、可扩充性、健壮性。
1.需求分析阶段必须回答的关键问题是系统必须做什么。
2.系统流程图是概括地描绘物理系统的传统工具。
3.数据对象彼此之间的联系可分为一对一联系、一对多联系、多对多联系3种类型。
4.软件可靠性指程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率;而软件的可用性指程序在给定的时间点,按照规格说明书的规定,成功地运行的概率。
5.封装使对象形成两个部分:
接口和实现。
6.对象之间的外部联系有泛化、聚合、关联、依赖。
7.甘特图用水平线段表示任务的工作阶段,线段的起点和终点分别对应着任务的开工时间和完成时间,线段的长度表示完成任务所需的时间。
8.Pareto原理:
测试发现的错误中的80%很可能是由程序中20%的模块造成的。
9.发现和定义系统中的对象类是在用例模型的基础上,识别实体类、边界类和控制
类。
1、可行性研究需要从技术可行性、经济可行性、社会可行性、操作可行性四个方面分析研究每种解决方法的可行性。
2、数据流图有四个基本成分:
数据流、数据处理(加工)、数据存储、外部实体(数据源点和终点)。
3、软件结构的设计是以模块为基础的,以需求分析的结果为依据,从实现的角度进一步划分为模块,并组成模块的层次结构。
4、程序流程图又称为程序框图,应由三种基本控制结构顺序组合和完整嵌套而成,不能有相互交叉的情况,这样的流程图是结构化的流程图。
5、“面向对象”是把一组对象中的数据结构和行为紧密地结合在一起组织系统的一种策略,传统的思想是将数据结构和行为松散地连接在一起。
6、到目前为止,软件生产的发展经过了三个阶段即程序设计时代、程序系统时代、软件工程时代。
1、软件生命周期由软件定义、软件开发和运行维护3个时期组成。
2、软件产品在交付使用之前一般要经过以下四步测试单元测试、集成测试、确认测试和系
统测试。
3、典型的可行性研究有下列步骤:
系统定义、分析问题、提出解法、设计方案、推荐可行的方案和编写可行性研究报告。
4、数据字典就是用来定义数据流图中的所有元素。
它和数据流图共同构成了系统的_高层逻辑模型___。
5、软件设计是一个把系统需求转换为实现方案的过程,包括总体设计和详细设计。
6、提高软件可维护性的方法有建立明确的软件质量目标、使用先进的软件开发技术和工具、建立明确的质量保证、选择可维护的语言、改进程序的文档。
二、选择题(每小题2分,共20分)
1、在软件生命周期中,用户主要是在(A)参与软件开发。
A、软件定义期B、软件开发期
C、软件维护期D、整个软件生命周期过程中
2、在软件工程项目中,不随参与人数的增加而使软件的生产率增加的主要问题是(D)。
A、工作阶段间的等待时间B、生产原型的复杂性
C、参与人员所需的工作站数D、参与人员之间的通信困难
3、软件设计一般分为总体设计和详细设计,它们之间的关系是(A)。
A、全局与局部B、抽象与具体C、总体与层次D、功能与结构
4、下列偶合中偶合程度最高的是(D)。
A.数据偶合B.控制偶合C.特征偶合D.内容偶合
5、测试工作量通常占软件开发全部工作量的(C)。
A.20%~30%B.30%~40%C.40%~50%D.50%~60%
6、黑盒测试是从__________观点的测试,白盒测试是从__________观点的测试。
(C)
A、开发人员、管理人员B、用户、管理人员
C、用户、开发人员D、开发人员、用户
7、使用条件路径选择进行白盒测试时,对于嵌套型分支结构,若有n个判定语句,则需要(C)个测试用例。
A.n-1B.nC.n+1D.2n
8、用于软件维护的费用占软件总费用的(C)。
A.35%~50%B.45%~60%C.55%~70%D.65%~80%
9、软件工程对维护工作的主要目标是提高软件的可维护性,降低(D)。
A、维护的效率B、维护的工作量C、文档D、维护的代价
10、软件工程学中除重视软件开发技术的研究外,另一重要组成内容是软件的(A)。
A、工程管理B、成本核算C、人员培训D、工具开发
1.在软件开发的各种资源中,(D)是最重要的资源。
A.开发工具B.方法C.硬件环境D.人员
2.原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于(A)系统。
A.需求不确定的B.需求确定的C.管理信息D.决策支持
3.单元测试的测试用例主要根据(D)的结果来设计。
A.需求分析B.源程序C.概要设计D.详细设计
4.按照Miller法则,一个人在任何时候都只能把注意力集中在(C)个知识块上。
A、3±2B、5±2C、7±2D、9±2
5.Pareto原理指出测试发现的错误中的80%很可能是由程序中(B)的模块造成的。
A.10%B.20%C.30%D.40%
6.一个(C)能用不同的方法表示它的特征。
A、事件B、抽象C、状态D、脚本
7.下列程序流程图的标准符号中,表示数据输入输出的是(A)。
A.B.C.D.
8.右边所示的流图的环形复杂度为(A)。
A.4B.5C.6D.7
注:
环形复杂度=变数-节点数+2
9.在软件维护中,维护工作量比例最大的是(C)。
A.改正性维护B.适应性维护
C.完善性维护D.预防性维护
10.使用条件路径选择进行白盒测试时,对于连锁型分支结构结构,若有n个判定语句,则需要(C)个测试用例。
A.nB.2n-1C.2nD.2n+1
1.软件的复杂性是(A),它引起人员通信困难、开发费用超支、开发时间超时等问题。
A、固有的B、人为的C、可消除的D、不可降低的
2.软件测试是为了(B)而执行程序的过程。
A、纠正错误B、发现错误C、避免错误D、证明正确
3.下列内聚中内聚程度最高的是(D)。
A、逻辑内聚B、过程内聚C、顺序内聚D、功能内聚
4.软件是一种(B)产品。
A、有形B、逻辑C、物质D、消耗
5.进行需求分析可使用多种工具,但(C)是不适用的。
A、数据流图B、判定表C、PAD图D、数据字典
6.不适合作为数据处理的语言是(A)。
A、PrologB、C语言C、4GLD、SQL语言
7.黑盒测试是从(D)观点的测试。
A、管理人员B、管理人员
C、开发人员D、用户
1、软件生命周期模型有多种,下列选项中,(C)不是软件生命周期模型。
A、螺旋模型B、增量模型C、功能模型D、瀑布模型
2、制定软件计划的目的在于尽早对欲开发的软件进行合理估价,软件计划的任务是(B)。
A、组织与管理B、分析与估算C、设计与测试D、规划与调度
3、在数据流图中,有名字及方向的成分是(C)。
A、控制流B、信息流C、数据流D、信号流
4、将几个逻辑上相似的成分放在一个模块中,该模块的内聚程度是(A)的。
A、逻辑性B、瞬时性C、功能性D、通信性
5、在对数据流的分析中,主要是找到变换中心,这是从(C)导出结构图的关键。
A、数据结构B、实体关系C、数据流图D、E-R图
6、下面(C)不是对象具有的特性。
A、标识B、继承C、顺序D、多态性
7、与选择编程语言无关的因素是(A)。
A、软件开发的方法B、软件执行的环境
C、用户需要D、软件开发人员的知识
8、白盒测试是从(A)观点的测试。
A、开发人员B、管理人员
C、用户D、其他
三、判断题(对的画“√”,错的画“×”,每小题1分,共10分)
1、文档是软件产品的一部分,没有文档的软件就不称其为软件。
(√)
2、在需求分析过程中,分析员要从用户那里解决的最重要的问题是给该软件提供哪些信息。
(×)
3、需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性分析的依据。
(×)
4、UML语言支持面向对象的主要概念,并与具体的开发过程相关。
(×)
5、用例图定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。
(√)
6、软件配置管理是一组标识、组织和控制修改源程序的活动。
(×)
7、好的测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。
(√)
8、边界值分析方法是取输入/输出等价类的边界值作为测试用例。
(√)
9、软件错误可能出现在开发过程的早期,越早修改越好。
(√)
10、面向对象的分析是面向计算机系统建立软件系统的对象模型。
(×)
1.建立用例模型的步骤包括确定角色、确定用例和绘制用例图。
(×)
2.只有质量差的软件产品才需要维护。
(×)
3.一个好的测试用例在于能发现至今未发现的错误。
(√)
4.不完善的系统定义往往是导致软件项目失败的主要原因。
(√)
5.瀑布模型是一种文档驱动的模型。
(√)
6.UML是一种方法。
(×)
7.在时间允许的情况下,适当减少人员会提高工作效率,降低软件开发成本。
(√)
8.一个成功的项目唯一提交的就是运行程序。
(×)
9.数据流图建立系统的功能模型,它由数据流、加工和数据存贮组成。
(×)
10.UML是一种直观化、明确化、构建和文档化软件产物的通用语言。
(×)
1、在项目计划发生延迟的情况下,增加更多的程序员一定会加快进度。
(×)
2、软件工作的考虑范围主要是程序设计和实现。
(×)
3、等价类划分方法将所有可能的输入数据划分成若干部分,然后从每一部分中选取少数有代表性的数据作为测试用例。
(√)
4、在软件开发的过程中,若能推迟暴露其中的错误,则为修复和改正错误所花费的代价就会降低。
(×)
5、模型是对现实的简化,建模是为了更好地理解所开发的系统。
(√)
6、好的测试用例应能证明软件是正确的。
(×)
7、白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求。
(√)
四、名词解释(每小题4分,共20分)
1、软件危机:
软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
概括地说,包含两方面的问题:
如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
2、结构程序设计:
如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。
3、类:
具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。
4、软件项目管理:
为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。
1、软件生命周期:
软件产品从考虑其概念开始到该软件产品交付使用,直至最终退役为止的整个过程,一般包括计划、分析、设计、实现、测试、集成、交付、维护等阶段。
2、对象:
系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和对这组属性进行操作的一组服务组成。
3、α测试:
指软件开发公司组织内部人员模拟各类用户行对即将面市软件产品(称为α版本)进行测试,试图发现错误并修正。
4、UML:
UML即统一建模语言,是一种直观化、明确化、构建和文档化软件系统产物的通用可视化建模语言。
5、软件再工程:
对现存的大量软件系统进行挖掘、整理以得到有用的软件构件,或对已有软件构件进行维护以延长其生存期。
1、软件建模:
将所要设计的结构和系统的行为融汇贯通,对系统的体系结构进行可视化和控制,化解复杂性的问题,有效地管理开发风险,从而开发出高品质的软件。
2、软件工程:
①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。
3、β测试:
指软件开发公司组织各方面的典型用户在日常工作中实际使用β版本(经过α测试调整的软件产品),并要求用户报告异常情况、提出批评意见,然后软件开发公司再对β版本进行改错和完善。
4、结构化维护:
采用软件工程的方法进行软件开发,保证每个阶段都有完整且详细的文档。
对这样的软件进行的维护活动叫结构化维护。
五、问答题(每小题6分,共30分)
1.产生软件危机的原因是什么?
答:
“软件作坊”基本上仍然沿用早期形成的个体化软件开发方法,导致在计算机软件的开发和维护过程中遇到一系列严重问题。
如:
软件开发的进度难以控制,经常出现经费超预算等。
2.按照模块化的理论,模块的数目是否越多越好?
为什么?
答:
否,根据模块化和软件成本的关系,随着模块数目的增加,模块成本减小,但接口成本增加,开始时总的成本逐渐减小,模块数超过一定数目之后,总的成本增加。
所以模块数应取最小成本区数目。
3.一个程序计算任何一个在1~1000内整数的平方数,那么其输入项的等价类应如何划分?
答:
4.为什么说面向对象方法对需求变化有较好的适应性?
答:
面向对象的封装机制使开发人员可以把最稳定的部分(即对象)作为构筑系统的基本单位,而把容易发生变化的部分(即属性与操作)封装在对象之内;对象之间通过接口联系,使得需求变化的影响尽可能地限制在对象内部。
5.在下列用例图中,哪些是系统角色?
哪些是系统用例?
答:
角色:
Banknetwork,Manager,Clerk,Customer
用例:
Authorizepurchase,Openstore,Logontoredister,Sellgoods,Restockinventory
1、Jackson图和层次图有何区别?
答:
(1)层次图中的一个方框通常代表一个模块;而Jackson图中的一个方框通常只代表几个语句。
(2)层次图表现的是调用关系;而Jackson图表现的是组成关系,即一个方框中包括的操作仅仅由它下层框中的那些操作组成。
2、面向对象方法是如何支持软件复用的?
答:
(1)对象具有封装性和信息隐蔽等特性,使其容易实现软件复用。
(2)对象类可以派生出新类,类可以产生实例对象,从而实现了对象类数据结构和操作代码的软构件复用。
(3)面向对象程序设计语言的开发环境一般预定义了系统动态连接库,提供了大量公用程序代码,避免重复编写,提高了开发效率和质量。
3、系统的静态结构和动态行为分别由UML中哪些图进行描述?
答:
静态结构由类图和对象图描述,动态行为由状态图、时序图、协作图和活动图描述。
4、将下列各对事物之间的关系(继承、聚集或关联)写在括弧内。
(5分)
(1)读者——借出的书(关联)
(2)班级——学生(聚集)
(3)教师——教授(继承)
(4)丈夫——妻子(关联)
(5)列车——餐车(聚集)
5、指出下列时序图中各符号的含义。
答:
(1)发起交互的对象
(2)回调消息(3)生命线
(4)控制焦点(5)消息(6)接收消息的对象
1、简述变换流的设计步骤。
答:
确定数据流图中的变换中心、逻辑输入和逻辑输出;设计软件结构的顶层和第一层;设计中、下层模块;设计优化。
2、下面是一段求最大值的程序,其中datalist是数据表,n是datalist的长度。
intGetMax(intn,intdatalist[])
{
intk=0;
for(intj=1;jif(datalist[j]>datalist[k])k=j;
returnk;
}
(1)画出该程序的控制流图,并计算其McCabe环路复杂性。
(2)用基本路径覆盖法给出测试路径。
(3)为各测试路径设计测试用例。
答:
(1)控制流图如右图所示,McCabe环路复杂性为3。
(2)测试路径:
Path1:
①→③
Path2:
①→②→④→⑥→…
Path3:
①→②→⑤→⑥→…
(3)测试用例:
Path1:
取n=1,datalist[0]=1,
预期结果:
k=0
Path2:
取n=2,datalist[0]=0,datalist[1]=1,
预期结果:
k=1
Path3:
取n=2,datalist[0]=1,datalist[1]=0,
预期结果:
k=0
3、UML关系包括关联、聚合、泛化、实现、依赖等5种类型,请将合适的关系填写在下列描述的()中。
①用例及其协作之间是(关联)关系。
②在学校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么学生和课程之间是(依赖)关系。
③类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B之间是(聚合)关系。
④在MFC类库中,Window类和DialogBox类之间是(泛化)关系。
⑤森林和树木之间是(实现)关系。
4、对整个系统而言,其功能、静态结构、动态行为和物理架构分别由UML中什么图来描述?
答:
对整个系统而言,其功能由用例图描述,静态结构由类图和对象图描述,动态行为由状态图、时序图、协作图和活动图描述,而物理架构则是由组件图和分布图描述。
1、简述事物流的设计步骤。
答:
由事务流映射成的软件结构包括一个接收分支和一个发送分支。
接收分支:
从事务中心的边界开始,把沿着接收流通路的处理映射成模块。
发送分支:
包含一个调度模块,它控制下层的所有活动模块;然后把数据流图中的每个活动流通路映射成与它的流特征相对应的结构。
2、对整个系统而言,其功能、静态结构、动态行为和物理架构分别由UML中什么图来描述?
答:
功能由用例图描述,静态结构由类图和对象图描述,动态行为由状态图、时序图、协作图和活动图描述,而物理架构则是由组件图和分布图描述。
3、将下列各对事物之间的关系(继承、聚集或关联)写在括弧内。
(5分)
(1)小汽车——富康牌小汽车(继承)
(2)人员——雇员(继承)
(3)图书馆——期刊阅览室(聚集)
(4)书——图书馆馆员(关联)
(5)小汽车——司机(聚集)
六、案例分析题(共10分)
1、银行计算机储蓄系统
工作过程大致如下:
储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、利率及密码(可选)等信息,并打印出存款单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并打印出利息清单给储户。
要求:
用数据流图描绘本系统的功能。
答:
2、学生课程注册系统
某大学准备开发一个学生课程注册系统,学生可以使用该系统查询新学期将开设的课程和讲课教师情况,选择自己要学习的课程进行登记注册,并可以查询成绩单;教师可以使用该系统查询新学期将开设的课程和选课学生情况,并可以登记成绩单;注册管理员使用该系统进行注册管理,包括维护教师信息、学生信息和课程信息等。
试用用例图描述该系统与外部用户的交互情况。
答:
3、牙科诊所管理系统
王大夫在小镇上开了一家牙科诊所。
他有一个牙科助手、一个牙科保健员和一个接待员。
王大夫需要一个软件系统来管理预约。
当病人打电话预约时,接待员将查阅预约登记表,如果病人申请的就诊时间与已定下的预约时间冲突,则接待员建议一个就诊时间以安排病人尽早得到诊治。
如果病人同意建议的就诊时间,接待员将输入约定时间和病人的名字。
系统将核实病人的名字并提供记录的病人数据,数据包括病人的病历号等。
在每次治疗或清洗后,助手或保健员将标记相应的预约诊治已经完成,如果必要的话会安排病人下一次再来。
系统能够按病人姓名和按日期进行查询,能够显示记录的病人数据和预约信息。
接待员可以取消预约,可以打印出前两天预约尚未接诊的病人清单。
系统可以从病人记录中获知病人的电话号码。
接待员还可以打印出关系所有病人的每天和每周工作安排。
要求:
建立牙科诊所管理系统的用例模型。
答: