This commit is contained in:
2024-10-09 10:16:12 +02:00
parent 773fad1a24
commit ef5ff48ac6
9 changed files with 607 additions and 25 deletions

86
WS2425/SWT D/P2.md Normal file
View File

@@ -0,0 +1,86 @@
### 1. Arten von Artefakten in einem Softwareentwicklungsprojekt
Hier sind 15 verschiedene Typen von Artefakten, die typischerweise in einem Softwareentwicklungsprojekt erstellt werden:
1. **Anforderungsdokumente:** Beschreiben die funktionalen und nicht-funktionalen Anforderungen an das System.
2. **Spezifikationen:** Technische Details und Beschreibungen der Implementierungsanforderungen.
3. **Architekturdiagramme:** Darstellungen der Systemarchitektur, z.B. UML-Diagramme.
4. **Design-Dokumente:** Beschreiben das detaillierte Softwaredesign, einschließlich Modulen und Schnittstellen.
5. **Quellcode:** Der tatsächlich geschriebene Code der Software in einer oder mehreren Programmiersprachen.
6. **Testpläne:** Beschreiben die Vorgehensweise und die Teststrategie für die Verifikation und Validierung der Software.
7. **Testfälle:** Einzelne Szenarien, die durchgeführt werden, um zu prüfen, ob die Software korrekt funktioniert.
8. **Testberichte:** Dokumentieren die Ergebnisse von durchgeführten Tests und enthalten Informationen zu Fehlern und Problemen.
9. **Benutzerdokumentation:** Enthält Handbücher und Anleitungen zur Bedienung der Software für Endbenutzer.
10. **Administrationshandbuch:** Anleitungen für Systemadministratoren zur Installation und Wartung der Software.
11. **Installationsanweisungen:** Schritt-für-Schritt-Anleitungen zur Installation der Software.
12. **Release-Notes:** Beschreiben die Änderungen, neuen Funktionen und bekannten Probleme in einer neuen Softwareversion.
13. **Projektdokumentation:** Enthält Informationen über den Projektstatus, den Zeitplan und das Budget.
14. **Konfigurationsdateien:** Dateien, die Einstellungen und Konfigurationsinformationen der Software enthalten.
15. **Protokolldateien (Logs):** Enthalten Aufzeichnungen über Ereignisse und Aktionen, die während der Ausführung der Software auftreten.
### 2. Gruppierung der Artefakte
Artefakte können nach verschiedenen Kriterien gruppiert werden. Hier sind einige sinnvolle Gruppen:
1. **Entwicklungsphase:**
- **Analysephase:** Anforderungsdokumente, Spezifikationen
- **Designphase:** Architekturdiagramme, Design-Dokumente
- **Implementierungsphase:** Quellcode, Konfigurationsdateien
- **Testphase:** Testpläne, Testfälle, Testberichte
- **Wartungsphase:** Protokolldateien (Logs), Fehlerberichte
2. **Funktionale Gruppierung:**
- **Dokumentation:** Benutzerdokumentation, Administrationshandbuch, Projektdokumentation
- **Technische Artefakte:** Quellcode, Architekturdiagramme, Konfigurationsdateien
- **Management-Artefakte:** Projektdokumentation, Zeitpläne, Budgetpläne
3. **Verwendungszweck:**
- **Interne Artefakte:** Dokumente, die nur von Entwicklern und dem Projektteam verwendet werden (z.B. Design-Dokumente, Testberichte)
- **Externe Artefakte:** Dokumente, die für Endbenutzer oder Kunden bestimmt sind (z.B. Benutzerdokumentation, Release-Notes)
- Manuell/Maschinell
- Projekt/Produkt
- Archiviert Ja/nein
-
### 3. Voraussetzungen für die Zusammenarbeit an Artefakten im Team
Damit im Team effektiv an Artefakten gearbeitet werden kann, sollten folgende Voraussetzungen erfüllt sein:
1. **Versionierung:** Alle Artefakte sollten versioniert werden, damit Änderungen nachvollziehbar sind.
2. **Zugriffsrechte:** Es müssen klare Zugriffsrechte und Rollen definiert sein, um unbefugte Änderungen zu vermeiden.
3. **Zentrales Repository:** Die Artefakte sollten in einem zentralen Repository gespeichert werden, auf das alle Teammitglieder zugreifen können (z.B. Git).
4. **Kommunikationsstrategie:** Eine gute Kommunikation im Team ist notwendig, um Missverständnisse zu vermeiden und Änderungen effektiv abzustimmen.
5. **Werkzeuge:** Es sollten geeignete Werkzeuge zur gemeinsamen Bearbeitung von Artefakten eingesetzt werden (z.B. Kollaborationsplattformen und Tools zur Dokumentenverwaltung).
### 4. Sinn und Zweck der Versionierung von Artefakten
Es ist sinnvoll, nicht nur die letzte Version eines Artefakts zu speichern, sondern auch alle alten Stände, weil:
1. **Nachverfolgbarkeit:** Es ermöglicht die Rückverfolgung von Änderungen und die Identifikation, wann und warum eine Änderung vorgenommen wurde.
2. **Fehlerbehebung:** Bei Fehlern oder Problemen kann man zu einer früheren Version zurückkehren und untersuchen, was sich geändert hat.
3. **Vergleich:** Es ermöglicht den Vergleich zwischen verschiedenen Versionen eines Artefakts.
4. **Verlaufsprotokoll:** Man erhält ein Protokoll über den Entwicklungsprozess und kann den Fortschritt dokumentieren.
**Zu versionierende Artefakttypen:**
- Quellcode
- Spezifikationen
- Anforderungsdokumente
- Testpläne und Testfälle
- Architekturdiagramme
- Design-Dokumente
- Konfigurationsdateien
### 5. Informationen über ein Artefakt
Folgende Informationen sollten über ein Artefakt bekannt sein:
1. **Name des Artefakts:** Eindeutiger Bezeichner, der das Artefakt beschreibt.
2. **Version:** Aktuelle Versionsnummer und Historie aller früheren Versionen.
3. **Autor:** Wer das Artefakt erstellt oder zuletzt geändert hat.
4. **Erstellungsdatum:** Wann das Artefakt erstellt wurde.
5. **Änderungsdatum:** Wann das Artefakt zuletzt geändert wurde.
6. **Beschreibung:** Kurze Zusammenfassung des Inhalts und Zwecks des Artefakts.
7. **Status:** Der aktuelle Status des Artefakts (z.B. Entwurf, freigegeben, in Überarbeitung).
8. **Abhängigkeiten:** Welche anderen Artefakte von diesem abhängig sind oder mit ihm in Beziehung stehen.
9. **Zugriffsrechte:** Wer Zugriff auf das Artefakt hat und es ändern darf.

