软件生命周期管理(Application lifecycle management),简称ALM,是指
软件的产生直到成熟的全部过程。
生命周期是事物发展的客观规律,软件同样存在生命周期。早期的软件生命周期往往是说“软件从计划、需求开始,经历分析设计、实现、部署、维护,直到最后逐渐消亡的”。这是受到了第一个
软件生命周期模型---
瀑布模型影响,上述语句实质上简要的描述了瀑布型生命周期。 软件生命周期不再只考虑瀑布型生命周期,另外常见的软件生命周期模型有
原型模型、
螺旋模型、
迭代模型。所以软件生命周期说明应当不再包括瀑布型生命周期中的典型阶段。
敏捷软件开发明确对生命周期模型提出了要求:短迭代开发。迭代模型的历史可以追溯到上世纪50年代,但以往的迭代模型并没有对迭代周期长度提出要求。而在敏捷软件开发中,迭代周期长度一般不超过2个月,而常见的迭代周期是2周到4周,因此可以称之为“短迭代”。
有些敏捷软件开发在主开发过程前安排有预研或计划或架构或需求阶段等等,在主开发过程后安排有系统集成测试或
验收测试或
试运行等等,这样做并不违反敏捷开发原则,但其主开发过程应当采用短迭代开发,而且主开发过程的工期应当占有显著的比例,形成多个短迭代。
敏捷开发讲究固定的节奏,建议按照固定的节奏开发,所以短迭代的周期长度在开始选定之后,一般不作改变。同样的原因,敏捷迭代与迭代之间一般不安排缓冲期,上个迭代未完成的内容放到下个迭代中进行处理。
敏捷开发迭代与瀑布生命周期的阶段是不同的。瀑布型中需求分析阶段的产物一般是需求规格说明书,不同阶段的产物是不同的;而敏捷开发迭代的产物是软件本身,前期迭代的产物也许不完整,但各个敏捷开发迭代的产物是一致的、逐步改进完善的软件本身。
敏捷软件开发(英语:Agile software development),又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发过程中人的作用。
敏捷软件开发(或称快速程序开发RAD)描述了一套软件开发的价值和原则,在这些开发中,需求和解决方案皆通过自组织跨功能团队达成。敏捷软件开发主张适度的项目、进化开发、提前交付与持续改进,并且鼓励快速与灵活的面对开发与变更。这些原则支持许多
软件开发方法的定义和持续进化。
在
工程及其他相关领域中,验收测试是指确认一系统是否符合设计规格或
契约之需求内容的
测试,可能会包括化学测试、物理测试或是性能测试。
软件开发者常会将系统开发者进行的验收测试和
客户在接受产品前进行的验收测试分开。后者一般会称为使用者验收测试、终端客户测试、实机(验收)测试、现场(验收)测试。