20
Tuesday, March 22, 202 2 1/20 Constructing MDA-based Application Using Rational XDE for .NET By Ashirul Mubin

Constructing MDA-based Application Using Rational XDE for .NET

Embed Size (px)

DESCRIPTION

Constructing MDA-based Application Using Rational XDE for .NET. By Ashirul Mubin. Model Driven Architecture. MDA is language, vendor and middleware- neutral A complete MDA specification consists of: A definitive platform independent base UML model One or more platform specific models - PowerPoint PPT Presentation

Citation preview

Wednesday, April 19, 2023 1/20

Constructing MDA-based Application

Using Rational XDE for .NET

Constructing MDA-based Application

Using Rational XDE for .NET

By Ashirul Mubin

Wednesday, April 19, 2023 2/20

Model Driven ArchitectureModel Driven Architecture

• MDA is language, vendor and middleware-neutral• A complete MDA specification consists of:

– A definitive platform independent base UML model– One or more platform specific models– Interface definition sets

• MDA focuses primarily on the functionality and behavior of a system.

• The biggest benefit of MDA is the generation of application code from an MDA model through an automated or semi-automated series of steps.

• Goal: to maximize automation of the mapping step.

Wednesday, April 19, 2023 3/20

Modeling TechnologiesModeling Technologies

MOF MOF provides standard repository for the model and defines a structure that helps multiple groups work with the model

CWM CWM is the standard for data repository integration. It standardizes how to represent Schema and Schema Transformation models, OLAP, and Data Mining models.

XMI XMI expresses UML models in XML and allows them to be moved (exchanged) around the enterprise

Three key modeling technologies that support MDA (all UML based):

Wednesday, April 19, 2023 4/20

MDA Metamodel DescriptionMDA Metamodel Description

Wednesday, April 19, 2023 5/20

System Life CycleSystem Life Cycle

• A PIM can be refined n-times until the desired system description level is obtained.

• Then the infrastructure is taken into account and PIM is mapped into PSM

• Then, again, PSMs are refined as many times as needed.

Wednesday, April 19, 2023 6/20

MDA-based Application Development

MDA-based Application Development

• The process involves three steps:– Step 1: Build a Platform Independent

Model (PIM)– Step 2: Map this model into a Platform

Specific Model (PSM)– Step 3: Generate Code that can be

deployed and run

Wednesday, April 19, 2023 7/20

Step 1: Build a PIMStep 1: Build a PIM

• Create a PIM expressed in UML in terms of the appropriate core model (UML, MOF, CWM, XMI).

• All MDA models will have multiple levels of PIMs:– Base PIM expresses only business functionality and

behavior for client and server– PIMs at the next level include some aspects of

technology even though platform-specific details are absent (eg. Activation patterns).

• Link to pervasive services, domain and other facilities that application invokes.

Wednesday, April 19, 2023 8/20

Step 2: Map into PSMStep 2: Map into PSM

• Completed PIM is stored in MOF. • Convert this model into one targeted to a specific

platform (PSM) such as .NET using mapping tool such as Rational XDE.

• Automated tools perform the conversion as much as possible • Ambiguous portions are flagged for manual programming

• Mapping must be detailed enough to eventually enable generation of running code from UML model

• PSM faithfully represents both the business and technical run-time semantics of the application.

Wednesday, April 19, 2023 9/20

Step 2: Map into PSM, cont.Step 2: Map into PSM, cont.

• The model is still a UML model, but is expressed in a dialect of UML (UML profile) that precisely mirrors technical run-time elements of the target platform.

• A modeling environment based on the common features of various middleware platforms is realized as a UML Profile.

• UML Profile defines a UML environment tailored to modeling for a specific platform.

• UML Profile is actually a meta-model of the middleware environment.

Wednesday, April 19, 2023 10/20

Step 3: Generate Application CodeStep 3: Generate Application Code

• Generate the application code by selecting a language (eg. C# from .NET platform).

• The MDA tool (eg. Rational XDE) will produce all types of code and configuration files

• Then, programmers will apply any required hand-coding to the output

• A middle-ware specific tool (eg .NET Framework) will compile all of the various code elements

• Executable modules are then created. Server now ready to be deployed and run

Wednesday, April 19, 2023 11/20

Rational XDE - FeaturesRational XDE - Features

• Visual Studio .NET – XDE runs inside VS.NET as an add-in

• MDA Support - UML Modeling (classes, use cases, diagrams); hence, MOF, CWM, XMI

• Code Synchronization – generate code from UML models and vice versa.

• Support for Team Development – control of source code and versions.

• Design Patterns – create, store, and reuse design patterns in UML models

Wednesday, April 19, 2023 12/20

Design and development can be done within one environment

Wednesday, April 19, 2023 13/20

Free-Form Modeling — allows Modeling in ways that increase the effectiveness in communication

Wednesday, April 19, 2023 14/20

Synchronizing options

Synchronizing the model and code >>

Wednesday, April 19, 2023 15/20

Wednesday, April 19, 2023 16/20

Mapping into .NETMapping into .NET

• Because MDA is platform independent at its core, adding a new middleware platforms to the interoperability environment is straightforward:– Identify the way a new platform represents and

implements common middleware concepts and functions.

– Incorporate this information into the MDA as a mapping.

– .NET is integrated in this way.

• See handout: Map CodeUML; UMLCode

Wednesday, April 19, 2023 17/20

Example: SynchronizationExample: Synchronization

Wednesday, April 19, 2023 18/20

Example: <<interface>> classExample: <<interface>> class

* There is a separate interface tool in XDE

Wednesday, April 19, 2023 19/20

Example: ImplementationsExample: Implementations

Wednesday, April 19, 2023 20/20

Thank youThank you

Questions?