Version 1.0.0

Gegenstände:

  • ITP - Informationstechnische Projekte (6. Semester)

  • SYP - Systemplanung und Projektentwicklung (6. Semester)

Jahrgänge:

  • 3ahitm/2020SS

  • 3ahif/2020SS

1. Gesetzlicher Lehrplan lt. Beiblatt zum Zeugnis

1.1. ITP

1.1.1. Bereich Durchführung informationstechnischer Projekte

  • theoretische Grundlagen des Projektmanagements im Rahmen von fachübergreifenden technischen Projekten anwenden;

  • Modelle zur Bewältigung von Krisen, Chancen und Konflikten einsetzen.

Lehrstoff
  • Realisierung informationstechnischer Projekte unter Vorgabe des Projektauftrages und unter Berücksichtigung von Themenbereichen der technischen Pflichtgegenstände.

  • Planung und Umsetzung der Phasen im Projektmanagement verbunden mit der entsprechenden Dokumentation.

1.2. SYP

1.2.1. Bildungs- und Lehraufgabe

  • die theoretischen Grundlagen, Rahmenbedingungen, Prozesse, Vorgehensmodelle, Kompetenzen und Rollen im Software Engineering sowohl erklären als auch kontextbezogen interpretieren;

  • die für ein Software-Entwicklungsprojekt geeigneten Methoden und Werkzeuge des Software Engineerings – ausgehend von Beispielen, Fallstudien oder Praxisprojekten – sowohl erklären als auch auswählen und theoriebasiert anwenden;

  • bestehende IKT-Systeme und Geschäftsprozesse analysieren und darstellen um dafür Lösungskonzepte und Umsetzungsstrategien für Software- und Systementwicklungsprojekte zu erarbeiten.

Lehrstoff
  • Software Engineering,

  • Vorgehens- und Prozessmodelle für die Softwareentwicklung,

  • Rollen im Softwaredevelopment-Prozess.

  • Methoden für

    • Ist-Erhebung,

    • Analyse,

    • Entwurf,

    • Entwicklung und Qualitätssicherung im Software Engineering.

1.2.2. Bildungs- und Lehraufgabe

  • bestehende IKT-Systeme und Geschäftsprozesse analysieren und darstellen um dafür Lösungskonzepte und Umsetzungsstrategien für Software- und Systementwicklungsprojekte zu erarbeiten.

Lehrstoff
  • Anforderungsanalyse und -beschreibung,

  • Aufwandsschätzung,

  • Qualitätsmanagement und Produktdokumentation,

  • Wartung.

2. Konkretisierung für NOSt-Prüfung (sowohl für SYP als auch ITP)

2.1. Arbeiten mit Git und GitHub

  1. Überblick und Architektur

    1. Was ist Git? (verteiltes Versionsverwaltungssystem)

    2. Was ist ein Versionsverwaltungssystem?

    3. Unterschied verteilte und zentrale Versionsverwaltungssysteme (grafische Darstellung)

    4. Unterschied Git und GitHub

  2. Grundlegende Arbeitsabläufe erläutern können:

    1. Was ist ein git add …​?

    2. Was ist ein commit?

    3. Was ist ein push?

    4. Was ist ein Softwarebranch?

    5. Wofür werden Branches erstellt?

    6. Was ist ein merge?

    7. Was ist ein Tag?

    8. Wofür werden Tags verwendet?

    9. Was ist ein Fork?

    10. Was ist ein Pull-Request (Beispiel für einen Pull-Request)

    11. Einsatzgebiet von GitHub-Templates?

  3. Grundlegende Arbeitsarbläufe in Git (GitHub) durchführen (sowohl in Konsole als auch IntelliJ Ultimate):

    1. Anlegen eines Software-Repositories (Repo)

    2. Commit eines Repos

    3. Branch eines Repos

    4. Merge eines Repos

    5. Wie kann man den Branch der lokalen Arbeitkopie wechseln?

    6. Durchführen eines Pull-Requests

    7. Was ist der Unterschied zwischen einem "normalen Repo" und einem Template?

    8. Wie kann man ein GitHub-Template erstellen?

Die deutschen Übersetzungen der englischen Begriffe sind zu lernen.

2.2. Softwarequalitätsmanagement

  1. V-Modell darstellen und erläutern

    1. Welche Arten von Tests gibt es im V-Modell (Erläuterung)

    2. Wo sind die Datenbank-Tests im V-Modell ersichtlich?

  2. Testen mit jUnit5, AssertJ, AssertJ-DB

    1. Erläutern der Architektur des zu testenden Software-Systems (Einschränkung auf JavaFX-Anwendung mit JDBC-Zugriff auf DerbyDb)

    2. Teststrategien aufzählen und erläutern

    3. CRUD-Funktionalität testen (unter besonderer Beachtung von Referenzen zwischen Objekten)

    4. Unidirektionale-Beziehungen / Bidirektionale Beziehungen testen

2.3. Dokumentation

2.3.1. Inhaltlich

Pflichtenheft (System Specification)
Scrum
  • Scrum - Einsatzgebiete, Komponenten und Anwendung erläutern

  • Theme / Epic / User Story / Task

  • Product Backlog

  • Sprint Backlog

  • usw.

2.3.2. Technische Umsetzung

  1. Erläuterung von AsciiDoc und AsciiDoctor

  2. Unterschied AsciiDoc und Asciidoctor?

  3. Ausgabeformate von AsciiDoctor?

  4. Warum wird Docker verwendet?

  5. Erläuterung des Docker-Skripts in asciidoctor-docker-template

  6. Einstellungsmöglichkeiten im Document Header (Präambel)

    1. Inhaltsverzeichnis

    2. Icon-Font

    3. image-dir

    4. usw.

  7. Was ist ein Callout?

  8. Wie können Tabellen erstellt werden?

  9. Wie werden Bilder eingebunden?

  10. Wie werden UML-Diagramme erstellt?

  11. Welche Arten von Blocks gibt es?

    1. Admonition Blocks

    2. Source Code Blocks

    3. usw.

  12. Conditional Directives

  13. Einbinden von source code

  14. Deployment in gh-Pages

    1. Erläutern der grundsätzlichen Funktionsweise

    2. Varianten

      1. doc-Folder

      2. doc-Branch