软件的生命周期:
从产品设想到不再使用而结束的时间,可以分为 6 个阶段:需求分析、计划、设计、编码、测试、运行和维护
软件开发的模型
✅瀑布模型(Waterfall Model)
其他模型的基础框架,每个阶段只执行一次,是先行顺序进行的开发模型
- 优点:强调开发的阶段性、早期计划和需求调查、强调产品测试
- 缺点:不能适应变化的需求,由于单一流程风险性往往推迟至后期测试才显露
✅螺旋模型(Spiral Model)
开发初期需求不很明确的渐进式的开发,适用于规模大复杂度搞,风险大的。测试跟着开发的迭代而迭代。因此,回归测试就很重要。
- 优点:强调严格的全过程风险管理、各个开发阶段的质量,提供机会检讨项目是否由进行的价值
- 缺点:引入严格的风险识别、风险分析和控制,对风险管理的技能水平提出了很高的要求。需要人员、资金和时间的投入。
✅增量、迭代
降低项目风险,是当前流行的软件工程实践之一。鼓励用户反馈,在每个迭代过程促使开发小组以一种循环的,可预测的方式驱动产品的开发。因此每一次迭代都意味着可能有需求的更改、构建出新的可执行软件版本、意味着测试需要频繁进行,测试人员需要与开发进行协作。
增量和迭代是有区别的。增量式逐块建造的概念,好比画人物画从上到下,而迭代式反复求精的概念,好比先画整体再画细节。
✅敏捷(Agile)
个体与交互重于过程和工具、可用软件重于完备文档、客户协作重于合同谈判、响应变化重于遵循计划。
敏捷开发有很多种方式ÿ