1《软件工程》期末考试试题----------------试卷1答案2010年1月一、选择题请将正确答案的序号填在横线上。(共20小题,每题3分,共60分)1.软件与程序的区别是D。A.程序价格便宜、软件价格昂贵。B.程序是用户自己编写的,而软件是由厂家提供的。C.程序是用高级语言编写的,而软件是由机器语言编写的。D.软件是程序以及开发、使用和维护所需要的所有文档的总称,而程序是软件的一部分。2.以下属于软件维护阶段文档的是C。A、软件需求说明B、操作手册C、软件问题报告D、测试分析报告3.提高软件质量和可靠性的技术大致分为两大类,一类是避开错误的技术,另一类是B技术。A.消除错误B.检测错误C.避开错误D.容错4.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)。A.软件工程B.软件周期C.软件危机D.软件产生5.瀑布模型本质上是一种(A)模型。A.线性顺序B.顺序迭代C.线性迭代D.早期产品6.瀑布模型存在的问题是(B)。A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求7.螺旋模型是一种将瀑布模型和(A)结合起来的软件开发模型。A.增量模型B.专家系统C.喷泉模型D.变换模型8.原型化方法是用户和设计者之间执行的一种交互构成,适用于(A)系统。A.需求不确定性高的B.需求确定的C.管理信息D.实时9.下列有关软件工程的标准,属于国际标准的是(D)A.GBB.DINC.ISOD.IEEE10.结构化方法是一种基于(D)的方法。A.数据结构B.程序结构C.算法D.数据流11.下列的(C)不属于面向对象分析模型。A.用例图B.类图C.实体关系图D.顺序图12.(A)用于描述系统中概念层次的对象。A.分析类B.界面类C.实体类D.控制类13.在基于用例的面向对象分析过程中,定义交互行为的关键在于通过描述分析类实例之间的(A)将用例的职责分配到分析类中。A.消息传递B关联关系C继承关系D上下文关系214.用例的实现细节不会在(B)描述。A.用例说明B.用例图C.活动图D.顺序图15.用例的职责通常分配给(D)的对象。A.发送消息B.接收消息C.发送和接收双方D.分析类16.可维护性的特性中,相互矛盾的是(B)A.可理解性与可测试性B.效率与可修改性C.可修改性和可理解性D.可理解性与可读性17.各种不同的软件维护中,以(C)维护所占的维护量最小。A.纠错性维护B、代码维护C、预防性维护D、文档维护18.在变更控制中,(B)可以用来确保由不同用户所执行的并发变更。A.异步控制B.同步控制C.存取控制D.基线控制19.变更控制是一项最重要的软件配置任务,其中“检出”和(A)处理实现了两个重要的变更控制要素,即存取控制和同步控制。A.登入B.管理C.填写变更要求D.审查20.用图表示软件项目进度安排,下列说法中正确的是(B)A.能够反映多个任务之间的复杂关系B.能够直观表示任务之间相互依赖制约关系C.能够表示哪些任务是关键任务D.能够表示子任务之间的并行和串行关系二、简答题(共5道小题,每题6分,共30分)1.软件工程的目标是什么?1、答:软件工程旨在开发满足用户需要、及时交付、不超过预算和无故障的软件,其主要目标如下:实现预期的软件功能,达到较好的软件性能,满足用户的需求。增强软件过程的可见性和可控性,保证软件的质量。提高所开发软件的可维护性,降低维护费用。提高软件开发生产率,及时交付使用。合理预算开发成本,付出较低的开发费用。2、模块的内聚有哪几种?模块间的耦合有哪几种?2、答:内聚分为七种类型:巧合内聚——一个模块执行多个完全互不相关的动作,那么这个模块就有巧合内聚逻辑内聚——当一个模块执行一系列相关的动作时,称其有逻辑内聚。时间性内聚——当一个模块内的多个任务是与时间有关时,这个模块具有时间性内聚。过程内聚——模块执行的若干动作之间有顺序关系。3通信内聚——模块执行的若干动作之间有顺序关系,并且所有动作是在相同的数据上执行。信息内聚——一个模块中执行一系列动作,每个动作都有自己的入口点和处理代码,所有的动作都作用在相同的数据结构上,这样的模块叫做信息内聚。功能性内聚——一个模块中各个部分都是完成某一具体功能必不可少的组成部分耦合分为七类:内容耦合——如果一个模块直接参考另一个模块的内容,则这两个模块是内容耦合。公共耦合——如果多个模块都访问同一个公共数据环境,则称它们是公共耦合。外部耦合——如果两个模块都访问同一个全局简单变量而不是同一全局数据结构,而且,不是通过参数表传递该全局变量的信息,则这两个模块属于外部耦合。控制耦合——如果模块A向模块B传递一个控制信息,则称这两个模块是控制耦合的数据结构耦合——当一个模块调用另一个模块时传递了整个数据结构,这两个模块之间具有数据结构耦合。数据耦合——如果两个模块传递的是数据项,则这两个模块是数据耦合。非直接耦合——如果两个模块之间没有直接关系,它们之间的联系完全通过主模块的控制和调用来实现的,这就是非直接耦合。3、面向对象分析的关键步骤有哪些?应建立哪几个模型?3、答:关键步骤有识别问题域的对象并分析它们相互之间的关系,建立简洁、精确、可理解的正确模型;应建立的模型有功能模型,对象模型,动态模型。4、请说明集成测试、系统测试和验收测试有什么不同?4、答:集成测试界于单元测试和系统测试之间,起到“桥梁作用”,一般由开发小组采用白盒加黑盒的方式来测试,既验证“设计”,又验证“需求”。系统测试的粒度最大,一般由独立测试小组采用黑盒方式来测试,主要测试系统是否符合“需求规格说明书”。验收测试与系统测试相似,主要区别是测试人员不同,验收测试由用户执行。5、什么是软件配置管理?什么是基线?5、答:配置管理能够系统地处理变更,从而使得软件系统可以随时保持其完整性。配置管理又可成为变更控制,可以用来评估提出的变更请求,跟踪变更,并保持系统在不同时间的状态。软件配置管理是一套规范、高效的软件开发基础结构。基线是:已经通过正式复审和批准的某规约或产品,它因此可以作为进一步开发的基础,并且只能通过正式的变化控制过程改变。三、应用题(共10分)1.某学校领书的工作流程为:学生班长填写领书单,班主任审查后签名,然后班长拿领书单到书库领书。书库保管员审查领书单是否有班主任签名,填写是否正确等,不正确的领书单退回给班长;如果填写正确则给予领书并修改库存清单;当某书的4库存量低于临界值时,登记需订书的信息。每天下班前为采购部门提供一张订书单。用活动图来描述领书的过程。三、应用题解:书库管理员班长不正确正确库存不足库存充足库存清单订书单填写是否正确是否有班主任签名填写领书单班主任签名领书单返回给班长领书修改检查库存登记图书信息提交采购部5软件工程模拟试题一、选择题,请从四个可选项中选择正确答案。(60分,每题3分)1.软件对硬件和环境有着不同程度的依赖性,这导致了软件(B)问题。A.复杂性B.升级和移植C.通用性D.脆弱性2.原型化方法是用户和设计者之间的一种交互手段,适用于(A)系统。A.需求不确定性高的B.需求确定的C.管理信息D.实时3.IEEE是(A)的简称。A.国际电气和电子工程师协会B.国际软件标准C.美国国家标准D.美国空军的软件标准4.可行性研究的主要目的是(D)。A.确定系统建设的详细方案B.深入了解用户需求C.分析开发系统的必要性D.确定系统是否值得开发5.(D)定义了软件开发人员必须实现的软件功能。A.用户需求B.业务需求C.性能需求D.功能需求6.数据流程图中的处理不能表示(A)。A.数据组成B.一个程序C.一个模块D.一个函数7.随着模块规模的(D),模块的开发成本(),但是模块之间的接口变得复杂起来,使得模块的集成成本增加。A.减小,加大B.增加,减小C.增加,加大D.减小,减小8.详细设计与概要设计衔接的图形工具是(B)。A.DFD图B.SC图C.PAD图D.程序流程图9.面向过程的方法最关心的是(A),而过程实施的()是作为过程参数传递的。A.过程/对象B.数据结构/主体C.动作/数据结构D.对象/属10.UML是一种(A)。A.一种可视化的建模语言B.是一种可视化的程序设计语言C.是一种过程D.是一种方法11.目前面向对象分析有许多方法,大多数方法可以归结为建立(B)、对象模型、动态模型。A.数据模型B.功能模型C.逻辑模型D.物理模型12.构建类图是(A)的任务。A.对象模型B.用例模型C.动态模型D.功能模型13.首先用(B)描述系统的物理构架,然后将需求分析阶段捕获的系统元素分配到这些物理节点上。A.类图B.配置图C.组件图D.网络拓扑图14.类的属性结构要坚持简单的原则,尽可能不使用复杂的(A)。A.数据结构B.处理C.方法D.参数15.现在人们更强调程序代码的(A)性。A.可读B.可移植C.可扩充D.可维护16.程序的三种基本控制结构,包括顺序结构、(A)和循环结构。A.条件/判断结构B.说明结构C.输入结构D.输出结构17.一般性的软件其测试工作量大约占整个开发工作量的(B)。A.小于10%B.40%C.90%D.大于10018.下面哪些测试方法属于黑盒测试(B)。6A.路径测试B.等价类划分C.条件判断D.循环测试19.软件特性中,相互矛盾的是(B)。A.可理解性与可测试性B.效率与可修改性C.可修改性和可理解性D.可理解性与可读性20.(D)针对开发过程中的程序、数据、文档提出使用和管理策略。A.组织管理B.过程管理C.风险管理D.软件配置管理二、简答题(30分,每小题6分)1.什么是软件危机?软件危机表现在哪几个方面?1.答案:由于软件特点和长期以来一直没有发明一种高效的开发方法,导致软件生产效率非常低,交付期一拖再拖,最终交付的软件产品在质量上很难保障。这种现象早在20世纪60年代被定义为“软件危机”。它的具体表现如下:a)“已完成”的软件不满足用户的需求。b)开发进度不能保障,交付时间一再拖延。c)软件开发成本难以准确估算,开发过程控制困难造成开发成本超出预算。d)软件产品的质量没有保证,运算结果出错、操作死机等现象屡屡出现。e)软件通常没有适当的文档资料,或文档与最终交付的软件产品不符,软件的可维护程度非常低。2.根据相关的法律,对于侵犯软件著作权的行为,根据情节应当给予什么处罚?2.答案:对于侵犯软件著作权的行为,要根据情况承担停止侵害、消除影响、赔礼道歉、赔偿损失等民事责任;损害社会公共利益的,由著作权行政管理部门责令停止侵权行为,没收违法所得,没收、销毁侵权复制品,并处罚款;情节严重的,著作权行政管理部门可以没收用于制作侵权复制品的材料、工具、设备等;触犯刑律的,依法追究刑事责任。3.请用判定表描述产品出库量的计算方法:当库存量大于等于提货量时,以提货量作为出库量;当库存量小于提货量,但是库存量大于等于提货量的50%时,以实际库存量作为出库量;否则,出库量为0,不能提货。条件123库存≧提货量TF库存≧50%提货量TF按提货量出库T按库存量出库T不出库T74.QQ软件的用户分为游客和登陆会员,登陆会员分为群成员和非群成员,群成员分为群主和群普通成员、群管理员,请用类的继承关系描述QQ用户群。4.答案:用户登录会员游客群会员非群会员群主群管理员群普通会员5.将下面的程序片段画出程序流程图。…………WHILEPDOIFAOTHENA1ELSEA2ENDIF;S1;IFB0THENB1;WHILECDOS2;S3ENDWHILE;ELSEB2ENDIF;B3ENDWHILE;……8答案:A1B0B1CB2S2YNYN……A0pA2S1S3……B3YNYN三、应用题(10分)一个学生考试成绩统计程序,小于60分为“不及格”;60-79为“中”;80-89为“良”;90分以上为“优秀”,录入其他成绩均为“无效”。要求:按等价类划分方法设计测试用例。答案:假设变量A是读入的成绩,则设计的测试用例有5个:A=59不及格A=79中A=89良A=99优A=101无效说明:此题的答案不唯一,只要符