61
WS2425/SWT D/Ue 2.md Normal file
View File

@@ -0,0 +1,61 @@
### 1. Zusätzliche Qualitätsziele zur Hälfte der Projektlaufzeit
Wenn während eines Softwareprojekts zur Hälfte der Projektlaufzeit vom Auftraggeber zusätzliche Qualitätsziele formuliert werden, sollte man wie folgt reagieren:
1. **Analyse der Anforderungen:** Man sollte die neuen Qualitätsziele sorgfältig analysieren, um zu verstehen, wie sie sich auf das Projekt auswirken. Dazu gehört das Überprüfen, ob die Ziele realistisch und messbar sind.
2. **Bewertung der Auswirkungen:** Die Auswirkungen der zusätzlichen Ziele auf den bestehenden Projektplan, das Budget und die Ressourcen sollten bewertet werden. Dies könnte dazu führen, dass Anpassungen notwendig sind.
3. **Kommunikation mit dem Auftraggeber:** Eine offene Kommunikation mit dem Auftraggeber ist entscheidend. Es sollte besprochen werden, welche Auswirkungen die neuen Anforderungen auf den Zeitplan und die Kosten haben werden.
4. **Anpassung des Projektplans:** Wenn alle Parteien zustimmen, sollten der Projektplan und das Budget entsprechend angepasst werden, um die neuen Qualitätsziele zu integrieren.
5. **Risikomanagement:** Mögliche Risiken, die durch die Änderung der Anforderungen entstehen, sollten identifiziert und in den Risikomanagementplan aufgenommen werden.
6. **Dokumentation:** Alle Änderungen sollten dokumentiert und allen relevanten Stakeholdern mitgeteilt werden, um Transparenz zu gewährleisten.
### 2. Zuordnung der Dokumentation zu den Adressaten
Hier ist die Zuordnung der verschiedenen Dokumente zu den jeweiligen Adressaten:
- **Produktbeschreibung:** Käufer
- **Installationsanweisung:** Administrator
- **Administrationshandbuch:** Administrator
- **Release-Notes:** Erfahrener Anwender und Administrator
- **Tutorial:** Unerfahrener Anwender
- **Benutzungshandbuch:** Unerfahrener Anwender und Erfahrener Anwender
- **FAQ-Liste:** Unerfahrener Anwender und Erfahrener Anwender
### 3. Beschreibung der Operationsarten und zugehörige Werkzeuge in der Softwareentwicklung
Hier sind die detaillierten Beschreibungen der einzelnen Operationsarten sowie einige Werkzeuge, die diese unterstützen:
1. **Editieren:** Dies bezieht sich auf das Erstellen und Bearbeiten von Quellcode. Es ist eine der grundlegendsten Aufgaben in der Softwareentwicklung.
- **Eingesetztes Werkzeug:** Visual Studio Code, Sublime Text
2. **Transformieren:** Diese Operation umfasst das Umwandeln von Code oder Daten von einem Format in ein anderes, z.B. durch Compiler oder Code-Generatoren.
- **Eingesetztes Werkzeug:** GCC (GNU Compiler Collection), Jenkins
3. **Verwalten / Versionieren:** Verwaltung von Softwarekonfigurationen und Code-Versionen. Diese Operation ist wichtig für die Nachverfolgbarkeit und Zusammenarbeit im Team.
- **Eingesetztes Werkzeug:** Git, SVN (Subversion)
4. **Suchen:** Dies bezieht sich auf das Durchsuchen von Code, Datenbanken oder Dateien, um Informationen schnell zu finden.
- **Eingesetztes Werkzeug:** grep, Visual Studio Code
5. **Nachvollziehen:** Ermöglicht die Rückverfolgbarkeit von Anforderungen, Änderungen und Fehlern im Entwicklungsprozess.
- **Eingesetztes Werkzeug:** JIRA, IBM Rational DOORS
6. **Messen:** Diese Operation umfasst das Erfassen von Metriken und Kennzahlen zur Bewertung der Softwarequalität und der Leistungsfähigkeit.
- **Eingesetztes Werkzeug:** SonarQube, New Relic
7. **Testen:** Testen umfasst das Überprüfen und Validieren der Software auf Fehler und die Einhaltung der Spezifikationen.
- **Eingesetztes Werkzeug:** Selenium, JUnit
8. **Verbinden:** Die Integration unterschiedlicher Softwarekomponenten oder Module, um eine zusammenhängende Anwendung zu erstellen.
- **Eingesetztes Werkzeug:** Jenkins, Docker
9. **Dokumentieren:** Das Erstellen von Dokumentationen, die Informationen über die Software und deren Nutzung bereitstellen.
- **Eingesetztes Werkzeug:** Doxygen, Confluence
10. **Verfolgen / Überwachen:** Überwachung von Softwareoperationen und Systemleistung zur Sicherstellung des reibungslosen Betriebs und zur Fehlerbehebung.
- **Eingesetztes Werkzeug:** Nagios, Prometheus
Diese Operationsarten sind entscheidend für eine effektive Softwareentwicklung und tragen zur Sicherstellung der Qualität, Wartbarkeit und Skalierbarkeit des Projekts bei.

BIN
WS2425/SWT D/swtd-p-02.pdf Normal file

Binary file not shown.

BIN
WS2425/SWT D/swtd-ue-02.pdf Normal file

Binary file not shown.