320 likes | 333 Views
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. Introduction. Motivation Objectives Approach Organization.
E N D
Project Overview • Introduction • Mode-Driven Architecture Overview • Framework for Evaluating MDA Tools • Evaluating Compuware OptimalJ • Conclusion
Introduction • Motivation • Objectives • Approach • Organization
Model-Driven Architecture Overview • Viewpoints and Models • Computation Independent Viewpoint and CIM • Platform Independent Viewpoint and PIM • Platform Specific Viewpoint and PSM
Model-Driven Architecture overview • Model transformations • Meta-model • Mapping • Model Marking • Approaches • Marking Model • Meta-model transformation • Model transformation • Pattern application • Model Merging
Model-Driven Architecture overview • Proposed standards • Meta-Object Facility (MOF) • Unified Modeling Language (UML) • XML Metadata Interchange (XMI) • Common Warehouse Metamodel (CWM)
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
Framework for Evaluating MDA Tools • MDA Feature Analysis • By a case study • Comparison with a Standard Engineering Tool • By a case study
Case Study • Goal • Exercise important MDA-related activities using Compuware OptimalJ • Compare OptimalJ with Standard Engineering Tool
Standard Engineering Tool • Eclipse + Lomboz J2EE plug-in
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.
Case Study Software Practice Lab (SPL)
Implementation - Eclipse & Lomboz J2EE plug-in Software Practice Lab J2EE Components
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
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)
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
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
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)
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.
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
Conclusion • Suggestions for improvements • Provide the ability to model behavior of the system • Provide the simulation of models at domain level and application level