ARCH-5: From Design to Implementation in OpenEdge® using UML and MDA Frank Beusenberg Sr. Technical Consultant
Theory vs Practice Be pragmatic! The difference between theory and practice is that, in theory, there is no difference between theory and practice! Just pointing out that UML can be a source of very ‘academic’ discussions much like you can have with ‘relational algebra’. Try to be pragmatic about UML and its usage. ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Shu - Learn Ha - Understand & Apply Ri - Create Shu – Ha - Ri Learning Curve… Shu - Learn Ha - Understand & Apply Ri - Create Just pointing out that you have to learn the UML rules first (so know what they are), after which you could understand UML and start using it and at the end you could even create your own standards. This is taken from Japanese Martial Arts and serves as a model for learning in general. ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Agenda Introduction UML 2.0 Diagrams MDA Introduction Guidelines Q&A ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Introduction UML = Unified Modeling Language First UML spec in 1997 What is UML? Some facts… UML = Unified Modeling Language First UML spec in 1997 Current version = 2.0 Object Management Group (OMG) Graphical language Object Oriented in nature Has Syntax Extensible NOT a methodology! ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Introduction What is UML? Evolution… Object Oriented Analysis & Design Grady Booch Object Oriented Modeling & Design Jim Rumbauch OOSE (Use Case driven approach) Ivar Jacobsen UML is not something that has been made up new. It is an evolutionary mix of three main modeling and design ‘languages’. ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Introduction Why model? Manage Complexity Mitigate Risk Facilitate Communication Modeling provides ability to visualize entire systems, assess options and designs Software has grown from do-it-yourself into highly complex systems Software is integral part of business process, so has to be well planned Software has become capital equipment that cannot just be removed/changed ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Introduction The Software Development Life Cycle Planning Analysis Design Build Test Deploy COMPRESS Planning Test Deploy Analysis Design Build ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Introduction Why UML? Specify, visualize, and document models of software systems Current and New Systems Structure and Design Behavior and Interaction De Facto Standard (Tool Support!) Unambiguous and Consistent Notation Documentation ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Agenda Introduction UML 2.0 Diagrams MDA Introduction Guidelines Q&A ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
UML 2.0 Diagrams Commonly used… Diagram Behavior Use Case Activity Interaction Sequence Communication Structure Class Component Deployment Commonly used… ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Behavior – Use Case Diagram Describe Functional Requirements ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Behavior – Activity Diagram Describe (Business) Process & Workflow ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Behavior – Sequence Diagram Describe Chronological Message Flow between Objects ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Behavior – Communication Diagram Describe Chronological Message Flow between Objects ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Structure – Class Diagram Describe Logical Structure of the System ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Structure – Component Diagram Describe Physical Structure of the System ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Structure – Deployment Diagram Describe How and Where the System will be deployed ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Agenda Introduction UML 2.0 Diagrams MDA Introduction Guidelines Q&A ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
UML Modeling Logical View Implementation View Use Case View Dynamic View Deployment View ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Model-Driven Architecture (MDA) Computation-Independent Model CIM >> PIM Platform-Independent Model PIM >> PSM Platform-Specific Model PSM >> Code Code Code Code ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Model-Driven Architecture (MDA) Objective and Purpose Decouple the way that application systems are defined from the technology they run on. This is in order to ensure that the investments made in building systems can be preserved even when the underlying technology platforms change. ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Agenda Introduction UML 2.0 Diagrams MDA Introduction Guidelines Q&A ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Guidelines Create Use Case Diagram(s) Create Activity Diagram(s) Natural Order… Create Use Case Diagram(s) Create Activity Diagram(s) Create Class Diagram(s) Create Sequence Diagram(s) Create Component Diagram(s) Create Deployement Diagram(s) ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Guideline - Use Case View Describe System Functionality Gathering requirements Functional & non-functional requirements Document functional requirements UML Use Case Diagram Use Case Description Documents Identify actor(s) and association to use case Create different levels of use cases (re-use!) ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Example - AutoEdge Use different abstraction levels when appropriate Use Case Example - AutoEdge Use different abstraction levels when appropriate ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Example - AutoEdge Manage Dealer Use Case ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Guideline - Use Case View Describe Use Case Scenarios Scenario = Use Case Activity Flow Basic Scenario Alternate Scenario(s) UML Activity Diagram Describe *what* happens, not *how*! ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Example - AutoEdge Manage Dealer Activity ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Guideline - Use Case View Describe Test Scenarios Identify paths in activity diagram Create minimal test-scenarios (using each path once) NOTE: Test should test use case, not fooling around in the system! ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Guideline – Logical View Describe and design the System Structure Identify entities/things used in use case Identify attributes Identify operations Identify entity relations Identify multiplicity Create class diagram ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Example - AutoEdge Logical Data Model – Process Testdrive Requests Class Example - AutoEdge Logical Data Model – Process Testdrive Requests ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Example - AutoEdge Dealership Business Entity Class ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Guideline – Logical View Identify and use Patterns “A pattern is a proven solution for a problem in a context.” ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Example – AutoEdge Client-Side Business Entity Pattern ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Guideline – Dynamic View Describe Behavior Identify objects involved Identify interactions (messages) Only show public operations Describe how things work (together) Identify missing classes and/or operations Ty back into class diagram ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Example - AutoEdge Entity Creation within AutoEdge Architecture Sequence Example - AutoEdge Entity Creation within AutoEdge Architecture ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Guideline – Implementation View Describe Physical Software Artifacts Identify Physical Software Artifacts Source & Compiled files Identify Packages & Libraries ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Example - AutoEdge Dealer Business Entity Component ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Guideline – Deployment View Describe Software on Physical Hardware Identify Location of Software Artifacts Identify how Hardware is related Identify (minimum) hardware requirements ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Guideline – Deployment View Describe Software on Physical Hardware ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
In Summary… Model & Design Use UML Manage complexity Minimize risk Facilitate communication Use UML De facto standard Unambiguous Documentation ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Literature UML Distilled Third Edition Addison-Wesley Object Technology Series UML Distilled Third Edition Martin Fowler – ISBN 0-321-19368-7 Use Case Driven Object Modeling with UML Doug Rosenberg – ISBN 0-201-43289-7 Developing Software with UML Bernd Oestereich – ISBN 0-201-75603-X ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Materials Complete AutoEdge Kit Modeling & Model Driven Architecture Materials available on PSDN Complete AutoEdge Kit www.psdn.com/library/kbcategory.jspa?categoryID=298 Modeling & Model Driven Architecture www.psdn.com/library/kbcategory.jspa?categoryID=247 ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Resources Check with local subsidiary for UML training Training & Information Check with local subsidiary for UML training UML Resource Page www.uml.org MDA Resource Page www.omg.org/mda ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Questions? ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA
Thank you for your time
ARCH-5 - Modeling – From Design to Implementation in OpenEdge using UML and MDA