38 research outputs found

    Generative und Merkmal-orientierte Entwicklung von Software-Produktlinien mit noninvasiven Frames

    Get PDF
    Frames sind parametrisierte Elemente zur Erzeugung von Programmen in einer beliebigen Zielprogrammiersprache. Ihre Handhabung ist einfach und schnell zu erlernen. Allerdings findet bei Verwendung von Frames eine “Verunreinigung” des Programmcodes, der als Basis für die Generatorentwicklung dient, mit Befehlen der Generatorsprache statt. Dies erschwert die Weiterverwendung der gewohnten Entwicklungsumgebung für die Zielprogrammiersprache. Eine eventuelle Weiterentwicklung der Programmbasis muss anschließend in Form von Frames erfolgen. Im Rahmen dieser Arbeit erfolgt die Beschreibung noninvasiver Frames, bei denen Informationen zur Position der Frames getrennt vom Programmcode aufbewahrt werden. Ihre Vermischung erfolgt in einem separaten Schritt zur Darstellung oder zur eigentlichen Codeerzeugung. Der Prozess der Generatorentwicklung auf der Basis noninvasiver Frames passt sich gut in die Prozesse von Merkmal-orientierter (FOSD) und Generativer Softwareentwicklung (GSE) ein, weil noninvasive Frames die automatisierte Prüfung aller mit dem Generator erzeugbaren Programme hinsichtlich Syntax und bestimmter semantischer Eigenschaften unterstützen und die Generierung durch Auswahl der gewünschten Programmeigenschaften ermöglichen. Die Machbarkeit der Entwicklung von Softwaregeneratoren mit noninvasiven Frames wird anhand zweier Fallstudien demonstriert

    Feature-orientiertes Framing für die Verifikation von Software-Produktlinien: Masterarbeit

    Get PDF
    Software-Produktlinien sind Softwareprodukte, die eine gemeinsame Codebasis besitzen und sich in ausgewählten Features unterscheiden. Mit Feature-orientierter Programmierung wird eine Möglichkeit zur Realisierung von Produktlinien geboten. Durch den häufigen Einsatz von Produktlinien in sicherheitskritischen Systemen erweist sich die Verifikation als besonders wichtig, damit keine schwerwiegenden Fehler auftreten. Die Verifikation gestaltet sich jedoch schwierig, da jedes Produkt verifiziert und spezifiziert werden muss. Für die Spezifikation haben sich Kontrakte bewährt, wobei in der Feature-orientierten Programmierung die Komposition von den Kontrakten der Features definiert werden muss. Die Komposition von Kontrakten wurde bereits umgesetzt, aber es wurden noch nicht alle Bestandteile von Kontrakten berücksichtigt, insbesondere wird das Framing, das essentiell für die Verifikation mit Kontrakten ist, noch nicht untersucht. In der Arbeit beschäftigen wir uns damit, wie sich die Komposition von Kontrakten sinnvoll mit Framing erweitern lassen. Dazu betrachten wir Framing-Techniken in anderen Bereichen und analysieren, ob sie sich für Feature-orientiertes Framing eignen. Abschließend werden die Techniken für Feature-orientiertes Framing bezüglich ihrer Anwendbarkeit und ihres Nutzens für die Verifikation von Produktlinien evaluiert

    Systemorientierung in der modellbasierten modularen E/E-Architekturentwicklung

    Get PDF
    In modernen Kraftfahrzeugen wird heute für fast jede neue Funktionalität verteilte Software eingesetzt. Sie kommt auf E/E-Komponenten zur Ausführung und ist damit Teil von verteilten Elektrik/Elektronik (E/E)-Systemen, die eine Kunden- oder eine technische Funktionalität erbringen. Durch die Zunahme der verteilten Software-basierten Fahrzeugfunktionen ist heute die Kontrolle der Komplexität im Fahrzeug eine Kernherausforderung [54, 126]. Gleichzeitig müssen Fahrzeughersteller mit immer schnelleren Innovationszyklen umgehen [24, 54]. Es werden Plattform- und Modulstrategie-Ansätze mit dem Ziel eingesetzt, möglichst gemeinsame Komponenten über viele Fahrzeuge hinweg zu verwenden [168], der Komplexität zu begegnen und Entwicklungs-Zeit und -Kosten zu reduzieren [46]. In diesem Spannungsfeld ist insbesondere die E/E-Architektur des Fahrzeugs betroffen. Sie verbindet alle E/E-Komponenten der E/E-Systeme und ermöglicht deren Interaktion. E/E-Architekturen werden modelliert mit dem Ziel E/E-Architekturen zu entwerfen, zu bewerten, zu dokumentieren und abzusichern. Die E/E-Architekturmodellierung wird eingesetzt um eine möglichst optimale Lösung zu finden [69, 159], wobei sich die Entwurfskriterien oft diametral gegenüberstehen [171]. Bei der Auslegung der E/E-Architektur ist die Absicherung der Interaktion der E/E-Komponenten, die über Software und Hardware erfolgt, ausschlaggebend. Die E/E-Komponenten sind einerseits in E/E-Systemen und andererseits in E/E-Modulen der Modulstrategien organisiert. E/E-Module werden durch die Modulstrategien in der mechanischen Fahrzeugentwicklung als Teil eines vereinfachten, schnelleren Produktionsprozess definiert und weiterentwickelt. Die Evolution (Weiterentwicklung) der E/E-Module wird in den Modulstrategien ausschließlich Hardware-orientiert, d.h. ohne Betrachtung der Software und Auswirkung auf diese durchgeführt. Für die E/E-Architektur wird die Interaktion der Software heute lediglich nach Best Engineering Practice bewertet und wird somit ohne durchgängigen Prozess, Werkzeugunterstützung und Methodik durchgeführt. Damit sind sobald die Software mit einbezogen wird die \og Ziele, die mit der E/E-Architekturmodellierung verfolgt werden, heute nicht umsetzbar. Diese Arbeit hat das Ziel, die Herausforderungen für die zukünftige E/E-Architekturauslegung in diesem Spannungsfeld zu identifizieren und ein Lösungskonzept anzubieten. Dafür wird ein neuer systemischer Ansatz verfolgt. Es wird für die E/E-Architekturmodellierung untersucht, wie E/E-Systeme und E/E-Module einbezogen und die Evolution von E/E-Systemen einschließlich der E/E-Module durchgeführt werden kann. Als Lösungskonzept wird mit dieser Arbeit das E/E-System Produktlinien Engineering vorgestellt. Das Konzept wird im industriellen Umfeld ausgearbeitet und löst den heutigen modulorientierten Ansatz ab. Dabei wird der heutige Ansatz um Funktionen und E/E-Systeme erweitert und die Abhängigkeiten zwischen den Funktionen, E/E-Modulen und E/E-Systemen erfasst. Dadurch wird eine effiziente und modellübergreifende Wiederverwendung von E/E-Systemen ermöglicht. Zudem wird auf Methoden der Software-Entwicklung zurückgegriffen um die Evolution von E/E-Systemen zu realisieren: Zweigeteilt wird hierbei über eine neue Modellierungsebene eine Bewertung einer Evolution im E/E-Architekturmodell vorgenommen und mit einem neuen Modell für die Funktionen eine Umsetzung der Evolution im E/E-Architekturmodell ermöglicht. Für das E/E-System Produktlinien Engineering werden Anwendungsfälle erarbeitet und prototypisch im Werkzeug für die E/E-Architekturmodellierung PREEvision implementiert. Mit einer praktischen Fallstudie werden die Anwendungsfälle evaluiert. Mit den Konzepten dieser Arbeit werden erstmals die Ziele für die E/E-Architekturmodellierung nicht nur für die Hardware erreicht sondern eine vollständige Betrachtung eines E/E-Systems einschließlich der funktionalen Anteile (Software) realisiert. Ein weiterer Beitrag dieser Arbeit ist eine Steigerung der Modellierungseffizienz für fast alle Anwendungsfälle. Insgesamt wird das E/E-System Produktlinien Engineering in einem industriellen Kontext im Geschäftsbereich Mercedes-Benz Cars der Daimler AG erarbeitet und evaluiert. Es werden konkrete Fragestellungen und Probleme aus der Praxis der E/E-Architekturentwicklung für Kraftfahrzeuge behandelt und E/E-Systeme und Szenarien aus der E/E-Architektur-Domäne Chassis/Fahrerassistenz herangezogen. Produktiv eingesetzt werden einige Konzepte des E/E-System Produktlinien Engineerings im E/E-Plattform-Entwicklungsprojekt STAR3, das die nächste Generation der Mercedes-Benz S-Klasse und nachfolgender Kraftfahrzeuge bei Mercedes-Benz Cars umfasst

    Realisierung von Softwareproduktlinien durch Komposition von Belangimplementierungen

    Get PDF
    Softwareproduktlinienentwicklung ist ein Ansatz zur systematischen Wiederverwendung von Softwareartefakten. In dieser Arbeit stellen wir ein Verfahren vor, welches es erlaubt, unterstützte Merkmale einer Produktlinie in Form voneinander abgegrenzter Belangimplementierungen zu spezifizieren und diese zu maßgeschneiderten Varianten der Produktlinie zu komponieren. Das Verfahren vereinigt hierzu Konzepte der mehrdimensionalen Belangtrennung, der generischen Programmierung sowie der Generierung

    Co-Konfiguration von Hardware- und Systemsoftware-Produktlinien

    Get PDF
    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

    Authentifizierungs- und Autorisierungsmuster in bestehenden Sicherheits-Frameworks

    Get PDF

    Mapping-basierte Modellierung von Softwareproduktlinien

    Get PDF

    Evolution-aware Modeling and Analysis of Software Product Lines

    Get PDF
    Aufgrund ihrer Variabilität umfassen Softwareproduktlinien eine hohe Anzahl von vielfältigen, aber dennoch ähnlichen Produktvarianten. Diese Tatsache sowie die ausgeprägte Wiederverwendung von Softwarebausteinen, zwischen denen außerdem komplizierte Abhängigkeiten bestehen können, lassen die Evolution von Softwareproduktlinien äußerst komplex werden. Diese Komplexität kann zu Inkonsistenzen und Fehlern bei der Evolution führen. Zur Vermeidung dessen werden Modelle eingesetzt, damit bereits vor der eigentlichen Evolution die zukünftigen Veränderungen betrachtet und untersucht sowie eventuelle Probleme durch Auswirkungen der Evolution abgeschätzt werden können. Folglich werden Modellierungsmethoden benötigt, die nicht nur die Variabilität der Produktlinien übersichtlich und verständlich darstellen, sondern auch Evolution abbilden können und eine effiziente Analyse von Evolutionsauswirkungen erlauben. Für die Darstellung von Variabilität existieren zahlreiche Ansätze aus den Modellierungskategorien der annotativen, kompositionalen und transformationalen Modelle. Die Anzahl der Techniken, die gleichzeitig mit Evolution umgehen können, sind jedoch weitaus geringer. Dies ist insofern problematisch, dass nicht für jede der genannten Kategorien Evolution auf eine einfache Weise modelliert werden kann. Die Kategorien bieten allerdings unterschiedliche Vor- und Nachteile bei der Darstellung und sind daher je nach Betrachtungsfokus ungleich nützlicher. Aus diesem Grund wird in dieser Arbeit mit der 175\%-Modellierung eine Modellierungsmethode für Evolution in annotativen Konzepten entwickelt, da für diese Kategorie noch keine Methode existiert, die gleichermaßen normale Variabilität und Evolution handhaben kann. Damit eine flexible Anwendung von Ansätzen aus unterschiedlichen Modellierungskategorien, beispielsweise zum Vergleich, ermöglicht wird, wird außerdem ein Algorithmus zur Transformation von Higher-Order Delta-Modellen - einem transformationalen Ansatz - in 175\%-Modelle entwickelt. So ist nur die Erstellung eines Modells nötig, um zwei Ansätze aus verschiedenen Kategorien verwenden zu können, deren Vor- und Nachteile sich gegenseitig ausgleichen können. Anhand von mathematischer Induktion wird außerdem bewiesen, dass der Algorithmus ein 175\%-Modell erzeugt, das äquivalent zum eingegebenen Higher-Order Delta-Modell ist, d.h. dass sich aus beiden Modellen die gleichen Produktmodelle ableiten lassen. Da 175\%-Modelle aufgrund der Kapselung sämtlicher Modellelemente in einem einzigen Modell sehr groß sind, wird darüber hinaus eine Möglichkeit zum Slicing von 175\%-Modellen vorgestellt, um die Komplexität der Modelle reduzieren und diese auf Basis bestimmter Kriterien analysieren zu können. Sowohl die Technik zur 175\%-Modellierung, der Transformationsalgorithmus und das 175\%-Slicing werden als Eclipse-Plug-ins implementiert und die Implementierung in dieser Arbeit dokumentiert
    corecore