软件工程与实践习题与参考答案_第1页
软件工程与实践习题与参考答案_第2页
软件工程与实践习题与参考答案_第3页
软件工程与实践习题与参考答案_第4页
软件工程与实践习题与参考答案_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE8软件工程与实践习题与参考答案[判断题]由于今天个人计算机不断发展壮大,人们不再采用软件团队的开发方式。(×)由于软件是产品,因此可以应用其他工程制品所用的技术进行生产。(×)购买大多数计算机系统所需的硬件比软件更昂贵。(×)大多数软件产品在其生命周期中不需要增强功能。(×)大多数软件系统是不容易变化的,除非它们在设计时考虑了变化。(√)一般来说,软件只有在其行为与设计者的目标一致的情况下才能成功。(×)在需求分析过程中,分析员要从用户那里解决的最重要的问题是明确软件做什么。(√)软件需求规格说明书在软件开发中具有重要的作用,它是软件可行性分析的依据。(×)目前存在一个很普遍的现象,即不同的客户提出的需求是相互矛盾的,但每个人都争辩自己是正确的。(√)利益相关者(stakeholders)是将来购买所开发软件系统的人。(×)需求工程师的任务是将所有利益相关者的信息进行分类以便允许决策者选择一个相互一致的需求集。(×)模型是对现实的简化,建模是为了更好地理解所开发的系统。(√)UML语言支持面向对象的主要概念,并与具体的开发过程相关。(×)开发人员与客户创建用例以帮助软件团队理解有多少类型的最终用户将使用这些功能。(×)用例参与者总是人员而不是系统设备。(×)在需求确认过程中需求模型被评审以保证其技术可行性。(×)面向对象分析的核心在于建立一个描述软件系统的模型。(×)分析类用于描述系统中概念层次的对象。(√)在基于用例的面向对象分析过程中,定义交互行为的关键在于通过描述分析类实例之间的消息传递将用例的职责分配到分析类中。(√)需求评审人员主要由开发人员组成,一般不包括用户。(×)系统体系结构的最佳表示形式是一个可执行的软件原型。(×)软件体系结构描述是不同项目相关人员之间进行沟通的使能器。(√)良好的分层体系结构有利于系统的扩展与维护。(√)消除两个包之间出现的循环依赖在技术上是不可行的。(×)设计模式是从大量成功实践中总结出来且被广泛公认的实践和知识。(√)面向对象设计是在分析模型的基础上,运用面向对象技术生成软件实现环境下的设计模型。(√)系统设计的主要任务是细化分析模型,最终形成系统的设计模型。(×)关系数据库可以完全支持面向对象的概念,面向对象设计中的类可以直接对应到关系数据库中的表。(×)用户界面设计对于一个系统的成功是至关重要的,一个设计得很差的用户界面可能导致用户拒绝使用该系统。(√)在程序设计中使用括号以改善表达式的清晰性。(√)在程序设计中应尽可能对程序代码进行优化。(×)不要修补不好的程序,要重新写。(√)程序中的注释是可有可无的。(×)对递归定义的数据结构不要使用递归过程。(×)在软件开发的过程中,若能推迟暴露其中的错误,则为修复和改正错误所花费的代价就会降低。(×)好的测试是用少量测试用例运行程序,发现被测程序尽可能多的错误。(√)好的测试用例应能证明软件是正确的。(×)白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求。(√)等价类划分方法将所有可能的输入数据划分成若干部分,然后从每一部分中选取少数有代表性的数据作为测试用例。(√)只有质量差的软件产品才需要维护。(×)遗留系统是许多年以前开发的且已经没有商业价值的计算机系统。(×)更换遗留系统是有业务风险的。(√)软件的维护成本通常比开发成本低。(×)[选择题]1.()因素促使计算机系统越来越复杂。(D)A.计算机内存和存储容量上的巨大增长B.外部输入/输出选项的更加多样性C.计算机体系结构方面的深刻变化D.以上所有选项2.下面的()不再是现代软件工程师关注的问题。(A)A.为什么计算机硬件的成本这么高?B.为什么软件需要很长时间才能完成?C.为什么开发一个软件的成本这么高?D.为什么不能在产品发布前去除软件错误?3.软件会逐渐退化而不会磨损,其原因在于()。(C)A.软件通常暴露在恶劣的环境下B.软件错误通常发生在使用之后C.不断的变更使组件接口之间引起错误D.软件备件很难订购4.大多数软件仍然是定制开发的,其原因在于()。(C)A.软件组件重用是十分普遍的B.可重用的组件太昂贵而无法使用C.软件在不使用其他组件的情况下很容易构造出来D.商业组件在很多应用领域中可以得到5.下面的()说法是正确的。(C)A.软件危机在20世纪70年代末期全面爆发B.当前先进的软件工程方法已经解决了软件危机的问题C.软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题D.软件危机是指在软件产品中存在一系列的质量问题6.软件工程的基本目标是()。(B)A.消除软件固有的复杂性B.开发高质量的软件C.努力发挥开发人员的创造性潜能D.更好地维护正在使用的软件产品7.()是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。(D)A.软件产品B.软件过程C.软件测试D.软件工程8.软件工程的基本要素包括方法、工具和()。(C)A.软件系统B.硬件环境C.过程D.人员9.()是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。(A)A.软件过程B.软件工具C.软件产品D.软件工程10.软件过程的基本活动是()。(A)A.分析、设计、实现、测试、演化B.沟通、计划、建模、构造、部署C.计划、分析、设计、实现、调试D.沟通、风险管理、度量、产品化、评审12.()软件需求规格说明书在软件开发过程中具有重要的作用,它是软件可行性分析的依据。(B)A.真B.假13.软件开发的瀑布模型是()。(A)A.适用于需求被清晰定义的情况B.一种需要快速构造可运行程序的好方法C.最适合于大规模团队开发的项目D.已不能用于现代环境的过时模型14.软件开发的增量模型是()。(B)A.适用于需求被清晰定义的情况B.一种需要快速构造核心产品的好方法C.最适合于大规模团队开发的项目D.一种不适用于商业产品的创新模型15.快速原型开发模型是()。(B)A.适用于客户需求被明确定义的情况B.适用于客户需求难以清楚定义的情况C.最适合于大规模团队开发的项目D.很难产生有意义产品的一种冒险模型16.演进式软件过程模型()。(D)A.本质上是迭代的B.可以很容易适应需求的变化C.通常不会抛弃所产生的系统D.以上所有选项17.螺旋模型()。(C)A.在软件产品发布时结束B.比增量模型更加混乱C.在每一次迭代过程中包含项目风险评价D.以上所有选项18.基于组件的开发模型()。(C)A.只适用于计算机硬件设计B.不能支持可重用组件的开发C.在面向对象技术获得支持的情况下应用得更好D.增加了开发风险和成本19.形式化方法模型是将数学方法用于()。(D)A.定义计算机系统的规格说明B.开发无错误的计算机系统C.验证计算机系统的正确性D.以上所有选项20.下面的()不是RUP模型的阶段。(D)A.启动阶段B.精化阶段C.构造阶段D.确认阶段21.在项目初始阶段,开发任务的目标是()。(A)A.理解基本问题B.确定所需的解决方案C.确定需要解决方案的人员D.以上选项都不是22.需求分析的结果是产生定义下面()问题域的分析模型。(D)A.信息B.功能C.性能D.以上所有选项23.需求规格说明描述了()。(A)A.计算机系统的功能、性能及其约束B.每个指定系统的实现C.软件体系结构的元素D.系统仿真所需要的时间24.组织需求评审的最好方法是()。(D)A.检查系统模型的错误B.让客户检查需求C.将需求发放给设计团队去征求意见D.使用问题列表检查每一个需求25.使用跟踪表有助于()。(C)A.在后续的检查运行错误时调试程序B.确定算法执行的性能C.识别、控制和跟踪需求的变化D.以上选项都不是26.下面的()不是在项目启动阶段被提出的“与环境无关”的问题。(B)A.成功的解决方案将带来什么样的经济收益?B.谁反对该项目?C.谁将为该项目付款?D.谁将使用该解决方案?27.在各种不同的软件需求中,()描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明,()是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。(B,C)A.业务需求B.功能需求C.非功能需求D.用户需求28.需求导出后产生的工作制品将依赖于()而不同。(B)A.预算多少B.将要构建的产品规模C.正在使用的软件过程D.利益相关者的需要29.在需求开发过程中,软件工程师应与客户合作共同定义()。(D)A.客户可见的使用场景B.重要的软件特性C.系统的输入与输出D.选项A、B和C30.类的结构是()。(E)A.由代码来表示B.由属性和关系来表示C.由操作来表示D.由对象的交互来表示E.选项B和C31.类的行为是()。(A)A.由一组操作决定B.由类的属性决定C.对类的每一个对象唯一的D.由父类决定32.()是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。(C)A.多态性B.继承C.封装D.消息33.()意味着一个操作在不同的类中可以有不同的实现方式。(A)A.多态性B.多继承C.消息D.封装34.UML是()的缩写。(B)A.UnifiedModuleLanguageB.UnifiedModelingLanguageC.UniversalModuleLevelingD.UniversalModuleLanguage35.顺序图反映对象之间发送消息的时间顺序,它与()是同构的。(C)A.用例图B.类图C.协作图D.状态图36.()定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。(A)A.用例图B.类图C.活动图D.状态图37.状态图包括()。(E)A.类的状态B.状态之间的转换C.类执行的动作D.触发类的动作的事件E.所有以上选项38.关于面向对象分析,下列的()是正确的。(A)A.它是系统需求建模的方法B.它是分析系统设计的技术C.可以从分析直接编写代码D.在软件生命周期中,它出现在面向对象设计之后39.下列的()不是分析建模的目的。(C)A.定义可验证的软件需求B.描述客户需求C.开发一个简单的问题解决方案D.建立软件设计的基础40.下列的()不属于面向对象分析模型。(C)A.用例图B.类图C.实体关系图D.顺序图41.在分析类中,()用于描述一个用例所具有的事件流控制行为。(D)A.实体类B.界面类C.接口类D.控制类42.开发人员使用()可以将用例的行为分配到所识别的分析类中。(B)A.用例图B.顺序图C.类图D.状态图43.分析模型一般采用()方式进行验证。(C)A.总结B.阶段性报告C.需求分析评审D.转化成设计模型44.程序编译器的体系结构适合使用()。(A)A.仓库体系结构B.模型-视图-控制器结构C.客户机/服务器结构D.以上选项都不是45.网站系统是一个典型的()。(C)A.仓库体系结构B.胖客户机/服务器结构C.瘦客户机/服务器结构D.以上选项都不是46.在分层体系结构中,()实现与实体对象相关的业务逻辑。(D)A.表示层B.持久层C.实体层D.控制层47.()可以帮助人们简单方便地复用已经成功的设计或体系结构。(B)A.商业组件B.设计模式C.遗留系统D.需求规格说明48.()用于封装具体的平台,从而使应用程序可以在不同的平台上运行。(A)A.抽象工厂模式B.外观模式C.观察者模式D.以上选项都不是49.内聚表示一个模块()的程度,耦合表示一个模块()的程度。(B,D)A.可以被更加细化B.仅关注在一件事情上C.能够适时地完成其功能D.联接其他模块和外部世界50.良好设计的特征是()。(E)A.模块之间呈现高耦合B.实现分析模型中的所有需求C.包括所有组件的测试用例D.提供软件的完整描述E.选项B和DF.选项B、C和D51.()是选择合适的解决方案策略,并将系统划分成若干子系统,从而建立整个系统的体系结构;()细化原有的分析对象,确定一些新的对象、对每一个子系统接口和类进行准确详细的说明。(A,B)A.系统设计B.对象设计C.数据库设计D.用户界面设计52.下面的()界面设计原则不允许用户保持对计算机交互的控制。(D)A.允许交互中断B.允许交互操作取消C.对临时用户隐藏技术内部信息D.只提供一种规定的方法完成任务53.为了使程序能在不同的计

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论