Prof. Dr. Frank Bühler

Professor
Fachbereich I

Lehrgebiet/Arbeitsbereich
Advanced Software Engineering

Weitere Funktionen

    Sprechstunde
    nach Vereinbarung

    Schoefferstrasse 8b
    64295 Darmstadt
    : D15,208
    +49.6151.16-38486
    Frank Bühler

    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).

    Vorlesungsüberblick

    Überblick (Profil)

    • Bachelor (FB I):
      - Objektorientierte Analyse und Design (OOAD)
      - Software Engineering (SE)
      - Seminar Wissenschaftliches Arbeiten in der Informatik 1/2
      - Projekt Systementwicklung
      - Entwicklung von Java EE-Anwendungen mit agilen Methoden
    • Bachelor (FB MN):
      - Programmieren 3 (nur WS)
    • Master (FB I)
      - Business Process Engineering (nur SS)

         Vorlesungen, die nicht mehr angeboten werden:
         - Parallel and Distributed Computing (Master)
         - Edutainment (Master)
         - Prozess- und Systemintegration (Bachelor)
     

    Überblick

    Start der Vorlesung:   Oktober 2020
    Start des Praktikums: Oktober 2020


    Themen des Moduls
    - Wiederholung/Vertiefung Python-Programmierung
    - Objektorientierte Konzepte, Methoden und Programmierung 
      (inkl. UML und begleitendes Testen)
    - Phasen der Programmentwicklung, SCRUM, KANBAN
    - DB-Entwicklung (SQL, NoSQL)
    - Grundlagen der Web-Anwendungen, CGI-Programmierung, Django, Flask
    - Optional: Web-Services, Verteilte Architekturen

    Vorlesungsinhalt

    Start der Vorlesung:  Oktober 2020

    Die Modellierung und Entwicklung objektorientierter Softwaresysteme steht im Fokus dieser Vorlesung.

    Die Modellierung ist eine wesentliche Tätigkeit in der Softwaretechnik. Der Schwerpunkt dieser Lehrveranstaltung liegt auf der objektorientierten Softwareentwicklung und der graphisch-orientierten Sprache UML in ihren vielseitigen Aspekten. Die Unified Modelling Language (UML) ist die weit verbreitetste Modellierungssprache und ist besonders wichtig bei der Entwicklung großer Anwendungssysteme. 

    Des weiteren werden grundlegende Aspekte des Vorgehensmodells RUP (Rational Unified Process) betrachtet. Diese zeigt den übergeordneten Rahmen für die Nutzung der verschiedenen UML-Diagramme.

     

    Agenda 

    - Einordnung von OOAD in die Softwaretechnik
    - UML-Grundlagen, Notation, Semantik, wichtige Diagramme, Modellierungsregeln
    - Analyse: Anwendungsfalldiagramm, agile SW-Entwicklung, User Stories,
                     Klassendiagramm in der Analyse
    - Design:   Klassendiagramm im Design,  Regeln „gutes Design“,
                     Sequenzdiagramm, Codeerzeugung, 
                     Entwurfsmuster
    - Objektdiagramm, OCL (Object Constraint Language)
    - Weitere UML-Diagramme im Überblick
    - Phasen bei der Entwicklung objektorientierter Systeme (Objektorientiertes Spiralmodell): 
      Objektorientierte Analyse, Design, Programmierung, Test  
      RUP (Rational Unified Process)
    - Einsatz von Modellierungs- und Entwicklungswerkzeugen (MagicDraw, NetBeans IDE)
    - Verschiedenes (je nach verfügbarer Zeit):
       + Architekturen & Frameworks
       + Grundlegende Aspekte der Softwarequalität, QS/QM
       + Modellgetriebene Entwicklung (MDSD/MDA)
    - Übungsaufgaben, Fragen&Antworten

    SS19 - Software Engineering (SE)

    • Bachelor (3. Semester), Modulbeschreibung: 30.7318

      SS19 

      Die Veranstaltung besteht aus zwei Teilen:
      - einem Vorlesungsteil und
      - einem praktischen Teil (in Form eines SCRUM-Projekts, Java-Programmierung).

      Der Vorlesungsteil findet ab dem 1. April 2019 jeweils montags im 2. Block im Raum D14/0.04 statt.

      Der praktische Teil findet im CASE-Labor statt. Die Praktikumstermine beginnen ab dem 8. April 2019 - siehe OBS-Gruppeneinteilung). Es besteht grundsätzlich anwesenheitspflicht. Genauere Informationen zu den Praktikumsaufgaben und dem Ablauf erhalten Sie in der ersten Vorlesung.


      Themenschwerpunkte für Vorlesung
      - Begriffe, Agile SW-Entwicklung, SCRUM, KANBAN 
      - Konfigurationsmanagement (SVN, GIT), Buildmanagement
      - JUnit, Testen, Testmanagement
      - QS, SW-Metriken 
      - Schwergewichtige Vorgehensmodelle, V-Modell XT
      - Verschiedenes


      Lernbereiche für Klausur im SS19

      Termin: in den Prüfungswochen (1. Juli - 20. Juli 2019, genauer Termin wird noch bekanngegeben)

       - Begriffe und Konzepte 
       - Agile SW-Entwicklung (Scrum, Kanban) 
       - KM, GIT
       - Testen, JUnit
       - SW-Metriken 
      - ...

       Hinweis: die Lernbereiche werden am Ende des Vorlesungteils bekanntgegeben.

      Grundlage für die Klausur sind die behandelten Inhalte aus der Vorlesung und Praktikum, die bereitgestellten Folien sowie die Tafelanschriebe. Erlaubte Hilfsmittel: 1 DIN-A4 Seite

    SS20 - Business Process Engineering (BPE, Master)

    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 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.
     

    Vorlesungsbegleitendes Praktikum

    In dem Praktikum 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 (wird in Vorlesung behandelt)
    • Benutzung einer Java-Entwicklungsumgebung seiner Wahl (Eclipse, IntelliJ, …)
    • Kenntnisse bezüglich der Nutzung von Git/Gitlab, Maven 3.6.x

    Das Praktikum wird in 2er-Gruppen durchgeführt. Jede Gruppe sollte einen Laptop mit folgender installierter Software besitzen:
    - JDK 11
    - Maven 3.6.3
    - Eclipse IDE (mind. Version 2019-09 mit Plug-In „Spring Tools 4 – for Spring Boot“)  oder
      IntelliJ IDEA Ultimate 2019.3.1 (Studentenlizenz wird benötigt)
    - Camunda 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.

    SS20 - Projekt Systementwicklung (KinderCampus, Lego Mindstorms EV3)

    • Projekt Systementwicklung (PSE): 30.7504

      Lego Mindstorms EV3

      SS20 - Projektorganisation-/leitung: Prof. Dr. Frank Bühler
                  KinderCampus - Anfänger- und Fortgeschrittenenkurs
                 

      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 14 Jahren das Bauen und Programmieren von verschiedenen Lego-Modellen auf Basis der Lego Mindstorms EV3-Kästen

     

               Folgende KinderCampus-Kurse sind vorgesehen:

               03.08.2020 - 07.08.2020: EV3-Grundkurs (für Einsteiger)
                                                         (Alter 10-12 Jahre, täglich von 10:00 Uhr bis ca.16 Uhr)

                10.08.20120 - 14.08.2020: EV3-Fortgeschrittenenkurs
                                                          (Alter 12-14 Jahre, täglich von 10:00 Uhr bis ca.16 Uhr) 

      In dem EV3 Grundkurs werden einfache Programmiertechniken zur Steuerung der Lego EV3-Roboter (Basismodelle) behandelt. Die Teilnehmer bauen verschiedene Modelle und erforschen die Möglichkeiten, die Ihnen das EV3-Set bietet.

        In dem EV3 Fortgeschrittenenkurs werden fortgeschrittene Programmiertechniken vermittelt sowie die Interaktion und Kommunikation (auch mittels Bluetooth) mit den Lego EV3-Robotern behandelt. Die Teilnehmer bauen verschiedene Modelle und erforschen die Möglichkeiten, die Ihnen das EV3-Set bietet und lösen knifflige Aufgaben aus der Welt der Informatik.


    Belegvoraussetzung

    Für die Belegung des Projekts ist es zwingend erforderlich, dass Sie vom 03.08.2020 bis 07.08.2020 sowie vom 10.08.20120 bis 14.08.2020 (jeweils täglich von 9 Uhr bis ca. 17:30 Uhr) für die Durchführung der Kurse Zeit haben. Es wird erwartet, dass einige Studierende auch den match_day am 19. Mai 2020 unterstützen. Idealerweise haben Sie Spaß beim Umgang mit Kindern und sind teamfähig sowie zuverlässig.


    Projektüberblick
    -
    Einarbeitung in den Lego-Baukasten EV3
    - Erstellung von Kursunterlagen
    - Marketing und Sponsoring, Pressearbeit
    - Erstellung eines Posters
    - Didaktik/Lerntheorien und ihre Anwendung
    - Durchführung der Kurse (inkl. Aufbau und Abbau, Vorbereitung der Rechner, Betreuung der Kinder)
    - Erstellen einer Projektdokumentation
    - ...


    Benotung der Projektmitarbeit
    Die Projektnote setzt sich aus drei Teilen zusammen:
    50% Vorbereitung der Kurse während PSE (SS 20)
    30% Durchführung der Kurse in den Sommerferien (03.08. bis 07.08.2020 sowie vom 10.08. bis 14.08.2020)
    20% Projekdokumentation (Abgabe bis 21.08.2020)