ICS Entwicklung Flashcards
Vorlesung 6
Was ist Software?
- Computerprogramme und zugehörige Dokumentation
- Software wird für einen bestimmten Kunden (individuelle Software) oder für den allgemeinen Markt (Standardsoftware) entwickelt
- Kein binärer Code, sondern eine höhere Programmiersprache
Was sind die Attribute einer guten Software?
Liefert Nutzer die erforderliche Funktionalität und Leistung, muss wartbar, zuverlässig und nutzbar sein
Warum scheitern Softwareentwicklungsprogramme?
- Programmierung beginnt, bevor das Problem verstanden wurde
- Unrealistische Vorstellungen vom Arbeitsaufwand
- Fehler werden frühzeitig eingebaut, aber erst spät entdeckt
- Manager versuchen, Qualität in der Software zu testen
- Verschiedene Sichten –>Missverständnisse
Vision and Scope Dokument
- Wichtiges Projektmanagementtool, sorgt dafür, dass Stakeholder und Entwickler das gleiche Verständnis für die Bedürfnisse haben
- Bestehend aus Problemstellung und Lösung
Projektplan Bestandteile
- Statement of Work (SOW) –> was erledigt werden muss und der ungefähre Aufwand,
- Ressourcen Liste (Liste aller Ressourcen, die für das Projekt benötigt werden),
- Work Breakdown Structure (WBS) –> Liste der benötigten Aufgaben, die erledigt werden müssen,
- Projekt Zeitplan (Schedule),
- Risikoplan –> durch was kann das Projekt gefährdet werden und wie können die Risiken gesenkt werden?
Projektplan Erstellung
- Den Aufgaben werden Ressourcen zugeordnet,
- Abhängigkeiten zwischen den Aufgaben werden identifiziert,
- Ein Zeitplan wird erstellt
Verschiedene Abhängigkeiten:
- Finish-to-Start: Task 2 fängt erst an, nachdem Task 1 beendet ist –> nacheinander, zB. Codierung startet erst nach Design
- Start-to-Start: Task 2 kann erst gestartet werden, wenn Task 1 gestartet wurde –> gleichzeitig, zB. Testlauf und Ergebnisse
- Start-to-Finish: Task 2 kann erst beendet werden, wenn Task 1 gestartet wurde –> zB. Neue Anwendung kann erst starten, wenn alte Anwendung fertig ist
- Finish-to-Finish: Task 2 kann erst beendet werden, wenn Task 1 beendet wurde
Projektplan - Begriffe, Berechnung, Puffer
- Berechnung entweder durch Forward Calculation (fange vorne an und berechne das frühste Enddatum) oder Backward Calculation (fange hinten an und bestimme das späteste Startdatum)
- Totaler Puffer – Die erlaubte Verspätung einer Aktivität, ohne den Projektablauf zu verzögern
- Freier Puffer – Die erlaubte Verspätung einer Aktivität, ohne das frühste Startdatum einer folgenden Aktivität zu verzögern
- Kritische Aktivität – Aktivität ohne Puffer
- Der kritische Weg – Pfad im Plan, der keine Puffer enthält (also nur kritische Aktivitäten)
Risikoplan
Auflistung aller Risiken mit einem Plan, diese zu vermeiden/eliminieren
- Überlegung von potentiellen Risiken,
- Berechne den Einfluss von jedem Risiko,
- Erstelle Verhinderungsplan
Aspekte des Softwareentwicklungsprozesses
- Anforderungsspezifikation
- Design und Implementation der Software
- Validierung
- Entwicklung
Anforderungsspezifikation
- Definition des Verhaltens einer Software
- Use-Cases: Beschreibung einer Interaktion, die ein Nutzer mit der Software haben könnte
- Funktionale und Nicht-Funktionale Voraussetzungen:
Funktionale Voraussetzungen beschreiben das explizit wahrnehmbare Verhalten einer Software, zB. Logins
Nicht-Funktionale Voraussetzungen beschreiben die Eigenschaften einer Software, die das Verhalten nicht beeinflussen, zB. Benutzerfreundlichkeit
Design und Implementation der Software
Modellierung (Design) und Programmierung (Implementation) der Software
Validierung
Evaluiere die Eigenschaften der Software gegen die Anforderungen
- Test Cases: Test, der durch den Nutzer durchgeführt wird und die Software auf ihre Funktionalität testet
Entwicklung
Anpassung der Software als Reaktion auf sich verändernde Kundenbedürfnisse
- Entwicklungskontrolle: Implementiere nur die Änderungen, die wirklich notwendig/nützlich sind
- Entwicklungskontrollgremium zur Entscheidung
Plangetriebene und Agile Softwareentwicklung
Plangetriebene Softwareentwicklung: Alle Prozesse wurden geplant und der Fortschritt wird anhand des Plans gemessen
Agile Softwareentwicklung: Die Planung erfolgt schrittweise, weshalb es einfacher ist den Prozess zu ändern und sich ändernde Kundenanforderungen einzubauen
- normalerweise sind Elemente beider Methoden enthalten
Modelle für den Softwareentwicklungsprozess
- Sequentielles Modell
- Modifiziertes sequentielles Modell
- Evolutorisches Modell
- Agiles Modell