Skip to main content

Über dieses Buch

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.



Chapter 1. Introduction

Many projects today demonstrate quite spectacularly how expensive incorrect or faulty software can be.

Bernhard Rumpe

Chapter 2. Agile and UML-Based Methodology

As useful modeling language must be embedded in a methodology. This chapter presents characteristics of agile methods, in particular those of the process of Extreme Programming (XP) [Bec04, Rum01]. Using these characteristics and further elements, the chapter introduces a proposal for an agile methodology based on UML.

Bernhard Rumpe

Chapter 3. Compact Overview of UML/P

This chapter contains a compact summary of the language profile UML/P which is introduced in Volume 1 [Rum16]. It describes some but not all of the special features and deviations of the UML/P profile compared to the UML 2 standard. For a more detailed description, see Volume 1.

Bernhard Rumpe

Chapter 4. Principles of Code Generation

Code generation is a significant success factor for the use of models in the software development process. We can generate code efficiently for the product system or test drivers from many models, thus improving the consistency between the model and its implementation as well as saving resources. This chapter describes basic concepts, techniques, and problems of code generation. It also outlines a form of representation for rules for code generation using transformation rules.

Bernhard Rumpe

Chapter 5. Transformations for Code Generation

This chapter adds specific techniques and transformations to the basic idea of code generation as introduced in Chapter 4. Sections 5.1 to 5.5 explain the approach for transforming class diagrams and object diagrams, generating code from OCL, executing Statecharts, and generating tests from sequence diagrams in Java. For class diagrams this chapter discusses known concepts and some alternatives in a compact transformational form. Section 5.1 demonstrates how we can systematically represent transformation rules for code generation from class diagrams.

Bernhard Rumpe

Chapter 6. Principles of Testing with Models

Testing is an important part of managing the quality of all parts of the product system. Testing the implementation for robustness, conformity with the specification, and correct implementation of the requirements must therefore be an essential part of any quality-oriented and model-driven software development method. This chapter explains the basic principles of testing that are necessary to achieve this.

Bernhard Rumpe

Chapter 7. Model-Based Tests

Building on Chapter 6, this chapter focuses on practical issues associated with implementing tests with UML. It demonstrates how we can define test cases efficiently using UML/P and which types of diagrams are suitable for doing so.

Bernhard Rumpe

Chapter 8. Design Patterns for Testing

To supplement the description of the theory of and the general approach for developing tests, this chapter demonstrates how to use UML/P based test patterns. We here use these patterns to illustrate how to define test dummies and how to design functional tests for concurrent and distributed systems, for example.

Bernhard Rumpe

Chapter 9. Refactoring as a Model Transformation

Refactoring means applying systematic and controllable transformation rules to improve the system design while retaining the externally observable behavior. This chapter first discusses the method of applying refactoring rules and the concepts of model transformations. On this basis, the chapter then develops a notion of observation which is based on UML/P test cases and practically usable.

Bernhard Rumpe

Chapter 10. Refactoring of Models

Based on the core principles for model transformations and the specialization of these transformations as refactoring rules, this chapter discusses possible forms of refactoring rules for UML/P, the transfer of rules from other languages to UML/P, and a superimposition approach for transforming larger data structures.

Bernhard Rumpe

Chapter 11. Summary, Further Reading and Outlook

Finally, we give a summary and an in detail outlook on further readings and publications in the context of the UML/P.

Bernhard Rumpe


Weitere Informationen

Premium Partner

Neuer Inhalt

BranchenIndex Online

Die B2B-Firmensuche für Industrie und Wirtschaft: Kostenfrei in Firmenprofilen nach Lieferanten, Herstellern, Dienstleistern und Händlern recherchieren.



Product Lifecycle Management im Konzernumfeld – Herausforderungen, Lösungsansätze und Handlungsempfehlungen

Für produzierende Unternehmen hat sich Product Lifecycle Management in den letzten Jahrzehnten in wachsendem Maße zu einem strategisch wichtigen Ansatz entwickelt. Forciert durch steigende Effektivitäts- und Effizienzanforderungen stellen viele Unternehmen ihre Product Lifecycle Management-Prozesse und -Informationssysteme auf den Prüfstand. Der vorliegende Beitrag beschreibt entlang eines etablierten Analyseframeworks Herausforderungen und Lösungsansätze im Product Lifecycle Management im Konzernumfeld.
Jetzt gratis downloaden!