Entwicklung & Qualitätsprüfung von AWS (5) Flashcards
Überblick Softwareentwicklung als Prozess
Wichtigste Aktivitäten der Softwareentwicklung:
1. Analyse
2. Design
3. Implementierung
4. Test
5. Einsatz & Wartung
- Analyse im Entwicklungsprozess
Festlegung der fachlichen Anforderungen: Was soll die Software können?
- Anforderungsanalyse = Erfassung Wünsche des Auftraggebers der Software (Lastenheft)
- Durchführbarkeitsanalyse = Prüfung fachlichen ökonomischen & personellen Machbarkeit (Gegenüberstellung Lastenheft zur Realität) z.B. Kosten-/Risikoanalyse
- Systemanalyse = Definition Anforderungen an Software & Modellierung als fachliche Lösung (Pflichtenheft = Basis für Abnahme/ alle Anforderungen des Lastenhefts angepasst an Realität)
Ergebnis: Lasten- & Pflichtenheft mit Modellen der fachlichen Anforderungen (häufig in Diagrammform)
Lastenheft
- wird vom Auftraggeber des Projektes formuliert
- darin werden alle Anforderungen beschrieben die der Auftraggeber an Erreichung des Projektzieles stellt
- & Beschreibung Rahmenbedingungen unter denen Projekt arbeiten soll
- Form = projektspezifisch individuell gestaltet
Gliederung:
1. Ausgangssituation –> Warum überhaupt ein Projekt?
2. Zielsetzung –> Gemäß SMART-Kriterien
3. Produkteinsatz –> Was soll das Produkt unter welchen Rahmenbedingungen leisten?
4. Funktionale Anforderungen –> Welche konkreten Funktionen muss Produkt bieten?
5. Nichtfunktionale Anforderungen –> Welche Anforderungen müssen darüber hinaus erfüllt werden? (z.B. Effizienz, Erweiterbarkeit, Zuverlässigkeit, …)
6. Lieferumfang
7. Phasenplanung & Meilensteine Projekt
8. offene Punkte die noch zu klären sind
9. Abnahmekriterien & Qualitätsanforderungen
Ziele = elementar wichtig
Bedeutung von Zielen für Projekt
- Ziele ermöglichen gemeinsames Verständnis & einheitliche Ausrichtung
- Ziele präzisieren schwammige Vorstellungen der Projektbeteiligten
- Ziele = gut kommunizierbar
Definition Ziele in Projekten
- Ziele sollten für all wichtigen Tätigkeiten eines Projekts definiert werden
- Bsp.: Meetings (warum sitzen wir zusammen?), Ausarbeitung von Dokumenten (wozu brauchen wir die Dokumente?)
SMARTe Ziele
Specific –> Ziele müssen konkret, eindeutig, präzise & stimmig mit anderen Zielen sein
Measurable –> Ziele müssen messbar & überprüfbar sein, es muss klar sein wann das Ziel erreicht ist
Achievable –> Ziele müssen erreichbar sein, unerreichbare Ziele = demotivierend
Relevant –> nur wichtige Dinge = als Ziel zu formulieren
Time-based –> Ziele müssen zeitlich terminiert sein, es gibt einen Zeitpunkt bis zu dem Ziel erreicht sein sollen
- Design im Entwicklungsprozess
Entwurf einer (technischen) Software-Architektur: Wie soll Software grundsätzlich funktionieren?
- Festlegung Rand- & Umgebungsbedingungen = Treffen technischer Grundsatzentscheidungen (z.B. hinsichtlich Programmiersprachen, Datenbanken)
- Strukturierung System in Komponenten = Definition & Spezifikation geeigneter Systemkomponenten/ Subsysteme zur Bewältigung Komplexität
- Festlegung Schnittstellen = Definition Beziehungen & Zusammenwirkens einzelnen Komponenten
Ergebnis: Software-Architektur mit Modellen zur technischen Realisierung (häufig in Diagrammform –> Modellierung Use-Case)
- Implementierung im Entwicklungsprozess
Umsetzung des Designs im Code
- Realisierung = Software unter Verwendung geeigneten Programmiersprache
- Unterstützung durch CASE-Tools = gegebenenfalls, automatisierte Generierung von Code aus entwickelten Diagrammen (erhält dann Basiscode zur Weiterarbeitung)
- Versions- & Konfigurationsmanagement
- Dokumentation Implementierung
Ergebnis: lauffähiges System einschließlich Dokumentation
- Test im Entwicklungsprozess
Überprüfung: Erfüllt Software Anforderungen?
- Komponententest = Unabhängiger Test einzelnen Komponenten/ Module der Software
- Integrationstest = Testen Zusammenwirkens/ Schnittstellen der einzelnen Komponenten
- Systemtest = Testen Gesamtsystem gegen Anforderungen
- Abnahmetest = Testen Software durch Kunden (häufig mit Kopien von Echtdaten) –> anderer Blickwinkel
- Einsatz & Wartung im Entwicklungsprozess
Einführung & produktiver Einsatz der Software
- Zielumgebung vorbereiten (Serverkonfiguration, VM, …)
- Installation Software
- Schulung Benutzer der Software
- Inbetriebnahme/ Umstellung = Übernahme Daten (direkte Umstellung vs. Übergangsphase)
- Wartung Software (Fehlerbeseitigung/ Anpassung an neue Anforderungen)
Arten Vorgehensmodelle
Klassische Modelle (nicht mehr zeitgemäß)
- Prozesse werden detailliert & formal beschrieben
- Erstellung Dokumente & Teilprodukten = wichtig
- Beispiele: Wasserfallmodell, V-Modell, Spiralmodell
Agile Modelle
- Ziel = Softwareentwicklungsprozess flexibler & schlanker gestalten
- Individuen & Interaktion = wichtiger als Prozesse & Tools
- Lauffähige Software = wichtiger als umfangreiche Dokumentation
- Kundenmitentwicklung = wichtiger als Vertragsverhandlungen
- auf Änderungen reagieren = wichtiger als einem Plan folgen
- Beispiele: Scrum, eXtreme Programmierung
Scrum Grundlagen
Scrum Überblick
Scrum Dokumente & (Zwischen-) Produkte
Scrum Rollen
Scrum Ablauf
Wasserfallmodell (mit Rückkopplung)