119 research outputs found

    Spezifikation von Variabilität in automatisch bewerteten Programmieraufgaben

    Get PDF
    Wir beschreiben eine Möglichkeit, Variationspunkte und deren Varianten in automatisiert bewerteten Programmieraufgaben zu spezifizieren. Solche Variationspunkte kommen bei individualisierbaren Programmieraufgaben zum Einsatz, bei denen jede Studentin und jeder Student eine eigene Variante einer Programmieraufgabe erhält. Die Varianten werden automatisch gebildet, indem an definierten Variationspunkten immer wieder andere, konkrete Werte eingesetzt werden. Schon bei sehr einfachen Aufgaben bestehen Abhängigkeiten zwischen den einzelnen Variationspunkten, die bei der Wahl der konkreten Werte zu berücksichtigen sind. Zudem kann die Menge der gültigen Werte auch bei einfachen Aufgaben so groß werden, dass die vollständige Auflistung aller Wertkombinationen an Ressourcengrenzen scheitert. Die vorgestellte Spezifikation verwendet eine kompakte und für Aufgabenautoren verständliche Sprache, die eine automatische Auswahl von korrekten, den Abhängigkeiten gehorchenden Wertekombinationen ermöglicht. Die Sprache ist unabhängig von den Erfordernissen eines bestimmten Autobewerters und versetzt Frontend- und Backendsysteme in verschiedenen technischen Ökosystemen in die Lage, ausgewählte Werte einer sehr großen Wertemenge zu generieren, deren Abhängigkeiten zu prüfen, sowie ggf. bestimmte Wertbelegungen in einem benutzerfreundlichen Dialog auszuwählen. Wir unterstützen Variationspunkte mit endlichen Mengen vorzugebender diskreter Werte sowie kontinuierliche Wertebereiche, die durch eine vorzugebende Anzahl von Samples diskretisiert werden. Wir beschäftigen uns insbesondere mit der Frage, wie lange Auflistungen gültiger Wertkombinationen durch die Angabe von Ableitungsvorschriften ersetzt werden können. Ein besonderes Augenmerk legen wir auf eine redundanzfreie Beschreibung der Variantenmenge. Die Notation setzt auf XML und Javascript in der Annahme, dass diese Technologien in allen beteiligten Systemen zur Verfügung stehen können

    Modulorientiertes Produktlinien Engineering für den modellbasierten Elektrik/Elektronik-Architekturentwurf

    Get PDF
    Heutzutage werden E/E-Architekturen modellbasiert entworfen, um in der Fahrzeugentwicklung frühzeitig den Reifegrad für die fahrzeugweite Vernetzung und Integration von Elektrik, Elektronik und Software abzusichern. Das methodische Konzept und die praktische Umsetzung durch das Modulorientierte Produktlinien Engineering ermöglicht eine Erhöhung der Modellierungseffizienz und der Modellqualität sowie eine Anwenderunterstützung für die Modellierung der komplexen E/E-Architekturmodelle

    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

    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

    Konsistenzerhaltung von Feature-Modellen durch externe Sichten

    Get PDF
    Bei der Produktlinienentwicklung werden Software-Produktlinien(SPLs) meistens Featureorientiert strukturiert und organisiert. Um die gemeinsamen und variablen Merkmale der Produkte einer Produktlinie darzustellen, können Feature-Modelle verwendet werden. Ein Software-Werkzeug zum Erstellen und Editieren von Feature-Modellen ist FeatureIDE, welche die Zustände der Feature-Modelle als Dateien der Extensible Markup Language (XML) persistiert. Bei der Entwicklung von Software-Systemen existieren allerdings mehrere unterschiedliche Artefakte. Diese können sich Informationen mit den Feature-Modellen teilen. Um diese Artefakte und Modelle gemeinsam automatisch evolvieren zu können, werden Konsistenzerhaltungsansätze benötigt. Solche Ansätze sind jedoch nicht mit den persistierten XML-Dateien kompatibel. In dieser Arbeit implementieren wir eine bidirektionale Modell-zu-Text-Transformation, welche die als XML-Dateien persistierten Zustände der FeatureIDE-Modelle in geeignete Modellrepräsentationen überführt, um daraus feingranulare Änderungssequenzen abzuleiten. Diese können zur deltabasierten Konsistenzerhaltung verwendet werden. Für die Modellrepräsentation verwenden wir ein bestehendes Metamodell für Variabilität. Zur Ableitung der Änderungssequenzen wird ein existierendes Konsistenzerhaltungsframework eingesetzt. Wir validieren die Korrektheit der Transformation mithilfe von Round-Trip-Tests. Dabei zeigen wir, dass die in dieser Arbeit implementierte Transformation alle geteilten Informationen zwischen FeatureIDE und dem Variabilitäts-Metamodell korrekt transformiert. Zudem können mithilfe der in dieser Arbeit implementierten Transformation und mit dem verwendeten Konsistenzerhaltungsframework zu 94,44% korrekte feingranulare Änderungssequenzen aus den als XML-Datei persistierten Zuständen der FeatureIDE-Modelle abgeleitet werden

    Integration von bestehendem Sicherheitswissen in einen Software-Entwicklungsprozess

    Get PDF
    Die Komplexität der Sicherheitsdomäne schränkt die Wiederverwendung von existierenden Sicherheitswissen bei der Entwicklung von Software ein. In dieser Arbeit wird ein Modell für Sicherheitswissen und ein Prozess aufgezeigt, um das bereits vorhandene Sicherheitswissen effektiv in einen Software-Entwicklungsprozess einzubetten, um zielgerichtet Sicherheitsmaßnahmen für ein Software-System zu implementieren

    Qualitätssicherung mittels Feature-Modellen

    Get PDF
    Modern business applications are getting increasingly distributed as multi-tenant software as a service (SaaS). This leads to new challenges in terms of quality assurance, because all customers are directly affected by software changes. The resulting problem is to proactively determinate evolutionary effects. Because SaaS applications are often realized in the sense of a software product line, this thesis examines ways of using feature models to face the mentioned problem. For this purpose, two approaches are analyzed: extended feature models with quality attributes annotated per feature and the analysis of structural aspects of feature models and corresponding concrete configurations. The presented attributed feature model approach measures the quality of concrete configurations to make configurations comparable according to specific quality goals. Criteria are elicited for when configurations can be compared to draw helpful conclusions. The structural approach focuses economic questions that are quality assurance related, such as identifying features that none of the tenants selected in their application configurations. Furthermore, three algorithms are presented that demonstrate the structural analysis approach to gather information relevant to quality assurance

    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

    Evolution und Komposition von Softwaresystemen: Software-Produktlinien als Beitrag zu Flexibilität und Langlebigkeit

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

    Aufbau und Management von Innovationskompetenz bei radikalen Innovationsprojekten

    Get PDF
    Auf dynamischen Märkten müssen Unternehmen ihre etablierten Wettbewerbsvorteile ständig erneuern. Dabei sind Innovationen ein wesentlicher Erfolgsfaktor für Wachstum und Fortschritt. Die Realisierung von inkrementellen Innovationen, die das bestehende Geschäft weiterentwickeln, als auch von radikalen Innovationen, die neue Geschäftsfelder erschließen, ist dabei die Voraussetzung für den langfristigen Erfolg. Das Management von radikalen Innovationsprojekten stellt eine große Herausforderung dar. Hohe Unsicherheiten auf den Feldern Technologie und Markt paaren sich mit geringen Erfahrungen in dem neuen Tätigkeitsfeld. Gerade zu Beginn eines radikalen Innovationsprojektes bestehen im Unternehmen umfassende Kompetenzlücken. In dieser Dissertation wird ein kompetenzorientierter Ansatz entwickelt, der die spezifischen Anforderungen von radikalen Innovationsprojekten berücksichtigt. Die Arbeit beginnt dabei mit der Betrachtung relevanter Literatur im Bereich der Kompetenz- und Innovationsforschung. Nachfolgend wird ein Modell der Innovationskompetenz entwickelt. Auf dem Modell aufbauend werden sieben radikale Innovationsprojekte in Form einer wissenschaftlichen Forschungsfallstudie untersucht. Die Ergebnisse werden dazu genutzt, Hypothesen für die Forschung und Gestaltungshinweise für das Management zu entwickeln. Die Arbeit bietet mit der Entwicklung des Modells der Innovationskompetenz und dem Entwickeln von Hypothesen einen wesentlichen Beitrag für die Innovationsforschung. Weiterhin werden wertvolle Hinweise für die Realisierung von radikalen Innovationsprojekten in der Unternehmenspraxis gegeben
    corecore