软件工程原理第二章习题

1.什么是软件过程?根据ISO/IEC 12207标准,软件过程可分为哪些类型?
(1)软件过程也称为软件生存周期过程,是指软件生存周期中一系列的相关过程。为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。而过程是活动的集合,活动是任务的集合,任务要起到把输入加工成输出的作用。活动的执行可以是顺序的、迭代的、并行的、嵌套的,或者是有条件地引发的。
(2)软件过程的类型:
1)软件实现过程:用于在软件中产生一个特定的系统元素(即软件项)以满足需求。它是实现过程在软件中的特化。它包含7个过程。
2)软件支持过程: 提供一组特定的活动执行特定的软件过程,支持软件实现过程,以帮助软件项目取得成功。它包含8个过程。
3)软件复用过程:支持一个组织跨项目复用软件项,它包括3个过程。

2.瀑布模型、增量模型和演化模型各有哪些优缺点?
(1)瀑布模型

  • 强调阶段的划分顺序和依赖

  • 强调各阶段工作文档的完备性,即文档驱动静态描述

  • 每个阶段从技术和管理进行严格审查,即质量保证的观点

  • 是一种线性的顺序的逐步细化的开发模式;

  • 推迟实现的观点;
    缺点:获得完善的需求规约很困难、难以适应快速变化需求、错误发现太迟、开发进度缓慢。
    (2)增量模型
    多个版本可并行开发、每个版本都是可运行的产品、需求在开发早期是明确的。
    可以使用该模型的情况:需要早期获得功能、中间产品可以提供使用、系统被自然地分割成增量、工作人员/资金逐步增加。
    (3)演化模型:
    采用迭代的开发方法,渐进开发各个可执行性版本,逐步完善软件产品,每个版本在开发时,开发过程中的活动和任务顺序地或部分重叠平行地被采用。首先执行风险最大的任务,允许需求变更

3.迭代式开发的原则是什么?
原则一:每次迭代都产生一个可执行的软件版本。
原则二:要求有计划地迭代。

4.简述敏捷开发的价值观和原则。
(1)敏捷开发的价值观(4条):

  • 注重个人和交互胜于过程和工具;
  • 注重可用的软件胜于事无巨细的文档;
  • 注重客户协作胜于合同谈判;
  • 注重随机应变胜于循规蹈矩。
    (2)原则(12条):
  • 最优先的目标尽早、持续地交付高价值的软件来满足客户需求;
  • 欢迎需求变化;
  • 经常交付可用软件,间隔两周到两个月不等;
  • 整个项目自始至终,业务人员和开发人员都必须每天在一起工作;
  • 以积极主动的人员为核心建立项目团队,给予他们所需要的环境和支持,并且信任他们能完成工作;
  • 在开发团队内外传递信息最有效的方法是面对面交流;
  • 可用的软件是最主要的项目进展指标;
  • 敏捷过程提倡可持续的开发;
  • 持续关注技术上的精益求精和优良的设计以增强敏捷性;
  • 简约----将必要的工作最小化的艺术是成功的关键;
  • 最优的架构、需求和设计浮现于自组织的团队;
  • 团队定期不断对如何更加有效地开展工作进行反思,并相应地调整、校正自身行为。
  1. 简述XP的十二条实践做法。
    (1)计划博弈;
    (2)小型发布;
    (3)系统隐喻;
    (4)简化设计;
    (5)测试驱动;
    (6)重构;
    (7)结对编程;
    (8)代码全体拥有;
    (9)持续集成;
    (10)每周40小时工作制;
    (11)现场客户;
    (12)代码规范。

  2. CMMI阶梯式模型将软件组织的成熟度分为5个等级,对其进行简述。
    (1)初始级:软件过程无序,对过程几乎无定义,成功取决于个人努力。管理是反应式的。
    (2)已管理级:建立了基本的项目管理过程来跟踪费用、进度和功能特性。
    (3)已定义级:已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。
    (4)定量管理级:分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解和控制。
    (5)持续优化级:过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。

  3. 简述软件过程的改进模型IDEAL。
    IDEAL分别代表初始化(Initiating)、诊断(Diagnosing)、建立(Establishing)、行动(Acting)、扩充(Leveraging)。
    (1)初始阶段是组织层上下同心、拟定目标和愿望的阶段。
    (2)诊断阶段采用评估的工作对组织现状进行分析、发现存在的缺点和问题,并根据组织的战略要求,确定需要进一步改进的方向。
    (3)建立阶段是建立相应的规则、模板、过程,以作为改进实施的基础。
    (4)行动阶段则是一个不断试点、总结、推广的过程。
    (5)扩充是一个总结、在学习和提高的过程。

  4. 小项目和大项目的软件过程有何区别?
    软件过程的选择应该综合考虑多种因素,以进行敏捷和规范的平衡。重量级的软件过程适合需求相对稳定、项目规模较大、开发周期较长、质量攸关、产品/项目应用较广的情形。轻量级过程适合需求变化快、项目规模小、开发周期短、项目干系人少的项目。

  5. 信息系统开发、嵌入式系统开发和多媒体软件开发的软件过程各有什么特点?
    (1)信息系统开发:

  • 系统开始和可行性研究
  • 系统分析和设计
  • 程序设计
  • 转换和实现
  • 实现后的评价
    (2)嵌入式系统开发:
  • 产品定义
  • 硬件与软件划分
  • 迭代与实现
  • 软件、硬件详细设计
  • 软硬件集成
  • 系统测试
  • 系统维护与升级
    (3)多媒体软件开发:
  • 选题
  • 软件设计
  • 选择开发工具
  • 组织、编辑资源
  • 制作软件
  • 检查测试和优化
  • 发布、使用和维护
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值