A survey of software architecture is provided by David Garlan, in SoftwareArchitectureARoadMap. Garlan loosely defines architecture as _a software system's gross organization as a collection of interacting components._ He recognizes six aspects of software development where architecture can play an important role: * ProgramUnderstanding: software architecture simplifies our ability to comprehend large systems. * SoftwareReuse * Construction * SoftwareEvolution: software architecture can expose the dimensions along which a system is to evolve. * Analysis * Management ---- There is a whole lot to say about SoftwareArchitectureDefinitions! ---- Some of the text books on software architecture include (by year): * W. Pree. _Design Patterns for Object-Oriented Software Development_. Addison-Wesley, 1995. * M. Shaw and D. Garlan. _Software Architecture: Perspectives on an Engineering Discipline_. Prentice-Hall, 1996. * F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, and M. Stal. _Pattern-Oriented Software Architecture_. Wiley, 1996. * L. Bass, P. Clements, and R. Kazman. _Software Architecture in Practice_. Addison-Wesley, 1998. * C. Hofmeister, R. Nord, and D. Soni. _Applied Software Architecture_. Addison-Wesley, 2000. * J. Bosch. _Design and Use of Software Architectures_. Addison-Welsey, 2000. * M. Jazayeri, A. Ran, and P. van der Linden. _Software Architecture for Product Families: Putting Research into Practice_. Addison-Wesley, 2000. ---- Resources include: * http://www.cetus-links.org/oo_design.html, containing lots of links * http://www.sei.cmu.edu/ata/ata_init.html, including an online bibliography and pointers to events. * http://www.serc.nl/people/florijn/interests/arch.html, a collection of resources maintained by Gert Florijn. * The Working IEEE / IFIP conference on software architecture ([[WICSA]]). * The Alberta Software Engineering Research Consortium has organized a workshop on software architectures: papers on line at http://www.cs.ualberta.ca/~kenw/conf/awsa2001/ ---- Architecture Description Languages: * The SEI maintains a list at http://www.sei.cmu.edu/architecture/adl.html * Nenad Medvidovic, Richard N. Taylor, A Classification and Comparison Framework for Software Architecture Description Languages. IEEE TSE, 26(1), 2000. http://www.computer.org/tse/ts2000/e0070abs.htm * Nenad Medvidovic, David S. Rosenblum, David F. Redmiles, and Jason E. Robbins. Modeling software architectures in UML. TOSEM 11(1):2-57, 2002. ---- Selected papers: * Mary Shaw's keynote at ICSE 2001 entitled _The Coming-of-Age of Software Architecture Research_: availabe at http://www-2.cs.cmu.edu/afs/cs.cmu.edu/project/vit/www/paper_abstracts/keynote01.html * [[The Four Plus One View Model Of Architecture]]. ---- Whether _architecture_ is an adequate metaphor in software development is an issue of debate, which also requires a good understanding of the nature of traditional architecture. * See http://www.urban.uiuc.edu/Courses/Varkki/up326/manual/reference.htm for an interesting course on urban design containing relevant references and an approach that may be helpful for software development as well; * See Jaon Baragry's and Karl Reed's paper in WICSA 2001 for a thought provoking discussion on the validity of the architecture analogy. ---- See also * ArchitectureExtraction * SoftwareProductLines * DomainEngineering * ObjectOrientedFrameworks ---- CategoryArchitecture | CategoryEntryPoint | Contributions by ArieVanDeursen