COLLABORATIVE SOFTWARE EVOLUTION WITH CROSS- CUTTING CONCERNS Rick Salay, Mehrnaz Najafi and Marsha...

Preview:

Citation preview

COLLABORATIVE SOFTWARE EVOLUTION WITH CROSS-CUTTING CONCERNSRick Salay, Mehrnaz Najafi and Marsha Chechik

NECSIS/ORF Workshop 2014

1

also Jennifer Horkoff, Fabiano Dalpiaz, Jessica Davies, Daniel Varro, Istvan Rath, Leonid Ryzhyk, Nina Narodytska

The Context

NECSIS 2013 Workshop• Len Wozniak presents the need for “lump” development

methods to deal with macro change management

2

The Problem

3

SystemSoftware

Initial Dev’t

SoftwareEvolution

System Lifespan

SystemStructure“designed in”

Evolutionary changes-Crosscut designed structure-Heterogeneous-Crosscut levels of abstraction-Overlapping

New Requirement

Bug Fix

Model evolution must manage concurrent “chunks” of change!

Chunk-Based Software Evolution (CBSE)• Focus on

• Models – heterogeneous, multiple levels of abstraction• Rather than just code

• Distributed concurrent development• Safety, correctness and formal analysis

• Principled approach to preserving properties and establishing new ones

• Augments current change management practices:• E.g., traceability, slicing, impact analysis, etc.

4

CBSE Overview

5

Concurrent Dev’t Dimension

Chunk Life-cycle Dimension

Team 1 Team 2 …. Team n

CBSE

Extraction

Modification

Verification

Reintegration

CBSE Overview

6

Concurrent Dev’t Dimension

Chunk Life-cycle Dimension

Team 1 Team 2 …. Team n

CBSE

Extraction

Modification

Verification

Reintegration

Managing concurrent modification

• Chunks can interfere – need to manage conflicts

• Approaches• Conflict resolution: coordinate on merge

• Slow, may need escalation and rework

• Locking: prevent conflicts• Safer but limits concurrent development

• Idea: don’t lock model region, lock model properties

7

Example

8

Deviceid : string

id_encr()

Wiper_Timermax : time

max_encr()start()stop()auto()

Team 2: Add data security to vehicle

•Prop_2 : All data members have encryption method

Team 1: Add auto mode to wiper

•Prop_1 : Must have auto wiper operation

Example

9

Deviceid : string

id_encr()

Wiper_Timermax : timeauto_speed: int

max_encr()start()stop()auto()

Team 2: Add data security to vehicle

•Prop_2 : All data members have encryption method

Team 1: Add auto mode to wiper

•Prop_1 : Must have auto wiper operation

Add

Example

10

Deviceid : string

id_encr()

Wiper_Timermax : timeauto_speed: int

max_encr()start()stop()auto()

Team 2: Add data security to vehicle

•Prop_2 : All data members have encryption method

Team 1: Add auto mode to wiper

•Prop_1 : Must have auto wiper operation

Add

Violation: to fix must remove “auto_speed” or add encryption method

Example

11

Deviceid : string

id_encr()

Wiper_Timermax : timeauto_speed: int

max_encr()start()stop()auto()auto_speed_encr()

Team 2: Add data security to vehicle

•Prop_2 : All data members have encryption method

Team 1: Add auto mode to wiper

•Prop_1 : Must have auto wiper operation

Add

Property-based locking

12

Required tool support

• To specify a property• To check locked properties

• Query engines investigated: QueST (Mac), IncQuery (Varro)

• To configure locking• E.g., control granularity of checking

• To debug/resolve a property violation

13

CBSE Overview

14

Concurrent Dev’t Dimension

Chunk Life-cycle Dimension

Team 1 Team 2 …. Team n

CBSE

Extraction

Modification

Verification

Reintegration

Recommended