SoftArch, USC CoDesign October 20th A Highly Extensible Collaborative Software Modeling Framework Jae young Bang George Edwards Daniel Popescu Prof. Nenad Medvidovic (jaeyounb@usc.edu) (gedwards@usc.edu) (dpopescu@usc.edu) (neno@usc.edu) Naveen Kulkarni Girish Maskeri Rama Dr. Srinivas Padmanabhuni (Naveen_Kulkarni@infosys.com) (Girish_Rama@infosys.com) (srinivas_p@infosys.com) Outline • Motivation • Overview • System Architecture • Design-time Conflicts • Categorization • Conflict Detection • Contributions • Future Work Motivation • Large, multinational companies off-shoring • To emerging economies such as India and China • Many stakeholders remain in developed countries • Results in globally distributed software development teams • Communication challenges must be overcome • Current collaborative IDEs have shortfalls • Traditional “check-in” SCMs tools make conflicts • Collaborative IDEs primarily focused on distributed programming, architecture design and modeling are not readily supported Overview: CoDesign • Research Objectives 1. Designs, patterns and frameworks for a highly extensible conflict detection framework for collaborative modeling 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 Design-time Conflicts 1. 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 Conflicts Categorization 1. Synchronization Conflicts • • Can be resolved with little or no human intervention Simple conflicts caused by synchronization latency 2. Syntactic Conflicts • • Violate a modeling tool’s or language’s meta-model constraints e.g., cardinality constraints 3. Semantic Conflicts • • Unlike the two above, reflect violations in the intended, implicit rules that a system’s model should abide e.g., violations against the style of the model CoDesign Architecture •Event-based architecture •Exchanges messages via implicit invocation •Pair the most appropriate consistency checkers High-Level Architecture of CoDesign Drools Generic Modeling Environment From JBoss Community CoDesign Architecture From Vanderbilt University Software Modeling Tool Business Logic Integration Platform Prism-MW From SoftArch, USC Lightweight Middleware The double-lined polygons represent off-the-shelf software. Features: Demonstration Video • Settings • • • CoWare Infrastructure CoDesign • Along with the modeling tool: GME 9 Features • • Synchronization between CoDesign instances Conflict Detection & Resolution Summary • In the Video • • • Synchronization between CoDesign Instances Conflict Detection and Resolution Summary • • • Collaborative Software Modeling Infrastructure Architecture Design-time Conflicts: • Conflicts, Parallel Modification Categories of Conflicts • Synchronization, Syntactic, Semantic Future Work • Exploration of the type and nature of conflicts • • • Conflict Resolution • • Causes of conflicts and relationships between conflict types and modeling activities Conflicts caused by complex event sequences (e.g., 3 or more parallel events) Toward automated conflict resolution over conflict identification Continue implementation of the architecture • • Testing under globally distributed settings Testing in scalability Software Architecture Group, 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