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.

Requirements Engineering (Bachelor)

Dieser Kurs vermittelt grundlegendes Verständnis von Methoden und Prinzipien des Requirements Engineering. Dazu gehören Kenntnisse über die Analysephase im Allgemeinen sowie über

  • Techniken und Methoden zur Erhebung, Spezifikation und Inspektion von Anforderungen,
  • UML und SysML Analysemodelle,
  • BPMN
  • Feature Modellierung
  • Requirements Manegment in DOORS Next
  • weitergehende Kenntnisse für das erfolgreiche Absolvieren der Prüfung „Certified Requirements Engineer“, Foundation Level

im Besonderen. Die Inhalte werden in Übungen sowie in Literaturarbeit vertieft.

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 sowie zu AUTOSAR, als der zentralen Standardisierungsinitiative in der Automotive Domäne (dabei insbesondere die implementierungsnahen Beschreibungsmittel) und FlexRay, als ein zentraler, moderner Vertreter automobiler Bussysteme, im Besonderen. Die Lehrinhalte werden, neben der theoretischen Aufbereitung und Diskussion in den Vorlesungsteilen, 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.
Aufgelockert wird der Kurs durch kleinere praktische Einheiten am BMWi3, so beispielsweise Zugang zum CAN Bus und Zugriff auf verschiedene Steuergeräte.

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

Ausgeschriebene Projekte - Letzte Aktualisierung März 2024

OHMetaRunner

Ausschreibung IT-Projekt: OHMetaRunner

Der OHMetaRunner repräsentiert ein Modellauto im Maßstab 1:10, das als Plattform zur Implementierung von Machine Learning Algorithmen fungiert. Mit dem Ziel, die Komplexität des alltäglichen Straßenverkehrs zu reduzieren, ist dieses robotische System mit realen Sensoren, Aktoren und Bussystemen ausgestattet, die üblicherweise in autonomen Fahrzeugen zum Einsatz kommen. Diese Ausstattung ermöglicht die Evaluierung von Machine Learning Ansätzen unter realen Bedingungen, wodurch Tests nicht nur auf Simulationen beschränkt sind.

Für die Lehre schafft der OHMetaRunner eine fakultätsübergreifende Plattform, die für Lehrveranstaltungen zu Software-Engineering und maschinellem Lernen, sowie für innovative Lehrwettbewerbe genutzt werden kann

Praktische Inhalte des IT-Projektes:

Während der Projektphase soll ein OHMetaRunner-Fahrzeug mithilfe der bestehenden Anleitung und dem vorhandenen Bausatz aufgebaut werden. Der Bausatz umfasst ein modernes Fahrwerk mit elektrischen Motoren, Akku, einen Einplatinenrechner zur Ansteuerung von Sensoren und Aktoren, Laserscanner, eine inertiale Messeinheit bestehend aus Beschleunigungs- und Drehratensensor, Infrarot-Abstandssensoren, Ultraschallsensoren. Nach Erfolgreichem Aufbau soll dieser in Betrieb genommen werden.

Die bestehende Software verwendet als Kommunikationssystem das Robot Operating System (ROS). Da der OHMetaRunner für innovative Lehrwettbewerbe genutzt werden soll und für viele Studierende ROS unbekannt ist, soll nach einem alternativen Softwaresystem gesucht werden, das für studentische Lehrwettbewerbe geeignet ist. Beispielhaft könnte hier eine Python-Klasse implementiert werden, die die CAN-Schnittstelle ansteuert und darüber die Sensorwerte ausliest und Steuerungsbefehle für die Aktoren sendet.

Abgeschlossene Projekte

OHMeta Runner Robotik

