25
FEATURE-ORIENTED AND DISTRIBUTED VERSION CONTROL SYSTEM Lukas Linsbauer Institute for Software Systems Engineering Johannes Kepler University Linz Austria

ECCO - Feature-Oriented and Distributed Version Control System

  • Upload
    others

  • View
    16

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ECCO - Feature-Oriented and Distributed Version Control System

FEATURE-ORIENTED AND DISTRIBUTED VERSION CONTROL SYSTEM

Lukas Linsbauer

Institute for Software Systems Engineering

Johannes Kepler University Linz

Austria

Page 2: ECCO - Feature-Oriented and Distributed Version Control System

VARIABLE SYSTEM DEVELOPMENT

Ad Hoc Approach (Clone-and-Own): Separate implementation for every product variant

Multiple variants of the same product must be maintained

Difficult to reuse existing implementation

Structured Approach (SPLs): Common platform that realizes the product and its variability

Multiple versions of the same feature must be maintained

High upfront costs of time and money

Difficult to extend and modify the platform

2

V1 V2 V3 V4

Platform

ChangeV1

V2

V1'

V3

V4

Bug

Page 3: ECCO - Feature-Oriented and Distributed Version Control System

AD HOC APPROACH (CLONE-AND-OWN)

Separate implementation for every variant

Example

Company builds an initial product and sells it to a customer

New customer wants the same product but a bit different

Another customer requests a combination of both difficult reuse

A customer reports a bug in its variant difficult maintenance

Multiple variants of the same product must be maintained

Challenges

Reuse of implementation

Maintenance of the variants

3

V1V2

V1'

V3

V4

Bug

Page 4: ECCO - Feature-Oriented and Distributed Version Control System

STRUCTURED APPROACH (SPL)

Common platform that realizes the system and its variability

Example

Company carefully plans and builds a product platform

Derives variants with different features for different customers

One customer wants an existing feature to behave differently difficult change

Multiple versions of the same feature must be maintained

Challenges

Upfront costs of time and money

Extension and modification (i.e. evolution) of platform

4

V1 V2 V3 V4

Platform

Change

Page 5: ECCO - Feature-Oriented and Distributed Version Control System

MOTIVATION

Systems that consist of different types of implementation artifacts

Different variability mechanisms for different types of implementation artifacts

preprocessor for text-based artifacts

runtime constructs of programming language

Different mechanisms at different levels of granularity

make at file level

preprocessor below file level

Challenges

inconsistencies between mechanisms

difficult to find mechanisms for some types of artifacts

tangling and scattering of features

dependencies and interactions between features

5

Page 6: ECCO - Feature-Oriented and Distributed Version Control System

OUR APPROACH: ECCOSYSTEMATIC CLONE-AND-OWN

Version Control System (VCS) as generic variability mechanism

Instead of retrieving the whole platform which then must be configured (e.g. using make,

preprocessors, etc.) only the relevant configuration is checked out

Provides a simple view on a complex variable system

Features are versioned individually

Based on concept of traceability

Operations

commit <configuration>

checkout <configuration>

fork <url>

push <features>

pull <features>

6

Page 7: ECCO - Feature-Oriented and Distributed Version Control System

WORKFLOW

Incomplete

Product

+ Hints

Completionmanual

Completed

Product

CheckoutCommit

[init]

[update]

Complete

Product

[no missing

information]

Initial

Products

Initial

Products

Initial

ProductsFeatures +

Implementation

Repository

7

Page 8: ECCO - Feature-Oriented and Distributed Version Control System

WORKFLOW

8

Incomplete

Product

+ Hints

Completionmanual

Completed

Product

CheckoutCommit

[init]

[update]

Complete

Product

[no missing

information]

Initial

Products

Initial

Products

Initial

ProductsFeatures +

Implementation

Repository

ecco commit person, shirt, jacket

ecco commit person, shirt

ecco commit person, jacket, glasses, stripedshirt

Page 9: ECCO - Feature-Oriented and Distributed Version Control System

WORKFLOW

9

Incomplete

Product

+ Hints

Completionmanual

Completed

Product

CheckoutCommit

[init]

[update]

Complete

Product

[no missing

information]

Initial

Products

Initial

Products

Initial

ProductsFeatures +

Implementation

Repository

Page 10: ECCO - Feature-Oriented and Distributed Version Control System

WORKFLOW

10

Incomplete

Product

+ Hints

Completionmanual

Completed

Product

CheckoutCommit

[init]

[update]

Complete

Product

[no missing

information]

Initial

Products

Initial

Products

Initial

ProductsFeatures +

Implementation

Repository

ecco checkout person, jacket, shirt

Page 11: ECCO - Feature-Oriented and Distributed Version Control System

WORKFLOW

11

Hint: unknown combination:

