Filtern
Dokumenttyp
- Masterarbeit (8)
- Dissertation (5)
- Bachelorarbeit (3)
- Diplomarbeit (2)
Schlagworte
- API (1)
- API analysis (1)
- API-Analyse (1)
- Ad-hoc-Netz (1)
- Algorithmische Geometrie (1)
- Android 2 (1)
- Android 3 (1)
- Android 4 (1)
- Android <Systemplattform> (1)
- Aspect-orientation (1)
Systematische Untersuchung der Android-Plattform im konzeptuellen Rahmen des 101companies Projektes
(2012)
In der vorliegenden Arbeit untersuche ich die Android-Plattform. Ich demonstriere drei verschiedene Implementationen, die sowohl Features und Technologien des 101companies Projektes abdecken als auch neue Android spezifische Besonderheiten in das Projekt integrieren. Die Implementationen zeigen Anwendungen die in der realen Welt benutzt werden können.
Moderne Softwaresysteme bestehen aus verschiedenen Programmiersprachen, Softwaretechnologien und Artefakten. Dadurch wird es für Entwickler komplexer, den Quelltext sowie die enthaltenen Abhängigkeiten zu verstehen. Entsprechend muss ein größerer Aufwand in die Erstellung von Dokumentation gesteckt werden. Eine Möglichkeit zur Dokumentation einer Software mit dem Fokus auf die benutzten Technologien stellen linguistische Architekturen dar. Diese können z. B. durch die MegaL Ontologie beschrieben werden. Da die Erstellung einer solchen linguistischen Architektur für ein beliebiges Softwareprojekt kompliziert ist, beschreibt diese Arbeit einen Ansatz zur automatischen Erstellung einer solchen linguistischen Architektur. Dafür wird das Open Source Framework Apache Jena verwendet, welches Semantic Web Technologien wie RDF und OWL benutzt. Mit diesem können spezifische Regeln definiert werden, welche aus existierenden RDF-Triplen neue ableiten. Dieser Ansatz wird schließlich in einer Case Study an zehn verschiedenen Open Source Projekten getestet. Dabei soll eine linguistische Architektur in MegaL extrahiert werden, welche die Nutzung von Hibernate beschreibt. Mit der Hilfe von spezifischen Metriken wird das Ergebnis dann mit einem internen und externen Ansatz evaluiert.
Aspekt-Orientierung in PHP
(2012)
Diese Diplomarbeit hat das Thema der fehlenden Cross-Cutting-Concerns(CCCs)-Unterstützung in PHP zum Inhalt. Die Basis bilden zu definierende Anforderungen an eine AOP-Realisierung im PHP-Umfeld. Es wird analysiert, wie und ob verwandte Sprachen und Paradigmen es gestatten, CCCs zu unterstützen. Darüber hinaus wird die Möglichkeit erörtert, AOP in PHP ohne PHP-Erweiterung zu realisieren. Weiter werden die bisherigen Ansätze, AOP in PHP umzusetzen, qualitativ untersucht. Die vorliegende Arbeit zielt darauf ab, eine eigene AOP-PHP-Lösung zu präsentieren, die nicht die Schwächen existierender Lösungen teilt.
Semantische Daten zusammen mit General-Purpose-Programmiersprachen zu verwenden stellt nicht die einheitlichen Eigenschaften bereit, die man für eine solche Verwendung haben möchte. Die statische Fehlererkennung ist mangelhaft, insbesondere der statischen Typisierung anbetreffend. Basierend auf vorangegangener Arbeit an λ-DL, welches semantische Queries und Konzepte als Datentypen in ein typisiertes λ-Kalkül integriert, bringt dieses Werk dessen Ideen einen Schritt weiter, um es in eine Echtwelt-Programmiersprache zu integrieren. Diese Arbeit untersucht, wie λ-DLs Features erweitert und mit einer existierende Sprache vereinigt werden können, erforscht einen passenden Erweiterungsmechanismus und produziert Semantics4J, eine JastAdd-basierte Java-Sprachintegration für semantische Daten für typsichere OWL-Programmierung, zusammen mit Beispielen für ihre Verwendung.
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.
Um unterschiedliche Anforderungen zu erfüllen, werden Softwaresysteme oft in Form einer Menge von Varianten entwickelt. Zwei gebräuchliche Ansätze für eine solche Softwareentwicklung sind das clone-and-owning und die Produktlinienentwicklung. Beide Ansätze haben Vor- und Nachteile. In vorheriger Arbeit mit anderen haben wir eine Idee vorgestellt bei der beide Ansätze verknüpft werden um Varianten, Ähnlichkeiten und Softwareklone zu verwalten. Diese Idee basiert auf einer virtuellen Plattform und Operatoren für Softwareklone. In der vorliegenden Arbeit stellen wir einen Ansatz vor um essentielle Metadaten für die Realisierung eines propagate-Operators zu aggregieren. Dafür haben wir ein System entwickelt um Ähnlichkeiten mit Annotationen zu versehen, wobei die Ähnlichkeiten aus der Historie eines Repositories extrahiert werden. Die Annotationen drücken aus wie eine Ähnlichkeit zukünftig gewartet werden soll. Abhängig vom Annotationstyp kann diese Wartung automatisiert ausgeführt oder sie muss vom Benutzer manuell betrieben werden. In dieser Arbeit beschreiben wir die automatisierte Extraktion von Metadaten und das System zur Annotation von Ähnlichkeiten; wir erklären wie das System in den Arbeitsfluss eines bestehenden Programms zur Versionierungverwaltung (Git) integriert werden kann; und abschließend stellen wir eine Fallstudie vor, die das 101haskell-System benutzt.
Das Ziel der vorliegenden Arbeit war es, eine Methode zu entwickeln und zu evaluieren, die es Unternehmen ermöglicht, Werkzeuge des klassischen Dialogmarketings über das Internet zu nutzen. Dazu wurde ein Prototyp einer Internetseite mit erweiterter Echtzeit-Interaktion (eEI) implementiert und anhand eines Nutzertests evaluiert. Hauptbestandteil der Evaluationsmethodik war die auf dem SERVQUAL-Model basierende, fünfdimensionale Messung der "e-service quality" nach Gwo-Guang Lee und Hsiu-Fen Lin. Die statistische Auswertung des Nutzertests hat eine signifikante und positive Korrelation zwischen der im Rahmen dieser Arbeit entwickelten, erweiterten Echtzeit-Interaktion und der Nutzerzufriedenheit gezeigt. Vor der eigentlichen Realisierung der eEI wurde die Akzeptanz bisher eingesetzter Verfahren, auf der Grundlage des "Technology Acceptance Model" nach Fred D. Davis, geprüft.
Empirische Studien in der Softwaretechnik verwenden Software Repositories als Datenquellen, um die Softwareentwicklung zu verstehen. Repository-Daten werden entweder verwendet, um Fragen zu beantworten, die die Entscheidungsfindung in der Softwareentwicklung leiten, oder um Werkzeuge bereitzustellen, die bei praktischen Aspekten der Entwicklung helfen. Studien werden in die Bereiche Empirical Software Engineering (ESE) und Mining Software Repositories (MSR) eingeordnet. Häufig konzentrieren sich Studien, die mit Repository-Daten arbeiten, auf deren Ergebnisse. Ergebnisse sind aus den Daten abgeleitete Aussagen oder Werkzeuge, die bei der Softwareentwicklung helfen. Diese Dissertation konzentriert sich hingegen auf die Methoden und High-Order-Methoden, die verwendet werden, um solche Ergebnisse zu erzielen. Insbesondere konzentrieren wir uns auf inkrementelle Methoden, um die Verarbeitung von Repositories zu skalieren, auf deklarative Methoden, um eine heterogene Analyse durchzuführen, und auf High-Order-Methoden, die verwendet werden, um Bedrohungen für Methoden, die auf Repositories arbeiten, zu operationalisieren. Wir fassen dies als technische und methodische Verbesserungen zusammen um zukünftige empirische Ergebnisse effektiver zu produzieren. Wir tragen die folgenden Verbesserungen bei. Wir schlagen eine Methode vor, um die Skalierbarkeit von Funktionen, welche über Repositories mit hoher Revisionszahl abstrahieren, auf theoretisch fundierte Weise zu verbessern. Wir nutzen Erkenntnisse aus abstrakter Algebra und Programminkrementalisierung, um eine Kernschnittstelle von Funktionen höherer Ordnung zu definieren, die skalierbare statische Abstraktionen eines Repositorys mit vielen Revisionen berechnen. Wir bewerten die Skalierbarkeit unserer Methode durch Benchmarks, indem wir einen Prototyp mit MSR/ESE Wettbewerbern vergleichen. Wir schlagen eine Methode vor, um die Definition von Funktionen zu verbessern, die über ein Repository mit einem heterogenen Technologie-Stack abstrahieren, indem Konzepte aus der deklarativen Logikprogrammierung verwendet werden, und mit Ideen zur Megamodellierung und linguistischen Architektur kombiniert werden. Wir reproduzieren bestehende Ideen zur deklarativen Logikprogrammierung mit Datalog-nahen Sprachen, die aus der Architekturwiederherstellung, der Quellcodeabfrage und der statischen Programmanalyse stammen, und übertragen diese aus der Analyse eines homogenen auf einen heterogenen Technologie-Stack. Wir liefern einen Proof-of-Concept einer solchen Methode in einer Fallstudie. Wir schlagen eine High-Order-Methode vor, um die Disambiguierung von Bedrohungen für MSR/ESE Methoden zu verbessern. Wir konzentrieren uns auf eine bessere Disambiguierung von Bedrohungen durch Simulationen, indem wir die Argumentation über Bedrohungen operationalisieren und die Auswirkungen auf eine gültige Datenanalysemethodik explizit machen. Wir ermutigen Forschende, „gefälschte“ Simulationen ihrer MSR/ESE-Szenarien zu erstellen, um relevante Erkenntnisse über alternative plausible Ergebnisse, negative Ergebnisse, potenzielle Bedrohungen und die verwendeten Datenanalysemethoden zu operationalisieren. Wir beweisen, dass eine solche Art des simulationsbasierten Testens zur Disambiguierung von Bedrohungen in der veröffentlichten MSR/ESE-Forschung beiträgt.