注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

银河军团大本营

光荣的军团,永远的丰碑 <坚持原创>

 
 
 

日志

 
 

迭代开发与软件重构  

2009-04-19 22:54:08|  分类: 软件工程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

    从正式进入软件业至今,已有七年了。

    回顾这几年的从业历程,我发现:迭代开发与软件重构已成为软件开发的一种常态。

    很多时候在有一些模糊的想法时,可能就开始了开发工作。这种做法显然与传统的结构化方法有很大区别,这里面也许有分析设计上的不完善,然而更多时候是为了尽快做出原型,以与用户尽早进行沟通交流。迭代开发就很适用于这种需求。

    还有的时候,原有的一些功能模块可能写得很不好,或对新的需求极不适应,如果在原来的基础上修改,可能难度极大:也许原来的架构很不合理,或者是原先的设计有大的缺陷,又或者是原来的代码太过混乱……种种情况导致修改的代价极高。这时候就需要软件重构,对于功能已经很明确的,直接用结构化方法来重构就好了;但对于新的需求,可能迭代模型才是更好的选择。

    或许是我所经历的工程项目都不是很大规模的应用,因而我对结构化方法的感悟不是很深入。平日的工作中遇到最多的往往是一些需求不很明确的项目,而用户以及项目负责人员却需求尽快看到实际的东西,如果用结构化的方法,则不知猴年马月才能拿出具体的软件来。更糟糕的是,用户的需求经常在变化,可能你这边用结构化方法还没分析好,用户又有了新的想法,在这种情况下你是推倒重来,还是勉力去修改正在进行的设计以适应变化呢?显然,重来与修改都很难适应。而迭代的优点使得它可以很好地应用在这种开发中:首先,找出当前的重点需求,尽快做出原型,立即与用户及其他相关人员进行沟通,请他们评估当前原型;如果可行,则在些基础上进一步完善及加入其他功能;如果不可行,则立即调整方向,以做出需要的原型来。实际上,用户不可能一下想出他们需要的功能,而在有原型的情况下,则比较容易与用户尽早沟通,以弄清他们的实际需求。

    同样地,系统重构也常常成为我工作的一部分。有些时候,在往已有模块中加入新的功能时却发现原有的代码过于混乱;也有些时候是为了整理现有的一些功能,以便代码重用。系统重构往往比修改能更好地做到添加新功能及代码重用。结构化方法当然也可以用于系统重构,然而实际开发过程中,我们往往希望尽早看到重构的效果以进行评估,以确定重构的代价是否可被接受,这时迭代就更为适合。从我实际的经验教训来看,迭代可以用较少的代价,更快地达到重构的目的。

    对于像我这样一个没有大型项目经历的人来说,迭代方法对我实际开发工作的帮助可谓大矣。不知道那些大型项目在如今是用什么样的方法?是结构化还是迭代?或者两者混用?又或者还有其他的方法?

  评论这张
 
阅读(768)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018