Software Architecture (undergraduate course)

This course teaches students the essential techniques for designing, describing, and implementing large, modular software systems. One of the central terms used in lectures is patterns, which can be understood as the basic principles and building blocks of software architecture. The course introduces patterns at various levels of a software system: at the implementation level (programming idioms), at the level of various software modules, classes, and their interaction (design patterns), and, finally, as prototype structures for complete applications (architectural patterns). Patterns are illustrated using program examples. In the lab, students will work through multiple programming exercises.

For more information, please see the Ohm’s module handbook.

Requirements Engineering (undergraduate)

  • Techniques and methods for collecting, specification of, and inspection of requirements,
  • UML and SysML analysis models,
  • BPMN
  • Feature modelling
  • Requirements management in DOORS Next
  • advanced knowledge to be able to successfully complete the Certified Requirements Engineer, Foundation Leve, examination

in particular. The contents are reinforced through exercises and literature review.

For more information, please see the Ohm’s module handbook.

Automotive Software Engineering (master’s course)

AUTOSAR as the central standardization initiative in the automotive domain (especially the implementation-related description method), and FlexRay, as a central, modern representation of automotive bus systems, in particular. In addition to theoretical preparation and discussion in the lecture components, students will also have the opportunity to apply the teaching content in practical lab exercises. Furthermore, students will also independently organize specialist lectures, including exercise units involving structured coverage of in-depth subjects from the automotive field.
The course is broken up by smaller practical units on the BMWi3, for example, access to the CAN bus and to various control units.

For more information, please see the Ohm’s module handbook.

Completed projects

OHMeta Runner Robotics

In the project “Autonomously driving model vehicles based on explainable meta learning classifiers”, which has been accepted by Staedtler, a robust and high quality robot kit will be developed based on the experience in the efi Faculty, a close partner in the project, for research and teaching. The robotic setup should allow for a high performance execution of ML components and include all relevant sensors and actuators necessary to complete a course autonomously. In particular, the kit includes an advances landing gear with electric motors and motor control, battery and battery management, single-board computer, laser scanner, an inertial measurement unit as a combination of several inertial sensors such as accelerometers and angular rate sensors, infrared distance sensors, ultrasonic sensors, and an Ackermann steering system.

A total of five identical robotic setups will be created to be used as a cross-Faculty platform for innovative teaching competition formats.


In this IT project students from the Faculty of Computer Science can participate in a 2020 international competition in which autonomous model cars compete to achieve the best time on obstacle-riddled race circuits. As the available basic hardware is identical for all participants, the cars’ race performance is primarily influenced by the quality of the embedded software that each team implements. For more information on the NXP Cup, follow this link:https://community.nxp.com/groups/tfc-emea

The hardware is sponsored by NXP. Participation in the NXP Cup is part of the project.

Development of an autonomous model vehicle based on AUTOSAR using the Vector tool chain

AUTOSAR using the Vector tool chain. Vector’s VC121 is used as the control device. The relevant preliminary work has already been carried out.

Communication between two boards via Ethernet TCP/IP — preliminary work already carried out

This project involves establishing communication between two TC29xT boards via an Ethernet bus. The boards are equipped with an LCD touchscreen display. Ideally, information entered via the display should be sent to the other board and shown there on its display.

Successful implementation of this project requires training in Elektrobit software (Tresos Studio) and a compiler (WindRiver or Tasking). Detailed information and preliminary work is available for both of these.

The hardware and software required for this will be provided by the university.

Experiments using a MultiCore board

The aim of this project is to move software components between the cores of a TC29xT board. Successful implementation of this project requires training in Elektrobit software (Tresos Studio) and a compiler (WindRiver or Tasking).

Detailed information and preliminary work is available for both of these.

The hardware and software required for this will be provided by the university.

Development of an autonomous model vehicle using a 2D camera

The aim is to develop an autonomous model vehicle using a 2D camera. The model vehicle is based on the NXP assembly kit and a Raspberry Pi can be used to connect the 2D camera. The relevant preliminary work has already been carried out.

Revising software architecture materials on Java 8 and in extracts on Scala

This project aims to revise the exercises (and some of the lecture materials) for the software architecture course on Java 8.

Implementing a Bluetooth interface between a Raspberry Pi and an Arduino and identifying various application scenarios

This project aims to implement a Bluetooth interface between a Raspberry Pi and an Arduino and identify various application scenarios based on the technology and establish a connection with the existing infrastructure (AUTOSAR-based control devices). The Arduinos must not communicate with each other, but only with the central Raspberry Pi, which forms the interface to the infrastructure. Arduinos should be seen as decentralized peripherals and equipped with sensors and actuators that can send and receive data to and from the Raspberry Pi via Bluetooth.

