软件开发过程之我见

学习过软件工程或者有过项目管理经验的人都知道,软件开发过程是一件比较难把控的事情,精心制定的项目流程模板往往不能适应新项目而导致无疾而终。

结合自己的一些管理经验我把软件过程简单总结一下。


软件过程模型有很多中,比较有影响的三种模型是:

1>瀑布模型

2>RUP(统一过程)

3>XP (敏捷开发,极限编程)


好多人在为使用那种方法在争论,我认为这三种方法根本不冲突,我们只要领悟了其中的精髓,任何一种方法都可以用的很好。


什么是瀑布模型?

软件开发有一个生命周期,在此周期内软件开发的主要内容和一分为 需求分析、设计、编码、测试 这些事情有先有后,于是人们就该这些工作的内容把软件划分为若干的阶段,于是有了以下流程。

第一步:需求分析;第二步:概要设计 第三步:详细设计 第四步:编码 ;     第五步:测试

过程非常清晰,整个管理过程就是控制每一步的制品,,我们称之为里程碑,比如需求文档,设计文档,代码,测试计划,测试报告。

因此我说瀑布模型是软件过程忠最简单的模型,最好掌握,应该没有异议。


什么是RUP?

      其实RUP过程做的也是需求分析、设计、编码、测试这些事情,RUP把这些工作进行了细化分成了工作流。RUP认为,软件的各种工作内容不是截然独立的,而是有重叠的部分,有的工作流会同时进行,比如人们在做需求的时候也在考虑设计的部分,在设计的时候,有反思需求,甚至提出修改,还可能做了一点编码的东西,编码的时候也回改设计,甚至还有动需求。这样一来,按照瀑布模型划分软件过程就不行了。

     瀑布模型的缺点是没有考虑变化,RUP考虑了变化。有了变化怎么办,从头再来?RUP确实是这么做的。这叫什么?迭代。当然以前的好多东西已经做过一边了,现在只做部分变动就行了。

    于是RUP把软件过程分成了以下过程:

    第一步:初始阶段; 第二步:细化阶段; 第三步:构造阶段;  第四步:交付阶段

    每一步都做了需求,设计的事情,但每步重点不同。

    至于里程碑,要比瀑布模型复杂多了,定义不够明确,所以RUP最难把控的一种过程管理方法。好多项目经理看了无数多RUP的书,头都大了,还是没有弄清楚各步应该干什么,如果真用这样方法管理起开发,那还不乱了,因此RUP是一个美好的设想,但实践起来比较困难。当然也许真的有神级的项目经理可以把控的很好,不过我从来没有见过。


什么是XP

      RUP过于复杂,但思想很好,想用但又控制不好,怎么办?简化。

      RUP难在什么地方,难在里程碑上,那就取消 RUP的里程碑控制好了,项目的推进怎么办?规范怎么办,完成瀑布模型那些文档就可以了,或者更简化的东西,(有的甚至没有文档)。取消项目中的机制壁垒,结对编程,实时沟通,设计一部分实现一部分,总之要省时省力。项目管理方法实践了一大圈,似乎又回到了起点,不过经历过了一场历练,团队对项目的把控能力提高了。

    当然,XP只适合小型团队,而且要求项目经理有高超的技术把控能力。不过大多数的项目都属于小团队,只是具有高超技术把控能力的项目经理比较少而已。


   


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值