CoDesignA Highly Extensible Collaborative Software Modeling Framework
SoftArch, USCMarch, 2010
Jae young Bang ([email protected])George Edwards ([email protected])Daniel Popescu ([email protected])Prof. Nenad Medvidovic ([email protected])
Naveen Kulkarni ([email protected])Girish Maskeri Rama ([email protected])Dr. Srinivas Padmanabhuni ([email protected])
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 Objectives1. 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 Issues upon Collaboration
1. 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
Conflicts Categorization
1. Synchronization Conflicts• Can be resolved with little or no human
intervention• Simple conflicts caused by synchronization latency• e.g., delete-move conflict
2. Syntactic Conflicts• Violate a modeling tool’s or language’s meta-
model constraints• e.g., cardinality constraints violation
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
High-Level Architecture of CoDesign
• Event-based architecture
• Exchanges messages via implicit invocation
• Pair the most appropriate consistency checkers
CoDesign Architecture
The double-lined polygons represent off-the-shelf software.
Generic Modeling Environment
From Vanderbilt University
Software Modeling Tool
Drools
From JBoss Community
Business Logic Integration Platform
Prism-MW
From SoftArch, USC
Lightweight Middleware
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• [email protected]
• Nenad Medvidovic• [email protected]
• 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