软件项目管理----第2讲 软件开发过程管理

徘徊边缘 提交于 2020-03-06 02:14:22

什么是软件开发过程

按照项目的进度、成本和质量限制,开发和维护满足用户需求的软件所必需的一组有序的软件开发活动集合

什么是软件开发活动

为开发软件项目而执行的一项具有明确任务的具体工作

按任务性质,软件开发活动可分为二种形式

  1. 技术活动
    对软件项目实施开发,产生软件产品
    例如,需求分析,概要设计,编码,单元测试等等
  2. 管理活动
    对软件项目中的人、产品和过程等实施管理的活动
    例如,制订软件项目计划,软件配置等等

为什么需要过程

  1. 明确了软件开发的过程和步骤,促进工程化软件开发
  2. 便于制定软件项目计划
  3. 为软件开发提供了可视性,便于对软件开发过程进行管理和控制
  4. 便于细化和安排任务,使得每个人员明确各自的工作

软件开发过程模型

  1. 软件开发过程(软件开发生命周期)
     软件从需求分析、设计、开发、测试直至投入使用,并在使用中不断地修改、增补和完善,直至被新的系统所替代而停止该软件的使用的全过程。
  2. 软件开发过程模型(软件开发生命周期模型)
  • 描述了开发的主要阶段
  • 定义了每一个阶段要完成的主要过程和活动
  • 规范了每一个阶段的输入和输出
  • 提供了一个框架,可以将必要的活动映射到该框架中。
  1. 常用的软件开发过程模型
    1. 编码—修正模型
    2. 瀑布模型
    3. 快速原型模型
    4. 增量模型
    5. 螺旋模型
    6. 喷泉模型
    7. 统一软件开发过程(IBM RUP)
    8. 敏捷(灵活)过程
    9. 微软过程

1.编码—修正模型

在这里插入图片描述

2.瀑布模型

在这里插入图片描述

在这里插入图片描述

3.快速原型模型

在这里插入图片描述

在这里插入图片描述

4.增量模型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.螺旋模型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

典型软件过程模型特征比较

在这里插入图片描述

6.喷泉模型

7.统一软件开发过程(IBM RUP)

8.敏捷(灵活)过程

(注)极限编程

  1. eXtreme Programming(极限编程,简称XP)是由KentBeck在1996年提出的;
  2. XP是一个轻量级的、灵巧的软件开发方法 ,是一种软件工程方法学;
  3. 强调程序设计师团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好的适应需求变化的代码编写和团队组织方法,更注重作为软件开发中人的作用。

极限编程XP的12个实践原则

1、完整团队
2、计划游戏
3. 客户测试
4. 简单设计
5. 结对编程
6. 测试驱动开发
7. 改进设计
8. 持续集成
9. 集体代码所有权
10. 编码标准
11. 隐喻
12. 可持续的速度

9.微软过程

Microsoft 解决方案框架 (MSF) 是一种成熟的、系统的技术项目方法,它基于一套制定好的原理、模型、准则、概念、指南,以及来自 Microsoft 的、经过检验的做法。


MSF 提供了一个灵活的和可伸缩的框架,其适应能力能够满足任何项目(不论其规模和复杂性)的要求,以规划、构建和部署业务驱动的技术解决方案。


MSF 的观点是,没有哪个单一的结构或者过程能够适应所有项目的环境和要求。尽管如此,但是它也认为:对指导的需求是存在的。作为一个框架,MSF 就提供了这样一种指导,而不会强迫实施很多限制性的细节,否则这只会将其用处限制到有限范围的项目方案里。

微软过程准则

  1. 项目计划兼顾未来的不确定性
  2. 风险管理减少不确定性的影响
  3. 快速测试过渡版本
  4. 快速循环递进的开发过程
  5. 平衡产品特性和产品成本
  6. 项目进度表具有较高的稳定性和权威性
  7. 小型项目组并行开发
  8. 早期软件配置基线化、后期冻结产品 版本
  9. 原型法早期验证
  10. 以零缺陷为追求目标
  11. 里程碑评审会
每一个生命周期发布一个递进的版本,各生命周期持续快速地迭代循环

优点: 综合了Rational统一过程和敏捷过程的优点

缺点:对方法、工具和产品等方面不够全面

选择软件开发过程模型的步骤

  1. 熟悉各种软件开发过程模型
  2. 评审、分析项目的特性
  3. 选择适合项目的开发过程模型
  4. 标识开发过程模型与项目不一致地方,并进行裁减

定义软件开发过程的要求

  1. 全面
    定义要应用到软件项目中的所有活动项
  2. 可操作
    各个活动易于实施
  3. 简洁、易于理解
    不含无意义的活动,描述简洁易于理解
  4. 灵活
    可供各个项目进行灵活剪裁
  5. 易于改进
    能够不断对它进行改进和提高

定义软件开发过程的步骤

步骤1:确定软件开发过程模型
步骤2:确定和描述活动
步骤3:确定和描述活动间的关系
步骤4:文档化软件开发过程
步骤5:文档化如何剪裁过程
步骤6:文档化如何改善过程
步骤7:过程评审、认可和发布
步骤8:员工培训

步骤1:选择软件开发过程模型

步骤2:确定和描述活动

确定活动的原则

  1. 基于所选择的软件开发过程模型确定活动
  2. 一般的,软件开发过程模型仅仅确定软件开发的技术活动
  3. 所确定的活动对于软件项目的开发是必要的
  4. 活动尽可能是全面的,适合于各种可能的软件项目,可供它们进行剪裁

步骤3:确定和描述活动间的关系

步骤4:文档化软件开发过程

如何提供软件开发过程的完整视图?

  1. 基于图形方式直观展示整个软件开发过程中的活动以及它们之间的关系
  2. 给出软件开发过程的整体、直观描述
  3. 便于从整体上理解和把握软件开发过程
  4. 注意不要作时间约束和限制

步骤5:文档化如何剪裁过程

为什么需要定义剪裁过程

  1. 组织内过程定义的一般性和普遍性
  2. 具体项目的特殊性
  3. 为了更好满足具体项目的特殊要求

如何文档化过程剪裁

Step1:定义剪裁软件开发过程的规则,以更好地适应具体软件项目的特殊要求
Step2:定义对剪裁过程进行评审的要求
Step3:按上述规则和要求写成规范化的文档

步骤6:文档化如何改善过程

为什么需要改善过程?

  1. 过程定义的不完备性和不适应性
  2. 组织业务发展的要求
  3. 特殊项目提出的要求
  4. 实际应用中发现的问题

过程改善的目的

  1. 使得组织的过程不断得到优化
  2. 使得项目实施的过程得到不断优化

如何文档化改善过程?

Step1: 定义改善过程的规则
Step2: 定义改善后过程评审的要求
Step3: 文档化过程改善的上述规则和要求

步骤7:过程评审、认可和发布

步骤8:员工培训

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!