88a41e90733cff35c8bbb88a57af2189.ppt
- Количество слайдов: 13
An Architecture for Distributing the Computation of Software Clustering Algorithms 2001 Working Conference on Software Architecture (WICSA'01). Brian S. Mitchell, Martin Traverso & Spiros Mancoridis Math & Computer Science, Drexel University 1
Software Architecture describes the: n n System elements Interaction between the system elements Patterns that guide the composition of the elements Constraints on the patterns [Shaw & Garlan 1996] Drexel University Software Engineering Research Group (SERG) http: //serg. mcs. drexel. edu 2
Reverse Engineering Environment Source Code Clustering Tool void main() { printf(“hello”); } M 1 M 3 M 2 M 4 Source Code Analysis Tools Acacia Chava M 1 M 3 M 2 M 4 M 5 M 7 M 5 MQ = 1. 75 M 6 M 1 M 8 M 7 M 2 M 4 M 6 M 7 M 6 M 8 M 3 MDG File Visualization Tool M 5 MQ = 1. 60 M 8 Drexel University Software Engineering Research Group (SERG) http: //serg. mcs. drexel. edu Partitioned MDG File M 1 M 3 M 2 M 4 M 5 M 6 M 7 M 8 3
Software Architecture Challenges Determining the software architecture n n n Designer knowledge, and/or Up to date documentation, and/or Automated tooling Source Code Analysis Clustering Visualization Evaluation Design Constraint Validation Drexel University Software Engineering Research Group (SERG) http: //serg. mcs. drexel. edu 4
Bunch Clustering Tool Evolution Semi. Automatic User Tooling Bunch V 1. x 1998 Bunch V 2. x 1999 -2000 Bunch V 3. x 2000 -2001 Distributed Clustering Added in Bunch Version 2. x Bunch is the clustering tool produced by the Drexel University Software Engineering Research Group (SERG) http: //serg. mcs. drexel. edu 5
Clustering Tool Requirements Pluggable Algorithms User Knowledge Integration Programming Language Independence Tool Integration n n Source Code Analysis Visualization Evaluation API PERFORMANCE to handle large and complex systems Drexel University Software Engineering Research Group (SERG) http: //serg. mcs. drexel. edu 6
Bunch Challenges Performance well-suited to small and intermediate sized systems (< 250 modules) Design/Architecture changes were required to improve performance n n Clustering Algorithm and Implementation Enhancements Distributed Processing Capabilities Drexel University Software Engineering Research Group (SERG) http: //serg. mcs. drexel. edu 7
Bunch Environment Source Code Analysis MDG File Exhaustive Clustering Algorithm Hill-Climbing Clustering Algorithm(s) Visualization Tool Partitioned MDG Source Code BUNCH Clustering Algorithms Bunch Clustering Tool Genetic Clustering Algorithm Drexel University Software Engineering Research Group (SERG) http: //serg. mcs. drexel. edu Partitioned MDG File 8
Bunch Hill Climbing Clustering Algorithm Generate a Random Decomposition of MDG Current Partition Measure MQ New Best Neighboring Partition Iteration Step Generate Next Neighbor Measure MQ Compare to Best Neighboring Partition Better Best Neighboring Partition for Iteration Convergence Best Neighboring Partition Drexel University Software Engineering Research Group (SERG) http: //serg. mcs. drexel. edu 9
Bunch’s MVC Architecture and Algorithms Support Distribution Bunch Server Bunch Client MDG & Partitioned MDG Bunch User Interface View Model Queue Bunch Clustering Algorithms Bunch Coordinator Controller • Clustering Activity Messages: Producer/Consumer Pattern • Status & Management Messages: Publish/Subscribe Pattern Drexel University Software Engineering Research Group (SERG) http: //serg. mcs. drexel. edu 10
Bunch Distributed Hill Climbing Clustering Algorithm NEIGHBORING SERVER Message Manager … Outbound Queue … Inbound Queue Init_Neighbor Init_Iteration Put_Result Get_Work Queue CLUSTERING MANAGER Move Next Neighbor Measure MQ Compare to Best Neighboring Partition Better Best Neighboring Next Partition for Iteration Convergence Best Neighboring Partition Drexel University Software Engineering Research Group (SERG) http: //serg. mcs. drexel. edu 11
Speedup (12 CPUs) Case Study Results 6 5 4 392 3 939 2 1 13 24 37 Compiler ISpell Bison 86 Grappa 174 Incl Perspectives System Name (Number of Modules) Drexel University Software Engineering Research Group (SERG) http: //serg. mcs. drexel. edu Proprietary Compiler 12
Concluding Remarks Distribution approach based on: n n Optimization of clustering approach Bunch’s MVC Architecture Performance improved for large systems, further improvement still possible Future improvement based on additional implementation optimizations Bunch written in 100% Java, DBunch uses RMI/IIOP Infrastructure Visit Bunch Online: http: //serg. mcs. drexel. edu/bunch Drexel University Software Engineering Research Group (SERG) http: //serg. mcs. drexel. edu 13
88a41e90733cff35c8bbb88a57af2189.ppt