170 likes | 325 Views
CoDesign A Highly Extensible Collaborative Software Modeling Framework. Jae young Bang ( jaeyounb@usc.edu ) George Edwards ( gedwards@usc.edu ) Daniel Popescu ( dpopescu@usc.edu ) Prof. Nenad Medvidovic ( neno@usc.edu ). Naveen Kulkarni ( Naveen_Kulkarni@infosys.com )
E N D
CoDesignA Highly Extensible Collaborative Software Modeling Framework Jae young Bang (jaeyounb@usc.edu) George Edwards (gedwards@usc.edu) Daniel Popescu (dpopescu@usc.edu) Prof. Nenad Medvidovic (neno@usc.edu) Naveen Kulkarni (Naveen_Kulkarni@infosys.com) Girish Maskeri Rama (Girish_Rama@infosys.com) Dr. Srinivas Padmanabhuni (srinivas_p@infosys.com) SoftArch, USC March, 2010
Outline • Motivation • Overview of the project • System Architecture of CoDesign • Analysis in Design-time Issues upon Collaboration • Conflict Categorization • Conflict Detection Techniques • Future Work • Video Demonstration
Motivation • Large, multinational SW companies off-shore • 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” SCM tools have to check-in • Collaborative IDEs primarily focused on distributed programming, architecture design and modeling are not readily supported
Overview: CoDesign • Research Objectives • Designs, patterns and frameworks for a highly extensible conflict detection framework for collaborative modeling • 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 Issues upon Collaboration Architect A Architect A Architect B Architect B • Conflicts • Occur due to latency between distributed architects • Cannot be applied to the model without violating model syntax or semantics • 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 Move Destroy Model Object Modify Name Change Location Model Object
Conflicts Categorization • Synchronization Conflicts • Can be resolved with little or no human intervention • Simple conflicts caused by synchronization latency • e.g., delete-move conflict • Syntactic Conflicts • Violate a modeling tool’s or language’s meta-model constraints • e.g., cardinality constraints violation • 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 FromJBoss Community Business Logic Integration Platform Generic Modeling Environment From Vanderbilt University Software Modeling Tool CoDesign Architecture Prism-MW From SoftArch, USC Lightweight Middleware The double-lined polygons represent off-the-shelf software.
Summary • Summary • Collaborative Software Modeling Infrastructure Architecture • Design-time Issues: • Conflicts, Parallel Modification • Categories of Conflicts • Synchronization, Syntactic, Semantic
Future Work • Exploration of the type and nature of conflicts • Causes of conflicts and relationships between conflict types and modeling activities • Conflicts caused by complex event sequences (e.g., 3 or more parallel events) • Conflict Resolution • Toward automated conflict resolution over conflict identification • Continue implementation of the architecture • Testing under globally distributed settings • Testing in scalability
Features: Demonstration Video • Settings • CoWare Server and the Drools engine at USC • Two CoDesign Instances • Along with the modeling tool: GME 9 • Features • Synchronization between CoDesign instances • Conflict Detection Process
Contacts & References • Jae young Bang • jaeyounb@usc.edu • NenadMedvidovic • neno@usc.edu • Jae young Bang, Daniel Popescu, George Edwards, Nenad Medvidovic, Naveen Kulkarni, Girish M. Rama, and Srinivas Padmanabhuni, CoDesign – A Highly Extensible Collaborative Software Modeling Framework, Proceedings of the Research Demonstration Track at the 32nd International Conference on Software Engineering (ICSE10) • 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 GMEFound 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 GMEFound 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