Prof. Dr. Frank Bühler


Advanced Software Engineering

Sprechstunde
nach Vereinbarung

Weitere Funktionen
  • HOBIT-Beauftragter
  • Schul- und Messebeauftragter
  • Studienfachberater

Büro: D15/2.08

Prof. Dr. Frank Bühler ist Professor für Advanced Software Engineering am Fachbereich Informatik der Hochschule Darmstadt. Seine Lehr- und Forschungsinteressen liegen auf den Gebieten der Modellierungssprachen (insbesondere UML, BPMN, DMN), agiler SW-Entwicklung (insbesondere SCRUM, KANBAN und Continuous Integration/Inspection/Delivery) und komponentenorientierter SW-Entwicklung (Java EE, Spring) sowie in der Programmierung mit Python (Fachbereich Mathematik).

Überblick (Profil)

  • Bachelor (FB I):
    - Objektorientierte Analyse und Design (OOAD)
    - Software Engineering (SE)
    - Seminar Wissenschaftliches Arbeiten in der Informatik 1/2 (WAI1/2)
    - Projekt Systementwicklung (BPSE)
  • Bachelor (FB MN):
    - Programmieren III (nur WS)
  • Master (FB I)
    - Business Process Engineering (nur SS)
    - Master Projekt Systementwicklung (MPSE)
    - Hauptseminar (Mast 3, MN DSc)

     Vorlesungen, die nicht mehr angeboten werden:
     - Parallel and Distributed Computing (Master)
     - Edutainment (Master)
     - Prozess- und Systemintegration (Bachelor)
     - Entwicklung von Java EE-Anwendungen mit agilen Methoden (Bachelor)

  • Projekt Systementwicklung (PSE): 30.7504
    Projektstart: 20.4.2022
    Projekttreffen: jeweils am Mittwoch 2. + 3. Block (10:15 Uhr bis 14:00 Uhr)
    KinderCampus: 22.08.2022 bis 02.09.2022 (Mo-Fr, jeweils täglich von ca. 9 Uhr bis ca. 18:00 Uhr)

    SS22 - Projekt "KinderCampus - Lego Mindstorms EV3"
                Projektorganisation-/leitung: Prof. Dr. Frank Bühler
                KinderCampus - Kurse für Einsteiger, Fortgeschrittene und Experten
               

    Im Rahmen des angebotenen Projekts geht es um die Vorbereitung/Konzeption sowie um die Durchführung des KinderCampus in den hessischen Sommerferien. In den angebotenen Kursen lernen Kinder im Alter von 10 bis 16 Jahren das Bauen und Programmieren von verschiedenen Lego-Modellen auf Basis der Lego Mindstorms EV3-KästenAls Programmiersprachen wird die EV3-Software (EV3-G) und MicroPython verwendet.

           Folgende KinderCampus-Kurse sind für 2022 vorgesehen:   
           - EV3-Kurs (in Kooperation mit Autismus-Ambulanz, 1 Tag)
           - EV3-Kurs (für Einsteiger und Fortgeschrittene)

           - EV3-Expertenkurs mit MicroPython

Belegvoraussetzung

Für die Belegung des Projekts ist es zwingend erforderlich, dass Sie vom 22.08.2022 bis 02.09.2022 (Mo-Fr, jeweils täglich von ca. 9 Uhr bis ca. 18:00 Uhr) für die Durchführung der Kurse Zeit haben. Idealerweise haben Sie Spaß beim Umgang mit Kindern und sind teamfähig sowie zuverlässig. Auch wenn Sie kreative Ideen einbringen möchten oder an technischen Steuerungen Interesse haben, sind Sie bei dem Projekt richtig.

