Department für Angewandte Informatik

Software Design

Im Studium

 

Praxisprojekte im Studium

In den Projektarbeiten im vierten und fünften Semester erfolgt eine Vertiefung in speziellen Themen der angewandten Informatik. Unsere enge Zusammenarbeit mit der Wirtschaft und der Industrie, ermöglicht unseren Studierenden, in Projekten reale Fragestellungen aus der beruflichen Praxis zu bearbeiten. Da sie zumeist bereits beruflich tätig sind, können sie aktuelle Themen für Projekte aus ihren Unternehmen einbringen. Auch die Verbindung der Projektarbeit mit der Bachelor-Arbeit ist möglich und kann ebenfalls in einem Unternehmen durchgeführt werden.

Aktuelle Projekte von Studierenden

Event-Ticketsystem mit IBM Bluemix

Gegenstand der Projektarbeit ist die Implementierung und Dokumentation eines Prototyps für ein Cloud-Event-Ticketsystem. Die Implementierung beinhaltet eine REST API, welche die CRUD-Funktionalität für alle Administrationsobjekte umfasst. Des Weiteren sind Funktionen für das Anlegen eines Warenkorbs sowie das Reservieren oder Verkaufen von Tickets vorgesehen. Die Programmierung erfolgt in Javascript für Node.js.

Aufbauend auf dieser API wird eine Web-Applikation mit dem AngularJS Framework implementiert. Diese stellt zwei Betriebsarten bereit: die Administration des Event-Ticketsystems und eine Oberfläche für die Nutzerinnen und Nutzer mit einer Warenkorb-Funktion, für die eine Double-Optin-Anmeldung vorgesehen ist. Als Cloud-Plattform wird IBM Bluemix gewählt, das eine Laufzeitumgebung für Node.js zur Verfügung stellt. Als Bluemix-Services werden SendGrid – ein Cloud-SMTP-Service für den Mailversand – und CloudantDB – eine NoSQL Datenbank mit REST API – eingesetzt.

Die Applikation wird auf der Bluemix-Plattform gestartet. Das Ergebnis ist eine lauffähige Anwendung, die die beschriebene Funktionalität implementiert. Ein offenes Problem ist, dass es bei Verwendung der Cloudant-DB Replikation zu einem Überbuchen der Veranstaltung kommen kann, also mehr Tickets einer Veranstaltung verkauft werden könnten, als Plätze vorhanden sind.

Webbrowser-Engines mit C# und WPF

In dieser Arbeit wird ein Vergleich von vier Web Browser Engines in C# und WPF angestellt. Geprüft wird die Möglichkeit, aus der Anwendung heraus auf das Document Object Model der Webseite zuzugreifen und es zu manipulieren. Des Weiteren wird geprüft, ob und wie es möglich ist, Javascript auf der Webseite durch eine C#-Methode aufzurufen und fremdes Javascript in die Webseite zu injizieren. Ein Benchmark Test wird die Leistungsfähigkeit der einzelnen Web Browser zeigen.

Lösungsansatz für ein Batch Processing Problem in der Halbleiterproduktion

Die Halbleiterproduktion besitzt einen komplexen Produktionsprozess, bedingt durch viele zu produzierende Produktarten und die bis zu 300 Prozessschritte umfassende Herstellung eines Chips. Als Ziel gilt zum einen die Einhaltung des Lieferdatums des Produkts und zum anderen die möglichst hohe Auslastung der prozessierenden Maschinen. Dadurch ergibt sich eine Vielzahl von Optimierungsproblemen, die durch herkömmliche Algorithmen manchmal nur unzureichend gelöst werden können. Neben anderen mathematischen Optimierungsverfahren wie Mixed Integer Programming oder Dynamic Programming konnte der deklarative Ansatz Constraint Programming in den letzten Jahren Erfolge beim Lösen von komplexen Optimierungsproblemen erzielen. Daher bietet sich Constraint Programming als Lösungsansatz an. Ziel dieser Arbeit ist es, einen Einblick in die Konzepte des Constraint Programming zu geben und ein Problem aus dem Bereich der Halbleiterfertigung zu modellieren und zu lösen.

