1、软件开发生命周期
-
需求分析:由公司内部人员或者客户提出
-
设计:要用到哪些技术,实现哪些功能,确认项目的架构
-
实现:由开发人员进行开发编程
-
测试:代码测试、功能测试、性能测试等
-
维护:根据客户反馈不断进行优化
2、软件开发瀑布模型
瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品
优点 | 缺点 |
---|---|
简单易用 | 各阶段划分比较固定,阶段之间会产生大量文档,增大工作量 |
当前阶段完成后,只需关注后续阶段 | 由于开发模型为线性的,客户只能等到过程末期才见到效果,增大开发风险 |
为项目提供了按阶段划分的检查点 | 无法适应用户需求的变化 |
3、软件敏捷开发模型
敏捷开发的两个特点:迭代开发、增量开发
迭代开发:
对于一个大型项目,传统开发方式是采用一个大周期进行开发(比如一年);迭代开发会把一个大周期拆分成多个小周期(比如两星期),在每个小周期中都执行一次瀑布模型(需求分析--设计--实现--测试--维护)。
增量开发:
每个小周期的开发完成后,都要新增一个用户可以完整感知的新功能。也就是说,要按照新增功能来划分迭代的小周期。
举例
假如项目要求建10栋楼房,若采用迭代增量开发,我们需要在第一轮迭代后完成第一栋楼房,第二轮迭代后完成第二栋楼房……而不是第一轮打好10栋楼的地基,第二轮迭代设计好10栋楼的骨架……
敏捷开发模型的好处:
-
早期交付:10楼经过第一轮迭代后,即可交付第一栋楼,这栋楼就可以出售或者出租来产生收益,从而降低项目的资金压力
-
降低风险:实时了解市场需求,及时调整产品:例如第一栋楼盖好后发现卖不出去,这时候就要考虑是否还要继续盖后面的9栋楼;传统模型则无法收手。