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 "tba" TBA:
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.
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.