第1章概述(习题与参考答案)[判断题]1. 由于今天个人计算机不断发展壮大,人们不再采用软件团队的开发方式。
(×)2. 由于软件是产品,因此可以应用其他工程制品所用的技术进行生产。
(×)3. 购买大多数计算机系统所需的硬件比软件更昂贵。
(×)4. 大多数软件产品在其生命周期中不需要增强功能。
(×)5. 大多数软件系统是不容易变化的,除非它们在设计时考虑了变化。
(√)6. 一般来说,软件只有在其行为与设计者的目标一致的情况下才能成功。
(×)[选择题]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. 软件工程师在从事软件工作时应使用下面的()准则。
(E)A. 从来不为个人获利而窃取数据B. 从来不散布或出售项目中自己工作的信息C. 从来不故意毁坏或修改别人的程序、文件或数据D. 从来不侵犯个人、小组或组织的隐私E. 以上所有选项第2章软件过程(习题与参考答案)[选择题]1. ()是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。
(A)A. 软件过程B. 软件工具C. 软件产品D. 软件工程2. 软件过程的基本活动是()。
(A)A. 分析、设计、实现、测试、演化B. 沟通、计划、建模、构造、部署C. 计划、分析、设计、实现、调试D. 沟通、风险管理、度量、产品化、评审3. ()软件需求规格说明书在软件开发过程中具有重要的作用,它是软件可行性分析的依据。
(B)A. 真B. 假4. 软件开发的瀑布模型是()。
(A)A. 适用于需求被清晰定义的情况B. 一种需要快速构造可运行程序的好方法C. 最适合于大规模团队开发的项目D. 已不能用于现代环境的过时模型5. 软件开发的增量模型是()。
(B)A. 适用于需求被清晰定义的情况B. 一种需要快速构造核心产品的好方法C. 最适合于大规模团队开发的项目D. 一种不适用于商业产品的创新模型6. 快速原型开发模型是()。
(B)A. 适用于客户需求被明确定义的情况B. 适用于客户需求难以清楚定义的情况C. 最适合于大规模团队开发的项目D. 很难产生有意义产品的一种冒险模型7. 演进式软件过程模型()。
(D)A. 本质上是迭代的B. 可以很容易适应需求的变化C. 通常不会抛弃所产生的系统D. 以上所有选项8. 螺旋模型()。
(C)A. 在软件产品发布时结束B. 比增量模型更加混乱C. 在每一次迭代过程中包含项目风险评价D. 以上所有选项9. 基于组件的开发模型()。
(C)A. 只适用于计算机硬件设计B. 不能支持可重用组件的开发C. 在面向对象技术获得支持的情况下应用得更好D. 增加了开发风险和成本10. 形式化方法模型是将数学方法用于()。
(D)A. 定义计算机系统的规格说明B. 开发无错误的计算机系统C. 验证计算机系统的正确性D. 以上所有选项11. 下面的()不是RUP模型的阶段。
(D)A. 启动阶段B. 精化阶段C. 构造阶段D. 确认阶段第3章软件项目管理(习题与参考答案)[选择题]1. 软件项目管理的“4P”是()。
(C)A. people,performance,payoff,productB. people,product,performance,processC. people,product,process,projectD. people,process,payoff,product2. ()项目管理在现代软件开发中是不太重要的,因为大多数项目能够及时完成并成功交付。
(B)A. 真B. 假3. 在软件开发的各种资源中,()是最重要的资源。
(C)A. 开发工具B. 方法C. 硬件环境D. 人员4. 软件项目规划的第一步是()。
(D)A. 确定项目预算B. 选择团队的组织模型C. 确定项目的约束D. 建立项目的目标和范围5. 下面的()方法最不适合你向团队成员解释他或她为什么表现不合格。
(B)A. 个人谈话B. 项目团队会议C. 正式报告D. 电子邮件6. 功能点估算技术需要以()为基础进行问题分解。
(A)A. 信息域B. 项目进度C. 软件功能D. 过程活动7. 软件开发团队的每一个成员都应该参与计划活动,以便()。
(C)A. 降低计划的粒度B. 深入地分析需求C. 所有成员同意该计划D. 开始设计8. 在攻克技术难题时,最佳的开发团队组织模型是()。
(A)A. 民主式结构B. 主程序员式结构C. 技术管理混合式结构D. 以上所有选项都不是9. 在选择开发团队组织结构时应考虑()因素。
(E)A. 沟通的复杂程度B. 最终程序的规模大小C. 发布日期的严格程度D. 项目预算的多少E. 选项A,B和C10. 在软件开发过程中避免受挫的最佳方法之一是()。
(A)A. 给予团队成员对于过程和技术决策的更多控制权B. 给予团队成员对于过程和技术决策的更少控制权C. 向团队成员隐瞒坏消息直到事情有所改善D. 根据生产效率奖励团队成员11. 下面的()软件特性不是引起项目协调困难的一个因素。
(B)A. 互操作性B. 性能C. 规模D. 不确定性12. 在进行项目范围活动时,问题分解的主要范围是()。
(E)A. 客户工作流程B. 需要发布的功能C. 用于发布功能的过程D. 软件过程模型E. 选项B和C13. ()随着项目计划的不断形成,产品分解和过程分解经常是同时发生的。
(A)A. 真B. 假14. 为了将项目失败的风险减少到最小,项目经理需要采取()。
(D)A. 将项目团队规模增加一倍B. 要求更大的预算C. 顺利地开始D. 跟踪过程E. 选项B和C15. ()估算不可靠的唯一原因是估算人员缺乏经验。
(B)A. 真B. 假16. ()由于软件项目估算不完全可靠,所以项目开始后可以忽略这些估算。
(B)A. 真B. 假17. 软件项目规划的目的是()。
(C)A. 使客户相信项目是可行的B. 使用历史项目数据C. 使项目管理者合理地估算成本和进度D. 在投标项目之前确定大概的利润边界18. 软件项目所需的人数应该()。
(D)A. 在估计开发需要的努力之后决定B. 由项目预算数量决定C. 从评价系统复杂性来决定D. 以上所有选项19. ()估计待开发软件产品的规模必须基于像代码行等直接度量单位。
(B)A. 真B. 假20. 代码行估算技术需要以()为基础进行问题分解。
(C)A. 信息域值B. 项目进度C. 软件功能D. 软件过程活动21. 功能点估算技术需要以()为基础进行问题分解。
(A)A. 信息域值B. 项目进度C. 软件功能D. 软件过程活动22. 经验估算模型是基于()。
(C)A. 专家基于过去项目经验的判断B. 期望值估计的细化C. 来自历史项目数据的回归模型D. 反复试验决定参数和系数23. COCOMO II 是现代经验估算模型的一个实例,它需要以()为单位的程序规模信息。
(B)A. 功能点B. 代码行C. 工作量D. 以上任何选项24. ()功能点不能用于估算面向对象的软件。
(B)A. 真B. 假25. ()软件项目延迟是不可避免的,而且无法解释其原因。
(B)A. 真B. 假26. ()将开发团队人数增加一倍可以保证项目完成时间减少一半。
(B)A. 真B. 假27. 任务集是()的集合。
(A)A. 工作任务、里程碑、工作产品B. 任务分配、成本估算、度量单位C. 里程碑、可交付物、度量单位D. 责任、里程碑、文档28. ()主动的风险管理有时被描述为救火。
(B)A. 真B. 假29. 软件风险总是包括()两个特性。
(C)A. 救火和危机管理B. 已知的和未知的风险C. 不确定和损失D. 安置人员和预算30. 风险的三种主要类型是()。
(B)A. 商业风险、人员风险、预算风险B. 项目风险、技术风险、商业风险C. 计划风险、技术风险、人员风险D. 管理风险、技术风险、设计风险31. 下面的()是有效的软件配置项。
(E)A. 软件工具B. 文档C. 可执行程序D. 测试数据E. 以上所有选项32. 下面的()配置对象通常不包括在项目数据库中。
(C)A. 设计规格说明书B. 可执行程序C. 组织结构描述D. 测试计划33. 基线(Baseline)是指在项目生命周期的不同时间点上,一个或一组配置项通过()而进入正式受控的一种状态。
(C)A. 存取控制B. 质量控制C. 正式评审D. 变更管理34. ()软件工作产品一旦成为基线就不能再更改了。
(B)A. 真B. 假35. ()如果开发小组使用自动化的项目数据库工具,那么就不需要变更控制。
(B)A. 真B. 假36. 下面的()不是软件配置管理的任务。
(C)A. 变更控制B. 配置状态报告C. 统计质量控制D. 版本控制37. 配置状态报告的主要目的是()。
(C)A. 允许项目经理修改项目进度和成本估算B. 评估软件开发人员和组织的绩效C. 确保变更信息传达到受影响的团体D. 选项A和CE. 选项A、B和C第4章需求工程(习题与参考答案)[选择题]1. ()在需求分析过程中,分析员要从用户那里解决的最重要的问题是明确软件做什么。