Software Engineering 2 - 2 Flashcards
test
test
Warum ist die Dokumentation beim Software engeneering wichtig?
Software-Entwickeln ist Dokumentation.
Allgemeines zu “Dokumentation”
- Dokumentation gilt als ewiges Sorgenkind und ist eine Daueraufgabe
- Nachträgliche Dokumentation ist eine unzureichende Notlösung (Denn Info ist vergessen)
Begriffe der Dokumentation
- Integrierte Dokumenttion
(enthaltene Komentare, Bezeichner des Layouts)
- Separate Dokumentation
(Teil der Software, die nicht im Programm enthalten sind)
Ist die Form der Dokumente festgelegt (bei der Dokumentation)?
Nein, nur stabilität ist geforgert!
(Es gibt keine Dokumentation im Kopf)
Integrierte Dokumentation
- Ist leichter zu bearbeiten und kann eher nachgeführt werden
- Reicht in keinem Falle aus!
Integrierte Dokumentation (Was muss unbedingt vorher entstehen?)
- Glossar
- Spezifikation (Wireframes, Use Cases, Datenmodell,…)
- Architektur-Entwurf
Integrierte Dokumentation (Warum müssen Glossar, Spezifikationen und Architektur-Etwurft´vorher entstehen?)
- Sie können nicht in Code-Komponenten abgelegt werden
(Die Projektdokumentation ganz zu schweigen)
Separate Dokumentation (Ist sie gefährdet?)
- Ist grundsätzlich gefährtdet und kann nur unter gewissen Bedingungen funktionieren?
Seperate Dokumentation kann nur funktionieren wenn?
- Anforderung an Dokumente müssen klar sein
- Verantwortlichkeiten klären
- (Wer erstellt, prüft, gibt frei)
- Dokumentaion soll hoch bewertet und anerkannt sein
- Inhaltsverzeichnis (Struktur) muss von Anfang an klar sein
- Werkzeugunterstützung muss verfügbar sein
- Prüfung der Dokumente nach Ändereung/Fertigstellung
- Dokumente werden effektiver Konfigurationsverwaltung unterstellt
Ziele einer guten Dokumentation?
- Wissenstransfer und Kommunikation zwischen Auftraggeber- und Nehmer
- Dokumentation bewahrt das Wissen über Programm, Entwicklung, Wartung
- Dokumentation erlaubt systematische Prüfung (Review) und belegt diese (revisionsfest)
- Dokumentation spiegelt Projektfortschritt wider (Liegt Test vor?-> nachgucken)
Nachteile einer Dokumentation?
- Nutzen ist verteilt und fern
- Kosten treten sofort sichtbar auf
- Oft wird daher an der Doku gespart
Nutzen von Dokumentation
- Vermeiden (,rasches finden) von Fehlern
- Software kann einfacher erweitert & wiederverwendet werden
Faustformeln für die Kosten
- Produktivität im Ø –> 4 Seiten pro Tag
- Diese Arbeit ist 1000 € Wert
- 40 Seiten Starkes Dokument 40.000€
- (Produktivität hier eher hoch geschätzt)
Taxonomie (Alle Dokumente gehören zu einer der 4 Kategorien –> Welche sind dies??)
- Systemdokumentation
- Projektdokumentation
- Qualitätsdokumentation
- Prozessdokumentation
(Möglicher Wiki-Aufbau)
Taxonomie (Welche Dokumente fallen unter den Bereich Systemdokumentation?)
Dokumente die für die Konstruktion/ Betrieb/ Wartung der Software benötigt werden. (unterscheidung techn./fachl.)
Taxonomie (Welche Dokumente fallen unter den Bereich Projektdokumentation?)
- Alle Dokumente die benötigt werden, um das Entwicklungsprojekt zu planen/zu leiten/abzuschließen.
Taxonomie (Welche Dokumente fallen unter den Bereich Qualitätsdokumentation?)
Alle Dokumente in denen die Maßnahmen zur analytischen Qualitätssicherung dokumentiert sind.
Taxonomie (Was ist Prozessdokumentation?)
- Beschreibt den Entwicklungsprozess und seine konkrete Umsetzung im Projekt.
Kategorien im Überblick
Was umfasst die Benutzungsdokumentation?
- Dokumentiert wie sie installiert, betrieben und bedient wird.
(Notwending, damit Software eingesetzt werden kann)
Gib Beispiele für Benutzungsdokumentation.
- Benutzungshandbuch
- Tutorial
- Installationshandbuch
- Kontextsensitive Hilfe
- Onlineinformationen
“Adressaten der Dokumente”
Wie du weißt, werden Dokumente für verschiedene Adressaten erstellt, die sehr unterschiedliche Information benötigen.
Nenne die 4 vers. Adressaten.
Welchen Zweck hat die Dokumentation für den Kunden? Und Welche Dokumente bekommt er?
Welchen Zweck hat die Dokumentation für den Admin? Und Welche Dokumente bekommt er?
Welchen Zweck hat die Dokumentation für den unerfahrenen Anwender? Und Welche Dokumente bekommt er?
Welchen Zweck hat die Dokumentation für den erfahrenen Anwender? Und Welche Dokumente bekommt er?
Nenne 3 Folgen schlechter Dokumentation
- Wartungsingenieure arbeiten als Archäologen
- Grundlagen für die Handbücher fehlen
- Retrospektive Analysen sind nicht möglich (Keine Möglichkeit für Organisation aus Projekt zu lernen)
Warum gehört Dokumentation in der Praxis meist zu den Problemzonen des Software-Engeneerings?
- Software-Entwickler haben dies nicht gelernt (Weder in Ausbildung noch in Praxis)
- Priorität 1, 2 und 3 ist einhaltung des Liefertermins
- FOLGE: –> Zeit für Doku fehlt
Sollte man automatisch generierte Dokumentationen nutzten?
Eher nicht denn:
- Keine Abstraktion
- Stellt Code direkt dar
- Lieber anders herum
- Keine Gedanken vorher gemacht
(Wenn man automatisch generierte Dokumentation nutzt dann vielleicht über arc42.de)
Top 10 Risiken nach Boehm
- Personalprobleme (mangelnde Qualifikation durch Neueinstellung, Umschichtung, mangelhafte Fortbildung)
- Unrealistische Pläne/Budgets (Z.B durch Unterprisangebote wegen hohem Wettbewerbsdruck)
- Entwickeln der falschen Funktionen & Eigenschaften (Bsp.: Onlineshop gemacht mit schlechter Kundenanalyse)
- Entwickeln der falschen Benutzungsschnittstelle (z.B. komplizierte Oberfläche)
- “Goldverzierungen” (z.B graphisch verzierte Oberfläche–> Schnickschnack)
- Ständiger Wechsel der Anforderungen (Z.B. durch unzureichend ausgearbeitetes Lastenheft,…)
- Versagen externer Komponenten (Z.B. Fehler einer zugelieferten Komponente)
- Versagen externer Aufträge (Z.B. erxterner Lieferant für Datenbanklösung geht in Konkurs)
- Zu geringe Leistungen (Z.B. Überlastung von Servern)
- Fehleinschätzung des Standes der Technik (Z.B. Performance neu entwickelter Datenbanktechnik wird überschätzt)
Das Wasserfallmodell
Die Probleme des Wasserfallmodells
- Unklare Zielvorstellungen/Anforderungen des Kunden
- Häufige Änderungen Während des Projekts (Change Requests)
- Arbeitsprozesse außerhalb des kurzfristigen Planungshorizontes bergen zu viele Unsicherheiten
- Zu viele abgegrenzte Aktivitäten/Teams (“Teilprodukte über die Mauer werfen”)
- Tests des Produktes am Ende ist viel zu spät