Software architecture is the fundamental large-scale structure and performance of a software system, with emphasis on the abstract structures that define the system and the relations among those structures, together with the principles and guidelines that govern the design and evolution of the system. Selecting an appropriate architecture is now recognized as a critical step in the engineering of complex software systems for everything from the anti-lock braking systems in cars to the international banking system.
The phrase "software architecture" has been used to describe software system structure since (at least) the second NATO software engineering conference in 1969, but systematic study of software architectures began only in the late 1980s, led by CMU researchers. Now there is both an established research community for software architecture and a community of practice. The research community has a literature, multiple conferences, and an IFIP working group.
Software developers aspire to the title "software architect"; development of reference materials is supporting adopting in practice; and the senior technical leaders and problem solvers in software development companies are the software architects. Indeed, in October 2010 CNN Money identified "software architect" the best job in America, and it remains in the top three.
Carnegie Mellon is the premier institution in the area of software architecture, with strong groups in both the School of Computer Science and the Software Engineering Institute.
Carnegie Mellon leadership in software architecture includes:
A 2005 study examined citation counts for a sample of software architecture literature, specifically works with "software architecture" in the title. In this sample, 9 of the 17 most-often-cited works are from Carnegie Mellon. The most-cited work in the sample is Shaw and Garlan's book Software Architecture: Perspectives on an Emerging Discipline.
The Software Engineering Institute carries software architecture to practice through major technology initiative (with a current staff of over 20), a certificate sequence of training courses backed by a series of influential technical books on software architecture, and sponsorship and creation of three recurring events: the Software Architecture Technology User Network (SATURN) workshops, the Working International Conference on Software Architecture (WICSA), and an annual software architecture educators' workshop.
The impact of CMU on the state of the practice has been profound. The SEI has published 5 practitioner-oriented books on software architecture, several in their second and third editions. Fairbanks, a CMU software engineering PhD graduate has published an influential book on architectural design for agile processes. Another graduate, Lattanze, has published an industrially-focused book on architecture design practices. Companies (such as Boeing, LG, and General Motors) and governmental agencies (such as NASA) rely on CMU for training their software architects through on-site instruction, distance education courses, executive education, and certification training. CMU faculty have been influential in creating and promoting industrial standards for architecture, including those within the Object Management Group (for UML 2.0) and SAE (AS5506 - AADL). In 2010, the NRC report Critical Code identified software architecture as one of three critical areas for software producibility for DoD. In 2014, the architecture definition process is being included in the drafts of standards ISO/IEC/IEEE 12207 (Software Life-Cycle Processes) and ISO/IEC/IEEE 15288 (System Life-Cycle).
Carnegie Mellon's accomplishments have been recognized repeatedly.