90 research outputs found

    Configurable Software Performance Completions through Higher-Order Model Transformations

    Get PDF
    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

    Configurable Software Performance Completions through Higher-Order Model Transformations

    Get PDF
    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

    Coupled model transformations for QoS enabled component-based software design

    Get PDF
    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

    Efficiently Conducting Quality-of-Service Analyses by Templating Architectural Knowledge

    Get PDF
    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

    Automated Improvement of Software Architecture Models for Performance and Other Quality Attributes

    Get PDF

    Adaptation-Aware Architecture Modeling and Analysis of Energy Efficiency for Software Systems

    Get PDF
    This thesis presents an approach for the design time analysis of energy efficiency for static and self-adaptive software systems. The quality characteristics of a software system, such as performance and operating costs, strongly depend upon its architecture. Software architecture is a high-level view on software artifacts that reflects essential quality characteristics of a system under design. Design decisions made on an architectural level have a decisive impact on the quality of a system. Revising architectural design decisions late into development requires significant effort. Architectural analyses allow software architects to reason about the impact of design decisions on quality, based on an architectural description of the system. An essential quality goal is the reduction of cost while maintaining other quality goals. Power consumption accounts for a significant part of the Total Cost of Ownership (TCO) of data centers. In 2010, data centers contributed 1.3% of the world-wide power consumption. However, reasoning on the energy efficiency of software systems is excluded from the systematic analysis of software architectures at design time. Energy efficiency can only be evaluated once the system is deployed and operational. One approach to reduce power consumption or cost is the introduction of self-adaptivity to a software system. Self-adaptive software systems execute adaptations to provision costly resources dependent on user load. The execution of reconfigurations can increase energy efficiency and reduce cost. If performed improperly, however, the additional resources required to execute a reconfiguration may exceed their positive effect. Existing architecture-level energy analysis approaches offer limited accuracy or only consider a limited set of system features, e.g., the used communication style. Predictive approaches from the embedded systems and Cloud Computing domain operate on an abstraction that is not suited for architectural analysis. The execution of adaptations can consume additional resources. The additional consumption can reduce performance and energy efficiency. Design time quality analyses for self-adaptive software systems ignore this transient effect of adaptations. This thesis makes the following contributions to enable the systematic consideration of energy efficiency in the architectural design of self-adaptive software systems: First, it presents a modeling language that captures power consumption characteristics on an architectural abstraction level. Second, it introduces an energy efficiency analysis approach that uses instances of our power consumption modeling language in combination with existing performance analyses for architecture models. The developed analysis supports reasoning on energy efficiency for static and self-adaptive software systems. Third, to ease the specification of power consumption characteristics, we provide a method for extracting power models for server environments. The method encompasses an automated profiling of servers based on a set of restrictions defined by the user. A model training framework extracts a set of power models specified in our modeling language from the resulting profile. The method ranks the trained power models based on their predicted accuracy. Lastly, this thesis introduces a systematic modeling and analysis approach for considering transient effects in design time quality analyses. The approach explicitly models inter-dependencies between reconfigurations, performance and power consumption. We provide a formalization of the execution semantics of the model. Additionally, we discuss how our approach can be integrated with existing quality analyses of self-adaptive software systems. We validated the accuracy, applicability, and appropriateness of our approach in a variety of case studies. The first two case studies investigated the accuracy and appropriateness of our modeling and analysis approach. The first study evaluated the impact of design decisions on the energy efficiency of a media hosting application. The energy consumption predictions achieved an absolute error lower than 5.5% across different user loads. Our approach predicted the relative impact of the design decision on energy efficiency with an error of less than 18.94%. The second case study used two variants of the Spring-based community case study system PetClinic. The case study complements the accuracy and appropriateness evaluation of our modeling and analysis approach. We were able to predict the energy consumption of both variants with an absolute error of no more than 2.38%. In contrast to the first case study, we derived all models automatically, using our power model extraction framework, as well as an extraction framework for performance models. The third case study applied our model-based prediction to evaluate the effect of different self-adaptation algorithms on energy efficiency. It involved scientific workloads executed in a virtualized environment. Our approach predicted the energy consumption with an error below 7.1%, even though we used coarse grained measurement data of low accuracy to train the input models. The fourth case study evaluated the appropriateness and accuracy of the automated model extraction method using a set of Big Data and enterprise workloads. Our method produced power models with prediction errors below 5.9%. A secondary study evaluated the accuracy of extracted power models for different Virtual Machine (VM) migration scenarios. The results of the fifth case study showed that our approach for modeling transient effects improved the prediction accuracy for a horizontally scaling application. Leveraging the improved accuracy, we were able to identify design deficiencies of the application that otherwise would have remained unnoticed

    Software Product Line

    Get PDF
    The Software Product Line (SPL) is an emerging methodology for developing software products. Currently, there are two hot issues in the SPL: modelling and the analysis of the SPL. Variability modelling techniques have been developed to assist engineers in dealing with the complications of variability management. The principal goal of modelling variability techniques is to configure a successful software product by managing variability in domain-engineering. In other words, a good method for modelling variability is a prerequisite for a successful SPL. On the other hand, analysis of the SPL aids the extraction of useful information from the SPL and provides a control and planning strategy mechanism for engineers or experts. In addition, the analysis of the SPL provides a clear view for users. Moreover, it ensures the accuracy of the SPL. This book presents new techniques for modelling and new methods for SPL analysis

    Quality-driven Reuse of Model-based Software Architecture Elements

    Get PDF
    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

    Quality-driven Reuse of Model-based Software Architecture Elements

    Get PDF
    In modernen Software-Entwicklungsprozessen werden, insbesondere zur Implementierung von Standardfunktionalitäten, immer häufiger bestehende Komponenten oder Bibliotheken wiederverwendet. So müssen Funktionalitäten, die breite Anwendung in unterschiedlichen Systemen finden können, nicht für jede Verwendung von Grund auf neuentwickelt werden. Wiederverwendung von Funktionalitäten durch Software-Komponenten oder gar von komplexen Teilsystemen, den Subsystemen, die höherwertige Funktionalitäten, die Features, anbieten, führt so zu kosteneffizienterer Entwicklung und qualitativ hochwertigerer Software. Durch eine Vielzahl ähnlicher Lösungen für die gleiche Standardfunktionalität stehen Software-Architekten allerdings häufig vor der Frage, welche Lösungen sie auswählen sollten und wie deren Konfiguration in der Zielarchitektur optimal zu den Anforderungen an das Software-System passen. Subsysteme bieten häufig eine Vielzahl an Features an, die zu unklaren Effekten auf die Qualitätsattribute der Software-Architektur, wie z.B. auf die Performance, führt. Insbesondere zur Entwurfszeit oder wenn Software-Systeme um Funktionalität erweitert werden soll ist unklar, ob durch die Verwendung eines bestimmten Features eines bestimmten Subsystems die Qualitätsanforderungen an das Gesamtsystem haltbar sind. Neue Qualitätsanforderungen werden zumeist durch Funktionen operationalisiert. Operationalisierte Qualitätsanforderungen haben meist zum Ziel eine oder mehrere Qualitätsattribute, wie z.B. Sicherheit oder Bedienbarkeit, zu verbessern. Gerade diese Qualitätsattribute stehen jedoch häufig gegenseitig oder mit anderen Qualitätsattributen, wie z.B. Performance, in Konflikt oder beeinflussen sich gegenseitig. Gleichzeitig sind diese allerdings schwierig quantifizierbar, weil Funktionen zur quantitativen Evaluation dieser Qualitätsattribute häufig nicht ausreichend wissenschaftlich erforscht sind, wie beispielsweise für das Qualitätsattribut Sicherheit. Die Evaluation selbst kann auch einen zu großen zeitlichen und finanziellen Aufwand erfordern, wie dies beispielsweise bei Nutzerstudien zur Evaluation der Bedienbarkeit der Fall wäre. In der Praxis werden entsprechend schwierig quantifizierbare Qualitätsanforderungen nicht oder nur unzureichend systematisch in der Planung des Software-Systems berücksichtigt. Zur Analyse von Entwurfsalternativen können Software-Modelle genutzt werden, um möglichst früh im Software-Entwicklungs\-prozess die zu erwartende Qualität zu analysieren und zu evaluieren. Möchten Software-Architekten die Auswirkungen auf die Qualitätsattribute ihrer Software-Architektur durch die Verwendung von Features realisiert durch komplexe Subsysteme evaluieren, müssen, durch eine Vielzahl an Kombinationen und Konfigurationen, schnell sehr viele Architekturkandidaten evaluiert werden. In der Praxis können, durch natürlich gegebene Freiheitsgrade komponentenbasierter Software-Architekturen, schnell mehrere tausend Architekturkandidaten entstehen. Eine einzelne und manuelle Evaluation einer solch großen Anzahl an Kandidaten ist durch die damit entstehenden Zeit- und somit Kostenaufwände meist nicht möglich. Neben einer Vielzahl an zu evaluierenden Architekturkandidaten können, aufgrund fehlender quantitativer Evaluationsfunktionen, viele Qualitätsattribute nicht in bestehenden automatischen Entscheidungsunterstützungsverfahren berücksichtigt werden. Dadurch zeichnet sich entsprechend ein unvollständiges Bild bei der Suche nach den optimalen Architekturkandidaten. Der in dieser Dissertation vorgestellte Ansatz CompARE ermöglicht Software-Architekten, Effekte auf die Qualitätsattribute einer Software-Architektur, die durch die Verwendung von Features entstehen, automatisch zu evaluieren. Auch die Optimierung von Qualitätsanforderungen ohne quantitative Evaluationsfunktion wird unterstützt, indem bestehendes informell vorliegendes Wissen über Architekturentscheidungen modelliert und dadurch zusammen mit bestehenden quantitativen Evaluationsfunktionen optimiert wird. Das Ergebnis soll Software-Architekten dabei unterstützen, zu entscheiden, i) inwiefern die Verwendung von bestimmten Features auf Qualitätsattribute Auswirkungen hat und welche Wechselwirkungen untereinander zu erwarten sind, ii) welches der möglichen Subsysteme und seiner Konfiguration die beste Wahl darstellt und iii) ob die gegebenen technischen Umsetzungen mit den Projektanforderungen vereinbart werden können. Daraus ergeben sich folgende Beiträge der Arbeit: Zunächst wird eine Vorstudie vorgestellt, die den Aufwand der Erstellung von quantitativen Evaluationsfunktionen, am Beispiel des Qualitätsattributs Sicherheit in komponentenbasierten Software-Architekturen, zeigt. Die Modellierung von wiederverwendbaren Subsystemen zur Verwendung in automatischen Entscheidungsunterstützungsprozessen stellt den ersten Beitrag des CompARE Ansatzes dar. Es wird ein Meta-Modell entworfen, das die Modellierung von Subsystemen zur einfachen Wiederverwendung unterstützt und dadurch zur automatischen Modellintegration verwendbar macht. Die automatische Modellintegration von Teilmodellen ist der nächste Beitrag der Arbeit. Hierbei werden Teilmodelle automatisch integriert, so dass diese automatisch evaluiert und optimiert werden können. Durch diese Methode können Software-Architekten Features mit vergleichsweise geringem Modellierungsaufwand automatisiert in die Zielarchitektur einbauen. Schließlich zeigt die Arbeit wie informelles Wissen modelliert werden kann, um es gemeinsam mit quantitativen Funktionen zur Bestimmung von Qualitätseigenschaften zu analysieren und zu evaluieren. Die Evaluation wird anhand zweier Klassen von Subsystemen mit jeweils zwei unterschiedlich modellierten Lösungen durchgeführt. Jede Lösung bietet verschiedene Features. Dabei hält jede Lösung seine eigene Software-Architektur und beeinflusst dadurch individuell die Qualitätsattribute der Zielarchitektur, in der das Subsystem zum Einsatz gebracht werden wird. Die Wiederverwendung der Subsysteme und die aus dem vorgestellten Ansatz resultierende Architekturoptimierung wird anhand dreier Zielsysteme durchgeführt. Bei diesen Zielsystemen handelt es sich um zwei Realweltsysteme, die in der Industrie zur Anwendung kommen und um eine Community Fallstudie, die in der Community der komponentenbasierten Software-Architekturmodellierung als repräsentativ gilt. Anhand dieser Systeme werden insgesamt 11 Szenarien durchgeführt, die die Analyse relevanter Fragestellungen zu den Themen Software-Architekturentwurf, Entscheidungen mit Bezug auf Software-Qualitätsattribute und Software-Anforderungspriorisierung durch einen strukturierten Prozess analysierbar machen. Dabei wird die Anwendbarkeit und der Nutzen von CompARE gezeigt und die aus den Ergebnissen ableitbaren Schlussfolgerungen diskutiert
    corecore