标签:simple 计算机 反馈 工作日 概要设计 构建 信任 mod print
一、 传统软件工程
从上个世纪60年代开始,人们开始逐渐认识到了确实存在着“软件危机” 这样一个事实,软件开发人员被诸如下列问题困扰:
导致危机问题的一个重要原因,是由于软件研制和维护本身是工程性的任务,但软件人员采取的方式却未能工程化。为克服软件危机,人们开始考虑采用工程化方法和工程途径来研制和维护软件。我们以瀑布模型和螺旋模型两个模型为例进行讨论。
1、瀑布模型
在传统的软件工程模型中,其中瀑布模型是1970年W. Royce提出的最早的软件开发模型,是经典的预见性软件开发模型,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。该模型严格规定各阶段的任务,上一阶段任务输出作为下一阶段工作输入。其生命周期划分为:
2、螺旋模型
螺旋模型(Spiral Model)采用一种周期性的方法来进行系统开发。该模型是快速原型法,以进化的开发方式为中心,在每个项目阶段使用瀑布模型法。这种模型的每一个周期都包括需求定义、风险分析、工程实现和评审4个阶段,由这4个阶段进行迭代。软件开发过程每迭代一次,软件开发又前进一个层次。螺旋模型强调风险分析,使得开发人员和用户对每个演化层出现的风险有所了解,继而做出应有的反应,因此特别适用于庞大、复杂并具有高风险的系统。
螺旋模型沿着螺线进行若干次迭代,图中的四个象限代表了以下活动:
螺旋模型由风险驱动,强调可选方案和约束条件从而支持软件的重用,有助于将 软件质量作为特殊目标融入产品开发之中。
二、 敏捷开发
虽然传统软件工程解决了软件危机,让软件开发变得结构化体系化,但软件开发的后续依然会产生许许多多的问题,敏捷开发由此诞生。
2001年,敏捷联盟共同签署了“敏捷软件开发宣言”,该宣言声明:
敏捷开发强调有效的响应变化,而不是循规蹈矩的遵循制定的计划,这是敏捷开发与传统软件工程最主要的不同点。此外敏捷开发将客户作为开发团队的成员以消除隔阂,能够更好更快的交流合作,以期完成项目,由此敏捷开发更能适应客户的需求变化。
敏捷联盟为希望达到敏捷的人们定义了敏捷开发12条原则:
我们以极限编程和scrum为例进行讨论。
1、极限编程(XP)
极限编程是敏捷软件开发中应用最为广泛的一个方法,是一个轻量级的、灵巧的软件开发方法,是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈以及其它一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整开发过程。
极限编程的过程分为4步:
2、Scrum
Scrum 是当今被广泛应用的敏捷开发模式之一。
Scrum 开发过程是以Sprint 为增量的迭代开发过程。Sprint 开始时,团队从已按优先级顺序排列好的产品订单中选择适合本团队的项目,与PO 澄清需求并生成同样按优先级顺序排列好的Sprint 订单,并且保证在本次Sprint 结束前做完。每个工作日团队都要收集汇报彼此的任务进程和余下的任务量。Sprint 结束时小组展示最终的项目果并收集来自团队之外的反馈,用以下一个Sprint 的自我提升。
三、 二者对比
传统软件工程产生于软件危机,它使得软件的开发结构化工程化,起初的确给软件开发带来很大收益,但随着时间的增加,传统软件工程循规蹈矩的特点给软件开发带来了很大的麻烦:
由此为了避免传统软件工程的弊端,也出现了诸如螺旋模型等软件开发模型,降低开发风险,增强灵活性。
敏捷开发与传统软件工程在成本费用方面区别很大,,传统软件开发变更成本费随机化的进展呈现非线性增长,随时间的增加增长速率也在变快,而敏捷开发而不同,其变更成本费用前期随着时间的增加,增长速率变慢,但某时间节点过后也会增长变快,但远小于传统软件工程。
敏捷开发能够带来多方面的好处但是它并不适用于所有的项目,所有的产品,所有的人和所有的情况,也不是完全对立与传统软件工程实践。敏捷开发也有其缺点:
综上所述,敏捷开发的确能够在响应用户需求上比传统软件工程更加合适,但并不是软件开发的万金油,而传统软件开发由于其结构化正规化的设计是的其依然能够有一席之地。
参考资料
1、《软件工程:实践者的研究方法(第七版)》Roger S.Pressman
2、Scrum敏捷软件开发方法实践中的改进和应用
陈国栋,罗省贤 计算机技术与发展 第21卷 第12期 2011年12月
3、百度百科 瀑布模型
http://baike.baidu.com/link?url=kfptsC14xgQbv-hojxqBCp6nzel0njgl8waMDUr4E0FI27tDM0cnWS96aZFAOdj9n3KhKU51aFSCVI5j3riFRqhVcnezRUXtUkLaCN3q-blfT59btSlZ2Jb4VUPK-8zk
4、百度百科 螺旋模型
http://baike.baidu.com/link?url=Fo9hNjpfVbhGPXqGsawygcXpk97pqrmHXIth4e1SXeYqLq5FiSF-6qPEwoaXvWMfBCEDTXRYbWLhM0YJm0NVxvibwMgx86uZDAJm6Vnwnx4I0UhIkzfS1A1SmoHZ4_DV
标签:simple 计算机 反馈 工作日 概要设计 构建 信任 mod print
原文地址:http://www.cnblogs.com/longzhongba/p/5988638.html