106 lines
4.6 KiB
Markdown
106 lines
4.6 KiB
Markdown
# 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
|