Lehre

Softwarearchitektur (Bachelor)

Dieser Kurs vermittelt grundlegende Techniken zum Entwurf, zur Beschreibung und zur Implementierung von großen, modularen Softwaresystemen. Zentraler Begriff der Vorlesung sind Patterns, welche als Grundprinzipien und Bausteine einer Softwarearchitektur verstanden werden können. Der Kurs führt Patterns auf verschiedenen Ebenen eines Softwaresystems ein: Auf Implementierungsebene (Programming Idioms), auf Ebene verschiedener Softwaremodule, Klassen und deren Zusammenspiel (Design Patterns), und schließlich als prototypische Struktur für ganze Anwendungen (Architectural Patterns). Muster werden anhand von Programmbeispielen veranschaulicht. Es werden mehrere Programmierübungen im Labor bearbeitet.

Weitere Informationen erhalten Sie im Modulhandbuch der TH Nürnberg.

Automotive Software Engineering (Master)

Dieser Kurs vermittelt ein grundlegendes Verständnis von Methoden und Prinzipien der automobilen Software-Entwicklung.

Dazu gehören Kenntnisse über die Entwicklung von eingebetteten Systemen sowie über den Automotive Softwareentwicklungsprozess inklusive Anforderungsmanagement im Allgemeinen. Weiterhin wird Wissen über AUTOSAR als zentraler Standardisierungsinitiative in der Automotive-Domäne und FlexRay als zentraler, moderner Vertreter automobiler Bussysteme vermittelt.

Neben der theoretischen Aufbereitung und Diskussion in den Vorlesungsteilen werden die Lehrinhalte zudem im Rahmen von Laborübungen von den Studierenden praktisch angewandt. Des Weiteren gestalten die Studierenden selbstständig Fachvorträge inklusive Übungseinheiten, in denen vertiefende Themen des Themenfeldes Automotive in strukturierter Form aufbereitet werden sollen.

Weitere Informationen erhalten Sie im Modulhandbuch der TH Nürnberg.

Automotive Systems Modelling (Master)

Dieser Kurs vermittelt grundlegendes Verständnis der Modellierung von automobilen Systemen. Dazu gehören sowohl Kenntnisse über die Entwicklung von eingebetteten Systemen als auch über den Automotive Softwareentwicklungsprozess im Allgemeinen. Dazu werden AUTOSAR und EAST-ADL verwendet, welche als Standard in der Automotive-Domäne zur Beschreibung der abstrakten Systemarchitektur gelten. Ein Schwerpunkt liegt dabei insbesondere auf der Initiative zur IT-Security und Zuverlässigkeit.

Die Lehrinhalte werden durch Anwendung in praktischen Laborübungen sowie durch analytische und gestalterische Tätigkeiten im Rahmen einer Literaturarbeit vertieft.

Weitere Informationen erhalten Sie im Modulhandbuch der TH Nürnberg.

Ausgeschriebene Projekte

Entwicklung eines autonom fahrenden Modellfahrzeugs basierend auf AUTOSAR unter Verwendung der Vector Werkzeugkette

Basierend auf AUTOSAR soll ein autonom fahrendes Modellfahrzeug unter Verwendung der Vector Werkzeugkette entwickelt werden. Als Steuergerät wird das VC121 von Vector verwendet. Einschlägige Vorarbeiten liegen vor.

Kommunikation zweier Boards über Ethernet TCP/IP — Vorarbeiten vorhanden

Bei dem Projekt geht es darum, zwei TC29xT-Boards über einen Ethernet-Bus miteinander kommunizieren zu lassen. Die Boards sind mit einem LCD-Touch-Display ausgestattet. Idealerweise werden Eingaben über das Display an das andere Board gesendet und dort auf dem Display angezeigt.

Zur erfolgreichen Durchführung des Projekts ist die Einarbeitung in die Elektrobit Software (Tresos Studio) und einen Compiler (WindRiver oder Tasking) unabdingbar. Für beides liegen bereits ausführliche Informationen und Vorarbeiten vor.

Die benötigte Hardware und Software werden von der Hochschule gestellt. 

Versuche auf einem MultiCore-Board

Bei diesem Projekt sollen Software-Komponenten zwischen den Kernen eines TC29xT Board verschoben werden.

Zur erfolgreichen Durchführung des Projekts ist die Einarbeitung in die Elektrobit Software (Tresos Studio) und einen Compiler (WindRiver oder Tasking) unabdingbar. Für beides liegen bereits ausführliche Informationen und Vorarbeiten vor.

