Filtern
Erscheinungsjahr
Dokumenttyp
- Diplomarbeit (14)
- Studienarbeit (13)
- Bachelorarbeit (8)
- Dissertation (7)
- Masterarbeit (6)
- Ausgabe (Heft) zu einer Zeitschrift (6)
Sprache
- Deutsch (39)
- Englisch (14)
- Mehrsprachig (1)
Volltext vorhanden
- ja (54) (entfernen)
Schlagworte
- Java (3)
- model-based (3)
- Autonome Fahrzeuge (2)
- BPMN (2)
- Computersimulation (2)
- Echtzeitsystem (2)
- Echtzeitsysteme (2)
- Fahrerassistenzsystem (2)
- Modellfahrzeug (2)
- Petri-Netz (2)
Institut
- Institut für Softwaretechnik (54) (entfernen)
101worker ist die modulare Wissensverarbeitungskomponente des 101companies-Projektes. Durch organisches Wachstum des Systems, statt Beachtung von bewährten Software-Design-Prinzipien, haben sich Wartungs- und Leistungsprobleme entwickelt. Diese Arbeit beschreibt diese Probleme, entwirft Anforderungen für das Refactoring des Systems und beschreibt und analysiert schließlich die resultierende Implementierung. Die Lösung involviert die Zusammenfassung von verstreuten und redundanten Informationen, aufsetzen von Unit- und funktionalen Test-Suiten und Inkrementalisierung der Busarchitektur von 101worker.
Im Rahmen dieser Arbeit wurde die Effizienz von Anfragen an OWL-Ontologien und Anfragen an TGraphen evaluiert. Dabei wurden die zwei unterschiedlichen Transformationsverfahren Schema-Aware Mapping und Simple Mapping getestet. Bei der Transformation einer OWL-Ontologie in einen TGraphen über Schema-Aware Mapping werden ein TGraph-Schema und ein TGraph erzeugt. Im Gegensatz zu Schema-rnAware Mapping besitzt Simple Mapping ein schon vordefiniertes TGraph-Schema, das für alle OWLOntologien anwendbar ist. Damit wird bei der Transformation einer OWL-Ontologie in einen TGraphen über Simple Mapping nur ein TGraph - kein TGraph-Schema - generiert. Mit den Verfahren wurden entsprechend auch SPARQL-Anfragen in GReQL-Anfragen transformiert.
Die vorliegende Arbeit beschäftigt sich mit der Abbildung von Ecore nach grUML. Dabei wird sowohl die Transformation von in Ecore modellierten Modellen nach Graphen in grUML als auch die Konvertierung von Ecore-Metamodellen nach grUML-Schemas betrachtet. Zunächst werden die beiden Modellierungssprachen Ecore und grUML einzeln beschrieben. Dabei werden die Metamodelle der Sprachen erklärt und die Programmierschnittstellen vorgestellt. Im Anschluss werden Unterschiede und Gemeinsamkeiten von grUML und Ecore erläutert und auf dieser Grundlage eine Abbildung definiert. Außerdem werden Anforderungen an die Implementierung der Transformation festgehalten. Danach folgen verschiedene Details zur Realisierung. Zum Schluss wird mit Hilfe einiger Beispiele gezeigt, welche Ergebnisse durch die Transformation entstehen.
BinaryGXL
(2006)
XML ist aus der heutigen IT-Welt nicht mehr wegzudenken und wird für vielfältige Zwecke verwendet. Die Befürworter von XML führen insbesondere die Menschenlesbarkeit und leichte Editierbarkeit als Gründe für diesen Erfolg an. Allerdings hat XML gerade dadurch auch in manchen Anwendungsgebieten gravierende Nachteile: XML ist sehr verbos, und das Parsen von XML-Dateien ist relativ langsam im Vergleich zu binären Dateiformaten. Deshalb gibt es Bestrebungen ein binäres XML-Format zu schaffen und gegebenenfalls zu standardisieren. Die vorliegende Studienarbeit beschreibt einige schon existierende binäre XML-Formate und zeigt auf, wie weit der Entwurf und die Standardisierung eines allgemein akzeptierten Binary-XML-Formats fortgeschritten sind. Der praktische Teil der Studienarbeit umfasst den Entwurf und die Implementierung eines eigenen Binärformats für den XML-Dialekt GXL. Zur Bewertung der entwickelten Lösung wird diese mit den heute üblichen Kompressionstools verglichen.
Im Rahmen dieser Arbeit wurden die zeitbewerteten Prädikat/Transitions-Netze (Z-Pr/T-Netze) zur Modellierung, Simulation und Verifikation sicherheitskritischer Echtzeitsysteme entwickelt. Z-Pr/T-Netze integrieren Konzepte zur Modellierung temporärer Zusammenhänge und sind darüber hinaus mittels der Berechnung von S- und T-Invarianten sowie der Identifikation von Traps und Co-Traps strukturell analysierbar. Die Eignung von Z-Pr/T-Netzen zur Modellierung, Simulation und Verifikation komplexer Systeme aus dem Anwendungsbereich sicherheitskritischer Echtzeitsysteme wird anhand des Earliest-Deadline-First-Protokolls (EDF) und des Priority-Inheritance-Protokolls (PIP) belegt. Es erfolgt daher eine Modellierung des EDF und PIP mittels Z-Pr/T-Netzen sowie eine Verifikation für das EDF und PIP basierend auf der strukturellen Analyse der korrespondierenden Z-Pr/T-Netze. Die Anwendbarkeit struktureller Analyseverfahren zur Verifikation des EDF und PIP in Verbindung mit der nicht zu unterschätzenden Komplexität eben dieser belegen die Anwendbarkeit von Z-Pr/T-Netzen zur Modellierung, Simulation und Verifikation komplexer Systeme aus dem Anwendungsbereich sicherheitskritischer Echtzeitsysteme.
Over the past few decades society’s dependence on software systems has grown significantly. These systems are utilized in nearly every matter of life today and often handle sensitive, private data. This situation has turned software security analysis into an essential and widely researched topic in the field of computer science. Researchers in this field tend to make the assumption that the quality of the software systems' code directly affects the possibility for security gaps to arise in it. Because this assumption is based on properties of the code, proving it true would mean that security assessments can be performed on software, even before a certain version of it is released. A study based on this implication has already attempted to mathematically assess the existence of such a correlation, studying it based on quality and security metric calculations. The present study builds upon that study in finding an automatic method for choosing well-fitted software projects as a sample for this correlation analysis and extends the variety of projects considered for the it. In this thesis, the automatic generation of graphical representations both for the correlations between the metrics as well as for their evolution is also introduced. With these improvements, this thesis verifies the results of the previous study with a different and broader project input. It also focuses on analyzing the correlations between the quality and security metrics to real-world vulnerability data metrics. The data is extracted and evaluated from dedicated software vulnerability information sources and serves to represent the existence of proven security weaknesses in the studied software. The study discusses some of the difficulties that arise when trying to gather such information and link it to the difference in the information contained in the repositories of the studied projects. This thesis confirms the significant influence that quality metrics have on each other. It also shows that it is important to view them together as a whole and suppose that their correlation could influence the appearance of unwanted vulnerabilities as well. One of the important conclusions I can draw from this thesis is that the visualization of metric evolution graphs, helps the understanding of the values as well as their connection to each other in a more meaningful way. It allows for better grasp of their influence on each other as opposed to only studying their correlation values. This study confirms that studying metric correlations and evolution trends can help developers improve their projects and prevent them from becoming difficult to extend and maintain, increasing the potential for good quality as well as more secure software code.
TGraphBrowser
(2010)
Im Rahmen dieser Arbeit wird ein Webserver implementiert, mit dem man sich Graphen, die mit Hilfe des Java-Graphenlabors (JGraLab) erzeugt wurden, in einem Browser anzeigen lassen kann. Es werden dem Nutzer eine tabellarische und eine graphische Darstellung des Graphen angeboten. In jeder der beiden Darstellungsarten ist das Navigieren durch den Graphen möglich. Um Graphen mit mehreren tausend Elementen für den Nutzer überschaubarer zu machen, können die angezeigten Kanten und Knoten nach ihren Schematypen gefiltert werden. Ferner kann die dargestellte Menge an Graphelementen durch eine GReQL-Anfrage oder durch explizite Angabe bestimmt werden.
Das in der Arbeitsgruppe Echtzeitsysteme im Projekt EZlenk entwickelte optische Lenkassistenzsystem zur Unterstützung der Rückwärtsfahrt von Fahrzeugen mit Anhänger soll im Rahmen dieser Studienarbeit auf seine Alltagstauglichkeit getestet werden. Ferner wurden die Implementierungen des Lenkassistenzsystems auf einem Fahrsimulator und einer PC-Version von Probanden evaluiert. Hierbei sollen mithilfe von Berufskraftfahrern, Fahrlehrern und Laien Schwachstellen, Stärken, genereller Nutzen, eventuelle Verbesserungsmöglichkeiten, Realitätsnähe und Auwirkungen auf den Fahrer bzw. Benutzer sowohl im Fahrsimulator als auch in der PC-Version herausgefunden werden unter Zugrundelegung der anerkannten Kriterien Effizienz, Effektivität und Zufriedenheit. Außerdem werden beide Implementierungsarten des Simulators sowohl mit als auch ohne Berücksichtigung des Lenkassistenzsystems im Hinblick auf die Alltagstauglichkeit für die Kraftfahrerausbildung in Fahrschulen diskutiert.
GreQL-Script
(2008)
Im Rahmen dieser Arbeit wird eine Scriptsprache entworfen und ein Interpreter für diese implementiert. Sie ist der Nachfolger der von Bernt Kullbach entwickelten Scriptsprache Command Line GreQL (CLG) und soll die Arbeit mit TGraphen und mit der von Katrin Marchewka in ihrer Diplomarbeit beschriebenen Graphanfragesprache Graph Repository Query Language 2 (GReQL 2) vereinfachen.
Wurden Echtzeitanwendungen früher meist auf hochspezialisierter Hardware und mit eigens dafür entwickelten Betriebssystemen ausgeführt, so wird heutzutage oft auch handelsübliche Hardware eingesetzt, auf dem eine Variante des Linux-Kernels läuft.
Im Rahmen dieser Arbeit wurden Testverfahren aufgestellt und in Form einer Echtzeitanwendung implementiert, welche verschiedene Leistungsmerkmale des Linux-Kernels im Hinblick auf dessen Echtzeitfähigkeit messen.
Diese Tests wurden auf drei verschiedenen Kernel-Versionen ausgeführt. Anschließend wurden die Ergebnisse der Testreihen miteinander verglichen.
Im Rahmen dieser Arbeit wird untersucht, wie sich Modellfehler auf die Positionsgenauigkeit und Handhabbarkeit beim Rangieren mit einem Fahrerassistenzsystem auswirken. Besonderer Wert wird dabei auf die Bestimmung von Fehlergrenzen gelegt. Es wird der Frage nachgegangen, wie groß der Eingangsfehler sein darf, damit die Assistenz noch hinreichende Qualitätseigenschaften hinsichtlich ihrer Präzision und Robustheit aufweist. Dazu erfolgt zunächst eine quantitative Betrachtung der Fehler anhand des kinematischen Modells. Danach wird eine qualitative Betrachtung anhand von systematischen Experimenten durchgeführt. Es wird zunächst ein Controller entwickelt, mit dem sich ein Manöver mithilfe der visuellen Informationen der Assistenz simulieren lässt.
Dann wird eine Methode vorgestellt, mit deren Hilfe man das Manöver anhand definierter Fehlergrenzen bewerten kann. Um einen großen Raum möglicher Fehlerkombinationen effizient zu durchsuchen, wird das probabilistische Verfahren des Annealed Particle Filters benutzt. Mithilfe einer Testumgebung werden schließlich systematische Experimente durchgeführt. Zur weiteren Evaluation des Assistenzsystems in einer kontrollierten Umgebung erfolgte in Zusammenarbeit mit dem Fraunhofer ITWM in Kaiserslautern die Portierung des Assistenzsystems auf die dortige Simulationsumgebung RODOS.
Datenflussmodelle in der Literatur weisen oftmals einen hohen Detailgrad auf, der sich auf die auf den Modellen durchgeführten Datenflussanalysen überträgt und diese somit schwerer verständlich macht. Da ein Datenflussmodell, das von einem Großteil der Implementierungsdetails des modellierten Programms abstrahiert, potenziell leichter verständliche Datenflussanalysen erlaubt, beschäftigt sich die vorliegende Masterarbeit mit der Spezifikation und dem Aufbau eines stark abstrahierten Datenflussmodells und der Durchführung von Datenflussanalysen auf diesem Modell. Das Modell und die darauf arbeitenden Analysen wurden testgetrieben entwickelt, sodass ein breites Spektrum möglicher Datenflussszenarien abgedeckt werden konnte. Als konkrete Datenflussanalyse wurde unter anderem eine statische Sicherheitsprüfung in Form einer Erkennung unzureichender Nutzereingabenbereinigungen durchgeführt. Bisher existiert kein Datenflussmodell auf einer ähnlich hohen Abstraktionsebene. Es handelt sich daher um einen einzigartigen Lösungsentwurf, der Entwicklern die Durchführung von Datenflussanalysen erleichtert, die keine Expertise auf diesem Gebiet haben.
Mapping ORM to TGraph
(2017)
Object Role Modeling (ORM) is a semantic modeling language used to describe objects and their relations amongst each other. Both objects and relations may be subject to rules or ORM constraints.
TGraphs are ordered, attributed, typed and directed graphs. The type of a TGraph and its components, the edges and vertices, is defined using the schema language graph UML (grUML), a profiled version of UML class diagrams. The goal of this thesis is to map ORM schemas to grUML schemas in order to be able to represent ORM schema instances as TGraphs.
Up to this point, the preferred representation for ORM schema instances is in form of relational tables. Though mappings from ORM schemas to relational schemas exist, those publicly available do not support most of the constraints ORM has to offer.
Constraints can be added to grUML schemas using the TGraph query language GReQL, which can efficiently check whether a TGraph validates the constraint or not. The graph library JGraLab provides efficient implementations of TGraphs and their query language GReQL and supports the generation of grUML schemas.
The first goal of this work is to perform a complete mapping from ORM schemas to grUML schemas, using GReQL to sepcify constraints. The second goal is to represent ORM instances in form of TGraphs.
This work gives an overview of ORM, TGraphs, grUML and GReQL and the theoretical mapping from ORM schemas to grUML schemas. It also describes the implementation of this mapping, deals with the representation of ORM schema instances as TGraphs and the question how grUML constraints can be validated.
Die vorliegende Arbeit bietet ein Konzept für die Implementierung eines Web-Usage-Mining-Systems. Besonderer Schwerpunkt der Arbeit ist die Orientierung an Anwendungsgebieten mit hohem Besuchsaufkommen. Dazu liefert die Arbeit einen Ueberblick ueber ausgewaehlte Messmethoden und Erfassungstechniken für die Nutzungsanalyse von Web-Zugriffen und bietet zu den einzelnen Aspekten Strategien an, die auch bei hohem Datenaufkommen pertinente Speicher- und Abfragekomplexitaet gewaehrleisten.
Probability propagation nets
(2008)
In der vorliegenden Arbeit wird eine Petri-Netz-Repräsentation für die Propagation von Wahrscheinlichkeiten und Evidenzen (Likelihoods) vorgestellt und auf probabilistische Horn-Abduktion sowie Fehlerbäume und Bayes-Netze angewendet. Diese sogenannten Wahrscheinlichkeits-Propagations-Netze (probability propagation nets) machen Propagations-Prozesse transparent, indem sie strukturelle und dynamische Aspekte in einer homogenen Darstellung vereinen. Anhand populärer Beispiele wird verdeutlicht, dass Wahrscheinlichkeits-Propagations-Netze die Propagations-Prozesse - besonders im Hinblick auf die Bayes-Netz-Algorithmik - anschaulich darstellen und gut nachvollziehbar machen, so dass sie sich für die Analyse und Diagnose probabilistischer Modelle eignen. Durch die Repräsentation von Fehlerbäumen mit Wahrscheinlichkeits-Propagations-Netzen können diese Vorzüge auf die Modellierung technischer Systeme übertragen werden.
Data-minimization and fairness are fundamental data protection requirements to avoid privacy threats and discrimination. Violations of data protection requirements often result from: First, conflicts between security, data-minimization and fairness requirements. Second, data protection requirements for the organizational and technical aspects of a system that are currently dealt with separately, giving rise to misconceptions and errors. Third, hidden data correlations that might lead to influence biases against protected characteristics of individuals such as ethnicity in decision-making software. For the effective assurance of data protection needs,
it is important to avoid sources of violations right from the design modeling phase. However, a model-based approach that addresses the issues above is missing.
To handle the issues above, this thesis introduces a model-based methodology called MoPrivFair (Model-based Privacy & Fairness). MoPrivFair comprises three sub-frameworks: First, a framework that extends the SecBPMN2 approach to allow detecting conflicts between security, data-minimization and fairness requirements. Second, a framework for enforcing an integrated data-protection management throughout the development process based on a business processes model (i.e., SecBPMN2 model) and a software architecture model (i.e., UMLsec model) annotated with data protection requirements while establishing traceability. Third, the UML extension UMLfair to support individual fairness analysis and reporting discriminatory behaviors. Each of the proposed frameworks is supported by automated tool support.
We validated the applicability and usability of our conflict detection technique based on a health care management case study, and an experimental user study, respectively. Based on an air traffic management case study, we reported on the applicability of our technique for enforcing an integrated data-protection management. We validated the applicability of our individual fairness analysis technique using three case studies featuring a school management system, a delivery management system and a loan management system. The results show a promising outlook on the applicability of our proposed frameworks in real-world settings.
In dieser Arbeit wurde erstmalig das Gebiet der funktionalen, system-level Web Testing Tools analysiert. Aus 194 Toolkandidaten wurden 23 Tools zur Analyse ausgewählt. Die entwickelte Methodik verwendet die Benutzerhandbücher der Tools, um ein Featuremodel zu erzeugen, dass die Features aller Tools abbildet. Insgesamt wurden 313 Features identifiziert, klassifiziert und beschrieben. Die Features wurden in 10 Kategorien unterteilt und werden mit 16 Featurediagrammen dargestellt.rnDie Ergebnisse können technologische Entscheidungsprozesse unterstützen, indem ein Überblick einerseits über die Tools auf dem Markt und andererseits über die neusten Entwicklungen im Bereich des funktionalen, system-level Web Testing bereitgestellt wird.
Im Rahmen dieser Diplomarbeit wird ein TGraph-basiertes Modell-Vergleichsverfahren entwickelt. Dieses Verfahren soll eine anwendbare Berechnung von Deltas für TGraph-basierte Modelle ermöglichen. Modelle können durch TGraphen repräsentiert werden. Für die Erzeugung und Verarbeitung von TGraphen wurde am Institut für Softwaretechnik das Java Graph Laboratory, kurz JGraLab, entwickelt. Es handelt sich dabei um eine Java Klassenbibliothek, die eine hoch effiziente API zur Verarbeitung von TGraphen bereitstellt. [Ebe87, ERW08, ERSB08] Basierend auf der JGraLab API wird ein System entwickelt, das unterschiedliche Werkzeuge zur Verwaltung von Modellen bereitstellt. Der Fokus dieser Diplomarbeit liegt dabei auf der Entwicklung eines Werkzeugs, das zu zwei gegebenen TGraphen ein Delta berechnet.
Paketmanager für Quellcode wie zum Beispiel Cabal verwalten unter anderem die Abhängigkeiten zwischen Paketen. Softwareprojekte nutzen jedoch selten sämtliche Funktionalitäten, die ihre Abhängigkeiten bereitstellen. Das führt zur unnötigen Kompilation unbenutzter Code-Fragmente und zu vermeintlichen Versionskonflikten, wo gar keine Konflikte sind. In zwei Fallstudien zeigen wir, wie relevant diese zwei Probleme sind. Danach beschreiben wir, wie wir sie vermeiden können, indem wir Abhängigkeiten nicht zwischen ganzen Paketen, sondern zwischen einzelnen Code-Fragmenten feststellen.
In dieser Arbeit wird ein zweigeteilter Regler für die Pfadverfolgung eines Modellfahrzeugs mit einachsigem Anhänger entwickelt. Darüber hinaus wird ein Beweis für die Stabilität und die Konvergenzeigenschaft der gefundenen Regelungsgesetze geliefert. Das Verfahren wird anschließend in die bestehende Steuersoftware des Versuchsfahrzeuges integriert und eine Testumgebung erstellt, um das Regelungsverfahren damit abschließend zu evaluieren.
Program slicing is a technique for extracting that parts of a program which influence a previously defined, so-called slicing criterion. The latter mostly takes the form of a source code statement and a set of variables. Over the years an abundance of variants and enhancements has evolved from the original notion of a program slice. One of these developments is called chopping. A chop only contains those statements which are necessary to sustain the effects of a certain statement on another statement. Corresponding to the slicing criterion, the two statements have to be available in advance. This diploma thesis deals with the development of a service model in order to support the computation of a slice or a chop, given an original program and a slicing or chopping criterion respectively. A service model is a framework of communicating services so that each service performs a specific task within the concept of program slicing. The three main tasks, without considering further decomposition, are the mapping of program code into a representation suitable for slicing, the slicing itself and the display of the slice as code. The key benefit of service-orientation is that a service encapsulates the underlying algorithms. Hence the possibility of improving or substituting them without changing the interfaces of the related service relieves the developer of the need of adapting adjoining services. Thus, service-orientation fosters maintainability and improvability. Besides the definition of the services, this thesis also partially formally defines the data flow between them, i.e. their interfaces. It also features graph class definitions for most data structures. An accurate description of the interfaces encourages reuse, provided the services are of adequate granularity.
In recent years, traceability has been more and more universally accepted as being a key factor for the success of software development projects. However, the multitude of different, not well-integrated taxonomies, approaches and technologies impedes the application of traceability techniques in practice. This paper presents a comprehensive view on traceability, pertaining to the whole software development process. Based on graph technology, it derives a seamless approach which combines all activities related to traceability information, namely definition, recording, identification, maintenance, retrieval, and utilization in one single conceptual framework. The presented approach is validated in the context of the ReDSeeDS-project aiming at requirements-based software reuse.
Die Vorwärtsfahrt mit einem einachsigen Anhänger stellt für die meisten Fahrer keine große Schwierigkeit dar. Das Zugfahrzeug gibt die Richtung vor und der Anhänger wird mitgezogen. Jedoch ist das Rückwärtsfahren mit Anhänger für den ungeübten Fahrer oft sehr kompliziert, da die Lenkmanöver für eine bestimmte Richtungsänderung nicht intuitiv sind und ein "Umdenken" erfordern. Will man beispielsweise den Anhänger um eine Linkskurve fahren, so muss das Zugfahrzeug zunächst nach rechts gelenkt werden, damit der Anhänger linksherum geschoben wird. Schnell passieren Fehler und ein Unfall mit Sachschaden kann eine mögliche Folge sein. Besonders Fahrer, die nur gelegentlich mit einem Anhänger unterwegs sind, haben bei der Rückwärtsfahrt mit Anhänger Probleme.
Diese Bachelorarbeit behandelt die Zusammenführung der bereits vorliegenden Winkelrekonstruktions- und Simulationskomponente und erweitert diese mit Funktionen, um die Durchführung von systematischen Tests zu ermöglichen. Hierzu wird die Übergabe von Bildern aus der Simulationskomponente an die Winkelrekonstruktionskomponente ermöglicht. Des weiteren wird eine GUI zur Testlaufsteuerung und Parameterübergabe sowie eine Datenbankanbindung zur Speicherung der verwendeten Einstellungen und erzeugter Daten angebunden. Durch die Analyse der erzeugten Daten zeigt sich eine ausreichende durchschnittliche Präzision von 0.15° und eine maximale Abweichung der einzelnen Winkel von 0.6°. Der größte Gesamtfehler beläuft sich in den Testläufen auf 0.8°. Der Einfluss von fehlerhaften Parametern hat von variable zu Variable unterschiedliche Auswirkungen. So verstärkt ein Fehler in Höhe den Messfehler um ein vielfaches mehr, als ein Fehler in der Länge der Deichsel.
Für die Entwicklung sicherer Softwaresysteme erweitert UMLsec die UML durch die Definition von Sicherheitsanforderungen, die erfüllt sein müssen. In Klassendiagrammen können Attribute und Methoden von Klassen Sicherheitseigenschaften wie secrecy oder integrity haben, auf die nicht authorisierte Klassen keinen Zugriff haben sollten. Vererbungen zwischen Klassen erzeugen eine Komplexität und werfen die Frage auf, wie man mit der Vererbung von Sicherheitseigenschaften umgehen sollte. Neben der Option in sicherheitskritischen Fällen auf Vererbungen zu verzichten, gibt es im Gebiet der objektorientierten Datenbanken bereits viele allgemeine Recherchen über die Auswirkungen von Vererbung auf die Sicherheit. Das Ziel dieser Arbeit ist es, Ähnlichkeiten und Unterschiede von der Datenbankseite und den Klassendiagrammen zu identifizieren und diese Lösungsansätze zu übertragen und zu formalisieren. Eine Implementierung des Modells evaluiert, ob die Lösungen in der Praxis anwendbar sind.
Im Rahmen dieser Diplomarbeit wird eine Datenbank-Persistenzlösung für die TGraphenbibliothek JGraLab entwickelt. Diese erlaubt das Persistieren von TGraphen in Datenbanken ausgewählter Technologien und sorgt gleichzeitig dafür, dass die Datenbankpersistenz eines TGraphen für den Benutzer transparent bleibt. Nach der Anforderungserhebung und der Recherche zur Bewertung der Tauglichkeit von bereits bestehenden Werkzeugen für dieses Projekt, wird die Anwendungsdomäne erläutert. Anschließend wird dargelegt wie die Persistierung von TGraphen mit allen ihren Eigenschaften in Datenbanken ermöglicht werden kann. Dem schließt sich der konzeptuelle Entwurf an, in dem die Details der Lösung beschrieben werden. Als nächstes wird der objektorientierte Feinentwurf zur Integration der Lösung in die TGraphenbibliothek JGraLab entwickelt, der die Grundlage der programmatischen Umsetzung bildet. Eine Anleitung zur Verwendung der Lösung und eine Bewertung des Laufzeitverhaltens der umgesetzten Implementation schließen die Arbeit ab.
Da Software heute nahezu alle Bereiche des Alltags durchdringt, ist Sicherheit von Softwaresystemen ein wichtigeres Anliegen als je zuvor. Die Sicherheit eines Softwaresystems zu bewerten stellt in der Praxis jedoch eine Herausforderung dar, da nicht viele Metriken existieren, die Sicherheitseigenschaften von Sourcecode auf Zahlenwerte abbilden. Eine geläufige Annahme ist, dass das Auftreten von Sicherheitslücken in Korrelation mit der Qualität von Software-Designs steht, allerdings fehlt es momentan an klaren Belegen für diese Annahme. Der Nachweis einer vorhandenen Korrelation kann dazu beitragen die Messung von Programmsicherheit zu optimieren, da man dann gezielt Qualitätsmetriken zum Messen von Sicherheit einsetzen könnte. Zu diesem Zweck wurden in dieser Arbeit für 50 Android-Apps aus dem Open Source-Bereich drei Sicherheits- und sieben Qualitätsmetriken, sowie Korrelationen zwischen diesen Metriken berechnet. Bei den Qualitätsmetriken handelt es sich um einfache Code-Metriken bis hin zu High-Level-Metriken, wie objektorientierte Antipatterns, die zusammen ein umfassendes Bild der Qualität vermitteln. Um die Sicherheit darzustellen wurden zwei Sichtbarkeitsmetriken zusammen mit einer Metrik, die die minimale Rechteanforderung mobiler Applikationen berechnet, ausgewählt. Es wurde festgestellt, dass auf Basis der betrachteten Evaluationsprojekte deutliche Korrelationen zwischen den meisten Qualitätsmetriken liegen. Zu den Sicherheitsmetriken wurden dahingegen keine signifikanten Korrelationen gefunden. Es werdendiese Korrelationen und deren Ursachen diskutiert und auf dieser Basis Empfehlungen formuliert.
Echzeitbetriebssysteme für Systeme mit gemischten Kritikalitäten müssen unterschiedliche Arten von Software, wie z.B. Echtzeitanwendungen und Allzweckanwendungen, gleichzeitig unterstützen. Dabei müssen sie eine solide räumliche und zeitliche Isolation zwischen unabhängigen Softwarekomponenten bieten. Daher fokussieren sich aktuelle Echtzeitbetriebssysteme hauptsächlich auf Vorhersagbarkeit und ein berechenbares Worst-Case-Verhalten.
Allerdings bieten Allzweck-Betriebssysteme wie Linux häufig effizientere, aber weniger deterministische Mechanismen, welche die durchschnittliche Ausführungszeit signifikant erhöhen. Diese Thesis befasst sich mit der Kombination der beiden gegensätzlichen Anforderungen und zeigt Mechanismen zur Thread-Synchronisation mit einem effizienten Durchschnittsverhalten, ohne jedoch die Vorhersagbarkeit und das Worst-Case-Verhalten zu beeinträchtigen. Diese Thesis untersucht und bewertet den Entwurfsraum von Abkürzungen (engl. fast paths) bei der Umsetzung von typischen blockierenden Synchronisationsmechanismen wie Mutexen, Bedingungsvariablen, Zähl-Semaphoren, Barrieren oder Nachrichtenwarteschlangen. Der Ansatz ist dabei, unnötige Systemaufrufe zu vermeiden. Systemaufrufe haben im Vergleich zu anderen Prozessoroperationen, die im Benutzermodus verfügbar sind, wie z.B. atomaren Operationen, höhere Kosten. Insbesondere erforscht die Thesis Futexe, ein aktuelles Design für blockierende Synchronisationsmechanismen in Linux, welches den konkurrenzfreien Fall der Synchronisierung mithilfe atomarer Operationen im Benutzermodus löst und den Kern nur aufruft, um Threads zu suspendieren und aufzuwecken. Die Thesis untersucht auch nicht-unterbrechbare Monitore mit aktivem Warten. Dort wird ein effizienter Mechanismus mit Prioritätsschranken verwendet, um das sogenannte Lock-Holder-Preemption-Problem ohne Systemaufrufe zu vermeiden. Ebenfalls werden passende niedere Kernprimitive beschrieben, die effiziente Warte- und Benachrichtigungsoperationen ermöglichen. Die Evaluation zeigt, dass die vorgestellten Ansätze die durchschnittliche Leistung vergleichbar zu aktuellen Ansätzen in Linux verbessern. Gleichzeitig zeigt eine Analyse des Worst-Case Zeitverhaltens, dass die Ansätze nur konstante oder begrenzte zeitliche Mehraufwände auf der Ebene des Betriebssystemkerns benötigen. Die Nutzung dieser Abkürzungen ist ein lohnender Ansatz für den Entwurf von Systemen, die nicht nur Echtzeitanforderungen erfüllen, sondern auch Allzweckanwendungen gut unterstützen sollen.