中南大学考试试卷
2006--2006 学年学期 时间110分钟
软件工程课程 48学时 3学分 考试形式: 闭卷 专业年级: 总分100分,占总评成绩 100% 注:此页不作答题纸,请将答案写在答题纸上
填空题(本题20分,每小题2分)
1. 瀑布模型是以文档为驱动、适合于(需求分析确定的)软件项目的开发。 2. 需求分析的基本任务是(确定用户需要软件干什么 )。
3. 若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是( 边界值分析法 )。 4. 根据程序流程图划分的模块通常是( 过程 )内聚的模块。
5. 软件的分类,按其功能可分为:系统软件、( 支撑软件)和应用软件。 6. UML的定义包括UML语义和(UML表示法 )两个部分。
7. 客观世界中的若干类,通常有两种主要的结构关系:即分类结构和(整体和部分结构 )。
8. IDEF1X图用来描述系统的(功能 )模型,主要有实体、联系和(属性 )三种成分,其中实体可分为独立实体和(从属实体 ),且一个实体只能在图中出现一次。 二、简答题(本题30分,每小题5分)
1. 什么是软件工程?软件工程和计算机科学有何区别? 2. 面向对象方法和结构化方法有何区别与联系?
3. 什么是模块的作用域和模块的控制域?为何要求模块的控制域必须在作用域内? 4. 什么是设计模式?试举例说明组合设计模式的应用。 5.什么是依赖倒置原则?它和开闭原则有何联系?
6. 软件生存期过程和软件生存期模型有何联系?瀑布模型有何特点? 三、绘图题(本题34分)
1. 某单位拟开发一个计算机房产管理系统,要求系统具有分房、调房、退房和查询统计等功能。房产科将用户申请表输入系统后,系统首先检查申请表的合法性,对不合法的申请表,系统拒绝接收;对合法的申请表根据类型分别进行处理。
(1) 如果是分房申请,则根据申请者的情况(年龄、工龄、职称、职务、家庭人口等)计算其分数,当分数高于阀值分数时,按分数高低将申请单插到分房队列的适当位置。在进行分房时,从空房文件中读出空房信息,如房号、面积、等级、单位面积房租等,把好房优先分给排在分房队列前面的符合该等级房条件的申请者;从空房文件中删掉这个房号的信息,并从分房队列中删掉该申请单,再把此房号的信息和住户信息一起写到住房文件中,输出住房分配单给住户,同时计算房租,并将算出的房租写到房租文件中。
(2) 如果是退房申请,则从住房文件和房租文件中删除有关信息,再把此房号的信息写到空房文件中。
(3) 如果是调房申请,则根据申请者的情况确定其住房等级,然后在空房文件中查找属于该等级的空房,退掉原住房,再进行与分房类似的处理。
(4) 住户可以向系统查询目前分房的阀值分数,居住某类房屋的条件,某房号的单位面积及房租等信息。房产科可以要求系统打印住房情况的统计表,或更改某类房屋的居住条件、单位面积和房租等。 请用数据流图描绘该系统的功能需求。(12分)
2. 某学校图书管理系统通过计算机对图书进行管理,借阅者可以通过该系统进行查询书籍、预订借阅书籍、查询本人帐号信息;图书管理员可以通过该系统处理借阅者借书、还书、删除预订信息、查询书籍信息、查询借阅者信息;系统管理员可以通过该系统添加书籍条目、删除书籍条目、添加借阅者信息、删除或更新借阅者信息、添加书籍、删除或更新书籍、查询书籍信息、查询借阅者信息。 (1)画出系统的类图。(10分)
(2)画出借阅者、图书管理员对应的用例图。(6分) (3)画出书籍的状态图。(6分) 四、测试题(本题16分,每小题8分)
某程序的程序流程图如下图所示,试据此回答下述问题: 1. 计算程序的环形复杂度;
2.
设计测试用例,满足基本路径覆盖。
参考答案:
一.1. 软件需求确定的 2. 确定用户需要软件做什么 3. 边界值分析法 4. 过程 5. 支撑软件 6. UML表示法
7. 整体与部分结构 8.
四.(1)环路复杂性=判断数+1=6+1=7(个) (2)路径1:(0)—①—(13)—(19) 路径2:(0)—②—③—(14)—(19) 路径3:(0)—②—④—⑤—(15)—(19) 路径4:(0)—②—④—⑥—⑦—(16)—(19)
路径5:(0)—②—④—⑥—⑧—⑨—(17)—(19) 路径6:(0)—②—④—⑥—⑧—⑩—(18)—(19) 路径7:(0)—②—④—⑥—⑧—⑩—(12)—(19) 测试用例:略
专业年级: 总分100分,占总评成绩
100% 注:此页不作答题纸,请将答案写在答题纸上
一、填空题(本题30分,每小题1.5分)
1、软件是计算机程序、(数据 )及(文档 )的完整集合,将其统称为软件配置,这些项称为软件配置项。通过正式复审的软件配置项称为(基线 ),只有通过正式的变化控制过程才能改变它。 2、通常,将软件生命周期全过程中使用的一整套技术方法的集合称为方法学,包含三个要素,即方法、(工具 )和(过程 )。传统方法学采用(结构化 )技术来自顶向下顺序地完成软件开发的各项任务,而面向对象方法是一种以(数据 )为主线,把数据和对数据的操作紧密地结合起来的方法,其开发过程是一个多次迭代的演化过程。
3、软件测试的目标是(暴露程序中的错误 ),因而从心理学角度来看,由程序作者对自己编写的程序进行测试是不恰当的。设计测试方案是测试阶段的关键技术问题,测试方案一般包括(测试目的 )、输入的测试数据和(预期的结果 )。
4、模型是为了理解事物而对事物作出的一种抽象,由(一组图形符号 )和(组织这些图形的规则 )组成。对象模型描述了系统的静态结构,通常使用UML提供的(类 )图来描述。
5、需求分析的基本任务是(准确地回答系统必须做什么 ),在需求分析结束前,系统分析员应该写出(软件需求规格说明书 ),以书面的形式准确描述软件需求。
6、面向数据流的设计方法把(信息流 )映射成软件结构,依据其类型的不同,有两种不同的映射方法,分别是(变换分析 )和(事务分析 )方法。
7、软件设计一般分为(概要设计 )和(详细设计 )两个阶段。 二、简答题(本题18分,每小题6分)
1、瀑布模型是软件工程中应用最广泛的过程模型,试述采用瀑布模型进行软件开发的基本过程,该过程有何特点?
瀑布模型规定了各项软件工程活动,包括需求分析、规格说明、设计、编码、测试和维护,并规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级而下。瀑布模型的特点是:阶段间具有顺序性和依赖性;清楚区分逻辑设计和物理设计,尽可能推迟程序的物理实现;每个阶段都必须完成规定的文档,且每阶段结束前需要对完成的文档进行评审。
2、什么是软件配置管理?软件配置管理和软件维护有何不同? 3、试举例说明聚集关系中共享聚集和组合聚集有何不同。 三、分析题(本题20分)
某住宅安全系统使用传感器(如红外探头等)来检测各种意外情况,如非法进入、火警等,其顶层DFD图如图3-1所示。房主可以在安装该系统时配置安全监控设备,如传感器、报警器等,也可在系统运行时修改配置,通过录像机和电视机监控与系统连接的所有传感器,并通过控制面板上的键盘与系统进行信息交互。在安装过程中,系统给每个传感器赋予一个编号和类型,并设置房主密码以启动和关闭系统,设置传感器事件发生时应该自动拨出的电话号码。当系统检测到一个传感器事件时,就激活报警,拨出预置的电话号码,并报告位置等有关信息。请回答以下问题:
(1)图3-1中A,B,C分别是什么?(6分)
(2)第0层DFD图如图3-2所示,则图中W,X,Y,Z分别是什么?(8分) (3)请说明如何采用DFD图计算功能点数。(6分)
图3-1 住宅安全系统顶层DFD图
图
3-2
住宅安全系统第0层DFD图
四、设计题(本题15分)
某汽车租赁公司打算采用计算机系统来管理汽车租赁业务,其设计方案采用UML类图描述如图4-1所示。图4-1中的类有:Renter(租赁者)、Person(人)、Company(租赁公司)和Automobile(汽车)。租赁公司既可将汽车租给个人,也可将汽车租给其他租赁公司。在设计时暂不考虑未租出去的汽车。请回答以下问题: (1)试说明图4-1设计方案存在的问题。(7分)
(2)针对图4-1设计方案中存在的问题,给出改进的设计方案,并用UML类图描述。(8分)
图4-1 汽车租赁业务管理系统设计方案 五、测试题(本题17分)
某学校成绩管理系统中学生成绩评定模块对应的成绩评定规则:若期未考试成绩大于等于85分,平时成绩为优的,成绩定为优,而平时成绩为差的,成绩定为良;若期未考试成绩大于等于75分,平时成绩为优的,成绩定为良,而平时成绩为差的,成绩定为及格;若期未考试成绩大于等于60分, 平时成绩为优的,成绩定为及格,而平时成绩为差的,成绩定为不及格;若期未考试成绩小于60分,成绩定为不及格。请回答以下问题 (1)请绘制成绩评定对应的程序流程图。(4分)
(2)计算成绩评定模块的MaCabe环形复杂度。(6分)
(3)试依据(1)和(2)设计测试用例满足基本路径覆盖。(7分)
试卷二(参考答案)
持续到软件被淘汰后才终止;软件维护是一组软件工程活动,发生于软件交付给用户并投入运行之后。
3、如果在聚集关系中部分对象可同时参与多个整体对象的构成,则该聚集称为共享聚集。例如,一个课题组包含许多成员,每个成员又可以是另一个课题组的成员,则课题组和成员之间是一种共享聚集的关系。
如果部分对象完全隶属于整体对象,并与整体对象共存,则该聚集称为组合聚集。例如,在屏幕上一个窗口由文本框、列表框、按钮和菜单等构成,且一旦关闭了窗口,则各组成部分也消失,则窗口和它的组成部分之间的关系为组合聚集关系。
三、(1)、A:控制面板 B、报警器 C、传感器
(2)、W: 用户配置请求 X: 用户密码 Y: 传感器状态 Z: 告警信息
(3)、利用DFD图计算功能点数的步骤如下:首先通过DFD图获取输入项数、输出项数、查询数、主文件数和外部接口数,然后计算未调整的功能点数,再计算技术复杂因子,最后计算功能点数。
四、(1)图4-1设计方案存在的问题如下:1)未能完全反映租赁关系的内容,如租赁日期等;2)公司、被租赁汽车和租赁者三者之间的关系未能描述。 (2)改进后的类图如下图所示。
或
图中,Tenancy表示一次租赁对应的事项。
五、(1)程序流程图如下:
(2)MaCabe环形复杂度为7。
因此软件项目计划一般在 阶段完成后才定稿的。
4. 在面向对象类层次结构中,子类只继承一个父类的数据结构和方法,则称为 。如果子类继承了多个父类的数据结构和方法,则称为 。
5. 在软件测试过程中,α测试是由 一个用户在 环境下进行的测试,而β测试是由多个用户在 环境下进行的测试。
6.统一建模语言UML提供了两种描述整体/部分关系的方法,分别是 和 。 7.瀑布模型是以 驱动的软件生存周期模型,适合需求明确的软件系统开发。 8.IDEF1X方法用来建立系统的 模型。
9. 在单元测试期间,应该为被测模块编写相应的测试软件,一般地 模块接收测试数据,并把数据传给被测模块,而 模块则模拟实际模块完成少量数据处理。
10. 评估软件企业的质量管理有两种方法,一种是按照 认证,另外一种是按照CMM认证。
简答题(本题20分,每小题5分) 1. 非渐增式测试与渐增式测试有何区别?
2. 试举例说明什么是功能性需求,什么是非功能性需求?为何非功能性需求往往比功能性需求还要重要? 3. 层次图和层次方框图有何区别? 4. 快速原型模型有几种?各有何特点?
分析题(本题20分)
南方某高校计划开发一个“在线考试管理系统”,该系统的用户可分为教师,学生和系统管理员三类。对教师来说,其任务包括一下几个方面:(1)教师可以对某份试卷提出一定的要求生成试卷规则,从而在学生考试时,由系统根据试卷规则自动组卷生成满足教师要求的试卷,不用手工组卷。同时,教师还可以对库中已有的试卷进行插入、删除和修改等。(2)教师可以根据教学需求对题库中的试题进行操作:添加新考题、删除原有考题、修改原有考题。(3)教师可以查看考生的考试成绩,并针对不同的课程进行成绩统计,包括考试人数、最高分、最低分、平均分以及各分数段得分人数等。对系统管理员来说,主要管理基本资料(包括教师、学生资料的增、删、改)和维护学生考试信息。对学生来说,有两项任务:(1)学生可以任选时间进行在线测试,测试结束后,系统会根据已有的标准答案进行在线判卷,考生可立刻知道个人的测试成绩。(2)学生一般一人只能进行一次考试,在特殊情况下,可以由监考人员通知系统管理员删除以往考试信息情况下,可再次进行考试。 试据此完成:(1)画出系统的用例图。(8分)
(2)请用数据流图描绘该系统的功能需求。(12分)
设计题(本题20分)
试采用设计模式描述算术表达式(不含圆括号)的设计方案。算术表达式是由加、减、乘、除和操作数构成的表达式,操作数假定为实数。
测试题(本题10分) Begin a b
Do Until x6 If xl then f
If x4 then Do Until x5 i
End Until Else g h
End if Else
Select Case x2 Case 1: Do While x3 c
End While Case 2: d
Case 3: