Volume 1: Coupled model transformations for QoS enabled component-based software design
by Steffen Becker
This thesis presents the Palladio Component Model and its accompanying transformations for component-based software design with predictable performance attributes. The use of transformations results in a deterministic relationship between the model and its implementation. The introduced Coupled Transformations method uses this relationship to include implementation details into predictions to get better predictions. The approach is validated in several case studies showing the increased accuracy.
Volume 2: Parameter dependencies for reusable performance specifications of software components
by Heiko Koziolek
To avoid design-related performance problems, model-driven performance prediction methods analyse the response times, throughputs, and resource utilizations of software architectures before and during implementation. This thesis proposes new modeling languages and according model transformations, which allow a reusable description of usage profile dependencies to the performance of software components. Predictions based on this new methods can support performance-related design decisions.
Volume 3: Predicting software performance in symmetric multi-core and multiprocessor Environments
by Jens Happe
With today's rise of multi-core processors, concurrency becomes a ubiquitous challenge in software development.Performance prediction methods have to reflect the influence of multiprocessing environments on software performance in order to help software architects to find potential performance problems during early development phases. In this thesis, we address the influence of the operating system scheduler on software performance in symmetric multiprocessing environments.
Volume 4: Reconstruction of Software Component Architectures and Behaviour Models using Static and Dynamic Analysis
by Klaus Krogmann
Model-based performance prediction systematically deals with the evaluation of software performance to avoid for example bottlenecks, estimate execution environment sizing, or identify scalability limitations for new usage scenarios. Such performance predictions require up-to-date software performance models. This book describes a new integrated reverse engineering approach for the reconstruction of parameterised software performance models (software component architecture and behaviour).
Volume 5: Quantifying and Predicting the Influence of Execution Platform on Software Component Performance
by Michael Kuperberg
The performance of software components depends on several factors, including the execution platform on which the software components run. To simplify cross-platform performance prediction in relocation and sizing scenarios, a novel approach is introduced in this thesis which separates the application performance profile from the platform performance profile. The approach is evaluated using transparent instrumentation of Java applications and with automated benchmarks for Java Virtual Machines.
Volume 6: View-based textual modelling
by Thomas Goldschmidt
This work introduces the FURCAS approach, a framework for view-based textual modelling. FURCAS includes means that allow software language engineers to define partial and overlapping textual modelling languages. Furthermore, FURCAS provides an incremental update approach that enables modellers to work with multiple views on the same underlying model. The approach is validated against a set of formal requirements, as well as several industrial case studies showing its practical applicability.
Volume 7: Automated Improvement of Software Architecture Models for Performance and Other Quality Attributes
by Anne Koziolek
Quality attributes, such as performance or reliability, are crucial for the success of a software system and largely influenced by the software architecture. Their quantitative prediction supports systematic, goal-oriented software design and forms a base of an engineering approach to software design. This thesis proposes a method and tool to automatically improve component-based software architecture (CBA) models based on such quantitative quality prediction techniques. The method and tool support software architects in making trade-off decisions and negotiating quality requirements with stakeholders.
Volume 8: Configurable Software Performance Completions through Higher-Order Model Transformations
by Lucia Happe
Chillies is a novel approach for variable model transformations closing the gap between abstract architecture models, used for performance prediction, and required low-level details. We enable variability of transformations using chain of generators based on the Higher-Order Transformation (HOT). HOTs target different goals, such as template instantiation or transformation composition. In addition, we discuss state-dependent behavior in prediction models and quality of model transformations.
Volume 9: Integrated Software Architecture-Based Reliability Prediction for IT Systems
by Franz Brosch
With the increasing importance of reliability in business and industrial IT systems, new techniques for architecture-based software reliability prediction are becoming an integral part of the development process. This dissertation thesis introduces a novel reliability modelling and prediction technique that considers the software architecture with its component structure, control and data flow, recovery mechanisms, its deployment to distributed hardware resources and the system’s usage profile.
Volume 10: Modelling Event-Based Interactions in Component-Based Architectures for Quantitative System Evaluation
by Christoph Rathfelder
This dissertation thesis presents an approach enabling the modelling and quality-of-service prediction of event-based systems at the architecture-level. Applying a two-step model refinement transformation, the approach integrates platform-specific performance influences of the underlying middleware while enabling the use of different existing analytical and simulation-based prediction techniques.
Volume 11: Certifying Software Component Performance Specifications
by Henning Groenda
In component-based software engineering, performance prediction approaches support the design of business information systems on the architectural level. They are based on behavior specifications of components. This work presents a round-trip approach for using, assessing, and certifying the accuracy of parameterized, probabilistic, deterministic, and concurrent performance specifications. Its applicability and effectiveness are demonstrated using the CoCoME benchmark.
Volume 12: Deriving Goal-oriented Performance Models by Systematic Experimentation
by Dennis Westermann
Performance modelling can require substantial effort when creating and maintaining performance models for software systems that are based on existing software. Therefore, this thesis addresses the challenge of performance prediction in such scenarios. It proposes a novel goal-oriented method for experimental, measurement-based performance modelling. We validated the approach in a number of case studies including standard industry benchmarks as well as a real development scenario at SAP.
Volume 13: Automated Experiments for Deriving Performance-relevant Properties of Software Execution Environments
by Michael Hauck
The software execution environment can play a crucial role when analyzing the performance of a software system. In this book, a novel approach for the automated detection of performance-relevant properties of the execution environment is presented. The properties are detected using predefined experiments and integrated into performance prediction tools. The approach is applied to experiments for detecting different CPU, OS, and virtualization properties, and validated in different case studies.
Volume 14: Architectural Design Decision Documentation through Reuse of Design Patterns.
by Zoya Durdik
The ADMD3 approach presented in this book enchances the architectural design documentation of decision via reuse of design patterns. It combines the support for evaluation of pattern application, semi-automated documentation of decision rationale and trace links. The approach is based on a new kind of design pattern catalogue, whereby usual pattern descriptions are captured together with question annotations to the patterns and information on architectural structure of patterns.
Volume 15: Flexible Views for View-based Model-driven Development
by Erik Burger
Modern software development faces growing size and complexity of systems. The usage of several formalisms introduces the problem of fragmentation of information across heterogeneous artefacts in different formats, concepts, and languages. In this thesis, the conceptual foundations for the Vitruvius approach are presented. Flexible views are introduced as a concept for the compact definition of user-specific views, which can be defined in the ModelJoin language. The view-based development process is supported by a change metamodel for the description of metamodel evolution and a change impact analysis.
Volume 16: Consolidation of Customized Product Copies into Software Product Lines
by Benjamin Klatt
In software development, project constraints lead to customer-specific variants by copying and adapting the product. During this process, modifications are scattered all over the code. Although this is flexible and efficient in the short term, a Software Product Line (SPL) offers better results in the long term, regarding cost reduction, time-to-market, and quality attributes. This book presents a novel approach named SPLevo, which consolidates customized product copies into an SPL.
Volume 17: Model Transformation Languages with Modular Information Hiding
by Andreas Rentschler
Model transformations, together with models, form the principal artifacts in model-driven software development. Industrial practitioners report that transformations on larger models quickly get sufficiently large and complex themselves. To alleviate entailed maintenance efforts, this thesis presents a modularity concept with explicit interfaces, complemented by software visualization and clustering techniques. All three approaches are tailored to the specific needs of the transformation domain.
Volume 18: Modeling and Prediction of I/O Performance in Virtualized Environments
by Qais Noorshams
We present a novel performance modeling approach tailored to I/O performance prediction in virtualized environments. The main idea is to identify important performance-influencing factors and to develop storage-level I/O performance models. To increase the practical applicability of these models, we combine the low-level I/O performance models with high-level software architecture models. Our approach is validated in a variety of case studies in state-of-the-art, real-world environments.
Volume 19: Architekturbasierte Bewertung und Planung von Änderungsanfragen
by Johannes Stammel
Software Architecture covers the technical organization of a software system and principles which determine design and evolution of the system. The research issue of this work results from software evolution, when the software needs to be modified. The contribution of this book is a method for change request analysis based on software architecture models. The method supports derivation of tasks covering several work areas and life cycle phases.
Volume 20: Performance Problem Diagnostics by Systematic Experimentation
by Alexander Wert
In this book, we introduce an automatic, experiment-based approach for performance problem diagnostics in enterprise software systems. The proposed approach systematically searches for root causes of detected performance problems by executing series of systematic performance tests. The presented approach is evaluated by various case studies showing that the presented approach is applicable to a wide range of contexts.
Volume 21: An Approach for Guiding Developers to Performance and Scalability Solutions
by Christoph Heger
The quality of enterprise software applications plays a crucial role for the satisfaction of the users and the economic success of the enterprises. Software applications with unsatisfying performance and scalability are perceived by its users as low in quality, as less interesting and less attractive, and cause frustration when preventing the users from attaining their goals.
This work proposes an approach for a recommendation system that enables developers who are novices in software performance engineering to solve software performance and scalability problems without the assistance of a software performance expert. The approach includes a set of description languages for data representation and human computer interaction and a workflow to guide the developer through the solution process without the assistance of a software performance expert.
Volume 22: Weighted Statistical Testing based on Active Learning and Formal Verification Techniques for Software Reliability Assessment
by Fouad Omri
This work developed an automatic approach for the assessment of software reliability which is both theoretical sound and practical. The developed approach extends and combines theoretical sound approaches in a novel manner to systematically reduce the overhead of reliability assessment.
Volume 23: Automated Coevolution of Source Code and Soware Architecture Models
by Michael Langhammer
This work introduces a novel approach to keep high-level component-based architecture models consistent with source code during software development and software evolution. The approach helps to avoid architecture drift and architecture erosion, which are two well-known problems that can arise during development and maintenance of a software system. In particular, the presented approach can be used to keep instances of the Palladio Component Model (PCM) consistent with Java source code.
Volume 24: Specification Languages for Preserving Consistency between Models of Different Languages
by Max Kramer
When complex IT systems are being developed, the usage of several programming and modelling languages can lead to inconsistencies that yield faulty designs and implementations. To address this problem, this work contributes a classification of consistency preservation challenges and an approach for preserving consistency. It is formalized using set theory and monitors changes to avoid matching and diffing problems. Three new languages that follow this preservation approach are presented.
Volume 25: Efficiently Conducting Quality-of-Service Analyses by Templating Architectural Knowledge
by Sebastian Lehrig
Previously, software architects were unable to effectively and efficiently apply reusable knowledge (e.g., architectural styles and patterns) to architectural analyses. This work tackles this problem with a novel method to create and apply templates for reusable knowledge. These templates capture reusable knowledge formally and can efficiently be integrated in architectural analyses.
Volume 26: Implicit Incremental Model Analyses and Transformations
by Georg Hinkel
— to appear —
Volume 27: Adaptation-Aware Architecture Modeling and Analysis of Energy Efficiency for Software Systems
by Christian Stier
This work presents an approach for the architecture analysis of energy efficiency for static and self-adaptive software systems. It introduces a modeling language that captures consumption characteristics on an architectural level. The outlined analysis predicts the energy efficiency of systems described with this language. Lastly, this work introduces an approach for considering transient effects in design time architecture analyses.
Volume 28: Entwurfsoptimierung von selbst-adaptiven Wartungsmechanismen für software-intensive technische Systeme
by Lukas Märtin
This work presents novel concepts for efficient decision support in reconfiguring software-intensive technical systems with limited maintenance access. In contrast to purely redundancy-oriented approaches, the proposed methodology is based on the predictive pre-calculation of adequate configuration alternatives in the relevant design space. The knowledge about configuration relationships is manifested early and used for the autonomic cost-efficient assessment of configuration alternatives.
Volume 29: Quality-driven Reuse of Model-based Software Architecture Elements
by Axel Busch
In software development, components are increasingly being reused, especially for the implementation of standard functionalities making software development more cost-efficient. At design time, however, it is often unclear which solution providing these functionalities fits the requirements of the software system. This work proposes a method and tool enabling software architects to automatically evaluate the effects on the quality attributes of software architectures when reusing features.
Volume 30: An Architecture-based Approach for Change Impact Analysis of Software-intensive Systems
by Kiana Busch
A main property of software-intensive technical systems is sustainability. Sustainable systems need to change continuously. A change to a system element can result in further changes to other system elements. If these elements originate from different domains, the change can also propagate between several domains. This book presents an architecture-based approach to change propagation analysis of software-intensive technical systems that considers heterogeneous elements from different domain.
Volume 31: A Reference Structure for Modular Metamodels of Quality-Describing Domain-Specific Modeling Languages
by Misha Strittmatter
To understand the problems in metamodeling, this work presents an investigation of bad smells in metamodels. The core contribution of this work is the reference structure. It enables design, evolution, and extension of metamodels for modeling languages used for quality analysis. Applying the reference structure yields a modular metamodel. To be able to couple the metamodel modules in a meaningful way, this book investigates metamodel extension mechanisms.