SlideShare a Scribd company logo
1 of 24
Download to read offline
A Lightweight MDD
Process Applied in
Small Projects
Gabor Guta, PhD
info@axonmatics.com
Contents
Introduction to MDD1
The Process2
Conclusion3
info@axonmatics.com
Motivation
 Generative approaches become popular like
 model driven development (MDD),
 domain specific languages (DSL), etc.
 Several success stories about applying these
techniques in large
 Process frameworks and methods for full scale
application of them
 Lot of software developed by small teams using
Agile methods
There is no or little help of its application in small!
info@axonmatics.com
What is MDD?
 Generating software from a model
– Advantage: saving time/effort on implementing
repetitive tasks by working on model level
 The most well known approaches are the
followings:
 OMG's MDA
 Microsoft's Software Factories
info@axonmatics.com
What is MDD? (cont'd)
info@axonmatics.com
What is MDD? (cont'd)
 The artifacts generating transformations are often
called templates
 Domain & intermediate models can be described
with meta-models
info@axonmatics.com
Differences
 What is the domain model (real life /
implementation)?
 How can the domain meta-model be
represented?
 What kind of notation do we use to communicate
the domain model?
 How are the transformations defined?
 Do we allow to edit the intermediate models or
the generated artifacts?
info@axonmatics.com
Further differences
 How does MDD affect the development process?
 Are we able to reverse the transformation
(propagate changes of the generated artifacts
back to the original model)?
 How can intermediate models be merged if the
original generated model was modified and a
different one was generated after the domain
model was changed?
 What are the quality implications of the MDD?
 How does it modify the test and review procedures?
 What kind of additional problem can be expected?
info@axonmatics.com
Important Issues of the Lightweight MDD
 Most of the risks should be mitigated
 No immature technology allowed
 Fall back to the traditional development method
 The approach should not delay the schedule in
general
 It should have immediate business advantage
 The approach should be cost sensitive
 No high cost MDA tool set,
 No extensive training
info@axonmatics.com
Important Issues of the Lightweight MDD (cont'd)
 The domain-model should be kept as simple as
possible and the generated code should be
human-readable and modifiable.
 The results should be reusable in other projects.
info@axonmatics.com
Our Minimalistic Approach
 Creating the simplest solution
 Using the simplest tool-set
 Explicitly support the partial approach
 We just model and generate parts where it pays off
 Keeping track of which requirement applied in the
model is relatively cheap
info@axonmatics.com
Project Experience
 An enterprise web application for a specific
domain developed
 Microsoft’s ASP.NET technology and an MS-SQL
back-end were used (conforming to architectural
guidelines of the multi-layer enterprise ASP.NET
applications
 Readable source code and complete developer
documentation
 The project team experienced with traditional
iterative development method (containing
elements from current Agile methodologies)
info@axonmatics.com
The Process
 Roles
 Artifacts
 Activities
 Workflow
info@axonmatics.com
The Workflow (overview)
info@axonmatics.com
Teams
 The agile development team
 Members were: developers, a software architect
 Responsible for: hand crafted software
 The business analyst team
 Members were: managers
 Responsible for: requirements and the domain models
 The model driven development team
 Members were: an MDD expert, developers
 Responsible for: MDD environment, the templates
info@axonmatics.com
Artifacts
 An MDD vision
 A code generation tool
 A domain test model
 An MDD environment (domain metamodel, a
domain test model, and a code generation tool).
 Hand crafted software
 Released software
 A software requirement specification (or
requirements)
info@axonmatics.com
Activities
 Domain model extraction
 In: requirements
 Out: initial domain model, MDD vision
 The MDD environment setup
 In: MDD vision, initial domain model
 Out: code generation tool, initial version of the domain
meta-model, domain test model
 Domain modeling
 Refine: domain model
 The MDD environment development
 Refine: MDD environment
info@axonmatics.com
Activities (cont'd)
 Template development
 Refine: templates
 Steps:
 the required functionality is implemented in a software
prototype;
 the implementation is extracted and to edited into the
templates;
 finally, the they are tested with the help of the domain
test model.
 Code generation
 In: templates and domain model
 Out: generated artifacts
info@axonmatics.com
Activities (cont'd)
 Integration
 In: generated artifacts, hand-crafted software
 Out: released software
 Development
 Requirements Refinement
 Architectural prototyping
 Design
 Development
info@axonmatics.com
The Workflow (part 1)
info@axonmatics.com
The Workflow (part 2)
info@axonmatics.com
The Template Development Activity
 The most complex and critical activity of the
process
 It becomes dominant activity of the MDD team
after the MDD environment is stabilized
 During an iteration several features are
implemented iteratively in the frame of this activity
info@axonmatics.com
The Template Development Activity (cont'd)
 A feature is implemented as an extension of the
generated artifacts (designed, coded and tested)
 The implemented feature is extracted from the
source code and inserted into the templates
 The artifacts re-generated with the new templates
 Tested with the test-cases of original
implementation
 The first iteration is sightly different, because no
prior generated artifacts available at that time.
info@axonmatics.com
Conclusion
 Our model driven development method has been
applied successfully
 Our "experiment" has two results
 our process can be used successfully in an averages
small-mid sized project
 project can be realized with standard data format (XML,
JSON, or YAML) and template engines (XSLT, Jinja2,
etc.), i.e. no need for special MDA/DSL tool chain
 Our process can be also used as preparatory step
before the introduction of a heavyweight process

More Related Content

What's hot

Software Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - DefinitionsSoftware Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - DefinitionsJose Emilio Labra Gayo
 
Software Engineering Lec 2
Software Engineering Lec 2Software Engineering Lec 2
Software Engineering Lec 2Taymoor Nazmy
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressmanRohitGoyal183
 
Lecture 5 software process model (3)
Lecture 5   software process model (3)Lecture 5   software process model (3)
Lecture 5 software process model (3)IIUI
 
Notes of Software engineering and Project Management
Notes of Software engineering and Project ManagementNotes of Software engineering and Project Management
Notes of Software engineering and Project ManagementNANDINI SHARMA
 
Software development lifecycle
Software development lifecycleSoftware development lifecycle
Software development lifecycleRebecca Jones
 
Cs504 handouts 1_45
Cs504 handouts 1_45Cs504 handouts 1_45
Cs504 handouts 1_45Ahsan Younis
 
Agile Modeling using the Architecture Tools in VS 2010
Agile Modeling  using the Architecture Tools in VS 2010Agile Modeling  using the Architecture Tools in VS 2010
Agile Modeling using the Architecture Tools in VS 2010Gary Pedretti
 
Soft Eng - Software Process
Soft  Eng - Software ProcessSoft  Eng - Software Process
Soft Eng - Software ProcessJomel Penalba
 
Sqa lecture08 usama
Sqa lecture08 usamaSqa lecture08 usama
Sqa lecture08 usamaMrAadi
 
Software engineering note
Software engineering noteSoftware engineering note
Software engineering noteNeelamani Samal
 

What's hot (19)

Software Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - DefinitionsSoftware Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - Definitions
 
Software Engineering Lec 2
Software Engineering Lec 2Software Engineering Lec 2
Software Engineering Lec 2
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressman
 
Code generation
Code generationCode generation
Code generation
 
Slides chapter 17
Slides chapter 17Slides chapter 17
Slides chapter 17
 
5 software design
5 software design5 software design
5 software design
 
Lecture 5 software process model (3)
Lecture 5   software process model (3)Lecture 5   software process model (3)
Lecture 5 software process model (3)
 
Notes of Software engineering and Project Management
Notes of Software engineering and Project ManagementNotes of Software engineering and Project Management
Notes of Software engineering and Project Management
 
Web Engineering
Web EngineeringWeb Engineering
Web Engineering
 
Slides chapter 3
Slides chapter 3Slides chapter 3
Slides chapter 3
 
Software design methodologies
Software design methodologiesSoftware design methodologies
Software design methodologies
 
Software development lifecycle
Software development lifecycleSoftware development lifecycle
Software development lifecycle
 
Cs504 handouts 1_45
Cs504 handouts 1_45Cs504 handouts 1_45
Cs504 handouts 1_45
 
Ch03
Ch03Ch03
Ch03
 
Agile Modeling using the Architecture Tools in VS 2010
Agile Modeling  using the Architecture Tools in VS 2010Agile Modeling  using the Architecture Tools in VS 2010
Agile Modeling using the Architecture Tools in VS 2010
 
Ch4
Ch4Ch4
Ch4
 
Soft Eng - Software Process
Soft  Eng - Software ProcessSoft  Eng - Software Process
Soft Eng - Software Process
 
Sqa lecture08 usama
Sqa lecture08 usamaSqa lecture08 usama
Sqa lecture08 usama
 
Software engineering note
Software engineering noteSoftware engineering note
Software engineering note
 

Similar to Lightweight MDD Process for Small Projects

10 Things You Should Know About MDD
10 Things You Should Know About MDD10 Things You Should Know About MDD
10 Things You Should Know About MDDJohan den Haan
 
Clean architecture with asp.net core
Clean architecture with asp.net coreClean architecture with asp.net core
Clean architecture with asp.net coreSam Nasr, MCSA, MVP
 
MODEL DRIVEN DEVELOPMENT (1).pptx
MODEL DRIVEN DEVELOPMENT (1).pptxMODEL DRIVEN DEVELOPMENT (1).pptx
MODEL DRIVEN DEVELOPMENT (1).pptxpawan745387
 
Model Driven Architectures
Model Driven ArchitecturesModel Driven Architectures
Model Driven ArchitecturesLalit Kale
 
Notes on software engineering
Notes on software engineeringNotes on software engineering
Notes on software engineeringErtan Deniz
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...ghodgkinson
 
Managing Complexity and Change with Scalable Software Design
Managing Complexity and Change with Scalable Software DesignManaging Complexity and Change with Scalable Software Design
Managing Complexity and Change with Scalable Software Designlbergmans
 
SOFTWARE DEVELOPMENT AND PROCESS MODELS.pptx
SOFTWARE DEVELOPMENT AND PROCESS MODELS.pptxSOFTWARE DEVELOPMENT AND PROCESS MODELS.pptx
SOFTWARE DEVELOPMENT AND PROCESS MODELS.pptxSanthanalakshmiSelva2
 
The Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicThe Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicDavid Solivan
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Toolsghodgkinson
 
Sdlc cource in_mumbai
Sdlc cource in_mumbaiSdlc cource in_mumbai
Sdlc cource in_mumbaivibrantuser
 
want to contact me login to www.stqa.org
want to contact me login to www.stqa.orgwant to contact me login to www.stqa.org
want to contact me login to www.stqa.orgnazeer pasha
 
The software management and engineering in the AI-oriented projects tutorial
The software management and engineering in the AI-oriented projects tutorialThe software management and engineering in the AI-oriented projects tutorial
The software management and engineering in the AI-oriented projects tutorialrpietruszkiewicz
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLESIvano Malavolta
 

Similar to Lightweight MDD Process for Small Projects (20)

10 Things You Should Know About MDD
10 Things You Should Know About MDD10 Things You Should Know About MDD
10 Things You Should Know About MDD
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
 
Clean architecture with asp.net core
Clean architecture with asp.net coreClean architecture with asp.net core
Clean architecture with asp.net core
 
MODEL DRIVEN DEVELOPMENT (1).pptx
MODEL DRIVEN DEVELOPMENT (1).pptxMODEL DRIVEN DEVELOPMENT (1).pptx
MODEL DRIVEN DEVELOPMENT (1).pptx
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Model Driven Architectures
Model Driven ArchitecturesModel Driven Architectures
Model Driven Architectures
 
Cnpm bkdn
Cnpm bkdnCnpm bkdn
Cnpm bkdn
 
Notes on software engineering
Notes on software engineeringNotes on software engineering
Notes on software engineering
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
 
Managing Complexity and Change with Scalable Software Design
Managing Complexity and Change with Scalable Software DesignManaging Complexity and Change with Scalable Software Design
Managing Complexity and Change with Scalable Software Design
 
Software process model
Software process modelSoftware process model
Software process model
 
SOFTWARE DEVELOPMENT AND PROCESS MODELS.pptx
SOFTWARE DEVELOPMENT AND PROCESS MODELS.pptxSOFTWARE DEVELOPMENT AND PROCESS MODELS.pptx
SOFTWARE DEVELOPMENT AND PROCESS MODELS.pptx
 
Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties
Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee ApplicatiesFinal Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties
Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties
 
Software development process models
Software development process modelsSoftware development process models
Software development process models
 
The Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicThe Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs Public
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Tools
 
Sdlc cource in_mumbai
Sdlc cource in_mumbaiSdlc cource in_mumbai
Sdlc cource in_mumbai
 
want to contact me login to www.stqa.org
want to contact me login to www.stqa.orgwant to contact me login to www.stqa.org
want to contact me login to www.stqa.org
 
The software management and engineering in the AI-oriented projects tutorial
The software management and engineering in the AI-oriented projects tutorialThe software management and engineering in the AI-oriented projects tutorial
The software management and engineering in the AI-oriented projects tutorial
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES
 

More from Gabor Guta

New Features of Python 3.10
New Features of Python 3.10New Features of Python 3.10
New Features of Python 3.10Gabor Guta
 
Agilie Development with UML
Agilie Development with UMLAgilie Development with UML
Agilie Development with UMLGabor Guta
 
How can be the quality of a software product measured?
How can be the quality of a software product measured?How can be the quality of a software product measured?
How can be the quality of a software product measured?Gabor Guta
 
Challenges of Developing BLE Application on Android
Challenges of Developing BLE Application on AndroidChallenges of Developing BLE Application on Android
Challenges of Developing BLE Application on AndroidGabor Guta
 
CPS Demo System
CPS Demo SystemCPS Demo System
CPS Demo SystemGabor Guta
 
LEGO Demo System for CPS Education
LEGO Demo System for CPS EducationLEGO Demo System for CPS Education
LEGO Demo System for CPS EducationGabor Guta
 

More from Gabor Guta (6)

New Features of Python 3.10
New Features of Python 3.10New Features of Python 3.10
New Features of Python 3.10
 
Agilie Development with UML
Agilie Development with UMLAgilie Development with UML
Agilie Development with UML
 
How can be the quality of a software product measured?
How can be the quality of a software product measured?How can be the quality of a software product measured?
How can be the quality of a software product measured?
 
Challenges of Developing BLE Application on Android
Challenges of Developing BLE Application on AndroidChallenges of Developing BLE Application on Android
Challenges of Developing BLE Application on Android
 
CPS Demo System
CPS Demo SystemCPS Demo System
CPS Demo System
 
LEGO Demo System for CPS Education
LEGO Demo System for CPS EducationLEGO Demo System for CPS Education
LEGO Demo System for CPS Education
 

Recently uploaded

Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 

Recently uploaded (20)

Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 

Lightweight MDD Process for Small Projects

  • 1. A Lightweight MDD Process Applied in Small Projects Gabor Guta, PhD
  • 3. info@axonmatics.com Motivation  Generative approaches become popular like  model driven development (MDD),  domain specific languages (DSL), etc.  Several success stories about applying these techniques in large  Process frameworks and methods for full scale application of them  Lot of software developed by small teams using Agile methods There is no or little help of its application in small!
  • 4. info@axonmatics.com What is MDD?  Generating software from a model – Advantage: saving time/effort on implementing repetitive tasks by working on model level  The most well known approaches are the followings:  OMG's MDA  Microsoft's Software Factories
  • 6. info@axonmatics.com What is MDD? (cont'd)  The artifacts generating transformations are often called templates  Domain & intermediate models can be described with meta-models
  • 7. info@axonmatics.com Differences  What is the domain model (real life / implementation)?  How can the domain meta-model be represented?  What kind of notation do we use to communicate the domain model?  How are the transformations defined?  Do we allow to edit the intermediate models or the generated artifacts?
  • 8. info@axonmatics.com Further differences  How does MDD affect the development process?  Are we able to reverse the transformation (propagate changes of the generated artifacts back to the original model)?  How can intermediate models be merged if the original generated model was modified and a different one was generated after the domain model was changed?  What are the quality implications of the MDD?  How does it modify the test and review procedures?  What kind of additional problem can be expected?
  • 9. info@axonmatics.com Important Issues of the Lightweight MDD  Most of the risks should be mitigated  No immature technology allowed  Fall back to the traditional development method  The approach should not delay the schedule in general  It should have immediate business advantage  The approach should be cost sensitive  No high cost MDA tool set,  No extensive training
  • 10. info@axonmatics.com Important Issues of the Lightweight MDD (cont'd)  The domain-model should be kept as simple as possible and the generated code should be human-readable and modifiable.  The results should be reusable in other projects.
  • 11. info@axonmatics.com Our Minimalistic Approach  Creating the simplest solution  Using the simplest tool-set  Explicitly support the partial approach  We just model and generate parts where it pays off  Keeping track of which requirement applied in the model is relatively cheap
  • 12. info@axonmatics.com Project Experience  An enterprise web application for a specific domain developed  Microsoft’s ASP.NET technology and an MS-SQL back-end were used (conforming to architectural guidelines of the multi-layer enterprise ASP.NET applications  Readable source code and complete developer documentation  The project team experienced with traditional iterative development method (containing elements from current Agile methodologies)
  • 13. info@axonmatics.com The Process  Roles  Artifacts  Activities  Workflow
  • 15. info@axonmatics.com Teams  The agile development team  Members were: developers, a software architect  Responsible for: hand crafted software  The business analyst team  Members were: managers  Responsible for: requirements and the domain models  The model driven development team  Members were: an MDD expert, developers  Responsible for: MDD environment, the templates
  • 16. info@axonmatics.com Artifacts  An MDD vision  A code generation tool  A domain test model  An MDD environment (domain metamodel, a domain test model, and a code generation tool).  Hand crafted software  Released software  A software requirement specification (or requirements)
  • 17. info@axonmatics.com Activities  Domain model extraction  In: requirements  Out: initial domain model, MDD vision  The MDD environment setup  In: MDD vision, initial domain model  Out: code generation tool, initial version of the domain meta-model, domain test model  Domain modeling  Refine: domain model  The MDD environment development  Refine: MDD environment
  • 18. info@axonmatics.com Activities (cont'd)  Template development  Refine: templates  Steps:  the required functionality is implemented in a software prototype;  the implementation is extracted and to edited into the templates;  finally, the they are tested with the help of the domain test model.  Code generation  In: templates and domain model  Out: generated artifacts
  • 19. info@axonmatics.com Activities (cont'd)  Integration  In: generated artifacts, hand-crafted software  Out: released software  Development  Requirements Refinement  Architectural prototyping  Design  Development
  • 22. info@axonmatics.com The Template Development Activity  The most complex and critical activity of the process  It becomes dominant activity of the MDD team after the MDD environment is stabilized  During an iteration several features are implemented iteratively in the frame of this activity
  • 23. info@axonmatics.com The Template Development Activity (cont'd)  A feature is implemented as an extension of the generated artifacts (designed, coded and tested)  The implemented feature is extracted from the source code and inserted into the templates  The artifacts re-generated with the new templates  Tested with the test-cases of original implementation  The first iteration is sightly different, because no prior generated artifacts available at that time.
  • 24. info@axonmatics.com Conclusion  Our model driven development method has been applied successfully  Our "experiment" has two results  our process can be used successfully in an averages small-mid sized project  project can be realized with standard data format (XML, JSON, or YAML) and template engines (XSLT, Jinja2, etc.), i.e. no need for special MDA/DSL tool chain  Our process can be also used as preparatory step before the introduction of a heavyweight process