SoftArch, USC October 20th CoDesign/CoWare An Extensible and Scalable Collaborative Software Modeling Infrastructure Jae young Bang, USC ([email protected]) George Edwards, USC ([email protected]) Daniel Popescu, USC ([email protected]) Joshua Garcia, USC ([email protected]) Jerry Lin, USC ([email protected]) Prof. Nenad Medvidovic, USC ([email protected]) Naveen Kulkarni, Infosys ([email protected]) Girish Maskeri Rama, Infosys ([email protected]) Dr. Srinivas Padmanabhuni, Infosys ([email protected]) Outline • Motivation • Overview: CoDesign/CoWare • System Architecture: CoDesign/CoWare • Features • Synchronization • Conflict Definition • Conflict Detection • Conflict Resolution • Future Work 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 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 CoWare Server CoWare Client CoWare Client CoWare Client CoWare Client CoWare Client CoDesign CoDesign CoDesign CoWare Client CoWare Client CoWare Client CoWare Client CoWare Client CoDesign CoDesign CoDesign CoDesign CoDesign CoWare Client CoWare Client CoWare Client CoWare Client CoWare Client CoDesign/CoWare Architecture CoDesign CoDesign CoDesign CoDesign CoDesign Generic Modeling Environment CoDesign/CoWare Architecture From Vanderbilt University Drools Software Modeling Tool User Model From JBoss Community Database Database GME UserLogic Integration Import Business Information Platform Architect GME API (BON) New Events Clean Events Event Handler DB Connector CoDesign (GME Plug-in) New Events User Information Prism-MW User Management From SoftArch, USC Conflicts Clean Events Event Queue Prism Connector Login GUI Events Lightweight Middleware User Information & New Events User Information Rules Drools Update Handler CoDesign/CoWare Connector Facts Export Conflict Notifications & Broadcasted Events New Events Conflict Detector Prism Connector Events that don’t have conflicts Conflict Notifications CoWare Client CoWare Server Architect-side Server-side 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 Destroy Model Object Move Architect B Architect A 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 Change Location Model Object Architect A Modify Name Architect B 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 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 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 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 Future Work • Exploration of the type and nature of conflicts • • • • Evolution of the CoDesign architecture • • • 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) Focus on scalability, efficiency, extensibility Simulation and analysis for architecture evaluation and validation Continue implementation of the architecture • Testing under globally distributed settings SoftArch, USC THANK YOU 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 Appendix: CoDesign GME List of Objects • • • • • • • Object Project Folder Model Atom Reference Set 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) Appendix: CoDesign GME Found Conflict Sequences (2) • • • • • • • • • • • • MOVE MOVE MOVE MOVE MOVE MOVE MOVE MOVE MOVE MOVE MOVE MOVE – – – – – – – – – – – – DESTROY CHANGE PROPERTIES CHANGE LOCATION CREATE CONNECTION DESTROY CONNECTION CREATE PORT DESTROY PORT CREATE REFERENCE REMOVE REFERENCE CHANGE REFERENCE ADD TO SET REMOVE FROM SET
© Copyright 2026 Paperzz