Software develop Model
瀑布模型(waterfall mode)
可行性分析、需求分析、设计、编码、测试、运行维护
软件开发的各项活动严格按照线性方式进行,当前活动接受上一项活动的工作结果,实施完成所需的工作内容。
优点:
线性,提供各个阶段检查点
缺点:
各阶段少有反馈
在整个生命周期后期才看到结果
快速原型模型
快速原型模型需要迅速建造一个可以运行的软件原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。
优点:
克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。
缺点:
所选用的开发技术和工具不一定符合主流的发展;快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。
螺旋模型
结合瀑布和快速原型
以快速原型为中心每一个阶段都使用瀑布模型。每一个周期包括需求定义、分析分析、工程实现、评审
优点:
各个阶段可以进行变更、分段、客户参与
缺点:
周期长,适用大规模软件
什么是迭代式开发?
每次只设计和实现这个产品的一部分,
逐步逐步完成的方法叫迭代开发,
每次设计和实现一个阶段叫做一个迭代。
极限编程
XP是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈以及其它一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整开发过程。
核心价值:
沟通(Communication)、简单(Simplicity)、反馈(Feedback)和勇气(Courage)
测试驱动开发、结对编程、代码复审、重构、代码共有。
敏捷开发
敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。把一个大项目切分为多个项目联系、但是可以独立运行的小项目。在此过程,软件一直处于可用状态。
敏捷建模(Agile Modeling,AM)的价值观包括了XP的四个价值观:沟通、简单、反馈、勇气,此外,还扩展了第五个价值观:谦逊
核心原则
主张简单、拥抱变化、可持续性、递增的变化、有目的得构建、多种模型、高质量的工作、快速反馈。