Aufgaben Flashcards

(158 cards)

1
Q

Was haben alle Vorgehensmodelle gemeinsam?

A
  • Reihenfolge von Arbeitsabläufe in Phasen unterteilt
  • machen die Durchführung durch zeitlich und inhaltlich definierte Phasen überschauberer
  • müssen fast immer individualisiert werden / sind selten in Reinform anzutretten
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Aus welchen Phasen setzt sich das Wasserfallmodell zusammen ?

A

Analyse - Design - Codierung - Test - Betrieb/Wartung

Parallel: Planung, Dokumentation, Kontrolle, Verwaltung

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

Was ist beim Wasserfallmodell zu beachten?

A

-Teilphasen müssen vollständig durchlaufen werden
-Phasenabschluss ist durch Vorliegen bestimmter Dokumente definiert

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

Was sind die Vor- und Nachteile des Wasserfallmodells

A

+verständlich
+wenig Managementaufwand

  • Keine Parallelität
  • Zu hohe Bedeutung der Dokumente
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was ist das V-Modell?

A

-in frühen Phasen werden bereits Testphasen erstellt
-schlagen später Tests fehl sind die gegenüberliegenden Phasen zu überprüfen

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

Was sind die Phasen des V-Modells?

A

Analyse - Testfälle - Abnahmetest
Entwurf - Testfälle - Integrationstest
Implementierung - Testfälle - Unit-Test

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

Vorteile des V-Modells gegenüber des Wasserfallmodells

A
  • Integrierte Qualitätssicherung durch Testverfahren auf verschiedenen Ebenen

Gemeinsamkeit: hoher bürokratischer Aufwand durch Rollen und Dokumente

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

Unterschiede zwischen einem Systemtest und Abnahmetest

A
  • Systemtest : Prüft das Software System auf Anforderungen und Tauglichkeit
  • Abnahmetest : Test von Kunden auf Tauglichkeit für Inbetriebnahme
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Was ist ein horizontaler und was ein vertikaler Prototyp?

A

ein horizontaler Prototyp enthält nur ausgewählte Komponenten einer Systemschicht

ein vertikaler Prototyp realisiert eine Funktionsauswahl über mehrere Systemschichten (Benutzeroberfläche, Anwendung, Datenbank)

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

Welche Vorteile bietet die Erstellung eines Prototyps in der Softwareentwicklung ?

A
  • Veranschaulichung speziellen Aspekte des Systems
  • Hilft bei der Kommunikation mit Kunden => schnelleres Feedback
  • Frühere Fehlererkennung => Kostenersparnis
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was ist ein Laborprototyp und Demonstrationsprototyp ?

A
  • Laborprototyp : Prüft Umsetzbarkeit, wird intern von Entwicklern genutzt
  • Demonstrationsprototyp : Funktionsfähiger aber nicht vollständiger Prototyp, zur Präsentation vor Kunden und Nutzern, kann auch für Feedback verwendet werden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Begründen Sie warum ein stufenweises Vorgehen Vorteile bringen kann?

A
  • Kleinen Arbeitsschritten mit regelmäßigen Feedback => auf Kundenwünsche eingegangen werden
  • reduziert das Risiko, dass das Endprodukt dem Kunden missfällt
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was ist das evolutionäre Modell?

A

-Kernanforderungen definieren Produktkern
-nach Entwurf und Implementierung des Produktkerns wird er für Feedback an den Kunden geliefert
-Auftraggeber sammelt Erfahrungen und definiert neue Anforderungen für weitere Entwicklung
-stufenweise Entwicklung

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

Wie vermeidet man eine unflexible erste Produktversion im evolutionäre Modelle?

A
  • Durch Prototyping und erhöhtes einbinden der Kunden in die Entwicklung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Vor- und Nachteile des evolutionären Modells

A

+schnell einsatzfähige Produkte
+Kombination mit Prototypen-Modell
+schnelle Prüfung im Arbeitsprozess
+schnelle überschaubare Zwischenergebnisse

-hoher Aufwand bei Restrukturierung
-ggfs. zu unflexible Nullversion

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

Was ist das inkrementelle Modell?

A

-Erweiterung des evolutionären Vorgehensmodells
-Anforderungen werden zu Beginn bereits vollständig erfasst
-daraufhin wird nur ein Teil der Anforderungen entwickelt, sich Feedback geholt und basierend auf Erfahrungen weiterentwickelt

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

Was ist der Vorteil des inkrementellen gegenüber des evolutionären Modells?

A

vollständige Anforderungen stellen sicher, dass die inkrementellen Erweiterungen zum bisherigen System passen

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

Was ist das Spiralmodell?

A

-vier-schrittiges zyklisches Modell
-oberstes Ziel Risikominierung
-Ergebnisse eines Zyklus dienen als Basis zur Zieldefinition des folgenden

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

Was sind Vor- und Nachteile des Spiralmodells?

A

+integrierte Qualitätssicherung
+flexibles Vorgehen
+einfache Anpassungen

-hoher Managementaufwand
-nur für größere Projekte
-Risikobewertung schwierig

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

4 Phasen des Spiralmodells

A
  1. Festlegung der Ziele, Beurteilen von Alternativen
  2. Risikoanalyse
  3. Entwicklung und Test
  4. Plannung des nächten Zyklus
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Was ist der Rational Unified Process (RUP)?

A

