© 2017

Agile Modeling with UML

Code Generation, Testing, Refactoring

  • Addresses three core topics in model-based software development: code generation, testing, and refactoring of software

  • Clearly distinguishes between concepts and techniques on one hand, and their implementation in UML/P on the other

  • Mainly intended for practitioners and students, helping them learn the scientific basics of model-based software development for industrial code production


Table of contents

  1. Front Matter
    Pages I-XIII
  2. Bernhard Rumpe
    Pages 1-8
  3. Bernhard Rumpe
    Pages 9-31
  4. Bernhard Rumpe
    Pages 33-69
  5. Bernhard Rumpe
    Pages 71-97
  6. Bernhard Rumpe
    Pages 99-160
  7. Bernhard Rumpe
    Pages 161-183
  8. Bernhard Rumpe
    Pages 185-216
  9. Bernhard Rumpe
    Pages 217-253
  10. Bernhard Rumpe
    Pages 255-283
  11. Bernhard Rumpe
    Pages 285-321
  12. Bernhard Rumpe
    Pages 323-362
  13. Back Matter
    Pages 363-388

About this book


This book focuses on the methodological treatment of UML/P and addresses three core topics of model-based software development: code generation, the systematic testing of programs using a model-based definition of test cases, and the evolutionary refactoring and transformation of models. For each of these topics, it first details the foundational concepts and techniques, and then presents their application with UML/P. This separation between basic principles and applications makes the content more accessible and allows the reader to transfer this knowledge directly to other model-based approaches and languages.

After an introduction to the book and its primary goals in Chapter 1, Chapter 2 outlines an agile UML-based approach using UML/P as the primary development language for creating executable models, generating code from the models, designing test cases, and planning iterative evolution through refactoring. In the interest of completeness, Chapter 3 provides a brief summary of UML/P, which is used throughout the book. Next, Chapters 4 and 5 discuss core techniques for code generation, addressing the architecture of a code generator and methods for controlling it, as well as the suitability of UML/P notations for test or product code.  Chapters 6 and 7 then discuss general concepts for testing software as well as the special features which arise due to the use of UML/P. Chapter 8 details test patterns to show how to use UML/P diagrams to define test cases and emphasizes in particular the use of functional tests for distributed and concurrent software systems. In closing, Chapters 9 and 10 examine techniques for transforming models and code and thus provide a solid foundation for refactoring as a type of transformation that preserves semantics.

Overall, this book will be of great benefit for practical software development, for academic training in the field of Software Engineering, and for research in the area of model-based software development. Practitioners will learn how to use modern model-based techniques to improve the production of code and thus significantly increase quality. Students will find both important scientific basics as well as direct applications of the techniques presented. And last but not least, the book will offer scientists a comprehensive overview of the current state of development in the three core topics it covers.


System Description Languages Software Modeling Software System Structures System Modeling Languages Software Engineering Agile software development

Authors and affiliations

  1. 1.Software EngineeringRWTH Aachen UniversityAachenGermany

About the authors

​Bernhard Rumpe teaches at the RWTH Aachen University the use of agile, model-based development on the basis of UML. His research interests include models, modeling languages, DSLs, as well as their construction, analytical and generative use in development of products. With a number of publications, he has contributed to the standardization of UML and to a better use within development processes. He is author and editor of 21 books and Editor-in-Chief of the international Springer Journal on Software and Systems Modeling (SoSyM).

Bibliographic information

Industry Sectors
Chemical Manufacturing
IT & Software
Consumer Packaged Goods
Finance, Business & Banking
Energy, Utilities & Environment


“This book, the second volume of the series, presents agile modeling with UML with a focus on code generation, testing, and refactoring. … Overall, the book is well structured and easy to follow. … This book provides excellent teaching material, and can be recommended for students and lecturers; in addition, experienced developers working on agile projects can use it as a guideline and to read about best practices.” (Computing Reviews, August, 2017)