Trade-off-oriented Development
A Paradigm for Making Quality-Attribute Trade-offs First-Class
Description
Implementing a solution for a design decision that precisely satisfies the trade-off between quality attributes can be extremely challenging. Further, typically trade-offs are not represented as first-class entities in development artifacts. Hence, decisions might be suboptimal and lack requirements traceability as well as changeability. We propose Trade-off-oriented Development (ToD), a new concept to automate the selection and integration of reusable implementations for a given design decision based on quality attribute trade-offs. Implementations that vary in quality attributes and that solve reoccurring design decisions are collected in a design decision library. Developers declaratively specify the quality attribute trade-off, which is then used to automatically select the best fitting implementation. We argue that thereby, software satisfies the trade-offs more precisely, requirements are traceable and changeable, and advances in implementations automatically improve existing software.
Publications related to this Project
2019
Trade-off-Oriented Development - Making Quality Attribute Trade-offs First-Class
Abstract, BibTeX, DOI, Preprint (PDF), Poster (PDF), Slides
Implementing a solution for a design decision that precisely satisfies the trade-off between quality attributes can be extremely challenging. Further, typically trade-offs are not represented as first-class entities in development artifacts. Hence, decisions might be suboptimal and lack requirements traceability as well as changeability. We propose Trade-off-Oriented Development (ToD), a new concept to automate the selection and integration of reusable implementations for a given design decision based on quality attribute trade-offs. Implementations that vary in quality attributes and that solve recurring design decisions are collected in a design decision library. Developers declaratively specify the quality attribute trade-off, which is then used to automatically select the best fitting implementation. We argue that thereby, software satisfies the trade-offs more precisely, requirements are traceable and changeable, and advances in implementations automatically improve existing software.
@inproceedings{Duerschmid2019TOD,
author = {D\"{u}rschmid, Tobias and Kang, Eunsuk and Garlan, David},
title = {Trade-off-Oriented Development -- Making Quality Attribute Trade-offs First-Class},
booktitle = {Proceedings of the 41st International Conference on Software Engineering: New Ideas and Emerging Results},
location = {Montreal, Quebec, Canada},
pages = {109--112},
series = {ICSE-NIER '19},
year = {2019},
numpages = {4},
url = {https://doi.org/10.1109/ICSE-NIER.2019.00036},
doi = {10.1109/ICSE-NIER.2019.00036},
acmid = {3339180},
publisher = {IEEE Press},
address = {Piscataway, NJ, USA},
keywords = {design decision, non-functional property, quality attribute, reuse, software architecture, software design},
}