05 Fakultät Informatik, Elektrotechnik und Informationstechnik

Permanent URI for this collectionhttps://elib.uni-stuttgart.de/handle/11682/6

Browse

Search Results

Now showing 1 - 10 of 10
  • Thumbnail Image
    ItemOpen Access
    Detecting performance anti-patterns in enterprise applications by analyzing execution traces
    (2016) Hidiroglu, Alper
    Application performance management (APM) deals with performance issues within applications. With application performance monitoring the software's behaviour is investigated with the help of a program, in the following called agent. When the applications software runs, the agent collects performance-relevant data, which can be evaluated. For example, methods get instrumented, so that data can be collected, when the method is executed. Typical examples for such data are the response time or the CPU time of a method. There are many APM tools, that provide such an agent to collect performance data. Modern tools provide monitoring and alerting, but not root-cause analysis. Therefore, the NovaTec Consulting GmbH and the University of Stuttgart (Reliable Software Systems group) are developing the diagnoseIT to systematically detect and analyze performance problems in applications software. The results of the diagnoseIT analysis are summarized in a report, which is then presented to the user. To provide concrete approaches for a solution concerning a performance problem within the monitored software, one part of the diagnoseIT analysis deals with detection of software performance anti-patterns. A performance anti-pattern describes a frequently made mistake, when implementing a software and which results in performance problems. Because the mistake is made often and well known, concrete approaches for a solution can be proposed. To detect anti-patterns in collected data, diagnoseIT uses a rule engine. Thereby, a rule can represent an anti-pattern by comparing the collected data with the characteristics of the anti-pattern. When a rule detects an anti-pattern, the diagnoseIT analysis automatically can provide concrete solutions for a performance problem. In its current state, diagnoseIT has only a few rules to detect anti-patterns. So in this bachelor thesis, we add more rules to the diagnoseIT to detect other performance anti-patterns. Also, diagnoseIT has no possibility to detect anti-patterns, that get visible over time, because it has no possibility to save data. Therefore, in this bachelor thesis, we extend the diagnoseIT analysis with a special database, so that performance anti-patterns can be detected, which become visible in a longer observation period of performance data. The concluding evaluation of this work shows, that the implemented rules correctly detect anti-patterns. However, the evaluation also identifies limitations of the rules, that lead to wrong results in some cases.
  • Thumbnail Image
    ItemOpen Access
    Detecting performance anti-patterns in enterprise applications by analyzing execution traces
    (2016) Hidiroglu, Alper
    Application performance management (APM) deals with performance issues within applications. With application performance monitoring the software’s behaviour is investigated with the help of a program, in the following called agent. When the applications software runs, the agent collects performance-relevant data, which can be evaluated. For example, methods get instrumented, so that data can be collected, when the method is executed. Typical examples for such data are the response time or the CPU time of a method. There are many APM tools, that provide such an agent to collect performance data. Modern tools provide monitoring and alerting, but not root-cause analysis. Therefore, the NovaTec Consulting GmbH [NTC16b] and the University of Stuttgart (Reliable Software Systems group) are developing the diagnoseIT [dIT15] to systematically detect and analyze performance problems in applications software. The results of the diagnoseIT analysis are summarized in a report, which is then presented to the user. To provide concrete approaches for a solution concerning a performance problem within the monitored software, one part of the diagnoseIT analysis deals with detection of software performance anti-patterns [ap00]. A performance anti-pattern describes a frequently made mistake, when implementing a software and which results in performance problems. Because the mistake is made often and well known, concrete approaches for a solution can be proposed. To detect anti-patterns in collected data, diagnoseIT uses a rule engine. Thereby, a rule can represent an anti-pattern by comparing the collected data with the characteristics of the anti-pattern. When a rule detects an anti-pattern, the diagnoseIT analysis automatically can provide concrete solutions for a performance problem [HHO+15]. In its current state, diagnoseIT has only a few rules to detect anti-patterns. So in this bachelor thesis, we add more rules to the diagnoseIT to detect other performance antipatterns. Also, diagnoseIT has no possibility to detect anti-patterns, that get visible over time, because it has no possibility to save data. Therefore, in this bachelor thesis, we extend the diagnoseIT analysis with a special database, so that performance anti-patterns can be detected, which become visible in a longer observation period of performance data. The concluding evaluation of this work shows, that the implemented rules correctly detect anti-patterns. However, the evaluation also identifies limitations of the rules, that lead to wrong results in some cases.
  • Thumbnail Image
    ItemOpen Access
    Anbindung von SKilL an Haskell
    (2016) Harth, Rafael
    Die Sprache SKilL definiert ein Format, in dem große Mengen an Daten hochgradig effizient sowie sprach- und plattenunabhängig serialisiert und deserialisiert werden können. Um dies zu realisieren, müssen Anbindungen in Zielsprachen geschrieben werden, die sowohl die Serialisierung implementieren, als auch eine Schnittstelle zur Bearbeitung der Daten bereitstellen. Die hiesige Arbeit befasst sich mit dem Problem, eine solche Anbindung für Haskell, eine rein funktionale Sprache, zu entwickeln.
  • Thumbnail Image
    ItemOpen Access
    A Java library for Zero-Suppressed Decision Diagrams
    (2016) Golda, Robert
    On the one hand, decision diagrams are a common means to represent Boolean functions. Since they were first proposed in the 80s, they became more and more popular. They are widely used in circuit optimization and verification and are useful when dealing with combinatorial problems. Zero-Suppressed Decision Diagram (ZDD)s are one type of those diagrams. On the other hand, Java is presently one of the most popular programming languages. Much research was done on each of these two subjects, ZDDs and Java, separately, but not on a combination of both. There is no appropriate library for Java implementing ZDDs. In the course of this thesis such a library was developed and implemented. The thesis describes the basic functionality of decision diagrams and lists particularities regarding the realization of them. Finally, the results of benchmarks for the library in general and the optimizations in particular are presented and discussed.
  • Thumbnail Image
    ItemOpen Access
    Automated categorization of performance problem diagnosis results
    (2016) Angerstein, Tobias
    In times of big data and global networking, software performance becomes a major issue in software development. Many enterprise applications were not designed for the current highly frequented usage. Thus, more and more organizations are using Application Performance Monitoring tools, to detect bottlenecks and other performance problems in their product. Meanwhile, there are many different tools on the market which provide a detailed performance-aware analysis of enterprise applications. However the common Application Performance Management tools do not provide any additional automated performance problem diagnosis. The performance expert has to find the cause on its own. diagnoseIT [4], a framework for automatic diagnosis of performance problems in enterprise applications addresses this problem. diagnoseIT extracts performance problem instances from execution traces. The resulting set of problem instances can become huge and the analysis of the problems is very time-consuming. We extend the general concept of diagnoseIT and categorize the resulting set of problem instances into a manageable number of problem categories. Therefore, a concept of categorization is elaborated. We analyze several different categorization approaches and evaluate the performance and the quality of the result. We perform a sensitivity analysis, which analyzes the influence of each attribute of a problem instance on a clustering result. The results of the sensitivity analysis indicates, that there is a potential for optimization. Thus, we introduce a concept of optimization, which optimizes the process of categorization by weighting the attributes and we compare different manual and automatic optimization approaches with regard to the improvement compared to default weights. In the evaluation, we examine the accuracy and the performance of the approaches. The evaluation shows that k-means clustering provides the most promising and best results. Additionally, the evaluation indicates a high potential for optimization. However, the results of the evaluation show that it is difficult to optimize the weights without any knowledge about the analyzed system.
  • Thumbnail Image
    ItemOpen Access
    Handling quality trade-offs in architecture-based performance optimization
    (2016) Frank, Sebastian
    The goal of software architecture optimization is to find architecture candidates that satisfy the expectations of all relevant stakeholders with regard to some quality attributes, e.g., performance, modifiability, or reliability. Quality attributes usually compete with each other, which makes trade-offs inevitable. In the SQuAT project the suitability of distributed search strategies for architecture optimization is investigated. This approach is based on the way human architects would conduct architecture optimization. Related works from the domain of software architecture optimization are usually monolithic and only extendable to a certain degree. The SQuAT approach tries to overcome these drawbacks. This thesis contributes a SQuAT module for the analysis and optimization of software architecture with regard to the quality attribute performance. Therefore, the already existing approach for architecture-based performance optimization PerOpteryx is integrated. In addition, this module gets evaluated with an example system and it is shown that it reaches a similar quality than PerOpteryx. In conclusion, this work is the first step to gain new insights into the applicability of distributed search strategies, modularization of design knowledge, and negotiation techniques for software architecture optimization.
  • Thumbnail Image
    ItemOpen Access
    Bauhaus-Analysis Driver
    (2016) Bauer, Andreas
    Um die Programmanalyse mit Bauhaus zu vereinfachen, habe ich ein Steuerungs-Werkzeug für Bauhaus entwickelt. Dieses Werkzeug ermöglicht die automatisierte Ausführung von Bauhauswerkzeugen in Unkenntnis deren Abhängigkeiten. In dieser Ausarbeitung wird die Funktionsweise dieses Werkzeuges, sowie seine Realisierung beschrieben, sowie eine Analyse der für ein solches Werkzeug relevanten Eigenschaften von Bauhaus.
  • Thumbnail Image
    ItemOpen Access
    Development of an Eclipse Plug-in for the STPA TCGenerator tool
    (2016) Luk-He, Ting
    Software safety is becoming one of the most important topics in modern systems, as software plays an important role in main critical-functions of systems. However, not only a software functional error, but also an unexpected software behavioral flaw may lead to catastrophic results. Therefore, software must be tested, which includes not only functionality requirements, but also software safety requirements. Based on the concept of STPA SwISs, the software XSTAMPP and STPA TCGenerator were developed each in Eclipse and Netbeans by Abdulkhaleq and Wagner. XSTAMPP provides a base platform for safety engineering, which can be easily extended with new functions and approaches based on the STAMP model. STPA TCGenerator is a tool for automatically generating software test cases from software safety requirements. This work presents an extended plug-in STPA TCGeneratorPlugin for XSTAMPP based on the tool STPA TCGenerator. The main functions of STPA TCGenerator are 1) automatically generating the safe behavioral model and the SMV model, 2) verification of SMV model, 3) build safe test model and 4) automatically generating safety-based test cases. STPA TCGeneratorPlugin contains all functions of STPA TCGenerator and can be integrated into XSTAMPP, so that the safety-based test cases can be generated directly in XSTAMPP rather than using a different tool. Furthermore, several improvements for STPA TCGenerator are implemented, such as graphical visualization, algorithm of generating traceability matrix and representation of test case results.
  • Thumbnail Image
    ItemOpen Access
    Reengineering und Erweiterung einer Prüfungsumgebung für Spreadsheets
    (2016) Mauch, Nicolas
    Spreadsheets werden in vielen Bereichen eingesetzt. Obwohl sie wichtige Daten enthalten und Entscheidungen auf diesen Daten basieren, befinden sich in vielen Spreadsheets Fehler. Daher wurde am Institut für Softwaretechnologie der Universität Stuttgart das Werkzeug Spreadsheet Inspection Framework entwickelt, um Spreadsheets halbautomatisch auf Fehler zu überprüfen. Es führt statische und dynamische Prüfungen eines Spreadsheets durch und zeigt gefundene Befunde an. Es besteht aus zwei Komponenten, einem Excel-Plugin zur Verwaltung von Prüfungen und Anzeigen von Resultaten sowie einer Java-Anwendung, welche die Prüfungen durchführt. In dieser Arbeit sollte das Excel-Plugin bezüglich folgender Aspekte erweitert und verbessert werden: Usability, Wartbarkeit, Zuverlässigkeit und Korrektheit. Um Schwächen im Excel-Plugin zu finden, musste es genauer untersucht werden. Hierzu wurden zehn Bewertungsverfahren in Erwägung gezogen und sechs davon angewendet. So wurden die Usability mittels Usability-Patterns und einer Nutzerstudie, die Wartbarkeit mit Teamscale, die Zuverlässigkeit mit Lasttests und die Korrektheit mit Unit-Tests und einem Systemtest überprüft. Da mehr Schwächen gefunden wurden als im Rahmen der Bachelorarbeit behoben werden konnten, mussten diese priorisiert werden. Für zwölf der dreizehn ausgewählten Schwächen konnten Änderungen implementiert werden, die zu Verbesserungen führen sollten. Da das Excel-Plugin vor Beginn der Bachelorarbeit korrekt arbeitete, wurden dahingehend keine Änderungen durchgeführt. Nachdem die ausgewählten Änderungen durchgeführt wurden, wurde das Excel-Plugin erneut bewertet. Hier wurden die zuvor verwendeten Bewertungsverfahren erneut angewandt. Außerdem wurde eine Studie mit vier Probanden durchgeführt, um das Spreadsheet Inspection Framework aus Sicht der Anwender zu bewerten. Bei dieser mussten die Probanden, mit Hilfe des Excel-Plugins in bestehenden Spreadsheets Fehler finden und korrigieren. Die erneute Bewertung der Zuverlässigkeit ergab, dass sie gestiegen ist aber in Zukunft noch weiter verbessert werden sollte. Eine erneute Bewertung der Wartbarkeit ergab, dass 30% der zuvor gefundenen Verstöße die auf eine schlechte Wartbarkeit hinweisen, gelöst wurden. Es konnten zwei neue Usability-Patterns umgesetzt werden und die Probanden der Studie bewerteten die Usability als gut. Zusammenfassen lässt sich sagen, dass das verbesserte Excel-Plugin geeignet für den produktiven Einsatz ist.
  • Thumbnail Image
    ItemOpen Access
    Entwicklung eines STPA-Verifiers als Eclipse-Plug-in für die Verifikation von Software-Sicherheitsanforderungen
    (2016) Balzer, Lukas
    Um die Sicherheit in kritischen Softwaresystemen zu gewährleisten ist immer häufiger eine Verifikation der Software in einem Systemkontext notwendig. Hierfür ist in den letzten Jahren die Verifikation von Softwaresystemen durch Model Checking, bedingt durch die wachsende Anzahl an dafür zur Verfügung stehenden Werkzeugen, eine bewährte Methode geworden. Diese Arbeit stellt auf Grundlage des in STPA SwISS [AWL15] vorgestellten Konzeptes eine Software zur automatisierten Ausführung von LTL und CTL Model Checking mit den Werkzeugen Spin und NuSMV bietet. Dabei können die Sicherheitsanforderungen sowohl manuell eingegeben werden, als auch aus einer STPA Analyse importiert werden. Das Ergebnis dieser Arbeit soll ein Ansatz zur Kombination einer Gefahrenanalyse auf Systemebene und einer Verifikation dieses Systems auf Implementierungsebene sein. Zu diesem Zweck wird der STPA Verifier zur automatisierten Verifikation von Sicherheitsanforderungen und Dokumentation der Ergebnisse vorgestellt.