Uncovering Architectural Design Decisions
Arman Shahbazian, Youn Kyu Lee, Duc Le, Nenad Medvidovic

TL;DR
This paper introduces a technique to identify and analyze architectural design decisions in software systems, addressing gaps in understanding how decisions are made, represented, and evolve over time.
Contribution
It provides a systematic method for uncovering architectural decisions from existing systems, enhancing understanding of their role and evolution.
Findings
Successfully applied to over 100 system versions
Accurately uncovers embedded architectural decisions
Helps in understanding decision impact and system evolution
Abstract
Over the past three decades, considerable effort has been devoted to the study of software architecture. A major portion of this effort has focused on the originally proposed view of four "C"s---components, connectors, configurations, and constraints---that are the building blocks of a system's architecture. Despite being simple and appealing, this view has proven to be incomplete and has required further elaboration. To that end, researchers have more recently tried to approach architectures from another important perspective---that of design decisions that yield a system's architecture. These more recent efforts have lacked a precise understanding of several key questions, however: (1) What is an architectural design decision (definition)? (2) How can architectural design decisions be found in existing systems (identification)? (3) What system decisions are and are not architectural…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAdvanced Software Engineering Methodologies · Software Engineering Research · Software System Performance and Reliability
