Package Fingerprints: A visual summary of package interface usage
Information and Software Technology
Supporting simultaneous versions for software evolution assessment
Science of Computer Programming
Software clustering by example
Proceedings of the 13th annual conference companion on Genetic and evolutionary computation
Software packaging approaches: a comparison framework
ECSA'11 Proceedings of the 5th European conference on Software architecture
Deriving high-level abstractions from legacy software using example-driven clustering
Proceedings of the 2011 Conference of the Center for Advanced Studies on Collaborative Research
Bootstrapping software distributions
Proceedings of the 16th International ACM Sigsoft symposium on Component-based software engineering
oZone: Layer identification in the presence of cyclic dependencies
Science of Computer Programming
Improving software modularization via automated analysis of latent topics and dependencies
ACM Transactions on Software Engineering and Methodology (TOSEM)
Hi-index | 0.00 |
Object-oriented (OO) software is usually organized into subsystems using the concepts of package or module.Such modular structure helps applications to evolve when facing new requirements.However, studies show that as software evolves to meet requirements and environment changes, modularization quality degrades. To help maintainers improve the quality of software modularization we have designed and implemented a heuristic search-based approach for automatically optimizing inter-package connectivity (i.e., dependencies).In this paper, we present our approach and its underlying techniques and algorithm.We show through a case study how it enables maintainers to optimize OO package structure of source code.Our optimization approach is based on Simulated Annealing technique.