自20世纪50年代开始软件开发以来,人们一直在探索软件开发的方法。中培教育《软件系统详细设计最佳实践》培训专家龚老师指出,目前,软件开发过程一般被划分为若干个目的和作用相对独立活动,包括:需求、分析、设计、实现、测试和集成,以及维护。围绕着如何安排、规划这些活动的次序、周期和历时,人们提出过各种各样的软件开发方法模型。
我们将具有以下特点的软件开发方法定义为传统软件开发方法:
一、以预测性为原则
二、以文档驱动开发过程
三、以过程控制为核心
面对激烈的市场竞争,要求持续满足不断变化的需求,传统软件开发方法的特点也成为了它的弊病,应对下面各种挑战时显得力不从心:
一、如何减少开发过程中的浪费
二、如何准确,及时的适应需求变更
四、如何持续演进系统架构
五、如何保证软件系统的长期质量
六、如何实现安全重构(Refactoring)
七、如何最大限度的降低系统集成的成本
八、如何在团队中共享知识,使团队成员共同成长
九、如何合理的进行成本和时间估算
十、如何迅速获得软件开发收益
在传统软件工程方法中,软件开发的生命周期固定的划分为若干顺序的阶段(需求、分析、设计、实现、集成测试和维护),整个流程的特点是:?
一、不完成上一个阶段就不能进入下一个阶段
二、直到流程中期的开发阶段(Implementation)才开始真正的编码;之前所有阶段的“成果”均以文档形式体现
三、测试和集成(Testing and Integration)被认为是对开发阶段的辅助或者收尾,往往晚于开发阶段开始
四、维护阶段成本高昂