【项目管理】什么是软件过程模型?

软件过程是用于指定、设计、实现和测试软件系统的一系列活动。软件过程模型是过程的抽象表示,它从某些特定的角度对过程进行描述。有许多不同的软件过程,但都涉及:

  • 规格(Specification )-界定系统应做的工作;
  • 设计及实现(Design and implementation )-界定系统的组织架构,并实现系统;
  • 验证(Validation )——检查它是否满足了客户的需求;
  • 进化(Evolution )-改变系统以响应不断变化的客户需求。

软件过程模型的类型

软件过程、方法和框架的范围从组织在日常工作中可以直接使用的特定的说明性步骤,到组织用于生成针对特定项目或小组的定制步骤集的灵活框架。在某些情况下,“赞助者”或“维护”组织分发一组描述过程的正式文档。

软件过程和软件开发生命周期模型

软件开发过程的一个基本概念是SDLC模型,它代表软件开发生命周期模型。为了实现不同的需要的目标,已经开发了许多开发生命周期模型。这些模型指定了过程的各个阶段以及它们被执行的顺序。最常用、最流行和最重要的SDLC模型如下:

  • 瀑布模型
  • V模型
  • 增量式模型
  • RAD模型
  • 敏捷开发模型
  • 迭代式模型
  • 螺旋模型
  • 原型模型

瀑布模型

瀑布模型是将项目活动分解为线性顺序的阶段,其中每个阶段依赖于前一个阶段的可交付成果,并对应于任务的专门化。这种方法在工程设计的某些领域是典型的。

waterfall model

V模型

v模型表示一个开发过程,它可以被认为是瀑布模型的扩展,并且是更通用的v模型的一个例子。编码阶段结束后,处理步骤向上弯曲,形成典型的V形,而不是线性地向下移动。v -模型演示了开发生命周期的每个阶段与其相关联的测试阶段之间的关系。水平轴和垂直轴分别表示时间或项目完整性(从左到右)和抽象级别(最上层的粗粒度抽象)。

V model

增量式模型

增量构建模型是一种软件开发方法,在这种方法中,模型以增量的方式设计、实现和测试(每次都增加一点),直到产品完成。它涉及到开发和维护。当产品满足了它的所有需求时,它被定义为已完成。每次迭代都要经过需求、设计、编码和测试阶段。系统的每一个后续版本都会向前一个版本添加功能,直到所有设计的功能都实现。这个模型结合了瀑布模型的元素和原型的迭代哲学。

incremental model

迭代式模型

迭代生命周期模型不会首先关注初始的、简化的用户特性集,然后逐步获得更多的复杂性和更广泛的特性集,直到目标系统完成,从而尝试从完整的需求规范开始。当采用迭代方法时,增量开发的哲学通常也会被自由地、可互换地使用。

换句话说,迭代方法从指定和实现软件的一部分开始,然后可以对其进行审查并确定优先级,以确定进一步的需求。然后通过为每个迭代交付软件的新版本来重复这个迭代过程。在一个轻量级的迭代项目中,代码可能代表系统文档的主要来源;然而,在一个关键的迭代项目中,可能还需要一个正式的软件规范。

iteractive model

RAD模型

快速应用程序开发是对在七十年代和八十年代开发的计划驱动的瀑布流程的回应,例如结构化系统分析和设计方法。快速应用程序开发(RAD)通常被称为适应性软件开发。RAD是一种增量式的软件开发原型方法,终端用户可以在检查实时系统时产生更好的反馈,而不是严格地使用文档。它较少地强调计划,而更多地强调适应性过程。

当应用程序投入生产时,RAD可能会导致较低级别的拒绝,但是这种成功通常是以项目成本和进度的急剧超支为代价的RAD方法特别适合于开发由用户界面需求驱动的软件。因此,一些GUI构建器通常被称为快速应用程序开发工具。

Rapid Application Development-rad

螺旋模型

螺旋模型是由Barry Boehm在1986年首次描述的,它是一个风险驱动的软件开发过程模型,引入它是为了处理传统瀑布模型中的缺陷。螺旋模型看起来就像一个有许多循环的螺旋。螺旋的确切循环数是未知的,并且可能因项目而异。该模型支持风险处理,并且项目是循环交付的。螺旋的每个循环称为软件开发过程的一个阶段。

在开发软件产品所需要的瀑布生命周期的早期阶段中的螺旋模型的初始阶段。根据项目风险的不同,开发产品所需要的阶段的确切数量可能会有所不同。由于项目经理动态地决定阶段的数量,所以项目经理在使用螺旋模型开发产品方面扮演着重要的角色。

Spiral model

敏捷开发模型

敏捷是一组基于敏捷宣言中所表达的价值观和原则的方法和实践的总称,它是一种思维方式,使团队和企业能够创新,快速响应不断变化的需求,同时降低风险。使用许多可用的框架,比如Scrum、看板、精益、极限编程(XP)等,组织可以变得敏捷。

The agile umbrella

敏捷运动提出了传统项目管理的替代方案。敏捷方法通常用于软件开发,以帮助企业应对不可预测性,它指的是一组基于迭代开发的软件开发方法,在迭代开发中,需求和解决方案通过自组织的跨功能团队之间的协作而演变。

敏捷的主要目标是赋予开发团队创建和响应变化的能力,以便在不确定和动荡的环境中取得成功。敏捷软件开发方法通常在快速和小周期中运行。这将导致更频繁的增量发布,每个发布都构建在以前的功能上。进行彻底的测试以确保软件质量得到维护。

agile method

用可视化范式(Visual Paradigm)管理软件过程

Visual Paradigm提供了一组丰富的项目管理工具,帮助软件团队执行主要的开发活动,并管理整个过程中创建的工件。

项目管理的向导

使用自动化的指导流程启动任何规模的IT项目,包括逐步指导、输入参考和示例。与您的团队成员渐进地和协作地开发可交付成果。

identification phase

准时PMBOK(项目管理知识体系)/项目管理流程图

人们在项目管理上面临着很多困难,比如陡峭的学习曲线和雇佣认证专业人员的高成本。Visual Paradigm独特的自动化项目管理知识体系工具为以最小的成本启动IT项目管理提供了所有的帮助和指导。

just in time PMBOK

原文:https://www.visual-paradigm.com/guide/software-development-process/what-is-a-software-process-model/

本文:http://jiagoushi.pro/node/1215

讨论:请加入知识星球【首席架构师圈】或者小号【jiagoushi_pro】或者QQ群【11107777】