ebook img

Patterns: Model-Driven Development Using IBM Rational Software Architect: December 2005 PDF

258 Pages·2005·3.58 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Patterns: Model-Driven Development Using IBM Rational Software Architect: December 2005

Front cover Patterns: Model-Driven Development Using IBM Rational Software Architect Learn how to automate pattern-driven development Build a model-driven development framework Follow a service-oriented architecture case study Peter Swithinbank Mandy Chessell Tracy Gardner Catherine Griffin Jessica Man Helen Wylie Larry Yusuf ibm.com/redbooks International Technical Support Organization Patterns: Model-Driven Development Using IBM Rational Software Architect December 2005 SG24-7105-00 Note: Before using this information and the product it supports, read the information in “Notices” on pageix. First Edition (December 2005) This edition applies to Version 6.0.0.1 of Rational Software Architect (product number 5724-I70). © Copyright International Business Machines Corporation 2005. All rights reserved. Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ix Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xi For solution architects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xi For project planners or project managers . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii For those working on a project that uses model-driven development . . . . . . . xii How this book is organized . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xiii The team that wrote this redbook. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xiv Become a published author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xvi Part 1. Approach. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Chapter 1. Overview and concepts of model-driven development. . . . . . . 3 1.1 Current business environment and drivers . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2 A model-driven approach to software development . . . . . . . . . . . . . . . . . . 5 1.2.1 Models as sketches and blueprints. . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2.2 Precise models enable automation. . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2.3 The role of patterns in model-driven development . . . . . . . . . . . . . . . 7 1.2.4 Not just code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.3 Benefits of model-driven development . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.4 Model-driven development with IBM Rational Software Architect. . . . . . . 11 1.4.1 Unified Modeling Language 2.0 editor . . . . . . . . . . . . . . . . . . . . . . . 12 1.4.2 UML profile support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.4.3 RSA patterns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.4.4 RSA transformations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.5 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Chapter 2. Scenario overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.1 Enterprise architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.1.1 Suitability for model-driven development . . . . . . . . . . . . . . . . . . . . . 19 2.1.2 Contra-indications for model-driven development. . . . . . . . . . . . . . . 19 2.2 Integration architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.2.1 ESB structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.3 Pattern definition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.3.1 Interaction behavior patterns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.3.2 Individual service patterns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.3.3 Suitability for model-driven development . . . . . . . . . . . . . . . . . . . . . 25 © Copyright IBM Corp. 2005. All rights reserved. iii 2.3.4 Contra-indications for model-driven development. . . . . . . . . . . . . . . 25 2.4 Automation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.4.1 Technical. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.4.2 Organizational. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.4.3 Managerial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.5 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Chapter 3. Model-driven development approach. . . . . . . . . . . . . . . . . . . . 29 3.1 Abstraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.2 Precise modeling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.3 Automation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.4 Architectural style . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3.5 The role of UML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.6 Expertise capture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.6.1 Logical architecture expertise. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.6.2 Technical architecture expertise. . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.7 Patterns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.8 Quality and consistency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.9 Integration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.10 Platform independence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.11 Layered modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.12 Modeling of non-functional characteristics . . . . . . . . . . . . . . . . . . . . . . . 43 3.13 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Chapter 4. Model-driven development project planning. . . . . . . . . . . . . . 45 4.1 The value and cost of model-driven development. . . . . . . . . . . . . . . . . . . 46 4.2 Understanding the tasks for a model-driven development project . . . . . . 47 4.2.1 Descriptions of tasks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.2.2 The model-driven development tool chain . . . . . . . . . . . . . . . . . . . . 50 4.3 Planning a model-driven development project . . . . . . . . . . . . . . . . . . . . . 51 4.3.1 Using an iterative approach to model-driven development. . . . . . . . 51 4.3.2 Developing model-driven development skills . . . . . . . . . . . . . . . . . . 52 4.3.3 Thinking about reuse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.4 Quality control for model-driven development tooling. . . . . . . . . . . . . . . . 55 4.5 Tracking a model-driven development project . . . . . . . . . . . . . . . . . . . . . 56 4.6 At the end of the project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 4.7 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Chapter 5. Model-driven development solution life cycle. . . . . . . . . . . . . 59 5.1 Introduction to the solution life cycle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 5.2 Model-driven development life cycle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 5.2.1 Create the framework to generate the solution services. . . . . . . . . . 61 5.2.2 Generate, customize, and test the solution services. . . . . . . . . . . . . 62 5.3 Model-driven development and versioning . . . . . . . . . . . . . . . . . . . . . . . . 62 iv Patterns: Model-Driven Development Using IBM Rational Software Architect 5.3.1 Versioning and replacement policies . . . . . . . . . . . . . . . . . . . . . . . . 63 5.4 Model-driven development and artifact management. . . . . . . . . . . . . . . . 64 5.4.1 Reuse model artifacts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 5.4.2 Integrity management services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 5.4.3 Deployment support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 5.5 Model-driven development and problem determination . . . . . . . . . . . . . . 66 5.5.1 Tooling versus instrumentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 5.6 Information mining. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 5.7 Testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 5.7.1 Modeling for testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 5.7.2 Applying test patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 5.7.3 Modeling using the UML testing profile. . . . . . . . . . . . . . . . . . . . . . . 70 5.8 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Chapter 6. Model-driven development in context . . . . . . . . . . . . . . . . . . . 73 6.1 OMG and Model-Driven Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 6.2 MDA models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 6.2.1 IBM and MDA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 6.3 Software Factories and domain-specific languages . . . . . . . . . . . . . . . . . 78 6.3.1 UML and DSLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 6.4 Asset-based development. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 6.5 Pattern-driven development and IBM Patterns for e-business . . . . . . . . . 82 6.5.1 IBM Patterns for e-business . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 6.6 Business-driven development. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 6.7 Model-driven development and On Demand Business. . . . . . . . . . . . . . . 86 6.8 Model-driven development and middleware . . . . . . . . . . . . . . . . . . . . . . . 87 6.9 Visualization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 6.10 Executable UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 6.11 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Part 2. Implementation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Chapter 7. Designing patterns for the scenario. . . . . . . . . . . . . . . . . . . . . 93 7.1 Relationship to the project plan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 7.2 Overview of pattern design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 7.3 Architecture patterns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 7.4 Contracts of behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 7.4.1 Contract of behavior for synchronous updates. . . . . . . . . . . . . . . . 100 7.4.2 General requirements for synchronous update. . . . . . . . . . . . . . . . 101 7.5 Integration patterns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 7.6 Applying a pattern to create a high-level model . . . . . . . . . . . . . . . . . . . 106 7.6.1 The pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 7.6.2 The model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 7.7 Detailing the initial model with service patterns. . . . . . . . . . . . . . . . . . . . 110 Contents v 7.7.1 Service patterns: Activity diagrams. . . . . . . . . . . . . . . . . . . . . . . . . 112 7.7.2 Integration services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 7.8 RSA transformation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 7.8.1 Implementing the integration facade. . . . . . . . . . . . . . . . . . . . . . . . 119 7.8.2 Implementing the integration service . . . . . . . . . . . . . . . . . . . . . . . 122 7.8.3 Implementing the provider facade. . . . . . . . . . . . . . . . . . . . . . . . . . 122 7.9 Use of the framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 7.9.1 Presentation of model information to users. . . . . . . . . . . . . . . . . . . 126 7.9.2 Service creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 7.10 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Chapter 8. Applying model-driven development with Rational Software Architect. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 8.1 An overview of the Model-driven development process in RSA . . . . . . . 130 8.1.1 Framework development. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 8.1.2 Application development. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 8.2 RSA model-driven development framework for SOI. . . . . . . . . . . . . . . . 132 8.3 Application development. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 8.3.1 Installing the framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 8.3.2 Creating a model and apply the profiles . . . . . . . . . . . . . . . . . . . . . 134 8.3.3 Applying patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 8.3.4 Applying transformations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 8.3.5 Testing the generated code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 8.3.6 Application development summary. . . . . . . . . . . . . . . . . . . . . . . . . 150 8.4 Framework development. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 8.4.1 Developing the architectural style. . . . . . . . . . . . . . . . . . . . . . . . . . 150 8.4.2 Creating a UML profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 8.4.3 Implementing sample components. . . . . . . . . . . . . . . . . . . . . . . . . 160 8.4.4 Developing patterns and transformations. . . . . . . . . . . . . . . . . . . . 160 8.5 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 Chapter 9. Extending Rational Software Architect. . . . . . . . . . . . . . . . . . 161 9.1 Introduction to implementing patterns and transformations to RSA . . . . 162 9.2 Setup: Enabling Eclipse Developer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 9.3 Deploying UML profiles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 9.3.1 Defining a path map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 9.3.2 Releasing the profile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 9.3.3 Adding the profile to a plug-in. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 9.3.4 Deploying the plug-in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 9.4 Implementing patterns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 9.4.1 Getting started. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 9.4.2 Defining a pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 9.4.3 Pattern implementation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 vi Patterns: Model-Driven Development Using IBM Rational Software Architect 9.4.4 Testing the pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 9.4.5 Publishing patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 9.5 Implementing a transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 9.5.1 Creating a new plug-in with a transformation . . . . . . . . . . . . . . . . . 195 9.5.2 Transformation API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 9.5.3 Implementing the root transformation. . . . . . . . . . . . . . . . . . . . . . . 206 9.5.4 Implementing the transformation rules . . . . . . . . . . . . . . . . . . . . . . 208 9.5.5 Creating and modifying files in the RSA workspace. . . . . . . . . . . . 211 9.5.6 Testing the transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 9.6 Launching a Run-time Workbench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 9.7 Deploying plug-ins. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 9.8 Using a RAS repository. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 9.9 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 Chapter 10. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 Appendix A. Additional material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 Locating the Web material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 Using the Web material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 System requirements for downloading the Web material . . . . . . . . . . . . . 222 How to use the Web material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 Abbreviations and acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 Related publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 Other publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 Online resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 How to get IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 Help from IBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 Contents vii viii Patterns: Model-Driven Development Using IBM Rational Software Architect

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.