Die benötigte Hardware und Software werden von der Hochschule gestellt.

Entwicklung eines autonom fahrenden Modellfahrzeugs unter Verwendung einer 2D Kamera

Ein autonom fahrendes Modellfahrzeug soll unter Verwendung einer 2D Kamera entwickelt werden. Das Modellfahrzeug basiert auf dem NXP Bausatz; für die Anbindung der 2D Kamera kann man ein Raspberry Pi verwenden. Einschlägige Vorarbeiten liegen vor.

Umsetzung eines FlexRay Cluster im Automotive Labor basierend auf Vorarbeiten

FlexRay ist ein Feldbussystem für den automobilen Einsatz, einen kurzen Überblick zum Standard gibt es hier.

Die für eine erfolgreiche Umsetzung eines FlexRay Cluster nötige Hardware ist im Automotive Labor vorhanden.

 

 

Optimierung mit Simulink®

Simulink ist eine Blockdiagrammumgebung für die Simulation, die unter anderem in der Modellierung von Fahrzeugsoftware verwendet wird. Simulink unterstützt den Entwurf und die Simulation auf Systemebene und bietet eine Entwurfsoptimierung an. Aufgabe dieses IT-Projektes ist die Einarbeitung in diese Entwurfsoptimierung und die Ausarbeitung eines didaktischen, Automobilbeispiels.
Vorkenntnisse im Bereich Modellierung und Simulink sind von Vorteil.

NXP Cup

Bei diesem IT-Projekt können Studierende der Fakultät Informatik an einem internationalen Wettbewerb 2020 teilnehmen, bei dem autonom fahrende Modellautos auf hindernisgespickten Rennstrecken um Bestzeiten kämpfen. Da die zu Verfügung stehende Hardwarebasis für alle Teilnehmer identisch ist, wird die Rennperformance der Autos primär von der Qualität der eigens implementierten Embedded-Software beeinflusst. Weitere Informationen zum NXP Cup gibt es hier: https://community.nxp.com/groups/tfc-emea


Die Hardware wird von NXP gesponsert. Die Teilnahme am NXP Cup 2020 ist Teil des Projekts.

Laufende Projekte

Abgeschlossene Projekte

Überarbeitung der Softwarearchitekturmaterialien auf Java 8 und in Auszügen auf Scala

In diesem Projekt geht es um die Überarbeitung der Übungsaufgaben (und teilweise der Vorlesungsmaterialien) des Kurses Softwarearchitektur auf Java8.

Realisierung einer Bluetooth-Schnittstelle zwischen einem Raspberry Pi und einem Arduino sowie Identifikation verschiedener Anwendungsszenarien

In diesem Projekt geht es um die Realisierung einer Bluetooth-Schnittstelle zwischen einem Raspberry Pi und einem Arduino sowie die Identifikation verschiedener Anwendungsszenarien basierend auf der Technologie sowie Anbindung an die bestehende Infrastrukture (AUTOSAR-basierte Steuergeräte). Die Arduinos müssen nicht miteinander kommunizieren, sondern nur mit dem zentralen RaspberryPi, der die Schnittstelle zur Infrastruktur darstellt. Arduinos sollen als dezentrale Peripherie angesehen werden und mit Sensoren sowie Aktoren bestückt werden, die über Bluetooth Daten an den RaspberryPi senden und empfangen können.

 

 

Evaluierung von virtuellen Desktops (Windows und Linux)

In diesem Projekt geht es um die Evaluierung der Fragestellung, ob virtuelle Desktops für die Arbeit der Studierenden an der Fakultät sinnvoll sind. Unsere Annahme ist, dass virtuelle Desktops den Studierenden ein orts- (unabhängig vom Aufenthaltsort), zeit- (unabhängig von den Laboröffnungszeiten) und device- (unabhängig vom verwendeten Gerät und Betriebssystem) unabhängiges Arbeiten ohne zusätzlichen Konfigurationsaufwand (start wherever you‘ve stopped) ermöglichen würde. Für dieses Projekt ist es notwendig, sich mit Windows Server 2012 (unter Anleitung unseres Laboringenieurs Herrn Robert Fischer) und mit einem Linux Server System (unter Anleitung unseres Laboringenieurs Herrn Peter Götz) zu befassen. Vertiefend geht es aber um Usability Untersuchungen sowie systematische Nutzeruntersuchungen.

Entwicklung eines OP-Management Systems mit einem Content Management System für das Klinikum Nord

