Aufgaben Flashcards
Was haben alle Vorgehensmodelle gemeinsam?
- 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
Aus welchen Phasen setzt sich das Wasserfallmodell zusammen ?
Analyse - Design - Codierung - Test - Betrieb/Wartung
Parallel: Planung, Dokumentation, Kontrolle, Verwaltung
Was ist beim Wasserfallmodell zu beachten?
-Teilphasen müssen vollständig durchlaufen werden
-Phasenabschluss ist durch Vorliegen bestimmter Dokumente definiert
Was sind die Vor- und Nachteile des Wasserfallmodells
+verständlich
+wenig Managementaufwand
- Keine Parallelität
- Zu hohe Bedeutung der Dokumente
Was ist das V-Modell?
-in frühen Phasen werden bereits Testphasen erstellt
-schlagen später Tests fehl sind die gegenüberliegenden Phasen zu überprüfen
Was sind die Phasen des V-Modells?
Analyse - Testfälle - Abnahmetest
Entwurf - Testfälle - Integrationstest
Implementierung - Testfälle - Unit-Test
Vorteile des V-Modells gegenüber des Wasserfallmodells
- Integrierte Qualitätssicherung durch Testverfahren auf verschiedenen Ebenen
Gemeinsamkeit: hoher bürokratischer Aufwand durch Rollen und Dokumente
Unterschiede zwischen einem Systemtest und Abnahmetest
- Systemtest : Prüft das Software System auf Anforderungen und Tauglichkeit
- Abnahmetest : Test von Kunden auf Tauglichkeit für Inbetriebnahme
Was ist ein horizontaler und was ein vertikaler Prototyp?
ein horizontaler Prototyp enthält nur ausgewählte Komponenten einer Systemschicht
ein vertikaler Prototyp realisiert eine Funktionsauswahl über mehrere Systemschichten (Benutzeroberfläche, Anwendung, Datenbank)
Welche Vorteile bietet die Erstellung eines Prototyps in der Softwareentwicklung ?
- Veranschaulichung speziellen Aspekte des Systems
- Hilft bei der Kommunikation mit Kunden => schnelleres Feedback
- Frühere Fehlererkennung => Kostenersparnis
Was ist ein Laborprototyp und Demonstrationsprototyp ?
- 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
Begründen Sie warum ein stufenweises Vorgehen Vorteile bringen kann?
- Kleinen Arbeitsschritten mit regelmäßigen Feedback => auf Kundenwünsche eingegangen werden
- reduziert das Risiko, dass das Endprodukt dem Kunden missfällt
Was ist das evolutionäre Modell?
-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
Wie vermeidet man eine unflexible erste Produktversion im evolutionäre Modelle?
- Durch Prototyping und erhöhtes einbinden der Kunden in die Entwicklung
Vor- und Nachteile des evolutionären Modells
+schnell einsatzfähige Produkte
+Kombination mit Prototypen-Modell
+schnelle Prüfung im Arbeitsprozess
+schnelle überschaubare Zwischenergebnisse
-hoher Aufwand bei Restrukturierung
-ggfs. zu unflexible Nullversion
Was ist das inkrementelle Modell?
-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
Was ist der Vorteil des inkrementellen gegenüber des evolutionären Modells?
vollständige Anforderungen stellen sicher, dass die inkrementellen Erweiterungen zum bisherigen System passen
Was ist das Spiralmodell?
-vier-schrittiges zyklisches Modell
-oberstes Ziel Risikominierung
-Ergebnisse eines Zyklus dienen als Basis zur Zieldefinition des folgenden
Was sind Vor- und Nachteile des Spiralmodells?
+integrierte Qualitätssicherung
+flexibles Vorgehen
+einfache Anpassungen
-hoher Managementaufwand
-nur für größere Projekte
-Risikobewertung schwierig
4 Phasen des Spiralmodells
- Festlegung der Ziele, Beurteilen von Alternativen
- Risikoanalyse
- Entwicklung und Test
- Plannung des nächten Zyklus
Was ist der Rational Unified Process (RUP)?
-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
Was ist die erste Phase im rational unified process und welche Workflows finden dort vorallem statt?
Inception
-Business Modelling: Beschreibung von Problem, Produkteigenschaften und groben Anforderungen und Risiken
-Requirements: Priorisierung der Use Cases
Was ist die zweite Phase im rational unified process und welche Workflows finden dort vorallem statt?
Elaboration Phase
Business Modelling und Requirements aus der ersten Phase hinzukommen:
Analysis und Design sowie Implementation und Testen; Konfigurationsmanagement auch
Was ist die dritte Phase im rational unified process und welche Workflows finden dort vorallem statt?
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
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
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
Unterschiede zwischen schwergewichtigen und leichtgewichtigen Softwareentwicklungsmethoden
- schwergewichtigen : stare, gut definierte Strukturen,
- großer Wert auf Plannung und Dokumentation
Bsp : Wasserfallmodell, V-Modell
- großer Wert auf Plannung und Dokumentation
- 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
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
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
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
Was ist das CMM?
das capability maturity modell ist ein Modell zur Beurteilung und Verbesserung der Qualität von Produkt-Entwicklungsprozessen
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
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
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
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
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
CMM / CMMI
- Capability Maturity Modell
- Capability Maturity Modell Integration
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
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
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
Was passiert in einem Prozess-assessment ?
- Bewertung der Prozessen auf Reife und Wirksamkeit
- Aufdecken von Schwachstellen und Verbesserungspotenziellen
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
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
Klassen von Software-Elementen
- Quell-elemente : Software-Elementen, die durch manuelle Eingaben erzeugt werden
- Abgeleitete Software : Software-Elementen, die vollautomatisch erzeugt werden, können ge—- werden
- Atome : Software-Elementen, die keine Unterelemente enthalten, die unabhängig variieren
- Konfig. : Summe aus Software-Elementen, die unabhängig von einander variieren
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
Artefakte, die während eines Software-Projekts entstehen aber nicht Teil der Konfiguration sein sollten
- Temporäre Dateien
- Protokolldateien
- Back-up Dateien
Was ist ein Konfigurationsdokument (KID) ?
Software-Elementen, die zu einer Konfiguration gehören
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
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
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
Unterschiede zwischen Varianten und Versionen
- Versionen : Veränderung der Software auf dem Hauptentwicklungspfad
- Varianten : Anpassungen an spezielle Anforderungen oder Zielgruppen
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
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
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
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.
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
- 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)
Was sind die Top 10 Risiken in der Softwareentwicklung?
- Personelle Defizite
- Unrealistische Termin und Kostenvorgaben
- Entwicklung von falschen Funktionen und Eigenschaften
- Vergolden (über das Ziel hinaus)
- kontinuierliche Anforderungsänderungen
- Defizite bei extern gelieferten Komponenten
- Defizite bei extern erledigten Aufträgen
- Defizite in der Echtzeitleistung
- Überfordern der SW Technik
Risikomanagementplan Personelle Defizite
hochtalentierte Mitarbeiter einstellen
Teams zusammenstellen
Risikomanagementplan unrealistische Termin und Kostenvorgaben
Detaillierte Kosten und Zeiteinschätzung nach mehreren Methoden
inkrementelle Entwickung
Wiederverwendung von Software
Anforderungen streichen
Risikomanagementplan Entwickung falscher Funktionen und Eigenschaften
Benutzer-Beteiligung
Prototypen
frühzeitiges Handbuch
Risikomanagementplan Entwicklung der falschen Benutzerschnittstelle
Prototypen
Benutzer-Beteiligung
Aufgabenanalyse
Risikomanagementplan Vergolden
Prototypen
Anforderungen streichen
Kosten/Nutzen Analyse
Entwicklung an der Kosten orientieren
Risikomanagementplan kontinuierliche Anforderungsänderungen
hohe Änderungsschwelle
inkrementelle Entwickung (Änderungen auf spätere Erweiterung verschieben)