




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
选择题若没有选项可选 则为判断题 其中A为正确 B为错误 第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 以上所有选项 1 软件与其他工程学科所产生的制品有什么根本区别 1 软件是人类思维和智能所延伸的产物 其数据 状态和逻辑关系的组合以及人类思 维的复杂性和不确定性导致它本身具有极高的复杂性 2 软件具有不可见性 它是抽象的 形式化和逻辑化的 3 软件具有可变性 有用的软件需要不断地修改和扩展 但是频繁的修改可能导致软 件的退化 4 软件的开发在很大程度上依然是手工作坊式的 难以实现工厂化的生产 2 软件工程包括哪些基本要素 请简要说明这些要素及其作用 软件工程包括过程 方法和工具三个要素 软件工程过程定义了技术方法的采用 工程产品 包括模型 文档 数据 报 告 表格等 的产生 里程碑的建立 质量的保证和变更的管理 从而将人员 技术 组织与管理有机地结合在一起 实现在规定的时间和预算内开发高质量软 件的目标 软件工程方法为软件开发提供了 如何做 的技术 通常包括某种语言或图形 的模型表示方法 良好的设计实践以及质量保证标准等 软件工程工具为软件工程方法提供了自动的或半自动的软件支撑环境 辅助软 件开发任务的完成 现有的软件工具覆盖了从需求分析 系统建模 代码生成 程序调试和软件测试等多个方面 形成了集成化的软件工程开发环境CASE 3 软件工程是以系统的 可控的 有效的方式产生高质量的软件 请说明你对 高质量软 件 含义的理解 软件质量是软件产品与明确的和隐含的需求相一致的程度 它通常由一系列的质量特 性来进行描述 包括正确性 可靠性 有效性 可用性 复用性 可维护性 可移植性等 例如 除了要求软件正确运行之外 人们可能还希望软件运行的响应时间符合要求 软件 使用方便快捷 程序代码易于理解等 而 程序代码易于理解 往往是一种用户没有明确提 出的需求 但却是影响软件演化的重要因素 4 有人认为 软件工程过于耗费时间 并且妨碍开发人员的编程效率 你是否认同这种观 点 请阐述理由 这一观点是不正确的 软件开发远不只是编程 管理不当导致的混乱 工作重复 交流不畅等才是大 多软件项目效率低下的主要原因 虽然直接编程在开发前期看来效率高 但是不 完整的 不清晰的或错误的需求和设计将导致在开发后期反复地修改程序 反而 降低了整个开发效率 其质量也无法保证 甚至导致软件开发最终失败的结果 软件工程是帮助人们在有限的时间 金钱预算和人力 物力资源的约束下开发 出质量尽量高的软件的一系列理论和工具 虽然它在编程之外的工作上花费了大 量时间 但所耗费的时间与精力并不像其表面上所看起来的那样冗余与低效 而 是从总体上做好整个体系的设计与把握 全方位地规划开发过程 对节省成本 提高效率 保证最终产品质量起到了事半功倍的作用 第2章 软件过程 1 是软件生存期中的一系列相关软件工程活动的集合 它由软件规格说明 软件设 计与开发 软件确认 软件改进等活动组成 A A 软件过程B 软件工具 C 软件产品 D 软件工程 2 软件过程的基本活动是 A A 分析 设计 实现 测试 演化B 沟通 计划 建模 构造 部署 C 计划 分析 设计 实现 调试D 沟通 风险管理 度量 产品化 评审 3 软件需求规格说明书在软件开发过程中具有重要的作用 它是软件可行性分析的 依据 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 确认阶段 1 请简要说明软件过程的概念和基本元素 软件过程是软件工程人员为了获得软件产品在软件工具支持下实施的一系列软件工程 活动 它应该明确定义以下元素 过程中所执行的活动及其顺序关系 每一个活动的内容和步骤 团队人员的工作和职责 2 请描述快速原型过程模型的各个阶段 答案要点 快速原型方法的目的是解决软件需求不明确给开发带来风险的问题 其关键在于尽可能 快速 地建造原型 通过用户对原型的评价最终确定系统的需求 快速原型过程模型包括以下阶段 原型需求分析 分析和提炼所收集到的客户需求 原型开发 基于初步的需求快速建造一个可以运行的软件原型 实现客户或未来 的用户与系统的交互 原型评价 由用户或客户对该原型进行评价 需要的话再进一步细化待开发软件 的需求 并继续调整原型直至需求确定下来为止 3 对于下列每一个过程模型 分别列举一个可以适用的具体软件项目 并说明在开发中如 何应用该模型 1 瀑布模型 2 快速原型模型 3 增量模型 4 形式化方法模型 5 基 于组件的开发模型 1 瀑布模型项目举例 某项目需要在一种新型机器上 为一种已知语言开 发一个普通的编译器 选用分析 由于该项目的语言是已知的 需求是明确的和稳定的 整个系统属于中小 规模 因此适合采用瀑布模型进行软件开发 2 快速原型模型项目举例 某公司需要给火车站开发一个交互式火车车次查询 系统 这是火车站首次使用该系统 选用分析 本项目的主要问题在于用户需要方面 该系统与最终用户的交互是十分关 键的 但是在项目初期用户的需求基本上是不知道的 因此适合采用快速原型方法来 确定用户需求 在需求确定的基础上再开发最终系统 3 增量模型项目举例 某公司开发一个通用CAD软件产品 产品需求是逐 步完善的 某些需求在一定范围内是明确的 某些需求需要进一步细化 但是迫于市 场竞争的压力产品需要尽快上市 选用分析 通用CAD软件产品具有一定的成熟度 总体需求和软件系统结构是可以 确定的 但是实现该产品所有功能需要比较长的开发周期 为了尽快上市可以采用增量模型实 行多版本的发布策略 既可以很快占领市场又可以为后续版本的需求定义奠定基础 4 形式化方法模型项目举例 某公司开发一个汽车防抱死刹车控制系统 选用分析 由于该系统对安全性和可靠性要求极高 需要在系统运行之前进行相关性 能的检验 因此适合采用形式化方法开发该系统 5 基于组件的开发模型项目举例 某公司开发企业管理ERP系统 包括销售 库存 生产 财务 物流 人力资源等部分 在系统实施过程中不同的企业具有一定 的需求差异 选用分析 企业ERP系统具有组件化的结构 在不同企业实施时应该尽量重用已有的 组件 因此适合采用基于组件的开发模型开发该系统 在直接应用或者修改使用的基 础上 最终进行组件开发和系统集成 4 在螺旋模型中 风险分析的作用是什么 在螺旋模型中 软件开发是在风险等级的指导下进行的 首先确定该阶段的目标 完成 这些目标的选择方案及其约束条件 其次从风险角度分析方案的开发策略 努力排除各种 潜在的风险 在需求不适当的情况下可能需要建造原型系统 如果某些风险不能排除 该 方案可能立即终止 否则继续启动下一步的软件开发和验证工作 并再次通过风险分析规 定过程遵循的策略 最后 评价该阶段的结果 并规划下一个迭代 从上述过程中可以看出 风险分析的作用是通过识别项目中的高风险问题 使开发人员 制定适当的开发策略消除这些风险 5 某大学准备开发一个新的学生注册选课系统 以替换一个现有的系统 请设计一个适用 于该系统开发的过程模型 并进一步描述该模型 假设原有的学生注册课程系统是由学生手工提交书面选课单 教师手工提交成绩单 教 务管理人员在客户端录入学生选课结果和课程成绩 而在新的选课系统中 所有用户在自 己的计算机上通过Internet访问和操作该系统 该软件系统需要更新服务器和数据库等系统 并扩充一些新功能和提高系统性能 从该系统的具体情况来看 系统的需求是比较容易明确的 整个系统的结构需要重新设 计 但是原有的遗留系统中有些部分是可以重用的 因此我们可以采用组件模型实施软件 开发 系统需求分析 由于该系统是现有系统的扩展 因此首先可以经过一个简单的需 求分析阶 第3章 软件项目管理 选择题 1 软件项目管理的 4P 是 C A people performance payoff product B people product performance process C people product process project D people process payoff product 2 项目管理在现代软件开发中是不太重要的 因为大多数项目能够及时完成并成功 交付 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和C 10 在软件开发过程中避免受挫的最佳方法之一是 A A 给予团队成员对于过程和技术决策的更多控制权 B 给予团队成员对于过程和技术决策的更少控制权 C 向团队成员隐瞒坏消息直到事情有所改善 D 根据生产效率奖励团队成员 11 下面的 软件特性不是引起项目协调困难的一个因素 B A 互操作性B 性能C 规模D 不确定性 12 在进行项目范围活动时 问题分解的主要范围是 E A 客户工作流程B 需要发布的功能 C 用于发布功能的过程 D 软件过程模型 E 选项B和C 13 随着项目计划的不断形成 产品分解和过程分解经常是同时发生的 A 14 为了将项目失败的风险减少到最小 项目经理需要采取 D A 将项目团队规模增加一倍B 要求更大的预算C 顺利地开始D 跟踪过 程 E 选项B和C 15 估算不可靠的唯一原因是估算人员缺乏经验 B 16 由于软件项目估算不完全可靠 所以项目开始后可以忽略这些估算 B 17 软件项目规划的目的是 C A 使客户相信项目是可行的B 使用历史项目数据 C 使项目管理者合理地估算成本和进度D 在投标项目之前确定大概的利润 边界 18 软件项目所需的人数应该 D A 在估计开发需要的努力之后决定B 由项目预算数量决定 C 从评价系统复杂性来决定D 以上所有选项 19 估计待开发软件产品的规模必须基于像代码行等直接度量单位 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 25 软件项目延迟是不可避免的 而且无法解释其原因 B 26 将开发团队人数增加一倍可以保证项目完成时间减少一半 B 27 任务集是 的集合 A A 工作任务 里程碑 工作产品B 任务分配 成本估算 度量单位 C 里程碑 可交付物 度量单位D 责任 里程碑 文档 28 主动的风险管理有时被描述为救火 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 35 如果开发小组使用自动化的项目数据库工具 那么就不需要变更控制 B 36 下面的 不是软件配置管理的任务 C A 变更控制B 配置状态报告C 统计质量控制D 版本控制 37 配置状态报告的主要目的是 C A 允许项目经理修改项目进度和成本估算B 评估软件开发人员和组织的绩 效 C 确保变更信息传达到受影响的团体D 选项A和C E 选项A B和C 1 简要说明软件项目管理的过程 软件项目管理是为了使软件项目能够按照预定的成本 进度 质量顺利完成 而对成本 人员 进度 质量 风险等进行分析和管理的活动 软件项目管理的主要过程如下 1 项目启动与建议 在项目启动阶段 定义项目的商业需求 确定项目的目标和实 现方法 大致估算项目的成本和进度 2 项目规划与进度 在项目规划阶段 明确项目的各种活动 里程碑和可交付的成 果 制定软件开发计划 3 项目组织与执行 根据项目任务的要求选择合适的开发人员 组建项目团队和协 调项目资源 按照计划执行和推进整个项目 4 项目监督与评价 在项目执行过程中 密切关注项目的进展情况 综合评价整个 项目的实际进展 及时发现和报告实际情况与计划的偏差 在必要的情况下采取 纠正行动 同时控制和管理项目的变更 5 项目交付与总结 完成正式的项目交付工作 客户对所交付的软件产品进行验收 项目团队培训用户并移交文档 最后分析和总结项目的经验教训 2 某个软件项目需要30名开发人员 现有两种人员组织方案 1 将30人划为一个开发组统一管理 2 按每个小组6人的方式 将30人分为5个小组 请分析比较上述两种方案的优缺点 由于软件规模的增大 需要多人组成开发小组共同参与一个项目的开发 但是当多个人 共同承担软件开发项目中的某一任务时 人与人之间必须通过交流来解决各自承担任务之 间的接口问题 这就产生了所谓沟通复杂性的问题 沟通需要花费时间和代价 也会引起 软件错误的增加 降低开发效率 1 优点 30人集中在同一个开发小组 人员任务的分配和调度相对容易 缺点 沟通复杂性高 从而导致人员之间配合混乱 开发效率低 2 优点 30人划分成5个小组 降低了沟通复杂性 提高开发效率 缺点 小组之间的协调配合难度大 3 在选择人员进行软件项目开发时 应该考虑哪些因素 参考答案 参考因素说明 应用领域的经验为了成功地开发系统 开发人员必须了 解相关的应用领域 平台的经验在编写底层程序时该因素很重要 编程语言的经验该因素对于短周期的项目是很重要的 教育背景该因素可以显示候选人应该掌握的基 础知识和学习能力 由于开发人员的经 验可以在项目实践中获得 该因素并非 是关键的 沟通能力由于项目成员需要与其他人员 管理者 和客户进行口头和书面交流 该因素是 十分重要的 适应性适应性可以通过候选人的各种经历进 行判断 该因素反映出一个的学习能 力 工作态度项目成员应该有积极的工作态度 乐于 学习新技术 该因素很重要但是难以评 估 个性候选人必须与团队成员关系融洽 尚没 有软件工程方面的特定个性类型 该因 素很重要但是难以评估 第4章 需求工程 1 在需求分析过程中 分析员要从用户那里解决的最重要的问题是明确软件做什么 A 2 软件需求规格说明书在软件开发中具有重要的作用 它是软件可行性分析的依据 B 3 在项目初始阶段 开发任务的目标是 A A 理解基本问题B 确定所需的解决方案C 确定需要解决方案的人员 D 以上选项都不是E 选项A B和C 4 下面的 将造成需求获取困难的问题 E A 预算 budgeting B 范围 scope C 理解 understanding D 挥发性 volatility E 选项B C和D 5 需求分析的结果是产生定义下面 问题域的分析模型 D A 信息B 功能C 性能D 以上所有选项 6 目前存在一个很普遍的现象 即不同的客户提出的需求是相互矛盾的 但每个人 都争辩自己是正确的 A 7 利益相关者 stakeholders 是将来购买所开发软件系统的人 B 8 需求规格说明描述了 A A 计算机系统的功能 性能及其约束B 每个指定系统的实现 C 软件体系结构的元素D 系统仿真所需要的时间 9 组织需求评审的最好方法是 D A 检查系统模型的错误B 让客户检查需求 C 将需求发放给设计团队去征求意见D 使用问题列表检查每一个需求 10 使用跟踪表有助于 C A 在后续的检查运行错误时调试程序B 确定算法执行的性能 C 识别 控制和跟踪需求的变化D 以上选项都不是 11 需求工程师的任务是将所有利益相关者的信息进行分类以便允许决策者选择一个 相互一致的需求集 B 12 下面的 不是在项目启动阶段被提出的 与环境无关 的问题 B A 成功的解决方案将带来什么样的经济收益 B 谁反对该项目 C 谁将为该项目付款 D 谁将使用该解决方案 13 开发人员与客户创建用例以帮助软件团队理解有多少类型的最终用户将使用这些 功能 B 14 在各种不同的软件需求中 描述了用户使用产品必须要完成的任务 可以在用例 模型或方案脚本中予以说明 是从各个角度对系统的约束和限制 反映了应用 对软件系统质量和特性的额外要求 B C A 业务需求B 功能需求C 非功能需求D 用户需求 15 需求导出后产生的工作制品将依赖于 而不同 B A 预算多少B 将要构建的产品规模C 正在使用的软件过程D 利益相关 者的需要 16 用例参与者总是人员而不是系统设备 B 17 在需求确认过程中需求模型被评审以保证其技术可行性 B 18 在需求开发过程中 软件工程师应与客户合作共同定义 E A 客户可见的使用场景B 重要的软件特性 C 系统的输入与输出D 选项A和BE 选项A B和C 1 请举例说明使用自然语言描述用户需求和系统需求的问题 用自然语言描述比较详细的需求时经常暴露以下问题 从而容易引起误解 由于自然语言存在二义性 因此人们对同一个术语经常存在语义理解上的偏 差 用自然语言描述需求存在比较大的随意性 人们对同一个事物有完全不同的方 式进行描述 自然语言描述需求缺乏模块化 因此很难发现所描述需求之间的相关性 2 请指出下面需求描述存在的问题 并进行适当的修改 1 系统用户界面友好 2 系统运行时应该占用尽量少的内 存空间 3 即使在系统崩溃的情况下 用户数据也不能受到破坏 4 ATM系统允许用户查询自己银行帐户的现存余额 5 ATM系统应该快速响应用户的请求 6 ATM系统需要检验用户存取的合 法性 7 所有命令的响应时间小于1秒 BUILD命令的响应时间小于5秒 8 软件应该用JAVA语言实现 答案要点 1 问题 友好 是不可验证的 改正 具有一年计算机使用经验的用户经过3小时的培训就可以学会使用该系统 2 问题 尽量少 存在歧义 改正 系统运行时所占用的最大内存空间是256MB 3 问题 不能受到破坏 是不可验证的 改正 如果系统发生崩溃 那么该系统重新正常启动后 可以将用户数据恢复到 最后未完成操作执行前的状态 4 该描述是正确的 5 问题 快速 是不可验证的 改正 ATM系统将在1秒钟之内响应用户的请 求 6 问题 如何验证合法性 是存在歧义的 改正 ATM系统将通过用户名和口令验证其存取的合法性 7 问题 所有命令中必然会包括BUILD命令 因此这两个需求描述是矛盾的 改正 去掉关于BUILD命令的需求描述 8 问题 该描述不是功能需求或非功能需求 应该是对设计实现的一个约束条件 3 需求工程包括哪些基本活动 每一项活动的主要任务是什么 需求工程分为需求开发和需求管理两个部分 而需求开发又可进一步分为需求获取 需 求分析 规格说明和需求验证四个阶段 这些基本活动的主要任务包括 1 需求获取 采集 识别和提取用户的需求 对问题和需求形成文档化的描述 使各种人员达成一致的理解和认可 2 需求分析 分析和综合所采集的信息 建立系统的详细逻辑模型 3 需求规格说明 编写软件需求规格说明书 明确 完整和准确地描述已确定的 需求 4 需求验证 评审软件需求规格说明 以保证其正确性 一致性 完备性 准确 性和清晰性 5 需求管理 定义需求基线 在整个项目过程中跟踪需求状态及其变更情况 4 请比较本章介绍的几种主要需求获取技术 说明每一种技术的优缺点和适用场合 1 用户面谈优点 可以与项目相关人员一对一地进行交谈和讨论 具有私密性 使被访者可以直率地和无隐瞒地回答问题 便于探查一些附 加信息或反馈信息 有利于与客户建立良好的关系 缺点 面谈是一种非常费时和高成本的方式 难以解决不同的项目干系人 之间的冲突和矛盾 在地理位置相距较远的情况下很难实施 适用场合 适用于在初步理解整体概念的情况下讨论和交流一些细节问题 2 需求专题讨论会 优点 有助于了解系统需求 有利于共享系统开发的成果 给用户 一种主人的感觉 可以与足够多的项目干系人进行讨论和交流 且节省时间 支持头 脑风暴式的讨论 缺点 需要占用参与人员比较长的整块时间 主持人的能力和会议的准备 工作必须是非常好的 否则结果很糟 适用场合 适用于讨论和审查软件系统方案和模型 解决不同项目干系人之间的冲 突和矛盾 3 观察用户工作流程 优点 通过直接观察的方式提取用户或系统的特性 有助于理解难以用语 言描述清楚的复杂业务 缺点 观察可能使用户紧张 从而表现得与往常不同 适用场合 适用于理解难以用语言描述清楚复杂业务过程 4 原型化方法 优点 通过一个可以运行的软件原型直观地理解和澄清问题 便于使开发人员与用 户达成共识 缺点 用户容易产生误解 认为软件系统可以在原型的基础上很容易地构建 但实 际上该原型的内部结构和程序质量比较差 适用场合 适用于用户需求不明确或描述不清楚的情况 6 在某些紧急情况下 软件可能在需求变更请求被批准之前就进行修改 请给出一个修改 过程模型 确保需求文档和系统实现不会产生不一致 一般来说 应该尽量避免在需求变更请求被批准之前就直接修改程序的情况 这很容易 导致变更失控而且需求描述与系统实现不一致 一旦出现这种情况 必须在系统变更完成 后重新执行需求跟踪控制 制定评审计划初始 需求文档 准备工作需求跟踪修改跟踪基线 需求文档 第6章 面向对象基础 1 模型是对现实的简化 建模是为了更好地理解所开发的系统 A 2 UML语言支持面向对象的主要概念 并与具体的开发过程相关 B 3 类的结构是 E A 由代码来表示B 由属性和关系来表示C 由操作来表示D 由对象的 交互来表示 E 选项B和C 4 类的行为是 A A 由一组操作决定B 由类的属性决定C 对类的每一个对象唯一的D 由 父类决定 E 选项A和B 5 是把对象的属性和操作结合在一起 构成一个独立的对象 其内部信息对外界是 隐蔽的 外界只能通过有限的接口与对象发生联系 C A 多态性B 继承C 封装D 消息 6 意味着一个操作在不同的类中可以有不同的实现方式 A A 多态性B 多继承C 消息D 封装 7 UML是 的缩写 B A Unified Module LanguageB Unified Modeling Language C Universal Module LevelingD Universal Module Language 8 顺序图反映对象之间发送消息的时间顺序 它与 是同构的 C A 用例图B 类图C 协作图D 状态图 9 定义了系统的功能需求 它是从系统的外部看系统功能 并不描述系统内部对功能的具 体实现 A A 用例图B 类图C 活动图D 状态图 10 状态图包括 E A 类的状态 B 状态之间的转换 C 类执行的动作 D 触发类的动作的事件 E 所有以 上选项 1 请解释下列术语 并举例说明之 对象 类 属性 操作 关联 泛化 聚合 依赖 1 对象 Object 对象是系统中用来描述客观事物的一个实体 它是构成系统 的一个基本单位 由一组属性和对这组属性进行操作的一组服务组成 举例 中国就是一个对象 2 类 Class 类是具有相同属性和服务的一组对象的集合 它为属于该类 的全部对象提供了统一的抽象描述 包括属性和服务两个主要部分 举例 学生 人 树木等都是类 3 属性 Attribute 属性是用来描述对象静态特征的一个数据项 举例 学生具有姓名 性别 年龄等属性 4 操作 Operation 操作是类的实例被要求执行的服务 具有名字和参数列表 举例 学生具有入学注册 选课等操作 5 关联 Association 关联是一种结构关系 说明一个事物的对象与另一个事物的对象之间的联系 举例 学生与课程之间的关系就是关联 一个学生可以选修多门课程 一门课程 也可以被多个学生选修 6 泛化 Generalization 泛化是一种一般事物 父类 和特殊事物 子类 之 间的关系 举例 学生与研究生之间是泛化关系 研究生是一类特殊的学生 7 聚合 Aggregation 聚合是一种特殊类型的关联 描述了整体和部分间的结 构关系 举例 学校和系之间存在聚合关系 系是学校的一个组成部分 8 依赖 Dependency 依赖是一种使用关系 描述了一个事物发生变化会影响到另一个使用它的事物 举例 课程表使用课程 二者之间是依赖关系 2 请简要说明类图和顺序图的组成 在系统中 类图由类 类的属性和操作以及类之间的各种联系所组成 时序图表示对象之间的交互顺序 它由角色 对象 生命线和消息组成 其中角色代表 与系统交互的外部事物 3 在软件开发过程中为什么需要建立模型 答案要点 在软件开发过程中 建立软件模型具有十分重要的作用 主要体现在以下方面 有助于问题的简化 通过抽象降低复杂性 有助于和其他开发小组成员 各种用户以及系统相关者进行交流 有助于维护人员了解软件设计的思路和细节 为以后的维护和升级提供了文档 4 UML关系包括关联 聚合 泛化 实现 依赖等5种类型 请指出下面关系的类型 并 采用UML符号表示这些关系 1 在学校中 一个学生可以选修多门课程 一门课程可以由多个学生选修 那么 学生和课程之间是什么关系 2 类A的一个操作调用类B的一个操作 且这两个类之间不存在其他关系 那么类 A和类B之间是什么关系 3 接口及其实现类或构件之间是什么关系 4 一个汽车有四个轮子 那么类 汽车 和 轮子 之间是什么关系 5 学生与研究生之间是什么关系 参考答案 1 关联 2 依赖 3 实现 4 聚合 5 泛化 第7章 面向对象分析 1 面向对象分析的核心在于建立一个描述软件系统的模型 B 2 关于面向对象分析 下列的 是正确的 A A 它是系统需求建模的方法B 它是分析系统设计的技术 C 可以从分析直接编写代码D 在软件生命周期中 它出现在面向对象设计之 后 3 下列的 不是分析建模的目的 C A 定义可验证的软件需求B 描述客户需求 C 开发一个简单的问题解决方案D 建立软件设计的基础 4 下列的 不属于面向对象分析模型 C A 用例图B 类图C 实体关系图D 顺序图 5 分析类用于描述系统中概念层次的对象 A 6 在分析类中 用于描述一个用例所具有的事件流控制行为 D A 实体类B 界面类C 接口类D 控制类 7 在基于用例的面向对象分析过程中 定义交互行为的关键在于通过描述分析类实 例之间的消息传递将用例的职责分配到分析类中 A 8 开发人员使用 可以将用例的行为分配到所识别的分析类中 B A 用例图B 顺序图C 类图D 状态图 9 分析模型一般采用 方式进行验证 C A 总结B 阶段性报告C 需求分析评审D 转化成设计模型 10 需求评审人员主要由开发人员组成 一般不包括用户 B 1 面向对象分析包括哪些活动 应该建立哪些类型的模型 面向对象分析的主要活动包括理解用例模型 识别分析类 定义交互行为 建立分析类 图以及评审分析模型等 面向对象分析应该建立功能模型 分析对象模型和动态模型等三种类型 其中功能模型 由用例和场景表示 分析对象模型由类图和对象图表示 动态模型由状态图和顺序图表示 2 什么是实体类 边界类和控制类 为什么将分析类划分成这三种类型 实体类用于描述必须存贮的信息及其相关行为 边界类用于描述外部参与者与系统之间 的交互 控制类用于描述一个用例所具有的事件流控制行为 理解用例模型 识别分析类 定义交互行为建立分析类图评审分析模型 将分析类划分成这三种类型的好处在于 所产生的类更小更专门化 这种划分将易变的外部界面与系统基本功能进行了屏蔽 使分析模型更易于变 化 第8 1 章 软件体系结构设计 1 系统体系结构的最佳表示形式是一个可执行的软件原型 B 2 软件体系结构描述是不同项目相关人员之间进行沟通的使能器 A 3 良好的分层体系结构有利于系统的扩展与维护 A 4 消除两个包之间出现的循环依赖在技术上是不可行的 B 5 设计模式是从大量成功实践中总结出来且被广泛公认的实践和知识 A 6 程序编译器的体系结构适合使用 A A 仓库体系结构B 模型 视图 控制器结构C 客户机 服务器结构D 以 上选项都不是 7 网站系统是一个典型的 C A 仓库体系结构B 胖客户机 服务器结构 C 瘦客户机 服务器结构D 以上选项都不是 8 在分层体系结构中 实现与实体对象相关的业务逻辑 D A 表示层B 持久层C 实体层D 控制层 9 可以帮助人们简单方便地复用已经成功的设计或体系结构 B A 商业组件B 设计模式C 遗留系统D 需求规格说明 10 用于封装具体的平台 从而使应用程序可以在不同的平台上运行 A A 抽象工厂模式B 外观模式C 观察者模式D 以上选项都不是 1 良好的软件体系结构设计有什么好处 软件体系结构设计过程的核心在于建立系统的一个基本框架 即识别出系统的主要组件 以及这些组件之间的通信 良好的体系结构设计具有以下主要好处 项目相关人员之间的沟通 软件体系结构是系统的一种高层表示 它可以成为不 同项目相关人员之间沟通的使能器 系统分析 在系统分析过程中确定系统的初步体系结构 将对系统是否满足关键 性需求 如性能 可靠性和可维护性等 产生很大的影响 大规模复用 体系结构可以在具有相似需求的系统之间互用 从而支持大规模的 复用 2 设计体系结构 3 什么是三层体系结构 优缺点 第8章 面向对象设计 1 面向对象设计是在分析模型的基础上 运用面向对象技术生成软件实现环境下的设计模 型 A 2 系统设计的主要任务是细化分析模型 最终形成系统的设计模型 B 3 关系数据库可以完全支持面向对象的概念 面向对象设计中的类可以直接对应到关系数 据库中的表 B 4 用户界面设计对于一个系统的成功是至关重要的 一个设计得很差的用户界面可能导致 用户拒绝使用该系统 A 5 内聚表示一个模块 的程度 耦合表示一个模块 的程度 B D A 可以被更加细化B 仅关注在一件事情上 C 能够适时地完成其功能D 联接其他模 块和外部世界 6 良好设计的特征是 E A 模块之间呈现高耦合B 实现分析模型中的所有需求 C 包括所有组件的测试用例D 提供软件的完整描述E 选项B和DF 选 项B C和D 7 A 是选择合适的解决方案策略 并将系统划分成若干子系统 从而建立整个系统的 体系结构 B 细化原有的分析对象 确定一些新的对象 对每一个子系统接口和类进行准确详 细的说明 A 系统设计B 对象设计C 数据库设计D 用户界面设计 8 下面的 界面设计原则不允许用户保持对计算机交互的控制 D A 允许交互中断B 允许交互操作取消 C 对临时用户隐藏技术内部信息D 只提供一种规定的方法完成任务 1 面向对象设计与面向对象分析的区别是什么 设计包括哪些活动 面向对象分析是重点考虑系统 做什么 的问题 即运用面向对象方法对问题域进行分析 和理解 建立系统的分析模型 面向对象设计重点考虑系统 怎样做 的问题 即在分析模型 的基础上形成实现环境下的设计模型 面向对象设计主要涉及系统设计 对象设计 或详细设计 数据库设计和用户界面设 计等活动 2 在类设计中 为什么建议使用set方法和get方法进行属性设置和读取 目的在于降低类之间的耦合度 5 请举例说明用户界面设计的基本原则 1 用户控制 用户应当感觉系统的运行在自己的控制之下 在图形界面或基于Web的 界面中 用户指导程序的每一步执行 即使在程序进行某些处理或用户等待输出结 果时 用户同样保持对控制的敏感度 举例 当程序进行某些需要占用较长时间的处理时 需要为用户提供及时的反馈信 息 诸如一个沙漏 一个等待的指示器或其他类似的东西 2 界面一致性 一致性要求用户界面遵循标准和常规的方式 让用户处在一个熟悉的 和可预见的环境之中 这主要体现在命名 编码 缩写 布局以及菜单 按钮和键 盘功能在内的控制使用等 举例 一个运行在Windows平台上的三维几何造型系统应当采用Windows图形窗口 的 外观和感觉 与Office类型软件保持一致的界面风格和操作方式 3 界面容错性 一个好的界面应该以一种宽容的态度允许用户进行实验和出错 使用 户在出现错误时能够方便地从错误中恢复 举例 Microsoft Word系统允许撤消用户对文档的许多最近操作 从而处理用户的误 操作问题 4 界面美观性 界面美观性是视觉上的吸引力 主要体现在具有平衡和对称性 合适 的色彩 各元素具有合理的对齐方式和间隔 相关元素适当分组 使用户可以方便 地找到要操作的元素等 举例 清华大学软件学院综合信息服务系统的Web界面在平衡和对称 色彩 元素 分组 用户方便地查找信息等方面进行了良好的设计 5 界面可适应性 界面可适应性是指用户界面应该根据用户的个性要求及其对界面的 熟知程度而改变 即满足定制化和个性化的要求 所谓定制化是在程序中声明用户 的熟知程度 用户界面可以根据熟知程度改变外观和行为 所谓个性化是使用户按 照自己的习惯和爱好设置用户界面元素 举例 系统允许用户选择语言类型 中文 英文 意大利文等 并系统根据用户定 制的语言类型显示不同语种的用户界面 第9章 软件实现 1 在程序设计中使用括号以改善表达式的清晰性 A 2 在程序设计中应尽可能对程序代码进行优化 B 3 不要修补不好的程序 要重新 写 A 4 程序中的注释是可有可无的 B 5 对递归定义的数据结构不要使用递归 过程 B 6 为了使程序能在不同的计算机上运行 程序应当具有较好的 A A 可移植性B 可重用性C 可维护性D 可适用性 7 对于开发面向数据库应用的软件 应当选择的程序设计语言是 C A CB PASCALC SQLD JAVA 8 下面对提高程序编码效率没有影响的是 D A 选择良好的设计方法B 选择良好的算法C 选择良好的数据结构D 变量名 的使用 9 为了保证软件的质量 使其具有较好的可维护性 关键在于 B A 选择合适的程序设计语言 B 选择好的程序设计风格 C 具有好的数据结构D 选择 好的运行环境 10 下面的 不是良好编码的原则 C A 在开始编码之前建立单元测试B 建立一种有助于理解的直观布局 C 保持变量名简短以便代码紧凑D 确保注释与代码完全一致 1 列出三种常见的专用程序设计语言 并说明它们的应用领域 1 JAVA语言 适用于跨平台的企业应用软件 2 LISP语言 适用于人工智能 软件 3 SQL语言 适用于数据库应用软件 4 你认为是否应该强制采用软件编码规范 请 举出2 4个赞成的理由和1 3个反对的理由 赞成理由 1 增强代码的可读性 2 增 强代码的可移植性 3 减少不必要的程序错误 反对理由 1 缺少个性 2 降低程 序效率 5 请分析比较下面两个for循环的优缺点 第一个for循环 第二个for 循环 if condition for i 0 i N i DoSomething else for i 0 i N i DoOtherthing 第一个for循环的代码简练且结构清晰 但效率较低 第二个for循环的执行效率较高 但 结构不够紧凑 6 下面三个程序运行时分别会产生什么结果 为什么 程序1 程序2 void GetMemory char p int num p char malloc sizeof char num return int main char str NULL GetMemory strcpy str Hello World printf str return 0 程序 3 int main char str char malloc 100 for i 0 i N i if condition DoSomething else DoOtherthing void GetMemory char p int num p char malloc sizeof char num return int main char str NULL GetMemory str 100 strcpy str Hello World printf str return 0 strcpy str Hello free str if str NULL strcpy str World printf str return 0 程序1 系统运行崩溃 原因 GetMemory str 100 并没有将申请到的内存传回到调用程序 str一直是NULL 从而导致非法内存访问 使程序崩溃 程序2 显示 Hello World 但将产生内存泄漏 原因 GetMemory str 100 申请到的内存没有被释放 程序3 显示 Hello World 但有时系统运行异常 原因 在 free str 释放内存空间后 str 仍然指向原来空间地址 成为 野指针 如果这 时系统将所释放的空间分配给其他程序使用 将会造成系统运行异常 第10章 软件测试 1 在软件开发的过程中 若能推迟暴露其中的错误 则为修复和改正错误所花费的代价就 会降 B 2 好的测试是用少量测试用例运行程序 发现被测程序尽可能多的错误 A 3 好的测试用例应能证明软件是正确的 B 4 白盒测试仅与程序的内部结构有关 完全可以不考虑程序的功能要求 A 5 等价类划分方法将所有可能的输入数据划分成若干部分 然后从每一部分中选取少数有 代表性的数据作为测试用例 A 6 使用独立测试团队的最好理由是 C A 软件开发人员不需要做任何测试B 测试人员在测试开始之前不参与 项目 C 测试团队将更彻底地测试软件D 开发人员与测试人员之间的争论 会减少 7 类的行为应该基于 进行测试 D A 数据流图B 用例图C 对象图D 状态图 8 下面的 说法是正确的 C D E A 恢复测试是以各种方式迫使软件失效从而检测软件是否能够继续执行的一种系统测 试 B 安全测试是检测系统中的保护机制是否可以保护系统免受非正常的攻击 C 压力测试是检测在极限环境中使用系统时施加在用户上的压力 D 功能测试是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 瑞金市消防安全培训课件
- 农业碳汇项目碳排放权交易市场政策环境与市场发展动态研究
- 恩施美化工程方案(3篇)
- 东莞废水环保工程方案(3篇)
- 店面水电改造工程方案(3篇)
- 农业碳汇产品认证与市场推广策略报告
- 电厂工程大件运输方案(3篇)
- 农业现代化背景下的数字化转型路径与模式研究2025
- 球团车间安全知识培训课件
- 广西佛子矿业有限公司石材加工一厂年产30万吨级废石(矿山固废)综合再生利用项目环评报告
- 2025至2030中国污水处理设备行业商业模式及发展前景与投资报告
- 2025年烟草生产专用设备制造行业研究报告及未来行业发展趋势预测
- 2025至2030中国核反应堆建造行业发展趋势分析与未来投资战略咨询研究报告
- 2025江苏连云港市海州区第二批招聘社区工作者97人考试参考试题及答案解析
- 2025-2026学年粤教花城版(2024)初中音乐七年级上册教学计划及进度表
- 2025四川德阳经济技术开发区管理委员会考核招聘事业单位人员3人笔试备考试题及答案解析
- 排球队朱婷史记课件
- DZ∕T 0215-2020 矿产地质勘查规范 煤(正式版)
- 化疗前的准备和评估
- 显微外科设备器械及显微外科基本技术培训教材培训课件
- GB/T 13871.1-2022密封元件为弹性体材料的旋转轴唇形密封圈第1部分:尺寸和公差
评论
0/150
提交评论