一 瀑布式开发:是基于活动来分解项目,为了建造软件,可以分为:需求分析,设计,编码和测试。为期一年的项目可能有2个月的分析阶段,然后4个月的设计阶段,
接着是3个月的编码,再接着是3个月的测试阶段。
二 迭代式开发:是根据功能子集来分解项目,可能会把一年分为3个月的迭代。在第一个迭代中,你会处理1/4的需求,并对这1/4做完整的软件生命周期:分析,设计,
编码和测试。在第一个迭代结束时,你拥有了1/4的功能需求。然后再做第二个迭代,这样在6个月结束时,拥有了一半功能的系统。
三 迭代开发优先于瀑布式开发,因为在瀑布过程中很难辨别项目是否真的还在正常的轨道上,它更容易在早期阶段宣布胜利。
四 时间盒:强迫每个迭代有固定长度的时间。如果看起来你不能建造所有在一个迭代期间打算建造的东西,你必须从迭代中延迟一些功能,而不必延迟迭代的时间。
五 返工问题:软件业不像其它制造业,返工被看成浪费。通常重写已有的代码比围着设计不良的代码打补丁要高效的多。包含:自动化测试,重构,持续集成。
六 预测性计划:预测性方法指望在项目早期做些工作,比便更好的理解后面不得不做的事情。
七 需求剧烈变动:项目后期阶段的需求变动,这些变动动摇了预测性计划的基石。
八 敏捷过程:使用短的,基于时间的迭代,最长间的是一个月或是更短的迭代,倾向于更少的仪式。
九 RUP:(Rational Unified Process,统一软件开发过程,统一软件过程)是一个面向对象且基于网络的程序开发方法论。可以分为四个阶段:
初始阶段,细化阶段,构造阶段,移交阶段。
十 需求分析:需要弄清楚软件用户和顾客需要系统要做什么。UML中包含:用例,类图,活动图,状态图。
十一 设计:在做设计时,你可以在你的图上放更多技术的东西,你可以使用更多的表示法。UML中含:类图,序列图,包图,状态图,部署图。