Discussion


In considering the suitability of these two models for XP development, we note that the ad hoc model requires no a priori test planning beyond the current test cases. Test cases can be identified and tested one at a time on demand. This approach is consistent with common XP testing practice. Although with XP the order in which test cases are developed is based somewhat on business value, the factors considered by our optimized ordering method are not explicitly considered. So the amount of testing early in the development process is not guaranteed with XP to be maximized, and it may be necessary to develop a number of methods before any expected-positive test runs can be executed. On the other hand, because the development ordering in XP is driven by the order in which functionality is needed, the optimized ordering method may have limited utility in new development situations, although empirical work is needed to validate this one way or the other.

Regardless of its applicability to new development situations, however, the optimized ordering method appears to be promising in the context of refactoring, particularly with respect to certain refactorings [Fowler2000]. In particular, consider the Extract Class refactoring [Fowler2000]. This refactoring provides transformation rules to extract one class from another. We note that in such a case, the test cases for the class being extracted already exist before the refactoring is initiated. Our optimized development ordering model provides an easy-to-determine (with tool support) ordering for extracting methods, attributes, and their associated test cases. In [Fowler2000], the only constraint placed on such an ordering is to ensure that methods are extracted in an order that considers calling interdependencies among methods (for example, called methods are extracted before caller methods). Our development ordering tool also considers such interdependencies in generating its development orderings.

We are currently initiating experimental work to evaluate the utility of generating optimized development orderings in the context of various refactorings. A list of refactorings that we are considering from [Fowler2000] follows. In each of these refactorings, a new class is generated in which all methods, attributes, and test cases for the new class existed before initiating the refactoring.

  • Extract Class

  • Extract Hierarchy

  • Extract Subclass

  • Extract Superclass

  • Inline Class

  • Introduce Null Object

  • Introduce Parameter Object

  • Replace Array with Object

  • Replace Data Value with Object

  • Replace Delegation with Inheritance

  • Replace Inheritance with Delegation

  • Separate Domain from Presentation

  • Tease Apart Inheritance



Extreme Programming Perspectives
Extreme Programming Perspectives
ISBN: 0201770059
EAN: 2147483647
Year: 2005
Pages: 445

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net