Agile Model-Based Development Using UML-RSDS
Agile Model-Based Development Using UML-RSDS
Kevin Lano
Department of Informatics Kings College London, London United Kingdom
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 storage or retrieval system, without written permission from the publishers.
For permission to photocopy or use material electronically from this work, please access www.copyright.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 provides licenses and registration for a variety of users. For organizations that have been granted a photocopy 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
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, Kings College London and the EPSRC is also acknowledged.
I dedicate this book to my wife, Olga.
Contents
In this chapter we introduce model-based development and UML-RSDS, and discuss the context of software development which motivates the use of such methods and tools.
Model-based development (MBD) is an approach which aims to improve the practice of software development by (i) enabling systems to be defined in terms closer to their requirements, abstracted from and independent of particular implementation platforms, and (ii) by automating development steps, including the writing of executable code.
A large number of MBD approaches, tools and case studies now exist, but industrial uptake of MBD has been restricted by the complexity and imprecision of modelling languages such as UML, and by the apparent resource overheads without benefit of many existing MBD methods and tools [].
UML-RSDS has been designed as a lightweight and agile MBD approach which can be applied across a wide range of application areas. We have taken account of criticisms of existing MBD approaches and tools, and given emphasis on the aspects needed to support practical use such as:
Lightweight method and tools: usable as an aid for rapidly developing parts of a software system, to the degree which developers find useful. It does not require a radical change in practice or the adoption of a new complete development process, or the use of MBD for all aspects of a system.
Independent of other MBD methods or environments, such as Eclipse/EMF.
Non-specialist: UML-RSDS uses only a core subset of UML class diagram and use case notations, which are the most widely-known parts of UML.
Agile: incremental changes to systems can be made rapidly via their specifications, and the changes propagated to code.
Precise: specifications in UML-RSDS have a precise semantics, which enables reliable code production in multiple languages.
The benefits of our MBD approach are:
Reduction in coding cost and time.
The ability to model an application domain, to define a DSL (domain specific language) for a domain, and to define custom code generators for the domain.
Reducing the gap between specification and code, so that the consequences of requirements and specification choices can be identified at an early development stage.
The ability to optimize systems at the platform-independent modelling level, to avoiding divergence between code and models caused by manual optimization of generated code.
The ability to formally analyse DSLs and systems at the specification stage.
These capabilities potentially reduce direct software development costs, and costs caused by errors during development and errors persisting in delivered products. Both time-to-market and product quality are potentially improved.
shows the software production process which is followed using UML-RSDS: specifications are defined using UML class diagrams and use cases, these can be analysed for their internal quality and correctness, and then platform-independent designs are synthesised (these use a pseudocode notation for a subset of UML Activity diagram notation). From these designs executable code in a particular object-oriented programming language (currently, Java, C# or C++) can then be automatically synthesised.
Figure 1.1: UML-RSDS software production process
Unlike many other MBD approaches, which involve the management of multiple models of a system, UML-RSDS specifies systems using a single integrated Use Case and Class Diagram model. This simplifies the specification and design processes and aligns the approach to Agile development practices which are also based on maintaining a single system model (usually the executable code).
Some typical uses of UML-RSDS could be:
Modelling the business logic of an application and automatically generating the code for this, in Java, C# or C++.
Modelling and code generation of a component within a larger system, the remainder of which could be developed using traditional methods.
Next page