The document discusses model-driven development (MDD), an approach to software development where models rather than code are the primary outputs. Key aspects of MDD include creating software models that specify how the system should work before code is generated from the models. MDD aims to increase productivity by automating code generation from models. Some tools that support MDD are Rational Software Architect, Simulink, and Sirius. The document also discusses benefits of MDD like higher abstraction, agility, and improved quality, as well as challenges like upfront costs and lack of flexibility.
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
Model-Driven Development Benefits and Challenges
1. SUBMITTED BY :
Mohammed Hanees 22MCA10115 Jay Gadhave 22MCA10084
Avinash Grover 22MCA10063 Pawan Kayande 22MCA10158
2. Model-driven development (MDD) is a format to write and
implement software quickly, effectively and at minimum cost.
It is an approach of software development where models rather
than programs are the principal outputs of the development
process.
It is also known as model-driven software development (MDSD),
model-driven engineering (MDE) and model-driven architecture
(MDA).
3. MDD approach focuses on the construction of a software model.
The model is a diagram that specifies how the software system should
work before the code is generated.
The programs that are executed on a hardware/software platform are
then automatically generated from the models.
Once the software is created, it can be tested using model-based testing
(MBT) and then deployed.
4. Engineers no longer have to be concerned with programming language
details or specifies of execution platforms.
Abstraction and automation are key concepts of MDD.
Abstraction means to organize complex software systems. In MDD,
complex software gets abstracted, which then extracts easy-to-define
code.
Once developers transform the abstraction, a working version of the
software model gets automated.
5. RATIONAL SOFTWARE ARCHITECT:
IBM's Rational Software Architect is a modeling and development tool that
uses Unified Modeling Language (UML) to design models for C++ and Java
Platform, Enterprise Edition (Java EE) applications and web services.
SIMULINK:
Developed by MathWorks, is a programming environment for modelling.
With Simulink, a user can model and simulate software, test code and
automatically generate code.
Code is automatically created based on the model in Simulink and with an
additional MathWorks program, Simulink Coder.
6. SIRIUS:
Sirius is an open source graphic modeling tool from the Eclipse
Foundation.
Sirius creates models using diagrams, data trees and data tables.
The user does not need expansive technical knowledge to create
these models, and no code generation is involved.
Sirius is primarily used to design complex systems.
7. Model-driven architecture (MDA) was
the precursor of more general model-
driven development.
MDA is a model-focused approach to
software design and implementation
that uses a subset of UML models to
describe a system.
Models at different levels of abstraction
are created
8. There are three key types of models used in MDD:
• Domain Model: This model describes the problem domain in
terms of concepts, relationships, and constraints. It provides a
high-level abstraction of the problem to be solved.
• Platform Model: This model describes the technology platform
on which the system will be built. It provides a low-level
abstraction of the target platform, including its architecture,
components, and interfaces.
• Implementation Model: This model describes the actual
implementation of the system in terms of code, configuration
settings, and other artifacts.
9. Higher productivity: Since tedious and boring parts of the code
are generated automatically, productivity is much higher. Code
generators produce thousands
It represents the intended behaviors or actions of a software
product before coding begins.
The individuals and teams that work on the software construct
models collaboratively.
Agile development: The software development process using
MDSE is agile, since any changes that are thought of
unexpectedly during or after development are propagated quickly
and efficiently..
10. Allows systems to be considered at higher levels of abstraction.
Generating code automatically means that it is cheaper to adapt
systems to new platforms.
Improved Quality: Bulky handwritten code have inconsistent
quality because of the discrepancies and variations in knowledge
during development. These discrepancies result as various
developers work on different abstract views of the same software.
11. Communication between developers and a product manager, for
example, provides clear definitions of what the software is and
how it works.
Tests, rebuilds and redeployments can be faster when developing
multiple applications with MDD than with traditional
development.
The individuals and teams that work on the software construct
models collaboratively.
12. Code generator has to be written first which is in itself a herculean task and moreover
it is not guaranteed that once we write a code generator, it will be sufficient for all the
other software projects.
Generating code may be out-weighted by costs of developing
Projects.
Moreover it is not guaranteed that once we write a code
generator, it will be sufficient for all the other software
projects.
13. The generic approach is not always applicable to all the cases because
of limited Tools of model because we check weather it is suitable or not.
Many companies have invested huge amounts in their existing
traditional hard coded software systems and thus are wprry to adopt a
new approach.
Not suitable for Complex Systems.
14. Generality can be a drawback, for instance that Databases not in well-designed and
normalized manner
System is developed by MDD is not good for Long term Because the code is generate
by model after one – two years it will be arise problems for the particular system.
Thankyou For your Attention