20 research outputs found
Architekturbezogene Qualitätsmerkmale für die Softwarewartung : Entwurf eines Quellcode basierten Qualitätsmodells [überarb. Ausg.]
Teßmer M. Architekturbezogene Qualitätsmerkmale für die Softwarewartung : Entwurf eines Quellcode basierten Qualitätsmodells [überarb. Ausg.]. Bielefeld: Universität Bielefeld; 2012
A trustworthy architecture for sharing user-generated content on the web
Die Dynamik des Social Webs motiviert zum Teilen nutzergenerierter Inhalte. Diese entstehen in zahlreichen Social Networks meist unter Missachtung der Schutzziele der IT-Sicherheit: Vertraulichkeit, Verfügbarkeit und Integrität von Nutzerdaten. Betreiber von Web-Anwendungen können Inhalte ihrer Nutzer einsehen, fälschen, löschen oder zu unbekannten Zwecken auswerten und verfügen über Wissen über Kommunikationspartner und -verhalten - ohne, dass sich Benutzer wirksam davor absichern könnten. Von dem im Grundgesetz verankerten Recht auf Privatsphäre ausgehend soll im Rahmen dieser Ausarbeitung eine neuartige Architektur zum Teilen nutzergenerierter Inhalte im Web entwickelt werden, die Benutzeranforderungen an die Erfüllung der Schutzziele der IT-Sicherheit vollständig gewährleistet und darüber hinaus durch eine bewusste Kommunikation dieser Qualität als vertrauenswürdig aufgefasst werden kann. In einem Goal-directed Design-Prozess wird eine Architekturskizze entwickelt, welche die im Prozess erarbeiteten Benutzeranforderungen durch die Bereitstellung zweier Web-Services erfüllt: Der Signed Content Storage adressiert als zuverlässiger und durch den Urheber autorisierter Web-Speicherort signierter, nutzergenerierter Inhalte die Schutzziele Verfügbarkeit und Integrität. In Kombination mit dem Identity Provider, der gesicherte Informationen von Urheber und Teilhabern zur Verfügung stellt, ist ein vertrauliches Teilen von Inhalten im Web möglich. Vertrauenswürdigkeit gewinnt diese Architektur durch konsequente Transparenz, Selbstbeschreibungsfähigkeit, externe Bewertbarkeit und der Dokumentationsfähigkeit von Nutzungserfahrungen
Evolution und Komposition von Softwaresystemen: Software-Produktlinien als Beitrag zu Flexibilität und Langlebigkeit
Software systems are today bigger, more complex and of higher importance for
products and services than a decade before. At the same time changes are
required many more frequently and of a larger size. Furthermore, they have to
be implemented faster. Additionally, the software must achieve a higher life
span, particularly because of the cost of its development. In the past,
Object-Oriented Programming and Reuse techniques did not provide the expected
success. The introduction of software product lines respectively system
families makes possible it to reach a degree of prefabrication similar to the
one of serial production. At the same time they facilitate the delivery of
product variants with a short time to market.
In this work methods of the methods of domain analysis are integrated with
Reuse approaches and techniques of Generative Programming, and a methodology
for product line development is presented. Feature models are used as means
expressing variability and product configurations, so that the prefabrication
be planned and the production of customer-specific products can be
controlled. By enforcing the formalization in terms of syntax and semantics,
feature models are made accessible to tools and automation. Object-oriented
design models and architecture are separated into fine-granular components in
such a way that new products can easily be developed as combinations of those
components. The implementation of such products is automated by the
composition of source code components. The composition of object models
separated similarly enables a uninterrupted automation for the product
development, which is controlled by a customer by means of a feature
selection. To facilitate such a composition, the Hyperspace approach is
applied to UML to Hyper/UML, which makes possible a feature-driven separation
and composition of object models. In this way slim products can be developed,
containing only the actually needed functionality. For the evolution of
product lines and for the integration of existing solutions and components
into the evolution, Reverse Engineering and Refactoring techniques are
integrated. Requirements, models and implementation are connected by
Traceability links to perform changes consistently. As a consequence, the
loss of architectural quality - so-called Architectural Decay - can be
avoided during the iterative development process. Measures for the
improvement of the project and quality management are regarded briefly, as
far as they are of importance for the effectiveness of the developed methods.
The applicability and suitability of the results of the work were examined in
several industrial projects.Softwaresysteme sind heute umfangreicher, komplexer und von entscheidenderer Bedeutung für Produkte und Dienstleistungen als eine Dekade zuvor. Gleichzeitig sind Änderungen viel häufiger und in größerem Umfang erforderlich. Sie müssen auch schneller realisierbar sein. Zudem muss die Software eine höhere Lebensdauer erreichen, vor allem wegen des Aufwandes zu ihrer Entwicklung. Objektorientierte Programmierung und Wiederverwendungstechniken haben dabei nicht den erwarteten Erfolg gebracht. Die Einführung von Software-Produktlinien beziehungsweise Systemfamilien ermöglichen es, einen der Serienfertigung ähnlichen Vorfertigungsgrad zu erreichen und erlauben es gleichzeitig, kurzfristig Produktvarianten zu erstellen.
In dieser Arbeit werden Methoden der Domänenanalyse mit Wiederverwendungsansätzen und Generativen Programmiertechniken verknüpft und eine Methodik zur Produktlinien-Entwicklung vorgestellt. Featuremodelle werden als Ausdrucksmittel für Variabilität und Produktkonfigurationen eingesetzt, damit die Vorfertigung geplant und die Erstellung von kundenspezifischen Produkten gesteuert werden kann. Durch Präzisierung ihrer Syntax und Erweiterung ihrer Semantik werden Featuremodelle einer Nutzung in Werkzeugen zugänglich gemacht. Objektorientierte Entwurfsmodelle und Architektur werden so in feingranulare Komponenten zerlegt, dass Varianten als neue Produkte mit geringem Aufwand erstellbar sind. Die Erstellung der Implementierung solcher Produkte wird durch die Komposition von Quelltext-Komponenten automatisiert. Die Komposition von ebenfalls zerlegten Objektmodellen ermöglicht eine durchgehende Automatisierung der Produkterstellung, die durch einen Kunden mittels der Feature-Auswahl gesteuert wird. Dafür wird mit Hyper/UML eine Umsetzung des Hyperspace-Ansatzes auf die Modellierungssprache UML entwickelt, die eine Feature-gesteuerte Zerlegung und Komposition von Objektmodellen ermöglicht. Damit lassen sich schlanke Produkte entwickeln, die nur die tatsächlich benötigte Funktionalität enthalten. Zur Evolution von Produktlinien und zur Einbindung existierender Lösungen und Komponenten in die Evolution werden Reverse-Engineering- und Refactoring-Techniken integriert. Anforderungen, Modelle und Implementierung werden durch Traceability-Links verbunden, damit Änderungen konsistent durchgeführt werden können. Diese Mittel tragen dazu bei, dass während einer iterativen Entwicklung der Verlust an Architektur-Qualität, das sogenannte Architectural Decay, vermieden werden kann. Maßnahmen zur Verbesserung des Projekt- und Qualitätsmanagements werden kurz betrachtet, soweit sie wichtige Randbedingungen für die Wirksamkeit der Methoden schaffen müssen. Die Anwendbarkeit und Eignung der Ergebnisse der Arbeiten wurde in mehreren industriellen Projekten überprüft.Ilmenau, Techn. Univ., Habil.-Schr., 200
Automatische Kompatibilitätsprüfung Framework-basierter Anwendungen
Software-Frameworks als erweiterbare Software-Architekturbausteine bieten besondere Vorteile. Sie erlauben sowohl die Wiederverwendung der Funktionalität als auch der durch das Framework vorgegebenen Software-Architektur. Beispiele sind Frameworks für Benutzungsoberflächen oder für die Anbindung von Datenbanken. Durch Implementierung anwendungsspezifischer Erweiterungen wird ein Framework für den konkreten Anwendungsfall angepasst. Eine Anwendung, deren Software-Architektur ein Framework einsetzt, benutzt das Framework über dessen Erweiterungspunkte.Im Laufe der Evolution einer solchen Anwendung entsteht häufig die Situation, dass das Framework durch eine neuere Version aktualisiert werden soll. Die Aktualisierung enthält das Risiko, dass Inkompatibilitäten zwischen bestehender Anwendung und neuer Framework-Version auftreten, die wiederum zu aufwendigen Anpassungen führen. Daher müssen mögliche Inkompatibilitäten vor der Aktualisierung erkannt und bewertet werden. Nach aktuellem Stand der Technik ist dies nicht möglich, so dass es in der industriellen Praxis zu unvorhergesehenen Problemen verbunden mit hohen Kosten kommt.Wir stellen ein Verfahren zur automatischen Kompatibilitätsanalyse Framework-basierter Anwendungen vor, mit dem das beschriebene Problem gelöst wird. Durch eine Kombination aus Codeanalyse und neuartiger Framework-Beschreibung lassen sich mögliche Inkompatibilitäten vor Durchführung der Aktualisierung automatisch berechnen. Eine prototypische Implementierung des Verfahrens im Werkzeug »Companian« demonstriert die praktische Einsetzbarkeit unseres Verfahrens.Software frameworks as extensible building blocks have several advantages. They admit to reuse the framework's functionality and its software architecture. Examples are user interface or database connectivity frameworks. A framework is customized by implementing application specific extensions. An application uses a framework through its extension points.During the evolution of such an application the situation arises where the framework has to be updated to a newer version. An update contains the risk of incompatibilities between the existing application and the new framework version. This may result in high efforts for required adjustments. Thus, possible incompatibilities have to be recognized and evaluated before an update is performed. This is not possible in accordance with the current state-of-the-art and results in unforeseen problems accompanied by high consequential costs.We propose a process for an automatic compatibility analysis of framework-based applications that solves the problem. Combining code analysis and a novel framework description our process detects possible incompatibilities before an update is performed. A prototypical implementation in the »Companian« tool demonstrates the practical feasibility of our process.Tag der Verteidigung: 20.12.2012Paderborn, Univ., Diss., 201
Co-Konfiguration von Hardware- und Systemsoftware-Produktlinien
Hardwarearchitekturen im Kontext von Eingebetteten Systemen werden immer komplexer und bewegen sich zukünftig immer häufiger in Richtung von Multi- oder Manycore-Systemen. Damit diese Systeme ihre optimale Leistungsfähigkeit – für die oftmals speziellen Aufgaben im Kontext von Eingebetteten Systemen – ausspielen können, beschäftigen sich ganze Forschungszweige mit der anwendungsspezifischen Maßschneiderung dieser Systeme. Insbesondere die Popularität von Hardwarebeschreibungssprachen trägt dazu ihren Teil bei. Jedoch ist die Entwicklung von solchen Systemen, selbst bei der Verwendung von Hardwarebeschreibungssprachen und der damit verbundenen höheren Abstraktionsebene, aufwendig und fehleranfällig.
Die Verwendung von Hardwarebeschreibungssprachen lässt allerdings die Grenze zwischen Hard- und Software verschwimmen, denn Hardware kann nun – ähnlich wie auch Software – in textueller Form beschrieben werden. Dies eröffnet Möglichkeiten zur Übertragung von Konzepten aus der Software- auf die Hardwareentwicklung. Ein Konzept um der wachsenden Komplexität im Bereich der Softwareentwicklung zu begegnen, ist die organisierte Wiederverwendung von Komponenten, wie sie in der Produktlinienentwicklung zum Einsatz kommt. Inwieweit sich Produktlinienkonzepte auf Hardwarearchitekturen übertragen lassen und wie Hardware-Produktlinien entworfen werden können, soll in dieser Arbeit detailliert untersucht werden. Die Vorteile der Produktlinientechniken, wie die Möglichkeit zur Wiederverwendung von erprobten und zuverlässigen Komponenten, könnten so auch für Hardwarearchitekturen genutzt werden, um die Entwicklungskomplexität zu reduzieren und so mit erheblich geringerem Aufwand spezifische Hardwarearchitekturen entwickeln zu können. Zudem kann durch die gemeinsame Codebasis einer Produktlinie eine schnellere Markteinführungszeit unter geringeren Entwicklungskosten realisiert werden.
Auf Basis dieser neuen Konzepte beschäftigt sich diese Arbeit zudem mit der Fragestellung, wie zukünftig solche parallelen Systeme programmiert und automatisiert optimiert werden können, um den Entwickler von der Anwendung über die Systemsoftware bis hin zur Hardware mit einer automatisierten Werkzeugkette bei der Umsetzung zu unterstützen. Im Fokus stehen dabei die in dieser Arbeit entworfenen Techniken zur durchgängigen Konfigurierung von Hardware und Systemsoftware. Diese Techniken beruhen im Wesentlichen auf den Programmierschnittstellen zwischen den Schichten, deren Zugriffsmuster sich statisch analysieren lassen. Die so gewonnenen Konfigurationsinformationen lassen sich dann zur automatisierten Maßschneiderung der Systemsoftware- und Hardware-Produktlinie für ein spezifisches Anwendungsszenario nutzen.
Die anwendungsspezifische Optimierung der Systeme wird in dieser Arbeit mittels einer Entwurfsraumexploration durchgeführt. Der Fokus der Entwurfsraumexploration liegt allerdings nicht allein auf der Hardwarearchitektur, sondern umfasst ebenso die Softwareebene. Denn neben der Maßschneiderung der Systemsoftware, wird auch die auf einer parallelen Programmierschnittstelle aufsetzende Anwendung innerhalb der Entwurfsraumexploration automatisch skaliert, um die Leistungsfähigkeit von Manycore-Systemen ausschöpfen zu können
Analyse von Entwurfsentscheidungen in natürlichsprachiger Softwarearchitekturdokumentation
Entwurfsentscheidungen bilden das Fundament zur Entwicklung qualitativ hochwertiger Softwaresysteme. Ihre Extraktion aus und Klassifikation in natürlichsprachiger Softwaredokumentation ermöglichen die Informationsgewinnung für Implementierungsund Wartungsprozesse und die Erstellung konsistenter Dokumentationsartefakte. Das in dieser Arbeit entwickelte Klassifikationsschema für Entwurfsentscheidungen erweitert bestehende Ansätze, die zwar in der Lage sind, Entwurfsentscheidungen in ihrer Breite zu klassifizieren, jedoch keine klar umrissenen Klassen für die Klassifikation in der hierarchischen Tiefe festlegen. Die hier entwickelten Klassen versuchen, die verschiedenen Arten von Entwurfsentscheidungen vollständig abzubilden. Die dazwischenliegenden, feingranulareren Trennlinien dienen dazu, die Entwurfsentscheidungen deutlicher voneinander abzugrenzen. Nachdem zunächst ein initiales Klassifikationsschema entworfen wird, wird in einem iterativen Prozess die Passform des Klassifikationsschemas durch die Anwendung auf die reale Softwarearchitekturdokumentation von 17 Fallstudien validiert und verbessert, bis hin zur Konvergenz auf ein ausgereiftes Schema. Neben einer Übersicht, welche Entwurfsentscheidungen getroffen und dokumentiert werden, liefert die manuelle Analyse der Fallstudien einen mit Labeln versehenen Textkorpus. In einem zweiten Teil wird eine Anwendungsmöglichkeit des entwickelten Klassifikationsschemas eröffnet, indem in einer Proof-of-Concept-Implementierung untersucht wird, mit welchen Ansätzen des maschinellen Lernens und der natürlichen Sprachverarbeitung Entwurfsentscheidungen in natürlichsprachiger Softwarearchitekturdokumentation identifiziert und klassifiziert werden können. Durch die Evaluation mit statistischen Maßen wird gezeigt, welche Methoden zur Textvorverarbeitung, zur Überführung in Vektorrepräsentationen und welche Lernalgorithmen besonders für diese Klassifikation geeignet sind. Die automatisierte Rückgewinnung von Entwurfsentscheidungen aus der Dokumentation und gleichzeitige Zuordnung zu Kategorien mit gemeinsamen Eigenschaften erleichtert Aspekte im Softwareentwicklungsprozess wie Verständlichkeit, Konsistenz und Wartbarkeit
Integrierte modell- und simulationsbasierte Entwicklung zur dynamischen Bewertung automobiler Elektrik/Elektronik-Architekturen
Die Automobilbranche befindet sich seit einigen Jahren im Wandel. Trends wie autonomes Fahren, Konnektivität, smarte Mobilität sowie die Elektrifizierung führen zu einer drastischen Erhöhung der Fahrzeugkomplexität. Diese Komplexität muss durch die zugrunde liegende Elektrik/Elektronik-Architektur (E/E-Architektur) beherrscht werden und ruft unmittelbare neue Herausforderungen an den Entwicklungsprozess hervor.
Design-Entscheidungen der E/E-Architektur haben maßgeblichen Einfluss auf das Verhalten von Fahrzeugfunktionen und umgekehrt. Daher müssen sie möglichst frühzeitig analysiert und evaluiert werden, um kostspielige Fehlerkorrekturen in späten Entwicklungsphasen zu minimieren. Eine frühzeitige Einbindung von Simulationsmethoden ist dabei zentral. Die modellbasierte Architekturentwicklung und Simulation sind jedoch weitestgehend getrennt voneinander laufende Prozesse. Dies erschwert eine effiziente Analyse sowie Bewertung der bidirektionalen Abhängigkeiten zwischen Architektur und Verhalten.
Um diese Schwächen zu adressieren, wird in dieser Arbeit eine integrierte Methodik zur modell- und simulationsbasierten Entwicklung von E/E-Architekturen vorgestellt, die sich in drei Teile gliedert. Es werden zunächst neue Methoden zur architekturzentrierten Verhaltensmodellierung eingeführt. Eine nachfolgende Synthese generiert daraus ein Simulationsmodell, welches automatisiert mehrere Abstraktionsebenen der E/E-Architektur miteinander verknüpft und so zu einer ganzheitlichen Betrachtung beiträgt. Mithilfe des integrierten Ansatzes wird zusätzlich ein Konzept entwickelt, das es gestattet, mehrere Architekturvarianten automatisiert bzgl. statischen und dynamischen Metriken gegenüberzustellen. Die Konzepte werden in das in der Automobilindustrie etablierte E/E-Architekturwerkzeug PREEvision® integriert, umgesetzt und anhand mehrerer Anwendungsfälle evaluiert
Normen und Standards für die digitale Transformation: Werkzeuge, Praxisbeispiele und Entscheidungshilfen für innovative Unternehmen, Normungsorganisationen und politische Entscheidungsträger
Norms and standards are indispensable for the success of the economy’s digital transformation, even as their applications become more and more complex. This book sheds light on relevant findings from standards research, participation in standardization consortia, certification, and other important aspects and condenses them into specific recommendations
Ontologie-gestützte Optimierung des Entwurfs automobilelektronischer Systeme
Die zu beherrschende Komplexität bei der Entwicklung automobilelektronischer
Systeme unterliegt einem stetigen Wachstum und ist nicht zuletzt aus diesem
Grund mit mehreren ingenieurtechnischen Herausforderungen verbunden. Etablierte
Ansätze wie die des Systems Engineering bieten Möglichkeiten, solch komplexe
Systeme zu entwerfen und schließlich zu realisieren. Vordringliches Problem in
diesem Zusammenhang ist jedoch, dass Engineering-Daten primär in über unterschiedliche
Arbeitsplatzsysteme verstreuten Dokumenten abgelegt sind und dass
diese nur unzureichend verwaltet werden. Einen Ausweg aus dieser Misere stellt
die Abbildung dieser Daten auf Modelle dar. So gilt das Modell-basierte Systems
Engineering derweil in der Automobil- und Luftfahrtindustrie als akzeptierter
Weg, komplexe Systeme zu realisieren, auch wenn nicht alle Disziplinen dabei
kontinuierlich gekoppelt sind. Nicht nur für diese Kopplung, sondern auch für das
automatische Schlussfolgern benötigen Modelle zusätzliche, explizite Semantik. Automatisches
Schlussfolgern ist beispielsweise für die Identifikation von Korrelationen
zwischen Systems Engineering-Daten erforderlich. Für die Schaffung semantischer
Interoperabilität eignen sich insbesondere Ontologien, die selbst auch Modelle sind.
In dieser Arbeit wird ein Ontologie-basierter Ansatz zur Optimierung des Entwurfsprozesses
von automobilelektronischen Systemen vorgestellt. Wesentlicher
Grundgedanke dabei ist es, Ontologien zu nutzen, um Entwurfsmethoden und
-modelle zu konsolidieren und zu integrieren. Dazu beruht der Ansatz im Kern
auf dem Vorschlag einer einheitlichen Basis zur Entwicklung und Ausführung von
Anwendungen, unter konsequenter Nutzung etablierter Standards, um Modelle auf
Ontologien abzubilden. Diese Basis wurde als Softwareplattform realisiert, welche
unter anderem auf eine nahtlose Integration in existierende Arbeitsabläufe abzielt.
Vorrangiger Aspekt des Lösungsansatzes ist die Berücksichtigung von Anforderungen,
sowie spezieller Last- und Nutzungsprofilen in Form von sogenannten Mission
Profiles und deren Integration in Entwicklungsprozesse. Ergänzt wird diese Arbeit
zudem durch die Beschreibung und Einordnung dreier Anwendungen, welche auf
der Plattform aufsetzen und zur Untersuchung und Bewertung in konkreten Fallbeispielen
Gebrauch finden. Die damit entstandenen Entwurfsmethodiken adressieren
jeweils spezielle Problemstellungen aus dem Umfeld der Entwicklung automobilelektronischer
Systeme und demonstrieren zudem die Anwendbarkeit der vorgestellten
Entwurfs- und Anwendungsplattform