ebook img

Agile Model-Based Development Using UML-RSDS PDF

386 Pages·2016·16.219 MB·English
by  LanoKevin
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 Agile Model-Based Development Using UML-RSDS

Agile Model-Based Development Using UML-RSDS Agile Model-Based Development Using UML-RSDS Kevin Lano Department of Informatics King’s College London, London United Kingdom p, A SCIENCE PUBLISHERS BOOK CRC Press Taylor & Francis Group 6000 Broken Sound Parkway NW, Suite 300 Boca Raton, FL 33487-2742 © 2017 by Taylor & Francis Group, LLC CRC Press is an imprint of Taylor & Francis Group, an Informa business No claim to original U.S. Government works Printed on acid-free paper Version Date: 20160701 International Standard Book Number-13: 978-1-4987-5222-0 (Hardback) This book contains information obtained from authentic and highly regarded sources. Reasonable efforts have been made to publish reliable data and information, but the author and publisher cannot assume responsibility for the validity of all materials or the consequences of their use. The authors and publishers have attempted to trace the copyright holders of all material reproduced in this publication and apologize to copyright holders if permission to publish in this form has not been obtained. If any copyright material has not been acknowledged please write and let us know so we may rectify in any future reprint. Except as permitted under U.S. Copyright Law, no part of this book may be reprinted, reproduced, transmitted, or utilized in any form by any electronic, mechanical, or other means, now known or hereafter invented, including photocopying, microfilming, and recording, or in any information stor- age or retrieval system, without written permission from the publishers. For permission to photocopy or use material electronically from this work, please access www.copy- right.com (http://www.copyright.com/) or contact the Copyright Clearance Center, Inc. (CCC), 222 Rosewood Drive, Danvers, MA 01923, 978-750-8400. CCC is a not-for-profit organization that pro- vides licenses and registration for a variety of users. For organizations that have been granted a photo- copy license by the CCC, a separate system of payment has been arranged. Trademark Notice: Product or corporate names may be trademarks or registered trademarks, and are used only for identification and explanation without intent to infringe. Visit the Taylor & Francis Web site at http://www.taylorandfrancis.com and the CRC Press Web site at http://www.crcpress.com Preface Model-based development is moving into the mainstream of software engineering, and it is an approach that all software developers should know about as one option to use in solving software problems. In this book we give a practical introduction to model- based development, model transformations and agile development, using a UML and Java-based toolset, UML-RSDS. Guidance on applying model-based development in a range of domains is provided, and many examples are given to illustrate the UML-RSDS process and techniques. The book is suitable both for professional software engineers and for postgraduate and undergraduate teaching. I would like to acknowledge the contributions of my research team members and colleagues who have helped in the development of the UML-RSDS tools and method: Kelly Androutsopoulos, Pauline Kan, Shekoufeh Kolahdouz-Rahimi, Sobhan Yassipour-Tehrani, Hessa Alfraihi, David Clark, Howard Haughton, Tom Maibaum, Iman Poernomo, Jeffery Terrell and Steffen Zschaler. The support of Imperial College London, King’s College London and the EPSRC is also acknowledged. I dedicate this book to my wife, Olga. Contents Preface v 1. Introduction 1 1.1 Model-based development using UML-RSDS 1 1.2 The ‘software crisis’ 4 1.3 Model-based development concepts 6 2. Overview of Development Using UML-RSDS 11 2.1 Component development: statistical correlation calculator 11 2.2 Application development: Sudoku solver 16 2.3 Transformation development: class diagram refactoring 21 2.4 Integrating UML-RSDS applications with external applications 25 2.5 What is different about UML-RSDS? 26 3. Class Diagrams 31 3.1 Class diagram concepts 31 3.2 Class diagram notations 32 3.2.1 The class diagram editor 35 3.2.2 Drawing a class diagram 36 3.2.3 Operations 37 3.2.4 Rules and restrictions 40 3.2.5 Code synthesis from class diagrams 41 3.2.6 Bi-directional associations 44 3.2.7 Qualified associations 46 3.2.8 Association classes 47 3.2.9 Aggregation 48 3.3 Models and metamodels 49 3.4 Domain-specific languages 52 3.5 Generalised application models 55 4. Constraints 57 4.1 Constraints in UML-RSDS 57 4.1.1 Basic expressions 61 4.1.2 Logical expressions 63 4.1.3 Comparitor, numeric and string expressions 64 4.1.4 Pre-state expressions 67 viii Agile Model-Based Development Using UML-RSDS 4.1.5 Collection expressions 68 4.1.6 Navigation expressions 71 4.1.7 Object deletion 72 4.1.8 Additional cases of quantification operators 72 4.2 Type checking 73 4.3 Differences to OCL 74 5. Use Cases 79 5.1 Specification of use cases 79 5.2 General use cases 80 5.2.1 Use case post-conditions 82 5.3 Composition and features of use cases 86 5.3.1 Extend-composition 87 5.3.2 Include-composition 88 5.3.3 Use case inversion 88 5.3.4 Use case parameters 89 5.3.5 Generic use cases 90 5.3.6 Use case attributes 90 5.3.7 Use case operations 90 6. Design Synthesis 93 6.1 Synthesis of class diagram designs 93 6.2 Synthesis of constraint code 94 6.3 Synthesis of use case designs 96 6.3.1 Type 1 constraints 97 6.3.2 Type 2 constraints 98 6.3.3 Type 3 constraints 99 6.3.4 Type 0 constraints 101 6.3.5 Quantified and let variables 101 6.3.6 Specification and design guidelines 102 7. Model Transformations 105 7.1 Model transformation concepts 105 7.2 Model transformation languages 107 7.3 Model transformation specification in UML-RSDS 109 7.3.1 Transformation constraints 111 7.3.2 Transformation specification techniques 113 7.3.3 Pre-state expressions in constraints 116 7.4 Specifying bidirectional transformations 117 7.5 Transformation examples 119 7.5.1 Refinement example: UML to relational database 119 7.5.2 Migration example: trees to graphs 121 8. Case Study: Resource Scheduler 125 8.1 Case study description 125 8.2 Solution 126 Contents ix 8.3 Scheduling examples 132 8.4 Optimisation 134 9. Design Patterns and Refactorings 137 9.1 Design patterns 137 9.2 Design pattern implementation in UML-RSDS 142 9.3 Refactorings 145 10. System Composition and Reuse 149 10.1 Component-based and service-oriented composition 149 10.2 Language extensions and importing libraries 150 10.2.1 External classes and operations 151 10.2.2 Adding an import 153 10.2.3 Adding a new operator 153 10.3 Example of library creation and use: mathematical functions 154 10.4 Publishing UML-RSDS applications as web services 157 10.4.1 REST web service 159 10.4.2 SOAP web service 161 11. Migration Transformations 165 11.1 Characteristics of migration transformations 165 11.2 Case study: GMF model migration 166 11.3 Case study: migration of ATL specifications to UML-RSDS 169 12. Refinement and Enhancement Transformations 177 12.1 Enhancement transformation: computing inheritance depth 178 12.2 Refinement transformation: UML-RSDS to C code generation 180 13. Refactoring and Update-in-place Transformations 189 13.1 Case study: repotting geraniums 190 13.2 Case study: state machine refactoring 191 13.3 Case study: simulation of BPMN execution semantics 196 14. Bidirectional and Incremental Transformations 205 14.1 Criteria for bidirectionality 206 14.2 Patterns for bidirectional transformations 207 14.3 Bidirectional transformation specification in UML-RSDS 207 14.4 Patterns for bx 211 14.4.1 Auxiliary correspondence model 211 14.4.2 Cleanup before construct 213 14.4.3 Unique instantiation 215 14.4.4 Phased construction for bx 216 14.4.5 Entity merging/splitting for bx 218 14.4.6 Map objects before links for bx 220 14.5 View updates 222 14.6 Verification techniques for bidirectional transformations 224

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.