managing variability in software applications - scandev12

60
Managing variability in software applications

Upload: stephan-hochdoerfer

Post on 13-Jan-2015

1.028 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Managing variability in software applications - scandev12

Managing variability insoftware applications

Page 2: Managing variability in software applications - scandev12

Managing variability in software applications

About me

Stephan Hochdörfer, bitExpert AG

Department Manager Research Labs

[email protected]

@shochdoerfer

Page 3: Managing variability in software applications - scandev12

One customer, optimized solution

Managing variability in software applications

Page 4: Managing variability in software applications - scandev12

Developer vs. Businessman

Managing variability in software applications

Page 5: Managing variability in software applications - scandev12

Different requirements

Managing variability in software applications

Page 6: Managing variability in software applications - scandev12

Different requirements: intensive workload

Managing variability in software applications

Page 7: Managing variability in software applications - scandev12

Different requirements: Performance

Managing variability in software applications

Page 8: Managing variability in software applications - scandev12

Managing variability in software applications

Where will this lead to?

Page 9: Managing variability in software applications - scandev12

Managing variability in software applications

Maintanance nightmare!

Page 10: Managing variability in software applications - scandev12

Managing variability in software applications

Standardize you should!

Page 11: Managing variability in software applications - scandev12

Managing variability in software applications

Application framework?

Page 12: Managing variability in software applications - scandev12

Managing variability in software applications

Plugin based approach?

Page 13: Managing variability in software applications - scandev12

Managing variability in software applications

Configuration chaos?

Page 14: Managing variability in software applications - scandev12

Managing variability in software applications

No automation?

Page 15: Managing variability in software applications - scandev12

Managing variability in software applications

Generalize you should!

Page 16: Managing variability in software applications - scandev12

Generative Programming

Managing variability in software applications

Dealing with software system families, reusable

implementation components and configuration knowledge.

Page 17: Managing variability in software applications - scandev12

Generative Programming: The workflow

Managing variability in software applications

GeneratorGenerator

Page 18: Managing variability in software applications - scandev12

Generative Programming: The workflow

Managing variability in software applications

Configuration(DSL)

Configuration(DSL)

GeneratorGenerator

Page 19: Managing variability in software applications - scandev12

Generative Programming: The workflow

Managing variability in software applications

Configuration(DSL)

Configuration(DSL)

Implementation-components

Implementation-components GeneratorGenerator

Page 20: Managing variability in software applications - scandev12

Generative Programming: The workflow

Managing variability in software applications

Configuration(DSL)

Configuration(DSL)

Implementation-components

Implementation-components GeneratorGenerator

ProductProduct

1..n

Page 21: Managing variability in software applications - scandev12

Generative Programming: The workflow

Managing variability in software applications

Configuration(DSL)

Configuration(DSL)

Implementation-components

Implementation-components GeneratorGenerator

Customer 1Customer 1

Page 22: Managing variability in software applications - scandev12

Generative Programming: The workflow

Managing variability in software applications

Configuration(DSL)

Configuration(DSL)

Implementation-components

Implementation-components GeneratorGenerator

Customer 1Customer 1

Customer 2Customer 2

Page 23: Managing variability in software applications - scandev12

Managing variability in software applications

Focus on the (software system) family!

Page 24: Managing variability in software applications - scandev12

Software System Family

Managing variability in software applications

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

member.

Page 25: Managing variability in software applications - scandev12

Managing variability in software applications

Phase 1: Domain analysis

Page 26: Managing variability in software applications - scandev12

Managing variability in software applications

Listen to the customers

Page 27: Managing variability in software applications - scandev12

Managing variability in software applications

Talk to domain experts

Page 28: Managing variability in software applications - scandev12

Managing variability in software applications

Do the requirements make sense?

Page 29: Managing variability in software applications - scandev12

Managing variability in software applications

Does it belong to the family?

Page 30: Managing variability in software applications - scandev12

Managing variability in software applications

Does it belong to the family?

Page 31: Managing variability in software applications - scandev12

Managing variability in software applications

Does it belong to the family?

Page 32: Managing variability in software applications - scandev12

Managing variability in software applications

Does it belong to the family? Maybe...

Page 33: Managing variability in software applications - scandev12

Managing variability in software applications

Does it belong to the family? No!

Page 34: Managing variability in software applications - scandev12

Managing variability in software applications

Does it belong to the family? No!

Page 35: Managing variability in software applications - scandev12

Managing variability in software applications

Phase 2: Domain design

Page 36: Managing variability in software applications - scandev12

Managing variability in software applications

Feature Modelling

Page 37: Managing variability in software applications - scandev12

Managing variability in software applications

Phase 3: Domain implementation

Page 38: Managing variability in software applications - scandev12

Managing variability in software applications

Implementation components

Page 39: Managing variability in software applications - scandev12

Managing variability in software applications

Configuration Knowledge

Page 40: Managing variability in software applications - scandev12

Generative Programming

Managing variability in software applications

Generator

Domain Engineering

Domain-analysis

Domain-design

Domain-implementation

Page 41: Managing variability in software applications - scandev12

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

Page 42: Managing variability in software applications - scandev12

Managing variability in software applications

Technology projection

Page 43: Managing variability in software applications - scandev12

Managing variability in software applications

Implement the generator...

Page 44: Managing variability in software applications - scandev12

Managing variability in software applications

Standardize you should!

Page 45: Managing variability in software applications - scandev12

Managing variability in software applications

Software generator framework

Page 46: Managing variability in software applications - scandev12

Generative Programming: The goal

Managing variability in software applications

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

Page 47: Managing variability in software applications - scandev12

Generative Programming: The goal

Managing variability in software applications

Create an optimized application on demand!

Page 48: Managing variability in software applications - scandev12

Generative Programming: The goal

Managing variability in software applications

Automate the assembling of the components!

Page 49: Managing variability in software applications - scandev12

Generative Programming: Bonus points

Managing variability in software applications

Page 50: Managing variability in software applications - scandev12

Generative Programming: Bonus points

Managing variability in software applications

Less error-prone, due to the automation.

Page 51: Managing variability in software applications - scandev12

Generative Programming: Bonus points

Managing variability in software applications

Reduce application complexity.

Page 52: Managing variability in software applications - scandev12

Generative Programming: Bonus points

Managing variability in software applications

Just one code repository: The software generator

Page 53: Managing variability in software applications - scandev12

Generative Programming: Bonus points

Managing variability in software applications

Reduce maintenance support.

Page 54: Managing variability in software applications - scandev12

Generative Programming: Bonus points

Managing variability in software applications

FeatureImplementation

component

Page 55: Managing variability in software applications - scandev12

Generative Programming: Bonus points

Managing variability in software applications

Feature Customer

Page 56: Managing variability in software applications - scandev12

Generative Programming: Bonus points

Managing variability in software applications

Feature

Implementationcomponent

Customer

Page 57: Managing variability in software applications - scandev12

Generative Programming: The book

Managing variability in software applications

Page 58: Managing variability in software applications - scandev12

Curious for more?

Managing variability in software applications

http://replicatorframework.org

Page 59: Managing variability in software applications - scandev12

Thank you!

Page 60: Managing variability in software applications - scandev12

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

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