Special Topics:

Modularity and API Design

339.338 1KV Stadler, Würthinger Block Begin:

Course Description

The course consists of three parts: (a) Modular software development, (b) API design concepts, (c) application of modularity in NetBeans and JavaFX. In particular, we will address the following questions in detail:

  • Why is modularity essential?
  • How to scale the development of a large software system?
  • Why are APIs like stars?
  • How to design an API that is extensible without breaking backwards compatibility?
  • What are modularity concepts in NetBeans?
  • How to design modular JavaFX applications?

If you want to prepare for the course, you can skim through the website on API design.


Lukas Stadler ( lukas.stadler@oracle.com)
Lukas is a researcher at Oracle labs.

Thomas Würthinger ( thomas.wuerthinger@oracle.com, @thomaswue)
Thomas is a researcher at Oracle labs. He is lead and architect of the Graal OpenJDK project.

Lecture times

Date Time Room
16.1.2015 12:45-18:00 HS 18
17.1.2015 8:30-12:45 HS 19


Part of successfully completing the lecture is a small project that exercises the discussed concepts of modularity and API design. The project can be done in teams of one or two students. The topic of the project is freely selectable. It is also possible to select an existing software project and apply the concepts of modularity and API design to it. When you selected a project and a team, send an e-mail to thomas.wuerthinger@oracle.com. Make sure that you include the id of the course as well as your student id in the subject line of the e-mail.

The project has to be finished by 2015/M/d. Until this day the source code of the project as well as a short documentation has to be sent to thomas.wuerthinger@oracle.com. We will then schedule a meeting at which the participants will be able to share their experiences during development. We will also ask some questions about your projects to make sure that you did them yourself and every teammember participated. The grade will be based on the proper usage of the concepts presented during the lecture. The minimum amount of time every one should spend for creating the project is 25 hours based on the ECTS points you will receive for this lecture.