200 likes | 310 Views
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
E N D
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 • 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.
Modeling Technologies Three key modeling technologies that support MDA (all UML based):
System 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.
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
Step 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.
Step 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. • Automatedtools 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.
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.
Step 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
Rational 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
Free-Form Modeling — allows Modeling in ways that increase the effectiveness in communication
Synchronizing options Synchronizing the model and code >>
Mapping 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
Example: <<interface>> class * There is a separate interface tool in XDE
Thank you Questions?