ScholarGate
助手

软件过程与方法学

软件过程与方法学是结构化的活动、里程碑和实践框架,用于组织软件在其生命周期内如何被规定、设计、构建、验证和演进。

用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
下载幻灯片
Learn & explore
视频即将推出

Definition

软件过程是一系列相关的活动及其顺序,最终导致软件产品的生产;软件方法学是一种有文档记录的方法,它为一类项目规定了这些活动、角色、工件和实践。

Scope

该领域涵盖了规定性过程模型,如瀑布模型、增量模型和螺旋模型;迭代和演进方法;敏捷方法学及其价值观和仪式;用于持续集成和交付的精益和DevOps实践;以及过程改进框架,如CMMI和ISO/IEC 12207。它既处理过程的抽象结构,也处理影响其采用的人为和组织因素。

Sub-topics

Core questions

  • 规范、设计、实现和验证活动应如何排序和迭代?
  • 计划驱动(预测性)过程何时优于敏捷(适应性)过程?
  • 如何衡量、评估和逐步改进一个过程?
  • 团队结构、沟通和工具如何影响过程的有效性?

Key theories

瀑布(计划驱动)模型
一种顺序模型,其中需求、设计、实现、验证和维护作为独立的阶段,并有正式的签字确认,非常适合稳定、明确的需求,但因对变更适应性差而受到批评。
螺旋和风险驱动模型
Boehm的螺旋模型将开发组织为重复的循环,每个循环都由识别和解决项目最高风险驱动,将迭代开发与明确的风险管理相结合。
敏捷和迭代增量开发
敏捷方法通过短迭代交付工作软件,倾向于客户协作、响应变更和频繁反馈,而非繁重的预先规划和文档。

Clinical relevance

过程的选择直接影响交付可预测性、缺陷率、吸收变更需求的能力以及团队生产力;现代实践融合了敏捷迭代与DevOps自动化,以缩短反馈周期,同时保持质量和合规性。

Evidence & guidelines

ISO/IEC/IEEE 12207 标准化了软件生命周期过程,而 SWEBOK 软件工程过程知识领域和 CMMI 提供了广泛使用的过程定义和改进参考框架。

History

20世纪70年代,早期的大型系统开发推广了阶段性、文档驱动的模型。Boehm于1988年引入了明确的风险驱动迭代,Rational Unified Process在1990年代将迭代开发形式化,2001年的敏捷宣言则明确了轻量级、容忍变更的方法,这些方法与2010年代的DevOps一起成为主流。

Debates

计划驱动与敏捷过程
一个长期存在的争论是,预测性、文档密集型过程何时优于适应性敏捷过程;共识是,正确的平衡取决于需求的稳定性、监管限制、团队规模以及后期变更的成本。

Key figures

  • Winston W. Royce
  • Barry Boehm
  • Kent Beck
  • Watts Humphrey

Related topics

Seminal works

  • royce1970
  • boehm1988
  • sommerville2015

Frequently asked questions

瀑布模型是否已经过时?
对于需求不断演变的项目,纯粹的顺序瀑布模型很少是理想的,但其阶段性结构仍然影响着受监管和安全关键领域,并构成了混合模型的基础;大多数现代项目使用迭代或敏捷变体,这些变体保留了严格的规范和验证。
过程和方法学有什么区别?
过程描述了活动及其顺序,而方法学是一个更完整、有名称的规定,它还固定了角色、工件、仪式和实践;Scrum和Rational Unified Process是实例化迭代或敏捷过程的方法学。

Methods for this concept

Related concepts