an architecture for distributing the computation of software clustering algorithms
DESCRIPTION
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. Software Architecture. - PowerPoint PPT PresentationTRANSCRIPT
1
An Architecture for Distributing the Computation of
Software Clustering Algorithms2001 Working Conference on
Software Architecture (WICSA'01).
Brian S. Mitchell, Martin Traverso & Spiros MancoridisMath & Computer Science, Drexel University
2Drexel University Software Engineering Research Group (SERG)http://serg.mcs.drexel.edu
Software ArchitectureSoftware Architecture describes the: System elements Interaction between the system
elements Patterns that guide the composition
of the elements Constraints on the patterns[Shaw & Garlan 1996]
3Drexel University Software Engineering Research Group (SERG)http://serg.mcs.drexel.edu
Reverse Engineering Environment
Source CodeAnalysis Tools
MDG File
Clustering Tool
Partitioned MDG File
Visualization Tool
M1
M2
M3
M5M4
M6
M8 M7
MQ = 1.75
M1
M2
M3
M5M4
M6
M8 M7
MQ = 1.60
Source Codevoid main(){ printf(“hello”);}
Acacia Chava
M1
M2
M3
M5M4
M6
M7 M8
M1
M2
M3
M5M4
M6
M7 M8
4Drexel University Software Engineering Research Group (SERG)http://serg.mcs.drexel.edu
Software Architecture Challenges
Determining the software architecture Designer knowledge, and/or Up to date documentation, and/or Automated tooling
Source Code AnalysisClusteringVisualizationEvaluationDesign Constraint Validation
5Drexel University Software Engineering Research Group (SERG)http://serg.mcs.drexel.edu
Bunch Clustering Tool Evolution
Semi-Automatic Automatic User
ToolingBunch V 1.x1998
Bunch V 2.x1999-2000
Bunch V 3.x2000-2001
Bunch is the clustering tool produced by the DrexelUniversity Software Engineering Research Group.
Distributed Clustering Added in Bunch Version 2.x
6Drexel University Software Engineering Research Group (SERG)http://serg.mcs.drexel.edu
Clustering Tool Requirements
Pluggable AlgorithmsUser Knowledge IntegrationProgramming Language IndependenceTool Integration Source Code Analysis Visualization Evaluation API
PERFORMANCE to handle large and complex systems
7Drexel University Software Engineering Research Group (SERG)http://serg.mcs.drexel.edu
Bunch ChallengesPerformance well-suited to small and intermediate sized systems (< 250 modules)Design/Architecture changes were required to improve performance Clustering Algorithm and
Implementation Enhancements Distributed Processing Capabilities
8Drexel University Software Engineering Research Group (SERG)http://serg.mcs.drexel.edu
Bunch Clustering Tool
Bunch Environment
SourceCode
SourceCode
Analysis
MDGFile
ExhaustiveClusteringAlgorithm
Hill-ClimbingClustering
Algorithm(s)
GeneticClusteringAlgorithmBU
NCH
Clu
ster
ing
Algo
rith
ms
Part
itio
ned
MD
G
PartitionedMDGFile
VisualizationTool
9Drexel University Software Engineering Research Group (SERG)http://serg.mcs.drexel.edu
Bunch Hill Climbing Clustering Algorithm
Generate a Random Decomposition of MDG
Best Neighboring Partition
Iteration Step
Mea
sure
MQ Generate
NextNeighbor
MeasureMQ
Best Neighboring Partition for Iteration
Compare to BestNeighboring Partition
Better
CurrentPartition
New
Bes
t N
eigh
borin
g Pa
rtiti
on
Convergence
10Drexel University Software Engineering Research Group (SERG)http://serg.mcs.drexel.edu
Bunch’s MVC Architecture and Algorithms Support Distribution
BunchUser
Interface
BunchCoordinator
MDG &Partitioned
MDGView
Controller
Model
BunchClusteringAlgorithms
•Clustering Activity Messages: Producer/Consumer Pattern•Status & Management Messages: Publish/Subscribe Pattern
Bunch Client
Queue
Bunch Server
11Drexel University Software Engineering Research Group (SERG)http://serg.mcs.drexel.edu
Bunch Distributed Hill Climbing Clustering AlgorithmCLUSTERING
MANAGER
InboundQueue
Outbound
Queue
…
…Init_NeighborInit_Iteration
Put_ResultGet_Work
NEIGHBORING SERVER
Wor
k Q
ueue Move Next
NeighborMeasure
MQ
Best Neighboring Partition for Iteration
Compare to BestNeighboring Partition
Better
Convergence
Message Manager
Next
Best Neighboring Partition
12Drexel University Software Engineering Research Group (SERG)http://serg.mcs.drexel.edu
Case Study Results
Compiler ISpell Bison Grappa Incl Perspec-tives
ProprietaryCompiler
123456
1313 2424 3737 8686 174174
392392 939939
System Name (Number of Modules)
Spee
dup
(12
CPU
s)
13Drexel University Software Engineering Research Group (SERG)http://serg.mcs.drexel.edu
Concluding RemarksDistribution approach based on: Optimization of clustering approach Bunch’s MVC Architecture
Performance improved for large systems, further improvement still possibleFuture improvement based on additional implementation optimizationsBunch written in 100% Java, DBunch uses RMI/IIOP Infrastructure
Visit Bunch Online: http://serg.mcs.drexel.edu/bunch