Evaluating virtual desktops (Windows and Linux)

The aim of this project is to evaluate the question of whether virtual desktops are useful for students’ work at the Faculty. Our assumption is that virtual desktops will enable students to work irrespective of location (wherever they live), time (irrespective of lab opening hours) and device (using any device or operating system) without requiring any additional configuration (start wherever you’ve stopped). This project requires participants to work with Windows Server 2012 (under supervision from our lab engineer Mr Robert Fischer) and with a Linux server system (under supervision from our lab engineer Mr Peter Götz). The project also takes an in-depth look at usability tests and systematic user investigations.

Developing an operations management system with a content management system for the Klinikum Nord hospital

This project aims to develop an operations management system with a content management system. The anaesthetists have already been thinking about this and have developed a simple version of this system. However, the aim is to transfer this into a content management system so as to make it browser-compatible (for the intranet). This is the ideal project to experience the full range of development (starting from the analysis together with the stakeholders through to development and employee training) in an interesting field of application.

Developing an optimum Lego Mindstorms robot

Was developed as a reference project for the Software Engineering course.

Optimizing system architectures

This project aims to implement a multi-criteria optimization analysis for the software architecture of a vehicle control device. The software architecture is modelled using EAST-ADL. Here, we are using preliminary work from two IT projects that have implemented an Eclipse plug-in to generate optimization candidates and a single-criterion optimization analysis. The optimisation candidates are available as XML files and should be analyzed as part of this project in terms of the various goals (for example real-time behaviour/performance/error propagation/etc.); the pareto-optimal architecture will then serve as a basis for implementing the control device.
The work is carried out as part of a European research project (MAENAD) and offers a fascinating insight into automotive technology research.
Prior knowledge of JavaEclipse and XML would be beneficial.

Security for vehicle software

Protection against malicious intrusions into vehicle software is an urgent challenge as networked vehicles hide a high level of risk potential. This IT project aims to refine the latest technology in the field of vehicle software security and demonstrate this using an example model.
Prior knowledge of vehicle software is advantageous.

UML profile for Rational Rhapsody

Rhapsody is a UML modelling tool that also supports the creation and use of UML profiles. The aim of this project is to create an EAST-ADL profile for Rhapsody to enable the development of EAST-ADL models in Rhapsody.
Prior knowledge of UML and UML modelling tools would be beneficial.

Didactically prepared reference example in Java

This IT project aims to create a cleanly implemented reference example in Java based on the preliminary work of another IT project. The task here is to create a cleanly implemented Java program that fulfils the clean code specifications and demonstrates the application of different design patterns and programming idioms. Examples of concepts to be shown using the Java program: mixin, defensive copying, bridge, proxy, proper commenting, etc. The model-view-controller architecture pattern has already been implemented in the preliminary work with great success.
This work can be used to increase students’ own awareness of clean programming and also offers a good framework from which other students can learn; this example should also be used in teaching and in my lecture notes.
Prior knowledge of Java programming and the aforementioned programming concepts would be beneficial.

Final thesis requirements

Specific requirements that must be met by final thesis projects can be found on this Confluence page (login required).

List of topics

Within the framework of research projects and dissertations, topics regularly emerge that are suitable for students’ final theses. Students have the opportunity to participate in the implementation of the overall project during their final thesis by independently implementing selected sub-tasks.

Specific topics could be, for example:

  • Application and implementation of eXplainable Artificial Intelligence (XAI) approaches in autonomous robotic vehicles
  • IT-security in automotive software
  • Tool support for automotive architecture description using EAST-ADL

Final thesis projects in this field are closely aligned to industrial issues (especially in the automotive industry) and also have high scientific standards.

Furthermore, our cooperative partnerships, including with Elektrobit, Continental, Audi, Infineon, Intence, Timing Architects, Volvo, XKrug, result in industrial research questions that can be worked on in close collaboration with industry in the wider Nuremberg region. The range of topics here is extremely broad, covering, in particular, automotive software engineering, including the development of real-time systems in general, bus systems, and development environments for implementing embedded systems, in addition to EAST-ADL and AUTOSAR.

If you are interested in any of the topics mentioned above, please contact Professor Tavakoli.

Application period for final thesis projects

If you would like to write a final thesis (bachelor’s or master’s) with Professor Tavakoli as the first or second reviewer, then apply for thesis supervision for the winter semester between 15 May and 15 July and for thesis supervision for the summer semester between 15 December and 31 January.

IMPORTANT: Please bear in mind that the entire application process, including the official registration for the final thesis project, must be completed within the timeframe given. Late applications for final thesis projects will not be accepted.