diff --git a/project-charter.md b/project-charter.md index 9ac621f..b3480cd 100644 --- a/project-charter.md +++ b/project-charter.md @@ -1,52 +1,65 @@ --- title: Project Charter -subtitle: Software Engineering 1 -geometry: - - margin=2cm - - top=3cm - - bottom=2cm -linestretch: 1.2 -papersize: a4 +author: Team A +version: 1.0 +toc: yes +header-includes: | + \usepackage{fancyhdr} + \pagestyle{fancy} + \fancyhead[L]{Team A} + \fancyhead[C]{Project Charter} + \fancyhead[R]{Version 1.0} + \fancyfoot[C]{\thepage\ / \pageref{LastPage}} + \usepackage{lastpage} --- -# Project Charter -## Software Engineering 1 ++-------------------+-------------------+-------------------+ +| Autor | Prüfer | Freigebenden | ++-------------------+-------------------+-------------------+ +| Name, Vorname | Name, Vorname | Name, Vorname | ++-------------------+-------------------+-------------------+ +| Abteilung/Funktion| Abteilung/Funktion| Abteilung/Funktion| ++-------------------+-------------------+-------------------+ +| Datum, Unterschr. | Datum, Unterschr. | Datum, Unterschr. | ++-------------------+-------------------+-------------------+ -| Feld | Wert | -|------|------| -| **Projektname** | | -| **Version** | 1.0 | -| **Status** | Entwurf | -| **Datum** | *[Datum]* | -| **Hochschule / Kurs** | *[Hochschule]*
*Software Engineering 1* | + + +# Dokumentenhistorie + +| Version | Datum | Autor | Grund der Änderung | +|---------|------------|----------|---------------------| +| 1.0 | *[Datum]* | *[Name]* | Initiale Erstellung | --- -## 1. Projektübersicht +# Projektübersicht -### 1.1 Projektzweck +## Projektzweck -*Kurze Beschreibung des Projekts (2-4 Sätze): Was wird entwickelt? Welches Problem löst die Software? Für wen?* +*Kurze Beschreibung des Projekts (2–4 Sätze): Was wird entwickelt? Welches Problem löst die Software? Für wen?* > **Beispiel:** Im Rahmen des Moduls Software Engineering 1 wird eine Webanwendung zur Verwaltung von Studierenden-Lerngruppen entwickelt. Die Anwendung soll es Studierenden ermöglichen, Gruppen zu erstellen, beizutreten und Lernmaterialien zu teilen. -### 1.2 Projekthintergrund +## Projekthintergrund *Warum wird dieses Projekt durchgeführt? Welcher Bedarf oder welche Anforderung liegt zugrunde?* + + --- -## 2. Ziele und Nicht-Ziele +# Projektziele -### 2.1 Projektziele +## Ziele -| Nr. | Ziel | Erfolgskriterien | -|---|---|---| -| Z-01 | *[Ziel 1]* | *[Kriterium]* | -| Z-02 | *[Ziel 2]* | *[Kriterium]* | -| Z-03 | *[Ziel 3]* | *[Kriterium]* | +| Nr. | Ziel | Erfolgskriterien | +|------|-------------|------------------| +| Z-01 | *[Ziel 1]* | *[Kriterium]* | +| Z-02 | *[Ziel 2]* | *[Kriterium]* | +| Z-03 | *[Ziel 3]* | *[Kriterium]* | -### 2.2 Nicht-Ziele (Out of Scope) +## Nicht-Ziele Die folgenden Punkte sind **explizit nicht** Teil dieses Projekts: @@ -55,154 +68,29 @@ Die folgenden Punkte sind **explizit nicht** Teil dieses Projekts: --- -## 3. Stakeholder +# Business Case -| Rolle | Name | Verantwortlichkeit | -|---|---|---| -| Auftraggeber / Betreuer | *[Dozent/in]* | Anforderungen, Abnahme, Bewertung | -| Projektleiter:in | *[Name]* | Koordination, Planung, Kommunikation | -| Entwickler:in | *[Dino]* | Implementierung, Testing | -| Entwickler:in | *[Luca]* | Implementierung, Dokumentation | -| Entwickler:in | *[Lucas]* | Implementierung, Architektur | -| *(weitere)* | *[Alle]* | *[Rolle]* | + + +**Noch auszufüllen** --- -## 4. Projektteam und Rollen +# Stakeholder -### 4.1 Teamstruktur +## Auftraggeber (extern/intern) -| Bezeichnung | Details | -|---|---| -| **Projektleitung** | *[Name]* (Matrikel: *[Nr.]*)
Schwerpunkt: *[z. B. Backend]* | -| **Entwicklung 1** | *[Name]* (Matrikel: *[Nr.]*)
Schwerpunkt: *[z. B. Frontend]* | -| **Entwicklung 2** | *[Name]* (Matrikel: *[Nr.]*)
Schwerpunkt: *[z. B. Datenbank]* | -| **QA / Testing** | *[Name]* (Matrikel: *[Nr.]*)
Schwerpunkt: *[z. B. Testing, CI/CD]* | +| Rolle | Name | Verantwortlichkeit | +|------------------------|---------------|-------------------------------------| +| Auftraggeber / Betreuer| *[Dozent/in]* | Anforderungen, Abnahme, Bewertung | -### 4.2 Kommunikation +## Regulatorisch -| Kanal | Zweck | Frequenz | -|---|---|---| -| *[z. B. Discord]* | Team-Kommunikation | täglich | -| *[z. B. GitHub Issues]* | Aufgabenverwaltung | kontinuierlich | -| *[z. B. Weekly Meeting]* | Fortschrittsbesprechung | wöchentlich | -| *[z. B. E-Mail]* | Kommunikation mit Betreuer | bei Bedarf | + ---- +**Noch auszufüllen** -## 5. Anforderungen (Überblick) - -### 5.1 Funktionale Anforderungen - -| ID | Anforderung | Priorität | -|---|---|---| -| FA-01 | *[Funktionale Anforderung 1]* | Hoch | -| FA-02 | *[Funktionale Anforderung 2]* | Hoch | -| FA-03 | *[Funktionale Anforderung 3]* | Mittel | -| FA-04 | *[Funktionale Anforderung 4]* | Niedrig | - -### 5.2 Nicht-funktionale Anforderungen - -| ID | Anforderung | Kategorie | -|---|---|---| -| NFA-01 | *[z. B. Antwortzeit < 2 Sekunden]* | Performance | -| NFA-02 | *[z. B. Responsives Design]* | Usability | -| NFA-03 | *[z. B. HTTPS, Passwort-Hashing]* | Sicherheit | -| NFA-04 | *[z. B. Deployment via Docker]* | Betrieb | - ---- - -## 6. Technologie-Stack - -| Bereich | Technologie / Tool | -|---|---| -| **Frontend** | *[z. B. React, Vue, HTML/CSS]*
*Begründung: [Begründung]* | -| **Backend** | *[z. B. Spring Boot, Node.js, Django]*
*Begründung: [Begründung]* | -| **Datenbank** | *[z. B. PostgreSQL, MySQL, MongoDB]*
*Begründung: [Begründung]* | -| **Versionskontrolle** | Git / GitHub
*(Standard, Kollaboration)* | -| **Projektmanagement** | *[z. B. GitHub Projects, Trello]*
*Begründung: [Begründung]* | -| **CI/CD** | *[z. B. GitHub Actions]*
*Begründung: [Begründung]* | -| **Kommunikation** | *[z. B. Discord, Teams]*
*Begründung: [Begründung]* | - ---- - -## 7. Zeitplan und Meilensteine - -### 7.1 Projektphasen - -``` -Phase 1 - Planung & Analyse - +-- Anforderungserhebung - +-- Technologiewahl - +-- Project Charter - -Phase 2 - Design & Architektur - +-- Systemarchitektur - +-- UI/UX Mockups - +-- Datenbankdesign - -Phase 3 - Implementierung - +-- Sprint 1: [Funktionen] - +-- Sprint 2: [Funktionen] - +-- Sprint 3: [Funktionen] - -Phase 4 - Testing & QA - +-- Unit Tests - +-- Integrationstests - +-- User Acceptance Tests - -Phase 5 - Abgabe & Präsentation - +-- Dokumentation finalisieren - +-- Abschlusspräsentation -``` - -### 7.2 Meilensteinplan - -| Meilenstein | Beschreibung | Datum | Status | -|---|---|---|---| -| M-01 | Project Charter abgeschlossen | *[Datum]* | Abgeschlossen | -| M-02 | Anforderungsanalyse & Architektur | *[Datum]* | In Bearbeitung | -| M-03 | Prototyp / MVP fertig | *[Datum]* | Offen | -| M-04 | Feature-Complete | *[Datum]* | Offen | -| M-05 | Testing abgeschlossen | *[Datum]* | Offen | -| M-06 | Abgabe & Präsentation | *[Datum]* | Offen | - ---- - -## 8. Risikomanagement - -| ID | Risiko | W/A | Gegenmaßnahme | -|---|---|---|---| -| R-01 | Ausfall eines Teammitglieds | M/H | Wissensteilung, Pair Programming | -| R-02 | Technische Komplexität unterschätzt | M/H | Frühzeitige Spikes, Scope-Reduktion | -| R-03 | Anforderungsänderungen | N/M | Klare Change-Request-Prozesse | -| R-04 | Integrationsprobleme | M/M | Frühzeitige Integrationstests | -| R-05 | *[Projektspezifisches Risiko]* | *[W/A]* | *[Maßnahme]* | - -**Legende:** W/A = Wahrscheinlichkeit/Auswirkung; H = Hoch, M = Mittel, N = Niedrig - ---- - -## 9. Ressourcen und Constraints - -### 9.1 Ressourcen - -- **Teamgröße:** *[Anzahl]* Personen -- **Verfügbare Zeit pro Person:** ca. *[x]* Stunden/Woche -- **Gesamtprojektlaufzeit:** *[Startdatum]* - *[Enddatum]* -- **Budget:** kein monetäres Budget (studentisches Projekt) -- **Infrastruktur:** *[z. B. GitHub Free, lokale Entwicklung, Uni-Server]* - -### 9.2 Rahmenbedingungen (Constraints) - -- Die Abgabe erfolgt bis **[Datum]** -- Der Technologie-Stack muss mit der Lehrveranstaltung kompatibel sein -- Alle Teammitglieder müssen gleichmäßig zum Projekt beitragen (erkennbar in Git-History) -- *[Weitere Vorgaben des Dozenten]* - ---- - -## 10. Definition of Done (DoD) +## Qualitätsmanagement Ein Feature gilt als **fertiggestellt**, wenn: @@ -213,11 +101,7 @@ Ein Feature gilt als **fertiggestellt**, wenn: - Die relevante Dokumentation wurde aktualisiert - Das Feature wurde manuell getestet ---- - -## 11. Abnahmekriterien - -Das Projekt gilt als erfolgreich abgeschlossen, wenn: +**Abnahmekriterien – Das Projekt gilt als erfolgreich abgeschlossen, wenn:** 1. Alle **Muss**-Anforderungen (Priorität: Hoch) vollständig implementiert sind 2. Alle Unit- und Integrationstests bestehen @@ -227,44 +111,127 @@ Das Projekt gilt als erfolgreich abgeschlossen, wenn: --- -## 12. Unterschriften und Genehmigung +# Projekt-Team und Rollen -Mit ihrer Unterschrift bestätigen alle Beteiligten, dass sie den Inhalt dieses Project Charters gelesen haben und damit einverstanden sind. - -**Betreuer/in:** ________________________________________ Datum: ____________ - -**Projektleiter:in:** ________________________________________ Datum: ____________ - -**Teammitglied:** ________________________________________ Datum: ____________ - -**Teammitglied:** ________________________________________ Datum: ____________ - -**Teammitglied:** ________________________________________ Datum: ____________ +| Bezeichnung | Details | +|--------------------|-------------------------------------------------------------------------| +| **Projektleitung** | *[Name]* (Matrikel: *[Nr.]*) – Schwerpunkt: *[z. B. Backend]* | +| **Entwicklung 1** | *[Dino]* (Matrikel: *[Nr.]*) – Schwerpunkt: Implementierung, Testing | +| **Entwicklung 2** | *[Luca]* (Matrikel: *[Nr.]*) – Schwerpunkt: Implementierung, Dokumentation | +| **Entwicklung 3** | *[Lucas]* (Matrikel: *[Nr.]*) – Schwerpunkt: Implementierung, Architektur | +| **QA / Testing** | *[Name]* (Matrikel: *[Nr.]*) – Schwerpunkt: *[z. B. Testing, CI/CD]* | --- -## Anhang +# Zeitplan / Meilensteine -### A. Glossar +**Projektphasen:** -| Begriff | Definition | -|---|---| -| MVP | Minimum Viable Product - minimale, lauffähige Version des Produkts | -| Spike | Zeitlich begrenzter Forschungs- / Lernaufwand zur Risikoreduktion | -| DoD | Definition of Done - Kriterien, wann ein Feature als abgeschlossen gilt | -| *[Begriff]* | *[Definition]* | +``` +Phase 1 – Planung & Analyse + +-- Anforderungserhebung + +-- Technologiewahl + +-- Project Charter -### B. Referenzen +Phase 2 – Design & Architektur + +-- Systemarchitektur + +-- UI/UX Mockups + +-- Datenbankdesign -- Vorlesungsunterlagen Software Engineering 1, *[Hochschule]*, *[Jahr]* -- *[weitere Quellen, Literatur, Standards]* +Phase 3 – Implementierung + +-- Sprint 1: [Funktionen] + +-- Sprint 2: [Funktionen] + +-- Sprint 3: [Funktionen] -### C. Änderungshistorie +Phase 4 – Testing & QA + +-- Unit Tests + +-- Integrationstests + +-- User Acceptance Tests -| Version | Datum | Autor | Änderung | -|---|---|---|---| -| 1.0 | *[Datum]* | *[Name]* | Initiale Erstellung | +Phase 5 – Abgabe & Präsentation + +-- Dokumentation finalisieren + +-- Abschlusspräsentation +``` + +**Meilensteinplan:** + +| Meilenstein | Beschreibung | Datum | Status | +|-------------|------------------------------------|-----------|---------------| +| M-01 | Project Charter abgeschlossen | *[Datum]* | Abgeschlossen | +| M-02 | Anforderungsanalyse & Architektur | *[Datum]* | In Bearbeitung| +| M-03 | Prototyp / MVP fertig | *[Datum]* | Offen | +| M-04 | Feature-Complete | *[Datum]* | Offen | +| M-05 | Testing abgeschlossen | *[Datum]* | Offen | +| M-06 | Abgabe & Präsentation | *[Datum]* | Offen | --- -*Dieses Dokument wurde im Rahmen des Moduls Software Engineering 1 erstellt.* \ No newline at end of file +# Risikomanagement + +| ID | Risiko | W/A | Gegenmaßnahme | +|------|-------------------------------------|-----|------------------------------------------| +| R-01 | Ausfall eines Teammitglieds | M/H | Wissensteilung, Pair Programming | +| R-02 | Technische Komplexität unterschätzt | M/H | Frühzeitige Spikes, Scope-Reduktion | +| R-03 | Anforderungsänderungen | N/M | Klare Change-Request-Prozesse | +| R-04 | Integrationsprobleme | M/M | Frühzeitige Integrationstests | +| R-05 | *[Projektspezifisches Risiko]* | *[W/A]* | *[Maßnahme]* | + +**Legende:** W/A = Wahrscheinlichkeit/Auswirkung; H = Hoch, M = Mittel, N = Niedrig + +--- + +# Budget und Ressourcen + +- **Teamgröße:** *[Anzahl]* Personen +- **Verfügbare Zeit pro Person:** ca. *[x]* Stunden/Woche +- **Gesamtprojektlaufzeit:** *[Startdatum]* – *[Enddatum]* +- **Budget:** kein monetäres Budget (studentisches Projekt) +- **Infrastruktur:** *[z. B. GitHub Free, lokale Entwicklung, Uni-Server]* + +**Rahmenbedingungen (Constraints):** + +- Die Abgabe erfolgt bis **[Datum]** +- Der Technologie-Stack muss mit der Lehrveranstaltung kompatibel sein +- Alle Teammitglieder müssen gleichmäßig zum Projekt beitragen (erkennbar in Git-History) +- *[Weitere Vorgaben des Dozenten]* + +**Technologie-Stack:** + +| Bereich | Technologie / Tool | +|------------------------|----------------------------------------------------------| +| **Frontend** | *[z. B. React, Vue, HTML/CSS]* – Begründung: *[…]* | +| **Backend** | *[z. B. Spring Boot, Node.js, Django]* – Begründung: *[…]* | +| **Datenbank** | *[z. B. PostgreSQL, MySQL, MongoDB]* – Begründung: *[…]* | +| **Versionskontrolle** | Git / GitHub *(Standard, Kollaboration)* | +| **Projektmanagement** | *[z. B. GitHub Projects, Trello]* – Begründung: *[…]* | +| **CI/CD** | *[z. B. GitHub Actions]* – Begründung: *[…]* | +| **Kommunikation** | *[z. B. Discord, Teams]* – Begründung: *[…]* | + +--- + +# Kommunikations- und Entscheidungswege + +| Kanal | Zweck | Frequenz | +|--------------------------|--------------------------|---------------| +| *[z. B. Discord]* | Team-Kommunikation | täglich | +| *[z. B. GitHub Issues]* | Aufgabenverwaltung | kontinuierlich| +| *[z. B. Weekly Meeting]* | Fortschrittsbesprechung | wöchentlich | +| *[z. B. E-Mail]* | Kommunikation mit Betreuer| bei Bedarf | + + + +--- + +# Genehmigung / Unterschriften + +Mit ihrer Unterschrift bestätigen alle Beteiligten, dass sie den Inhalt dieser Project Charta gelesen haben und damit einverstanden sind. + +**Betreuer/in:** ________________________________________ Datum: ____________ + +**Projektleiter:in:** ________________________________________ Datum: ____________ + +**Teammitglied:** ________________________________________ Datum: ____________ + +**Teammitglied:** ________________________________________ Datum: ____________ + +**Teammitglied:** ________________________________________ Datum: ____________ \ No newline at end of file diff --git a/project-charter.pdf b/project-charter.pdf index a182c78..c5bb0c6 100644 Binary files a/project-charter.pdf and b/project-charter.pdf differ