Aufgaben Flashcards

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
Q

Was ist die vierte Phase im raitonal unified process und welche Workflows finden dort vorallem statt?

A

Transition
hier wird die Implementierung, das Testen sowie das Deployment frühzeitig beendet; vorallem Konfigurationsmanagement und Projektmanagement finden in dieser Phase statt

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

Welche Workflows des RUP finden dauerhaft statt?

A

Configuration und Change Management mit einem Peak in der Construction Phase
Projektmanagement in stetig
Environment hat immer zu Beginn einer neuen Phase seinen Peak

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

Unterschiede zwischen schwergewichtigen und leichtgewichtigen Softwareentwicklungsmethoden

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

Was sind die Charakteristika von extreme Programming?

A

-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

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

Teilnehmer von Scrum Meetings

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

Unit-Test / Integrations-Test / System-Test

A
  • Unit-Test : einzelne Funktionalität testen (isoliert)
  • Integrations-Test : Testet einzelne Units zusammen
  • System-Test : das gesamte System wird getestet
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Was ist das CMM?

A

das capability maturity modell ist ein Modell zur Beurteilung und Verbesserung der Qualität von Produkt-Entwicklungsprozessen

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

Was ist die erste Stufe und ihr Charakteristika im CMM? Nenne zudem auch die notwendigen Schritte für die nächste Stufe

A

Initialer Prozess: unvorhersehbare Kosten, Zeit und Qualität
Notwendige Schritte: Planung, Überwachung, Änderungsmanagement, Qualitätssicherung

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

Was ist die zweite Stufe und ihre Characteristika im CMM? Nenne zudem auch die notwendigen Schritte für die nächste Stufe

A

Wiederholbarer Prozess: informelles Vorgehen, Kosten/Qualitätsschwankungen

Notwendige Schritte: Prozess-Standards entwickeln, Methoden zur Definition, Entwurf, Inspektion, Test einführen

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

Was ist die dritte Stufe und ihre Characteristika im CMM? Nenne zudem auch die notwendigen Schritte für die nächste Stufe

A

Definierter Prozess: zuverlässige Kosten / Termine, verbesserte, aber unvorhersehbare Kosten

Notwendige Schritte: Prozesse vermessen und analysieren, Quantitative Qualitätssicherung

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

Was ist die vierte Stufe und ihre Characteristika im CMM? Nenne zudem auch die notwendigen Schritte für die nächste Stufe

A

Gesteuerter Prozess: gute statistische Kontrolle über Qualität

notwendige Schritte: quantitative Produktivitätspläne und Prozessüberwachung, instrumentierte Prozessumgebung, ökonomisch gerechtfertigte Investitionen in Technologien

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

Was ist die fünfte Stufe und ihre Characteristika im CMM? Nenne zudem auch die notwendigen Schritte für die nächste Stufe

A

Optimierender Prozess: andauernde Kapitalinvestitionen in die Prozessautomatisierung und Verbesserung

Notwendige Schritte: kontinuierlicher Schwerpunkt auf Prozessvermessung und Prozessmethoden zur Fehlervermeidung

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

CMM / CMMI

A
  • Capability Maturity Modell
  • Capability Maturity Modell Integration
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

Vorteile eines höheren Reifegrads

A

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

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

Unterschied zwischen kontinuierlichen und gestuften CMMI

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

Unterschied zwischen Reifengrad und Fähigkeitsgrad

A
  • 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

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

Was passiert in einem Prozess-assessment ?

A
  • Bewertung der Prozessen auf Reife und Wirksamkeit
  • Aufdecken von Schwachstellen und Verbesserungspotenziellen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
42
Q

Was ist ein Softwareelement?

A

-jeder identifizierbare und maschinenlesbare Bestandteil des entstehenden Produkts
-jedes SW-Element hat einen eindeutigen Bezeichner; jede Änderung erzeugt einen neuen Bezeichner

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

Was ist eine Software-Konfiguration?

A
  • Benannte und formale freigegebene Mengen von Software-Elementen mit gültiger Versionsangabe; die Elemente sind aufeinander abgestimmt und erfüllen vorhergesehene Aufgaben
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
44
Q

Klassen von Software-Elementen

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

Fünf Beispiele für Software-Elementen

A
  • Source Code Dateien
  • Bibliotheken für Code
  • Ausführbare Dateien
  • Konfig - Datei ( Einstellung und Konfig. die Programme an PC anpassen)
  • Quelltext
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
46
Q

