Planen eines Softwareproduktes

Dieser Teil der Prüfung dauert 90 Minuten und umfasst 100 Punkte (10% der Gesamtprüfung).

Hier geht es um die komplette Planung eines Software-Projekts - von der ersten Idee bis zur technischen Umsetzungsplanung.


Projektmanagement

Projektmanagement ist wie ein Bauplan für dein Software-Projekt - ohne Plan läuft alles durcheinander.

Scrum - Agiles Arbeiten

Scrum ist ein agiles Vorgehensmodell, bei dem du in kleinen Schritten (Sprints) arbeitest.

Die wichtigsten Scrum-Rollen:

Scrum-Events:

Praktischer Hinweis

Scrum ist seit 2025 NEU explizit im Prüfungskatalog! 🆕

Lastenheft und Pflichtenheft

Das Lastenheft beschreibt WAS der Kunde will, das Pflichtenheft beschreibt WIE du es umsetzt.

Lastenheft Pflichtenheft
Vom Kunden geschrieben Vom Entwickler geschrieben
"Was soll das System können?" "Wie setzen wir das um?"
Grobe Anforderungen Detaillierte technische Spezifikation
Grundlage für Angebote Grundlage für Entwicklung

Ablaufplanung

Die zeitliche Planung deines Projekts - wer macht wann was?

Wichtige Planungswerkzeuge:


Softwarearchitektur

Die Architektur ist das Grundgerüst deiner Software - wie Räume in einem Haus verteilt sind.

MVC - Model View Controller

MVC trennt Daten, Darstellung und Logik - so bleibt alles übersichtlich.

Layered Architecture

Schichten-Architektur wie Stockwerke - jede Schicht hat ihre Aufgabe.

  1. Presentation Layer - UI für den Nutzer
  2. Business Logic Layer - Geschäftslogik und Regeln
  3. Data Access Layer - Datenbank-Zugriff
  4. Database Layer - Daten speichern

Microservices

Statt eine große Software baust du viele kleine Services - jeder macht eine Sache.

Vorteile:

Nachteile:


Design Patterns

Design Patterns sind bewährte Lösungen für typische Programmier-Probleme - wie Rezepte zum Kochen.

Singleton

Sorgt dafür dass es von einer Klasse nur ein einziges Objekt gibt.

Verwendung:

Factory Pattern

Erstellt Objekte ohne die genaue Klasse zu kennen - wie eine Fabrik die Produkte herstellt.

Observer Pattern

Ein Objekt beobachtet andere und wird benachrichtigt bei Änderungen.

Beispiel: Newsletter-System - Abonnenten werden informiert bei neuen Artikeln

Strategy Pattern

Verschiedene Algorithmen austauschbar machen - wähle zur Laufzeit welcher verwendet wird.


UML - Unified Modeling Language

UML ist die Planungssprache für Software - damit zeichnest du deine Ideen auf bevor du programmierst.

UML-Klassendiagramm

Zeigt Klassen mit ihren Attributen, Methoden und Beziehungen.

Aufbau:

┌─────────────────┐
│  Klassenname    │
├─────────────────┤
│ + attribut1     │ ← Attribute
│ - attribut2     │
├─────────────────┤
│ + methode1()    │ ← Methoden
│ - methode2()    │
└─────────────────┘

Sichtbarkeiten:

UML-Anwendungsfalldiagramm

Zeigt WAS das System für WEN tun soll - die Funktionen aus Nutzersicht.

Elemente:

UML-Sequenzdiagramm

Zeigt zeitliche Abläufe - wie Objekte miteinander kommunizieren.

Elemente:

UML-Aktivitätsdiagramm

Zeigt Ablauf und Entscheidungen - wie ein Flussdiagramm.

Notation:


Softwarequalität

Qualität bedeutet: Die Software tut was sie soll - zuverlässig, sicher und benutzerfreundlich.

ISO 25010 Qualitätskriterien

Wartbarkeit

Wie einfach lässt sich die Software ändern und erweitern?

🆕 Neu verstärkt im Katalog 2025!

Änderbarkeit und Erweiterbarkeit

Kann die Software an neue Anforderungen angepasst werden?

Weitere Qualitätskriterien:


Anforderungsanalyse

Was soll die Software eigentlich können? Hier sammelst du alle Anforderungen.

Funktionale Anforderungen

Beschreiben WAS das System können muss.

Beispiele:

Nicht-funktionale Anforderungen

Beschreiben WIE gut das System funktionieren muss.

