A parallel genetic algorithm for the graph partitioning problem
ICS '91 Proceedings of the 5th international conference on Supercomputing
On the inference of configuration structures from source code
ICSE '94 Proceedings of the 16th international conference on Software engineering
Extracting concepts from file names: a new file clustering criterion
Proceedings of the 20th international conference on Software engineering
Identifying objects using cluster and concept analysis
Proceedings of the 21st international conference on Software engineering
Practical experience with an application extractor for Java
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Identifying Modules via Concept Analysis
IEEE Transactions on Software Engineering
Concept Analysis for Module Restructuring
IEEE Transactions on Software Engineering
Genetic Algorithms in Search, Optimization and Machine Learning
Genetic Algorithms in Search, Optimization and Machine Learning
Open Source GIS: A Grass GIS Approach
Open Source GIS: A Grass GIS Approach
Genetic Algorithm and Graph Partitioning
IEEE Transactions on Computers
Extracting Java library subsets for deployment on embedded systems
Science of Computer Programming - Software maintenance and reengineering (CSMR 99)
Software Botryology, Automatic Clustering of Software Systems
DEXA '98 Proceedings of the 9th International Workshop on Database and Expert Systems Applications
Software Reengineering Based on Concept Lattices
CSMR '00 Proceedings of the Conference on Software Maintenance and Reengineering
Solving Graph Partitioning Problem Using Genetic Algorithms
MWSCAS '98 Proceedings of the 1998 Midwest Symposium on Systems and Circuits
Automatic Clustering of Software Systems Using a Genetic Algorithm
STEP '99 Proceedings of the Software Technology and Engineering Practice
Using Clustering Algorithms in Legacy Systems Remodularization
WCRE '97 Proceedings of the Fourth Working Conference on Reverse Engineering (WCRE '97)
MoJo: A Distance Metric for Software Clusterings
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
ACDC: An Algorithm for Comprehension-Driven Clustering
WCRE '00 Proceedings of the Seventh Working Conference on Reverse Engineering (WCRE'00)
Modeling clones evolution through time series
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
On the Stability of Software Clustering Algorithms
IWPC '00 Proceedings of the 8th International Workshop on Program Comprehension
A Comparison of Graphs of Concept for Reverse Engineering
IWPC '00 Proceedings of the 8th International Workshop on Program Comprehension
Types and Concept Analysis for Legacy Systems
IWPC '00 Proceedings of the 8th International Workshop on Program Comprehension
Comprehending Reality " Practical Barriers to Industrial Adoption of Software Maintenance Automation
IWPC '03 Proceedings of the 11th IEEE International Workshop on Program Comprehension
Using Automatic Clustering to Produce High-Level System Organizations of Source Code
IWPC '98 Proceedings of the 6th International Workshop on Program Comprehension
Moving to Smaller Libraries via Clustering and Genetic Algorithms
CSMR '03 Proceedings of the Seventh European Conference on Software Maintenance and Reengineering
A Method to Re-Organize Legacy Systems via Concept Analysis
IWPC '01 Proceedings of the 9th International Workshop on Program Comprehension
Knowledge-Based Library Re-Factoring for an Open Source Project
WCRE '02 Proceedings of the Ninth Working Conference on Reverse Engineering (WCRE'02)
Library Miniaturization Using Static and Dynamic Information
ICSM '03 Proceedings of the International Conference on Software Maintenance
A Multiple Hill Climbing Approach to Software Module Clustering
ICSM '03 Proceedings of the International Conference on Software Maintenance
Multi-objective genetic algorithms: Problem difficulties and construction of test problems
Evolutionary Computation
A search-based approach for dynamically re-packaging downloadable applications
CASCON '07 Proceedings of the 2007 conference of the center for advanced studies on Collaborative research
GRASS GIS: A multi-purpose open source GIS
Environmental Modelling & Software
Survey: A survey on search-based software design
Computer Science Review
Search-based software engineering: Trends, techniques and applications
ACM Computing Surveys (CSUR)
Putting the developer in-the-loop: an interactive GA for software re-modularization
SSBSE'12 Proceedings of the 4th international conference on Search Based Software Engineering
Improving trace accuracy through data-driven configuration and composition of tracing features
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Hi-index | 0.00 |
One of the undesired effects of software evolution is the proliferation of unused components, which are not used by any application. As a consequence, the size of binaries and libraries tends to grow and system maintainability tends to decrease. At the same time, a major trend of today's software market is the porting of applications on hand-held devices or, in general, on devices which have a limited amount of available resources. Refactoring and, in particular, the miniaturization of libraries and applications are therefore necessary. We propose a Software Renovation Framework (SRF) and a toolkit covering several aspects of software renovation, such as removing unused objects and code clones, and refactoring existing libraries into smaller more cohesive ones. Refactoring has been implemented in the SRF using a hybrid approach based on hierarchical clustering, on genetic algorithms and hill climbing, also taking into account the developers' feedback. The SRF aims to monitor software system quality in terms of the identified affecting factors, and to perform renovation activities when necessary. Most of the framework activities are language-independent, do not require any kind of source code parsing, and rely on object module analysis. The SRF has been applied to GRASS, which is a large open source Geographical Information System of about one million LOCs in size. It has significantly improved the software organization, has reduced by about 50% the average number of objects linked by each application, and has consequently also reduced the applications' memory requirements.