《软件工程》期末试卷(一)(满分100分)考试时间:120分钟(可根据具体情况适当调整)1.单项选择题(每题2分,共20分)(1)以下哪一项不属于软件工程三要素()。
A.过程B. 方法C. 工具D. 计划(2)以下哪一项不属于软件管理过程()。
A. ISO9000B. CMMC. IEEED. 软件企业文化(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. 包含关系、扩展关系2.填空题(每题2分,共20分)(1)需求分析员参与客户需求调研,撰写________________。
(2)_______________是软件策划的核心、重点与难点。
(3)软件由程序、数据和______________组成。
(4)______________是软件设计的基础,______________是软件开发的核心。
(5)需求分析分为两个阶段,_______________阶段和需求规约阶段。
(6)对象图的组成元素包括对象和______________。
(7)包的作用为__________内聚,___________耦合。
(8)活动图中必须有且仅有一个______________标记。
(9)对于一个组件而言,它有提供接口和________________两类接口。
(10)动态测试的两种方法为黑盒测试和____________测试。
3.简答题(每题5分,共20分)(1)请简述什么是可行性研究。
(2)对象模型的多态性指的是什么。
(3)软件测试和软件调试的区别是什么(至少两点)。
(4)螺旋模型有什么优点(至少两点)。
4.画出求两个数m和n的最大公约数的N-S图(提示:辗转相除法)(10分)5.某图书馆借书流程为:(1)读者提交索书单,系统查看读者记录进行读者鉴别,并存储借阅记录文件。
(2)系统查询图书文件,进行存书查询,若图书未借出,向书库发送出库单并修改借阅记录文件和图书文件;如果图书已借出,向读者发有人借阅通知。
请画出该借书过程的顶层数据流图(15分)6.公司之间商谈事宜的参与对象可以分为客户、业务员和公司行政部,对于如下一个协商场景,请用活动图描述其过程(15分)a)公司业务员打电话给客户,确定一个约定b)如果约定的地点是在公司内部,那么行政部的同事需要为会面安排一间会议室c)如果约定的地点时在公司外部,那么业务员需要用笔记本准备一份陈述报告d)业务员与客户在约定的时间和地点见面e)业务员准备好会议用纸f)如果会议产生一个陈述,业务员需要记录下来备案。
参考答案1.单项选择题(1)D (2) C (3) D (4)A (5)B(6) A (7)C (8)A (9)B (10)D2.填空题(1)需求文档(2) 软件估计 (3)文档 (4) 软件需求软件设计(5)需求获取(6)链(7)高低 (8)开始 (9)需求接口(10)白盒3.简答题(1)可行性研究就是指在项目进行开发之前,对该项目是否能在特定的资源、时间等制约条件下完成做出评估,并且确定它是否值得去开发。
可行性研究的目的不在于如何去解决问题,而在于确定问题是否值得去解决,是否能够解决。
(2)是指在一般类中定义的属性或操作被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。
(3)软件测试从一个侧面证明程序员的“失败”,而调试是为了找到程序员“失败”的准确位置;测试是以已知条件开始,使用预先定义的测试用例,且有预知的正确结果,不可预见的,仅是程序是否通过测试,而调试一般是以不可知的内部条件开始,结果是不可预见的;测试是有计划的,要进行测试用例设计,而调试是无计划的,不受时间约束;测试是发现错误,相关人员修改后,验证错误是否被修复的过程,而调试是一个推理判断过程;测试的执行是有规程的,而调试的执行往往靠灵感的产生。
(4)与瀑布模型相比,螺旋模型支持用户需求的动态变化,为用户参与软件开发的所有关键决策提供了方便,从而降低了软件开发风险。
螺旋模型对可选方案和约束条件的强调,有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标。
减少了过多测试(浪费资金)或测试不足(产品故障多)所带来的风险。
螺旋模型中维护只是模型的另一个周期,和开发之间并没有本质区别。
图表 1 求最大公约数的N-S图5.图表 2 图书借阅数据流图图表 3 协商流程活动图《软件工程》期末试卷(二)考试时间:120分钟(可根据具体情况适当调整)1.判断题(每题2分,共20分,正确打√,错误打×)(1)单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是系统功能。
( )(2)C语言是一种面向过程的计算机编程语言,有高级语言的特点,但不具有汇编语言的特征。
()(3)黑盒测试只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息,而不考虑模块的内部执行与程序结构。
()(4)数据流图明了业务用例实现的工作流程。
()(5)增量模型把瀑布模型的顺序特征与快速原型法的迭代特征相结合。
()(6)软件工程是:将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;以及在上述所述方法的研究。
()(7)一般来说,类应该具有操作,属性以及类名。
()(8)集成测试的测试对象包括单元间的接口。
()(9)在UML中,包图是一种数据结构,其中可包含附属包、图表或单个元素。
()(10)软件的开发工作中,为了保证工作的进度,开发工作与测试工作应交给同一部分人完成。
()2.单项选择题(每题2分,共20分)(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 PADB SAC SCD DFD3.简答题(每题5分,共20分)(1)请简述软件从不同角度的分类。
(2)软件工程的目标是什么。
(3)软件维护有哪些内容。
(4)什么是软件生存周期,它有哪几个活动。
4.请根据附图1设计相关的类图(共10分)附图1 用例图5. 宾馆客房业务管理提供客房预订、预订变更、客房入住、退房结帐、旅客信息查询几个方面的功能。
订房人可以通过电话、短信、网络或面对面等方式预订客房。
允许预订人根据自己情况的变化更改预订信息。
旅客入住客房前需要出示证件并登记,并要预交一定的押金。
旅客提交押金后,柜台工作人员将在电脑上登记旅客信息,分配房间,并打印旅客入住单,旅客持入住单到指定客房入住。
旅客离开宾馆前需要退房结账。
旅客或宾馆管理人员可以随时查询旅客或客房的入住信息。
建立该问题的用例图。
(共15分)6.设有一个档案管理系统,要求用户输入以年月表示的日期。
假设日期限定在1990年1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。
现用等价类划分法设计测试用例,来测试程序的"日期检查功能"。
(共15分)参考答案1. 判断题(1)√(2)×(3)√(4)×(5)√(6)√(7)√(8)√(9)×(10)×2. 单项选择题(1)A (2)B (3)A (4)B (5)A(6)B (7)D (8)B (9)B (10)A3. 简答题(1)①按照功能不同可分为系统软件、支撑软件、应用软件②按照软件服务对象不同可分为通用软件、定制软件③按照软件产品规模不同可分为小型软件、中型软件、大型软件④按照工作方式可分为实时软件、分时软件、交互式软件、批处理软件(2)①达到要求的软件功能②取得较好的软件性能③开发出高质量的软件④付出较低的开发成本⑤需要较低的维护费用⑥能按时完成开发工作,及时交付使用(3)①校正性维护。
在软件交付使用后,一些隐含的错误在某些特定的使用环境下会暴露出来。
为了识别和校正错误,修改软件性能上的缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护。
②适应性维护。
为了使应用软件适应计算机硬件、软件环境及数据环境的不断发生的变化而修改软件的过程称为适应性维护。
③完善性维护。
为增加软件功能、增强软件性能、提高软件运行效率而进行的维护活动称为完善性维护。
④预防性维护。
为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护。
(4)软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。
包括:可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护。
根据附图1(用例图)设计的类图如附图2所示:4.5.该问题的用例图如附图3所示:Array附图36. 画出该问题的等价类表,并为每个等价类进行编号,如附表1所示表1根据等价类表,设计的该问题测试用例如附表2所示表2《软件工程》期末试卷(三)一、选择题(20)1、软件是计算机组成系统的重要一员,它的组成部分是( D )A、程序、数据B、程序C、程序、文档D、程序、数据、文档2、下面哪一项属于“软件危机”出现的主要原因( B )A、开发方法落后B、软件日益庞大C、开发人员技术水平落后D、软件维护不当3、瀑布模型把软件生存周期划分为软件计划、软件开发与( C )三个阶段,而每一阶段都可以划分为更小的阶段。