中南大学考试试卷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)测试用例:略试卷二中南大学考试试卷2007--2007学年学期时间110分钟软件工程课程48学时3学分考试形式:闭卷专业年级:总分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分)试卷二(参考答案)参考答案:一、1、描述计算机程序的文档、数据、基线2、工具、过程、结构化、数据3、暴露程序中的错误、测试目的、预期的结果4、一组图示符号、组织这些符号的规则、类图5、准确地回答系统必须做什么、软件需求规格说明书6、信息流、变换分析、事物分析7、概要设计、详细设计二、1、瀑布模型规定了各项软件工程活动,包括需求分析、规格说明、设计、编码、测试和维护,并规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级而下。瀑布模型的特点是:阶段间具有顺序性和依赖性;清楚区分逻辑设计和物理设计,尽可能推迟程序的物理实现;每个阶段都必须完成规定的文档,且每阶段结束前需要对完成的文档进行评审。2、软件配置管理是在软件生命周期内管理变化的一组活动,用来:标识变化、控制变化、确保适当地实现了变化、向相关人员报告变化。软件配置管理和软件维护的区别是:软件配置管理是一组追踪和控制活动,在软件项目启动时就开始,并一直持续到软件被淘汰后才终止;软件维护是一组软件工程活动,发生于软件交付给用户并投入运行之后。3、如果在聚集关系中部分对象可同时参与多个整体对象的构成,则该聚集称为共享聚集。例如,一个课题组包含许多成员,每个成员又可以是另一个课题组的成员,则课题组和成员之间是一种共享聚集的关系。如果部分对象完全隶属于整体对象,并与整体对象共存,则该聚集称为组合聚集。例如,在屏幕上一个窗口由文本框、列表框、按钮和菜单等构成,且一旦关闭了窗口,则各组成部分也消失,则窗口和它的组成部分之间的关系为组合聚集关系。三、(1)、A:控制面板B、报警器C、传感器(2)、W:用户配置请求X:用户密码Y:传感器状态Z:告警信息(3)、利用DFD图计算功能点数的步骤如下:首先通过DFD图获取输入项数、输出项数、查询数、主文件数和外部接口数,然后计算未调整的功能点数,再计算技术复杂因子,最后计算功能点数。四、(1)图4-1设计方案存在的问题如下:1)未能完全反映租赁关系的内容,如租赁日期等;2)公司、被租赁汽车和租赁者三者之间的关系未能描述。(2)改进后的类图如下图所示。或图中,Tenancy表示一次租赁对应的事项。五、(1)程序流程图如下:(2)MaCabe环形复杂度为7。(3)满足基本路径覆盖的测试用例共7个,假定各节点的编号如下图示,则测试用例如下表所示。序号基本路径输入:期末考试成绩输入:平时成绩预期结果:成绩1a-b-c-d-l90优优2a-b-c-g-l90差良3a-b-e-f-g-l80优良4a-b-e-f-j-l80差及格5a-b-e-h-i-j-l70优及格6a-b-e-h-i-k-l65差不及格7a-b-e-h-k-l54优(或差)不及格试卷三中南大学考试试卷2008--2008学年上学期时间110分钟软件工程课程48学时3学分考试形式:闭卷专业年级:总分100分,占总评成绩70%注:此页不作答题纸,请将答案写在答题纸上填空题(本题30分,每空2分)1.如果一个模块完成多个逻