1 An Architecture for Distributing the Computation of Software Clustering Algorithms 2001 Working Conference on Software Architecture (WICSA'01). Brian.

Slides:



Advertisements
Similar presentations
A Workflow Engine with Multi-Level Parallelism Supports Qifeng Huang and Yan Huang School of Computer Science Cardiff University
Advertisements

DETAILED DESIGN, IMPLEMENTATIONA AND TESTING Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
CS 325: Software Engineering January 13, 2015 Introduction Defining Software Engineering SWE vs. CS Software Life-Cycle Software Processes Waterfall Process.
Outline About author. The problem that discussed in the article.
Presented by Scalable Systems Software Project Al Geist Computer Science Research Group Computer Science and Mathematics Division Research supported by.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 2 Software Processes.
Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 3. Defining the System 4. Managing Scope 5.
Lecture 23: Software Architectures
Workshop on Cyber Infrastructure in Combustion Science April 19-20, 2006 Subrata Bhattacharjee and Christopher Paolini Mechanical.
Building software from reusable components.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Version Enterprise Architect Redefines Modeling in 2006 An Agile and Scalable modeling solution Provides Full Lifecycle.
Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Why Interchange?. What is Interchange? Interchange Capabilities: Offers complete replacement of CommBridge point-to-point solution with a hub and spoke.
Systems Design. Systems Design Skills People skill (25%) - Listening, understanding others, understanding between two lines, conflict resolution, handling.
1 Using Heuristic Search Techniques to Extract Design Abstractions from Source Code The Genetic and Evolutionary Computation Conference (GECCO'02). Brian.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Framework for Automated Builds Natalia Ratnikova CHEP’03.
Web Services An introduction for eWiSACWIS May 2008.
Integrated Development Environment for Policies Anjali B Shah Department of Computer Science and Electrical Engineering University of Maryland Baltimore.
INFSO-RI Module 01 ETICS Overview Alberto Di Meglio.
ITPA/IMAGE 7-10 May 2007 Software and Hardware Infrastructure for the ITM B.Guillerminet, on behalf of the ITM & ISIP teams (P Strand, F Imbeaux, G Huysmans,
ECTL A Support to the Automated Safety Data Monitoring Indicator project.
INFSO-RI Module 01 ETICS Overview Etics Online Tutorial Marian ŻUREK Baltic Grid II Summer School Vilnius, 2-3 July 2009.
Generic API Test tool By Moshe Sapir Almog Masika.
“DECISION” PROJECT “DECISION” PROJECT INTEGRATION PLATFORM CORBA PROTOTYPE CAST J. BLACHON & NGUYEN G.T. INRIA Rhône-Alpes June 10th, 1999.
1 A Heuristic Approach Towards Solving the Software Clustering Problem ICSM03 Brian S. Mitchell /
CMSC 345, Fall CMSC 345 Software Design and Development Fall 2003 Section 0101 Ms. Susan Mitchell Leave Your Ego at the Door!
Integrated Systems Division Service-Oriented Programming Guy Bieber, Lead Architect Motorola ISD C4I 2000 OOPSLA Jini Pattern Language Workshop Guy Bieber,
Framework for MDO Studies Amitay Isaacs Center for Aerospace System Design and Engineering IIT Bombay.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
Copyright © by Shayne R Flint Simplified Web Application Development Shayne R Flint Department of Computer Science Australian National University.
1 The Search Landscape of Graph Partitioning Problems using Coupling and Cohesion as the Clustering Criteria Brian S. Mitchell & Spiros Mancoridis
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
An approach for Framework Construction and Instantiation Using Pattern Languages Rosana Teresinha Vaccare Braga Paulo Cesar Masiero ICMC-USP: Institute.
Cole David Ronnie Julio. Introduction Globus is A community of users and developers who collaborate on the use and development of open source software,
© SERG Reverse Engineering (Interconnection Styles) Interconnection Styles.
Visualization in Problem Solving Environments Amit Goel Department of Computer Science Virginia Tech June 14, 1999.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Implementation of SCENS Yan Zhao. Current Status Current implementation is web-based –
1 Lecture 3 Major Architectural Models View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern.
Software Clustering Using Bunch
© SERG Reverse Engineering (REportal) REportal: Reverse Engineering Portal (reportal.cs.drexel.edu)
4+1 View Model of Software Architecture
A Pattern Language for Parallel Programming Beverly Sanders University of Florida.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
1 Modeling the Search Landscape of Metaheuristic Software Clustering Algorithms Dagstuhl – Software Architecture Brian S. Mitchell
1/30/2003 Los Alamos National Laboratory1 A Migration Framework for Legacy Scientific Applications  Current tendency: monolithic architectures large,
Generating ADL Descriptions ADL Module for Together 6.x Massimo Marino Lawrence Berkeley National Laboratory.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
MULTI-OBJECTIVE APPROACHES FOR SOFTWARE MODULE CLUSTERING C. Kishore10121D2509 Presented by Guide: Head of the Department: Mr A.Srinivasulu, M.Tech.,(Ph.D.)
Brian Mitchell - Drexel University MCS680-FCS 1 Case Study: Automatic Techniques For Software Modularization int MSTWeight(int.
Design Patterns: Summary and Next Steps Y. NARAHARI Computer Science and Automation INDIAN INSTITUTE OF SCIENCE Bangalore –
Application of Design Patterns to Geometric Decompositions V. Balaji, Thomas L. Clune, Robert W. Numrich and Brice T. Womack.
12. DISTRIBUTED WEB-BASED SYSTEMS Nov SUSMITHA KOTA KRANTHI KOYA LIANG YI.
Chapter 13 Web Application Infrastructure
The Client/Server Database Environment
EIN 6133 Enterprise Engineering
Chapter 18 MobileApp Design
Recall The Team Skills Analyzing the Problem (with 5 steps)
Reverse Engineering: A Roadmap
Building Graphical User Interface with Swing a short introduction
Lectures 25: Documentation
2001 IEEE International Conference on Software Maintenance (ICSM'01).
From Use Cases to Implementation
Presentation transcript:

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

Drexel University Software Engineering Research Group (SERG) 2 Software Architecture Software 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]

Drexel University Software Engineering Research Group (SERG) 3 Reverse Engineering Environment Source Code Analysis Tools MDG File Clustering Tool Partitioned MDG File Visualization Tool M1 M2 M3 M5M4 M6 M8M7 MQ = 1.75 M1 M2 M3 M5M4 M6 M8M7 MQ = 1.60 Source Code void main() { printf(“hello”); } AcaciaChava M1 M2 M3 M5M4 M6 M7M8 M1 M2 M3 M5M4 M6 M7M8

Drexel University Software Engineering Research Group (SERG) 4 Software Architecture Challenges Determining the software architecture 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) 5 Bunch Clustering Tool Evolution Semi- Automatic User Tooling Bunch V 1.x 1998 Bunch V 2.x Bunch V 3.x Bunch is the clustering tool produced by the Drexel University Software Engineering Research Group. Distributed Clustering Added in Bunch Version 2.x

Drexel University Software Engineering Research Group (SERG) 6 Clustering Tool Requirements Pluggable Algorithms User Knowledge Integration Programming Language Independence Tool Integration Source Code Analysis Visualization Evaluation API P ERFORMANCE to handle large and complex systems

Drexel University Software Engineering Research Group (SERG) 7 Bunch Challenges Performance 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

Drexel University Software Engineering Research Group (SERG) 8 Bunch Clustering Tool Bunch Environment Source Code Source Code Analysis MDG File Exhaustive Clustering Algorithm Hill-Climbing Clustering Algorithm(s) Genetic Clustering Algorithm BUNCH Clustering AlgorithmsPartitioned MDG Partitioned MDG File Visualization Tool

Drexel University Software Engineering Research Group (SERG) 9 Bunch Hill Climbing Clustering Algorithm Generate a Random Decomposition of MDG Best Neighboring Partition Iteration Step Measure MQ Generate Next Neighbor Measure MQ Best Neighboring Partition for Iteration Compare to Best Neighboring Partition Better Current Partition New Best Neighboring Partition Convergence

Drexel University Software Engineering Research Group (SERG) 10 Bunch’s MVC Architecture and Algorithms Support Distribution Bunch User Interface Bunch Coordinator MDG & Partitioned MDG View Controller Model Bunch Clustering Algorithms Clustering Activity Messages: Producer/Consumer Pattern Status & Management Messages: Publish/Subscribe Pattern Bunch Client Queue Bunch Server

Drexel University Software Engineering Research Group (SERG) 11 Bunch Distributed Hill Climbing Clustering Algorithm CLUSTERING MANAGER Inbound Queue Outbound Queue … … Init_Neighbor Init_Iteration Put_Result Get_Work NEIGHBORING SERVER Work Queue Move Next Neighbor Measure MQ Best Neighboring Partition for Iteration Compare to Best Neighboring Partition Better Convergence Message Manager Next Best Neighboring Partition

Drexel University Software Engineering Research Group (SERG) 12 Case Study Results Compiler ISpellBisonGrappaInclPerspec- tives Proprietary Compiler System Name (Number of Modules) Speedup (12 CPUs)

Drexel University Software Engineering Research Group (SERG) 13 Concluding Remarks Distribution approach based on: 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: