emf - an mdsd approach
DESCRIPTION
Describes how EMF can reduce the cost and complexity of production of software applications.TRANSCRIPT
EMF An MDSD Approach
- Madhu Samuel EclipseBible.com
EclipseBible.com
Agenda
Problem
Solution EMF
Problem
“60 – 70% of software applications does not meet customer requirements”
Customer is unhappy because,
• Defective Software Applications• Delayed Projects• Poor Design• Inefficient Architecture
Consequence!
“Increased Living Cost!”
Reasons
“Complexity”
Why Complexity?
• Ever Changing Requirements• Shorter Release Cycles• Increasing Lines of Code• Software Product Families• More Software Technologies
Solution!
• Assembly Language • High Level Languages• Object Oriented Programming• Component Based Systems• What is Next?
MDSD(Model Driven Software Development)
Model?
“Model is a description of the system”
MDSD?
“Generate a Software Application from the model”
MDSD?
Model Software Application
Generate…
MDSD?
Model SourceCode
Generate…
Generate 100% of App?
NO!
MDSD!
Generate 60-70% of App!
Where is MDSD!
Is it Available as a Framework?
NO!
Where is MDSD!
MDA
MOF
MDSD
• MDA = Model Driven Architecture• MOF = Meta Object Facility
EMF?
EMF = MDA + MOF + MDSD Concepts!
What does that mean?
Software Application
EMF?
Software Application
GenericCode
Schematically Generic
Code
Application Specific Code
MDA?
PIM (Platform Independent Model)
PSM (Platform Specific Model)
Model
Lets start the DEMO!!!
Employee Management SystemUsing EMF
Features of EMF!
• Persistence• Notification• Commands – Undo, Redo• Change Recorder• Validation• EMF UI
Goals Of MDSD?
• Increased Development Speed• Increased Software Quality• Improved Re-usability• Management of Complexity• Inter-operability• Portability
Questions?
EclipseBible.com
Training & Consulting
• Eclipse Modeling Framework (EMF)• Eclipse Plug-in Development• Rich Client Platform (RCP)• Graphical Editing Framework (GEF)• Graphical Modeling Framework (GMF)• Java
http://training.eclipseBible.com
http://blog.eclipseBible.com
I Like Eclipse@
Thank You!