{ Books //
 
 

Current Books

 
 

Generic Tools, Specific Languages (my PhD thesis; 2014)

Generic Tools, Specific Languages (GTSL) is an approach for developing tools and applications in a way that supports easier and more meaningful adaptation to specific domains. To achieve this goal, GTSL generalizes programming language IDEs to domains traditionally not addressed by languages and IDEs. At its core, GTSL represents applications as documents/programs/models expressed with suitable languages. Application functionality is provided through an IDE that is aware of the languages and their semantics. The IDE provides editing support, and also directly integrates domain-specific analyses and execution services. Applications and their languages can be adapted to increasingly specific domains using language engineering; this includes developing incremental extensions to existing languages or creating additional, tightly integrated languages. Language workbenches act as the foundation on which such applications are built.

Download the book PDF here.

Buy the paperback at Amazon.com | Amazon.de

 
 

DSL Engineering (2013)

This book covers DSL Design, Implementation and Use of DSL in detail. It consists of four parts. Part 1 introduces DSLs in general and discusses their advantages and drawbacks. It also defines important terms and concepts and introduces the case studies used in the most of the re-mainder of the book. Part 2 discusses the design of DSLs – independent of implementation techniques. It discusses seven design dimensions, explains a number of reusable language paradigms and points out a number of process-related issues. Part 3 provides details about the implementation of DSLs with lots of code. It uses three state-of-the-art but quite different language workbenches: Jet-Brains MPS, Eclipse Xtext and TU Delft’s Spoofax. Part 4 discusses the use of DSLs for requirements, architecture, implementation and product line engineering, as well as their roles as a developer utility and for implementing business logic.

Buy the paperback at Amazon.com | Amazon.de

Get the PDF version (and then please make a donation :-))

Slides: DSL Design | DSL Implementation

 
 

Outdated Books

 
 

Modellgetriebene Softwareentwicklung, 2. Auflage (2007)

Die modellgetriebene Softwareentwicklung oder Model Driven Software Development (MDSD) befasst sich mit der Automatisierung in der Software-Herstellung. Dies bedeutet, dass Infrastrukturcode, Subsysteme oder ganze Anwendungen generativ aus formalen Modellen abgeleitet werden.

Dieses Buch beleuchtet das Thema aus den Perspektiven Technik, Engineering und Management und ist in vier Teile und einen Anhang gegliedert: Teil I enthält eine Einführung in die Grundlagen von MDSD, klärt Begriffe sowie die Relation zur Model Driven Architecture (MDA) der OMG. Auch wird erörtert, wie MDSD und agile Ansätze harmonieren. Der folgende Teil erläutert Techniken der Metamodellierung und zeigt konstruktive MDSD-Merkmale von Ziel-, Plattform- und Transformations-Architekturen auf. Außerdem werden Konstruktions- und Auswahlkriterien für MDSD-Werkzeuge sowie Codegenerierungs-Techniken vermittelt. Teil III beleuchtet Engineering-Aspekte und Prozess-Bausteine. Dazu zählen insbesondere auch die Themen Test, Versionierung und Product Line Engineering. Zusätzlich wird gezeigt, wie sich objektorientierte Geschäftsprozessmodellierung und MDSD nahtlos verbinden lassen. Der vierte Teil befasst sich mit Management-Aspekten, darunter ökonomische und organisatorische Themen sowie Adaptionsstrategien für MDSD. Außerdem werden häufig gestellte, zum Teil kritische Fragen beantwortet.

Im Anhang wird der MDA-Standard der OMG behandelt. Abgerundet wird das Buch durch zwei ausführliche, begleitende Fallstudien sowie viele kleinere Beispiele.

Das Buch richtet sich an Software-Architekten, Entwickler, Projektleiter und IT-Verantworliche. Vorausgesetzt werden Kenntnisse in der Objektorientierung und UML sowie -- für die technischen Teile -- Java oder ähnlicher Programmiersprachen.

Das Buch bei Amazon.de kaufen.

 
 

Model-Driven Software Development (2006)

MDSD is currently a highly regarded development paradigm among developers and researchers. With the advent of OMG’s MDA and Microsoft’s Software Factories, the MDSD approach has moved to the centre of the programmer’s attention, becoming the focus of conferences such as OOPSLA, JAOO and OOP. MDSD is about using domain-specific languages to create models that express application structure or behaviour in an efficient and domain-specific way. These models are subsequently transformed into executable code by a sequence of model transformations.

