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

17
Model Driven Architecture (MDA) Partha Kuchana
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    236
  • download

    2

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

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