In diesem Projekt geht es um die Entwicklung eines OP-Management Systems mit einem Content Management System. Die Anästhesisten haben sich bereits Gedanken diesbezüglich gemacht und eine einfache Version dieses Systems entwickelt. Allerdings ist der Wunsch, dieses in ein Content Management System zu übertragen, um es browserfähig (für das Intranet) zu machen. Dies ist das ideale Projekt, um die ganze Bandbreite der Entwicklung (beginnend bei der Analyse zusammen mit Stakeholdern bis hin zur Entwicklung und Schulung der Mitarbeiter) in einem interessanten Anwerndungsfeld zu erfahren.


Entwicklung eines optimalen Lego-Mindstorms Roboters

Wurde als Referenzprojekt für die Lehrveranstaltung Software Engineering bearbeitet.

Optimierung von Softwarearchitekturen

In diesem Projekt geht es um die Implementierung einer multikriteriellen Optimierungsanalyse für die Softwarearchitektur eines Fahrzeugsteuergerätes. Die Softwarearchitektur ist modelliert mit der EAST-ADL. Dabei setzen wir auf Vorarbeiten zweier IT-Projekte auf, die die Implementierung eines Eclipse Plug-in zur Generierung von Optimierungskandidaten sowie eine einkriterielle Optimierungsanalyse realisiert haben. Diese Optimierungskandidaten liegen als XML Dateien vor und sollen im Rahmen von diesem Projekt in Bezug auf unterschiedliche Ziele hin (beispielsweise Echtzeitverhalten/Durchsatz/Fehlerfortpflanzung/...) analysiert werden; die pareto-optimale Architektur dient dann als Basis für die Implementierung des Steuergerätes.
Die Arbeit findet statt im Rahmen eines Europäischen Forschungsprojektes (MAENAD) und bietet spannende Einblicke in die Forschung  der Automobiltechnik.
Gut wären Vorkenntnisse im Bereich JavaEclipse und XML.

Security für Fahrzeugsoftware

Der Schutz gegen böswillige Eingriffe in die Fahrzeugsoftware ist eine dringende Herausforderung, da das vernetzte Fahrzeug ein hohes Gefahrenpotenzial birgt. In diesem IT-Projekt soll der aktuelle Stand der Technik im Bereich der Security für Fahrzeugsoftware aufbereitet werden und anhand eines Beispielsmodells veranschaulicht werden.
Vorkenntnisse im Bereich Fahrzeugsoftware sind von Vorteil.

UML Profil für Rational Rhapsody

Rhapsody ist ein UML-Modellierungswerkzeug, das auch die Erstellung und Nutzung von UML-Profilen unterstützt. Es soll im Rahmen dieses Projekts ein EAST-ADL Profil für Rhapsody erstellt werden, so dass EAST-ADL Modelle in Rhapsody erstellt werden können.
Vorkenntnisse im Bereich UML sowie UML-Modellierungswerkzeuge wären von Vorteil.

Didaktisch aufbereitetes Referenzbeispiel in Java

In diesem IT-Projekt geht es um die Erstellung eines sauber implementierten Referenzbeispiels in Java, das auf den Vorarbeiten eines IT-Projekts aufbaut. Aufgabe ist hierbei, eine sauber implementiertes Java Programm zu erstellen, das den Vorgaben des Clean Code genügt und die Anwendung unterschiedlicher Entwurfsmuster und Programmieridiome zeigt. Beispiele für Konzepte, die anhand des Javaprogramms gezeigt werden sollen: Mixin, Defensive Kopien, Bridge, Proxy, richtige Kommentierung... Das Architekturmuster Model-View-Controller ist in der Vorarbeit bereits sehr erfolgreich realisiert.
Anhand dieser Arbeit erhöht man die eigene Sensibilität für sauberes Programmieren und bietet zusätzlich ein gutes Gerüst, von dem andere Studierende lernen können, da dieses Beispiel in der Lehre und in meinen Skripten verwendet werden soll.
Gut wären Vorkenntnisse im Bereich der Programmierung von Java sowie der genannten Programmierkonzepte.

Ausgeschriebene Abschlussarbeiten

Bachelorarbeit zum Thema "Analyse der Robustheit von LIME"

