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.
The slides to the presentation can be found here
Publications related to this Project
Trade-off-Oriented Development - Making Quality Attribute Trade-offs First-Class
ICSE-NIER '19: ICSE New Ideas and Emerging Results 2019
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 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.
@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}, }