A Survey of Tool Support for Working with Design Decisions in Code
S Mehrpour, TD Latoza - ACM Computing Surveys, 2023 - dl.acm.org
ACM Computing Surveys, 2023•dl.acm.org
Whenever developers choose among alternative technical approaches, they make a design
decision. Collectively, design decisions shape how software implements its requirements
and shape non-functional quality attributes such as maintainability, extensibility, and
performance. Developers work with design decisions both when identifying, choosing, and
documenting alternatives and when later work requires following and understanding
previously made design decisions. Design decisions encompass design rationale …
decision. Collectively, design decisions shape how software implements its requirements
and shape non-functional quality attributes such as maintainability, extensibility, and
performance. Developers work with design decisions both when identifying, choosing, and
documenting alternatives and when later work requires following and understanding
previously made design decisions. Design decisions encompass design rationale …
Whenever developers choose among alternative technical approaches, they make a design decision. Collectively, design decisions shape how software implements its requirements and shape non-functional quality attributes such as maintainability, extensibility, and performance. Developers work with design decisions both when identifying, choosing, and documenting alternatives and when later work requires following and understanding previously made design decisions. Design decisions encompass design rationale, describing the alternatives and justification for a design choice, as well as design rules, describing the constraints imposed by specific alternatives. This article summarizes and classifies research on these activities, examining different approaches through which tools may support developers in working with design decisions in code. We focus both on the technical aspects of tools as well as the human aspects of how tools support developers. Our survey identifies goals developers have in working with design decisions throughout the lifecycle of design decisions. We also examine the potential support tools may offer developers in achieving these goals and the challenges in offering better support.
ACM Digital Library