Artefakte, die während eines Software-Projekts entstehen aber nicht Teil der Konfiguration sein sollten

A
  1. Temporäre Dateien
  2. Protokolldateien
  3. Back-up Dateien
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
47
Q

Was ist ein Konfigurationsdokument (KID) ?

A

Software-Elementen, die zu einer Konfiguration gehören

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

Vergleiche Zentrale vs. dezentrale Versionsverwaltung

A

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

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

Woraus setzt sich eine Versionsnummer zusammen ?

A
  • Aus Major, Minor und Patchnummer
  • Majorversion : API inkompatible Änderung
  • Minorversion : neue Funktionen kompatibel zur API
  • Patchversion: Bei Fehlerbehebung und Änderungen, ohne Änderung der schnittstelle
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
50
Q

Anforderungen, die zu einer neuen Variante führen können

A
  • Produkt in neuem Land
  • Neue Platform ( OS )
  • Sicherheitsanforderung

V.1.0 –> V.1.0.1.0

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

Unterschiede zwischen Varianten und Versionen

A
  • Versionen : Veränderung der Software auf dem Hauptentwicklungspfad
  • Varianten : Anpassungen an spezielle Anforderungen oder Zielgruppen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
52
Q

Das Check-IN-Check-Out-Modell

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

Warum muss eine Konfiguration gemanaged werden ?

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

Unterschied zwischen Software-Elementen Management VS. Konfig.- Management

A
  • 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

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

Was ist das Ziel von Risikomanagement?

A

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.

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

Wie ist das Vorgehen beim Risikomanagement?

A

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

  1. 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)

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

Was sind die Top 10 Risiken in der Softwareentwicklung?

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

Risikomanagementplan Personelle Defizite

A

hochtalentierte Mitarbeiter einstellen
Teams zusammenstellen

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

Risikomanagementplan unrealistische Termin und Kostenvorgaben

A

Detaillierte Kosten und Zeiteinschätzung nach mehreren Methoden

inkrementelle Entwickung

Wiederverwendung von Software

Anforderungen streichen

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

Risikomanagementplan Entwickung falscher Funktionen und Eigenschaften

A

Benutzer-Beteiligung

Prototypen

frühzeitiges Handbuch

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

Risikomanagementplan Entwicklung der falschen Benutzerschnittstelle

A

Prototypen

Benutzer-Beteiligung

Aufgabenanalyse

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

Risikomanagementplan Vergolden

A

Prototypen

Anforderungen streichen

Kosten/Nutzen Analyse

Entwicklung an der Kosten orientieren

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

Risikomanagementplan kontinuierliche Anforderungsänderungen

A

hohe Änderungsschwelle

inkrementelle Entwickung (Änderungen auf spätere Erweiterung verschieben)

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

Risikomanagementplan Defizite bei extern gelieferten Komponenten

A

Leistungstest

Inspektion

Kompatibilitätsanalyse

65
Q

Risikomanagementplan Defizite bei extern erledigten Aufträgen

A

Prototypen

frühzeitige Überprüfung

Verträge auf Erfolgsbasis

66
Q

Risikomanagementplan Defizite in der Echtzeitleistung

A

Simulation

Prototypen

Leistungstest

Modellierung

67
Q

Risikomanagementplan Überfordern der Software Technik

A

technische Analyse

Kosten Nutzen Analyse

Prototypen

68
Q

Drei Ansätze die Produktivität im Erstellungsprozess zu steigern

A

schnellere Entwicklung

Steigerung des ROI (geringerer finanzieller Einsatz)

Steigerung der SW Qualität

69
Q

Was sind Maße Ergebnisse in der SW Entwickung zu messen?

A

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
Q

Verbreitetstes Maß in der SE Entwicklung

A

Lines of Code

71
Q

Bestandteile von Lines of Code

A

-Zeit für Analyse, Entwurf, Codierung, Testen, Dokumentation

72
Q

Probleme die Lines of Code hat

A

Deklarationen, Kommentare und Strukturelemente werde nicht berücksichtigt sodass bessere Anschaulichkeit als niedrige Produktivität dargestellt wird.

73
Q

Warum benutzt man trotz der Probleme Lines of Code?

A

weil es einfach und schnell zu erheben ist und man Projekte leicht vergleichen kann

74
Q

Erkläre Function Points

A

-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
Q

An welchen Code Bausteinen wird bei Function Points die Komplexität gemessen?

A