Projektüberblick (Hauptaufgaben im SS 2022)
-
Einarbeitung in den Lego-Baukasten EV3 
- Einarbeitung in die Programmierung (Symbolbasierte EV3-Software EV3-G, MicroPython + VS Code)
- Evaluierung und Konzeption neuer Modelle und Steuerungen (inkl. Untergründe)
- Einarbeitung in Lego Digital Designer (LDD)/BrickLink Studio (-> siehe Bsp.)
- Durchführung der Kurse (inkl. Aufbau und Abbau, Vorbereitung der Rechner, Betreuung der Kinder)
- Erstellen einer Projektdokumentation (Kurskonzeption)
- Erstellung von Kursunterlagen (Aufgaben- und Lösungshefte, Bauanleitungen)

  Zusätzliche Projektaufgaben mit Wahlmöglichkeit
- Postererstellung, T-Shirt-Design, 3D-Druck u.a.
- Evaluierung von Lego Robot Inventor 
- Erstellung eines Python-Einteigerkurses mit Jupyter Notebook
- Konzeption und Erstellung einer Django-WebApp
- Evaluierung Raspberry Pi Build HAT

Ideen für neue Lego-Modelle und Steuerungen (je nach Interesse)
- Lego-Flipperautomat
- Lego 7-Segment-Anzeige
- Rubik's Cube-Löser
- Tennisball-Maschine
- Tic-Tac-Toe
Selbstverständlich können Sie auch eigene Vorschläge einbringen.


Benotung der Projektmitarbeit
Die Projektnote setzt sich aus zwei Teilen zusammen:

Teil I (während SS 2022, Vorbereitung und Konzeption) - 60% der Note
- Erstellung Kursunterlagen (insbesondere Entwicklung neuer Modelle und Aufgaben)
- Aktive Mitarbeit während Projektsitzungen, Einbringen von Ideen
- Übernahme von zusätzlichen Aufgaben (z. B. Postererstellung, T-Shirt-Design)
- Erstellen von Projektprotokollen
- Projektdokumentation (Kurskonzeption)

Teil II (Durchführung des KinderCampus in den hessischen Sommerferien) - 40% der Note
- Unterstützung und Betreuung der Kursteilnehmer (beim Durchführen der Aufgaben, Pausenspiele, Getränke, Rechnerkonfiguration etc.)
- Übernahme von zusätzlichen Aufgaben (z. B. Erstellen eines Videos oder Aufnahme von Kurs-Fotos)
- Vorbereitung und Durchführung einer Eltern-Präsentation

Bachelor (3. Semester), Modulbeschreibung: 30.7318

Start der Vorlesung: 25.4.2022
Praktikumstermine: siehe OBS

Die Veranstaltung besteht aus zwei Teilen:
- einem Vorlesungsteil  und
- einem praktischen Teil (in Form eines SCRUM-Projekts, Java-Programmierung inkl. JavaFX).
Die Vorlesung und das Praktikum erfolgt in Kooperation mit der Firma QAware.


Themenschwerpunkte für Vorlesung
- Begriffe, Agile SW-Entwicklung mit SCRUM, Scrumwise, KANBAN 
- Java (OpenJDK 17) mit JavaFX - inkl. Nutzung von Bibliotheken
- Konfigurationsmanagement (GIT, GitLab)
- Buildmanagement mit Maven
- JUnit, Testen, Testmanagement
- QS, SonarQube, SW-Metriken 
- Continuous Integration
- Überblick Vorgehensmodelle
- Verschiedenes

 


Dozenten: Prof. Dr. Urs Andelfinger, Prof. Dr. Frank Bühler
Das Praktikum/Assignment erfolgt in Kooperation mit der Firma Accso.

Start der VL: 25.04.2022
Start des Praktikums: 02.05.2022 

Termine für Praktika (Doppelblock):  2.5.2022, 15.5.2022, 30.5.2022, 20.6.2022
Abschlusspräsentationen: 4.7.2022


Sprachen

Die Lehrsprache ist Deutsch. Die Folien sind in englischer Sprache.
Die Klausurfragen werden auf Deutsch gestellt. Die Antworten können entweder in Englisch ODER in Deutsch verfasst werden.
 

Vorausschau für Lehrveranstaltung

