首页 新闻 搜索 短信 分类 聊天 导航
新浪首页 > 科技时代 > 软件 > 正文
分析:“XP”能否进行大规模软件开发

http://www.sina.com.cn 2001年07月04日 13:03 日经BP社

  在大型软件开发项目中不能够使用“XP”吗?--将最近有关XP的报道整理一下,首先就会产生这么一个疑问。

  这里所说的XP与微软的Windows XP和Office XP没有任何关系。这里的XP指的是eXtreme Programming这一新型软件开发方法。把这种方法简称为XP纯属笔者的喜好。

  XP是一种新型软件开发方法,其目的是“在极短的时间内开发出运行良好而且包含有对用户而言最有价值的功能软件”。详情参见书籍《XP eXtreme Programming入门》(Pearson Education)、Web站点“eXtreme Programming FAQ”(objectclub.esm.co.jp/eXtremeProgramming/)等。

  XP本质上是面向“开发小组”的开发方法。说到开发小组,少则应该有2~3人,多则可达到15人左右。对于需要50人、100人或者更多技术精英的开发项目,XP就不能使用了。因此,(至少几个月前)大型计算机制造商和大型系统集成商就异口同声地表示:“XP毕竟是面向小型项目的开发方法。作为以大项目为核心业务的本公司将不会采用这种方法”。

  不过,大型企业的“XP=开发小组的方法=与(以大项目为核心的)本公司无关”的逻辑真的能成立吗?虽然也明白“这样想也难怪”,但总是觉得这种说法有些不合适。

  如果采用“渐进式方法”,XP就可以应用于大规模开发

  所谓的大规模软件开发项目通常指,1)开发人员多;2)作为开发对象的项目规模大。大型开发商说的大项目通常都满足上述1)和2)两个条件。也就是说投入数百人的开发力量一气构筑起拥有数百万个开发步骤的软件。

  按这个标准看,XP如前所述不能满足1)要求的条件。但能否满足2)的要求呢?

  XP的倡导者Kent Beck断言:“XP可以用于大规模的系统开发”。不过,XP的大规模开发方法与普通的大规模开发项目大不相同。XP不是一气开发出所有的应用,而是采用“渐进式”。

  所谓的渐进不是从一开始就明确决定应用的具体标准,而是首先做出一个小型的框架,然后在大胆的改进中不断促进其“成长”。Beck将这种开发方法比作园艺。

  “在园艺中,植物要逐年一点点地培育下去。这与软件的开发也基本相同。一年年地追加功能是再‘自然’不过的事情了。岂能一下子实现所有的功能、一直用下去!即使勉为其难开发出了这样的软件,最后往往也变成了一堆垃圾、被扔到一边无法使用。而XP不仅不排斥变化,而且还欢迎变化,并希望有更多的变化。曾经有过这样的情况:3个人经过6年时间的开发,结果形成了可以称之为大规模系统的软件。XP的一个重要的思想就是‘持续性’”。

  显然,那种预先完全确定好系统的功能然后再分为第1次开发、第2次开发等的阶段性实现的做法与XP的“渐进式的”方法完全是背道而驰的。

  实际上,早在Beck之前就有人表达过类似的看法。此人就是日本面向对象研究开发的先驱--SRA的青木淳。他在《面向对象系统分析设计入门》书中说:“大凡软件开发均应限定于小规模(较少的功能要求和较短的开发期限),须循序渐进,且忌急于求成”。不得不提到的是,Beck和青木都是使用Smalltalk这一面向对象语言的著名高手。

  难道要把反软件“本质”的开发进行到底吗?!

  之所以说XP采取的是渐进的方法,按纯属软件工程外行的笔者的理解,是因为XP“采用了尽可能忠实于软件‘本质’的开发方法”。说到软件的本质,这是一个非常含糊的概念,但诸如可塑性太大(简单地说就是弹性十足)以及极易受到人这一因素的影响等原因造就了所谓的软件“特征”(可能还有其它各种各样的因素,或许也有笔者理解不对之处,还望读者诸公多多指教)。

  不论是要素的定义还是设计,想预先做出全面的规划,都是不可能的事情。青木在上述的著作中就列举出了面向对象软件开发中的3大“前提”:1)用户要求的功能永远不可琢磨;2)开发人员设计的功能永远不能确定;3)软件开发永远不会完成。

  总之,XP采取渐进的方法就是“因为软件本来就应该按照其固有的特点来开发”。当然,必须结合当时的情况开发出满足用户需求的系统。在不违反软件本质的前提下,如何才能展开令开发人员和用户都感到愉快的软件开发--从这个角度来看XP,就会明白XP这种开发方法其实是建立在深思熟虑的基础上的。

  相反,那些动用大量的开发人员同时进行开发的大项目,猛一看好像效率很高,其实这种方法大大违反了软件的“本质”。或许正是这一原因导致了前面所提到的(XP与大项目与无关的说法)不合适的感觉。

  当然,笔者绝无凡软件开发一定要用XP的意思。因为XP本身还有不少含糊之处,还存在有这样那样的问题。不做任何考查就导入XP是相当危险的。但是如果您的工作与软件开发有某种关系的话,以XP为“题材”仔细考虑一下XP的方法是不是真的合适,进一步再琢磨一下到底软件开发应该怎么进行,我想肯定不会有什么坏处的。 (IT Pro)

  点击此处发送手机短信将此条新闻推荐给朋友
  短信发送,浪漫搞笑言语传情
  订科技短信第一时间掌握IT业界动态
  点击此处订阅手机短信NASDAQ最新行情


发表评论】【应用软件】【科技聊天】【关闭窗口

新 闻 查 询



分 类 广 告
  • 长城笔记本电脑
  • 特惠国内国际机票
  • 田横岛休闲游
  • 中国青年旅行社
  • 星浪演艺学校招生
  • 怡顺货运一路顺风
       北京站  广东站
       山东站  上海站
  • 分类广告刊登热线>>



    科技时代意见反馈留言板 电话:010-82612286   欢迎批评指正

    网站简介 | 用户注册 | 广告服务 | 招聘信息 | 中文阅读 | Richwin | 联系方式 | 帮助信息 | 网站律师

    Copyright © 1996 - 2001 SINA.com, Stone Rich Sight. All Rights Reserved

    版权所有 四通利方 新浪网