-Definition von neuen Workflows für Kernaufgaben eines Projekts
-vollständige Abdeckung des Entwicklungsprozesses samt Tools, Dokumentations- und Visualisierungssprache
-durch große Anzahl an Rollen mach Nutzung für Teamgrößen ab 10 Personen Sinn

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

Was ist die erste Phase im rational unified process und welche Workflows finden dort vorallem statt?

A

Inception
-Business Modelling: Beschreibung von Problem, Produkteigenschaften und groben Anforderungen und Risiken
-Requirements: Priorisierung der Use Cases

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

Was ist die zweite Phase im rational unified process und welche Workflows finden dort vorallem statt?

A

Elaboration Phase
Business Modelling und Requirements aus der ersten Phase hinzukommen:
Analysis und Design sowie Implementation und Testen; Konfigurationsmanagement auch

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

Was ist die dritte Phase im rational unified process und welche Workflows finden dort vorallem statt?

A

Construction:
Hier findet der Großteil der Implementierung, des Testens und des Konfigurationsmanagement statt, aber auch Requirements, Analysis und Design sowie zur Mitte hin Deployment

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Was ist die vierte Phase im raitonal unified process und welche Workflows finden dort vorallem statt?
Transition hier wird die Implementierung, das Testen sowie das Deployment frühzeitig beendet; vorallem Konfigurationsmanagement und Projektmanagement finden in dieser Phase statt
26
Welche Workflows des RUP finden dauerhaft statt?
Configuration und Change Management mit einem Peak in der Construction Phase Projektmanagement in stetig Environment hat immer zu Beginn einer neuen Phase seinen Peak
27
Unterschiede zwischen schwergewichtigen und leichtgewichtigen Softwareentwicklungsmethoden
* schwergewichtigen : stare, gut definierte Strukturen, - großer Wert auf Plannung und Dokumentation Bsp : Wasserfallmodell, V-Modell * leichtgewichtigen : Flexibilität, Anpassungsfähigkeit - Wert auf Zussamenarbeit - Schnelle Bereitstellung funktionsfähiger Software - iterative und inkrementelle Herangehensweise = > Feedback integrieren, reagieren Bsp : Scrum, Extreme Programming, Kabern
28
Was sind die Charakteristika von extreme Programming?
-agile Software Vorgehensweise -User Stories beschreiben GUIs, Funktionalitäten, Testszenarien -Einbeziehung des Kunden in Entwicklung (On-site Customer) -Pairprogramming - Testdriven Development (vor Entwicklung werden automatisierte Testfälle geschrieben) -small releases für den Kunden -Sourcecode kann jederzeit von jedem bearbeitet werden (refactoring) -continous integration (häufige integration von produzierten Code) -collectice ownership (jedes Teammitglied ist für jeden Codeanteil verantwortlich -Verwendung von coding standards zur Verbesserung der Lesbarkeit
29
Teilnehmer von Scrum Meetings
* Daily : Team, Scrum Master, Produkt Owner * Sprint Review : Team, Product Owner , Stake-Holder - Präsentation der Arbeit am Ende eines Sprints - Feedback von Produkt Owner und Stakeholder * Sprint Retro : Team, Scrum Master, Produkt Owner - Reflektion der Zusammenarbeit am Sprint-Ende
30
Unit-Test / Integrations-Test / System-Test
* Unit-Test : einzelne Funktionalität testen (isoliert) * Integrations-Test : Testet einzelne Units zusammen * System-Test : das gesamte System wird getestet
31
Was ist das CMM?
das capability maturity modell ist ein Modell zur Beurteilung und Verbesserung der Qualität von Produkt-Entwicklungsprozessen
32
Was ist die erste Stufe und ihr Charakteristika im CMM? Nenne zudem auch die notwendigen Schritte für die nächste Stufe
Initialer Prozess: unvorhersehbare Kosten, Zeit und Qualität Notwendige Schritte: Planung, Überwachung, Änderungsmanagement, Qualitätssicherung
33
Was ist die zweite Stufe und ihre Characteristika im CMM? Nenne zudem auch die notwendigen Schritte für die nächste Stufe
Wiederholbarer Prozess: informelles Vorgehen, Kosten/Qualitätsschwankungen Notwendige Schritte: Prozess-Standards entwickeln, Methoden zur Definition, Entwurf, Inspektion, Test einführen
34
Was ist die dritte Stufe und ihre Characteristika im CMM? Nenne zudem auch die notwendigen Schritte für die nächste Stufe
Definierter Prozess: zuverlässige Kosten / Termine, verbesserte, aber unvorhersehbare Kosten Notwendige Schritte: Prozesse vermessen und analysieren, Quantitative Qualitätssicherung
35
Was ist die vierte Stufe und ihre Characteristika im CMM? Nenne zudem auch die notwendigen Schritte für die nächste Stufe
Gesteuerter Prozess: gute statistische Kontrolle über Qualität notwendige Schritte: quantitative Produktivitätspläne und Prozessüberwachung, instrumentierte Prozessumgebung, ökonomisch gerechtfertigte Investitionen in Technologien
36
Was ist die fünfte Stufe und ihre Characteristika im CMM? Nenne zudem auch die notwendigen Schritte für die nächste Stufe
Optimierender Prozess: andauernde Kapitalinvestitionen in die Prozessautomatisierung und Verbesserung Notwendige Schritte: kontinuierlicher Schwerpunkt auf Prozessvermessung und Prozessmethoden zur Fehlervermeidung
37
CMM / CMMI
- Capability Maturity Modell - Capability Maturity Modell Integration
38
Vorteile eines höheren Reifegrads
Je höher der Reifegrad, desto... Zielerreichung: höher die Wahrscheinlichkeit geplante Ziele (Zeit, Kosten etc.) zu erreichen Ergebniseffizienz: geringer der Unterschied zwischen geplanten und Ist-Ergebnissen, Reifere Organisationen halten Termine mit größerer Genauigkeit ein Prozesseffizienz: stärker sinken die Kosten, desto kürzer die Entwicklungszeit und desto höher die Produktivität und Qualität Umgang mit Problemen: schneller können Probleme identifiziert und behoben werden; Minimierung der Fehlinvestitionen
39
Unterschied zwischen kontinuierlichen und gestuften CMMI
* Kontinuierlich : Prozesse einzeln bewertet, Gesamtbewertung abgetestet * Stufenweise : jede Stufe baut auf der vorherigen auf, alle Prozessen müssen die vorherigen Stufe erfüllen, damit Organisation in die nächste Stufe geben kann
40
Unterschied zwischen Reifengrad und Fähigkeitsgrad
* Fähigkeitsgrad : (Capability levels) beschreiben die Reife von Prozessen in einzelnen Prozessbereichen * Reifengrad : beschreibt die Reife einer Organisation über mehrere Prozessbereiche *Prozessbereiche sind untergliedert in Projektmanagement, Unterstützung, Entwicklung und Prozessmanagement
41
Was passiert in einem Prozess-assessment ?
- Bewertung der Prozessen auf Reife und Wirksamkeit - Aufdecken von Schwachstellen und Verbesserungspotenziellen
42
Was ist ein Softwareelement?
-jeder identifizierbare und maschinenlesbare Bestandteil des entstehenden Produkts -jedes SW-Element hat einen eindeutigen Bezeichner; jede Änderung erzeugt einen neuen Bezeichner
43
Was ist eine Software-Konfiguration?
- Benannte und formale freigegebene Mengen von Software-Elementen mit gültiger Versionsangabe; die Elemente sind aufeinander abgestimmt und erfüllen vorhergesehene Aufgaben
44
Klassen von Software-Elementen
1. Quell-elemente : Software-Elementen, die durch manuelle Eingaben erzeugt werden 2. Abgeleitete Software : Software-Elementen, die vollautomatisch erzeugt werden, können ge---- werden 3. Atome : Software-Elementen, die keine Unterelemente enthalten, die unabhängig variieren 4. Konfig. : Summe aus Software-Elementen, die unabhängig von einander variieren
45
Fünf Beispiele für Software-Elementen
* Source Code Dateien * Bibliotheken für Code * Ausführbare Dateien * Konfig - Datei ( Einstellung und Konfig. die Programme an PC anpassen) * Quelltext
46
Artefakte, die während eines Software-Projekts entstehen aber nicht Teil der Konfiguration sein sollten
1. Temporäre Dateien 2. Protokolldateien 3. Back-up Dateien
47
Was ist ein Konfigurationsdokument (KID) ?
Software-Elementen, die zu einer Konfiguration gehören
48
Vergleiche Zentrale vs. dezentrale Versionsverwaltung
zentrale Versionsverwaltung: -Repository befindet sich auf zentralem Server -nur am Repository angemeldete Clients dürfen am Repository arbeiten dezentrale Versionsverwaltung: -jeder Entwicklung besitzt eigenes Repository -Änderungen werden erst lokal übernommen -Überarbeitung werden nur auf Anweisung des Entwicklers geteilt
49
Woraus setzt sich eine Versionsnummer zusammen ?
- Aus Major, Minor und Patchnummer * Majorversion : API inkompatible Änderung * Minorversion : neue Funktionen kompatibel zur API * Patchversion: Bei Fehlerbehebung und Änderungen, ohne Änderung der schnittstelle
50
Anforderungen, die zu einer neuen Variante führen können
* Produkt in neuem Land * Neue Platform ( OS ) * Sicherheitsanforderung V.1.0 --> V.1.0.1.0
51
Unterschiede zwischen Varianten und Versionen
* Versionen : Veränderung der Software auf dem Hauptentwicklungspfad * Varianten : Anpassungen an spezielle Anforderungen oder Zielgruppen
52
Das Check-IN-Check-Out-Modell
* Nutzer sperrt Datei bevor er Änderungen vornimmt und entsperrt nachdem er fertig ist => Verhindert das zwei Personen gleichzeitig Änderungen vornehmen => Versionenkonflikt => Datenverlust (löschen oder überschreibung) => Fehlende Nachverfolgbarkeit
53
Warum muss eine Konfiguration gemanaged werden ?
- Um sicher zu gehen, dass eine konsistente, stabile Version entsteht - Änderungen an der Software geordnet und kontrolliert - Nachverfolgung von Änderungen, Nachvollziehbarkeit von Entscheidungen im Entwicklungsprozess und Kunden entsprechend. - Sicher gehen, dass Kunden-Wünsche erfüllt sind
54
Unterschied zwischen Software-Elementen Management VS. Konfig.- Management
* Software-Elementen-Management => Verwaltung einzelner Komponenten, beinhaltet Dokumentation, Verwaltung von Testfällen * Konfig.- Management => Verwaltung der gesamten Software-Konfiguration -SWEM ist Teil von Konfig.- Management
55
Was ist das Ziel von Risikomanagement?
Risiken zu identifizieren, analysieren und beseitigen bevor sie zu einer Gefahr für einen erfolgreichen Software Einsatz werden oder die Hauptquelle für Aufwand bei Überarbeitungen.
56
Wie ist das Vorgehen beim Risikomanagement?
Aufgeteilt in Risikobewertung und Risikobeherrschung. 1.1 Risikoidentifikation Risikocheckliste aller Risikoelemente erstellen Risiken in einer Tabelle nach Wahrscheinlichkeit ordnen 1.2 Risikoanalyse -für jedes Risikoelement Schadenswahrscheinlichkeit & Schadensausmaß bestimmen (0-10 Punkte) -Risikofaktor durch multiplizieren errechnen 1.3 Risikoprioritätenbildung - Risikoelemente nach Risikofaktor ranken 2. Risikobeherrschung 2.1 Risikomanagement-Planung - aufstellen von Risikomanagement Plans für jedes Risikoelement 2.2 Risikoüberwindung - ausführen der Pläne 2.3 Risikoüberwachung - Risiken in Reihenfolge bringen - Fokus auf die Top 10 - Festlegung regelmäßiger Überprüfungstermine - in jeder Sitzung Fortschrittsbericht (Rang bei der letzten Sitzung des Risikoelements, Entwickung der Risikoelemente)
57
Was sind die Top 10 Risiken in der Softwareentwicklung?
1. Personelle Defizite 2. Unrealistische Termin und Kostenvorgaben 3. Entwicklung von falschen Funktionen und Eigenschaften 4. Vergolden (über das Ziel hinaus) 5. kontinuierliche Anforderungsänderungen 6. Defizite bei extern gelieferten Komponenten 7. Defizite bei extern erledigten Aufträgen 8. Defizite in der Echtzeitleistung 9. Überfordern der SW Technik
58
Risikomanagementplan Personelle Defizite
hochtalentierte Mitarbeiter einstellen Teams zusammenstellen
59
Risikomanagementplan unrealistische Termin und Kostenvorgaben
Detaillierte Kosten und Zeiteinschätzung nach mehreren Methoden inkrementelle Entwickung Wiederverwendung von Software Anforderungen streichen
60
Risikomanagementplan Entwickung falscher Funktionen und Eigenschaften
Benutzer-Beteiligung Prototypen frühzeitiges Handbuch
61
Risikomanagementplan Entwicklung der falschen Benutzerschnittstelle
Prototypen Benutzer-Beteiligung Aufgabenanalyse
62
Risikomanagementplan Vergolden
Prototypen Anforderungen streichen Kosten/Nutzen Analyse Entwicklung an der Kosten orientieren
63
Risikomanagementplan kontinuierliche Anforderungsänderungen
hohe Änderungsschwelle inkrementelle Entwickung (Änderungen auf spätere Erweiterung verschieben)
64
Risikomanagementplan Defizite bei extern gelieferten Komponenten
Leistungstest Inspektion Kompatibilitätsanalyse
65
Risikomanagementplan Defizite bei extern erledigten Aufträgen
Prototypen frühzeitige Überprüfung Verträge auf Erfolgsbasis
66
Risikomanagementplan Defizite in der Echtzeitleistung
Simulation Prototypen Leistungstest Modellierung
67
Risikomanagementplan Überfordern der Software Technik
technische Analyse Kosten Nutzen Analyse Prototypen
68
Drei Ansätze die Produktivität im Erstellungsprozess zu steigern
schnellere Entwicklung Steigerung des ROI (geringerer finanzieller Einsatz) Steigerung der SW Qualität
69
Was sind Maße Ergebnisse in der SW Entwickung zu messen?
größenspezifisch zb Lines of Code, Seitenzahl Systemdokumentation funktionsspezifisch: bezogen auf Gesamtfunktionalität der Software Summe der nutzbringenden Funktionen Function Points oder Object Points
70
Verbreitetstes Maß in der SE Entwicklung
Lines of Code
71
Bestandteile von Lines of Code
-Zeit für Analyse, Entwurf, Codierung, Testen, Dokumentation
72
Probleme die Lines of Code hat
Deklarationen, Kommentare und Strukturelemente werde nicht berücksichtigt sodass bessere Anschaulichkeit als niedrige Produktivität dargestellt wird.
73
Warum benutzt man trotz der Probleme Lines of Code?
weil es einfach und schnell zu erheben ist und man Projekte leicht vergleichen kann
74
Erkläre Function Points
-funktionale Anforderungen an das System werden in Kategorien aufgeteilt -für die Kategorien wird der Aufwand geschätzt und danach Function Points vergeben -die Summe aller Kategorien ergibt die Komplexität des Systems
75
An welchen Code Bausteinen wird bei Function Points die Komplexität gemessen?
-Ein- und Ausgaben -Benutzerinteraktionen (Abfragen) -Externe Schnittstellen (Referenz) -Datentypen
76
Vor und Nachteile von Function Points
Vorteile: -kann als Grundlage zur Kostenschätzung verwendet werden -Projekte mit verschiedenen Sprachen können verglichen werden Nachteile: -Komplexität erfordert hohes Verständnis -Subjektivität der Komplexität
77
Wie berechnet sich der Umweltfaktor?
ungestörte Stunden / Stunden der Anwesenheit
78
In welchen Bereichen kann man Einfluss auf die Produktivität nehmen?
Produkt Prozess Mitarbeiter Management
79
Was sind Einflussfaktoren auf die Produktivität im Bereich Produkt?
-Komplexität -Qualität/Zuverlässigkeit -Effizienzanforderungen -Größe der Software -Anwendungskategorie
80
Was sind Einflussfaktoren auf die Produktivität im Bereich Prozess?
Zeitrestriktionen CASE Methoden stabile Anforderungen Wiederverwendung von Code
81
Was sind Einflussfaktoren auf die Produktivität im Bereich Mitarbeiter?
Erfahrung mit der Programmiersprache Berufserfahrung Gehalt
82
Was sind Einflussfaktoren auf die Produktivität im Bereich Management?
große Teams Firmenkultur gute Arbeitsumgebung und Ausstattung
83
Wie lässt sich die Leistung der Mitarbeiter erhöhen?
Qualifikation Arbeitsumgebung Führung/Kultur
84
Wie kann man Arbeitsschritte effizienter machen?
-CASE Umgebungen -Rechnerausstattung -Bürokommunikation
85
Wie lassen sich Arbeitsschritte eliminieren?
-Generatoren -automatische Qualitätssicherung
86
Wie lassen sich Überarbeitungen vermeiden?
-inkrementelle Softwareentwicklung -Methoden in frühen Phasen -Modelle animieren bzw. simulieren -Prototypen verwenden
87
Wie kann man Code besser wiederverwenden?
-Bibliotheken -Objektorientierung -Anreize für Mitarbeiter schaffen
88
Warum ist der Einsatz formaler Methoden nicht verbreitet?
-Erfolg informeller SW-Engineering Methoden -Hauptproblem: Time to Market -keine formellen Methoden für User Interfaces
89
Was sind formelle Methoden?
Eine Menge von Techniken und Werkzeugen, die auf mathematischer Modellierung und formaler Logik aufbauen. Sie werden benutzt, um Software zu spezifizieren und zu prüfen.
90
Für welche Systemteile werden solche Methoden dennoch eingesetzt?
-Raumfahrt -Medizin -Eisenbahn-Signale
91
Wie ist der Verlauf der Kosten zur Spezifikation von Software im Verlauf eines Entwicklungsprozesses ohne und mit dem Einsatz formaler Methoden?
-mit formalen Spezifikationen steigen die Spezifikationskosten und die Validierungskosten reduziert, welche meist 50% der Kosten ausmachen
92
Was ist eine algebraische Spezifikation und was ist das Ziel?
-eine Methode zur Modellierung von Systemoperationen und ihren Beziehungen -System besteht aus Teilsystemen - Spezifikation definiert Schnittstellen der Teilsysteme Ziel: klare eindeutige Schnittstellenspezifikationen, keine Notwendigkeit zur Änderung bereits entworfener oder entwickelter Teilsysteme
93
Welche Bestandteile besitzt eine algebraische Spezifikation?
-Introduction: definieren aller Datentypen -Description: informelle Beschreibung der Operationen -Signature: zuordnen von Datentypen zu Operationen -Axioms: alle Inspecting Operations für jede Contructing Operation
94
Was sind Inspecting und Constructing Operations?
-Inspecting Operations: nehmen Daten aus Objekten, haben Output als Datentyp -Constructing Operations: verändern Objekte
95
Erklären Sie die Daumenregel "One Axiom for each inspecting operation on each constructing operation"
Das Prinzip schlägt vor, dass jeder Contructor mind. ein Axiom haben sollte, dass das erwartete Verhalten spezifiziert. Für jede Inspecting Operation mind. 1 Axiom was die Eigenschaften der Informationen spezifiziert, die Operationen von Objekt bekommt. Die Regel bewirkt, dass das System korrekt spezifiziert und implementiert wird indem unerwartetes Verhalten vermindert wird und Fehler gefunden werden.
96
Was ist ein statisches Testverfahren?
-Methode zur Überprüfung von Software ohne Ausführung des Programms -helfen dabei Fehler frühzeitig zu erkennen -werden manuell durchgeführt -verschiedene Qualitätsmerkmale wie Verständlichkeit, Aussagefähigkeit von Bezeichnern und Kommentaren werden geprüft
97
Was ist der Unterschied zwischen dynamischen und statischen Testverfahren?
-statische Testverfahren: ohne Ausführung des Programms, dynamische mit -statische Testverfahren können in allen Phasen eingesetzt werden, dynamische meist später
98
Warum sollte auch Quellcode statisch getestet werden?
-frühe Fehlererkennung -Verbesserung der Code Qualität -Sicherheitsverbesserungen
99
Was ist der Unterschied von statischen Testverfahren zu den aus Reifegradmodellen bekannten Audits oder Assessments?
statische: analysieren den Code, Tests oder Dokumentation während der Entwicklungsphase Audits etc: bewerten den gesamten Prozess meist nach der Entwicklungsphase
100
Ziele statischer Testverfahren
-Verbesserung der Code Qualität-> Kostenreduzierung, bessere Wartbarkeit -Sicherstellung des Einhalten von Standards -Verbesserung der Verständlichkeit -Verteilung von Wissen
101
Was sind wichtige Voraussetzungen für statisches Testen?
-Aufwand und Zeit sind geplant -Teammitglieder müssen geschult sein -Mitarbeiter werden nicht beurteilt -keine Vorgesetzten und Zuhörer
102
Nachteile in der Anwendung statischer Tests
hoher Aufwand (bis zu 20% der Erstellung) psychologisch schwere Situation (Anlage, Verteidigung)
103
Beschreiben sie die erste Phase einer Inspektion?
Eingangsprüfung: -Moderator prüft Objekt, bei auffälligen Defekten Rückgabe an Autor
104
Beschreiben sie die zweite Phase einer Inspektion?
Planung der Inspektion: Festlegung des Teams, der Rollenzuweisung und Aufteilung des Prüfobjekts in Einheiten sowie Terminfestlegung
105
Beschreiben sie die dritte Phase einer Inspektion?
Individuelle Vorbereitung und Prüfung: jedes Teammitglied überprüft Objekte und Defekte
106
Beschreiben sie die vierte Phase einer Inspektion?
Inspektionssitzung: -Protokollierung aller gefundenen Defekte -Verbesserungsvorschläge und Fragen an Autor, Dauer 2h
107
Beschreiben sie die fünfte Phase einer Inspektion?
Überarbeitung: -Autor überarbeitet Prüftobjekt -meldet Überarbeitungszeit und schwere Defekte an Moderator -vermerkt Handlungen im Inspektionsprotokoll
108
Beschreiben sie die sechste Phase einer Inspektion?
-Moderator prüft Sorgfalt und Vollständigkeit der Überarbeitung
109
Beschreiben sie die siebte Phase einer Inspektion?
Manager prüft Qualität des Prüfobjekts, meist Anhand generischer Kriterien
110
Warum ist der frühe Einsatz statischer Tests auch im lang laufenden SW- Entwicklungsprojekten sinnvoll?
-ca. 50-75% aller Entwurfsfehler können durch Inspektionen gefunden werden -frühzeitige Fehlerbehebung verhindert größere Umstrukturierungen in späterer Entwicklung
111
Was ist ein Review?
Eine Methode des statischen Testverfahrens - Prüfung des Softwareprodukts und der Dokumente Ziel: Fehler und Mängel aufdecken bevor es in die nächste Phase der Entwicklung geht
112
Ablauf eines Walkthrough
-Autor führt Gruppe durch das Prüfobjekt; zB. Programmcode bei typischen Anwendungsfall -Gutachter stellen Fragen, geben Kommentare zur Technik, Stil, möglichen Fehlern, Verletzung von Standards -Gutachter erhalten vorher oder zu Beginn der Sitzung das Prüfungsobjekt -Probleme werden protokolliert
113
Vor- und Nachteile von Walkthroughs
-geringer Aufwand -geeignet für kleine Teams -sinnvoll für unkritische Dokumente -Endbenutzer können eingebunden werden -schnelle Verbreitung von Wissen -Anzahl identifizierter Fehler meist gering -Autor kann Gutachter blenden -Überarbeitung liegt im Ermessen des Autors
114
Grenzen Sie die manuellen Prüfmethoden Review/Inspektion und Walkthrough ab
Inspektion: sehr formell, strukturiert; hoher formeller Aufwand, hoher %Zahl an Fehlererkennung Review: weniger formell, weniger Aufwand, geringere Fehlererkennung Walkthrough: informell, wenig Aufwand, geringe Fehlererkennung
115
Ordnen nach Aufwand
Inspektion/Review - Round Robin - Peer Review - Walkthrough - Stellungnahme
116
Wie berechnet sich die Aufwandseinschätzung für Dokumente bei Reviews?
Für max. 50 Seiten: 5 Gutachter (+Mod und Autor) Vorbereitung: 10 Seiten/h Vorbereitung absolut: 25h Reviewsitzung: 14h Summe Aufwand: 5 PT Erstellungsaufwand relativ: 2 Seiten pro Tag Erstellungsaufwand absolut: 25 PT Review zur Erstellung macht 20% aus
117
Wie berechnet sich die Aufwandseinschätzung für Code bei Reviews?
Für max. 20 Seiten: 3 Gutachter (+Mod und Autor) Vorbereitung: 5 Seiten/h Vorbereitung absolut: 12h Reviewsitzung: 10h Summe Aufwand: 3 PT Erstellungsaufwand relativ: 1 Seiten pro Tag Erstellungsaufwand absolut: 20 PT Review zur Erstellung macht 15% aus
118
Berechne den Aufwand für 300 Seiten Dokumentation und 100 Seiten Code
Dokumentation: 300/50 = 6 Aufwand für eine 50 Seiten Dokumentation: 5PT Code: 100/20 = 5 Aufwand für 20 Seiten Code: 3 PT Aufwand Quellcodereview + Dokumentationsreview: 6*5 + 3*5 = 45PT (Personentage)
119
Berechnen Sie die prozentuale Aufwandsersparnis zur Fehlerbehebung, wenn 75% der Entwurfsfehler in der Entwurfsphase durch statische Tests gefunden werden können. Die Behebung eines Entwurfsfehlers in einer späteren Phase bedeutet für den einzusetzenden Aufwand einen Faktor 5.
Behebung aller Fehler später (100%)=500 Behebung von 75% der Fehler durch statische Tests: 75*1+25*5=200 Eine Aufwandseinsparung von 60%
120
Was ist ein dynamisches Testverfahren?
-Testverfahren, dass sich auf die Ausführung der laufenden Software bezieht
121
Was ist das Ziel eines dynamischen Testverfahren?
-Erkennung von Fehlern und Überprüfung der Funktionalität von Software unter realen Bedingungen
122
Wie beeinflusst die Art der Systemkomponenten die analytischen Maßnahmen?
-Analytische Maßnahmen sind von der Komplexität und von der Art der Strukturen abhängig (kontroll oder Datenstrukturen)
123
Was bedeutet das Wort Prüfling?
Software-Komponente/zu testendes Programm
124
Was bedeutet das Wort Testfall?
Testdatensatz zur Ausführung
125
Was bedeutet das Wort Testdatum?
Eingabewert für einen Eingabeparameter
126
Was bedeutet das Wort Instrumentierung?
Einfügen von Zählern in Testcode zur Anzeige der durchlaufenden Anweisungen
127
Was bedeutet das Wort Überdeckungsgrad?
Maß für die Vollständigkeit eines Tests; Anteil des Verwendeten zu Anteil des Vorhandenen Codes
128
Was bedeutet das Wort Regressionstest?
Speicherung der Testfälle und wiederholtes Testen
129
Wie sind dynamische Tests gegliedert?
Dynamische Tests gliedern sich in Strukturtests (auch Whitebox) und funktionale Tests (auch Blackbox). Strukturtests sind unterteilt in kontrollflussorientierte und datenflussorientierte Tests
130
Erkläre Blackboxtests (oder funktionale Tests)
-testen als könnte man Code nicht sehen, rein durch Input-Output (aus Nutzersicht) -können schnell & einfach durchgeführt werden -können dazu beitragen Fehler in der Nutzeroberfläche oder der Integration von Komponenten aufzudecken
131
Erkläre Whiteboxtests (oder Strukturtests)
-basieren auf dem Wissen über die interne Funktionsweise -erfordern Codezugang -können genaue Aussagen zum Zustand und Verhalten bei verschiedenen Codezweigen liefern -können schon früher im Entwicklungsprozess durchgeführt werden
132
Was ist ein Kontrollflussgraph?
-Strukturtest für eine Methode oder Funktion -Codestücke durch n1,n2,n3 nummerieren und den Programmablauf durch Pfeile von n1 -> n2 darstellen -jede Anweisung ist ein Knoten -jede Verbindung eine Kante, alles zusammen ein Pfad
133
Was ist ein Anweisungsüberdeckungstest (C0) und wozu dient er?
-geht sicher, dass alle Anweisungen im Code auch getestet werden -wenn Überdeckungsgrad unter 100% gibt es Anwendungen, die nie ausgeführt werden -notwendiges, aber nicht eigenständiges Testverfahren Angabe der Lösung: Testfall: 'A', 'a' (Parameter) Pfad: 1,2,3,4,5,6 (Knoten)
134
Was ist ein Zweigüberdeckungstest (C1) und wozu dient er?
-prüft, dass keine Zweige existieren die nicht genutzt werden - nicht ausführbare Programmzweige können gefunden werden -minimales Testkriterium -Korrektheit des Kontrollflusses kann überprüft werden -oft durchlaufene Programmteile können erkannt und optimiert werden -schleifen werden nicht ausreichen getestet Lösungsangabe: Tesfall: 'A', 'B','a' (Parameter) Pfad: 1,2,3,4,5,6,2,3,4,6,2 Es werden alle Testfälle direkt hintereinander durchgegangen
135
Was ist ein Pfadüberdeckungstest und wozu dient er?
-Konstruktion von Testfällen: Ausführung aller unterschiedlichen Pfade eines Programms -aufgrund der hohen Anzahl an Testpfaden und der damit verbundenen eingeschränkten Durchführbarkeit hat er keine praktische Relevanz
136
Was ist ein Bombary-Interior-Pfadtest und wozu dient er?
-eingeschränkte Version des Pfadübergreifungstests -Schleifen werden maximal einmal wiederholt Bombary Test: Alle Pfade, die die Schleife betreten aber nicht wiederholen-> alle Pfade ausführen die unterschiedliche Wege innerhalb der Schleife haben Interior Test: decken alle Testfälle ab die mindestens zweimal alle möglichen Wege durchlaufen
137
Was ist ein Bedingungsüberdeckungstest und wozu dient er?
-alle atomaren Bedingungen müssen mind. einmal wahr und einmal falsch sein Problem: es werden nicht alle Zweige erfasst, hierfür ist der Mehrfach-Bedingungs-Überdeckungstest zu bilden
138
Was ist ein minimaler Mehrfach-Bedingungsüberdeckungstest und wozu dient er?
-versucht neben Überdeckung der atomaren Bedingungen auch die Überdeckung der nicht-atomaren Bedingungen abzudecken Bespiel: wenn auf Buchstabengröße (caps oder nicht) getestet wird, kann man auch testen wie das Programm auf zahlen reagiert, das sind nicht atomare Anforderungen
139
Wie ist die Beziehung zwischen Spezifikationen und funktionalen Testverfahren?
-Testfälle werden aus der Programmspezifikation abgeleitet -möglichst umfassende aber redundanzfreie Prüfung der spezifizierten Funktionen statt
140
Was sind Äquivalenzklassen und die Ziele davon?
-Äquivalenzklassen definieren Gruppen von Eingabewerten, die ähnliche Auswirkungen auf die Softwarekomponenten haben -wird verwendet um den Testaufwand zu reduzieren indem nur eine repräsentative Auswahl an Eingabewerten getestet wird, statt alle möglichen Ziel: Sicherstellen, dass jeder Eingabewerttyp mind einmal getestet wird & das die Tests eine angenehme Abdeckung der möglichen Eingabewerte bieten Praktisch: ungültige und gültige Wertebereiche definieren
141
Was ist eine Grenzwertanalyse und was wird dabei gemacht?
-in der Grenzwertanalyse werden Werte an den Rändern der Äquivalenzklassen innerhalb der gültigen und ungültigen Wertebereiche getestet -ist eine Erweiterung der Äquivalenzklassen
142
Was ist ein Blackbox-Unittest?
-Unit wird gegen Spezifikationen getestet -ein Fehler ist ein Widerspruch von erwartetem zu tatsächlichem Wert und wird nachgewiesen -vollständige Fehlersuche und damit Nachweis der Korrektheit nicht möglich
143
Dimensionen von Tests
Stückelung: Unittests - testet eine Unit; Integrationstest - testet Gesamtsystem Kapselung: Blackbox - testet Spezifikationen; Whitebox - testet auch Implementierung Reproduzierbarkeit: Dialogtest - Testfälle interaktiv auswählen; Stapeltest - Testfälle werden automatisch abgearbeitet Testfallkonstruktion: -Äquivalenzklassen - Grenzwerte - Intuition
144
Was ist ein Stapeltest?
Ein Test der automatisch Testfälle abarbeitet bis er ein tatsächlicher Wert vom erwartetem Wert abweicht
145
Wie kann auf unerwartete Returnwerte bei einem Unittest reagiert werden?
Fall 1: Methode liefert fehlerhaften Returnwert? -Wert vergleichen mit erwartetem Wert Fall 2: Methode wirft Ausnahme -Try-Catch Block für Fehlermeldung einbauen
146
Wozu dienen Softwaremetriken?
sie versuchen durch Kennzahlen die Qualität von Software darzustellen
147
Was gibt eine Bindung an?
Bindung ist ein Maß für die Kompaktheit einer Systemkomponente. Es werden die Beziehungen zwischen den Elementen einer Systemkomponente betrachtet
148
Was gibt eine Kopplung an?
eine Kopplung ist ein Maß für die Schnittstellen zwischen Systemkomponenten
149
Was ist das Ziel mit Kopplungen und Bindungen?
Kopplungen minimieren und Bindungen maximieren damit das System einfach und verständlich wird. Die Modularität steigt, wenn die Bindungen im Verhältnis zu den Kopplungen stärker sind
150
Was ist die McCabe Metrik?
vorgeschlagene Metrik zur Messung der strukturellen Komplexität von Programmen durch die Gleichung V(G) = e - n + 2 * p e = Anzahl der Kanten des Graphen n = Anzahl der Knoten p = Anzahl der verbundenen Komponenten (ein Kontrollfluss => p=1) setzt Kontrollflussgraph voraus
151
Metriken für Objekt-orientierte Komponenten: Was ist DIT (Depth of Inheritance)?
je höher die Anzahl der Vorfahren einer Klasse desto größer die Fehlerwahrscheinlichkeit
152
Metriken für Objekt-orientierte Komponenten: Was ist NOC (Number of Children of a class)?
je höher die Anzahl der direkten Nachfolger einer Klasse, desto geringer die Fehlerwahrscheinlichkeit
153
Metriken für Objekt-orientierte Komponenten: Was ist RFC (Response for a class)?
je höher der RFC (Anzahl der eigenen Operationen der Klasse plus Anzahl der internen und externen Aufrufe), desto größer die Fehlerwahrscheinlichkeit
154
Vor- und Nachteile der Bewertung der Objekt orientierten Komponentenmetriken
+ Ansätze zur Verbesserung objektorientierter Komponenten + Breite Palette an Vorschlägen + Empirische Untersuchungen zeigen Eignung als Qualitätsindikatoren - Metriken haben keine direkte Verbindung zu Zielen - keine Metriken für dynamische Aspekte - Vermessung zu einfacher Sachverhalte
155
Was misst die Fan-in/fan-out Metrik
fan-in: Anzahl der Systemkomponenten, von denen die Kontrolle in eine Systemkomponente hinein erfolgt, z.B. durch Aufrufe der Systemkomponente fan-out: Anzahl von der Systemkomponente benutzten anderen Systemkomponenten zuzüglich der Anzahl der Datenstrukturen, die durch die betrachtete Systemkomponente aktualisiert werden -kann in den Entwicklungsphasen Definition, Entwurf und Implementierung berechnet werden
156
Treffe Aussagen zu Fan-in und Fan-out Werten
-geringer Fan-out Wert ist positiv (Klasse erledigt Aufgabe selbstständig) -hohe Fan-in Werte zeigen gute Struktur und hohe Wiederverwendung
157
Was ist besonders bei der Anwendung von Metriken für Objekt-orientierte Systeme?
-Klassen können durch Vererbungsgraphen gekoppelt sein -Objekte können durch Assoziationen, Aggregationen und temporäre Botschaftswege gekoppelt sein
158
Vor- und Nachteile von Objekt-orientierten Systemmetriken
+ Vermittlung eines Gefühls für die vielfältigen Faktoren, die die Komplexität bestimmen + deutlicher Unterschied zu traditionellen Metriken + Hilfestellung zur Qualitätssicherung von Systemen - Gesamtkomplexität durch einen Wert nicht darstellbar - Verwendung einfacher Sachverhalten - viele Metriken schlecht definiert - Metriken für Analyse und Entwurf fehlen noch