Erklärung von Defekten und Identifizierung von Abhängigkeiten in Zusammenhängenden Feature-Modellen
Autor: | Ananieva, Sofia |
---|---|
Přispěvatelé: | Schaefer, Ina, Kowal, Matthias, Thüm, Thomas |
Jazyk: | angličtina |
Rok vydání: | 2016 |
Předmět: | |
Popis: | Software-Produktlinien gelten als anerkanntes Entwicklungskonzept für variable Software in vielen industriellen Anwendungsbereichen, insbesondere im Automobilbereich. Im Zentrum von Software-Produktlinien steht die Variabilität einer Produktlinie, die eine Variantenvielfalt des Produktes durch die Modellierung auf einer hohen Abstraktionsebene ermöglicht. Jedoch ist die Modellierung von Variabilität eine nicht triviale Aufgabe, die mit der wachsenden Anzahl der Varianten komplexer und dadurch fehleranfälliger wird. Modellierungsfehler können beispielsweise dazu führen, dass Produktkonfigurationen nicht mehr möglich sind. Die Detektion von Modellierungsfehlern einer Softwareproduktlinie ist ein weit verbreitetes Forschungsfeld. Die nutzerfreundliche Erklärung von Fehlerursachen - das Thema der vorliegenden Arbeit - stellt dabei weiterhin eine Herausforderung dar und wird immer wichtiger. Im Rahmen dieser Arbeit wird ein generischer Algorithmus ausgearbeitet, um Modellierungsfehler aller Arten auf Basis der Pradikatenlogik zu erklären. Die resultierende Erklärung wird in der natürlichen Sprache nutzerfreundlich und strukturiert generiert und als Tooltip während der Modellierung angezeigt. Der Basisalgorithmus wird zusätzlich erweitert, um kürzeste Erklärungen zu finden und die Relevanz der einzelnen Teile einer Erklärung zu berechnen und visuell hervorzuheben. Weiterhin detektieren wir versteckte Abhängigkeiten in zusammenhängenden Produktlinien und verwenden den oben erwähnten generischen Algorithmus zur Erklärung dieser Abhängigkeiten. In einer qualitativen und quantitativen Analyse evaluieren wir den Algorithmus und resultierende Erklärungen anhand der vorhandenen Beispiele im Hinblick auf ihre Korrektheit, Verständlichkeit, Performance und Länge. Für versteckte Abhängigkeiten untersuchen wir zusätzlich, in welchen typischen Situationen diese Abhängigkeiten am häufigsten entstehen. Durch die Inspektion von Erklärungen können wir darüber hinaus feststellen, wie viele zusammenhängende Produktlinien in einer versteckten Abhängigkeit involviert sind. Zusammenfassend stellen wir fest, dass Erklärungen korrekt und verständlich sind und die Generierung von Erklärungen für unterschiedlich große Produktlinien skaliert. Die Generierung der Erklärung mit dem Basisalgorithmus verdoppelt dabei ungefähr die Rechenzeit der ursprünglichen Modellanalyse, während der erweiterte Algorithmus (welcher nach der kürzesten Erklärung sucht) die Rechenzeit in etwa verdreifacht. Aufällig ist, dass die erste Erklärung meistens die Kürzeste ist, andernfalls ist die kürzeste Erklärung üblicherweise um 25% - 50% kleiner. Die Erklärungslänge wächst nur geringfügig im Vergleich zu der Größe einer Produktlinie. Zum Schluss zeigen wir, dass anhand der analysierten Produktlinien bis zu fünf zusammenhängende Produktlinien zu einer versteckten Abhängigkeit führen können. Software product line engineering has proven to be a successful develop approach for variable software in different industrial applications, especially in the automotive area. The variability of a product line is at the center of software product lines engineering. By modeling variability on a high abstraction level, software product lines enable a wide variety of a product. Nevertheless, modeling variability is not a trivial task. It gets more complex with a growing number of variants and, hence, becomes more error-prone. For instance, modeling errors may result in product congurations being not possible anymore. The detection of such defects is well researched. A user friendly explanation of the defect causes - the subject of the present work - is still a challenge and is becoming increasingly important. In the scope of this thesis, we elaborate a generic algorithm which is able to generate explanations for any kind of modeling defects based on predicate logic. A resulting explanation is generated in a user-friendly and structural manner and displayed within a tool tip during the modeling phase. Additionally, the basic algorithm is improved to find the shortest explanation und to compute and visualize relevant parts of the explanation. Furthermore, we detect hidden dependencies among interrelated product lines and apply the generic explanation algorithm mentioned above to explain such dependencies. In a quantitative and qualitative analysis, we evaluate the explanation algorithm and resulting explanations concerning their correctness, understandability, performance impact and length using existing examples. For hidden dependencies, we additionally inspect situations in which such dependencies occur most often. By analyzing respective explanations, we can furthermore determine the number of involved product lines in a hidden dependency. To summarize the results, we demonstrate the correctness and understandability of explanations and show the scalability of the explanation algorithm for different sizes of product lines. Generating a first explanation approximately doubles the computational time of the former model analysis while the improved algorithm (which searches for a shortest explanation) approximately triples the computational time. It is notable that the first explanation is most often already the shortest one, otherwise it is usually shorter by 25% - 50%. Explanation length slightly increases compared to the size of a product line. Finally, we observe that up to five interrelated feature models may lead to a hidden dependency based on the evaluated product lines. |
Databáze: | OpenAIRE |
Externí odkaz: |