Deep Neural Networks (DNN) gelten derzeit als das effektivste und mächtigste Machine Learning (ML)-Verfahren schlechthin zur Verarbeitung komplexer Sachverhalte, beispielsweise der Erkennung von Objekten in einem Bild. DNNs sind hochkomplex, sodass der Output (die Klassifikation des Inputs) von Menschen kaum nachvollzogen werden kann, beispielsweise weshalb eine Katze auf einem Bild als Katze erkannt wurde. Erklärungen der Entscheidungen eines ML-Modells sind jedoch essentiell  für die Akzeptanz der Systeme innerhalb der Gesellschaft. Bisher gibt es bereits unterschiedliche Ansätze um die Relevanz bestimmter Eingabepunkte (so beispielsweise einzelner Pixel bei Bildern oder Schlüsselwörtern bei Texten) für die Ausgabe zu identifizieren. Einer der bekanntesten eXplainable AI (XAI)-Ansätze ist LIME (Local Interpretable Modelagnostic Explanations). LIME kreiert für jede zu erklärende Ausgabeklasse ein Referenzmodell, anhand dessen es die Relevanz der Eingabepunkte zur Ausgabe definiert. LIME akzeptiert unterschiedliche Parameter und bietet verschiedene Vorgehensweisen an, die Ausgaben zu erklären.

Ziel dieser Abschlussarbeit ist es, herauszufinden, wie sich das Verändern von Parametern oder Vorgehensweisen auf die Qualität der Erklärungen auswirkt.

Literatur:
Ribeiro, M. T., Singh, S., & Guestrin, C. (2016). “Why Should I Trust You?”: Explaining the Predictions of Any Classifier. KDD ’16 Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, 1135–1144.https://doi.org/10.1145/2939672.2939778
Alvarez-Melis, D., & Jaakkola, T. S. (2018). On the Robustness of Interpretability Methods, (Whi). Retrieved fromhttp://arxiv.org/abs/1806.08049

Bachelorarbeit zum Thema "Implementierung und Analyse der Effektivität von Prototype Neural Networks"

Weshalb ein Machine Learning-System zu einer bestimmten Ausgabe kommt, ist bisher für Menschen nur schwer nachvollziehbar. Warum wurde beispielsweise eine Katze auf einem Bild als eine Katze erkannt? Machine Learning-Ausgaben zu erklären ist ein heiß diskutiertes Thema in Forschung und Industrie. Bisher gibt es bereits vielversprechende Ansätze.


Ein interessanter, obwohl wenig diskutierter, Ansatz sind Prototype Neural Networks zur Erkennung von Bildern. Es handelt sich hierbei um Neuronale Netze, welche ein besonderes Layer besitzen, ein sogenanntes Prototype Layer. In diesem Layer ist für jede Ausgabeklasse ein Referenzbild abgespeichert, mit welchen die Eingabe verglichen wird. Durch das Berechnen der Ähnlichkeit der Eingabe zu den Referenzbildern, wird eine Annäherung geschaffen, welche als Erklärung genutzt werden kann.


