My library button
  • Book cover of Agile Modeling with UML

    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.

  • Book cover of Modeling with UML

    This book presents a variant of UML that is especially suitable for agile development of high-quality software. It adjusts the language UML profile, called UML/P, for optimal assistance for the design, implementation, and agile evolution to facilitate its use especially in agile, yet model based development methods for data intensive or control driven systems. After a general introduction to UML and the choices made in the development of UML/P in Chapter 1, Chapter 2 includes a definition of the language elements of class diagrams and their forms of use as views and representations. Next, Chapter 3 introduces the design and semantic facets of the Object Constraint Language (OCL), which is conceptually improved and syntactically adjusted to Java for better comfort. Subsequently, Chapter 4 introduces object diagrams as an independent, exemplary notation in UML/P, and Chapter 5 offers a detailed introduction to UML/P Statecharts. Lastly, Chapter 6 presents a simplified form of sequence diagrams for exemplary descriptions of object interactions. For completeness, appendixes A–C describe the full syntax of UML/P, and appendix D explains a sample application from the E-commerce domain, which is used in all chapters. This book is ideal for introductory courses for students and practitioners alike.

  • Book cover of The UML Profile for Framework Architectures

    This book presents a set of principles for designing frameworks and practical techniques for adapting them efficiently. It also describes how UML may be used to model frameworks and their applications and proposes a set of extensions to the UML which apply specifically to framework design.

  • Book cover of Engineering Modeling Languages

    Written by foremost experts in the field, Engineering Modeling Languages provides end-to-end coverage of the engineering of modeling languages to turn domain knowledge into tools. The book provides a definition of different kinds of modeling languages, their instrumentation with tools such as editors, interpreters and generators, the integration of multiple modeling languages to achieve a system view, and the validation of both models and tools. Industrial case studies, across a range of application domains, are included to attest to the benefits offered by the different techniques. The book also includes a variety of simple worked examples that introduce the techniques to the novice user. The book is structured in two main parts. The first part is organized around a flow that introduces readers to Model Driven Engineering (MDE) concepts and technologies in a pragmatic manner. It starts with definitions of modeling and MDE, and then moves into a deeper discussion of how to express the knowledge of particular domains using modeling languages to ease the development of systems in the domains. The second part of the book presents examples of applications of the model-driven approach to different types of software systems. In addition to illustrating the unification power of models in different software domains, this part demonstrates applicability from different starting points (language, business knowledge, standard, etc.) and focuses on different software engineering activities such as Requirement Engineering, Analysis, Design, Implementation, and V&V. Each chapter concludes with a small set of exercises to help the reader reflect on what was learned or to dig further into the examples. Many examples of models and code snippets are presented throughout the book, and a supplemental website features all of the models and programs (and their associated tooling) discussed in the book.

  • Book cover of Requirements Targeting Software and Systems Engineering

    Software engineering research has di?erent pro?les in Europe and North Am- ica.WhileinNorthAmericathere isalotofknowhowinthepractical,technical, and organizational aspects of software engineering, in Europe the work conc- trates more on foundations and formal modeling of software engineering issues. Bothapproacheshavetheirindividualstrengthsandweaknesses. Researchdriven solelyby practice insoftware engineering runs in the danger ofdevelopinginto a shallow ?eld failing to ?nd a solid scienti?c basis or to contribute substantially to the progress in software engineering. Work concentrating on formal aspects alone is in the danger of becoming too theoretical and isolated from practice so that any transfer into practical application will fail. Substantial progress in software engineering can be achieved, however, by bringing together pragmatic and foundational work in software engineering - search. This can provide a step towards a common scienti?c basis for software engineering that allows us to integrate the various research results, leading to fruitful synergetic e?ects. It will also help to identify critical research paths and to develop an adequate paradigm for the scienti?c discipline of software en- neering. In software and systems engineering it is necessary to distinguish the en- mous di?erence between the dynamics in development we refer to and the l- ited scope assumed by manyof today’ssoftware managerswho stilluse outdated techniques. Many of the unsolved problems associated with the old techniques are symptoms of a lack of formalization and a lack of automation support. It was the goal of this workshop to bring together experts from science and practice in software and systems engineering from North America and Europe.

  • No image available

  • Book cover of Globalizing Domain-Specific Languages

    The development of modern complex software-intensive systems often involves the use of multiple DSMLs that capture different system aspects. Supporting coordinated use of DSMLs leads to what we call the globalization of modeling languages, that is, the use of multiple modeling languages to support coordinated development of diverse aspects of a system. In this book, a number of articles describe the vision and the way globalized DSMLs currently assist integrated DSML support teams working on systems that span many domains and concerns to determine how their work on a particular aspect influences work on other aspects. Globalized DSMLs offer support for communicating relevant information, and for coordinating development activities and associated technologies within and across teams, in addition to providing support for imposing control over development artifacts produced by multiple teams. DSMLs can be used to support socio-technical coordination by providing the means for stakeholders to bridge the gap between how they perceive a problem and its solution, and the programming technologies used to implement a solution. They also support coordination of work across multiple teams. DSMLs developed in an independent manner to meet the specific needs of domain experts have an associated framework that regulates interactions needed to support collaboration and work coordination across different system domains. The articles in the book describe how multiple heterogeneous modeling languages (or DSMLs) can be related to determine how different aspects of a system influence each other. The book includes a research roadmap that broadens the current DSML research focus beyond the development of independent DSMLs to one that provides support for globalized DSMLs.

  • Book cover of Modellierung mit UML

    Im wachsenden Portfolio von Entwicklungstechniken zeichnen sich zwei wichtige Trends ab. Zum einen dominiert die UML als Modellierungssprache. Zum anderen werden agile Methoden in mittlerweile sehr vielen Softwareentwicklungen eingesetzt. Dieses Buch stellt Konzepte einer Entwicklungsmethodik vor, die UML mit Elementen agiler Methoden kombiniert. Dabei werden ausgehend von den Klassen-, Objekt-, Sequenzdiagrammen, Statecharts und der OCL die Umsetzung nach Java und dem Testframework JUnit diskutiert, sowie Techniken zur Entwicklung von Testfällen und der evolutionären Weiterentwicklung von Entwürfen mit Refactoring-Regeln vorgestellt. Der im Buch beschriebene Ansatz eignet sich besonders für den Einsatz in Anwendungsdomänen, in denen hohe Qualität, Flexibilität und Erweiterbarkeit der Systeme erwartet wird, und sich Anforderungen dynamisch und noch während der Erstellung des Produkts weiterentwickeln. Diese Methodik ist geeignet für Praktiker, die Modellierungstechniken professionell nutzen wollen. Unter http://www.se-rwth.de/mbse ist weiterführendes Material zu finden. Die zweite Auflage ist durchgehend überarbeitet und basiert auf UML 2.3 und der Java-Version 6.

  • Book cover of Agile Modellierung mit UML

    Im wachsenden Portfolio von Entwicklungstechniken zeichnen sich zwei wichtige Trends ab. Zum einen dominiert die UML als Modellierungssprache. Zum anderen werden agile Methoden in mittlerweile sehr vielen Softwareentwicklungen eingesetzt. Dieses Buch stellt Konzepte einer Entwicklungsmethodik vor, die UML mit Elementen agiler Methoden kombiniert. Dabei werden ausgehend von den Klassen-, Objekt-, Sequenzdiagrammen, Statecharts und der OCL die Umsetzung nach Java und dem Testframework JUnit diskutiert, sowie Techniken zur Entwicklung von Testfällen und der evolutionären Weiterentwicklung von Entwürfen mit Refactoring-Regeln vorgestellt. Der im Buch beschriebene Ansatz eignet sich besonders für den Einsatz in Anwendungsdomänen, in denen hohe Qualität, Flexibilität und Erweiterbarkeit der Systeme erwartet wird, und sich Anforderungen dynamisch und noch während der Erstellung des Produkts weiterentwickeln. Diese Methodik ist geeignet für Praktiker, die Modellierungstechniken professionell nutzen wollen. Unter http://www.se-rwth.de/mbse ist weiterführendes Material zu finden. Die zweite Auflage ist durchgehend überarbeitet und basiert auf UML 2.3 und der Java-Version 6.

  • No image available