+ All Categories
Home > Documents > Model Driven Architecture (MDA) Partha Kuchana. Agenda What is MDA Modeling Approaches MDA in a...

Model Driven Architecture (MDA) Partha Kuchana. Agenda What is MDA Modeling Approaches MDA in a...

Date post: 21-Dec-2015
Category:
View: 230 times
Download: 2 times
Share this document with a friend
17
Model Driven Architecture (MDA) Partha Kuchana
Transcript
Page 1: Model Driven Architecture (MDA) Partha Kuchana. Agenda What is MDA Modeling Approaches MDA in a NutShell MDA Models SDLC MDA Models (an Example) MDA -

Model Driven Architecture (MDA)

Partha Kuchana

Page 2: Model Driven Architecture (MDA) Partha Kuchana. Agenda What is MDA Modeling Approaches MDA in a NutShell MDA Models SDLC MDA Models (an Example) MDA -

Agenda• What is MDA• Modeling Approaches • MDA in a NutShell • MDA Models • SDLC • MDA Models (an Example) • MDA - Advantages • MDA - Reality Check

Page 3: Model Driven Architecture (MDA) Partha Kuchana. Agenda What is MDA Modeling Approaches MDA in a NutShell MDA Models SDLC MDA Models (an Example) MDA -

What is MDA ?• Model Driven Architecture• What is Model

• abstraction of something that exists in reality• description of a (business) system in a [formal way]

Page 4: Model Driven Architecture (MDA) Partha Kuchana. Agenda What is MDA Modeling Approaches MDA in a NutShell MDA Models SDLC MDA Models (an Example) MDA -

What is MDA ?• Software Modeling Approaches• OMG framework for software development, which is

top-down and driven by the business

CodeCode Only[No Model]

ModelCodeCode Visualization[Code is the Model]

ModelCode

RoundTrip Engineering

[Code and Model Co-Exist]

ModelCodeModel Centric

[Model is the Code]

ModelModel Only[No Code]

Page 5: Model Driven Architecture (MDA) Partha Kuchana. Agenda What is MDA Modeling Approaches MDA in a NutShell MDA Models SDLC MDA Models (an Example) MDA -

Modeling Approaches• Code Only

• No formal model exists• Modeling is done in the form of

programming abstractions e.g., packages and modules

• Might work for small scale efforts• Makes maintenance difficult

• Code is Model• Pictorial representation of the code base• No real high level model• Developers can alter model elements

through code

Page 6: Model Driven Architecture (MDA) Partha Kuchana. Agenda What is MDA Modeling Approaches MDA in a NutShell MDA Models SDLC MDA Models (an Example) MDA -

Modeling Approaches• Code and Model Co-exist (RTE)

• High level model exists• Transformation from model to code is manual

• Automated tools could be used to generate stubs

• Code and model evolve through iterations• Code or model may be changed for error-

correction• If not controlled through an effective

process, gets code and model out of sync

• Model-centric• Model exists with sufficient details

• Business Rules• Integration Requirements

Page 7: Model Driven Architecture (MDA) Partha Kuchana. Agenda What is MDA Modeling Approaches MDA in a NutShell MDA Models SDLC MDA Models (an Example) MDA -

Modeling Approaches• Business Requirements• UI Representation Details• Business Logic

• Transformation from model to code is automated

• Model only• Corresponding code transformation may not

occur (solution architecture in proposals and software architecture documents)

• Model and code are disconnected (O/N/R* shoring)

Page 8: Model Driven Architecture (MDA) Partha Kuchana. Agenda What is MDA Modeling Approaches MDA in a NutShell MDA Models SDLC MDA Models (an Example) MDA -

MDA in a Nutshell

MDA

Page 9: Model Driven Architecture (MDA) Partha Kuchana. Agenda What is MDA Modeling Approaches MDA in a NutShell MDA Models SDLC MDA Models (an Example) MDA -

MDA Models• MDA is a way to organize and manage

enterprise architectures supported by automated tools and services for both defining the models and facilitating transformations between different model types. (OMG Definition)

• Platform Independent Model (PIM)• Fundamental Business Function and

Behavior• Created using UML

• Platform Specific Model (PSM)• Specification of the Application in terms of

the Implementation Constructs• Specific to a Given Target Platform• Based on the PIM

Page 10: Model Driven Architecture (MDA) Partha Kuchana. Agenda What is MDA Modeling Approaches MDA in a NutShell MDA Models SDLC MDA Models (an Example) MDA -

MDA Models• Code Model

