Evaluating Compuware OptimalJ as an MDA tool Shimin Li
Project Overview Introduction Mode-Driven Architecture Overview Framework for Evaluating MDA Tools Evaluating Compuware OptimalJ Conclusion December 3, 2018
Introduction Motivation Objectives Approach Organization December 3, 2018
Model-Driven Architecture Overview Viewpoints and Models Computation Independent Viewpoint and CIM Platform Independent Viewpoint and PIM Platform Specific Viewpoint and PSM December 3, 2018
Model-Driven Architecture overview Model transformations Meta-model Mapping Model Marking Approaches Marking Model Meta-model transformation Model transformation Pattern application Model Merging December 3, 2018
Model-Driven Architecture overview Proposed standards Meta-Object Facility (MOF) Unified Modeling Language (UML) XML Metadata Interchange (XMI) Common Warehouse Metamodel (CWM) December 3, 2018
Model-Driven Architecture overview Benefits Improved portability By separating the specification of the operation of a system from the details of the way that the system uses the capabilities of its platform Increased productivity By automating mappings Improved quality By reuse of well designed patterns and templates in mappings Improved maintainability and documentation By separation of concerns, traceability and consistency between models and code December 3, 2018
Framework for Evaluating MDA Tools MDA Feature Analysis By a case study Comparison with a Standard Engineering Tool December 3, 2018
Model-Driven Architecture Features December 3, 2018
Case Study Goal Exercise important MDA-related activities using Compuware OptimalJ Compare OptimalJ with Standard Engineering Tool December 3, 2018
Standard Engineering Tool Eclipse + Lomboz J2EE plug-in December 3, 2018
Case Study Software Practice Lab (SPL) A number of members (students) A number of supervisors A number of sponsors A list of projects, and each of them is associated with a specific sponsor Each member, supervisor, and sponsor can access the information of SPL through a web browser by login SPL with their username and password. December 3, 2018
Software Practice Lab (SPL) Case Study Software Practice Lab (SPL) December 3, 2018
Case Study December 3, 2018
Case Study December 3, 2018
Case Study December 3, 2018
Implementation - Eclipse & Lomboz J2EE plug-in Software Practice Lab J2EE Components December 3, 2018
Implementation - Eclipse & Lomboz J2EE plug-in Design pattern: Session Façade Member, supervisor, project, and sponsor are accessible via SPLAccess Code written A session EJB and its DAO (SPLAccess) Two BMP EJBs and their DAOs (Member and Supervisor) Two CMP EJBs (Project and Sponsor) A Servlet Database Schema (for five relations) Code generated (by XDoclet) EJB Home, Remote, DAO interfaces Deployment descriptions December 3, 2018
Feature Analysis - Eclipse & Lomboz J2EE plug-in December 3, 2018
SPL Implementation – OptimalJ 3.1 PE Construct the Domain Model (PIM) High level of abstraction of the system Class Model Static structure of the application data Each class must has a primary key (for creating database model) Service Model Operations on data (e.g. login user, show all projects in SPL) December 3, 2018
SPL Domain model explorer December 3, 2018
SPL Domain model December 3, 2018
SPL Implementation – OptimalJ 3.1 PE Generate the Application Model (PSM) High level of abstraction of the Platform Use patterns to translate PIM to PSM PSM depends upon technology used (Currently J2EE) SPL application model consists of Database model – SQL Schema (Solid) EJB model – Session, entity, and message-driven beans Web model – Web page templates from Macromedia Dreamweaver December 3, 2018
SPL Application model – Database model December 3, 2018
SPL Application model – EJB model December 3, 2018
Transformation Rules -- Classes For each class in the PIM, there is a class of the same name in the PSM For each public attribute of the class, the following are in the PSM A private attribute with the same name and type A public operation for get A public operation for set December 3, 2018
Transformation Rules -- Associations For each association in the PIM, the following are in the PSM A private attribute in each class with the same name as the opposite class Get and set operations for the attribute If multiplicity is 0 or 1, the type is that of the opposite class If multiplicity is many, the type is a Set (e.g. Collection in Java) December 3, 2018
SPL Implementation – OptimalJ 3.1 PE Generate the Code Model Java code, JSP, and XML files Certain design patterns used (e.g. Session Façade) Make the generated code easier to understand and modify Divides generated files into free and guarded blocks Free blocks Free to change Changes are preserved when code is updated from application model Guarded blocks Forbid changing But may change by selecting the option to ignore the guarded blocks or from outside OptimalJ. The changes are not preserved. December 3, 2018
Feature Analysis - OptimalJ 3.1 PE December 3, 2018
Comparison December 3, 2018
Conclusion Compuware OptimlJ 3.1 PE supports MDA well Shield the engineer from implementation details Provides a good development life-cycle Make modification to models The modification can be reflected almost immediately in the deployed system Perform significantly better than the traditional engineering tool December 3, 2018
Conclusion Suggestions for improvements Provide the ability to model behavior of the system Provide the simulation of models at domain level and application level December 3, 2018