Für das akzeptierte Staedtler Projekt „Autonom fahrende Modellfahrzeuge basierend auf erklärbaren Meta Learning Klassifikatoren“ soll ein robuster und qualitativ hochwertiger Roboter-Bausatz für Forschung und Lehre, basierend auf den Vorerfahrungen bei der Fakultät efi, mit der hier intensiv zusammengearbeitet wird, entwickelt werden. Der Robotikaufbau soll eine performante Ausführung von ML Komponenten ermöglichen und alle relevanten Sensoren und Aktuatoren umfassen, die für eine autonome Bewältigung eines Parcours notwendig sind. Insbesondere umfasst der Bausatz ein modernes Fahrwerk mit elektrischen Motoren und Motorsteuerung, Akku und Batteriemanagement, Einplatinenrechner, Laserscanner, eine inertiale Messeinheit als Kombination mehrerer Inertialsensoren wie Beschleunigungssensoren und Drehratensensoren, Infrarot-Abstandssensoren, Ultraschallsensoren sowie ein Ackermann-Lenksystem.

Insgesamt sollen fünf baugleiche Robotikaufbauten erstellt werden, so dass diese als fakultätsübergreifende Plattform für innovative Lehrwettbewerbsformate genutzt werden können.

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.

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.

Ü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

Masterarbeit im Forschungsbereich Robustheit von Objekterkennungssystemen für Autonomes Fahren

Zum Wintersemester 2024/25 suchen wir eine vielseitig interessierte Person als Studentische Hilfskraft oder für eine Masterarbeit im Forschungsbereich Robustheit von Objekterkennungssystemen für Autonomes Fahren (m/w/d) für 10-19 h/Woche.

Die Tätigkeit beinhaltet die Implementierung und Anwendung verschiedener Robustheitstests für Objekterkenner für 3D Punktwolkendaten.

Unser Angebot:

  • Forschung an aktuellen und zukunftsorientierten Themen
  • Einblicke in wissenschaftliches Arbeiten

Ihr Profil:

  • Erfahrungen im Bereich Programmierung mit Python
  • Wünschenswert: Erfahrungen im Bereich maschinelles Lernen

Für weitere Informationen kontaktieren Sie bitte Prof. Dr. Ramin Tavakoli Kolagari.

Letzte Aktualisierung: März 2024

Bachelorarbeit zum Thema "Analyse der Beziehung zwischen Adversarial Examples und eXplainable AI"

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. eXplainable AI (XAI)-Ansätzebieten nun die Möglichkeit, Transparenz und Erklärbarkeit für ML-Algorithmen zu erreichen.

In dem Forschungsprojekt DB-VAL, in dem wir mit der db Cargo zusammen arbeiten, möchten wir auf Basis von Adversarial Examples ML-Systeme auf Robustheit untersuchen und mit Ansätzen der XAI verknüpfen. Ziel dieser Abschlussarbeit ist es herauszufinden, wie sich Robustheitstests mit Ansätzen der XAI verknüpfen lassen.

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

Adversarial Examples: https://nicholas.carlini.com/writing/2019/all-adversarial-example-papers.html

Letzte Aktualisierung: März 2024

Cooperation Project with Volvo in Gothenburg: Virtual Vehicle Tools and Technologies

Vehicle development is a complex and costly task, involving building prototype vehicles and experiment setups for physical evaluation. By creating virtual components and vehicles, it is possible to complement and leverage on the physical testing, and thus gain important quality, time and cost advantages. This task is about developing tools and technologies useful for defining virtual vehicles. You would create modeling and synthesis tools that helps engineers going from models to virtual subsystems and vehicles. There is broad support in all respective areas and a close cooperation with Volvo in Gothenburg, including online and physical meetings, will be offered. An appropriate compensation will be offered.

Anforderungen an eine Abschlussarbeit

Konkrete Vorgaben, die an eine Abschlussarbeit gestellt werden, finden Sie auf dieser Confluence-Seite (nur mit Login).

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ätzen der eXplainable Artificial Intelligence (XAI) bei autonomen Roboterfahrzeugen
  • IT-Sicherheit bei Automotive Software
  • Werkzeugunterstützung für die Automotive Architekturbeschreibung mit der EAST-ADL

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.

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.