TU München - Fakultät für
Es sprechen Studenten über ihre abgeschlossenen Diplomarbeiten und Systementwicklungsprojekte.
Am Dienstag, 25.07.17, ab 13:00 Uhr, im Raum 02.11.018:
A Description Language for Structural Smells
In this thesis, we collect different kinds of structural rules that are defined in guides for writing requirements and infer structural requirements smells from them. These can be used to detect structural defects within requirement artifacts. We develop a DSL to configure an automated analysis of requirements artifacts that detects structural defects. With the DSL, the user can define the structure an artifact should conform to and how the author should be warned about potential quality defects in his requirements documentation. In addition, we take rules from existing requirements authoring guides and evaluate to which extent they can be described by our DSL.
Semi-automatische Testableitung durch Kombination von formalisierten Anforderungen und Geschäftsprozessen
Um die Korrektheit einer Software sicherzustellen, wird diese mithilfe Testfällen getestet. Ein Problem besteht daran, die Testfälle derart zu wählen, sodass diese die Software möglichst gut abdecken. Eine Möglichkeit besteht darin, Testfälle direkt aus Anforderungen zu generieren. Auf diese Weise wird sichergestellt, dass alle Wünsche des Kunden erfüllt sind. Allerdings existieren in der Praxis häufig nur grob formulierte Abläufe mit einigen sehr spezifischen Nebenbedingungen. Aufgabe dieser Masterarbeit ist es daraus möglichst automatisiert Testfälle zu generieren.
Analysis of the Application of Conditional Compilation in Software Systems
The preprocessor CPP is a widely used tool to introduce variability and configuration options into systems. Even though it is already around for over 40 years, its usage has not decreased, quite the opposite. But despite all its merits it also has considerable downsides, especially concerning the readability and maintainability of code, in which it is used. Excessive usage and nested implementation can make source code confusing and may facilitate the introduction of faults. In order to combat problems like these the concept of discipline of preprocessor annotations has been introduced. Discipline is a principle that groups conditional inclusion code into the two categories disciplined and undisciplined. The analysis of the use of preprocessor annotations and their discipline is a subject of many research papers, but the development of the discipline and related metrics over the complete version-control history of a project has not been studied so far. In our work we analyze the discipline of preprocessor annotations of 20 open source projects, with a particular emphasis on the development of that discipline over their version-control histories. The presentation and discussion of the result contain the distribution of undisciplined preprocessor annotations over the files, the correlation between the nesting depth of conditional preprocessor statements and a lack of discipline, as well as emerging patterns of undisciplined preprocessor annotations on a snapshot of a project and its history.
Comprehensive maintainability analysis of configuration languages
This thesis is about the comprehensive maintainability analysis of configuration languages with the intention to determine a method, which minimizes the need for adjustments regarding single for languages. In the course of this thesis selected configuration languages were representatively compared and due to their similarities analysis criteria were defined. The implemented analysis was evaluated and has demonstrated, that the chosen approach based on simplifying the parsers and unifying on the internal representation is functioning.