2006学年第二学期期终考试《软件工程》课程 试卷A
班级: 姓名: 学号: 成绩:
一、单项选择题(每小题2分,共24 分) 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、单元测试
第 1 页 (共5页) (软件工程A卷)
9、结构化分析方法(SA 法)使用的主要描述工具有( )。 A、数据库 B、模块结构图 C、PAD 图 D、分层的DFD 图 10、UML 中,包图是一种( )。 A、集合 B、数据结构 C、分组机制 D、对系统的动态描述 11、软件维护阶段所产生的文档主要有( )。 A、软件问题报告和软件修改报告 B、测试报告 C、软件修改申请报告 D、以上均是 12、从工程管理的角度来看,软件设计分两步完成( )。 A、①系统分析②模块设计 B、①详细设计②总体设 计 C、①总体设计②详细设计 D、①模块设计②详细设计 二、简答题(共40分)
1、可行性分析的任务是什么?(5分) 2、软件生命期各阶段的任务是什么?(7分)
3、什么是软件复用?分析说明为什么面向对象的开发方法为软件复用技术提供了良好的环境?(10 分)
4、简述结构化方法的组成,并说明各组成部分的基本任务、功能及描述方式。(10 分) 5、 图中,模块G 为判定,判定涉及到模块B,F,G,请指出设计中的错误,再根据改进模块图的基本原则,画出1-2 个改进方案,并说明是按照哪条基本原则进行改进的。(8分)
三、以下图(一个在学校首次报名的 UML 活动图)为例,说明如何绘制活动图。(10 分)
第 2 页 (共5页) (软件工程A卷)
假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。要求:画出系统的数据流程图。(11分)
现在有一个医院病房监护系统,请根据用户需求建立系统的Use Case模型。用户提出的系统功能要求如下:
在医院病房监护系统中,病症监视器安置在每个病房,将病人的病症信号实时传送到中央监视系统进行分析处理。在中心值班室里,值班护士使用中央监视系统对病员的情况进行监控,根据医生的要求随时打印病人的病情报告,系统会定期自动更新病历。
当病症出现异常时,系统会立即自动报警,通知值班医生及时处理,同时立即打印病人的病情报告,立即更新病历。(15分)
第 3 页 (共5页) (软件工程A卷)
2006学年第二学期期终考试《软件工程》课程 试卷A
参考答案
一、单项选择题(每小题2分,共24 分)
1 B 2 C 3 A 4 B 5 D 6 B 7 B 8 D 9 D 10 C 11 A 12 C 二、简答题(共40分)
1、可行性分析的任务是什么?(5分)
答:可行性分析的任务是对以下三方面的可行性进行研究。
① 技术上可行性:研究现有技术、资源及限制能否支持和实现系统的功能、性能,主要是技术风险问题。
② 经济上的可行性:进行成本估算及效益评估,确定项目是否值得开发。
③ 社会上的可行性:主要指系统开发后能否运行,是否存在合同、责任、侵权、用户组织管理等方面的问题。
2、软件生命期各阶段的任务是什么?(7分)
答:软件生命期分为7个阶段:
(1)问题定义:要解决的问题是什么
(2)可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性 (3)需求分析:系统必须做什么
(4)总体设计:系统如何实现,包括系统设计和结构设计 (5)详细设计:具体实现设计的系统 (6)实现:编码和测试
(7)运行维护:保证软件正常运行。
3、什么是软件复用?分析说明为什么面向对象的开发方法为软件复用技术提供了良好的环境?(10 分) 答:软件复用是将已有的软件成分用于构造新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。
复用的软件成分—称为可复用构件(Reusable Component),可以从旧软件中提取,也可以专门为复用而开发。
面向对象方法之所以特别有利于软件复用,是由于它的主要概念及原则与软件复用的要求十分吻合。支持复用的OO 概念与原则是:对象与类、抽象、封装、继承与一般——特殊结构、整合与整体——部分结构、粒度控制、多态性。
对象与类:OO 方法用对象描述问题域中的事务,并用类作为同种对象的抽象表示。类是系统的基本构成单位,它符合可复用构件所应具备的那些特性:完整性、独立性、可标识性、一般性、抽象、封装:尤其是OO 方法的对象封装性,为软件复用技术提供了良好的条件。而继承机制本质上就是一种复用机制,因此面向对象方法为软件复用提供了一个良好的环境。
4、简述结构化方法的组成,并说明各组成部分的基本任务、功能及描述方式。(10 分) 答:结构化分析(SA)阶段的任务是:在可行性分析的基础上,进一步了解确定用户需求,准确地回答“系统必须做什么?”的问题,获得需求规格说明书。描述方法为DFD 图、数据词典及加工小说明。
第 4 页 (共5页) (软件工程A卷)
结构化设计(SD)阶段的任务是:将分析阶段获得的需求说明转换为计算机中可实现的系统,完成系统的结构设计,包括数据结构和程序结构,最后得到软件设计说明书。描述方式:模块图、流程图及PAD 图等。
结构化程序设计(SP)阶段的任务是:根据软件设计,选择程序设计语言,编码实现具有良好风格的软件系统。
. 5、 图中,模块G 为判定,判定涉及到模块B,F,G,请指出设计中的错误,再根据改进模块图的基本原则,画出1-2 个改进方案,并说明是按照哪条基本原则进行改进的。(8分)
图B
答:图B是按照“当作用范围为控制范围的子集时,才能获得较低的块间联系”的原则进行改进的。
三、以下图(一个在学校首次报名的 UML 活动图)为例,说明如何绘制活动图。(10 分)
答:要创建一个UML活动图,需要反复执行下列步骤。 (1) 定义活动图的范围。首先应该确定建模的范围,是对整个系统建模?还是一个子系统?一旦定义了作图的范围,应该在其顶部,用一个注释,指明该图的标题和惟一的标识符,还可 标注该图的时间及作者姓名。本题的建模范围是一个学校管理系统中的“报名”部分。 (2) 添加活动。活动是活动图的核心,活动是完成系统任务所必须执行的处理步骤。可从用例模型出发,对每个角色(actor)所驱动的主要用例引入一个活动,如果是对整个系统建模,应对每个主要流程引入一个活动。在“报名”的活动图中确定了“Fill out
enrollment ”(填写报名表)、“Enroll in university”(登记入学)、“Obtain help to fill out fo rms”(帮助填写报名表)、“Attend university overview presentation”(参加介绍学校 会议)等6个活动。
(3) 添加起点和结束点。每个活动图只能有一个起始点和多个结束点,结束点可以是所有活 动的结束,也可以是对执行过程的终止。
(4) 添加活动间的转变。当一个活动结束时将进入下一个活动,称为活动转移。可标明活
第 5 页 (共5页) (软件工程A卷)