zusammenfassungen/Writerside/topics/OOAD/SoftwareProcesses.md
David Schirrmeister 1820e5c6a4 update
2024-05-01 10:14:02 +02:00

3.5 KiB

Software Processes

In den 1950ern wurde Software an Seite der Hardware entwickelt

  • Ziel dieser Prozesse war das komplette Produkt in einem einzigen Projekt zu entwerfen

Classic Organizational Structure

  • Business or Client
    • braucht neue Software/System
    • Definiert Kriterien, welche für die Vollständigkeit des Systems essenziell sind
    • Definiert requirements specification, welche das benötigte System beschreibt
  • Entwicklungsteam oder Software-Firma
    • Bekommt requirements specification
    • Designt und entwickelt das System anhand der gegebenen Spezifikationen
    • Erstellt ein Handbuch
  • Operations Team
    • Bekommt Handbuch
    • Nimmt Rechenschaft für das Laufen der Software auf sich
    • Gibt auftretende Fehler an das Entwicklungsteam weiter

Handling of Change: Implications

Ursprüngliches Projekt ist fertig - Kunde ist aber nicht glücklich

  • Ein neues Projekt startet den SDLC neu
    • image_42.png

Waterfall Model

  • Sequenzielle Ausführung der Phasen des SDLC
    • Jede Phase wird mit einer Dokumentation des Schritts beendet
    • Iterationen sind nur zwischen zwei aufeinanderfolgenden Phasen möglich
  • image_40.png
  • image_41.png

Neue Modelle

V-Modell

image_43.png

Spiral-Modell

image_44.png

Agile

The Agile Manifesto

4 Werte

  • Individuen und Interaktionen über Prozesse und Werkzeuge
  • Funktionierende Software über verständliche Dokumentation
  • Arbeit mit Kunden über Vertragsverhandlungen
  • Anpassung an Veränderung über folgen des Plans

12 Prinzipien

  • Funktionierende Software ist die primäre Ressource um den Fortschritt zu messen
  • Die höchste Priorität ist den Kunden durch frühe und durchgehende Lieferung von wertvoller Software glücklich zu machen
  • Liefere funktionierende Software regelmäßig, ~mehrere Wochen bis mehrere Monate → kürzer = besser
  • Durchgehende Aufmerksamkeit auf technische Exzellenz und gutes Design verbessert die Agilität

Strongly Iterative Development

Verstärkt durchgehende Kreation von Nutzen für Kunden

  • Scope: wichtigsten Features der Iteration
  • image_45.png

Durchgehende Anpassung der Anforderungen an aktuelle Nachfrage

  • image_46.png

Small and Cross-functional Teams

  • Selbst organisiert, divers, T-shaped skills
  • klein
  • image_48.png
  • Beispiel Scrum Team:
    • 3-9 Developers
      • verantwortlich für alle Aspekte der Entwicklung
    • 1 Product Owner
      • spielt Kunde für die Devs, kreiert und priorisiert Features
    • 1 Scrum Master
      • Coach, Prozess-Authorität

Business/Client wird Teil des Teams

  • Product Owner
  • image_47.png

DevOps

Erweiterung der agilen Software-Entwicklung

  • nicht nur Dev (Entwicklung), sondern auch Ops(Operations)

  • Gefördert durch dynamische Cloud-Infrastuktur

  • Führt zu höherer Qualität

    • Devs machen stabileren Code
    • fördert Automatisierung in allen Aspekten

DevOps fördert schnellere Iterationen

  • Features können individuell ausgeliefert werden
    • mehrere Releases am Tag sind normal
  • schnellere Feedback-Cycles
    • Bessere Adaption zu neuen Anforderungen
  • Nutzer-Verhalten kann aufgezeichnet und für spätere Arbeit genutzt werden