This Article 
 Bibliographic References 
 Add to: 
Five Considerations for Software Architecture, Part 1
May/June 2010 (vol. 27 no. 3)
pp. 63-65
Frank Buschmann, Siemens Corporate Technology
Kevlin Henney, independent consultant
What are the top five properties that make a software design elegant? That's a tough question that is not easy to answer. In this column we explore the first three of five properties leading architects have found useful: economy, visibility, spacing, symmetry, and emergence. All five properties help with a lean and expressive modularization of architecture, avoid unnecessary design clutter, and support a clear and meaningful separation of concerns where each distinct concept is clearly identifiable and tangible. All together the properties provide a value system that can broadly guide architects' design decisions

1. F. Buschmann, "Learning from Failure, Part 2: Performitis, and Other Diseases," IEEE Software, vol. 27, no. 1, 2010, pp. 10–11.
2. F. Buschmann, "Learning from Failure, Part 3: On Hammers and Nails, and Falling in Love with Technology and Design," IEEE Software, vol. 27, no. 2, 2010, pp. 49–51.
3. F. Buschmann, K. Henney, and D.C. Schmidt, Pattern-Oriented Software Architecture—A Pattern Language for Distributed Computing, vol. 4, John Wiley & Sons, 2007.
4. K. Henney, "Simplicity before Generality, Use before Reuse," 97 Things Every Software Architect Should Know, Richard Monson-Haefel, ed., O'Reilly, 2009, pp. 36–37.
5. K. Beck, Test-Driven Development: By Example, Addison-Wesley Professional, 2002.
6. R. Wirfs-Brock and A. McKean, Object Design: Roles, Responsibilities, and Collaborations, Addison-Wesley, 2002.
7. E. Evans, Domain-Driven Design: Tackling Complexity in the Heart of Software, Addison-Wesley, 2004.
8. D.M. Weiss and C.T.R. Lai, Software Product-Line Engineering: A Family-Based Software Development Process, Addison-Wesley, 1999.

Index Terms:
architecture economy, architecture elegance, architecture expressiveness, modularization, separation of concern
Frank Buschmann, Kevlin Henney, "Five Considerations for Software Architecture, Part 1," IEEE Software, vol. 27, no. 3, pp. 63-65, May-June 2010, doi:10.1109/MS.2010.72
Usage of this product signifies your acceptance of the Terms of Use.