Introduction


XP has been used mostly to build systems of medium or small complexity. Because of its fine-grained increments (one or a few classes each time [Beck2000; Martin+2001]), it is difficult to consider global aspects such as distribution, authorization, and concurrency. However, many important systems for example, manufacturing, vehicle navigation, and business planning are quite complex. Their complexity comes from a large number of interacting entities, many relationships between their units, complex constraints on the values of their variables, and the need to satisfy nonfunctional requirements, which normally implies dealing with concurrency and distribution aspects.

The lack of a global view in XP comes from its emphasis on immediate implementation, without explicit analysis and design stages. Although modeling is not explicitly excluded, there is little incentive for it; typically, partial models are used and then discarded [Fowler2001]. This precludes finding commonalities and optimizations in the global conceptual model. Refactoring cannot correct some conceptual problems or consider nonfunctional aspects.

Patterns let us start a conceptual model in the right direction and use the knowledge of others. If the patterns used are carefully selected, they embody good design principles, and a designer can apply these principles transparently [Fernandez2000A], which results in high-quality models. After this, a variety of architectural patterns can be used to deal with design aspects.

We propose building first the conceptual model and the tests for the complete system (or close to it) and postponing the start of implementation until this model is relatively complete. This enables the designers to consider global aspects and build more complex applications. Classes can still be built and tested incrementally, but now we have the guidance of a global model. We have presented the concept of Semantic Analysis Patterns (SAPs) [Fernandez+2000D], miniapplications corresponding to a basic set of use cases or user stories; they can be used to build the global model incrementally. They can also be used at each XP stage to guarantee the application of good software development principles.



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