striped shirt without jacket

Incomplete

Product

+ Hints

Completionmanual

Completed

Product

CheckoutCommit

[init]

[update]

Complete

Product

[no missing

information]

Initial

Products

Initial

Products

Initial

ProductsFeatures +

Implementation

Repository

ecco checkout person, stripedshirt

Page 12: ECCO - Feature-Oriented and Distributed Version Control System

WORKFLOW

12

Incomplete

Product

+ Hints

Completionmanual

Completed

Product

CheckoutCommit

[init]

[update]

Complete

Product

[no missing

information]

Initial

Products

Initial

Products

Initial

ProductsFeatures +

Implementation

Repository

Hint: unknown combination:

striped shirt without jacket

Page 13: ECCO - Feature-Oriented and Distributed Version Control System

WORKFLOW

13

Incomplete

Product

+ Hints

Completionmanual

Completed

Product

CheckoutCommit

[init]

[update]

Complete

Product

[no missing

information]

Initial

Products

Initial

Products

Initial

ProductsFeatures +

Implementation

Repository

ecco commit person, stripedshirt

Page 14: ECCO - Feature-Oriented and Distributed Version Control System

REPOSITORY

Collection of automatically computed traces between features and artifacts

Versions of features ( ecco commit person, shirt' )

Feature versions are part of presence conditions

Artifacts are organized in a generic tree structure

14

𝑗𝑎𝑐𝑘𝑒𝑡. 1

𝑔𝑙𝑎𝑠𝑠𝑒𝑠. 1𝑠𝑡𝑟𝑖𝑝𝑒𝑑𝑠ℎ𝑖𝑟𝑡. 1 𝑠ℎ𝑖𝑟𝑡. 1

𝑠ℎ𝑖𝑟𝑡. 1 ∧ ¬𝑗𝑎𝑐𝑘𝑒𝑡. 1𝑠𝑡𝑟𝑖𝑝𝑒𝑑𝑠ℎ𝑖𝑟𝑡. 1 ∧ ¬𝑗𝑎𝑐𝑘𝑒𝑡. 1

Page 15: ECCO - Feature-Oriented and Distributed Version Control System

REPOSITORY

Tree of artifacts

root in center (coarse)

leaves outside (fine)

Color for traces

15

Page 16: ECCO - Feature-Oriented and Distributed Version Control System

TOOL: GUI

16

Page 17: ECCO - Feature-Oriented and Distributed Version Control System

TOOL: GUI

Artifact

Tree

Traces

Viewer

17

Page 18: ECCO - Feature-Oriented and Distributed Version Control System

DISTRIBUTED OPERATIONS

18

Time

REMOTE

LOCAL

Page 19: ECCO - Feature-Oriented and Distributed Version Control System

DISTRIBUTED OPERATIONS

19

Fork

Time

REMOTE

LOCAL

ecco fork <url>

Page 20: ECCO - Feature-Oriented and Distributed Version Control System

DISTRIBUTED OPERATIONS

20

Fork

Checkout/Commit

Time

REMOTE

LOCAL

ecco checkout person, jacket, …

ecco commit person, jacket, glasses, …

Page 21: ECCO - Feature-Oriented and Distributed Version Control System

DISTRIBUTED OPERATIONS

21

Fork

Checkout/Commit

Checkout/Commit

Time

REMOTE

LOCAL

ecco checkout person, jacket, …

ecco commit person, jacket, shirt, …

Page 22: ECCO - Feature-Oriented and Distributed Version Control System

DISTRIBUTED OPERATIONS

22

Fork

Checkout/Commit

PullCheckout/Commit

Time

REMOTE

LOCAL

ecco pull glasses

Page 23: ECCO - Feature-Oriented and Distributed Version Control System

DISTRIBUTED OPERATIONS

23

Fork

Checkout/Commit

Pull PushCheckout/Commit

Time

REMOTE

LOCAL

ecco push shirt

Page 24: ECCO - Feature-Oriented and Distributed Version Control System

BENEFITS

Combine advantages of ad hoc and structured approaches without their disadvantages

changes are performed on concrete variants

automated reuse and easy maintenance

low upfront costs and easy to extend and modify

Provide a generic variability mechanism

different types of implementation artifacts

at any level of granularity

Transparent to other development tools (e.g. no special IDE needed)

Knowledge of what features exist, how they interact, and where they are implemented

Flexibility and automation when creating new variants

Track changes to features and choose what variants to affect

Enables distributed, feature-oriented development

24

Page 25: ECCO - Feature-Oriented and Distributed Version Control System

JOHANNES KEPLER

UNIVERSITY LINZ

Altenberger Strasse 69

4040 Linz, Austria

www.jku.at

THANK YOU!

Lukas Linsbauer

[email protected]