迭代开发-Adams Wang


Brooks在“20年后的人月神话(The Mythical Man-Month after 20 Years)”明确提出了迭代开发的概念“增量开发模型更佳——渐进地精化”。这种开发方法对项目产生的激励作用是不可估量的,作者在北卡罗来纳大学时,“我常常会被屏幕上第一幅图案、第一个可运行的系统对团队士气产生的鼓舞效果而感到震惊。”而在C++的现实项目中,在极大的压力下,当第一个可执行的原型出现在开发人员面前时,长期的疲惫、沮丧一扫而空。从而,为继续开发提供了动力。这里,长时间高负荷工作并不是被提倡的,但增量开发是软件开发动力学的一种重要手段。

迭代开发可以用“外科手术队伍”、OO及设计模式的实现来实践。面向对象框架的分析设计思想,并不一定非要用面向对象的语言实现。它的一个重要特点,是固化用户要求或者是待开发系统中相对稳定的部分,以牺牲模型某个维度的代价来得到较稳定的模型。然后,在该框架的基础上不断地迭代。“外科手术队伍”则由具有丰富经验的“外科医生”操刀,来主持需求分析和建立迭代框架。少数的人能确保框架不带有过多不必要的非结构性的功能特色,从而保证框架的简捷和良好的扩充性。

迭代开发本身是对变更这个“怪物”的一剂良药,不同迭代周期能较好地容纳阶段(量子)化的变更。在变更的同时,始终有可运行的系统供调试、测试,从而确保项目的质量——质量决定成本,“远远超过最终用户需求的质量是一种取得更高生产力的手段。”(《人件》,即将由清华大学出版社出版,译者为UMLChina翻译组方春旭、叶向群)。

同样,Brooks在“未雨绸缪(Plan to Throw One Away)”中提出了抛弃型原型的概念,并在“《人月神话》的观点:是或非?(Propositions of the Mythical Man-Month: True or False?)”中强调“因此,为舍弃而计划,无论如何,你一定要这样做。”迭代开发是容纳原型,包括抛弃型和非抛弃型。而且,它是一个很好说服管理层和用户的途径——因为,不同的迭代周期和任务本来就在计划之中。在C++的项目中,对于没有坚持在框架设计完成之后,抛弃框架代码原型,至今还有些遗憾,相应所付出的代价就是产品质量和开发人员对该项目信心的丧失。

另外一个提高项目产品质量的方法,Brooks在“整体部分(The Whole and the Parts)”的“系统集成调试”中给出了专家意见,“使用经过调试的构件单元”、“搭建充分的测试平台”、“一次添加一个构件”和“阶段(量子)化、定期变更”。这在目前的实践中依然有指导意义。现在的软件测试水平相信业界人士都非常清楚:很少有规范化的测试;白盒测试基本不做;项目压力过大,不断压缩测试时间……。因此,仔细的系统集成测试非常有必要,能够做到《人月神话》中,OS360的系统测试一半已经非常不错了。

http://www.mmmbook.com/review/pratice.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值