Publication | Closed Access
Bunch: a clustering tool for the recovery and maintenance of software system structures
500
Citations
19
References
1999
Year
Unknown Venue
Software MaintenanceCluster ComputingEngineeringCompiler TechnologyComputer ArchitectureSoftware EngineeringAutomatic Clustering ProcessSoftware AnalysisNew FeaturesCluster TechnologyData MiningSystems EngineeringAutomatic ProgrammingSoftware MiningSystem DecompositionDesignKnowledge DiscoveryComputer EngineeringComputer ScienceOptimizing CompilerAutomated RepairSoftware System StructuresSoftware DesignSoftware EvolutionCode RefactoringProgram AnalysisSoftware TestingFormal MethodsSoftware Architecture RecoveryProgram SynthesisSystem Software
Software systems are frequently modified to extend functionality, improve performance, or port to new platforms, yet developers often lack clear structural insight because design documentation is missing or inconsistent. The authors aim to generate high‑level system decompositions from source code and to refine their tool Bunch based on user feedback. Bunch automatically clusters code into system decompositions, and its new feature that incorporates designer knowledge improves result quality and execution speed, as shown by a case study that simplified subsystem extraction and revealed a design flaw.
Software systems are typically modified in order to extend or change their functionality, improve their performance, port them to different platforms, and so on. For developers, it is crucial to understand the structure of a system before attempting to modify it. The structure of a system, however, may not be apparent to new developers, because the design documentation is non-existent or, worse, inconsistent with the implementation. This problem could be alleviated if developers were somehow able to produce high-level system decomposition descriptions from the low-level structures present in the source code. We have developed a clustering tool called Bunch that creates a system decomposition automatically by treating clustering as an optimization problem. The paper describes the extensions made to Bunch in response to feedback we received from users. The most important extension, in terms of the quality of results and execution efficiency, is a feature that enables the integration of designer knowledge about the system structure into an otherwise fully automatic clustering process. We use a case study to show how our new features simplified the task of extracting the subsystem structure of a medium size program, while exposing an interesting design flaw in the process.
| Year | Citations | |
|---|---|---|
Page 1
Page 1