In dieser Abschlussarbeit soll ein Prototype Neural Network, bspw. für den Datensatz cifar-10 (https://www.cs.toronto.edu/~kriz/cifar.html), implementiert und seine Effektivität analysiert werden. Die Hauptfrage ist, ob sich Prototype Neural Networks eignen, Ausgaben angemessen zu erklären. Gegebenenfalls können Verbesserungen für Prototype Neural Networks herausgearbeitet oder die Auswirkungen von Adversarial Examples auf die Ausgaben und Erklärungen analysiert werden.


Literatur:
Li, O., Liu, H., Chen, C., & Rudin, C. (2017). Deep Learning for Case-Based Reasoning through Prototypes: A Neural Network that Explains Its Predictions. https://aaai.org/ocs/index.php/AAAI/AAAI18/paper/view/17082

Bachelorarbeit zum Thema "Empirische Untersuchung zur Zukunft des autonomen Fahrens"

In der Arbeit soll empirisch untersucht werden, wie sich das Verhalten im Verkehr ändern wird, wenn das voll autonome Fahren etabliert sein wird. Im Rahmen der Szenariotechnik oder der Zukunftswerkstatt sollen künftige Nutzungsszenarien erarbeitet und deren Plausibilität empirisch analysiert werden.

Bachelorarbeit zum Thema "Aufbereitung eines Videospiels und Implementierung eines Interfaces zum Trainieren eines Neuronalen Netzes"

Zum Trainieren eines Objekterkennungssystems werden Samples benötigt, welche aus gelabelten Bildern bestehen. Um einer künstlichen Intelligenz das Spielen eines Videospiels beizubringen, muss das Spiel daher entsprechend aufbereitet werden. Hauptaufgabe der Arbeit ist es, die Anforderungen eines solchen Interfaces zu definieren und anhand eines selbst gewählten Videospiels prototypisch umzusetzen. 

Das Ergebnis der Bachelorarbeit soll als Vorarbeit für weitere Projekte dienen.

Empfohlen wird die Abschlussarbeit MIN-Studierenden, aber auch IN/WIN-Studierende können das Thema erfolgreich bearbeiten.

Bachelorarbeit zum Thema "Spielen von 'Sonic the Hedgehog' unter Verwendung eines Neuronalen Netzes und Reinforcement Learning"

Es gibt bereits einige Beispiele von videospielenden künstlichen Intelligenzen. So wurden bereits Super Mario World (SNES, 1992), Super Mario Kart (SNES, 1993), Doom (1993) und Flappy Bird (2013) erfolgreich von Computern gespielt.
In dieser Bachelorarbeit geht es darum, einer künstlichen Intelligenz beizubringen, das Videospiel 'Sonic the Hedgehog' für den Sega Megadrive aus dem Jahre 1991 zu spielen.

Die Arbeit richtet sich nach einem Wettbewerb von OpenAI. Die Deadline ist bereits um, dennoch können die vom Wettbewerb zur Verfügung gestellten vorbereiteten Level genutzt werden, was die Zeit der Vorarbeit verkürzt, sodass direkt mit der Implementierung und dem Trainieren des Netzes begonnen werden kann.

Masterarbeit zum Thema "Analyse der Schutzmechanismen vor einem Reverse Shell Angriffsvektor auf ein Automotive Infotainment System via Fernzugriff anhand einer Machbarkeitsstudie"

In diesem Projekt geht es um die Untersuchung der Security-Mechanismen eines automotiven Infotainment-Systems. Durch einen Reverse-Shell-Angriffsvektor wird versucht, die Kontrolle über das Infotainment-System via Fernzugriff zu erlangen und generische Nachrichten über das eingebaute CAN-Interface zu versenden. Durch den Angriff werden ggf. Sicherheitslücken und die Machbarkeit eines Angriffs über kabellose Kommunikation aufgezeigt.


Vorkenntnisse im Bereich Automotive und/oder Security sind vorteilhaft.

Themenbörse

Im Rahmen von Forschungsprojekten und Promotionen ergeben sich regelmäßig Themen, die für studentische Abschlussarbeiten geeignet sind. Studierende können sich im Rahmen von Abschlussarbeiten durch die eigenständige Umsetzung ausgewählter Teilaufgaben an der Umsetzung des Gesamtprojektes beteiligen.

Konkrete Themen wären beispielsweise:

  • Anwendung und Umsetzung von Ansäten der eXplainable Artificial Intelligence (XAI) bei autonomen Roboterfahrzeugen
  • IT-Sicherheit bei Automotive Software
  • Werkzeugunterstützung für die Automotive Architekturbeschreibung mit der EAST-ADL
  • Evaluierung vorhandener Software-Werkzeuge im Bereich der mathematischen Programmierung

Abschlussarbeiten in diesem Bereich sind stark an industriellen Belangen (vor allem der Automobilindustrie) orientiert und haben gleichzeitig einen hohen wissenschaftlichen Anspruch.

Des Weiteren ergeben sich durch unsere Kooperationspartner, unter anderem Elektrobit, Continental, Audi, Infineon, Intence, Timing Architects, Volvo, XKrug, industrielle Forschungsfragen, die in enger Zusammenarbeit mit der Industrie im Großraum Nürnberg zu bearbeiten sind. Das Themenspektrum ist hier sehr groß, umfasst aber insbesondere das Automotive Software Engineering, also neben EAST-ADL und AUTOSAR auch die Entwicklung von Echtzeitsystemen allgemein, Bussysteme sowie Entwicklungsumgebungen für die Implementierung von eingebetteten Systemen.

Bei Interesse an den genannten Themen können Sie sich gerne an Professor Tavakoli wenden.

Konkrete Vorgaben, die an eine Abschlussarbeit gestellt werden, finden Sie hier.

Anmeldezeitraum für Abschlussarbeiten

Sie wollen eine Abschlussarbeit (Bachelor-/Masterarbeit) bei Professor Tavakoli als Erst- oder Zweitkorrektor schreiben? Dann können Sie sich für eine Betreuung im Wintersemester in der Zeit vom 15.05.-15.07. und für eine Betreuung im Sommersemester in der Zeit vom 15.12.-31.01. bewerben.

WICHTIG: Bitte denken Sie daran, dass das gesamte Bewerbungsverfahren inklusive der offiziellen Anmeldung der Abschlussarbeit in dem angegebenen Zeitraum abgeschlossen sein muss. Spätere Anmeldungen der Abschlussarbeiten werden nicht akzeptiert.