Beispiele:


Testing-Konzepte

Tests finden Fehler bevor der Kunde sie findet - je früher desto besser!

Test Driven Development (TDD)

Erst den Test schreiben, dann den Code - so bist du sicher dass alles getestet ist.

🆕 Neu im Katalog 2025!

TDD-Zyklus:

  1. Red - Test schreiben der fehlschlägt
  2. Green - Minimalen Code schreiben damit Test läuft
  3. Refactor - Code verbessern ohne Funktionalität zu ändern

Test-Pyramide

Viele kleine Tests, wenige große Tests.

        /\
       /E2E\      ← Wenige End-to-End Tests
      /──────\
     /Integr.\   ← Mittlere Anzahl Integrationstests
    /──────────\
   /Unit Tests \  ← Viele Unit Tests
  /──────────────\

Last- und Performancetest

Wie verhält sich die Software unter Last?

🆕 Neu im Katalog 2025!

Was wird getestet:


Datenbankentwurf

Eine gute Datenbank-Struktur ist das Fundament - schlecht geplant wird es später teuer.

ER-Modell

Entity-Relationship-Modell zeigt Entitäten und ihre Beziehungen.

Elemente:

Kardinalität

Beschreibt wie viele Entitäten zueinander in Beziehung stehen.

Normalisierung

Daten so organisieren dass keine Redundanzen entstehen.

1. Normalform

2. Normalform

3. Normalform

Anomalien und Redundanzen

Probleme die entstehen wenn die Datenbank schlecht strukturiert ist.

🆕 Verstärkt im Katalog 2025!

Arten von Anomalien:

Redundanzen:


Schnittstellen

Schnittstellen verbinden verschiedene Systeme - wie Steckdosen für Daten.

REST API

Standard-Weg für Software um über HTTP zu kommunizieren.

HTTP-Methoden:

ODBC

Open Database Connectivity - Standard-Schnittstelle für Datenbank-Zugriff.

🆕 Neu im Katalog 2025!

Datenaustauschformate

JSON

JavaScript Object Notation - leichtgewichtig und lesbar.

{
  "name": "Max Mustermann",
  "alter": 25,
  "skills": ["Java", "Python"]
}

XML

Extensible Markup Language - strukturiert und erweiterbar.

<person>
  <name>Max Mustermann</name>
  <alter>25</alter>
</person>

CSV

Comma-Separated Values - einfachstes Format für Tabellen.

Name,Alter,Stadt
Max,25,Berlin
Anna,30,Hamburg

Security-Konzepte

Sicherheit muss von Anfang an mitgedacht werden - nachträglich wird es teuer.

SQL Injection

Angreifer schmuggeln SQL-Code in Eingabefelder ein.

🆕 Neu im Katalog 2025!

Beispiel Angriff:

' OR '1'='1

Schutz:

DDoS Attack

Distributed Denial of Service - System mit Anfragen überlasten.

🆕 Neu im Katalog 2025!

Wie funktioniert es:

Schutz:

Man-in-the-Middle Attack

Angreifer sitzt zwischen Kommunikationspartnern und hört mit.

🆕 Neu im Katalog 2025!

Schutz:

Kerberos

Authentifizierungs-Protokoll für sichere Zugriffskontrolle.

🆕 Neu im Katalog 2025!


Dokumentation

Gute Dokumentation spart Zeit - für dich und andere Entwickler.

Programm- und Konfigurationsdokumentation

Beschreibt wie die Software funktioniert und konfiguriert wird.

🆕 Neu explizit im Katalog 2025!

Programmdokumentation:

Konfigurationsdokumentation:


System-Architektur

Wie sind die verschiedenen Teile des Systems verteilt?

Client-Server

Server stellt Dienste bereit, Clients nutzen diese.

Vorteile:

NAS und SAN

Spezialisierte Speicherlösungen für Netzwerke.

🆕 Explizit neu im Katalog 2025!

NAS SAN
Network Attached Storage Storage Area Network
Datei-basiert Block-basiert
Über Netzwerk wie ein Ordner Wie eine lokale Festplatte
Einfacher einzurichten Schneller und professioneller

Cloud vs On-Premises

Hosting in der Cloud oder auf eigenen Servern?

Cloud On-Premises
Server bei Anbieter Eigene Server im Betrieb
Flexibel skalierbar Fixe Kapazität
Monatliche Kosten Hohe Anfangsinvestition
Schnell verfügbar Längere Setupzeit

Cloud-Modelle: