Formale Analyse von mehrdimentsionalen Modellabhängigkeiten
Formal Analysis of Multi-Dimensional Model Dependencies
Wissenschaftsdisziplinen
Informatik (100%)
Keywords
-
Software Design,
UML Unified Modeling Language,
Tracability,
Inconsistencies,
Impact Of A Change,
Feature Location
Modelle sind unverzichtbar für die Softwareentwicklung. Sie helfen Entwicklern die Systemkomplexität einzuschränken und Stakeholdern ihre Anliegen verständlich gegenüber anderen Stakeholdern auszudrücken, um die geeignete Behandlung der Anliegen zu garantieren. Allerdings konzentriert sich die Modellierung heutzutage hauptsächlich auf den Inhalt der Modelle und nicht auf die Abhängigkeiten zu anderen Modellen, Anforderungen und Code. Letzteres ist besonders wichtig für das Verständnis von Modellen (Analyse, Auswirkungen von Änderungen, Validierung, Verifikation). Modellabhängigkeiten sind manchmal implizit in einer Modellierungssprache, werden aber oft explizit mittels Traces beschrieben. Diese Beziehungen sind semantisch einfach und genau darin liegt das Problem: Abhängigkeiten zwischen komplexen Modellen können nicht so einfach durch unabhängige Beziehungen beschrieben werden. Aufgrund dieses Mißverständnisses sind die Lücken zwischen Anforderungen, Modellen und Code größer denn je und behindern die modellgetriebene Entwicklung. Das Ziel dieser Arbeit ist es, Abhängigkeiten zwischen Modellen zu verstehen. Modell- abhängigkeiten mögen semantisch einfach sein (verglichen mit Modellen und deren Inhalt), jedoch können diese nicht beliebig festgelegt werden ohne die Bedeutung und den Inhalt der Modelle zu verletzen. Die vorgeschlagene Arbeit wird eine wohldefinierte, theoretische Grundlage zur Analyse von Modellabhängigkeiten erstellen und untersuchen: 1. wie die Bedeutung von Modellen die Modellabhängigkeiten beeinflusst 2. wie Modellabhängigkeiten andere Modellabhängigkeiten beeinflussen Da es n2 Modellabhängigkeiten zwischen n Modellen gibt, müssen n2 Dimensionen betrachtet werden. Momentan werden diese Dimensionen separat betrachtet, was sehr ineffizient ist. Hier liegt die Mächtigkeit der multidimensionalen Analyse von Modellabhängigkeiten: jede Dimension von Modellabhängigkeiten (zwischen Modellen, Anforderungen und Code) beschreibt einen Blickwinkel des Traceproblems (ein querschneidendes Problem). Durch das Integrieren dieser Modellabhängigkeiten können wir das Traceabilityproblem signifikant vereinfachen. Die direkten praktischen Auswirkungen der vorgeschlagenen Arbeit sind verbesserte Automatisierung während der Traceerfassung und -wartung sowie höhere Qualität der Traces mit weniger Benutzerinput (n statt n2 ). Der indirekte, wesentlichere Vorteil der vorgeschlagenen Arbeit ist seine fundamentale Rolle in Modellintegration und daher seine grundlegende Unterstützung der modellgetriebenen Softwareentwicklung. Nicht nur die Softwareentwicklung profitiert von unserer Arbeit - auch andere Domänen und Disziplinen, wo modellgetriebene Entwicklung praktiziert wird, profitieren.
Die Softwareentwicklung beschäftigt sich mit mehr als nur Anforderungen und Sourcecode. Entwickler erfassen routinemäßig Use Cases und Szenarien um Arbeitsprozesse zu beschreiben. Strukturelle Modelle (z.B.: Architekturen und Klassendiagramme) helfen Entwickler komplexe Arbeiten und Systeme in kleinere, überschaubarere Komponenten zu zerbrechen. State Maschinen beschreiben essenzielles Systemverhalten. In der Tat wird heute eine Vielzahl von Modellen eingesetzt um Softwaresysteme zu beschreiben. Die Verwendung von Modellen hat aber auch Probleme. Ihr größter Vorteil ist die Fähigkeit unterschiedliche Belange separat darzustellen, hat aber den Nachteil, dass es damit schwerer wird ein einheitliches, konsistentes Bild des Softwaresystems zu erarbeiten. Es ist daher wichtig mit Modellen auch deren Traceability (Nachvollziehbarkeit) zu erfassen. Traceability beschreibt wie Artefakte in unterschiedlichen Modellen zusammenhängen. Weiters ist Traceability essenziell für das Verstehen von Software, die Fähigkeit Änderungen zu propagieren, das Fehlererkennen und viele Arten der Softwareanalyse. Das Fehlen von Traceabilty ist daher ein kritisches Problem. Dieses Projekt entwickelte einen neuen Ansatz für die Erfassung und Validierung der Traceability, der mehrere Schwachstellen des aktuellen Stands der Technik beseitigt. Zum einen ist das manuelle Erfassen von Traceability fehleranfällig und unser Ansatz kann 1) fehlerhafte Traceability korrigieren oder wenn dies nicht möglich ist 2) fehlerhafte Traceability isolieren. Traceability wird oft auch nicht vollständig verstanden und unser Ansatz ist in der Lage fehlende Traceability vorzuschlagen. Des Weiteren ist die Traceability oft nicht eindeutig, weil die Entwickler die Traceability erst zu einem späteren Zeitpunkt erfassen. Bis dahin könnten Schlüsselpersonen der Softwareentwicklung die Firma bereits verlassen haben oder deren Erinnerung an Fakten könnte verschwommen sein. Hier unterstützt unser Ansatz eine Sprache für die Erfassung der Traceability, die Unsicherheiten und Unvollständigkeiten erlauben und trotzdem in der Lage ist, richtige Konsequenzen zu folgen. Als zusätzlichen Bonus hat dieses Projekt auch eine Studie durchgeführt, die den Nutzen der Traceability untersucht hat. Es muss darauf hingewiesen werden, dass es trotz der wachsenden Popularität von Traceability noch keine empirischen Auswertungen der Nützlichkeit gibt. Rechtfertigen die Vorteile der Traceability ihre Kosten? Unsere Studie untersuchte mit 71 Entwicklern die Wartungsaufgaben in zwei Softwaresystemen. Das Ergebnis zeigte, dass Entwickler mit Hilfe von Traceability durchschnittlich 24% schneller waren und 50% mehr richtige Lösungen erarbeiteten. Damit zeigt unsere Arbeit auch, dass die Traceability nicht nur Aufwand spart sondern auch die Qualität der Softwarewartung massiv verbessert.
- Universität Linz - 100%
Research Output
- 591 Zitationen
- 24 Publikationen
-
2012
Titel Managing SAT inconsistencies with HUMUS DOI 10.1145/2110147.2110157 Typ Conference Proceeding Abstract Autor Nöhrer A Seiten 83-91 Link Publikation -
2012
Titel Assessing the Effect of Requirements Traceability for Software Maintenance DOI 10.1109/icsm.2012.6405269 Typ Conference Proceeding Abstract Autor Mäder P Seiten 171-180 -
2012
Titel Exploiting Traceability Uncertainty between Architectural Models and Code DOI 10.1109/wicsa-ecsa.212.25 Typ Conference Proceeding Abstract Autor Ghabi A Seiten 171-180 -
2012
Titel Do Data Dependencies in Source Code complement Call Dependencies for Understanding Requirements Traceability? DOI 10.1109/icsm.2012.6405270 Typ Conference Proceeding Abstract Autor Kuang H Seiten 181-190 -
2012
Titel The Quest for Ubiquity: A Roadmap for Software and Systems Traceability Research DOI 10.1109/re.2012.6345841 Typ Conference Proceeding Abstract Autor Gotel O Seiten 71-80 -
2011
Titel GoPoMoSA DOI 10.1145/1987875.1987907 Typ Conference Proceeding Abstract Autor Bai X Seiten 194-198 -
2011
Titel Observations on the connectedness between requirements-to-code traces and calling relationships for trace Validation. Typ Journal Article Autor Egyed A -
2011
Titel The Grand Challenge of Traceability (v1.0) DOI 10.1007/978-1-4471-2239-5_16 Typ Book Chapter Autor Gotel O Verlag Springer Nature Seiten 343-409 -
2011
Titel Do software engineers benefit from source code navigation with traceability? - an experiment in software change Management. Typ Journal Article Autor Egyed A -
2011
Titel Observations on the Connectedness between Requirements-to-Code Traces and Calling Relationships for Trace Validation DOI 10.1109/ase.2011.6100087 Typ Conference Proceeding Abstract Autor Ghabi A Seiten 416-419 Link Publikation -
2011
Titel Do Software Engineers Benefit from Source Code Navigation with Traceability? DOI 10.1109/ase.2011.6100095 Typ Conference Proceeding Abstract Autor Mäder P Seiten 444-447 -
2011
Titel Traceability Fundamentals DOI 10.1007/978-1-4471-2239-5_1 Typ Book Chapter Autor Gotel O Verlag Springer Nature Seiten 3-22 -
2013
Titel Recovering traceability between features and code in product variants DOI 10.1145/2491627.2491630 Typ Conference Proceeding Abstract Autor Linsbauer L Seiten 131-140 -
2013
Titel Constraint-driven modeling through transformation DOI 10.1007/s10270-013-0363-3 Typ Journal Article Autor Demuth A Journal Software & Systems Modeling Seiten 573-596 -
2015
Titel DesignSpace DOI 10.1145/2695664.2695697 Typ Conference Proceeding Abstract Autor Demuth A Seiten 1486-1491 -
2015
Titel Can method data dependencies support the assessment of traceability between requirements and source code? DOI 10.1002/smr.1736 Typ Journal Article Autor Kuang H Journal Journal of Software: Evolution and Process Seiten 838-866 -
2015
Titel Exploiting traceability uncertainty among artifacts and code DOI 10.1016/j.jss.2015.06.037 Typ Journal Article Autor Ghabi A Journal Journal of Systems and Software Seiten 178-192 -
2014
Titel Recovering Feature-to-Code Mappings in Mixed-Variability Software Systems DOI 10.1109/icsme.2014.67 Typ Conference Proceeding Abstract Autor Linsbauer L Seiten 426-430 -
2014
Titel Do developers benefit from requirements traceability when evolving and maintaining a software system? DOI 10.1007/s10664-014-9314-z Typ Journal Article Autor Mäder P Journal Empirical Software Engineering Seiten 413-441 -
2013
Titel C2O configurator: a tool for guided decision-making DOI 10.1007/s10515-012-0117-4 Typ Journal Article Autor Nöhrer A Journal Automated Software Engineering Seiten 265-296 -
2012
Titel Code patterns for automatically validating requirements-to-code traces DOI 10.1145/2351676.2351705 Typ Conference Proceeding Abstract Autor Ghabi A Seiten 200-209 -
2012
Titel Code patterns for automatically validating requirements-to-code traces Typ Journal Article Autor Egyed A -
2012
Titel The quest for ubiquity: A roadmap for software and systems traceability Research. Typ Conference Proceeding Abstract Autor Gotel O -
2017
Titel Analyzing Closeness of Code Dependencies for Improving IR-Based Traceability Recovery DOI 10.1109/saner.2017.7884610 Typ Conference Proceeding Abstract Autor Kuang H Seiten 68-78