第1页共4页淮阴师范学院计算机科学与技术学院2010级计算机科学与技术专业《软件工程》课程期中考试卷(A)2012-2013学年第一学期注意:将答案写在答题纸上,写在试卷上无效!一、单项选择题(每题1分,共26分)1.()是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。A.软件产品B.软件过程C.软件测试D.软件工程2.软件工程的基本目标是()。A.消除软件固有的复杂性B.开发高质量的软件C.努力发挥开发人员的创造性潜能D.更好地维护正在使用的软件产品3.下面的()说法是正确的。A.软件危机在20世纪70年代末期全面爆发B.当前先进的软件工程方法已经解决了软件危机的问题C.软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题D.软件危机是指在软件产品中存在一系列的质量问题4.大多数软件仍然是定制开发的,其原因在于()。A.软件组件重用是十分普遍的B.可重用的组件太昂贵而无法使用C.软件在不使用其他组件的情况下很容易构造出来D.商业组件在很多应用领域中可以得到5.软件会逐渐退化而不会磨损,其原因在于()。A.软件通常暴露在恶劣的环境下B.软件错误通常发生在使用之后C.不断的变更使组件接口之间引起错误D.软件备件很难订购6.()是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。A.软件过程B.软件工具C.软件产品D.软件工程7.软件过程的基本活动是()。A.分析、设计、实现、测试、演化B.沟通、计划、建模、构造、部署C.计划、分析、设计、实现、调试D.沟通、风险管理、度量、产品化、评审8.软件开发的瀑布模型是()。A.适用于需求被清晰定义的情况B.一种需要快速构造可运行程序的好方法C.最适合于大规模团队开发的项目D.已不能用于现代环境的过时模型9.软件开发的增量模型是()。A.适用于需求被清晰定义的情况B.一种需要快速构造核心产品的好方法C.最适合于大规模团队开发的项目D.一种不适用于商业产品的创新模型10.快速原型开发模型是()。A.适用于客户需求被明确定义的情况B.适用于客户需求难以清楚定义的情况系别班级学号姓名密封线第2页共4页C.最适合于大规模团队开发的项目D.很难产生有意义产品的一种冒险模型11.演进式软件过程模型()。A.本质上是迭代的B.可以很容易适应需求的变化C.通常不会抛弃所产生的系统D.以上所有选项12.螺旋模型()。A.在软件产品发布时结束B.比增量模型更加混乱C.在每一次迭代过程中包含项目风险评价D.以上所有选项13.基于组件的开发模型()。A.只适用于计算机硬件设计B.不能支持可重用组件的开发C.在面向对象技术获得支持的情况下应用得更好D.增加了开发风险和成本14.软件工程管理的对象是()。A软件开发人员B软件工程项目C软件开发过程D软件开发速度15.有效的软件项目管理集中于以下()方面。A.人员、产品、工具、过程B.人员、产品、工具、项目C.人员、产品、项目、过程D.人员、工具、项目、过程16.在()阶段,项目管理者对于项目的资源、成本和进度进行合理估算,制定开发计划。A.项目启动B.项目规划C.项目实施D.项目收尾17.在主程序员式组织结构中,()在主程序员的指导下,完成指定部分的详细设计和编程工作。A.主程序员B.秘书C.后备程序员D.程序员18.在项目初始阶段,开发任务的目标是()。A.理解基本问题B.确定所需的解决方案C.确定需要解决方案的人员D.选项A、B和C19.需求分析的结果是产生定义下面()问题域的分析模型。A.信息B.功能C.性能D.以上所有选项20.需求规格说明描述了()。A.计算机系统的功能、性能及其约束B.每个指定系统的实现C.软件体系结构的元素D.系统仿真所需要的时间21.组织需求评审的最好方法是()。A.检查系统模型的错误B.让客户检查需求C.将需求发放给设计团队去征求意见D.使用问题列表检查每一个需求22.使用跟踪表有助于()。A.在后续的检查运行错误时调试程序B.确定算法执行的性能C.识别、控制和跟踪需求的变化D.以上选项都不是23.在各种不同的软件需求中,()描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明。A.业务需求B.功能需求C.非功能需求D.用户需求24.在各种不同的软件需求中,()是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。A.业务需求B.功能需求C.非功能需求D.用户需求密封线第3页共4页25.需求导出后产生的工作制品将依赖于()而不同。A.预算多少B.将要构建的产品规模C.正在使用的软件过程D.利益相关者的需要26.在需求开发过程中,软件工程师应与客户合作共同定义()。A.客户可见的使用场景B.重要的软件特性C.系统的输入与输出D.选项A、B和C二、简答题(每题6分,共24分)1.软件工程包括哪些基本要素?请简要说明这些要素及其作用。2.请说明一个软件系统从需求到最终实现经过了哪些操作步骤,面向对象的分析与设计方法论中大概如何组织这些步骤的。你认为最重要的是什么步骤,理由是什么。3.请列举软件项目常用的沟通方式及其特点。4.需求工程包括哪些基本活动?每一项活动的主要任务是什么?三、分析计算题(第一题12分,第二题8分;共20分)1.某开发项目的评估规模是55KLOC,且认为是中等复杂程度。该项目所开发的软件是可以支持Web的系统,具有强大的后端数据库,属于半独立型,请使用基本的COCOMO模型估计开发工作量、开发时间和平均人员数。简单的COCOMO模型参数类型abcd组织型2.41.052.50.38半独立型3.01.122.50.35嵌入型3.61.22.50.322.请指出下面需求描述存在的问题,并进行适当的修改。(1)系统用户界面友好。(2)系统运行时应该占用尽量少的内存空间。(3)即使在系统崩溃的情况下,用户数据也不能受到破坏。(4)ATM系统允许用户查询自己银行帐户的现存余额。(5)ATM系统应该快速响应用户的请求。(6)ATM系统需要检验用户存取的合法性。(7)所有命令的响应时间小于1秒;BUILD命令的响应时间小于5秒。(8)软件应该用JAVA语言实现。四、设计题(每题15分,共30分)1.M公司的软件产品以开发实验型的新软件为主。用瀑布模型进行软件开发已经有近十年了,并取得了一些成功。若你作为一名管理员刚加入M公司,你认为快速原型法对公司的软件开发更加优越,请向公司副总裁写一份报告阐明你的理由,切记:副总裁不喜欢报告长度超过300字。2.请给出以下问题描述的用例模型,并简要描述用例。一个新的音像商店准备采用计算机系统向比较广泛的人群销售或租借录像带和光碟。该音像商店将存有大约1000盘录像带和500张光碟,这些订购涉及多家订购商。所有的录像带和光碟都有一个条码,可以使用条码扫描仪来支持销售和返还,客户会员卡也同时条码化。客户可以预定录像带并在指定日期来取。系统必须拥有灵活的搜索机制来回答客户的询问,包括关于该音像商店还没有进货的电影(但可能是已经请求订购了)。淮阴师范学院计算机科学与技术学院2010级计算机科学与技术专业《软件工程》课程期中考试卷(A)2012-2013学年第一学期注意:将答案写在答题纸上,写在试卷上无效!一、选择题(每题为单项选择题,每题1分;共26分。)12345678910DBCCCAAABB11121314151617181920DCCBCBDADA212223242526DCBCBD二、简答题(每题6分,共24分)1.答案要点:软件工程包括过程、方法和工具三个要素。软件工程过程定义了技术方法的采用、工程产品(包括模型、文档、数据、报告、表格等)的产生、里程碑的建立、质量的保证和变更的管理,从而将人员、技术、组织与管理有机地第4页共4页结合在一起,实现在规定的时间和预算内开发高质量软件的目标;软件工程方法为软件开发提供了“如何做”的技术,通常包括某种语言或图形的模型表示方法、良好的设计实践以及质量保证标准等;软件工程工具为软件工程方法提供了自动的或半自动的软件支撑环境,辅助软件开发任务的完成。现有的软件工具覆盖了从需求分析、系统建模、代码生成、程序调试和软件测试等多个方面,形成了集成化的软件工程开发环境CASE。2.答案要点:一般经过需求获取与分析、软件分析与设计、软件实现及调试几个步骤。面向对象方法论中这样组织活动的:用例建模、用例分析、系统设计、系统实现几个步骤,总体策略为建立用例模型、分析系统业务需求、建立分析模型、建立设计模型、最终实现。其中建立分析模型与设计模型的建立比较重要,它将系统需求逐步连贯地变换成系统的最终实现,其中分析模型最为重要,起到承上启下的作用。3.答案要点:直接交谈、电话交谈、电子邮件、会议、项目网站、书面报告4.答案要点:需求工程分为需求开发和需求管理两个部分,而需求开发又可进一步分为需求获取、需求分析、规格说明和需求验证四个阶段。这些基本活动的主要任务包括:(1)需求获取:采集、识别和提取用户的需求,对问题和需求形成文档化的描述,使各种人员达成一致的理解和认可。(2)需求分析:分析和综合所采集的信息,建立系统的详细逻辑模型。(3)需求规格说明:编写软件需求规格说明书,明确、完整和准确地描述已确定的需求。(4)需求验证:评审软件需求规格说明,以保证其正确性、一致性、完备性、准确性和清晰性。(5)需求管理:定义需求基线,在整个项目过程中跟踪需求状态及其变更情况。三、分析计算题(第一题12分,第二题8分;共20分)1.E=aLbD=cEd其中E工作量人月,D开发时间月,L代码行数klocE=3.0*551.12=266.89人月D=2.5*E0.35=17.67月E/D=15人2.答案要点:(1)问题:“友好”是不可验证的。改正:具有一年计算机使用经验的用户经过3小时的培训就可以学会使用该系统。(2)问题:“尽量少”存在歧义。改正:系统运行时所占用的最大内存空间是256MB。(3)问题:“不能受到破坏”是不可验证的。改正:如果系统发生崩溃,那么该系统重新正常启动后,可以将用户数据恢复到最后未完成操作执行前的状态。(4)该描述是正确的。(5)问题:“快速”是不可验证的。改正:ATM系统将在1秒钟之内响应用户的请求。(6)问题:“如何验证合法性”是存在歧义的。改正:ATM系统将通过用户名和口令验证其存取的合法性。(7)问题:所有命令中必然会包括BUILD命令,因此这两个需求描述是矛盾的。改正:去掉关于BUILD命令的需求描述。(8)问题:该描述不是功能需求或非功能需求,应该是对设计实现的一个约束条件。四、设计题(每题15分,共30分)1.答案要点:快速原型法与瀑布模型的对比。在一个以实验型开发为主的组织中,系统的需求并不总是稳定的,因此要求有足够的机制解决不确定的需求带来的影响。快速原型的好处就是建立一个原型,验证是否符合用户要求,因此可以精化系统的需求,而且快速原型创建周期短,能适应迅速的变化,将变化反馈到真实的系统构建中,而瀑布模型不容易响应前期的变化,很容易带来巨大的影响。2.参考模型。