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
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, …
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”)
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
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)
6
Q
Kosten der Softwarequalität
A
- Optimum abhängig vom Produkt
- Software so weit fehlerfrei machen, dass es wirtschaftlich sinnvoll ist
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)
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
9
Q
Übersicht Vorgehensmodelle
A
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
11
Q
Wasserfallmodell
1. Phase
A
Machbarkeitsstudie
- Auswahl des Produktes
- Marktstudien, Nachfrageanalyse
- Dokumentation der Hauptanforderungen aus Anwendersicht (-> Lastenheft)
- Ermittlung des Ressourcenbedarfs
12
Q
Wasserfallmodell
2. Phase
A
Anforderungsanalyse
- was System können soll/muss/nicht muss
- Detaillierte Beschreibung der Anforderungen aus Auftragsnehmer-Sicht (-> Pflichtenheft)
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)
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
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