Managing variability in software applications - scandev12

Preview:

DESCRIPTION

 

Citation preview

Managing variability insoftware applications

Managing variability in software applications

About me

Stephan Hochdörfer, bitExpert AG

Department Manager Research Labs

S.Hochdoerfer@bitExpert.de

@shochdoerfer

One customer, optimized solution

Managing variability in software applications

Developer vs. Businessman

Managing variability in software applications

Different requirements

Managing variability in software applications

Different requirements: intensive workload

Managing variability in software applications

Different requirements: Performance

Managing variability in software applications

Managing variability in software applications

Where will this lead to?

Managing variability in software applications

Maintanance nightmare!

Managing variability in software applications

Standardize you should!

Managing variability in software applications

Application framework?

Managing variability in software applications

Plugin based approach?

Managing variability in software applications

Configuration chaos?

Managing variability in software applications

No automation?

Managing variability in software applications

Generalize you should!

Generative Programming

Managing variability in software applications

Dealing with software system families, reusable

implementation components and configuration knowledge.

Generative Programming: The workflow

Managing variability in software applications

GeneratorGenerator

Generative Programming: The workflow

Managing variability in software applications

Configuration(DSL)

Configuration(DSL)

GeneratorGenerator

Generative Programming: The workflow

Managing variability in software applications

Configuration(DSL)

Configuration(DSL)

Implementation-components

Implementation-components GeneratorGenerator

Generative Programming: The workflow

Managing variability in software applications

Configuration(DSL)

Configuration(DSL)

Implementation-components

Implementation-components GeneratorGenerator

ProductProduct

1..n

Generative Programming: The workflow

Managing variability in software applications

Configuration(DSL)

Configuration(DSL)

Implementation-components

Implementation-components GeneratorGenerator

Customer 1Customer 1

Generative Programming: The workflow

Managing variability in software applications

Configuration(DSL)

Configuration(DSL)

Implementation-components

Implementation-components GeneratorGenerator

Customer 1Customer 1

Customer 2Customer 2

Managing variability in software applications

Focus on the (software system) family!

Software System Family

Managing variability in software applications

Set of applications with similar properties as well as special properties for each individual

member.

Managing variability in software applications

Phase 1: Domain analysis

Managing variability in software applications

Listen to the customers

Managing variability in software applications

Talk to domain experts

Managing variability in software applications

Do the requirements make sense?

Managing variability in software applications

Does it belong to the family?

Managing variability in software applications

Does it belong to the family?

Managing variability in software applications

Does it belong to the family?

Managing variability in software applications

Does it belong to the family? Maybe...

Managing variability in software applications

Does it belong to the family? No!

Managing variability in software applications

Does it belong to the family? No!

Managing variability in software applications

Phase 2: Domain design

Managing variability in software applications

Feature Modelling

Managing variability in software applications

Phase 3: Domain implementation

Managing variability in software applications

Implementation components

Managing variability in software applications

Configuration Knowledge

Generative Programming

Managing variability in software applications

Generator

Domain Engineering

Domain-analysis

Domain-design

Domain-implementation

Generative Programming

Managing variability in software applications

Generator Product

Domain Engineering App. Engineering

Domain-analysis

Domain-design

Domain-implementation

Requirementsanalysis

Productconfiguration

Testing andintegration

Newrequirements

Components,DSL,Generators,Infrastructure

Managing variability in software applications

Technology projection

Managing variability in software applications

Implement the generator...

Managing variability in software applications

Standardize you should!

Managing variability in software applications

Software generator framework

Generative Programming: The goal

Managing variability in software applications

Increasing the productivity, quality, and time-to-market.

Generative Programming: The goal

Managing variability in software applications

Create an optimized application on demand!

Generative Programming: The goal

Managing variability in software applications

Automate the assembling of the components!

Generative Programming: Bonus points

Managing variability in software applications

Generative Programming: Bonus points

Managing variability in software applications

Less error-prone, due to the automation.

Generative Programming: Bonus points

Managing variability in software applications

Reduce application complexity.

Generative Programming: Bonus points

Managing variability in software applications

Just one code repository: The software generator

Generative Programming: Bonus points

Managing variability in software applications

Reduce maintenance support.

Generative Programming: Bonus points

Managing variability in software applications

FeatureImplementation

component

Generative Programming: Bonus points

Managing variability in software applications

Feature Customer

Generative Programming: Bonus points

Managing variability in software applications

Feature

Implementationcomponent

Customer

Generative Programming: The book

Managing variability in software applications

Curious for more?

Managing variability in software applications

http://replicatorframework.org

Thank you!

Flickr Creditshttp://www.flickr.com/photos/andresrueda/3452940751/

http://www.flickr.com/photos/andresrueda/3455410635/

Recommended