System Structure Analysis: Clustering with Data Bindings
IEEE Transactions on Software Engineering - Annals of discrete mathematics, 24
An intelligent tool for re-engineering software modularity
ICSE '91 Proceedings of the 13th international conference on Software engineering
Identifying objects using cluster and concept analysis
Proceedings of the 21st international conference on Software engineering
Recovering software architecture from the names of source files
Journal of Software Maintenance: Research and Practice
Concept Analysis for Module Restructuring
IEEE Transactions on Software Engineering
Formal Concept Analysis: Mathematical Foundations
Formal Concept Analysis: Mathematical Foundations
Identifying modules via concept analysis
ICSM '97 Proceedings of the International Conference on Software Maintenance
Software Reengineering Based on Concept Lattices
CSMR '00 Proceedings of the Conference on Software Maintenance and Reengineering
Experiments with Clustering as a Software Remodularization Method
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Bunch: A Clustering Tool for the Recovery and Maintenance of Software System Structures
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
Using Automatic Clustering to Produce High-Level System Organizations of Source Code
IWPC '98 Proceedings of the 6th International Workshop on Program Comprehension
A Method to Re-Organize Legacy Systems via Concept Analysis
IWPC '01 Proceedings of the 9th International Workshop on Program Comprehension
Symphony: View-Driven Software Architecture Reconstruction
WICSA '04 Proceedings of the Fourth Working IEEE/IFIP Conference on Software Architecture
Discovering Unanticipated Dependency Schemas in Class Hierarchies
CSMR '05 Proceedings of the Ninth European Conference on Software Maintenance and Reengineering
Comparison of Clustering Algorithms in the Context of Software Evolution
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Using Version Information in Architectural Clustering - A Case Study
CSMR '06 Proceedings of the Conference on Software Maintenance and Reengineering
On the Automatic Modularization of Software Systems Using the Bunch Tool
IEEE Transactions on Software Engineering
Semantic clustering: Identifying topics in source code
Information and Software Technology
Clustering large software systems at multiple layers
Information and Software Technology
On the evaluation of the Bunch search-based software modularization algorithm
Soft Computing - A Fusion of Foundations, Methodologies and Applications
Hierarchical Clustering for Software Architecture Recovery
IEEE Transactions on Software Engineering
Documenting after the fact: Recovering architectural design decisions
Journal of Systems and Software
A Bayesian Network Based Approach for Change Coupling Prediction
WCRE '08 Proceedings of the 2008 15th Working Conference on Reverse Engineering
CSMR '08 Proceedings of the 2008 12th European Conference on Software Maintenance and Reengineering
Using Cluster Analysis to Improve the Design of Component Interfaces
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
A survey of formal concept analysis support for software engineering activities
Formal Concept Analysis
Lessons learned in applying formal concept analysis to reverse engineering
ICFCA'05 Proceedings of the Third international conference on Formal Concept Analysis
Applying a dynamic threshold to improve cluster detection of LSI
Science of Computer Programming
A practice-driven systematic review of dependency analysis solutions
Empirical Software Engineering
Cooperative clustering for software modularization
Journal of Systems and Software
Hi-index | 0.01 |
Philips Medical Systems produces medical diagnostic imaging products, such as magnetic resonance, X-ray and computed tomography systems. The software of these devices is complex, has been evolving for several decades and is currently a multi-MLOC monolithic software repository. In this paper we report on splitting a single software repository into multiple smaller repositories so that these can be developed independently, easing the software's evolution. For splitting the single software repository, we set up two experiments that involve well-known analysis techniques, namely formal concept analysis and clustering. Because of the sheer size of the monolithic software repository, we also propose to use a ‘leveled approach’, which implies that the analysis technique is applied in several iterations, whereby in some iterations only part of the application is subjected to the analysis technique. Unfortunately, both analysis techniques failed to produce an acceptable partitioning of the monolithic software repository, even if they are combined with our newly proposed leveled approach. We provide a number of valuable lessons learned, which might prevent others from falling into the same pitfalls. Copyright © 2009 John Wiley & Sons, Ltd. This extends our previous work which can be found in [1].