Revisiting Abstractions for Software Architecture and Tools to Support Them
The mid-1990s saw the design of programming languages for software architectures, which define the high-level aspects of software systems including how code components were composed to form full systems. Our paper <italic xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">Abstractions for Software Architecture and Tools to Support Them</i> presented a conceptual view of software architecture based on abstractions used in practice to organize software systems, a language that supported these abstractions, and a prototype implementation of this language (Shaw et al., 1995). By invitation, we reflect on the paper’s principal ideas about system-level abstractions, place the work in a historical context of steadily increasing abstraction power in software development languages and infrastructure, and reflect on how progress since the paper’s 1995 publication has been influenced, directly or indirectly, by this work. We describe current manifestations of architectural ideas and current challenges. We suggest how the strategy we used to identify and reify architectural abstractions may apply to current opportunities.
Authors
- Troy Ross
- Mary Shaw (ORCID: https://orcid.org/0000-0003-1337-4557)
- Daniel V. Klein
Institutions
- Google (United States) (US)
- Red Hat (United States) (US)
- University of Massachusetts Lowell (US)
- Carnegie Mellon University (US)
Publication Details
- Journal
- IEEE Transactions on Software Engineering
- Published
- 2025-01-27
- DOI
- https://doi.org/10.1109/tse.2025.3533549
- Primary Topic
- Advanced Software Engineering Methodologies
- Type
- article
- Field-Weighted Citation Impact
- 0.00