23
Fast Conflict Detection for Jae young Bang March 8 th , 2011 Remote Collaborative Software Modeling

Fast Conflict Detection for

Embed Size (px)

DESCRIPTION

Fast Conflict Detection for. Remote Collaborative Software Modeling. Jae young Bang March 8 th , 2011. Outline. Phase 1: year 2010 Motivation CoDesign Project Goals Results Phase 2: year 2011 Research questions Status update - PowerPoint PPT Presentation

Citation preview

Page 1: Fast Conflict Detection for

Fast Conflict Detection for

Jae young Bang March 8th, 2011

Remote Collaborative Software Modeling

Page 2: Fast Conflict Detection for

Outline

Phase 1: year 2010 Motivation CoDesign Project Goals Results

Phase 2: year 2011 Research questions Status update Fast conflict detection

2

Page 3: Fast Conflict Detection for

CoDesign Phase I ReportYear 2010

3

Page 4: Fast Conflict Detection for

Motivation

Global software engineering Outsourcing and off-shoring

Software designers are distributed

Communication challenge

Existing technology SCM tools: CVS, SubVersion Collaborative IDEs Modeling tools w/ model merging

4

Page 5: Fast Conflict Detection for

CoDesign Project Goals

Realtime collaboration from different locations

Modeling-oriented

Extensibility: legacy/domain-specific tools (Infosys)

5

Page 6: Fast Conflict Detection for

Obstacles of Realtime Collaboration

Latency between designers

“What I see now may not be what you see”

Conflicts occur by unawareness Synchronization conflicts Syntactic conflicts Semantic conflicts

Detection is tricky and expensive

6

Page 7: Fast Conflict Detection for

Synchronization Conflict

7

Simple conflicts caused by latency

Can be resolved with little or no human intervention

7

Delete Doctora

te

Delete Doctora

te

Change name to PostDoc

Change name to PostDoc

!

Page 8: Fast Conflict Detection for

Conflicts & Inconsistencies

Conflicts Inconsistencies

Most researches focus on

Conflicts are huge obstacles

8

Page 9: Fast Conflict Detection for

CoDesign Phase 1

A framework that provides … Realtime sync & conflict/inconsistency detection Extensible collaborative software modeling Scalability of the size of a model and the number of users

Delivered High-level categorization and definitions of conflicts Prototype implementation

Realtime model synchronization Basic level conflict detection using third party extensions

Publication 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” at ICSE 2010

9

Page 10: Fast Conflict Detection for

10Generic Modeling Environment

From Vanderbilt University

Software Modeling Tool

Drools

From JBoss Community

Business Logic Integration Platform

Prism-MW

From SoftArch, USC

Lightweight Middleware

Page 11: Fast Conflict Detection for

CoDesign Phase II ProgressYear 2011

11

Page 12: Fast Conflict Detection for

Research Question (1)

Why is it hard to manage realtime concurrent editing of software models? Low level of isolation of design decisions No locking involved Even locking does not prevent conflicts

Techniques to keep model consistent

12

Page 13: Fast Conflict Detection for

Research Question (2)

Why do conflicts occur? Any way to prevent them?

13

Page 14: Fast Conflict Detection for

Life of a Design Decision

1. Made by a designer

2. Captured

3. Encapsulated to be passed

4. Sent to server

5. Checked whether it makes conflicts

6. Broadcasted to designers except the original sender

7. Decapsulated and applied to the local models

8. Perceived by designers

14

Page 15: Fast Conflict Detection for

Research Question (2)

Why do conflicts occur? Any way to prevent them? Latency No conflict if 0 latency assumed

0 Latency is impossible Conflict detection is inevitable Conflict detection increases latency

Parallelization

15

Page 16: Fast Conflict Detection for

Research Question (3)

How frequently should conflict detection be run? Two cases

Wait for a set of design decisions, run it for all Run it for every design decision

The later a conflict is found, the higher cost to resolve it

Too intrusive? Too expensive?

16

Page 17: Fast Conflict Detection for

Research Question (4)

What is a good granularity of encapsulation of design decisions? Two extreme cases

Very coarse – group of design decisions Very fine-grained – atomic design decisions

Event A design decision made by a designer, encapsulated

as a message to be passed between components

Non-atomic events aggravate conflicts

17

Page 18: Fast Conflict Detection for

CoDesign Phase II Goals

Concurrent collaborative modeling

Parallelized conflict detection

Conflict detection for each atomic event, yet still scalable of the number of designers

18

Page 19: Fast Conflict Detection for

Definitions (1)

Inconsistency A contradiction between software design decisions

Conflict A type of inconsistency Caused by unawareness between multiple designers Originated from latency between them

19

Page 20: Fast Conflict Detection for

Definitions (2)

Stable model A model that has been synchronized to every

designer so no instance of the model differs from the others

Everyone sees the same on the screens

Consistent model A model that is stable and has all of its components

consistent with each other A model without any inconsistency

20

Page 21: Fast Conflict Detection for

Intuition

Incoming event queue

Conflict detection does not have to be done in sequence

Can be parallelized

For lowest latency >> less conflicts

21

Page 22: Fast Conflict Detection for

Fast Conflict Detection: Snapshot Technique

22

Designers refer to the latest “snapshot”

Run conflict detection against all states that had not been checked until the state was created

It is acceptable the order is reversed – the later events will catch conflicts

* at the stage of formal proof

Page 23: Fast Conflict Detection for

Thank you

Please refer to the CoDesign paper: 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 32nd International Conference of Software Engineering (ICSE 2010)

Questions?

23