This book is a practical guide for software architects and developers. It draws heavily on the extensive experience by the authors. Part one introduces the general idea of MDSD and relates it to industry standards such as MDA or Software Factories. Part two provides technical details on meta modelling, DSL construction, model-to-model and model-to-code transformations, and software architecture. Part three looks at the software development process as well as at engineering issues such as versioning, testing and product line engineering. Finally, part four takes on a management perspective and looks at economical and organizational topics. Many examples, as well as three extensive case studies illustrate the concepts throughout the book.

Buy the Book on Amazon.com | A Draft PDF is here.

 
 

Pattern Languages of Program Design 5 (Editor; 2006)

Design patterns have moved into the mainstream of professional software development as a highly effective means of improving the quality of software engineering, system design, and development, as well as the communication among the people building them. Patterns capture many of the best practices of software design, making them available to all software engineers. The fifth volume in a series of books documenting patterns for professional software developers, Pattern Languages of Program Design 5 covers current software development best practices distilled by the patterns community. The material presented in the nineteen chapters of this book distills first-rate patterns, which were workshopped at recent PLoP conferences and rigorously reviewed and enhanced by leading experts in attendance. Representing the best of the conferences, these patterns provide effective, tested, and versatile software design solutions for solving real-world problems in a variety of domains. Pattern Languages of Program Design 5 covers a wide range of topics, particularly the areas of object-oriented systems, programming techniques, temporal patterns, security, domain-oriented patterns, human-computer interaction, software management, and software patterns. Among them, you will find patterns addressing: Object-oriented systems, Middleware, Concurrency and resource management problems, Distributed systems, Mobile telephony, Web-based applications, Extensibility and reuse, Meta-patterns. As patterns continue to capture insight from many areas of practical software development, more and more developers are discovering that using patterns improves communication and helps them build better software.

Buy the Book on Amazon.com.

 
 

Modellgetriebene Softwareentwicklung (2005)

Die modellgetriebene Softwareentwicklung oder Model Driven Software Development (MDSD) befasst sich mit der Automatisierung in der Software-Herstellung. Dies bedeutet, dass Infrastrukturcode, Subsysteme oder ganze Anwendungen generativ aus formalen Modellen abgeleitet werden.

Dieses Buch beleuchtet das Thema aus den Perspektiven Technik, Engineering und Management und ist in vier Teile und einen Anhang gegliedert: Teil I enthält eine Einführung in die Grundlagen von MDSD, klärt Begriffe sowie die Relation zur Model Driven Architecture (MDA) der OMG. Auch wird erörtert, wie MDSD und agile Ansätze harmonieren. Der folgende Teil erläutert Techniken der Metamodellierung und zeigt konstruktive MDSD-Merkmale von Ziel-, Plattform- und Transformations-Architekturen auf. Außerdem werden Konstruktions- und Auswahlkriterien für MDSD-Werkzeuge sowie Codegenerierungs-Techniken vermittelt. Teil III beleuchtet Engineering-Aspekte und Prozess-Bausteine. Dazu zählen insbesondere auch die Themen Test, Versionierung und Product Line Engineering. Zusätzlich wird gezeigt, wie sich objektorientierte Geschäftsprozessmodellierung und MDSD nahtlos verbinden lassen. Der vierte Teil befasst sich mit Management-Aspekten, darunter ökonomische und organisatorische Themen sowie Adaptionsstrategien für MDSD. Außerdem werden häufig gestellte, zum Teil kritische Fragen beantwortet.

Im Anhang wird der MDA-Standard der OMG behandelt. Abgerundet wird das Buch durch zwei ausführliche, begleitende Fallstudien sowie viele kleinere Beispiele.

Das Buch richtet sich an Software-Architekten, Entwickler, Projektleiter und IT-Verantworliche. Vorausgesetzt werden Kenntnisse in der Objektorientierung und UML sowie -- für die technischen Teile -- Java oder ähnlicher Programmiersprachen.

Nicht mehr erhältlich. | Ein PDF der ersten Ausgabe gibt's hier.

 
 

Software-Architektur (2005)

