Download presentation
Presentation is loading. Please wait.
1
CoDesign/CoWare An Extensible and Scalable Collaborative Software Modeling Infrastructure SoftArch, USC October 20th Jae young Bang, USC (jaeyounb@usc.edu) George Edwards, USC (gedwards@usc.edu) Daniel Popescu, USC (dpopescu@usc.edu) Joshua Garcia, USC (joshuaga@usc.edu) Jerry Lin, USC (jerrylin@usc.edu) Prof. Nenad Medvidovic, USC (neno@usc.edu) Naveen Kulkarni, Infosys (Naveen_Kulkarni@infosys.com) Girish Maskeri Rama, Infosys (Girish_Rama@infosys.com) Dr. Srinivas Padmanabhuni, Infosys (srinivas_p@infosys.com)
2
Outline Motivation Overview: CoDesign/CoWare System Architecture: CoDesign/CoWare Features Synchronization Conflict Definition Conflict Detection Conflict Resolution Future Work
3
Motivation Software development is a complex, collaborative activity This is particularly the case with software design This becomes a problem for distributed development teams Particularly prevalent in large, multinational development organizations such as Infosys Support for collaborative software development is still nascent IBM Jazz, MS CollabVS Difficult to make existing stand-alone tools collaborative Lack of ability to scale across entire enterprise
4
Overview: CoDesign/CoWare Research Objectives 1.Designs, patterns and frameworks for a highly distributed, scalable collaborative modeling platform 2.Novel methods and algorithms to detect and resolve syntactic and semantic conflicts of modeling language Project Summary Collaborative, extensible software modeling framework Real-time synchronization & conflict detection Efficiency and scalability among geographically distributed software system designers CoDesign: A tool that captures design decisions CoWare: Lightweight integration infrastructure
5
CoDesign/CoWare Architecture CoDesign CoWare Client CoDesign CoWare Client CoDesign CoWare Client CoDesign CoWare Client CoDesign CoWare Client CoDesign CoWare Client CoDesign CoWare Client CoDesign CoWare Client CoDesign CoWare Client CoDesign CoWare Client CoDesign CoWare Client CoDesign CoWare Client CoDesign CoWare Client CoDesign CoWare Client CoDesign CoWare Client
6
CoDesign/CoWare Architecture Architect-sideServer-side GME CoDesign (GME Plug-in) New Events CoWare Client CoWare Server User Database DB Connector Conflict Notifications & Broadcasted Events User Information & New Events User Information Prism Connector Conflict Detector Conflict Notifications Events that don’t have conflicts Event Handler Update Handler CoDesign/CoWare Connector Login GUI User Management Architect New Events User Information Clean Events GME API (BON) Prism Connector User Information New Events Clean Events Event Queue Drools Model Database FactsRules ConflictsEvents ImportExport Generic Modeling Environment From Vanderbilt University Software Modeling Tool Generic Modeling Environment From Vanderbilt University Software Modeling Tool Drools From JBoss Community Business Logic Integration Platform Drools From JBoss Community Business Logic Integration Platform Prism-MW From SoftArch, USC Lightweight Middleware Prism-MW From SoftArch, USC Lightweight Middleware
7
Conflict Definition: Categorization 1.Synchronization Conflicts Occur due to latency between distributed architects Cannot be applied to the model without violating model syntax or semantics 2.Parallel Modification Multiple architects modify the same or related object(s) Not necessarily a syntactic or semantic error, but indicates the possibility of conflicts due to uncoordinated work Model Object Architect A Destroy Architect B Move Model Object Architect A Change Location Architect B Modify Name
8
Conflict Definition: Representation Formal description of event sequences that create conflicts: A Conflict Sequence >> Event(1) [Verb(1) Object(1)], Event(2) [Verb(2) Object(2)] where the arrival time T of Event(2) is later than the T of Event(1) e.g. Event1 [ DESTROY ClassC ], Event2 [ CHANGE LOCATION ClassC ] Drools Rules Representation (Simplified) when $event1 : Event(eventType == "DESTROYED") $event2 : Event(arrival > $event1.arrival) then handleConflict($event1, $event2); end
9
Conflict Resolution Automatically Resolvable Resolved internally and transparently by CoDesign/CoWare E.g. DESTROY and DESTROY The 2 architects have the same intention E.g. CREATE and CREATE The 2 new objects have the same object ID Not Automatically Resolvable Notify relevant architects and facilitate communication E.g. DESTROY and CHANGE LOCATION
10
Features: Live Demo Settings CoWare Server Computer Science Building at USC CoWare Client One instance at Infosys, Bangalore, India Another instance here CoDesign Along with the modeling tool: GME 7 Features Synchronization between CoDesign instances Conflict Detection & Resolution
11
Summary In the Demo Synchronization between CoDesign Instances Conflict Detection and Resolution Summary Collaborative Software Modeling Infrastructure Architecture Formal Definition of Conflicts Categories of Conflicts: Synchronization Conflicts, Parallel Modification Resolution Types: Automatically Resolvable, Human Intervention
12
Future Work Exploration of the type and nature of conflicts Causes of conflicts and relationships between conflict types and modeling activities Automatic inference of conflicts from formal language definitions (meta-models) Conflicts caused by complex event sequences (e.g., 3 or more parallel events) Evolution of the CoDesign architecture Focus on scalability, efficiency, extensibility Simulation and analysis for architecture evaluation and validation Continue implementation of the architecture Testing under globally distributed settings
13
THANK YOU SoftArch, USC
14
Appendix: CoDesign GME List of Verbs Destroy Create Change Properties Change Location Move (to another object) Create Connection Destroy Connection Create Reference Remove Reference Change Reference Add to Set Remove from Set
15
Appendix: CoDesign GME List of Objects Object Project Folder Model Atom Reference Set
16
Appendix: CoDesign GME Found Conflict Sequences (1) DESTROY – DESTROY DESTROY – CHANGE PROPERTIES DESTROY – CHANGE LOCATION DESTROY – CREATE CONNECTION DESTROY – CREATE PORT DESTROY – DESTROY PORT DESTROY – CREATE REFERENCE DESTROY – REMOVE REFERENCE DESTROY – CHANGE REFERENCE DESTROY – ADD TO SET DESTROY – REMOVE FROM SET CREATE – CREATE (Duplication Object IDs)
17
Appendix: CoDesign GME Found Conflict Sequences (2) MOVE – DESTROY MOVE – CHANGE PROPERTIES MOVE – CHANGE LOCATION MOVE – CREATE CONNECTION MOVE – DESTROY CONNECTION MOVE – CREATE PORT MOVE – DESTROY PORT MOVE – CREATE REFERENCE MOVE – REMOVE REFERENCE MOVE – CHANGE REFERENCE MOVE – ADD TO SET MOVE – REMOVE FROM SET
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.