Auf welchen Annahmen basiert sequentielle Softwareentwicklung & Probleme.
Wie geht kontinuierliche Software-Entwicklung damit um?
Sequentiell:
basiert auf der Annahme, dass der gesamte Entwicklungsprozess in linearen Phasen abläuft
dass Anforderungen vollständig und stabil sind
Problem:
Änderungen in den Anforderungen oder im Design können erst spät im Entwicklungsprozess erkannt werden - erheblicher Aufwand
Feedback und Anpassungen begrenzt
Kontinuierlich:
basiert auf der Annahme, dass Anforderungen und Lösungen im Laufe der Zeit veränderlich sind
Entwicklungsprozess unterteilt in iterative Zyklen
Nach jedem Zyklus wird Feedback berücksichtigt, Anpassungen werden vorgenommen
Was sind funktionale und nicht-funktionale Anforderungen?
Gib jeweils 3 Beispiele:
funktionale Anforderungen:
= spezifischen Funktionen und Handlungen, die das Softwareprodukt ausführen soll und welche Ergebnisse erwartet werden
Verarbeitung von Eingaben
Erstellen von Ausgaben
Ausführung von Funktionen
nicht-funktionale Anforderungen:
= Qualitätsmerkmale oder Einschränkungen, die die Software erfüllen muss, jedoch nicht direkt mit spezifischen Funktionen verbunden sind
Zuverlässigkeit
Sicherheit
Benutzerfreundlichkeit
Was sind die Aufgaben eines SCM? Beschreibe Konflikt-Ablauf für verteiltes SCM
Die Aufgaben eines SCM:
Quellcode einer Software zu verwalten, zu speichern, zu verfolgen und zu versionieren.
Änderungen an Dateien über die Zeit hinweg zu archivieren
jederzeit das Laden der aktuellen und jeder archivierten Version einer Datei zu erlauben
Konflikt-Ablauf für verteiltes SCM
SCM meldet Konflikt und Entwickler lokalisiert ihn lokal
Konflikt wird manuell gelöst indem entschieden wird welche der inkonsistente Änderungen beibehalten werden sollen
Nach der Konfliktlösung laden die Entwickler ihre geänderte Version hoch, um sie ins Repository zu integrieren
Beschreibe die 2 Teststrategien:
Blackbox Testing:
Funktionale Abdeckung
Testfälle aus Spezifikation ableiten (Schnittstellen)
Äquivalenzklassen mit gleichem erwartbaren Systemverhalten bei Eingaben
Whitebox Testing:
Strukturelle Abdeckung
Testfälle aus innerer Struktur des Systems ableiten
Was ist Prozess Tailoring?
Für jedes Projekt bzw. für jede Organisation ist eine selektive Adaption an einem standardisierten Prozessmodell vorzunehmen, um den erwarteten Nutzen auch tatsächlich zu erzielen
-> detailliertes Anpassen an spezifische Gegebenheiten und das Erzeugen eines komplett eigenen Modells
Beschreibe Systemintegration und Strategien:
System Integration
= der Prozess, bei dem verschiedene unabhängige Softwaresysteme oder Subsysteme zu einem größeren Gesamtsystem zusammengeführt werden
4 Strategien:
Big-Bang
Build
Top-Down
Bottom-up
Welche Strategien gibt es für System-Integration? (Part 1)
Big-Bang: Alle Module werden gleichzeitig integriert
Vorteil: Keine Test-Stubs notwendig da alle Modula bereits verfügbar
Nachteil: Fehler schwer zu lokalisieren - hohes Risiko
Build: Schrittweise entsprechend der Business Cases über alle Layer hinweg
Vorteil: frühe Verfügbarkeit von funktionalen Anforderungen/Prototyp
Nachteil: Wiederverwendung von Komponenten schwierig
Welche Strategien gibt es für System-Integration? (Part 2)
Top-Down: Schrittweise ausgehend von den Business Cases
Vorteil: Ausführbares Produkt-Framework früh verfügbar
Nachteil: hoher Aufwand für Test-Stubs, späte Integration von Hardware
Bottom-Up: Schrittweise ausgehend von der Hardware
Vorteil: Stabiles System basierend auf Hardware Interfaces
Nachteil: Ausführbares Gesamtsystem erst spät verfügbar
Beschreibe den Prozess für Testfallbestimmung und was dokumentiert wird:
Anforderungsanalyse
Festlegung der Testziele
Testfallidentifizierung
Testfallerstellung
Die Dokumentation enthält Details wie Testfallbeschreibung, Testbedingungen, vorbereitete Daten, erwartete Ergebnisse und andere relevante Informationen, die für die Ausführung des Tests benötigt werden
Welche der folgenden Aussagen beschreibt einen Design-Grundsatz am besten?
Welche der folgenden Aussagen beschreibt am besten die Testphilosophie?
Last changeda year ago