-Ein- und Ausgaben
-Benutzerinteraktionen (Abfragen)
-Externe Schnittstellen (Referenz)
-Datentypen

76
Q

Vor und Nachteile von Function Points

A

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
Q

Wie berechnet sich der Umweltfaktor?

A

ungestörte Stunden / Stunden der Anwesenheit

78
Q

In welchen Bereichen kann man Einfluss auf die Produktivität nehmen?

A

Produkt
Prozess
Mitarbeiter
Management

79
Q

Was sind Einflussfaktoren auf die Produktivität im Bereich Produkt?

A

-Komplexität
-Qualität/Zuverlässigkeit
-Effizienzanforderungen
-Größe der Software
-Anwendungskategorie

80
Q

Was sind Einflussfaktoren auf die Produktivität im Bereich Prozess?

A

Zeitrestriktionen
CASE
Methoden
stabile Anforderungen
Wiederverwendung von Code

81
Q

Was sind Einflussfaktoren auf die Produktivität im Bereich Mitarbeiter?

A

Erfahrung mit der Programmiersprache
Berufserfahrung
Gehalt

82
Q

Was sind Einflussfaktoren auf die Produktivität im Bereich Management?

A

große Teams
Firmenkultur
gute Arbeitsumgebung und Ausstattung

83
Q

Wie lässt sich die Leistung der Mitarbeiter erhöhen?

A

Qualifikation
Arbeitsumgebung
Führung/Kultur

84
Q

Wie kann man Arbeitsschritte effizienter machen?

A

-CASE Umgebungen
-Rechnerausstattung
-Bürokommunikation

85
Q

Wie lassen sich Arbeitsschritte eliminieren?

A

-Generatoren
-automatische Qualitätssicherung

86
Q

Wie lassen sich Überarbeitungen vermeiden?

A

-inkrementelle Softwareentwicklung
-Methoden in frühen Phasen
-Modelle animieren bzw. simulieren
-Prototypen verwenden

87
Q

Wie kann man Code besser wiederverwenden?

A

-Bibliotheken
-Objektorientierung
-Anreize für Mitarbeiter schaffen

88
Q

Warum ist der Einsatz formaler Methoden nicht verbreitet?

A

-Erfolg informeller SW-Engineering Methoden
-Hauptproblem: Time to Market
-keine formellen Methoden für User Interfaces

89
Q

Was sind formelle Methoden?

A

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
Q

Für welche Systemteile werden solche Methoden dennoch eingesetzt?

A

-Raumfahrt
-Medizin
-Eisenbahn-Signale

91
Q

Wie ist der Verlauf der Kosten zur Spezifikation von Software im Verlauf eines Entwicklungsprozesses ohne und mit dem Einsatz formaler Methoden?

A

-mit formalen Spezifikationen steigen die Spezifikationskosten und die Validierungskosten reduziert, welche meist 50% der Kosten ausmachen

92
Q

Was ist eine algebraische Spezifikation und was ist das Ziel?

A

-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
Q

Welche Bestandteile besitzt eine algebraische Spezifikation?

A

-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
Q

Was sind Inspecting und Constructing Operations?

A

-Inspecting Operations: nehmen Daten aus Objekten, haben Output als Datentyp
-Constructing Operations: verändern Objekte

95
Q

Erklären Sie die Daumenregel “One Axiom for each inspecting operation on each constructing operation”

A

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
Q

Was ist ein statisches Testverfahren?

A

-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
Q

Was ist der Unterschied zwischen dynamischen und statischen Testverfahren?

A

-statische Testverfahren: ohne Ausführung des Programms, dynamische mit
-statische Testverfahren können in allen Phasen eingesetzt werden, dynamische meist später

98
Q

Warum sollte auch Quellcode statisch getestet werden?

A

-frühe Fehlererkennung
-Verbesserung der Code Qualität
-Sicherheitsverbesserungen

99
Q

Was ist der Unterschied von statischen Testverfahren zu den aus Reifegradmodellen bekannten Audits oder Assessments?

A

statische: analysieren den Code, Tests oder Dokumentation während der Entwicklungsphase
Audits etc: bewerten den gesamten Prozess meist nach der Entwicklungsphase

100
Q

Ziele statischer Testverfahren

A

-Verbesserung der Code Qualität-> Kostenreduzierung, bessere Wartbarkeit
-Sicherstellung des Einhalten von Standards
-Verbesserung der Verständlichkeit
-Verteilung von Wissen

101
Q

Was sind wichtige Voraussetzungen für statisches Testen?

