Trade-off-oriented Development


A Paradigm for Making Quality-Attribute Trade-offs First-Class

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.

Cannot render svg
2019

Trade-off-Oriented Development - Making Quality Attribute Trade-offs First-Class

Tobias Dürschmid, Eunsuk Kang, and David Garlan
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},
}