XP vs RUP
mach 2003-03-02 12:51:06 1.在XP的体系中,版本计划和迭代计划是以用户故事的优先级排序的,而在RUP中,迭代是以风险排序的,似乎XP的方法更加合理,因为一个优先级别很低的需求可能具有很高的风险,对于这样的风险是不值得花费很多资源去解决的。
2.XP的测试先行是有道理的,单元测试代码的编写看似浪费时间,其实并非如此:测试代码起到了详细设计的作用,它规定了模块的契约,提供了可回归的自动化测试手段,这也是进行代码重构的基础,而重构是XP中以代码代替详细设计的手段之一,只有拥有描述了代码契约关系的测试代码,才能保证重构后的结果是与预期一致的,否则重构是很危险的,尤其是对别人的代码进行重构的时候。RUP中是传统的编码-测试过程,但是在其中并没有确定详细设计的方法和程度,在缺少详细设计的情况下,先编码后进行单元测试是错误的,因为这时你的测试用例是根据代码制定的,这样是没有意义的。
3.XP中涉及了任务分配的具体方法:由开发人员自己估算、自己选择任务,这是很好的方法。而RUP中没有具体描述任务如何分派。
4.在XP中现场客户是非常重要的,他可以避免开发人员对需求无谓的争论和猜测,同时对需求的排序是由他负责的,而在RUP中这个工作是由架构设计师负责的,这是由于RUP更加重视架构的概念造成的。
5.XP中指出代码是集体所有的,任何人都拥有所有代码,并列举出种种好处,但是这种做法的可操作性不高,需要开发人员具有高度的责任感和主动性,这是一种理想情况,实际工作中,如果操作不善,很可能会带来很多麻烦。
6.关于XP中的结对编程,同样存在可操作性的问题,首先这样需要会造成资源的浪费,另外如何保证那个不操作键盘的程序员进入状态也是个问题。
7.RUP和XP都是用例驱动的迭代式开发,但二者在对架构的重视方面有所不同,RUP中架构是非常重要的,而在XP中没有明确的架构的概念,隐喻是个类似的概念,但二者并不完全相同,隐喻更象是领域对象的集合以及关于它们如何交互的一个描述,而不完全是架构的概念,在这点上RUP似乎更加周密一些。
总之,虽然印象中RUP是庞大的,而XP是敏捷的,但其实二者是有很多相似之处的,完全可以将其结合起来形成适合于自己的软件开发过程。
以上是抛砖引玉,欢迎各位同行探讨。