1.软件开发生命周期(SDLC)
From 0 to 1 从无到有 (这不tm废话么)
2.传统软件过程模型
两种基本类型
-
线性过程(Linear)
-
迭代过程(Iterative)
现有的模型有:
-
瀑布模型
分为概念、启动、分析、设计、构建、测试、实现和维护等阶段。就像瀑布一样流经这几个过程。说白了就是线性的过程。
因为是一条道走到黑,因此无法适应变化
-
增量过程模型
将一个瀑布模型分为多个瀑布模型去实现,与瀑布模型相比能适应一定变化的需求了 -
V字模型
可以看作是瀑布模型的一个扩展
即编写代码之后进行各层次的测试,发现问题,马上返回设计阶段重新来过
- 原型过程
在原型上持续不断的迭代发现用户变化的需求,因此它能很好地适应需求的变化,但是导致了开发周期变长
- 螺旋模型
经过多轮的迭代,而每轮都遵循瀑布模式,每轮迭代有明确的目标,遵循“原型”过程,进行严格的风险分析,方可进入下一轮迭代
要根据以下因素选择适合的软件过程模型:
- 用户参与程度
- 开发的效率、管理的复杂程度
- 所需要的软件的质量
3.敏捷开发
敏捷开发(Agile development)是指通过快速迭代和小规模
的持续改进,以快速适应变化的开发方式
3.1 主要方法:
3.1.1 极限编程(XP,eXtreme Programming)
极限编程是一个轻量级的、灵巧的软件开发方法;同时它也是一个非常严谨和周密的方法。它的基础和价值观是交流、朴素、反馈和勇气;即,任何一个软件项目都可以从四个方面入手进行改善:加强交流;从简单做起;寻求反馈;勇于实事求是。