![]() |
||
| |
||
| Columns | The Architect | 2005 | Number 1 |
||||||||||||||||||||||||||||||||||||||||||||
|
Read
previous Read
previous features
If
you would like
|
Integrating
Architecture Methods: The Case of Extreme Programming In a previous column (“Rethinking the Software Life Cycle”), we examined the traditional software development life cycle in the context of the architecture-centric methods that we have developed at the Carnegie Mellon Software Engineering Institute (SEI) over the past 10 years. These methods include the Architecture Tradeoff Analysis Method (ATAM) [Clements 02], the SEI Quality Attribute Workshop (QAW) [Barbacci 03], the SEI Attribute-Driven Design (ADD) Method [Bass 03], the SEI Cost Benefit Analysis Method (CBAM) [Bass 03], and SEI Active Reviews for Intermediate Design (ARID) [Clements 02]. In a subsequent column (Integrating Architecture Methods: The Case of the Rational Unified Process), we saw how these architecture-centric methods fit into the framework of plan-driven approaches as exemplified by the Rational Unified Process (RUP) [Kazman 04]. This column shows how these architecture-centric methods can be incorporated into agile approaches as exemplified by Extreme Programming (XP). XP practices are based on four values: (1) communication, (2) simplicity, (3) feedback, and (4) courage:
In XP, the customer and the developers together determine the functionality that will be developed in a series of iterations. The first iteration influences the overall structure of the system. “The first iteration puts the architecture in place. Pick stories for the first iteration that will force you to create ‘the whole system,’ even if it is in skeletal form” [Beck 04]. Modifiability is implied by XP, but it is difficult to characterize. Developers develop the system incrementally, and when the system does not support new functionality, they refactor the design. SEI architecture-centric methods can provide explicit and detailed guidance on eliciting the architectural requirements (such as modifiability), on designing the architecture, and on analyzing the resulting design. In situations where requirements are changing rapidly and a lightweight approach is warranted, the concepts of quality attributes and architectural tactics can enhance the process of designing a system that will meet its requirements. Students participating in studio projects in the Master of Software Engineering Program at Carnegie Mellon University have been using the Architecture-Centric Development Method—that uses concepts from the QAW, the ADD method, and the ATAM—in this way. When developing complex, large-scale applications, XP should be adapted to include more kinds of architectural information. Boehm and Turner demonstrate a solution for adapting XP to develop complex, large-scale applications by introducing elements of plan-driven methods [Boehm 04]. These elements include high-level architectural plans to provide essential big-picture information and use of design patterns and architectural solutions, rather than simple design, to handle foreseeable change. The architecture developed by the ADD helps localize the effects of design changes caused by changing functional requirements, since the architecture is influenced by the quality attribute requirements and is not affected by changing functional requirements. Including architecture in this way might also delay refactoring. However, investing in the architecture means that it will take longer to get to code, because the first iteration is what some people call a “zero-feature release.” In such a release, the architecture is put in place, but no user-visible features are delivered to the customer. The benefit of including the SEI methods is to address quality attributes in an explicit, methodical, engineering-principled way. In summary
References
About the Authors Robert L. Nord is a senior member of the technical staff in the Product Line Systems Program at the Software Engineering Institute (SEI) where he works to develop and communicate effective methods and practices for software architecture. Prior to joining the SEI, he was a member of the software architecture program at Siemens, where he balanced research in software architecture with work in designing and evaluating large-scale systems. He earned a Ph.D. in Computer Science from Carnegie Mellon University. Dr. Nord lectures on architecture-centric approaches. He is co-author of Applied Software Architecture and Documenting Software Architectures: Views and Beyond. James E. Tomayko Dr. James E. Tomayko is a teaching professor at the School of Computer Science at Carnegie Mellon and a part-time senior member of the technical staff of the Software Engineering Institute (SEI). He is the director emeritus of the Master Software Engineering Program in SCS. Previously he was leader of the Academic Education Project at SEI. Prior to that, he founded the software engineering graduate program at the Wichita State University. He has worked in industry through employee, contract or consulting relationships with NCR, NASA, Boeing Defense and Space Group, CarnegieWorks, Xerox, the Westinghouse Energy Center, Keithley Instruments and Mycro-Tek. He has given seminars and lectures on software fault tolerance, software development management, fly-by-wire, and software process improvement in the United States, Canada, Mexico, Argentina, Spain, Great Britain, South Africa, Germany, China, and Columbia. Tomayko's courses on managing software development and overviews of software engineering are among the most widely distributed courses in the SEI Academic Series. Tomayko
has had a parallel career in the history of technology, specializing in
the history of computing in aerospace, and has written five books and
several articles on spacecraft computer systems and software, concentrating
primarily on NASA's systems. Dr. Tomayko is on the editorial staff of
the IEEE Annals of the History of Computing. The views expressed in this article are the author's only and do not represent directly or imply any official position or view of the Software Engineering Institute or Carnegie Mellon University. This article is intended to stimulate further discussion about this topic. |
|||||||||||||||||||||||||||||||||||||||||||||
|
Copyright ©
2005 Carnegie Mellon University. All rights reserved.
|
||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||