Software Architecture at Carnegie Mellon
Mary Shaw, David Garlan, and Bradley Schmerl, April 2017
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:
- Establishing the basic framework of architectural styles, similar to patterns.
- Leading the development of formal techniques for architectural analysis.
- Designing, teaching, and exporting the first course in software architecture.
- Translating research results to a form that reaches practitioners effectively.
- Developing and disseminating a set of architecture-centric methods and standards from the SEI.
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 initiatives (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. George Fairbanks, a CMU software engineering PhD graduate, has published an influential book on architectural design for agile processes. Another graduate, Anthony 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.
- In 2017 David Garlan, Bradley Schmerl, and Mary Shaw received the Carnegie Mellon School of Computer Science’s Allen Newell Award for Research Excellence "for the development of software architecture as an organizing principle for large-scale systems, its influence on software practice, and its recent applications to cyber-physical systems and run-time failure analysis."
- In 2016 Shaw received the George R. Stibitz Computer & Communications Pioneer Award "for seminal & pioneering contributions to software architecture & computer science curricula"
- In 2014 Shaw received the National Medal of Innovation and Technology.
- In 2012 and 2013 Garlan was elected Fellow of the IEEE ("for contributions to software architecture") and of the ACM ("for contributions to the development of software architecture as a discipline in software engineering.").
- In 2012, Jonathan Aldrich received the an ICSE retrospective "most influential paper" award for his paper on his Arch Java research in the 10th previous ICSE.
- In 2011 ACM SIGSOFT selected Garlan and Shaw as co-recipients of its Outstanding Research Award, citing the software architecture work.
- Also in 2011, ACM SIGSOFT selected a paper by Garlan and his students Allen and Ockerbloom for an Impact Paper award.
- The 2010 CASCON selected one of Garlan's papers among 14 high-impact papers from the first decade of CASCON.
- When IEEE Software selected the editors' choice of 35 "25th anniversary top picks" in 2009, the list included four CMU papers, including papers by Garlan and by Shaw and Clements on software architecture; these (plus another by Shaw) were among the seven whose authors were invited to write retrospective essays.
- Jonathan Aldrich received the 2007 Dahl-Nygaard Junior Prize for his work on ArchJava.
- The Reengineering Forum, an industry association, awarded the 2005 Stevens Award and Citation to Shaw and Garlan; the purpose of the award is "to recognize outstanding contributions to the literature or practice of methods for software and systems development."
- In 2004 a paper by Garlan and his student Allen earned an ICSE retrospective "most influential paper" award for the best paper of the 10th previous ICSE.
- Also in 2004, the book Documenting Software Architectures by Garlan and others was selected for a Productivity Award in the 2003 annual Jolt awards.