Als Architekt arbeiten Sie in einem sehr vielfältigen und dynamischen Umfeld. Neue Technologien drängen auf den Markt, neue Werkzeuge versprechen Effizienz- und Produktivitätssteigerungen und neue Architekturkonzepte, wie Serviceorientierung und modellgetriebene Verfahren sollen Ihnen helfen, mit der inhärenten Komplexität von IT-Systemen umzugehen. All diese Entwicklungen und Neuerungen müssen Sie als Architekt verstehen, einordnen und letztlich beurteilen können, um die Spreu vom Weizen zu trennen und für Ihre konkrete Problemstellung die passende Lösung zu wählen.

Dieses Buch hilft Ihnen dabei, indem es das Thema Software-Architektur umfassend behandelt und mit Hilfe eines architektonischen Ordnungsrahmens strukturiert. Es stellt Sie als Architekten in den Mittelpunkt und bietet Ihnen langfristige Orientierung. Das Buch vermittelt hierzu essenzielles Architektur-Wissen und zeigt Ihnen, wie Sie dieses Wissen konkret und in entsprechenden Projekten einsetzen können. Zu diesem Zweck enthält das Buch Anwendungsszenarien und Fallstudien aus verschiedenen Industriezweigen und Anwendungsdomänen. Software-Entwickler und Studenten erhalten mit diesem Buch eine wertvolle Hilfestellung, um in das Thema Software-Architektur einzusteigen.

Diese erste Auflage ist nicht mehr erhältlich. (An späteren Auflagen war ich nicht beteiligt).

 
 

Remoting Patterns (2004)

Developing distributed applications, made simpler with the advent of distributed object middleware, succeeds best when it seamlessly integrates with the widely spread object-oriented and component-oriented paradigms used in today's applications. But extra requirements - performance, predictability, scalability - can increase complexity and the challenge of building robust distributed software. This is when details of the distributed object middleware suddenly become critical and must be understood thoroughly. And this is also when developers, consultants, and especially software architects, need to understand the inner workings of the middleware products they use - not just their APIs.

This book explains the internal structure and behaviour of distributed object middleware in an easily comprehensible form: patterns. Since practically all available distributed object middleware systems are built on the same set of patterns, understanding the patterns will provide developers with a thorough and deep understanding of how a particular middleware works. To illustrate the patterns, the book includes three technology projections for: CORBA, Web Services, and .NET Remoting,

The pattern language in this book addresses everything from basic and elementary aspects of lifecycle- and resource management to asynchronous invocations. The combination of patterns, their interactions, and the technology projections even enable you to create your own distributed object middleware, in case existing solutions fail to address your specific needs.

Buy on amazon.com | Here is a review version of the book for you to check out.

 
 

Server Component Patterns (2002)

Component technologies like Enterprise JavaBeans, COM+ and, in the near future, CORBA Components have become mainstream in many application domains. Many developers and architects use this technology in their everyday work. However, there is more to know about component infrastructures than the API's of the respective technology, and this book shows what.

The first part of the book introduces a pattern language that describes how server-side component infrastructures work internally. It does not only adress the basic building blocks and their interactions. It also provides details about the reasons and rationales for this kind of system architecture. For each pattern, the book provides short examples of how it is implemented in EJB, CCM and COM+. These examples thus also serve as a good comparison of those three mainstream component infrastructures.

The second part of the book uses the EJB technology to provide even more detailed examples for the patterns, including UML diagrams and extensive source code. The chapter also serves as a comprehensive overview of EJB, introducing the EJB from the architecture viewpoint, and not just on the API level.The focus is on highlighting the consequences of the EJB architecture for the developer.

Part three offers another approach to the material: a conversation between two people that describes how a concrete application has been built using component technology, focusing on the benefits of this approach.

After reading this book you will understand the principles and patterns of server-side component infrastructures, be able to design your own proprietary component infrastructures for specific projects, learn about the commonalities and differences between EJB, CCM and COM+, gain a comprehensive overview over the EJB technology and see how server-side component infrastructures can be used to great benefit in a real application.

Buy on amazon.com | Here is a draft version of the book for you to check out.


CONTACT
webvoelter.de
e-mailvoelter@acm.org
skype  schogglad
twitter markusvoelter
g++MarkusVölter
fb/markus.voelter
githubmarkusvoelter
xingMarkus_Voelter
Linkedin 0/377/a31
Physical Impressum/Imprint

 
RELATED SITES
omega tau, my science podcast
mbeddr, the project I work on
DSL Engineering, my most recent book
(c) 2005 - 2014 Markus Voelter   |   Impressum/Imprint   |   Created with Jekyll and Bootstrap   |   Last regenerated at 2016-01-19 04:24:11 -0800