Digitalisierung ist in aller Munde. Deutschlandweit arbeiten Unternehmen daran, Ihre IT zu modernisieren, um den stetig wachsenden Anforderungen des Marktes agiler begegnen zu können. Cloud-Technologien spielen dabei genauso eine wichtige Rolle wie asynchrone Kommunikation, Messaging und Skalierung & Verteilung von Anwendungen. Und fachlich? Fachlich ist noch immer jede IT eines jeden Unternehmens ein Abbild der Prozesse eben dieses Unternehmens. Auch diese sollen immer flexibler und agiler werden, wohlgemerkt ohne dabei die Übersicht zu verlieren. Weshalb BPM (Business Process Management) und Workflow-Engine‘s im Rahmen der Digitalisierung nicht wegzudenken sind.

Moderne leichtgewichtige Workflow-Engine‘s wie Camunda BPM bieten dabei die Möglichkeit, prozessorientierte Lösungen in gewohnter Entwicklungs-, Test- und Deployment-Umgebung zu entwickeln. Und das auch mit bekannten Java-Frameworks wie Spring-Boot. Immer mit dem Ziel, Technik im Code und Fachlichkeit im Prozess zu haben.

Folgende Themen sind geplant:
- Einführung/Überblick BPM
- Überblick Camunda BPM / Spring Boot
- Überblick OMG-Standards im Bereich BPM
- Modellierung mittels BPMN, DMN und CMMN
- Business Rules
- Statische Analyse und Simulation
- Process Intelligence (KPI, Alerts)
- Petri Netze, Process Mining
- Business Process Improvement, Value Chain Analyse, Value Stream Mapping
 

Vorlesungsbegleitendes Praktikum

In dem Praktikum/Assignment wird anhand eines anwendungsnahen Beispiels ein Geschäftsprozess mit der Java-basierten Workflow Engine von Camunda BPM automatisiert. Dabei werden verschiedene Stufen des Business Process Engineering durchlaufen:

  • Modellierung eines Geschäftsprozesses in der Notation BPMN 2.0
  • Integration von Decision-Tables in DMN 1.1
  • Ableitung eines ausführbaren Prozessmodells
  • Programmierung von Service Tasks und Design von Formularen für Human Tasks
  • Integration externer Services
  • Asynchrone Nachrichtenverarbeitung
  • Erstellung von Unittests
  • Monitoring der Prozesse im Camunda Cockpit
  • Analyse und KPIs

Darüber hinaus werden einfache, aber wirkungsvolle BPM-Pattern wie Event-Handling, Messaging, Timer und Compensation angewendet. Am Ende des Praktikums wird der Teilnehmer, aufbauend auf seinem bisherigen Entwicklungs- & Architektur-Wissen, einen Einblick in die Grundlagen der Entwicklung moderner Prozessapplikationen bekommen haben.

Zur Vorbereitung des Praktikums sollte der Teilnehmer vertraut sein mit

  • Grundlagen der Java- und Web-Entwicklung (HTML 5, CSS, Bootstrap, Vue.js, REST)
  • Basis-Wissen zum Spring-Framework (ein kurzer Überblick wird in der Vorlesung gegeben)
  • Benutzung einer Java-Entwicklungsumgebung: Eclipse oder IntelliJ
  • Kenntnisse bezüglich der Nutzung von Git/Gitlab, Maven

Das Praktikum wird in 2er-Gruppen durchgeführt. Jede Gruppe sollte einen Laptop mit folgender installierter Software besitzen:
- OpenJDK 11
- Maven 3.8.4
- Eclipse IDE (mit Plug-In „Spring Tools 4 – for Spring Boot“)  oder
  IntelliJ IDEA Ultimate 2021.3.2 (Studentenlizenz wird benötigt)
- Camunda Modeler (siehe https://camunda.com/download/modeler/)
- Git-Client

Zur Einarbeitung in die BPM-Entwicklung mit Camunda gibt es hier wertvolle Informationen:

Wer schon vor dem Praktikum anfangen möchte:

Wir freuen uns auf Euch. Das Praktikum wird von der Firma Accso unterstützt.

Kontakt

Prof. Dr. Frank Bühler

Kommunikation
Schoefferstrasse 8b
64295 Darmstadt
Büro: D15, 208

+49.6151.16-38486
frank.buehler@h-da.de