北京邮电大学2009 ——2010 学年第二学期
班级: 学号: 班内序号: 姓名: 《软件工程》期末考试试题A卷 考试注一、学生参加考试须带学生证或学院证明,未带者不准进入考场。学生必须按照监考教师指定座位就坐。 二、书本、参考资料、书包等与考试无关的东西一律放到考场指定位置。 三、学生不得另行携带、使用稿纸,要遵守《北京邮电大学考意场规则》,有考场违纪或作弊行为者,按相应规定严肃处理。 事四、学生必须将答题内容做在试卷上。 项 考试课程 题号 满分 得分 阅卷教师 软件工程 一 10 二 10 三 15 考试时间 四 40 五 25 2010年 9 月4日 六 七 八 总分
一、判断题(共10题,每题1分,共10分)
1. 软件是就是程序,程序就是软件。( × )
2. 螺旋模型最大的特点是加入了对软件成本的控制。( × ) 3. 结构化需求分析需要对系统的数据、功能和行为进行建模。( √ ) 4. 软件模块划分得越小,总的软件开发成本就越小。( × ) 5. 面向对象分析(OOA)和面向对象设计(OOD)分别采用不同的概念
和表示法。( × ) 6. 软件测试目的在于发现错误。( √ )
7. 白盒测试不能应用穷举法,黑盒测试可以应用。( × ) 8. 在项目面临进度延期的情况下,总是可以通过增加人力在后期跟上进度。( × )
9. 领域模型就是用来描述业务领域重要概念及其相互关系的模型,一般用UML的类图来表达。( √ )
10. 面向对象设计中最关键的活动是找到对象并给对象分配职责(√)
1
二、单项选择题(共10题,每题1分,共10分)
1、下面关于软件生命周期模型的描述正确的是( C ) A.软件生命周期是指从软件需求分析到上线运行的全过程 B.原型方法只能用于软件的需求分析阶段
C.按照瀑布模型开发系统时,必须完成需求分析才能开始系统设计 D. 增量模型又叫做迭代模型
2、 下面哪一个不是数据词典的构成之一( C )。 A. 数据流词条描述 B. 数据文件词条描述 C. 数据流层次词条描述 D. 加工逻辑词条描述 3、为了提高模块的独立性,模块最好是( B ) A. 逻辑内聚 B. 功能内聚 C. 过程内聚 D. 信息内聚 4、OOA所要完成的工作不包括( D ) A.建立用例模型 B.建立领域模型
C.建立操作契约 D.定义完善的类的属性和操作 5、面向对象的开发方法中,( C )将是面向对象技术领域内占主导地位的标准建模语言。 A. Booch方法 C. UML语言
B. Coad方法
D. OMT方法 B. 选择、循环、重复 D. 顺序、选择、重复
6、结构化程序设计采用的三种基本控制结构是( D ) A. 顺序、分支、选择 C. 输入、变换、输出 A. 类图 C. 构件图
7、下面哪一个不属于UML中的图( D )。
B. 状态图
D. 数据流图
8、模块的作用范围应在控制范围之内,下面哪一种做法是不当的(C)。 A. 将判定所在模块合并到父模块中,使判定处于较高的层次 B. 将受到判定影响的模块下移到控制范围内 C. 将判定所在模块下移到最低层次 D. 将判定上移到层次中较高的位置 9、以下不属于黑盒测试技术的是( A )。 A. 基本路径测试 B. 等价类划分 C. 边界值分析 D. 因果图
10、某企业的软件系统希望从Windows平台移植到Linux平台上,软件开发厂商为了满足企业的要求进行的维护属于( B ) A. 改正性维护 B. 适应性维护 C. 完善性维护 D. 预防性维护
2
三、简答题(共3题,每题5分,共15分)
1、什么是软件危机?软件危机产生的原因是什么?解决办法是什么? 答案要点:
所谓软件危机就是计算机软件在开发和维护过程中所遇到的一系列严重问题,概括地说,主要包含两方面的问题:一是如何快速开发软件来满足人们对软件日益增长的需求;二是如何维护数量不断膨胀的已有软件。(2分)
软件危机的出现,使得人们去寻找产生危机的内在原因,发现可归纳为两方面原因:一方面是软件生产本身存在着复杂性,另一方面却是与软件开发所使用的方法和技术有关。(2分)
软件工程是解决软件危机的主要办法,即采用工程化的方法从事软件系统的研究和维护。(1分)
2、请列举出至少5种软件生命周期模型。 答案要点:
瀑布、V模型、W模型、演化、增量、螺旋、喷泉、构件组装、快速应用开发、RUP。
3、面向对象分析(OOA)阶段过程中主要包括哪些工作活动? 答案要点: (1) 用例建模。(2分) (2) (3) (4)
创建领域模型。(1分) 绘制系统顺序图。(1分) 创建系统操作契约。(1分)
3
四、应用题(4题,共40分)
1、某大学的问题域描述如下:
学校由学院组成,每个学院有一个院长,多个老师和学生。每个老师可以教一门或者多门课,也可以不教课,一门课也可以被多个老师同时上。学生必须要选课,可以选择一门或多门课,一门课也可以被多个学生选,学生选课都有相应的成绩记录。
问题:请根据以上描述,给出相应的领域模型。(8分)
学校1..*学院1院长1..*1..*老师1..*0..*课程1..*1..*学生教课选课
评分要点:
画出了上述的6个主要概念类(3分);画出了6个类之间的关系(3分);标明了关联的数量关系(1分);画出了关系相关的关联类(1分).
4
2、某学生成绩管理系统具备以下功能。首先接收用户的初始请求,初始请求经过系统的验证处理后,转变成内部可以识别的合法请求,系统将合法请求分类,并按照请求的类别进行不同的功能处理:
(1) 成绩录入:将学生成绩录入到系统中。
(2) 个人查询:从系统中查询出相应的学生个人成绩,经过格式化后,将格式化成绩打印到学生成绩表中。
(3) 综合查询:从系统中查询出所有学生的综合成绩,将综合成绩进行排名,并将排名信息打印到学生名次表中。 问题:请画出系统的第一层数据流图。(8分)
成绩录入成绩录入请求格式化成绩学生成绩表用户初始请求验证处理合法请求请求分类个人查询请求个人查询个人成绩格式化综合查询请求综合查询综合成绩排名排名信息学生名次表 评分要点:
画出了数据流图的四个要素;画出了事务型的数据流图结构;画的是第一层数据流图。
5
3、某程序将用户输入的15位身份证号码,转换为对应的18位身份证号码,并输出在屏幕上。输入的身份证号有如下要求: (1)长度是15位,必须全是数字;
(2)第7至第12位为出生年月日,格式为YYMMDD,例如770626,此处YY范围为00-99,MM范围为01-12,DD范围为01-31(忽略特殊年月日组合)
问题:请根据等价类划分原则给出测试上述程序时的等价类表(8分) 输入条件 长度及取值范围 第7、8位 第9、10位 有效等价类 15位数字组合(1) 无效等价类 15位的字母数字组合(2),小于15位的字母数字组合(3),大于15的字母数字组合(4) 两位的字母数字组合(6) 小于01的数字(8),大于12的数字(9),两位的字母数字组合(10) 第11、12位 01-31(11) 小于01的数字(12),大于31的数字(13),两位的字母数字组合(14) 评分要点:
(1) 输入条件2分;有效等价类、无效等价类各占3分
(2) 输入条件除上述基本内容外,可有自己定义的条件
(3) 有效等价类中内容缺少一个扣1分,无效等价类中缺少一个扣0.5
分
(4) 有效和无效等价类中如果缺少标号扣1分。
6
00-99(5) 01-12(7) 4、某商场在“五一”期间,顾客购物时付款额可以按照如下流程计算: (1) 计算用户购买商品的总价格。
(2) 按照4种情况对最终付款进行打折:普通顾客一次购物累计少于100
元,按A类标准付款(不打折),一次购物累计多于或等于100元,
按B类标准付款(打9折);会员顾客一次购物累计少于1000元,按C类标准付款(打8折),一次购物累计等于或多于1000元,按D类标准付款(打7折)。 (3) 打印出最终的付款额。 问题:
(1) 请用程序流程图表示出付款算法。(8分)
(2) 用基本路径法(McCabe)导出对应的程序控制流图。计算控制流图的环路复杂性V(G)(4分) (3) 给出一组独立路径集(4分)
评分要点:
(1) 程序流程图和程序控制流图不限于下图的节点数和边数,但关键3
个判断节点必须出现,少1个扣0.5,程序流程图和控制流图的平面结构必须能够对应,其余连续的执行节点可以合并。 (2) 直接给出复杂性4,没有任何说明的,扣0.5分。
(3) 独立路径集条数不能超过4,每条独立路径至少包含一条在其他独立
路径中从未有过的边。
(1)程序流程图:
计算购买商品总价格sum是否会员Nsum<100Nsum=sum*0.9打印最终付款额sumYsum<1000Nsum=sum*0.7YYsum=sum*0.8
7
(2)程序控制流图:
ABCDEFGH
V(G) = E-N+2=10-8+2=4
(3)一组独立路径集: Path1:A—B—C—H Path2:A—B—C—E—H Path3: A—B—D—F—H Path4: A—B—D—G—H
8
五、综合题(1题,共25分)
问题描述:某电影院需构建一“网上订票订座”的系统模块,其场景如下:
1. 顾客通过影院主页进入系统;
2. 浏览影视信息后,选择“在线订票”模块; 3. 在列表中选择所需的影片;
4. 进而选择三天之内的影片放映场次;
5. 系统显示电影票的单价,顾客选择订购票的张数;
6. 系统给出总价;
7. 同时显示座位信息(已经订出座位的颜色与空闲座位的颜色不一样),如果已无空位则给出明显提示;顾客可切换放映场次; 8. 如果所有场次的座位都满,则退出订票模块;
9. 顾客根据需要选择所需的位置,同时要求顾客提供手机号码; 10. 系统将顾客选择的位置信息与电影票绑定,同时根据顾客提供的手机号码加上电影票的序列号生成四位确认码,以短信的方式发送给顾客;
11. 系统提示完成订票订座的操作并退出。
问题一:请根据上述场景描述给出用例图,需特别注意基本用例和扩展用例及包含用例的内容,并给出扩展用例和包含用例的用例说明。(8分) 问题二:请根据上述内容,给出该场景的领域模型。(8分)
问题三:请根据上述场景中的第9和第10条内容以及领域模型,给出该系统消息设计模型的交互图。(9分)
问题一:请根据上述场景描述给出用例图,需特别注意基本用例和扩展用例及包含用例的内容,并给出扩展用例和包含用例的用例说明。(8分)
参考答案:请注意,此时可能有很多同学将问题复杂化,本题的描述内容可以认为是“订票用例”的主要场景,但是描述中前两行是需要特别注意的地方,也就是“订票用例”必须通过“浏览网站”的基本用例才能启动,也就是说此时:
1、 Actor : 顾客;(2分)
2、 基本用例: 浏览网站(或者其他类似的意思都可以);(2分)
3、 扩展用例:
在线订票(2分)
4、 包含用例:(可有可无)后续的描述都是“在线订票”的交互场
景,特别注意第9条的内容,可以将“填写手机信息”作为“在线订票”用例的包含用例 5、 用例说明只需要根据用例图中的扩展及包含用例去描述,而不是
9
全部的内容,但此时要注意区分用例说明中的扩展场景。(2分)
-《extends》浏览网站在线订票-《include》填写手机信息::顾客 在线订票 顾客 1、 在列表中选择所需的影片; 2、 选择三天之内的影片放映场次; 3、 系统显示电影票的单价,顾客选择订购票的张数; 4、 系统给出总价; 5、 显示座位信息 a) 如果已无空位则给出明显提示,顾客可切换放映场次; b) 如果所有场次的座位都满,则退出订票模块; 6、 顾客根据需要选择所需的位置 用例名称 参与者 成功场景 备注
用例名称 参与者 成功场景 无 填写手机信息 顾客 1、 输入手机号码 2、 确认输入 3、 生成四位的确认码,发送短息 1、 a)检测到输入的手机号码无效,重新要求输入 备注
问题二:请根据上述内容,给出该场景的领域模型。(8分)
参考答案:首先要找到用例说明中的概念类(4分)
1、 影院; 2、 顾客; 3、 影片;
4、 影片信息(可选); 5、 场次; 6、 座位; 7、 电影票;
8、 订单(具有四位确认码的属性);
然后,根据上述概念类建立它们之间的关系(4分)
10
顾客*1*订单1影院1*电影票111场次11座位11*影片信息影片
注:影院应该和每个类都有关联,这里在领域模型中没有完全体现出来。
问题三:请根据上述场景中的第9和第10条内容以及领域模型,给出该系统消息的交互图。(9分)
顾客订票用例控制器位置信息电影票确认码生成器位置信息位置信息绑定手机号码获取序列号序列号获取确认码(手机号码、电影票序列号)确认码确认码
11
因篇幅问题不能全部显示,请点此查看更多更全内容