• Based on PSM• Implementation in a Specific Language

• MDD• Model is used as a primary artifact to

generate an efficient implementation through transformations

• Work carried out by developers in an MDA based implementation

• MDA - MDD made formal (by OMG)

• Example:• Functionality around an insurance policy

and a customer

Page 11: Model Driven Architecture (MDA) Partha Kuchana. Agenda What is MDA Modeling Approaches MDA in a NutShell MDA Models SDLC MDA Models (an Example) MDA -

SDLC

Build/CodingDesign

TestingRequirements Gathering/An

alysis

Deployment

Traditional

Analysis and Requirements Specification

Analysis and Requirements Specification Detailed System Design Code

MDA

DesignReq Gathering/Analysis Build/Coding Testing deployment

Usecases/ PIMPSM Code

Page 12: Model Driven Architecture (MDA) Partha Kuchana. Agenda What is MDA Modeling Approaches MDA in a NutShell MDA Models SDLC MDA Models (an Example) MDA -

MDA Models (an Example)Platform Independent Model

Policy

effDate: DateexpDate: DatePremium: Real

policyType: Integer

getPremium()

Customer

firstName: StringlastName: StringAddress: Address

*1

Platform Specific Model (Relational)

Policy

effDate: DATEexpDate: DATEPremium: REAL

policyType: INTEGER

Customer

firstName: VARCHAR(30)lastName: VARCHAR(30)Address: VARCHAR(30)

Platform Specific Model

(EJB Component)

<<EJBEntityComponent>>Policy

<<EJBEntityComponent>>Customer

<<EJBDataSchema>> and

<<EJBKeyClass>>

Platform Specific Model

(Web Component)

<<WebComponent>>Policy

<<WebComponent>>Customer

<<WebDataSchema>>

Code Model

Oracle DDL EJB CodeJSP CodeInfrastructure/Deployment/Plumbing Code

Page 13: Model Driven Architecture (MDA) Partha Kuchana. Agenda What is MDA Modeling Approaches MDA in a NutShell MDA Models SDLC MDA Models (an Example) MDA -

Advantages• MN language suitable for automated

interpretation• Increased Productivity

• Automated code generation (not just stubs)• Higher level of abstraction to the SD process• High quality, Standards Based, Consistent

Code base

• Helps preserve development investment• Insulates business from technology evolution

• Requires strong collaboration between IT and Business• Top down development

• More in alignment with the real-world• empowering business users

Page 14: Model Driven Architecture (MDA) Partha Kuchana. Agenda What is MDA Modeling Approaches MDA in a NutShell MDA Models SDLC MDA Models (an Example) MDA -

Advantages• Model (in action) validation

• capture requirements more effectively• Suitable for modern day development

approaches• Portability

• Focus on PIMs, transform to multiple PSMs (platforms)

• Enables transition to newer technologies seamless to gain business value (java, xml, web services)

• Interoperability• Bridges, for communication between PSMs

• Documentation• Low and high level• Useful/meaningful documentation• Automated

• Automated Integration• support for automated testing *

Page 15: Model Driven Architecture (MDA) Partha Kuchana. Agenda What is MDA Modeling Approaches MDA in a NutShell MDA Models SDLC MDA Models (an Example) MDA -

MDA – Reality Check• MDA <> Math• UML is not sufficient to describe

complex business interactions• leads to proprietary extensions

• Affects portability• Cannot produce fully functional application

• One-size fits all approach• Potential for inefficient code

• Domain experts with business knowledge may need to learn UML

• Built in transformations• Needs customizations• Complex template merging may be required• Can be minimized with rich set of templates

Page 16: Model Driven Architecture (MDA) Partha Kuchana. Agenda What is MDA Modeling Approaches MDA in a NutShell MDA Models SDLC MDA Models (an Example) MDA -

MDA – Reality Check• Provides a higher level of abstraction to the SD process

• Before you start using MDA• Support for powerful frameworks for robust system design• Limit on the number of business entities that can be

modeled• Support for automated testing

• Plug-play with testing tools• Support for integration• Estimate the amount of customization needed

• DB related customizations, not just code• Estimate the template merging effort

• Continued vendor support for template merging for new releases

• Consider the efficiency of the generated code• Have a process to ensure top-down development

• requirements must always flow from top down• Eliminates the scope for technology defining business

requirements

Page 17: Model Driven Architecture (MDA) Partha Kuchana. Agenda What is MDA Modeling Approaches MDA in a NutShell MDA Models SDLC MDA Models (an Example) MDA -

Questions


Recommended