Maintaining Configurations of Evolving Software Systems
IEEE Transactions on Software Engineering
Software interconnection models
ICSE '87 Proceedings of the 9th international conference on Software Engineering
The role of dependencies in component-based systems evolution
Proceedings of the International Workshop on Principles of Software Evolution
Component Software: Beyond Object-Oriented Programming
Component Software: Beyond Object-Oriented Programming
IEEE Software
Programming-in-the large versus programming-in-the-small
Proceedings of the international conference on Reliable software
An Architecture for Post-Development Configuration Management in a Wide-Area Network
ICDCS '97 Proceedings of the 17th International Conference on Distributed Computing Systems (ICDCS '97)
Osgi Service Platform, Release 3
Osgi Service Platform, Release 3
Configuring Common Personal Software: a Requirements-Driven Approach
RE '05 Proceedings of the 13th IEEE International Conference on Requirements Engineering
Evolution in software systems: foundations of the SPE classification scheme: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice
Managing the Complexity of Large Free and Open Source Package-Based Software Distributions
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
OPIUM: Optimal Package Install/Uninstall Manager
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Package upgrades in FOSS distributions: details and challenges
Proceedings of the 1st International Workshop on Hot Topics in Software Upgrades
Macro-level software evolution: a case study of a large software compilation
Empirical Software Engineering
Dependency management for the eclipse ecosystem: eclipse p2, metadata and resolution
Proceedings of the 1st international workshop on Open component ecosystems
Expressing advanced user preferences in component installation
Proceedings of the 1st international workshop on Open component ecosystems
Eclipse: a platform for integrating development tools
IBM Systems Journal
Strong dependencies between software components
ESEM '09 Proceedings of the 2009 3rd International Symposium on Empirical Software Engineering and Measurement
Apt-pbo: solving the software dependency problem using pseudo-boolean optimization
Proceedings of the IEEE/ACM international conference on Automated software engineering
Variability modeling for distributed development - a comparison with established practice
SPLC'10 Proceedings of the 14th international conference on Software product lines: going beyond
Feature diagrams as package dependencies
SPLC'10 Proceedings of the 14th international conference on Software product lines: going beyond
MPM: a modular package manager
Proceedings of the 14th international ACM Sigsoft symposium on Component based software engineering
An empirical study of the component dependency resolution search space
CBSE'10 Proceedings of the 13th international conference on Component-Based Software Engineering
A modular package manager architecture
Information and Software Technology
Bootstrapping software distributions
Proceedings of the 16th International ACM Sigsoft symposium on Component-based software engineering
Broken sets in software repository evolution
Proceedings of the 2013 International Conference on Software Engineering
On software component co-installability
ACM Transactions on Software Engineering and Methodology (TOSEM) - Testing, debugging, and error handling, formal methods, lifecycle concerns, evolution and maintenance
Component reconfiguration in the presence of conflicts
ICALP'13 Proceedings of the 40th international conference on Automata, Languages, and Programming - Volume Part II
Hi-index | 0.00 |
Maintenance of component-based software platforms often has to face rapid evolution of software components. Component dependencies, conflicts, and package managers with dependency solving capabilities are the key ingredients of prevalent software maintenance technologies that have been proposed to keep software installations synchronized with evolving component repositories. We review state-of-the-art package managers and their ability to keep up with evolution at the current growth rate of popular component-based platforms, and conclude that their dependency solving abilities are not up to the task. We show that the complexity of the underlying upgrade planning problem is NP-complete even for seemingly simple component models, and argue that the principal source of complexity lies in multiple available versions of components. We then discuss the need of expressive languages for user preferences, which makes the problem even more challenging. We propose to establish dependency solving as a separate concern from other upgrade aspects, and present CUDF as a formalism to describe upgrade scenarios. By analyzing the result of an international dependency solving competition, we provide evidence that the proposed approach is viable.