A

-Aufwand und Zeit sind geplant
-Teammitglieder müssen geschult sein
-Mitarbeiter werden nicht beurteilt
-keine Vorgesetzten und Zuhörer

102
Q

Nachteile in der Anwendung statischer Tests

A

hoher Aufwand (bis zu 20% der Erstellung)
psychologisch schwere Situation (Anlage, Verteidigung)

103
Q

Beschreiben sie die erste Phase einer Inspektion?

A

Eingangsprüfung:
-Moderator prüft Objekt, bei auffälligen Defekten Rückgabe an Autor

104
Q

Beschreiben sie die zweite Phase einer Inspektion?

A

Planung der Inspektion: Festlegung des Teams, der Rollenzuweisung und Aufteilung des Prüfobjekts in Einheiten sowie Terminfestlegung

105
Q

Beschreiben sie die dritte Phase einer Inspektion?

A

Individuelle Vorbereitung und Prüfung:
jedes Teammitglied überprüft Objekte und Defekte

106
Q

Beschreiben sie die vierte Phase einer Inspektion?

A

Inspektionssitzung:
-Protokollierung aller gefundenen Defekte
-Verbesserungsvorschläge und Fragen an Autor, Dauer 2h

107
Q

Beschreiben sie die fünfte Phase einer Inspektion?

A

Überarbeitung:
-Autor überarbeitet Prüftobjekt
-meldet Überarbeitungszeit und schwere Defekte an Moderator
-vermerkt Handlungen im Inspektionsprotokoll

108
Q

Beschreiben sie die sechste Phase einer Inspektion?

A

-Moderator prüft Sorgfalt und Vollständigkeit der Überarbeitung

109
Q

Beschreiben sie die siebte Phase einer Inspektion?

A

Manager prüft Qualität des Prüfobjekts, meist Anhand generischer Kriterien

110
Q

Warum ist der frühe Einsatz statischer Tests auch im lang laufenden SW- Entwicklungsprojekten sinnvoll?

A

-ca. 50-75% aller Entwurfsfehler können durch Inspektionen gefunden werden
-frühzeitige Fehlerbehebung verhindert größere Umstrukturierungen in späterer Entwicklung

111
Q

Was ist ein Review?

A

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
Q

Ablauf eines Walkthrough

A

-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
Q

Vor- und Nachteile von Walkthroughs

A

-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
Q

Grenzen Sie die manuellen Prüfmethoden Review/Inspektion und Walkthrough ab

A

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
Q

Ordnen nach Aufwand

A

Inspektion/Review - Round Robin - Peer Review - Walkthrough - Stellungnahme

116
Q

Wie berechnet sich die Aufwandseinschätzung für Dokumente bei Reviews?

A

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
Q

Wie berechnet sich die Aufwandseinschätzung für Code bei Reviews?

A

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
Q

Berechne den Aufwand für 300 Seiten Dokumentation und 100 Seiten Code

A

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:
65 + 35 = 45PT (Personentage)

119
Q

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.

A

Behebung aller Fehler später (100%)=500
Behebung von 75% der Fehler durch statische Tests: 751+255=200
Eine Aufwandseinsparung von 60%

120
Q

Was ist ein dynamisches Testverfahren?

A

-Testverfahren, dass sich auf die Ausführung der laufenden Software bezieht

121
Q

Was ist das Ziel eines dynamischen Testverfahren?

A

-Erkennung von Fehlern und Überprüfung der Funktionalität von Software unter realen Bedingungen

122
Q

Wie beeinflusst die Art der Systemkomponenten die analytischen Maßnahmen?

A

-Analytische Maßnahmen sind von der Komplexität und von der Art der Strukturen abhängig (kontroll oder Datenstrukturen)

123
Q

Was bedeutet das Wort Prüfling?

A

Software-Komponente/zu testendes Programm

124
Q

Was bedeutet das Wort Testfall?

A

Testdatensatz zur Ausführung

125
Q

Was bedeutet das Wort Testdatum?

A

Eingabewert für einen Eingabeparameter

126
Q

Was bedeutet das Wort Instrumentierung?

A

Einfügen von Zählern in Testcode zur Anzeige der durchlaufenden Anweisungen

127
Q

Was bedeutet das Wort Überdeckungsgrad?

A

Maß für die Vollständigkeit eines Tests; Anteil des Verwendeten zu Anteil des Vorhandenen Codes

128
Q

Was bedeutet das Wort Regressionstest?

