ICS Entwicklung Flashcards

Vorlesung 6

1
Q

Was ist Software?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was sind die Attribute einer guten Software?

A

Liefert Nutzer die erforderliche Funktionalität und Leistung, muss wartbar, zuverlässig und nutzbar sein

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Warum scheitern Softwareentwicklungsprogramme?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Vision and Scope Dokument

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Projektplan Bestandteile

A
  • 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?
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Projektplan Erstellung

A
  1. Den Aufgaben werden Ressourcen zugeordnet,
  2. Abhängigkeiten zwischen den Aufgaben werden identifiziert,
  3. 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Projektplan - Begriffe, Berechnung, Puffer

A
  • 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)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Risikoplan

A

Auflistung aller Risiken mit einem Plan, diese zu vermeiden/eliminieren

  1. Überlegung von potentiellen Risiken,
  2. Berechne den Einfluss von jedem Risiko,
  3. Erstelle Verhinderungsplan
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Aspekte des Softwareentwicklungsprozesses

A
  • Anforderungsspezifikation
  • Design und Implementation der Software
  • Validierung
  • Entwicklung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Anforderungsspezifikation

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Design und Implementation der Software

A

Modellierung (Design) und Programmierung (Implementation) der Software

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Validierung

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Entwicklung

A

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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Plangetriebene und Agile Softwareentwicklung

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Modelle für den Softwareentwicklungsprozess

A
  • Sequentielles Modell
  • Modifiziertes sequentielles Modell
  • Evolutorisches Modell
  • Agiles Modell
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Sequentielles Modell

A

Aufeinander folgende Phasen mit zunehmender Detailgenauigkeit und Meilensteinen
- Wasserfall-Modell – Phasen gehen ineinander über, man kann nicht mehr zurückgehen um zB. Anforderungen zu ändern, Ende jeder Phase muss abgesegnet werden, traditionelle Ingenieurspraxis

17
Q

Modifiziertes sequentielles Modell

A

Phasen verschachteln sich mit zunehmender Detailgenauigkeit und Meilensteinen
- V-Modell: Ähnlich zu Wasserfall-Modell, aber macht Abhängigkeiten zwischen Entwicklung und Verifizierung deutlich,
Links ist Entwicklung, Rechts ist Validierung

18
Q

Evolutorisches Modell

A

Keine Phasen mit definierten Ergebnissen. Stattdessen iterative Zyklen von Design, Implementierung und Validierung

  • Spiralmodell: Entwickle eine anfängliche Implementation, die nach Feedback des Nutzers immer wieder neu definiert wird bis das System passt
  • Evolutorische Modelle können entweder erforschend oder Wegwerf-Prototyping sein
19
Q

Vorteile und Nachteile von Evolutorischen Modellen

A

Vorteile: Schätzungen für Budget und Zeitplan werden durch den Arbeitsprozess realistischer

Nachteile: Expertise zur Risikoeinschätzung und Minderung werden benötig, nur in großen Systemen anwendbar

20
Q

Agiles Modell

A

Nur ein allgemeiner Rahmen für einen Ansatz
o Wenige Regeln
o Viele flexible und dynamische Phasen
o Hohe Interaktion mit dem Kunden
o Kurze Entwicklungs-Zyklen (6-8 Wochen)
o Ständig wechselnde Anforderungen an das Projekt
o Direkte und informelle Kommunikation zwischen den Projektmitgliedern
o Wenig Dokumentation
o Erfordert viel Disziplin
o Wird meist bei innovativen Projekten eingesetzt
o zB. Scrum – tägliches Meeting