2 research outputs found

    Parametrisierung der Spezifikation von Qualitätsannotationen in Software-Architekturmodellen

    Get PDF
    Um qualitativ hochwertige Softwaresysteme zu entwickeln, muss in einem Softwareentwicklungsprozess eine Vielzahl von Qualitätsattributen berücksichtigt werden. Je höher die Komplexität von Softwaresystemen wird, desto wichtiger wird es, die zu erwartende Qualität im Vorfeld zu beurteilen. Jedoch existiert eine Reihe von Qualitätsattributen für Softwaresysteme, welche erst aus den strukturellen Eigenschaften der Softwarekomponenten in diesem Softwaresystem bestimmt werden können. Diese Qualitätsattribute werden in strukturierten und formalisierten Entscheidungsunterstützungsprozessen zur Optimierung der Softwarearchitektur oft nicht genutzt. Einer der Gründe dafür ist, dass dieses Wissen um die Qualitätsattribute einer Softwarekomponente in der Regel nur mit diesen Softwarekomponenten verknüpft ist und nicht mit den strukturellen Eigenschaften eines komponentenbasierten Softwaresystems. So bleibt ein Großteil dieses Wissens unberücksichtigt und kann daher nicht für Kompromissentscheidungen in automatisierten Softwarearchitektur-Optimierungsansätzen genutzt werden. In dieser Masterarbeit wird ein Rahmenwerk definiert, um Regeln zu spezifizieren zum Transformieren der Qualitätsattribute einer Softwarekomponente in Relation zu ihren strukturellen Eigenschaften in ihrem komponentenbasierten Softwaresystem. Mit diesem Ansatz kann architekturdefiniertes Wissen in Abhängigkeit der Systemarchitektur parametrisiert werden. Hierdurch können die Qualitätsattribute einer Softwarekomponente, welche erst aus den spezifischen Eigenschaften einer konkreten Softwarearchitektur abgeleitet werden können, spezifiziert und so auch ausgewertet werden. Durch diese verbesserten Auswertungen von strukturellen Eigenschaften sollen die Werkzeuge für Softwarearchitekten verbessert werden, sodass diese bessere Entscheidungen in einem Softwareentwicklungsprozess treffen können. Für die Validierung des Ansatzes werden zwei voneinander unabhängige Fallstudien durchgeführt, um dessen Anwendbarkeit und Nutzen zu zeigen. Zu diesem Zweck wird der Ansatz dieser Masterarbeit sowohl auf eine wissenschaftliche Fallstudie angewandt wie auch auf ein Beispiel, welches sich auf ein reales Industriesystem bezieht. Hiermit wird gezeigt, wie der Ansatz helfen kann, Kompromissentscheidungen über die Softwarearchitektur zwischen mehreren Qualitätsmerkmalen unter der Berücksichtigung der strukturellen Eigenschaften des Softwaresystems zu treffen

    Quality-driven Reuse of Model-based Software Architecture Elements

    Get PDF
    In modernen Software-Entwicklungsprozessen werden, insbesondere zur Implementierung von Standardfunktionalitäten, immer häufiger bestehende Komponenten oder Bibliotheken wiederverwendet. So müssen Funktionalitäten, die breite Anwendung in unterschiedlichen Systemen finden können, nicht für jede Verwendung von Grund auf neuentwickelt werden. Wiederverwendung von Funktionalitäten durch Software-Komponenten oder gar von komplexen Teilsystemen, den Subsystemen, die höherwertige Funktionalitäten, die Features, anbieten, führt so zu kosteneffizienterer Entwicklung und qualitativ hochwertigerer Software. Durch eine Vielzahl ähnlicher Lösungen für die gleiche Standardfunktionalität stehen Software-Architekten allerdings häufig vor der Frage, welche Lösungen sie auswählen sollten und wie deren Konfiguration in der Zielarchitektur optimal zu den Anforderungen an das Software-System passen. Subsysteme bieten häufig eine Vielzahl an Features an, die zu unklaren Effekten auf die Qualitätsattribute der Software-Architektur, wie z.B. auf die Performance, führt. Insbesondere zur Entwurfszeit oder wenn Software-Systeme um Funktionalität erweitert werden soll ist unklar, ob durch die Verwendung eines bestimmten Features eines bestimmten Subsystems die Qualitätsanforderungen an das Gesamtsystem haltbar sind. Neue Qualitätsanforderungen werden zumeist durch Funktionen operationalisiert. Operationalisierte Qualitätsanforderungen haben meist zum Ziel eine oder mehrere Qualitätsattribute, wie z.B. Sicherheit oder Bedienbarkeit, zu verbessern. Gerade diese Qualitätsattribute stehen jedoch häufig gegenseitig oder mit anderen Qualitätsattributen, wie z.B. Performance, in Konflikt oder beeinflussen sich gegenseitig. Gleichzeitig sind diese allerdings schwierig quantifizierbar, weil Funktionen zur quantitativen Evaluation dieser Qualitätsattribute häufig nicht ausreichend wissenschaftlich erforscht sind, wie beispielsweise für das Qualitätsattribut Sicherheit. Die Evaluation selbst kann auch einen zu großen zeitlichen und finanziellen Aufwand erfordern, wie dies beispielsweise bei Nutzerstudien zur Evaluation der Bedienbarkeit der Fall wäre. In der Praxis werden entsprechend schwierig quantifizierbare Qualitätsanforderungen nicht oder nur unzureichend systematisch in der Planung des Software-Systems berücksichtigt. Zur Analyse von Entwurfsalternativen können Software-Modelle genutzt werden, um möglichst früh im Software-Entwicklungs\-prozess die zu erwartende Qualität zu analysieren und zu evaluieren. Möchten Software-Architekten die Auswirkungen auf die Qualitätsattribute ihrer Software-Architektur durch die Verwendung von Features realisiert durch komplexe Subsysteme evaluieren, müssen, durch eine Vielzahl an Kombinationen und Konfigurationen, schnell sehr viele Architekturkandidaten evaluiert werden. In der Praxis können, durch natürlich gegebene Freiheitsgrade komponentenbasierter Software-Architekturen, schnell mehrere tausend Architekturkandidaten entstehen. Eine einzelne und manuelle Evaluation einer solch großen Anzahl an Kandidaten ist durch die damit entstehenden Zeit- und somit Kostenaufwände meist nicht möglich. Neben einer Vielzahl an zu evaluierenden Architekturkandidaten können, aufgrund fehlender quantitativer Evaluationsfunktionen, viele Qualitätsattribute nicht in bestehenden automatischen Entscheidungsunterstützungsverfahren berücksichtigt werden. Dadurch zeichnet sich entsprechend ein unvollständiges Bild bei der Suche nach den optimalen Architekturkandidaten. Der in dieser Dissertation vorgestellte Ansatz CompARE ermöglicht Software-Architekten, Effekte auf die Qualitätsattribute einer Software-Architektur, die durch die Verwendung von Features entstehen, automatisch zu evaluieren. Auch die Optimierung von Qualitätsanforderungen ohne quantitative Evaluationsfunktion wird unterstützt, indem bestehendes informell vorliegendes Wissen über Architekturentscheidungen modelliert und dadurch zusammen mit bestehenden quantitativen Evaluationsfunktionen optimiert wird. Das Ergebnis soll Software-Architekten dabei unterstützen, zu entscheiden, i) inwiefern die Verwendung von bestimmten Features auf Qualitätsattribute Auswirkungen hat und welche Wechselwirkungen untereinander zu erwarten sind, ii) welches der möglichen Subsysteme und seiner Konfiguration die beste Wahl darstellt und iii) ob die gegebenen technischen Umsetzungen mit den Projektanforderungen vereinbart werden können. Daraus ergeben sich folgende Beiträge der Arbeit: Zunächst wird eine Vorstudie vorgestellt, die den Aufwand der Erstellung von quantitativen Evaluationsfunktionen, am Beispiel des Qualitätsattributs Sicherheit in komponentenbasierten Software-Architekturen, zeigt. Die Modellierung von wiederverwendbaren Subsystemen zur Verwendung in automatischen Entscheidungsunterstützungsprozessen stellt den ersten Beitrag des CompARE Ansatzes dar. Es wird ein Meta-Modell entworfen, das die Modellierung von Subsystemen zur einfachen Wiederverwendung unterstützt und dadurch zur automatischen Modellintegration verwendbar macht. Die automatische Modellintegration von Teilmodellen ist der nächste Beitrag der Arbeit. Hierbei werden Teilmodelle automatisch integriert, so dass diese automatisch evaluiert und optimiert werden können. Durch diese Methode können Software-Architekten Features mit vergleichsweise geringem Modellierungsaufwand automatisiert in die Zielarchitektur einbauen. Schließlich zeigt die Arbeit wie informelles Wissen modelliert werden kann, um es gemeinsam mit quantitativen Funktionen zur Bestimmung von Qualitätseigenschaften zu analysieren und zu evaluieren. Die Evaluation wird anhand zweier Klassen von Subsystemen mit jeweils zwei unterschiedlich modellierten Lösungen durchgeführt. Jede Lösung bietet verschiedene Features. Dabei hält jede Lösung seine eigene Software-Architektur und beeinflusst dadurch individuell die Qualitätsattribute der Zielarchitektur, in der das Subsystem zum Einsatz gebracht werden wird. Die Wiederverwendung der Subsysteme und die aus dem vorgestellten Ansatz resultierende Architekturoptimierung wird anhand dreier Zielsysteme durchgeführt. Bei diesen Zielsystemen handelt es sich um zwei Realweltsysteme, die in der Industrie zur Anwendung kommen und um eine Community Fallstudie, die in der Community der komponentenbasierten Software-Architekturmodellierung als repräsentativ gilt. Anhand dieser Systeme werden insgesamt 11 Szenarien durchgeführt, die die Analyse relevanter Fragestellungen zu den Themen Software-Architekturentwurf, Entscheidungen mit Bezug auf Software-Qualitätsattribute und Software-Anforderungspriorisierung durch einen strukturierten Prozess analysierbar machen. Dabei wird die Anwendbarkeit und der Nutzen von CompARE gezeigt und die aus den Ergebnissen ableitbaren Schlussfolgerungen diskutiert
    corecore