河师大软件工程考试题--2015.doc
【精品文档】如有侵权,请联系网站删除,仅供学习与交流河师大软件工程考试题-2015.精品文档.姓名:_ 学号:_ 年级:_ 专业:_.密封线河南师范大学计算机与信息工程学院20132014学年度2010级计算机科学与技术专业期末考试软件工程A卷题号一二三四总分得分得分评卷人一、概念解释(每题2分,共10分) 1. 软件:是计算机系统中与硬件相互依存的一部分,它包括程序数据及其相关文档软件生命周期模型:是描述软件开发过程中各项活动如何执行的模型软件危机:是计算机软件开发和维护过程中所遇到的一系列严重的问题 软件生存周期:软件从定义开始,经过开发,使用和维护,直到最终退役的全过程2. 软件工程 将系统的、规范的、可度量的工程化方法用于软件开发、运行和维护的过程 3. 结构化分析方法:是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。它一般利用图形表达用户需求,使用的手段主要有数据流图、数据字典、结构化语言、判定表以及判定树等。 结构化分析的步骤如下:分析当前的情况,做出反映当前物理模型的DFD;推导出等价的逻辑模型的DFD;设计新的逻辑系统,生成数据字典和基元描述;建立人机接口,提出可供选择的目标系统物理模型的DFD;确定各种方案的成本和风险等级,据此对各种方案进行分析;选择一种方案;建立完整的需求规约。 4. 软件工程三要素:过程、方法、工具5. 软件开发工具:是支持软件开发人员开发和维护软件活动而使用的软件得分评卷人二、判断题(每题1分,共20分)1. 在进行了可行性分析后,需求分析就只需要解决目标系统的设计方案(F )2. SA方法是面向数据流,建立在数据封闭原则上的需求分析方法(T )3. 模块的设计要力求做到高内聚、低耦合(T )4. 软件开发、设计几乎都是从头开始,成本和进度很难估计。(F )5. 类图用来表示系统中类和类之间的关系,它是系统动态结构的描述(F )6. 划分模块可以降低软件复杂度和工作量,所以应该将模块划分得越小越好。(F )7. 一个好的开发人员应具备的素质和能力包括善于与周围人员团结协作,建立良好的人际关系,善于听取别人的意见。(T )8. 用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、完整性、现实性和有效性。( T)9. 缺乏处理大型软件项目的经验。是产生软件危机的唯一原因。(F )10. 信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是ER图。(T)11. 纠错性维护是改正运行期间发现的潜伏错误。()12. 软件复杂性不能反映出软件的可理解性、模块化、简单性等属性。(X)13. 设计用户界面只需要计算机科学的理论和知识,而不一定需要认知心理学以及人-机工程学、语言学等学科的知识。(X)14. 第四代语言(4GL)还局限在某些领域内,如数据库查询语言。()15. 用穷举测试是较现实的测试方法。(X)16. 测试不能找出软件中存在的所有错误,因此软件设计完成后可以不进行测试。(X)17. 软件开发过程中不存在所谓的风险,因此分析分析软件开发过程不重要。 (X)18. 软件开发过程中,文档是非常重要的,它既是软件开发过程中阶段结束标记,也是软件设计、测试、维护等工作的依据。()19. 软件是手工产品,软件的开发只能定制,所有软件费用较高。()20. 没有开发经验的程序员,不能开发出高质量的软件。( X )得分评卷人三、简答题(每题3分,共15分)1. 什么是需求分析?需求分析阶段的基本任务是什么?需求分析是软件定义时期的最后一个阶段,他的基本任务是准确的回答“系统必须做什么”。2. 说明软件测试在软件开发阶段的地位和作用,比较测试和调试的异同点。3. 为什么说瀑布模型是软件生存周期中最基本的模型,说明瀑布模型的优、缺点瀑布模型是一种整体模型,直到软件开发完成后,用户才能够见到整个软件,它的特点是:(1)阶段间具有顺序性和依赖性(2) 推迟实现的观点(3) 每个阶段必须完成规定的文档;每个阶段结束前完成文档审查,及早改正错误。其局限性:虽然瀑布模型是最早出现的模型,也是比较常用的模型,但是这种模型有很多局限性,具体表现如下:(1) 阶段与阶段划分固定,阶段间产生大量的文档,增加了工作量。(2) 由于开发模型呈线性,当开发成果尚未经过测试时,用户无法看到软件的效果。(3) 无法通过开发活动澄清本来不够确切的软件需求,因此需要返工或者不得不在维护阶段纠正需求的偏差。(4) 由于顺序固定,前期工作中造成的差错到后期阶段所造成的损失更大,为了纠正错误,需要付出高昂的代价。4. 软件危机的表现、产生软件危机的原因,及软件危机的解决方法?表现:(1) 对软件开发的进度和成本估计很不准确(2) 开发的软件产品不能满足用户的要求(3) 软件的质量不可靠(4) 软件通常没有相应的文档(5) 软件常常是不可维护的(6) 软件开发的效率低产生原因:(1) 软件规模越来越大,结构越来越复杂(2) 软件开发管理困难(3) 软件开发费用不断增加(4) 软件开发技术落后(5) 软件开发工作落后(6) 软件开发方式落后解决方法:(1) 正确的认识软件(2) 必须充分认识到软件开发不是个人技巧的表现而是一种组织良好,管理严密,各类人员协同配合,共同完成的工程项目(3) 应该推广和使用在实践中总结出来的、开发成功的技术和方法,并且研究探索更好更有效的技术和方法,尽快消除早期的错误观点和做法(4) 应该开发和使用更好的软件工具总之,为了消除软件危机,在软件开发过程中既要有技术措施(工具和方法),又要有必要的组织管理措施。5. 软件在使用过程中维护有哪几种?改正性维护、适应性维护、完善性维护、预防性维护得分评卷人四、综合题(共55分)1、 软件工程的目标是什么?(10分)(1) 付出较低的开发成本(2) 达到要求的软件功能(3) 取得较好的软件性能(4) 开发的软件易于移植(5) 需要较低的维护费用(6) 能够按时完成开发任务,及时交付用户使用(7) 开发的软件可靠性高2. 画出银行存取款过程的0层数据流图。问题的描述为:储户用存折取款。首先填写取款单,根据“帐卡”中的信息检验取款单与存折,如有问题,将问题反馈给用户,否则,登陆“储户存储数据库”,修改相应的数据,并更新“帐卡”,同时发出付款通知,出纳向储户付款。(10分)3 试述对用户要求没有完整的认识就匆忙着手编写程序是许多软件开发工程失败的主要原因。(10分)说明需求分析在软件设计过程中的重要性,而需求的困难性表现在那些方面?4. 针对右下图给出的程序流程图,请写出所有的条件组合,并给出一组合理的测试用例,覆盖所有的条件组合。(10)5. 结合自己的实际经验和体会,谈谈对软件开发和软件管理的体会(15分)