(首页)注:1、教师命题时题目之间不留空白;2、考生不得在试题纸上答题,教师只批阅答题册正面部分。试题纸课程名称:软件工程A卷适用专业年级:计算机学院各专业2010级(20121227)考生学号:考生姓名:………………………………………………………………………………………………………一.填空题(每空1分,共10分)1.数据流图中,每个加工至少有一个_______和一个输出流。2.模块独立性概念是模块化、抽象、_______和局部化等概念的直接结果。3.决定软件可维护性的因素有5个,即_______、可测试性、可修改性、可移植性、可重用性。4._______过程就是应用软件工程的原理、概念、技术和方法重新开发某个现有的应用系统。5.在维护阶段,将诊断和改正软件错误的过程称为_______。6.在判断内聚时,根据程序流程图划分的模块通常是______内聚的模块。7.Jackson方法是一种面向________的开发方法。8.一般来说,可行性研究应该从______、经济可行性和操作可行性三个方面研究每种解法的可行性。9.软件生命周期由软件定义、______和运行维护3个时期组成。10.黑盒测试又称为_______。二.单项选择题(每小题2分,共26分)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.E-R图7.在软件开发过程中,为了充分发挥少数经验丰富、技术高超的程序员的作用,程序设计小组应采用什么的组织形式。()A.主程序员组B.民主制程序员组C.现代程序员组D.传统程序员组8.概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是()A.把软件划分成模块B.确定模块之间的调用关系C.确定各个模块的功能D.设计每个模块的伪代码9.软件结构内,同一个层次上的模块总数的最大值称为()。A.深度B.扇出C.宽度D.扇入10.如果两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据,那么这种耦合称为()。A.控制耦合B.特征耦合C.数据耦合D.内容耦合(首页)注:1、教师命题时题目之间不留空白;2、考生不得在试题纸上答题,教师只批阅答题册正面部分。11.在采用面向对象技术构建软件系统时,很多敏捷方法都建议的一种重要的设计活动是(),它是一种重新组织的技术,可以简化构件的设计而无需改变其功能或行为。A.精化B.设计类C.重构D.抽象12.一个软件开发过程描述了“谁做”、“做什么”、“怎么做”和“什么时候做”,需求分析阶段主要完成()。A.“谁做”B.“做什么”C.“怎么做”D.“什么时候做”13.在开发信息系统时,用于系统开发人员与项目管理人员沟通的主要文档是()。A.系统开发合同B.系统设计说明书C.系统开发计划D.系统测试报告三.判断题(每小题1分,共10分)()1.可行性研究要在较低层次上以较抽象方式进行需求分析和设计。()2.在一个设计得很好的系统中,模块的控制域是模块作用域的子集。()3.CMM的5个等级中最低的是优化级,最高的是初始级。()4.人机界面的设计是一个迭代的过程。()5.软件开发过程管理包括项目计划、控制和任务管理等。()6.对于中等规模的软件来说,只要严格地设计测试用例,一般就能发现程序中所有的错误。()7.只要软件质量高,软件投入使用后就不需要进行太多的维护。()8.面向对象方法中,下层的派生类自动具有和上层的基类相同的特性(包括数据和方法),这种现象称为“重载”。()9.在进行编码的同时,独立的设计单元测试计划。()10.Gantt图不仅能描绘任务分解情况以及每项作业开始和结束时间,还能显式地描绘各个作业彼此间的依赖关系。四.简答题(每小题5分,共20分)1.什么是软件危机?试简述至少3种软件危机的典型表现。2.什么是结构程序设计?3.面向对象方法开发软件,通常需要建立几种形式模型?它们彼此间有何关系?4.简述如何提高软件的可维护性?五.应用设计题(第1,2小题各10分,第3小题14分,共34分)1.已知有如下程序段,请用PAD图描述。beginP1;ifC1thenwhileC2doP2;elseP3;whileC3dobeginP4;ifC4thenP5elseP6;end;P7:ifC5thenrepeatP8untilC6;P9;end2.设计下列伪代码的语句覆盖测试用例。(首页)注:1、教师命题时题目之间不留空白;2、考生不得在试题纸上答题,教师只批阅答题册正面部分。STARTINPUT(A,B,C)IFA5THENX=10ELSEX=1ENDIFIFB10THENY=20ELSEY=2ENDIFIFC15THENZ=30ELSEZ=3ENDIFPRINT(X,Y,Z)STOP3.阅读以下说明和数据流图,回答问题1~问题3。【说明】学生住宿服务系统帮助学生在就学的城市内找到所需的住房,系统对出租的房屋信息、房主信息、需要租房的学生信息以及学生和房主的会面信息进行管理和维护。房主信息包括姓名、地址、电话号码以及系统分配的唯一身份标识(ID)和密码;房屋信息包括房屋地址、类型(单间/套间)、适合住宿的人数、房租、房主的ID以及现在是否可以出租(例如由于装修原因,需等到装修后才可出租或者房屋已被租出)。每当房屋信息发生变化时,房主必须通知系统,系统将更新房屋文件以便学生能够获得准确的可租用房屋信息。房主向系统中加入可租用的房屋信息时,须交纳一定的费用,由系统自动给出费用信息。房主可随时更新房屋的各种属性。学生可通过系统查询现有的可租用的房屋,但必须先在系统中注册。学生信息包括姓名、现住址、电话号码、出生日期、性别以及系统分配的唯一身份标识(1D)和密码。若学生希望租用某房屋,则需要发出租房请求,请求中包含房屋的详细信息,系统将安排学生与房主会面的时间和地点,并将会面信息通知学生和房主,会面信息包括会面时间、地点以及会面双方的基本信息,系统将记录会面信息。学生住宿服务系统的顶层图如图1-1所示;学生住宿服务系统的第0层DFD图如图1-2所示,其中,加工3的细化图如图1-3所示。【数据流图1-1】(首页)注:1、教师命题时题目之间不留空白;2、考生不得在试题纸上答题,教师只批阅答题册正面部分。【数据流图1-2】【数据流图1-3】【问题1】(1)数据流图1-1缺少了一条数据流(在图1-2中也未给出该数据流),请给出此数据流的起点和终点,并采用说明中的词汇给出此数据流名。(2)数据流图1-2中缺少了与“查询房屋”加工相关的数据流,请指出此数据流的起点和终点。【问题2】“安排会面”加工除需要写入会面文件外,还需要访问哪些文件?【问题3】请补齐下列数据字典条目:登录信息=学生ID+密码注册信息=___________(首页)注:1、教师命题时题目之间不留空白;2、考生不得在试题纸上答题,教师只批阅答题册正面部分。2010级软件工程试题A参考答案及评分标准一.填空题(每空1分,共10分)1.输入流2.信息隐蔽3.可理解性4.正向工程5.改正性维护6.过程7.数据结构8.技术可行性9.软件开发10.功能测试二.单项选择题(每题2分,共26分)1.A2.A3.D4.D5.A6.C7.A8.D9.C10.C11.C12.B13.C三.判断题(每题1分,共10分)(1)(×)(2)(×)(3)(×)(4)(×)(5)(√)(6)(×)(7)(×)(8)(×)(9)(√)(10)(×)四.简答题(每题5分,共20分)1.答:指在计算机软件的开发和维护过程中,所遇到的一系列严重问题。(2分)典型表现:(1个1分,共3分)开发费用和进度难以估算和控制,大大超过预期的资金和规定日期;软件需求分析不够充分,用户不满意“已经完成”的软件系统。软件质量难于保证;软件维护困难;通常没有保留适当的文档资料开发成本逐年上升;软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势2.答:经典定义:如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接(3分),而且每个代码块只有一个入口和一个出口(2分),则称这个程序是结构化的。3.答:3种。①对象模型(objectmodel):定义实体,描述系统数据,定义“对谁做”(1分)②动态模型(dynamicmodel):描述系统控制结构,规定“何时做”(1分)③功能模型(functionalmodel):描述系统功能,指明系统应“做什么”(1分)关系:(2分)●对象模型描述了动态模型、功能模型所操作的数据结构。对象模型中的操作对应于动态模型中事件和功能模型中的函数。●动态模型描述了对象的控制结构,告诉我们哪些决策是依赖于对象值,哪些引起对象的变化,并激活了函数。●功能模型由数据流图和用例图组成,描述了对象模型中操作的含义、动态模型中动作的意义以及对象模型中约束的意义。(首页)注:1、教师命题时题目之间不留空白;2、考生不得在试题纸上答题,教师只批阅答题册正面部分。4.答:(1)在软件生命周期的各个阶段都必须充分考虑维护问题。(1分)(2)结构化设计的几条主要原则,如模块化,信息隐藏,高内聚,低耦合等,对于提高软件的可理解性,可测试性和可修改性也都有重要的作用。(2分)(3)书写详细正确的文档,书写源文件的内部注解,使用良好的编程语言,具有良好的程序设计风格,也有助于提高软件的可理解性。(1分)(4)使用先进的测试工具,保存以前的测试过程和测试用例,则有助于提高软件的可测试性。(1分)五.应用设计题(第1,2小题各10分,第3小题14分,共34分)1.PAD图如下所示。2.因为每个判定表达式为真或假时均有赋值语句,为了使每个语句都至少执行一次,总共需要两组测试数据,以便使得每个判定表达式取值为真或假各一次(4分)。下面是实现语句覆盖的典型测试用例:①使3个判定表达式之值全为假输入:A=1,B=1,C=1预期的输出:X=1,Y=2,Z=3(3分)②使3个判定表达式之值全为真输入:A=20,B=40,C=60预期的输出:X=10,Y=20,Z=30(3分)3.数据流图:【问题1】(5分)(1)起点:学生住宿服务系统终点:房主数据流名:费用信息或交纳的费用或费用(2)起点:房屋文件终点:查询房屋或4【问题2】(4分)房主文件学生文件【问题3】(5分)姓名+现住址+电话号码+出生日期+性别开始结束P1P9P7WhileC2P2P3WhileC3P4P5P6UntilC6P8C4C5C1