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

05/10/2022
by   Todd Wareham, et al.
0

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, components, and component adaptation. We also give restrictions under which all of these approaches can be implemented to operate both efficiently and reliably. As such, this paper illustrates how different types of computational complexity analysis (in particular, parameterized complexity analysis) can be used to systematically explore the algorithmic options for implementing automatic activities in software engineering.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/12/2022

Viable Algorithmic Options for Creating and Adapting Emergent Software Systems

Given the complexity of modern software systems, it is of great importan...
research
05/10/2022

Exploring Viable Algorithmic Options for Learning from Demonstration (LfD): A Parameterized Complexity Approach

The key to reconciling the polynomial-time intractability of many machin...
research
05/23/2023

A Prelimanary Exploration on component based software engineering

Component-based software development (CBD) is a methodology that has bee...
research
06/06/2023

A Review Of Progress for Component Based Software Cost Estimation From 1965 to 2023

Component Based Software Engineering (CBSE) is used to develop software ...
research
08/12/2021

Operationalizing Human Values in Software Engineering: A Survey

Human values, such as inclusion and diversity, are defined as what an in...
research
04/02/2019

Software Engineering for Intelligent and Autonomous Systems: Report from the GI Dagstuhl Seminar 18343

Software systems are increasingly used in application domains characteri...
research
06/03/2019

Software Adaptation and Generalization of Physically-Constrained Games

In this paper we provide a case study of the use of relatively sophistic...

Please sign up or login with your details

Forgot password? Click here to reset