Evaluierung der Client-Erstellung zur Benutzerinteraktion für Enigma2 basierende Set-Top-Boxen

Enigma2 repräsentiert ein auf Linux basierendes Betriebssystem, das auf namhaften Set-Top-Boxen, wie zum Beispiel der Dreambox, zum Einsatz kommt. Die Benutzerinnen und Benutzer fordern eine immer weitere Vernetzung ihrer Multimedia-Geräte. Daher soll mit dieser Evaluierung analysiert werden, ob es möglich ist, für das Betriebssystem Enigma2 eine interaktive Anwendung für Userinnen und Usern zu erstellen. Im Zuge dessen werden das durch Enigma2 zur Verfügung gestellte Application Programming Interface und die verfügbaren Komponenten evaluiert. Im Anschluss dran wird eine Referenzanwendung implementiert, die es ermöglichen soll, Daten mit der Fernbedienung zu erfassen, zu persistieren und in weiterer Folge wieder auf dem Bildschirm darzustellen.

Entwurf und Implementierung einer Applikation zur Aufzeichnung und Verarbeitung von aktuellen und prognostizierten Wetterdaten zur Unterstützung von Aktivitäten in einer Kläranlage

Ziel dieser Arbeit ist, einen Prototyp zur Erfassung, Persistenz, Verarbeitung und Visualisierung von aktuellen und prognostizierten Wetterdaten zur Unterstützung von Aktivitäten in einer Kläranlage zu entwickeln. Zur Verarbeitung der aktuellen Wetterdaten soll die unternehmenseigene Wetterstation „iMetos D2“ verwendet werden. Im Zuge dieser Arbeit werden die Möglichkeiten, einer automatisierten Datenabfrage über eine Schnittstelle der Station evaluiert und in weiterer Folge umgesetzt. Die abgefragten Daten werden in einer SQL-Datenbank persistiert und im Intranet des Unternehmens grafisch dargestellt.

Datenbankseitige Trennung von Produkt- und Kundenkonfiguration

Die Projektarbeit beschäftigt sich mit dem Bedarfsfall, dass für in einer Software abgebildete Prozesse einerseits Standardkonfigurationen ausgeliefert werden, andererseits die Anwenderinnen und Anwender die Konfiguration erweitern. Hingegen sollen die Produktkonfigurationen von den Anwenderinnen und Anwendern nicht verändert werden können. Kundenkonfigurationen wiederum dürfen bei einem Upgrade auf eine neuere Software-Version nicht vom Software-Anbieter verändert werden. In einem Bestandssystem sind diese beiden Bereiche nicht klar getrennt, wodurch bei Upgrades Migrationsprobleme auftreten können. Um dieses Problem für ein Bestandssystem zu lösen, ist es erforderlich, die Trennung zwischen Produkt- und Kundenkonfiguration mit möglichst wenigen Änderungen am bestehenden Code zu ermöglichen.

Entwicklung einer Universal App für Windows und Windows-Phone mit XAML und C#

In den letzten Jahren sind Apps immer bedeutenderer für die Softwareindustrie geworden. Bei der Entwicklung einer neuen App stellt sich jedoch die Frage, auf welchen Plattformen sie laufen soll. In vielen Fällen beschränkt man sich vorerst auf Android und iOS. Vor allem die Windows-Plattformen werden immer wieder vernachlässigt. Um den Anschluss am Markt für mobile Geräte nicht zu verlieren und neue Entwicklerinnen und Entwickler auf die eigenen Plattformen zu locken, veröffentlichte Microsoft 2014 das Universal App Framework. Dank diesem Framework soll es möglich sein, mit geringem Aufwand und viel wiederverwendbarem Code, eine App zu schreiben, die auf allen Geräten ab Windows 8 oder Windows-Phone 8.1 läuft. Diese Seminararbeit soll anhand der Entwicklung eines umfangreichen Prototyps Aufschluss darüber geben, wie gut das Konzept der Universal Apps funktioniert. Die Ergebnisse sollen einerseits zeigen, wie viel Code tatsächlich wiederverwendet werden kann, andererseits die Stärken und Schwächen des Frameworks erläutern.