软件工程习题与参考答案

上传人:ail****e2 文档编号:51121286 上传时间:2022-01-24 格式:DOC 页数:28 大小:182.50KB
返回 下载 相关 举报
软件工程习题与参考答案_第1页
第1页 / 共28页
软件工程习题与参考答案_第2页
第2页 / 共28页
软件工程习题与参考答案_第3页
第3页 / 共28页
点击查看更多>>
资源描述
第 1章 概述(习题与参考答案)判断题1. 由于今天个人计算机不断发展壮大,人们不再采用软件团队的开发方式。(X)2. 由于软件是产品,因此可以应用其他工程制品所用的技术进行生产。(X)3购买大多数计算机系统所需的硬件比软件更昂贵。(X)4. 大多数软件产品在其生命周期中不需要增强功能。(X)5. 大多数软件系统是不容易变化的,除非它们在设计时考虑了变化。(V)6. 一般来说,软件只有在其行为与设计者的目标一致的情况下才能成功。(X)选择题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. 计划、分析、设计、实现、调试B)D. 沟通、风险管理、度量、产品化、评审3. ( )软件需求规格说明书在软件开发过程中具有重要的作用, 它是软件可行性分析的依据。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 , productB)2. ( )项目管理在现代软件开发中是不太重要的, 因为大多数项目能够及时完成并成功交付。A. 真B. 假3. 在软件开发的各种资源中,( )是最重要的资源。( C)A. 开发工具B. 方法C. 硬件环境D. 人员4. 软件项目规划的第一 步是( )。( D )A. 确定项目预算B. 选择团队的组织模型C. 确定项目的约束B)D. 建立项目的目标和范围5. 下面的( )方法最不适合你向团队成员解释他或她为什么表现不合格。(A. 个人谈话B. 项目团队会议C. 正式报告)为基础进行问题分解。( A)D. 电子邮件6. 功能点估算技术需要以(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和CA)13. ( )随着项目计划的不断形成,产品分解和过程分解经常是同时发生的。(B)B)A. 真B. 假14. 为了将项目失败的风险减少到最小,项目经理需要采取()。( D)A. 将项目团队规模增加一倍B. 要求更大的预算C. 顺利地开始D. 跟踪过程E. 选项B和C15. ( )估算不可靠的唯一原因是估算人员缺乏经验。(B)A. 真B. 假16. ( )由于软件项目估算不完全可靠,所以项目开始后可以忽略这些估算。(A. 真B. 假17. 软件项目规划的目的是( )。( C)A. 使客户相信项目是可行的B. 使用历史项目数据C. 使项目管理者合理地估算成本和进度D. 在投标项目之前确定大概的利润边界18. 软件项目所需的人数应该( )。( D)A. 在估计开发需要的努力之后决定B. 由项目预算数量决定C. 从评价系统复杂性来决定D. 以上所有选项19. ( )估计待开发软件产品的规模必须基于像代码行等直接度量单位。(A. 真B. 假20. 代码行估算技术需要以( )为基础进行问题分解。( C)A. 信息域值B. 项目进度C. 软件功能D. 软件过程活动21. 功能点估算技术需要以( )为基础进行问题分解。( A)为单位的程序规模信息。( B)B)B)A. 信息域值B. 项目进度C. 软件功能D. 软件过程活动22. 经验估算模型是基于( )。( C )A. 专家基于过去项目经验的判断B. 期望值估计的细化C. 来自历史项目数据的回归模型D. 反复试验决定参数和系数23. COCOMO II 是现代经验估算模型的一个实例,它需要以(A. 功能点B. 代码行C. 工作量D. 以上任何选项24. ( )功能点不能用于估算面向对象的软件。(B)A. 真B. 假25. ( )软件项目延迟是不可避免的,而且无法解释其原因。(A. 真B. 假26. ( )将开发团队人数增加一倍可以保证项目完成时间减少一半。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. 测试计划B)而进入正33. 基线( Baseline )是指在项目生命周期的不同时间点上,一个或一组配置项通过( 式受控的一种状态。( C )A. 存取控制B. 质量控制C. 正式评审D. 变更管理34. ( )软件工作产品一旦成为基线就不能再更改了。(B )A. 真B. 假35. ( )如果开发小组使用自动化的项目数据库工具,那么就不需要变更控制。(A. 真B. 假36. 下面的( )不是软件配置管理的任务。( C )A. 变更控制B. 配置状态报告C. 统计质量控制D. 版本控制37. 配置状态报告的主要目的是( )。( C)A. 允许项目经理修改项目进度和成本估算B. 评估软件开发人员和组织的绩效C. 确保变更信息传达到受影响的团体D. 选项A和CE. 选项A、B和C第4章 需求工程(习题与参考答案)选择题A)B)1. ( )在需求分析过程中,分析员要从用户那里解决的最重要的问题是明确软件做什么。(A. 真B. 假2. ( )软件需求规格说明书在软件开发中具有重要的作用,它是软件可行性分析的依据。(A. 真B. 假3. 在项目初始阶段,开发任务的目标是()。( A)A. 理解基本问题B. 确定所需的解决方案C. 确定需要解决方案的人员D. 以上选项都不是E. 选项A、B和C4. 下面的( )将造成需求获取困难的问题。( E)A. 预算( budgeting )B. 范围( scope )C. 理解( understanding )D. 挥发性( volatility )E. 选项B、C和D5. 需求分析的结果是产生定义下面( )问题域的分析模型。( D )A. 信息B. 功能C. 性能D. 以上所有选项6. ( )目前存在一个很普遍的现象,即不同的客户提出的需求是相互矛盾的,但每个人都争辩自己是正确的。( A)A. 真B. 假7. ( )利益相关者( stakeholders )是将来购买所开发软件系统的人。( B )A. 真B. 假8. 需求规格说明描述了( )。( A)A. 计算机系统的功能、性能及其约束B. 每个指定系统的实现C. 软件体系结构的元素D. 系统仿真所需要的时间9. 组织需求评审的最好方法是( )。( D)A. 检查系统模型的错误B. 让客户检查需求C. 将需求发放给设计团队去征求意见D. 使用问题列表检查每一个需求10. 使用跟踪表有助于( )。( C)A. 在后续的检查运行错误时调试程序B. 确定算法执行的性能C. 识别、控制和跟踪需求的变化D. 以上选项都不是11. ( )需求工程师的任务是将所有利益相关者的信息进行分类以便允许决策者选择一个相互一致 的需求集。( B )A. 真B. 假12. 下面的( )不是在项目启动阶段被提出的 “与环境无关 ”的问题。( B)A. 成功的解决方案将带来什么样的经济收益?B. 谁反对该项目?C. 谁将为该项目付款?D. 谁将使用该解决方案?B)13. ( )开发人员与客户创建用例以帮助软件团队理解有多少类型的最终用户将使用这些功能。A. 真B. 假14. 在各种不同的软件需求中,( )描述了用户使用产品必须要完成的任务,可以在用例模型或方 案脚本中予以说明,( )是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。(B, C)A. 业务需求B. 功能需求C. 非功能需求D. 用户需求15. 需求导出后产生的工作制品将依赖于( )而不同。( B)A. 预算多少B. 将要构建的产品规模C. 正在使用的软件过程D. 利益相关者的需要16. ( )用例参与者总是人员而不是系统设备。(B)A. 真B. 假17. ( )在需求确认过程中需求模型被评审以保证其技术可行性。(B)A. 真B. 假18. 在需求开发过程中,软件工程师应与客户合作共同定义()。( E)A. 客户可见的使用场景B. 重要的软件特性C. 系统的输入与输出D. 选项A和BE. 选项A、B和C第 5章 面向对象基础(习题与参考答案)选择题1. ( )模型是对现实的简化,建模是为了更好地理解所开发的系统。(A. 真B)B. 假2. ( )UML 语言支持面向对象的主要概念,并与具体的开发过程相关。(A. 真B. 假3. 类的结构是( )。( E)A. 由代码来表示B. 由属性和关系来表示C. 由操作来表示D. 由对象的交互来表示E. 选项B和C4. 类的行为是( )。( A)A. 由一组操作决定B. 由类的属性决定C. 对类的每一个对象唯一的D. 由父类决定E. 选项A和B5. ( )是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的, 外界只能通过有限的接口与对象发生联系。(C)A. 多态性B. 继承C. 封装D. 消息6. ( )意味着一个操作在不同的类中可以有不同的实现方式。( A)A. 多态性B. 多继承C. 消息D. 封装7. UML 是( )的缩写。( B)A. Unified Module LanguageB. Unified Modeling LanguageC. Universal Module LevelingD. Universal Module Language8. 顺序图反映对象之间发送消息的时间顺序,它与( )是同构的。( C)A. 用例图B. 类图C. 协作图D. 状态图9. ( )定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体 实现。( A )A. 用例图B. 类图C. 活动图D. 状态图10. 状态图包括( )。( E )A. 类的状态B. 状态之间的转换C. 类执行的动作D. 触发类的动作的事件E. 所有以上选项第 6章 面向对象分析(习题与参考答案)选择题1. ( )面向对象分析的核心在于建立一个描述软件系统的模型。( B )A. 真B. 假2. 关于面向对象分析,下列的( )是正确的。( A)A. 它是系统需求建模的方法B. 它是分析系统设计的技术C. 可以从分析直接编写代码D. 在软件生命周期中,它出现在面向对象设计之后3. 下列的( )不是分析建模的目的。( C)A. 定义可验证的软件需求B. 描述客户需求C. 开发一个简单的问题解决方案D. 建立软件设计的基础4. 下列的( )不属于面向对象分析模型。( C )A. 用例图B. 类图C. 实体关系图D. 顺序图5. ( )分析类用于描述系统中概念层次的对象。( A)A. 真B. 假6. 在分析类中,( )用于描述一个用例所具有的事件流控制行为。(D)A. 实体类B. 界面类C. 接口类D. 控制类7. ( )在基于用例的面向对象分析过程中,定义交互行为的关键在于通过描述分析类实例之间的 消息传递将用例的职责分配到分析类中。(A)A. 真B. 假8. 开发人员使用( )可以将用例的行为分配到所识别的分析类中。(B)A. 用例图B. 顺序图C. 类图D. 状态图9. 分析模型一般采用( )方式进行验证。( C )A. 总结B. 阶段性报告C. 需求分析评审D. 转化成设计模型10. ( )需求评审人员主要由开发人员组成,一般不包括用户。(B )A. 真B. 假第 7章 软件体系结构设计(习题与参考答案)选择题1. ( )系统体系结构的最佳表示形式是一个可执行的软件原型。(B)A. 真B. 假2. ()软件体系结构描述是不同项目相关人员之间进行沟通的使能器。A. 真B. 假(A )3. ()良好的分层体系结构有利于系统的扩展与维护。(A )A. 真B. 假4. ()消除两个包之间出现的循环依赖在技术上是不可行的。(A. 真B. 假B)5. ()设计模式是从大量成功实践中总结出来且被广泛公认的实践和知识。(A. 真B. 假6. 程序编译器的体系结构适合使用()。( A )A. 仓库体系结构B. 模型视图控制器结构C. 客户机服务器结构D. 以上选项都不是7. 网站系统是一个典型的( )。( C )A. 仓库体系结构B. 胖客户机服务器结构C. 瘦客户机服务器结构)实现与实体对象相关的业务逻辑。(D)D. 以上选项都不是8. 在分层体系结构中,A. 表示层B. 持久层C. 实体层D. 控制层9. ( )可以帮助人们简单方便地复用已经成功的设计或体系结构。(B)A. 商业组件B. 设计模式C. 遗留系统D. 需求规格说明10. ( )用于封装具体的平台,从而使应用程序可以在不同的平台上运行。(A)A. 抽象工厂模式B. 外观模式C. 观察者模式D. 以上选项都不是第 8章 面向对象设计(习题与参考答案)选择题1. ( )面向对象设计是在分析模型的基础上,运用面向对象技术生成软件实现环境下的设计模型。 (A)A. 真B. 假2. ( )系统设计的主要任务是细化分析模型,最终形成系统的设计模型。( B )A. 真B. 假3. ( )关系数据库可以完全支持面向对象的概念,面向对象设计中的类可以直接对应到关系数据 库中的表。( B )A. 真B. 假4. ( )用户界面设计对于一个系统的成功是至关重要的,一个设计得很差的用户界面可能导致用 户拒绝使用该系统。(A )A. 真B. 假5. 内聚表示一个模块( )的程度,耦合表示一个模块( )的程度。 (B,D)A. 可以被更加细化B. 仅关注在一件事情上C. 能够适时地完成其功能D. 联接其他模块和外部世界6. 良好设计的特征是( )。( E)A. 模块之间呈现高耦合B. 实现分析模型中的所有需求C. 包括所有组件的测试用例D. 提供软件的完整描述E. 选项B和DF. 选项B、C和D7. ( )是选择合适的解决方案策略,并将系统划分成若干子系统,从而建立整个系统的体系结构; ( )细化原有的分析对象,确定一些新的对象、对每一个子系统接口和类进行准确 详细的说明。( A, B )A. 系统设计B. 对象设计C. 数据库设计D. 用户界面设计8. 下面的( )界面设计原则不允许用户保持对计算机交互的控制。(D )A. 允许交互中断B. 允许交互操作取消C. 对临时用户隐藏技术内部信息D. 只提供一种规定的方法完成任务第9章 软件实现(习题与参考答案)选择题1. ( )在程序设计中使用括号以改善表达式的清晰性。(A )A. 真B. 假2. ( )在程序设计中应尽可能对程序代码进行优化。(B)A. 真B. 假3. ( )不要修补不好的程序,要重新写。( A )A. 真B. 假4. ( )程序中的注释是可有可无的。( B)A. 真B. 假5. ( )对递归定义的数据结构不要使用递归过程。(B )A. 真B. 假6. 为了使程序能在不同的计算机上运行,程序应当具有较好的()。( A)A. 可移植性B. 可重用性C. 可维护性D. 可适用性7. 对于开发面向数据库应用的软件,应当选择的程序设计语言是()。( C )A. CB. PASCALC. SQLD. JAVA8. 下面对提高程序编码效率没有影响的是()。( D)A. 选择良好的设计方法B. 选择良好的算法C. 选择良好的数据结构)。( B)D. 变量名的使用9. 为了保证软件的质量,使其具有较好的可维护性,关键在于(A. 选择合适的程序设计语言B. 选择好的程序设计风格C. 具有好的数据结构D. 选择好的运行环境10. 下面的( )不是良好编码的原则。( C )A. 在开始编码之前建立单元测试B. 建立一种有助于理解的直观布局C. 保持变量名简短以便代码紧凑D. 确保注释与代码完全一致第10 章 软件测试(习题与参考答案)选择题1. ( )在软件开发的过程中,若能推迟暴露其中的错误,则为修复和改正错误所花费的代价就会 降低。( B )A. 真B. 假2. ( )好的测试是用少量测试用例运行程序,发现被测程序尽可能多的错误。(A )A. 真B. 假3. ( )好的测试用例应能证明软件是正确的。( B)A. 真B. 假4. ( )白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求。(A )A. 真B. 假5. ( )等价类划分方法将所有可能的输入数据划分成若干部分,然后从每一部分中选取少数有代 表性的数据作为测试用例。( A )A. 真B. 假6. 使用独立测试团队的最好理由是( )。( C)A. 软件开发人员不需要做任何测试B. 测试人员在测试开始之前不参与项目C. 测试团队将更彻底地测试软件D. 开发人员与测试人员之间的争论会减少7. 类的行为应该基于( )进行测试。( D)A. 数据流图B. 用例图C. 对象图D. 状态图8. 下面的( )说法是正确的。( C, D, E)A. 恢复测试是以各种方式迫使软件失效从而检测软件是否能够继续执行的一种系统测试。B. 安全测试是检测系统中的保护机制是否可以保护系统免受非正常的攻击。C. 压力测试是检测在极限环境中使用系统时施加在用户上的压力。D. 功能测试是根据软件需求规格说明和测试需求列表,验证产品的功能实现是否符合需求规格。E. 安装测试是保证应用程序能够被成功地安装。第 11章 软件演化(习题与参考答案)选择题1. ( )只有质量差的软件产品才需要维护。(B)A. 真B. 假2. ( )遗留系统是许多年以前开发的且已经没有商业价值的计算机系统。(A. 真B. 假3. ( )更换遗留系统是有业务风险的。( A)A. 真B. 假B)4. ( )软件的维护成本通常比开发成本低。(A. 真B. 假B)5. 逆向工程( Reverse Engineering )通常用在软件生命周期的( )阶段,它是从源代码或目标代 码中提取设计信息。( D)A. 需求分析B. 软件设计C. 软件测试D. 软件维护
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 演讲稿件


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!