Post on 13-Jan-2015
description
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/