MDA vs MDD
This post kicks of a new series on UML Operator Channel UML Operator Channel around systems and software delivery, titled "Model-Driven Anything". Subscribe, turn on notifications, follow, and most importantly...Contribute 😎
IMPORTANT NOTE: Never start a software development effort without Requirements!!! or Scope!!! However, sometimes software starts out as a means of developing scope and requirements!
So what are we talking about?
Model-Driven Architecture (MDA) and Model-Driven Development (MDD) are both approaches within the realm of software development that emphasize the use of models as primary artifacts in the software engineering process. However, they have distinct focuses and methodologies. Here are the key differences between the two:
Model-Driven Architecture (MDA)
Origin and Standardization:
- Origin: MDA is a software design approach proposed by the Object Management Group (OMG).
- Standardization: It is a well-defined framework with standardized guidelines and specifications.
Core Concept:
- MDA is based on the separation of concerns, using models to describe different aspects of a system at varying levels of abstraction.
Abstraction Levels:
- Computation Independent Model (CIM): Describes the system's business context without considering system details.
- Platform Independent Model (PIM): Focuses on the system's functionality and behavior without considering platform specifics.
- Platform Specific Model (PSM): Tailors the PIM to specific platforms, adding details needed for the implementation on a particular technology.
Transformation:
- Emphasizes model transformations between different levels of abstraction (e.g., from PIM to PSM).
Standards and Tools:
- Utilizes standards such as UML (Unified Modeling Language), XMI (XML Metadata Interchange), and MOF (Meta-Object Facility).
- Often supported by specific tools that adhere to OMG's standards.
Model-Driven Development (MDD)
Origin and Flexibility:
- Origin: MDD is a broader and more general approach that encompasses any development methodology that relies heavily on models.
- Flexibility: It is not tied to a specific set of standards or frameworks and can be adapted to various contexts.
Core Concept:
- MDD focuses on using models as primary artifacts throughout the software development lifecycle, from requirements to design, implementation, and testing.
Approach:
- Models are used to generate executable code, documentation, and other development artifacts.
- The approach can vary greatly, with some methodologies using specific types of models or tools.
Transformation:
- While transformations are part of MDD, they are not as strictly defined as in MDA. The emphasis is more on the practical use of models to directly support development tasks.
Tools and Techniques:
- Uses a variety of modeling languages (not just UML), domain-specific languages (DSLs), and other tools tailored to specific development needs.
- More adaptable to incorporating new modeling techniques and tools.
Summary
- MDA is a standardized, framework-based approach proposed by OMG, focusing on model transformations across different levels of abstraction using specific standards and tools.
- MDD is a broader, more flexible approach that emphasizes the use of models throughout the development process, without being tied to specific standards or frameworks.
By understanding these differences, organizations can better choose the approach that aligns with their project requirements, goals, and existing workflows.
Conclusion
What we will expose, in this video series, are the core concepts in Enterprise, Solution, and Application Architecture to most effectively deliver Systems and Software. If you are new to software delivery, this will give you an idea of what is necessary to deliver this architecture based on my 30+ years in this business. If you are an experienced Systems/Software Architect, at any level, you should be able to relate and contribute.
Things you will Learn
- What is MDD/MDA and how to get started
- The benefits of MDD and MDA
- How to apply these concepts in Sparx Enterprise Architect (EA)
- Integration between your "modeling environment" and your Integrated Development Environment (IDE)
- Demonstrate these concepts in a real project, from Requirements to Release
And more....
Comments
Post a Comment