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