Agile Modeling with UML
Bernhard Rumpe
Agile Modeling with UML Code Generation, Testing, Refactoring
1 3
Bernhard Rumpe
Software Engineering
RWTH Aachen University
Aachen
Germany
ISBN 978-3-319-58861-2 ISBN 978-3-319-58862-9 (eBook) DOI 10.1007/978-3-319-58862-9
Library of Congress Control Number: 2017939615
Based on a translation from the German language edition: Agile Modellierung mit UML Codegenerierung, Testflle, Refactoring Springer Verlag Berlin Heidelberg 2005, 2012. All Rights Reserved. Springer International Publishing AG 2017
This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifcally the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microflms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed.
The use of general descriptive names, registered names, trademarks, service marks, etc. in this publication does not imply, even in the absence of a specifc statement, that such names are exempt from the relevant protective laws and regulations and therefore free for general use. The publisher, the authors and the editors are safe to assume that the advice and information in this book are believed to be true and accurate at the date of publication. Neither the publisher nor the authors or the editors give a warranty, express or implied, with respect to the material contained herein or for any errors or omissions that may have been made. The publisher remains neutral with regard to jurisdictional claims in published maps and institutional affliations.
Printed on acid-free paper
This Springer imprint is published by Springer Nature
The registered company is Springer International Publishing AG
The registered company address is: Gewerbestrasse 11, 6330 Cham, Switzerland Preface
Foreword to the First Edition
Today, software systems are generally complex products and the use of engi-neering techniques is essential if the systems are to be produced successfully. Over the last three decades, this nding, which is frequently quoted but is now more than 30 years old, has led to intensive work on languages, meth-ods, and tools in the IT eld of Software Engineering to support the software creation process. However, despite great advances, we must concede that in comparison with other much older engineering disciplines, many questions still remain unanswered and new questions are constantly arising.
For example, a supercial comparison with the eld of construction quickly shows that in there, international standards have been set for creat-ing models of buildings, analyzing the models, and then realizing the mod-els in actual constructions. The distribution of roles and tasks is generally accepted and there are professional groups such as architects, structural en-gineers, as well as engineers for construction above and below ground.
This type of model-based approach is increasingly nding favor in soft-ware development. In recent years in particular, this has led to international attempts to dene a generally accepted modeling language so that just like in construction, a model created by a software architect can be analyzed by a software structural engineer before it is implemented in executable pro-grams by specialists responsible for the realization, i.e., programmers.
This standardized modeling language is the Unied Modeling Language and it is subject to continuous further development by an international con-sortium in a gradual process. Due to the wide range of interested parties in the standardization process, the current version 2.0 of UML has emerged as a language family with a great many open questions with regard to scope, semantic foundation, and methodological use.
Over the past few years, Professor Rumpe has dedicated himself to this problem in his scientic and practical work, the results of which are now VI Preface
available to a wide audience in two books. In these books, Professor Rumpe focuses on the methodological process. In line with the current nding that lightweight, agile development processes offer great advantages particularly in smaller and medium-sized development projects, Professor Rumpe has developed techniques for an agile development process. On this basis, he has then dened a suitable modeling language by dening a language prole for UML. In this language prole, UML/P, Professor Rumpe has made UML leaner and rounded it off in some places to produce a manageable version of UML in particular for an agile development process.
Professor Rumpe has explained this language UML/P in detail in his previous book Modeling with UML, which offers a signicant basis for the current book (the content of the previous book is briey summarized). The current book, Agile Modeling with UML, is dedicated primarily to the methodological treatment of UML/P.
Professor Rumpe addresses three core topics of model-based software de-velopment. These are:
Code generation, i.e., the automated transition from a model to an exe- cutable program
Systematic testing of programs using a model-based, structured deni- tion of test cases
Further development of models using techniques for transformation and refactoring
Professor Rumpe initially examines all three core topics systematically and introduces the underlying concepts and techniques. For each topic, he then presents his approach based on the language UML/P. This division and clear separation between basic principles and applications make the presen-tation extremely easy to understand and also allows the reader to transfer this knowledge directly to other model-based approaches and languages.
Overall, this book is of great benet to those who practice software de-velopment, for academic training in the eld of Software Engineering, and for research in the area of model-based software development. Practitioners learn how to use modern model-based techniques to improve the production of code and thus signicantly increase quality. Students are given both im-portant scientic basics as well as direct applications of the basic techniques presented. And last but not least, the book gives scientists a comprehensive overview of the current status of development in the three core topics it cov-ers.
The book therefore represents an important milestone in the development of concepts and techniques for a model-based and engineering-style software development and thus offers the basis for further work in the future. Prac-tical experience of using the concepts will validate their stability. Scientic, conceptual work will provide further research on the topic of model trans-formation based on graph transformation in particular. It will also deepen the area of model analysis in the direction of structural model analysis.
Preface VII
This deeper understanding of the IT methods in model-based software development is a crucial prerequisite for a successful combination with other engineering-style methods, such as in the eld of embedded systems or the area of intelligent, user-friendly products. The fact that the language UML/P is not specic to any domain also offers a lot of opportunities here. Gregor Engels
Paderborn, September 2004
Preface to the Second Edition
As this is the second book on agile software development with UML, in-terested readers will probably be familiar with the rst book [Rum16]. The preface in [Rum16] holds true for both books and here, therefore, I refer to the rst book, in which the following aspects are discussed: Agile methods and model-based methods are both successful software development techniques.