No description
Find a file
2025-12-11 13:27:04 +01:00
sql adolf 2025-12-11 12:17:34 +01:00
src sdajdska 2025-12-11 13:27:04 +01:00
target dsajkdskadad 2025-12-11 12:39:35 +01:00
.gitignore Bubba Blowie 2025-12-11 11:31:21 +01:00
build.sh initial upload 2025-12-11 10:56:00 +01:00
pom.xml sdajdska 2025-12-11 13:27:04 +01:00
README.md initial upload 2025-12-11 10:56:00 +01:00
run.sh initial upload 2025-12-11 10:56:00 +01:00
test.sh adolf 2025-12-11 12:17:34 +01:00
UML.md Bubba Blowie 2025-12-11 11:31:21 +01:00

Projektaufgabe Entwicklung einer Werkstattverwaltungssoftware

Sie arbeiten als Softwareentwicklungs-Team in einem Unternehmen, das digitale Lösungen für kleine Betriebe entwickelt. Eine regionale Kfz-Werkstatt hat Sie beauftragt, eine Konsolenanwendung zu erstellen, mit der sie ihre täglichen Arbeitsabläufe digital verwalten kann. Die Daten sollen in einer Datenbank gespeichert werden.

Auftrag des Kunden

1. Verwaltung der Personen, die Leistungen in Anspruch nehmen

Die Werkstatt möchte Informationen über ihre Kundschaft erfassen und abrufen können. Das System soll ermöglichen, neue Kunden anzulegen, vorhandene anzuzeigen und eine Übersicht aller erfassten Personen auszugeben.

2. Verwaltung der Fahrzeuge

Zu jeder Person können mehrere Fahrzeuge gehören. Das System soll das Anlegen neuer Fahrzeuge, das Anzeigen einzelner Fahrzeuge sowie eine Übersicht über alle Fahrzeuge einer bestimmten Person ermöglichen.

3. Dokumentation der Werkstattarbeiten

Für jedes Fahrzeug sollen Werkstattvorgänge angelegt und angezeigt werden können. Ein Werkstattvorgang besteht aus mehreren einzelnen Positionen, welche aus einem vordefinierten Katalog zu wählen sind

Vorgabekatalog für Leistungen und Preise

Die Werkstatt verwendet einen festen Leistungskatalog mit einheitlichen Preisen. Diese werden vorab in der Datenbank hinterlegt.

Der Katalog enthält folgende Positionen:

Leistung Preis pro Einheit
Ölwechsel 89.00 €
Bremsflüssigkeit wechseln 59.00 €
Reifen wechseln (pro Stück) 18.00 €
Klimaanlagen-Service 99.00 €
Bremsbeläge erneuern vorne 149.00 €
Zündkerzen austauschen 79.00 €
Diagnose / Fehlerspeicher auslesen 25.00 €
Arbeitszeit pro Stunde 75.00 €

4. Einsicht in Werkstattvorgänge

Alle erfassten Vorgänge sollen einzeln einsehbar sein. Dabei sollen folgende Informationen angezeigt werden können:

  • alle erfassten Positionen eines Vorgangs inkl. Preis,
  • die automatisch berechnete Gesamtsumme,
  • das zugehörige Fahrzeug und die zugehörige Person.

Datenhaltung

Alle Daten sollen dauerhaft in einer relationalen Datenbank gespeichert werden. Die Struktur der Datenbank (Tabellen, Beziehungen) ist auf Basis der fachlichen Anforderungen selbst zu entwickeln.

Bedienoberfläche

Alle Funktionen sollen über ein verständliches, klar strukturiertes Konsolenmenü steuerbar sein.

Technische Anforderungen

  • Java-Konsolenanwendung
  • Objektorientierte Programmierung
  • Verwendung einer relationalen Datenbank
  • Datenbankzugriff mit JDBC
  • Verwendung eines festen Leistungskatalogs
  • Sinnvolle Trennung von Logik und Datenzugriff
  • Fehlerbehandlung für Nutzereingaben
  • Übersichtlicher, gut strukturierter Code

Liefergegenstände

Für die Colloboration und die Abgabe ist ein git Repository anzulegen. Die Lehrkraft ist dem Repository als Bearbeiter hinzuzufügen. Follgendes ist hierbei abzugeben:

  • Vollständiger Source-Code als Maven-Projekt
  • SQL-Skript zum Erstellen der Datenbanktabellen
  • ER-Modell
  • UML-Diagramm
  • Kunden Domumentation als README
  • Javadoc als HTML-Dokumentation

Zusatzaufgaben (für Notenverbesserung über 1,5 hinaus)

Durch die vollständige und korrekte Umsetzung der regulären Anforderungen kann eine maximale Note von 1,5 erreicht werden.
Für eine darüber hinausgehende Bewertung können zusätzlich folgende Erweiterungen umgesetzt werden:

  • Laden des Leistungskatalogs aus einer Datei
    (z. B. JSON oder CSV statt statischer Daten)

  • Rechnungserstellung
    Erzeugung eines strukturierten, druckfähigen Dokuments
    (z. B. Textdatei, Markdown oder einfache PDF-Ausgabe)

  • Zugangsbeschränkung für Mitarbeiter
    Implementierung eines einfachen Login-Systems
    (Nutzerverwaltung + Passwortprüfung)

  • Unit-Tests
    Testabdeckung von > 90 % der zentralen Funktionen

  • Testen mit gemockter Datenbank
    Nutzung von Mocks oder In-Memory-Datenbank zur Simulation der Datenhaltung

  • Datenexport
    Export von Vorgängen oder Kundendaten in JSON-, CSV- oder Textdateien

  • Logging
    Protokollierung aller Aktionen in einer Logdatei (z. B. mit einfachem File-Logger)

Bewertungskriterien

  • Qualität und Vollständigkeit des Datenmodells
  • Saubere objektorientierte Struktur
  • Funktionierende Datenbankanbindung
  • Umsetzung des Leistungskatalogs
  • Bedienbarkeit und Menüführung
  • Code-Stil und Robustheit
  • Qualität der Dokumentation