軟體生命週期管理
軟體生命週期管理(Software Development LifeCycle Management)是软件生命周期中的管理計劃。软件生命周期(Software Development LifeCycle)是指软件的产生直到成熟的全部过程(软件开发过程)。
软件开发 |
---|
核心行动 |
范式与模式 |
方法论与框架 |
支持行为 |
实践 |
工具 |
标准与知识体系 |
生命周期是事物发展的客观规律,软件同样存在生命周期。早期的软件生命周期往往是说「软件从计划、需求开始,经历分析设计、实现、部署、维护,直到最后逐渐消亡的」。这是受到了第一个软件生命周期模型---瀑布模型[1]影响,上述语句实质上简要的描述了瀑布型生命周期。 现在的软件生命周期不再只考虑瀑布型生命周期,另外常见的软件生命周期模型有原型模型、螺旋模型[2]、迭代模型。所以现在的软件生命周期说明应当不再包括瀑布型生命周期中的典型阶段。
因此,现在对软件生命周期及软件生命周期模型采用如下定义:
- 软件生命周期是指软件的产生直到成熟的全部过程。
- 软件生命周期模型是指人们为开发更好的软件而归纳总结的软件生命周期的典型实践参考。
最近几年来,给软件生命周期带来最多活力的是敏捷软件开发[3],使得这个领域呈现出勃勃生机,出现了一些更好响应变化、迎接竞争的生命周期模型。
敏捷软件开发明确对生命周期模型提出了要求:短迭代开发[4][5]。迭代模型的历史可以追溯到上世纪50年代,但以往的迭代模型并没有对迭代周期长度提出要求。而在敏捷软件开发中,迭代周期长度一般不超过2个月,而常见的迭代周期是2周到4周,因此可以称之为“短迭代”。
有些敏捷软件开发在主开发过程前安排有预研或计划或架构或需求阶段等等,在主开发过程后安排有系统集成测试或验收测试或试运行等等,这样做并不违反敏捷开发原则,但其主开发过程应当采用短迭代开发,而且主开发过程的工期应当占有显著的比例,形成多个短迭代。
敏捷开发讲究固定的节奏,建议按照固定的节奏开发,所以短迭代的周期长度在开始选定之后,一般不作改变。同样的原因,敏捷迭代与迭代之间一般不安排缓冲期,上个迭代未完成的内容放到下个迭代中进行处理。
敏捷开发迭代与瀑布生命周期的阶段是不同的。瀑布型中需求分析阶段的产物一般是需求规格说明书,不同阶段的产物是不同的;而敏捷开发迭代的产物是软件本身,前期迭代的产物也许不完整,但各个敏捷开发迭代的产物是一致的、逐步改进完善的软件本身。
參考資料
- Royce W W. Managing the development of large software systems[C]//proceedings of IEEE WESCON. 1970, 26(8).
- Boehm B W. A spiral model of software development and enhancement[J]. Computer, 1988, 21(5): 61-72.
- . [2021-05-14]. (原始内容存档于2021-03-27).
- . [2014-05-18]. (原始内容存档于2010-06-14).
- Lindvall, Mikael, et al. "Agile software development in large organizations." Computer 37.12 (2004): 26-34.