10 Things You Should Know About MDD - Presentation Transcript
10 things you should know about
Model-Driven Development
Johan den Haan
Blog:
http://www.theenterprisearchitect.eu
Twitter:
@JohanDenHaan
@ModelDriven
Model-Driven Development
Differs from model-based development
Is still a software development approach
Asks for agile development
Needs a standardized architecture
Asks for different tools
Leads to a change in roles
Can lead to business-IT alignment
Needs another business model
Is not enough
Leads to resistance
Model-Driven
Development?
Automation
Abstraction
Productivity
Short term: more functionality
Long term: less sensitive for changes in
– Personnel
– Business requirements
– Development platforms
– Deployment platforms
It’s still software development
Experience with approach and tool?
Is the tool finished on time to start project?
Abstraction vs. Rigidity: know your
limitations
Version control
The law of leaky
abstractions
Innovation
distracts?
Asks for agile development
Iterative modeling
– Iteration planning
– Model storming
– Test-driven executable model specification
Knowledge crunching
Stakeholders actively participate
Requirements evolve troughout project
YAGNI also holds
for modeling
Asks for agile development
DDD based DSL development
– Capture domain knowledge in a metamodel
– Communicate using an ubiquitous language
– Let the metamodel drive the implementation
– Isolate the domain
– Refactor continously
– Maintain metamodel integrity
– Use a people-oriented approach
Needs a standardized architecture
Needs a standardized architecture
Functional principles
– Guide function design
– Are reflected in the DSLs
– Condition the model validations
Constructional principles
– Guide construction design
– Are reflected in the generator
– Condition the domain framework implementation
Leads to a change in roles
Meta team
– Building the Model-Driven Software Factory
– Using DSL tools
Project team
– Building end-user applciations
– Using a Model-Driven Software Factory
Meta team:
domain expert
Meta team:
language engineer
Meta team:
transformation specialist
Meta team:
implementation / platform expert
Meta team:
software factory architect
Project team:
business engineer
Project team:
application / solution architect
Project team:
test engineer
Can lead to Business-IT alignment
Specify software with domain-specific
concepts
Domain experts really involved in
development process
MDD makes software development more
agile
Explicit connection between organization
models and models of the IT system?
Can lead to Business-IT alignment
Needs another business model
Benefits
– Faster time-to-market
– Increased quality
– Involving domain experts leads to fit-for-purpose
– Follow fast changes in business requirements and
technology
Costs
– Learn MDD
– Develop MDD tool
– Maintain MDD tool
Time = money?
Is not enough!!
Is not enough
Integrating model and code
More focus on changing applications
Runtime flexibility
Configuration vs. Model-Driven Development
Adaptive modeling
Leads to resistance
Model-Driven Development
Differs from model-based development
Is still a software development approach
Asks for agile development
Needs a standardized architecture
Asks for different tools
Leads to a change in roles
Can lead to business-IT alignment
Needs another business model
Is not enough
Leads to resistance
10 things you should know about
Model-Driven Development
Blog:
http://www.theenterprisearchitect.eu
Twitter:
@JohanDenHaan
@ModelDriven
1 comments
Comments 1 - 1 of 1 previous next Post a comment