Zu diesem lizenzpflichtigen Artikel gibt es eine Open Access Version, die kostenlos und ohne Lizenzbeschränkung gelesen werden kann. Die Open Access Version kann inhaltlich von der lizenzpflichtigen Version abweichen.
Preisinformation
Bitte wählen Sie ihr Lieferland und ihre Kundengruppe
Die Architektur von Softwaresystemen entscheidet vielfach über grundlegende Qualitätsattribute wie Modifizierbarkeit, Erweiterbarkeit, Sicherheit und Testbarkeit der Software. In existierenden, zum Teil über längere Zeit gewachsenen Systemen bilden die Softwarearchitekturen jedoch oft eine entscheidende Schwachstelle. Für Anwender und Softwareentwickler ist es dann wichtig, den Ist-Zustand der Softwarearchitektur zu kennen, um daraus notwendige Maßnahmen abzuleiten: Hilft Reengineering weiter oder ist eine Neuentwicklung der Software unumgänglich? Gegenstand dieser Arbeit ist ein rationaler und wiederholbarer Prozess zur Wiedergewinnung und Bewertung existierender Softwarearchitekturen. Dieser Prozess besteht aus fünf Teilaktivitäten, in denen die Software zunächst erfasst und Anforderungen ermittelt werden. Anhand dieser Informationen wird eine ideale Architektur bestimmt, die reale Architektur wird beschrieben und beide Architekturen werden miteinander verglichen. Die Architekturbeschreibungen basieren auf dem Formalismus der Relation Partition Algebra, wodurch eine theoretische Fundierung des Ansatzes vorliegt. Darauf aufbauend, und um den Prozess auch für komplexere Softwaresysteme praktikabel zu machen, wurde ein Werkzeug implementiert, das den Prozess als Ganzes unterstützt. Der Entwurf von Softwarearchitekturen erfordert Erfahrung und einen tiefen Einblick in den Gegenstandsbereich. Unterschiedliche Softwareklassen führen zu sehr verschiedenen Architekturen, wodurch das Ziel, eine universelle Vorlage für ideale Architekturen zu definieren, unerreichbar wird. Die vorliegende Arbeit konzentriert sich daher auf die wichtige Klasse der hardwaresteuernden Softwaresysteme und bestimmt typische Änderungsszenarien sowie typische Softwarekategorien für diese Softwareklasse. Darüber hinaus werden nicht-triviale Fallstudien für hardwaresteuernde Softwaresysteme in die Untersuchungen einbezogen.
In many cases the architecture of a software system is a decisive factor on basic quality attributes like modifiability, extendibility, safety and testability of the software. However, in existing and long-term grown systems it is often the software architecture that forms a main weak point. In such cases it is important to the users and developers of the software to know the current state of the software architecture. This knowledge is necessary to decide on the next measures: Does reengineering help or is developing the software new the only way? In this thesis a rational and repeatable process is presented to recover and evaluate existing software architectures. This process comprises five main activities: At the beginning existing software documents are collected and requirements are retrieved. From this information an ideal architecture is derived, the real architecture is described and both are compared to each other. Throughout this process a formal method is used, called Relation Partition Algebra (RPA) as the theoretical foundation for describing software architectures. Based RPA and to make the process feasible for complex software systems a software tool is developed which supports the process as a whole. Designing software architectures requires experience and profound domain knowledge. Different software classes lead to very different software architectures. It is impossible to define one universal template for ideal architectures for all kinds of Software. That is why this thesis focuses on one important software class called hardware-controlling software. For this software class usual change scenarios and characteristic software categories are determined. In addition to that nontrivial case studies of hardware-controlling software systems are included into the research.