01_Einführung Flashcards

1
Q

Definition Systemanalyse

A
  • “Wünsche und Anforderungen eines Auftraggebers an ein neues Softwaresystem ermitteln und durch ein Modell beschreiben” [Heide Balzert]*
    (a) Anforderungsermittlung + (b) Systemmodell-Erstellung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Definition: Software

A
  • immateriell: keine physikalischen Grenzen
  • leicht veränderbar: ohne Austausch physikalischer Gegenstände möglich (z. B. Download/Update per Internet)
  • einfache Vervielfältigung: Massenproduktion und kostengünstige Verbreitung
  • kompliziertes Vertriebsmodell: Urheberrecht, Schutz vor Manipulation und Raubkopien, …
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Komplexitätstreiber bei Software

A
  • zunehmende Verknüpfung mit anderen Hard- und Softwaresystemen
  • Fortschritt der Hardwarekapazitäten -> wird von Software ausgefüllt
  • Steigender Wettbewerb zwischen Anbietern
  • Wachsender Funktionsumfang (“Feature overkill”)
  • Gestiegene Ansprüche von Kunden
  • Hohe Standards bzgl. Bedienungskomfort („Usability”)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Komplexitätsmaße für Software

A
  • LOC (Lines of Code): Anzahl Code-Zeilen
  • Anzahl Schnittstellen zu anderen (Teil-)Systemen
  • Function Point Analysis: Anzahl Funktionen und Elementardatentypen (Funktionen und Datentypen werden je nach Komplexität mit Punkten bewertet)
  • > zur Aufwandsabschätzung (Zeit und Kosten)
  • > mehr Komplexität = höhere Wartungskosten + größere Fehleranfälligkeit
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Methoden zur Beherrschung von Softwarekomplexität

A
  • Automatisierung durch Einsatz weniger fehleranfälliger Programmiersprachen
  • Modularisierung durch Zerlegung in Komponenten (z. B. Objektorientierung)
  • “Best Practices”, d. h. Verwendung von vorgefertigten Lösungen für häufig auftretende Probleme (“Pattern”)
  • Standardisierung durch Einführung einheitlicher Artefakte, Prozesse oder Schnittstellen (z. B. XML)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Kosten der Softwarequalität

A
  • Optimum abhängig vom Produkt
  • Software so weit fehlerfrei machen, dass es wirtschaftlich sinnvoll ist
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Nicht-funktionale Anforderungen an Software

A
  • Korrektheit (Fehlerfreiheit)
  • Zuverlässigkeit (Wiederherstellbarkeit, Fehlertoleranz)
  • Aussehen und Handhabung (“Look and Feel”)
  • Benutzbarkeit (Verständlichkeit, leichte Bedienbarkeit)
  • Leistung und Effizienz (Antwortzeiten, Ressourcenbedarf)
  • Betrieb und Umgebungsbedingungen (Flexibilität)
  • Wartbarkeit (Änderbarkeit, Erweiterbarkeit - Customizability)
  • Portierbarkeit (Übertragbarkeit, - andere Plattformen/BS)
  • Sicherheitsanforderungen
  • Konformität (Unterstützung von Standards)
  • Skalierbarkeit (Anpassen an variable Nutzungsintensität)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Gründe für Vorgehensmodelle

A
  • Regelwerke für den Software-Entwicklungsprozess
  • Abläufe und Prozesse in einem Projekt, Rahmen für die Kommunikation
  • Art, Struktur und Reihenfolge der Artefakte
  • Ingenieurs-Ansprüche (Software Engineering statt „code and fix“):
    • Planbarkeit von Kosten und Aufwand
    • Wiederholbarkeit der Qualität
    • Sicherung von Knowhow
  • erlaubt die präzise (rechtssichere) Abstimmung mit dem Auftraggeber und dienen der Nachvollziehbarkeit
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Übersicht Vorgehensmodelle

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

Wasserfallmodell nach Royce

A
  • Aufeinander aufbauende, nur in einer Richtung zu durch laufende Projektphasen ( “Wasserfall”)
  • Industriestandard
  • Hoher Verbreitungsgrad
  • 7 Phasen mit Input-Artefakten aus vorheriger Phase und Output-Artefakten für nächste Phase
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Wasserfallmodell

1. Phase

A

Machbarkeitsstudie

  • Auswahl des Produktes
  • Marktstudien, Nachfrageanalyse
  • Dokumentation der Hauptanforderungen aus Anwendersicht (-> Lastenheft)
  • Ermittlung des Ressourcenbedarfs
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Wasserfallmodell

2. Phase

A

Anforderungsanalyse

  • was System können soll/muss/nicht muss
  • Detaillierte Beschreibung der Anforderungen aus Auftragsnehmer-Sicht (-> Pflichtenheft)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wasserfallmodell

3. Phase

A

Systementwurf

Komponentenstruktur und Grundentscheidungen

  • Erstellung einer System-Architektur in Form eines Architekturmodells z. B.
    • Client-/Server
    • 3-Schichten-Architektur (3-tier)
    • 4-Schichten-Architektur (4-tier)
  • Grundsatzentscheidungen (Programmiersprache, Datenbank, Oberfläche)
  • Festlegung von Grundtechnologien (Frameworks, Bibliotheken)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Wasserfallmodell

4. Phase

A

Codieren und Modultests

  • Konkrete Implementation der einzelnen Module in lauffähigen Programmcode
  • Entwurf und Implementation von Modultests zur automatisierten Durchführung von Funktionstests
  • Erstellung des lauffähigen Objektcodes der einzelnen Module und ihrer Modultests
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wasserfallmodell

5. Phase

A

Integration- und Systemtests

  • Festlegung von Testfällen und Erstellung von Testplänen
  • Durchführung von System- und Integrationstests auf Basis der Testpläne
  • Behebung von Fehlern -> Phase von der am wahrscheinlichsten zurückgesprungen wird
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Wasserfallmodell

6. Phase

A

Auslieferung und Installation

  • Anpassung an spezifische Umgebung
  • Abnahmetest
17
Q

Wasserfallmodell

7. Phase

A

Wartung und Pflege

  • Regelmäßige Wartung der Software: Analyse und Behebung von Fehlern bei laufendem Betrieb
  • Pflege in Betrieb befindlicher Software: Änderungen und Erweiterungen des Funktionsumfangs (Versionspflege)