软件工程习题与参考答案计算机 2010-10-18 17:35:39 阅读334 评论0 字号:大中小 订阅
第1章 概述(习题与参考答案) [判断题]
1. 由于今天个人计算机不断发展壮大,人们不再采用软件团队的开发方式。(×) 2. 由于软件是产品,因此可以应用其他工程制品所用的技术进行生产。(×) 3. 购买大多数计算机系统所需的硬件比软件更昂贵。(×) 4. 大多数软件产品在其生命周期中不需要增强功能。(×)
5. 大多数软件系统是不容易变化的,除非它们在设计时考虑了变化。(√) 6. 一般来说,软件只有在其行为与设计者的目标一致的情况下才能成功。[选择题]
1. ( )因素促使计算机系统越来越复杂。A. 计算机内存和存储容量上的巨大增长B. 外部输入/输出选项的更加多样性C. 计算机体系结构方面的深刻变化D. 以上所有选项
2. 下面的( )不再是现代软件工程师关注的问题。A. 为什么计算机硬件的成本这么高?B. 为什么软件需要很长时间才能完成?C. 为什么开发一个软件的成本这么高?D. 为什么不能在产品发布前去除软件错误?3. 软件会逐渐退化而不会磨损,其原因在于(A. 软件通常暴露在恶劣的环境下B. 软件错误通常发生在使用之后C. 不断的变更使组件接口之间引起错误D. 软件备件很难订购4. 大多数软件仍然是定制开发的,其原因在于(A. 软件组件重用是十分普遍的B. 可重用的组件太昂贵而无法使用C. 软件在不使用其他组件的情况下很容易构造出来D. 商业组件在很多应用领域中可以得到5. 下面的( )说法是正确的。A. 软件危机在20B. 当前先进的软件工程方法已经解决了软件危机的问题C. 软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题D. 软件危机是指在软件产品中存在一系列的质量问题6. 软件工程的基本目标是(A. 消除软件固有的复杂性B. 开发高质量的软件C. 努力发挥开发人员的创造性潜能D. 更好地维护正在使用的软件产品7. ( )是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。A. 软件产品
(C)
70年代末期全面爆发 )。(B)
(D)(×) D) (A)
)。(C) )。(C)
(
世纪
B. 软件过程 C. 软件测试 D. 软件工程
8. 软件工程的基本要素包括方法、工具和( )。(C) A. 软件系统 B. 硬件环境 C. 过程 D. 人员
9. 软件工程师在从事软件工作时应使用下面的( )准则。(E) A. 从来不为个人获利而窃取数据
B. 从来不散布或出售项目中自己工作的信息C. 从来不故意毁坏或修改别人的程序、文件或数据D. 从来不侵犯个人、小组或组织的隐私 E. 以上所有选项 [练习题]
1. 软件与其他工程学科所产生的制品有什么根本区别?答案要点:
(1) 软件是人类思维和智能所延伸的产物,的复杂性和不确定性导致它本身具有极高的复杂性;(2) 软件具有不可见性,它是抽象的,形式化和逻辑化的。(3) 软件具有可变性,有用的软件需要不断地修改和扩展,的退化;
(4) 软件的开发在很大程度上依然是手工作坊式的,难以实现工厂化的生产。2. 软件工程包括哪些基本要素?请简要说明这些要素及其作用。答案要点:
软件工程包括过程、方法和工具三个要素。
? 软件工程过程定义了技术方法的采用、工程产品的产生、里程碑的建立、质量的保证和变更的管理,从而将人员、技术、组织与管理有机地结合在一起,实现在规定的时间和预算内开发高质量软件的目标;? 软件工程方法为软件开发提供了“如何做”方法、良好的设计实践以及质量保证标准等;? 软件工程工具为软件工程方法提供了自动的或半自动的软件支撑环境,的完成。现有的软件工具覆盖了从需求分析、多个方面,形成了集成化的软件工程开发环境3. 软件工程是以系统的、可控的、有效的方式产生高质量的软件,请说明你对“高质量软件”含义的理解。 答案要点:
软件质量是软件产品与明确的和隐含的需求相一致的程度,行描述,包括正确性、可靠性、有效性、可用性、复用性、可维护性、可移植性等。例如,除了要求软件正确运行之外,人们可能还希望软件运行的响应时间符合要求、快捷、程序代码易于理解等,而“程序代码易于理解”但却是影响软件演化的重要因素。
4. 有人认为“软件工程过于耗费时间,并且妨碍开发人员的编程效率。点?请阐述理由。
状态和逻辑关系的组合以及人类思维
但是频繁的修改可能导致软件(包括模型、文档、通常包括某种语言或图形的模型表示代码生成、程序调试和软件测试等CASE。
它通常由一系列的质量特性来进往往是一种用户没有明确提出的需求,
其数据、 数据、报告、表格等)
的技术,
辅助软件开发任务系统建模、软件使用方便”你是否认同这种观答案要点:
这一观点是不正确的。
? 软件开发远不只是编程,管理不当导致的混乱、工作重复、交流不畅等才是大多软件项目效率低下的主要原因。虽然直接编程在开发前期看来效率高,但是不完整的、不清晰的或错误的需求和设计将导致在开发后期反复地修改程序,反而降低了整个开发效率,其质量也无法保证,甚至导致软件开发最终失败的结果。 ? 软件工程是帮助人们在有限的时间、金钱预算和人力、物力资源的约束下开发出质量尽量高的软件的一系列理论和工具,虽然它在编程之外的工作上花费了大量时间,但所耗费的时间与精力并不像其表面上所看起来的那样冗余与低效,而是从总体上做好整个体系的设计与把握,全方位地规划开发过程,的作用。
第2章 软件过程(习题与参考答案)[选择题]
1. ( )是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。A. 软件过程 B. 软件工具 C. 软件产品 D. 软件工程
2. 软件过程的基本活动是(A. 分析、设计、实现、测试、演化B. 沟通、计划、建模、构造、部署C. 计划、分析、设计、实现、调试D. 沟通、风险管理、度量、产品化、评审3. ( )软件需求规格说明书在软件开发过程中具有重要的作用,它是软件可行性分析的依据。(B) A. 真 B. 假
4. 软件开发的瀑布模型是(A. 适用于需求被清晰定义的情况B. 一种需要快速构造可运行程序的好方法C. 最适合于大规模团队开发的项目D. 已不能用于现代环境的过时模型5. 软件开发的增量模型是(A. 适用于需求被清晰定义的情况B. 一种需要快速构造核心产品的好方法C. 最适合于大规模团队开发的项目D. 一种不适用于商业产品的创新模型6. 快速原型开发模型是( )对节省成本、提高效率、保证最终产品质量起到了事半功倍 (A) (A)
(A)
(B)
B)
)。 )。 )。。(A. 适用于客户需求被明确定义的情况 B. 适用于客户需求难以清楚定义的情况 C. 最适合于大规模团队开发的项目
D. 很难产生有意义产品的一种冒险模型 7. 演进式软件过程模型( )。(D) A. 本质上是迭代的
B. 可以很容易适应需求的变化 C. 通常不会抛弃所产生的系统 D. 以上所有选项 8. 螺旋模型( )。A. 在软件产品发布时结束B. 比增量模型更加混乱C. 在每一次迭代过程中包含项目风险评价D. 以上所有选项
9. 基于组件的开发模型(A. 只适用于计算机硬件设计B. 不能支持可重用组件的开发C. 在面向对象技术获得支持的情况下应用得更好D. 增加了开发风险和成本10. 形式化方法模型是将数学方法用于(A. 定义计算机系统的规格说明B. 开发无错误的计算机系统C. 验证计算机系统的正确性D. 以上所有选项
11. 下面的( )不是A. 启动阶段 B. 精化阶段 C. 构造阶段 D. 确认阶段 [练习题]
1. 请简要说明软件过程的概念和基本元素。答案要点:
软件过程是软件工程人员为了获得软件产品在软件工具支持下实施的一系列软件工程活动,它应该明确定义以下元素:? 过程中所执行的活动及其顺序关系? 每一个活动的内容和步骤? 团队人员的工作和职责2. 请描述快速原型过程模型的各个阶段。答案要点:
快速原型方法的目的是解决软件需求不明确给开发带来风险的问题,速”地建造原型,通过用户对原型的评价最终确定系统的需求。快速原型过程模型包括以下阶段:? 原型需求分析:分析和提炼所收集到的客户需求;? 原型开发:基于初步的需求快速建造一个可以运行的软件原型,C)
)。(C)
RUP模型的阶段。
)。(DD) ( ) (其关键在于尽可能“快
实现客户或未来的用户与
系统的交互;
? 原型评价:由用户或客户对该原型进行评价,需要的话再进一步细化待开发软件的需求,并继续调整原型直至需求确定下来为止。
3. 对于下列每一个过程模型,分别列举一个可以适用的具体软件项目,并说明在开发中如何应用该模型。 (1) 瀑布模型 (2) 快速原型模型 (3) 增量模型
(4) 形式化方法模型 (5) 基于组件的开发模型答案要点: (1) 瀑布模型
项目举例:某项目需要在一种新型机器上,为一种已知语言开发一个普通的编译器。选用分析:由于该项目的语言是已知的,需求是明确的和稳定的,整个系统属于中小规模,因此适合采用瀑布模型进行软件开发。阶段说明:略。 (2) 快速原型模型 项目举例:某公司需要给火车站开发一个交互式火车车次查询系统,系统。
选用分析:本项目的主要问题在于用户需要方面,该系统与最终用户的交互是十分关键的,但是在项目初期用户的需求基本上是不知道的,因此适合采用快速原型方法来确定用户需求,在需求确定的基础上再开发最终系统。阶段说明:略。 (3) 增量模型
项目举例:某公司开发一个通用范围内是明确的,某些需求需要进一步细化,但是迫于市场竞争的压力产品需要尽快上市。选用分析:通用CAD软件产品具有一定的成熟度,但是实现该产品所有功能需要比较长的开发周期。本的发布策略,既可以很快占领市场又可以为后续版本的需求定义奠定基础。阶段说明:略。
(4) 形式化方法模型
项目举例:某公司开发一个汽车防抱死刹车控制系统。选用分析:由于该系统对安全性和可靠性要求极高,验,因此适合采用形式化方法开发该系统。阶段说明:略。
(5) 基于组件的开发模型项目举例:某公司开发企业管理源等部分,在系统实施过程中不同的企业具有一定的需求差异。选用分析:企业ERP系统具有组件化的结构,因此适合采用基于组件的开发模型开发该系统,行组件开发和系统集成。阶段说明:略。
4. 在螺旋模型中,风险分析的作用是什么?答案要点:
这是火车站首次使用该 CAD软件产品,产品需求是逐步完善的,某些需求在一定 总体需求和软件系统结构是可以确定的, 为了尽快上市可以采用增量模型实行多版 需要在系统运行之前进行相关性能的检 ERP系统,包括销售、库存、生产、财务、物流、人力资
在不同企业实施时应该尽量重用已有的组件,在直接应用或者修改使用的基础上,最终进