an architecture for distributing the computation of software clustering algorithms

13
1 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

Upload: amara

Post on 07-Feb-2016

21 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: An Architecture for Distributing  the Computation of  Software Clustering Algorithms

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

Page 2: An Architecture for Distributing  the Computation of  Software Clustering Algorithms

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]

Page 3: An Architecture for Distributing  the Computation of  Software Clustering Algorithms

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

Page 4: An Architecture for Distributing  the Computation of  Software Clustering Algorithms

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

Page 5: An Architecture for Distributing  the Computation of  Software Clustering Algorithms

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

Page 6: An Architecture for Distributing  the Computation of  Software Clustering Algorithms

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

Page 7: An Architecture for Distributing  the Computation of  Software Clustering Algorithms

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

Page 8: An Architecture for Distributing  the Computation of  Software Clustering Algorithms

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

Page 9: An Architecture for Distributing  the Computation of  Software Clustering Algorithms

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

Page 10: An Architecture for Distributing  the Computation of  Software Clustering Algorithms

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

Page 11: An Architecture for Distributing  the Computation of  Software Clustering Algorithms

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

Page 12: An Architecture for Distributing  the Computation of  Software Clustering Algorithms

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)

Page 13: An Architecture for Distributing  the Computation of  Software Clustering Algorithms

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