A

Speicherung der Testfälle und wiederholtes Testen

129
Q

Wie sind dynamische Tests gegliedert?

A

Dynamische Tests gliedern sich in Strukturtests (auch Whitebox) und funktionale Tests (auch Blackbox). Strukturtests sind unterteilt in kontrollflussorientierte und datenflussorientierte Tests

130
Q

Erkläre Blackboxtests (oder funktionale Tests)

A

-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
Q

Erkläre Whiteboxtests (oder Strukturtests)

A

-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
Q

Was ist ein Kontrollflussgraph?

A

-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
Q

Was ist ein Anweisungsüberdeckungstest (C0) und wozu dient er?

A

-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
Q

Was ist ein Zweigüberdeckungstest (C1) und wozu dient er?

A

-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
Q

Was ist ein Pfadüberdeckungstest und wozu dient er?

A

-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
Q

Was ist ein Bombary-Interior-Pfadtest und wozu dient er?

A

-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
Q

Was ist ein Bedingungsüberdeckungstest und wozu dient er?

A

-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
Q

Was ist ein minimaler Mehrfach-Bedingungsüberdeckungstest und wozu dient er?

A

-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
Q

Wie ist die Beziehung zwischen Spezifikationen und funktionalen Testverfahren?

A

-Testfälle werden aus der Programmspezifikation abgeleitet
-möglichst umfassende aber redundanzfreie Prüfung der spezifizierten Funktionen statt

140
Q

Was sind Äquivalenzklassen und die Ziele davon?

A

-Ä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
Q

Was ist eine Grenzwertanalyse und was wird dabei gemacht?

A

-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
Q

Was ist ein Blackbox-Unittest?

A

-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
Q

Dimensionen von Tests

A

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
Q

Was ist ein Stapeltest?

A

Ein Test der automatisch Testfälle abarbeitet bis er ein tatsächlicher Wert vom erwartetem Wert abweicht

145
Q

Wie kann auf unerwartete Returnwerte bei einem Unittest reagiert werden?

A

Fall 1: Methode liefert fehlerhaften Returnwert?
-Wert vergleichen mit erwartetem Wert

Fall 2: Methode wirft Ausnahme
-Try-Catch Block für Fehlermeldung einbauen

146
Q

Wozu dienen Softwaremetriken?

A

sie versuchen durch Kennzahlen die Qualität von Software darzustellen

147
Q

Was gibt eine Bindung an?

A

Bindung ist ein Maß für die Kompaktheit einer Systemkomponente. Es werden die Beziehungen zwischen den Elementen einer Systemkomponente betrachtet

148
Q

Was gibt eine Kopplung an?

A

eine Kopplung ist ein Maß für die Schnittstellen zwischen Systemkomponenten

149
Q

Was ist das Ziel mit Kopplungen und Bindungen?

A

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
Q

Was ist die McCabe Metrik?

A

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
Q

Metriken für Objekt-orientierte Komponenten: Was ist DIT (Depth of Inheritance)?

A

je höher die Anzahl der Vorfahren einer Klasse desto größer die Fehlerwahrscheinlichkeit

152
Q

Metriken für Objekt-orientierte Komponenten: Was ist NOC (Number of Children of a class)?

A

je höher die Anzahl der direkten Nachfolger einer Klasse, desto geringer die Fehlerwahrscheinlichkeit

153
Q

Metriken für Objekt-orientierte Komponenten: Was ist RFC (Response for a class)?

A

je höher der RFC (Anzahl der eigenen Operationen der Klasse plus Anzahl der internen und externen Aufrufe), desto größer die Fehlerwahrscheinlichkeit

154
Q

Vor- und Nachteile der Bewertung der Objekt orientierten Komponentenmetriken

A

+ 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
Q

Was misst die Fan-in/fan-out Metrik

A

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
Q

Treffe Aussagen zu Fan-in und Fan-out Werten

A

-geringer Fan-out Wert ist positiv (Klasse erledigt Aufgabe selbstständig)
-hohe Fan-in Werte zeigen gute Struktur und hohe Wiederverwendung

157
Q

Was ist besonders bei der Anwendung von Metriken für Objekt-orientierte Systeme?

A

-Klassen können durch Vererbungsgraphen gekoppelt sein
-Objekte können durch Assoziationen, Aggregationen und temporäre Botschaftswege gekoppelt sein

158
Q

Vor- und Nachteile von Objekt-orientierten Systemmetriken

A

+ 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