1、南 昌 大 学 考 试 试 卷【适用时间:20 20 学年第 学期 试卷类型: 卷】教师填写栏课程编号:试卷编号:课程名称:软件工程开课学院:信息工程学院考试形式:闭卷适用班级:考试时间:120分钟试卷说明:1、本试卷共 8 页。2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。题号一二三四五六七八九十总分累分人签 名题分2010202030100得分考生填写栏考生姓名:考生学号:所属学院:所属班级:所属专业:考试日期:考 生须 知1、请考生务必查看试卷中是否有缺页或破损。如有立即举手报告以便更换。2、严禁代考,违者双方均开除学籍;严禁舞弊,违者取消学位授予资格;严禁带手机等有储存或传递
2、信息功能的电子设备等入场(包括开卷考试),违者按舞弊处理;不得自备草稿纸。考 生承 诺本人知道考试违纪、作弊的严重性,将严格遵守考场纪律,如若违反则愿意接受学校按有关规定处分!考生签名: 一、单项选择题:(每题2 分,共20 分)得 分评阅人1、软件开发瀑布模型中的软件定义时期各个阶段依次是: ( A )A) 问题定义,可行性研究,需求分析。B) 可行性研究,问题定义,需求分析。C) 可行性研究,需求分析,问题定义。D) 以上顺序都不对。2、在设计测试用例时,( A )是用得最多的一种黑盒测试方法。A) 等价类划分 B) 边界值分析 C) 因果图 D) 判定表3、按照软件工程的原则,模块的作用
3、域和模块的控制域之间的关系是: ( C )A) 模块的控制域应在模块的作用域之内。B) 模块的控制域与模块的作用域互相独立。C) 模块的作用域应在模块的控制域之内。D) 以上说法都不对。4、需求分析的主要任务是: ( B )A) 确定系统怎样完成工作。B) 确定系统必须完成哪些工作。C) 研究系统的软件结构。D) 确定软件开发费用。5、面向数据结构的设计方法(Jackson方法)是进行( B )的形式化的方法。A) 系统设计 B) 详细设计 C) 软件设计 D) 编码6、软件设计阶段的输出主要是 ( D )A) 程序B) 模块C) 伪代码D) 设计规格说明书7、在整个软件维护阶段所花费的全部工
4、作中,( C )所占比例最大。A) 改正性维护 B) 适应性维护 C)完善性维护 D)预防性维护8、指出PDL是下列哪种语言( A )。A) 伪码B) 高级程序设计语言 C) 中级程序设计语言 D) 低级程序设计语言9、可行性研究实质上是进行了一次 ( A )A) 大大压缩简化了的系统分析和设计过程B) 详尽的系统分析和设计过程C) 彻底的系统设计过程D) 深入的需求分析 10、软件开发和维护过程中出现的一系列严重问题称为 ( D )A) 软件工程B) 软件开发C) 软件周期D) 软件危机 二、填空题:(每空 1 分,共10 分)得 分评阅人1、结构化设计方法是面向( 数据流 )的设计。2、可
5、行性研究需要从以下三个方面分析研究每种解决方法的可行性:( 技术可行性 )、( 经济可行性 )、( 社会可行性 )。3、内聚性有七种类型,最强的是( 功能内聚 ),最弱的是偶然内聚 。4、数据流图中,每个加工至少有一个( 输入流 )和一个( 输出流 )。5、任何程序都可由( 顺序 )、( 选择 )、( 循环 )三种基本控制结构构造。6、对于变换型的数据流图,按照软件设计思想,要将一个大型复杂的软件进行分解,要确定数据流图的 ( 中心加工 )、逻辑输入、逻辑输出。7、软件(产品)=程序 + ( 文档 )。8、数据流图有四种成分:源点或终点、( 处理 )、( 数据存储 )、( 数据流 )。9、模块
6、独立性可以由( 内聚 )、( 耦合 )两个定性标准度量。10、用面向对象方法开发软件,通常需要建立三种形式的模型,它们分别是:( 对象模型 )、( 动态模型 )、( 功能模型 )。三、简答题:(每题 5 分,共 20 分)得 分评阅人1、说明软件测试在软件开发阶段的地位和作用。比较测试和调试的异同点。回答要点:1、 保证软件质量的关键步骤,是对软件规格说明、设计和编码的最后复审 (3分)2、 测试是为了发现错误、调试是为了改正错误 (2分)2、什么是需求分析?在需求分析阶段,建立目标系统的逻辑模型的具体做法是什么?答:需求分析是当前软件工程中的关键问题,需求分析阶段的任务是:在可行性分析的基础
7、上,进一步了解、确定用户需求。准确地回答 “系统必须做什么?”的问题。获得需求规格说明书。还涉及到软件系统的目标、软件系统提供的服务、软件系统的约束和软件系统运行的环境。它还涉及到这些因素和系统的精确规格说明,以及系统进化之间的关系。( 2分)首先确定目标系统与当前系统的逻辑差别;然后将变化部分看作是新的处理步骤,对功能图及对象图进行调整;最后由外及里对变化的部分进行分析,推断其结构,获得目标系统的逻辑模型。通常用数据流图、数据字典和主要的处理算法描述这个逻辑模型。 ( 3分)3、什么是软件复用?分析说明为什么面向对象的开发方法为软件复用技术提供了良好的环境?答:软件复用是将已有的软件成分用于
8、构造新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。可复用的软件成分称为可复用构件(Reusable Component),从旧软件中提取,也可以专门为复用而开发。 ( 2分)面向对象方法之所以特别有利于软件复用,是由于它的主要概念及原则与软件复用的要求十分吻合。支持复用的OO 概念与原则是:对象与类、抽象、封装、继承与一般特殊结构、整合与整体部分结构、粒度控制、多态性。对象与类:OO 方法用对象描述问题域中的事务,并用类作为同种对象的抽象表示。类是系统的基本构成单位,它符合可复用构件所应具备的那些特性:完整性、独立性、可标识性、一般性、抽象、封装:尤其是OO 方法的对象
9、封装性,为软件复用技术提供了良好的条件。 (3分)4、面向对象分析有哪三类模型?每类模型的作用是什么?答:对象模型,功能模型,动态模型。 (2分)一对象模型:描述系统的静态结构,包括类和对象,它们的属性和操作,以及它们之间的关系。数据词典:用以描述类,属性和关系;二动态模型:着重于系统的控制逻辑,考察在任何时候对象及其关系的改变,描述这些涉及时序和改变的状态。三功能模型:着重于系统内部数据的传送和处理。数据流图从输入数据能得到什么样的输出数据,不考虑参加计算的数据按什么时序执行。 (3分)四、程序设计题:(每小题 10分,共 20 分)得 分评阅人1、根据下列NS图画出其PAD图。abT X1
10、 FfX2TX4F=1=2=3igDO_WHILE X3dechDO_UNTIL X5DO_UNTIL X6j参考答案:三个嵌套层次,每个1分,共三分;每个控制结构1分;2、对一个包含10000条机器指令的程序进行一个月集成测试后,总共改正了15个错误,此时MTTF=10h;经过两个月测试后,总共改正了25个错误(第二个 月改正了10个错误),MTTF=15h。 (1)根据上述数据确定MTTF与测试时间之间的函数关系,画出MTTF与测试时间的关系曲线。在画这条曲线时做了什么假设?(2)为做到MTTF=100h,必须进行多长时间的集成测试?(3)当集成测试结束时总共改正了多少个错误,还有多少个错
11、误潜伏在程序中?答:(1) 由题意,不妨假设平均无故障时间MTTF与测试时间之间存在线性关系, 即MTTF=a+b, 由于: 10=a+b,15=a+2b, 得到:a=5,b=5所以平均无故障时间MTTF与测试时间之间存在线 性关系为: MTTF=5+5 (2) 为做到MTTF=100h,有方程:100=5+5,故=19即必须进行19个月的集成测试。(3) 由于经验:平均无故障时间与单位长度程序中剩余的错误数成反比,故有:MTTF=10000/(K*(ET-EC()由于:10=10000/(K*(ET-15), 15=10000/(K*(ET-25),得到:ET=45,K=33.33当集成测试
12、结束时,MTTF=100h,有: 100=10000/(33.33*(45-EC(19)故:EC(19)=42,即当集成测试结束时总共改正了42个错误,还有45-42=3个错误潜伏在程序中。五、应用题:(每小题 15分,共 30 分)得 分评阅人1、 用SA方法画出下列问题的顶层和0层数据流图。某运动会管理系统接受来自运动员的报名单、裁判的比赛项目及项目成绩,产生运动员号码单发送给运动员,项目参加者发送给裁判,单项名次、团体名次发送给发布台。该系统有两部分功能:(1)登记报名单:接受报名单、比赛项目,产生运动员号码单、项目参加者,形成运动员名单及团体成绩表两种数据存储。 (2)统计成绩:接受项
13、目成绩,查询运动员名单,产生单项名次,填写团体成绩,最后产生团体2、已知被测试模块伪代码如下,先画出程序流程图,再按照“判定”覆盖法,在表格中填入满足测试要求的数据。 BEGINENDA4 AND B=2X = X / 2A=6 OR X1X = X - 2X = X + 7TTFFabcdef BEGIN IF ( A 4 ) AND ( B = 2 ) THEN X = X / 2 END IF IF ( A = 6 ) OR ( X 1 ) THEN X = X + 7 ELSE X = X -2 END IF END第一组测试用例:数 据覆盖路径覆盖分支X值A=6,B=2,X=4abdf第一个判断为真,第二个判断为真 9A=5,B=2,X=2abef第一个判断为真,第二个判断为假-1第二组测试用例:数 据覆盖路径覆盖分支X值A=4,B=2,X=4acdf第一个判断为假,第二个判断为真 11A=4,B=2,X=1acef第一个判断为假,第二个判断为假 -1