Exploring Viable Algorithmic Options for Automatically Creating and Reconfiguring Component-based Software Systems: A Computational Complexity Approach (Full Version)
Todd Wareham, Marieke Sweers

TL;DR
This paper uses computational complexity analysis to evaluate the feasibility of fully automatic component-based software system creation and reconfiguration, revealing inherent limitations and conditions for efficiency and reliability.
Contribution
It provides a systematic complexity-based framework to assess the algorithmic possibilities for automatic component selection and adaptation in software engineering.
Findings
Automatic approaches are generally not both efficient and reliable.
Restrictions exist under which automatic approaches can be efficient and reliable.
Parameterized complexity analysis helps explore algorithmic options in software engineering.
Abstract
Component-Based Development (CBD) is a popular approach to mitigating the costs of creating software systems. However, it is not clear to what extent the core component selection and adaptation activities of CBD can be implemented to operate automatically in an efficient and reliable manner or in what situations (if any) CBD is preferable to other approaches to software development. In this paper, we use computational complexity analysis to determine and compare the computational characteristics of fully automatic component-based software system creation and reconfiguration by de novo design, component selection, and component selection with adaptation. Our results show that none of these approaches can be implemented to operate both efficiently and reliably in a fully automatic manner either in general or relative to a number of restrictions on software systems, system requirements,…
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 Engineering Techniques and Practices
