Kategorier: Alle

af Taha Emircan Gökduman 24 timer siden

27

Softwareentwicklung

Softwareentwicklung umfasst verschiedene Bereiche wie Qualitätssicherung und Testing, um die Funktionalität und Zuverlässigkeit von Software zu gewährleisten. Der Begriff "Bug" wird seit 1878 verwendet, um Fehler in technischen Geräten zu beschreiben.

Softwareentwicklung

Wichtige Einflußfaktoren im Kontext der Anforderungsermittlung

Wichtige Einflussfaktoren im Kontext der Anforderungsermittlung

Menschliche Faktoren:


Organisatorische Faktoren:


Fachliche Faktoren:



Teil Heß

Teil Fertig

Softwareentwicklung

Usability Testing

Usability Testing

Ziel: Bewertung eines Produkts oder Prototyps durch reale Nutzer.

Ablauf:

1️⃣ Planung: Zielgruppen & Testaufgaben definieren, Testpersonen rekrutieren.

2️⃣ Durchführung: Nutzer bearbeiten Aufgaben, oft mit Thinking-Aloud-Technik.

3️⃣ Auswertung: Daten analysieren, Probleme kategorisieren & bewerten.

4️⃣ Ergebnispräsentation: Erkenntnisse & Empfehlungen vorstellen.


Eyetracking

Definition:


Zweck:


Limitierung: Peripheres Blickfeld wird nicht erfasst.

Heuristische Evaluation

Heuristische Evaluation

Expertenbewertung der Usability anhand von Heuristiken (Theorien & Erfahrung).

Ergebnisse: Probleme & Verbesserungsvorschläge, nach Schweregrad kategorisiert.

Vorteil: Klare Identifikation & konkrete Lösungen.

Nachteil: Zeitaufwendig & erfordert erfahrene Experten.


Nielsen Heuristiken

Grundprinzipien für Usability:

1️⃣ Sichtbarkeit des Systemzustands – Klare Rückmeldung für Nutzer.

2️⃣ Übereinstimmung mit der Realwelt – Vertraute Begriffe & Konzepte nutzen.

3️⃣ Nutzerkontrolle & Freiheit – Aktionen rückgängig machen können.

4️⃣ Konsistenz & Standards – Einheitliches Design & Verhalten.

5️⃣ Fehlerprävention – Probleme vorab vermeiden.

6️⃣ Wiedererkennen statt Erinnern – Wichtige Infos sichtbar halten.

7️⃣ Flexibilität & Effizienz – Anpassbarkeit für verschiedene Nutzer.

8️⃣ Ästhetik & Minimalismus – Klare, nicht überladene Interfaces.

9️⃣ Fehlermanagement – Erkennen, Bewerten & Beheben erleichtern.

🔟 Hilfe & Dokumentation – Unterstützende Infos bereitstellen.

Cognitive Walkthrough

Cognitive Walkthrough

Ziel:


Ablauf:

1️⃣ Input definieren: Personas, Aufgaben & idealer Ablauf.

2️⃣ Interaktionssequenz analysieren: Schritt-für-Schritt-Prüfung.

3️⃣ Kritische Informationen gewichten: Probleme & unklare Begriffe identifizieren. 🚀

Befragung

Standardisierte Fragebögen

Übersicht:


SUS-Score Berechnung:



IxD

Interaction Design (IxD)

Definition:

Interaktionsdesign beschreibt, wie ein Produkt oder System auf Nutzereingaben reagiert. Es folgt psychologischen Theorien wie mentalen Modellen und strukturiert die Anordnung von Funktionen innerhalb der Benutzeroberfläche.

Komponenten des Interaktionsdesigns:

1️⃣ Interaktionsfluss:


Beispiel: Park Distance Control (PDC) 🚗

📌 Interaktionsfluss:


📌 Inhalt:


📌 Darstellung:


Fazit: Durch Interaktionsfluss, Inhalte & Darstellung wird eine intuitive und effektive Nutzerführung sichergestellt.

Normen, Prinzipien & Design Patterns

ISO 9241-110: Grundsätze der Interaktionsgestaltung


ISO 9241-112: Grundsätze der Informationsdarstellung




User Interface Design Patterns

Definition:


Zweck:



User Interface Design Patterns

Definition:


Beschreibungselemente:




Gestaltungsmethoden

Sketching Basics

Zweck:


Vorteile:




Konzepte

Storyboarding:


Defining Components:


Process Visualization:


Workflow Maps:


Screen Transition:


Screen Transition Storyboard:



Wireframes & Prototypen

Wireframes:


Funktionale Prototypen:


Horizontale vs. Vertikale Prototypen:


Tools für Prototypen:

Axure, Adobe XD, Figma, InVision – Erstellung klickbarer HTML-Prototypen.




Modell der Handlungsschritte

7 Stages of Action (Donald Norman)

1️⃣ Ziel festlegen: Nutzer definiert, was er erreichen will.

2️⃣ Intentionen formulieren: Planung von Handlungsabsichten.

3️⃣ Aktionen planen: Spezifizierung der notwendigen Schritte.

4️⃣ Aktionen ausführen: Umsetzung über die Benutzeroberfläche.

5️⃣ Systemzustand wahrnehmen: Nutzer nimmt Rückmeldung des Systems wahr.

6️⃣ Systemzustand interpretieren: Bewertung der Systemreaktion.

7️⃣ Vergleich mit Ziel: Erfolg prüfen → Ziel erreicht oder neuer Zyklus.


Folgerungen fürs Interaktionsdesign

Goal:


Execution:


Evaluation:


Nutzer muss Systemzustand einfach mit seinem Ziel vergleichen können (klare Anzeigen).

Card Sorting

Card Sorting

Idee:


Varianten:

1️⃣ Offenes Card Sorting: Nutzer erstellen eigene Kategorien & benennen sie.

2️⃣ Geschlossenes Card Sorting: Kategorien sind vorgegeben, Nutzer ordnen Inhalte ein.

3️⃣ Reverse Card Sorting: Nutzer bewerten eine bestehende Struktur & geben an, wo sie Inhalte erwarten.

Mentales Modell

Mentales Modell

Definition:

Ein mentales Modell beschreibt, wie eine Person denkt, dass etwas funktioniert.

Merkmale:



Mentale Modelle im Interaktionsdesign

Eigenschaften:


Relevanz für Interaktionsdesign:


Problem:

🔹 Designer vs. Nutzer:


Lösung:

1️⃣ Produkt an mentale Modelle der Nutzer anpassen.

2️⃣ Nutzer durch Training & bessere Erklärungen unterstützen.

3️⃣ Eindeutige Bezeichnungen & transparente UI gestalten.

Voraussetzung:


Methoden zur Anpassung:




RE/UUX

Usability & User Experience

Usability

Beschreibt, wie effektiv, effizient und zufriedenstellend ein Produkt von bestimmten Nutzern in einem bestimmten Kontext verwendet werden kann.


User Experience (UX)

Umfasst alle Emotionen, Wahrnehmungen und Reaktionen eines Nutzers vor, während und nach der Nutzung eines Produkts.


Positive Emotionen & Auswirkungen

Negative Emotionen & Auswirkungen


Allgemein


TORE

TORE Entscheidungs-Rahmenwerk

Das TORE (Task-Oriented Requirements Engineering) Entscheidungs-Rahmenwerk strukturiert anforderungsrelevante Entscheidungen auf vier Ebenen:


  1. Projekt-Ebene – Projektteam, Stakeholder, Ziele, unterstützte Prozesse
  2. Fach-Ebene – Ist-/Soll-Situation, Verantwortlichkeiten, Geschäftsregeln
  3. Interaktions-Ebene – Interaktionen, Systemfunktionen, UI-Struktur
  4. System-Ebene – GUI, Architektur, interne Funktionen & Daten

Kernpunkte des TORE-Ansatzes:

Systementwicklung wird durch Aufgaben & Geschäftsprozesse gesteuert.

Jede Systementscheidung ist begründbar und nachvollziehbar.

Zielerreichung wird strukturiert sichergestellt.

Erleichtert Kommunikation zwischen Fachlichkeit & Entwicklung.

Es verbindet Requirements Engineering, Usability Engineering und Business Informatics, um eine fundierte Entscheidungsfindung zu gewährleisten. ✅

Interaktionsebene

Entscheidungen der Interaktionsebene

Kernfragen:

1️⃣ Wie interagieren Nutzer/externe Systeme mit der Software?

2️⃣ Welche Systemfunktionen sind erforderlich?

3️⃣ Welche Daten werden ausgetauscht?

4️⃣ Wie werden Daten & Funktionen in der UI gruppiert?


Anwendungsfall: [Name des Anwendungsfalls]

  1. Ablauf:Der Benutzer…
  2. Das System…



Definition der Systemfunktionen

Systemfunktionen umfassen:


🔹 Falls nötig, können sie mit UML oder Rupp’s Satzschablone detailliert werden.


Festlegung von Interaktionsdaten

Ableitung aus Use Cases:


📌 Dokumentation: Als Erweiterung der Use Cases oder Datenmodelle.


Festlegung der UI-Struktur

Leitfrage: Welche Daten & Funktionen gehören zusammen?

Ableitung aus Use Cases.

Visualisierung: Logische Bereiche oder Papierprototypen.

Fachebene

Fachebene

🔹 Ist-Situation: Aktuelle Prozesse analysieren (Stärken & Schwächen).

🔹 Soll-Situation: Zukünftige Gestaltung zur Zielerreichung.

🔹 Systemverantwortlichkeiten: Zuständigkeiten klären.

🔹 Geschäftsdaten & -regeln: Wichtige Daten & Regeln berücksichtigen.

Kernfragen:

  1. Wie sehen aktuelle Prozesse aus?
  2. Wie sollen sie in Zukunft gestaltet werden?
  3. Welche Prozesse können automatisiert werden?
  4. Welche Daten & Regeln sind relevant?



IST-Analyse – Aufgabenanalyse

🔹 Fokus auf Aufgaben statt Features – Analyse der IST-Situation aus Nutzersicht.

🔹 Ziel: Probleme & Verbesserungspotenziale erkennen, Anforderungen ableiten, Nutzertests vorbereiten.

Kernfragen zur Aufgabenanalyse:



Sequence Models Contextual Design

Ein Sequence Model beschreibt detailliert, wie ein Nutzer eine Aufgabe in einem bestimmten Kontext Schritt für Schritt ausführt. Es erfasst Aktionen, Denkprozesse, Probleme und Unterbrechungen.


Beispiel: Online-Flugbuchung

1️⃣ Trigger: Nutzer möchte einen Flug buchen.

2️⃣ Suche: Nutzer gibt Abflughafen, Ziel, Datum ein.

3️⃣ Auswahl: Filtert nach Preis, Airline, Flugzeiten.

4️⃣ Buchung: Gibt Passagierdaten ein, wählt Zahlungsmethode.

5️⃣ Bestätigung: Erhält E-Ticket per E-Mail.

6️⃣ Mögliche Probleme: Kreditkarte wird abgelehnt, unklare Gebühren.

7️⃣ Lösung: Nutzer versucht alternative Zahlungsmethoden oder kontaktiert den Support.

Nutzen: Sequence Models helfen, Benutzerinteraktionen zu verstehen, Probleme zu identifizieren und UX zu verbessern.


Ereignisgesteuerte Prozesskette (EPK)

Grafische Methode zur Modellierung von Geschäftsprozessen.

🔹 Elemente:


Aufgaben- & Kontextanalyse

Aufgaben verstehen:


Kontext verstehen:


Ressourcen & Hilfsmittel:



Definition der Soll-Situation

Optimierung der Ist-Situation unter Beibehaltung von Stärken:


Detaillierung der Soll-Situation mit Modellierungstechniken:







Systemverantwortlichkeiten

Systemverantwortlichkeiten


Aktivitätsklassifikation in der Soll-Situation:




Beschreibung von Systemunterstützten Aktivitäten mit User Stories


ALS <<ROLLE>> MÖCHTE ICH <<TÄTIGKEIT>> UM <<ZIEL>>



Beschreibung von Systemautomatisierten Aktivitäten mit Standard-Satzschablone


<NAME> MUSS <wem> die Möglichkeit geben <Objekt> <Prozesswort>

SOLL fähig sein

KANN


Beschreibung von Systemautomatisierten Aktivitäten mit erweiterter Satzschablone 



<WENN> MUSS <NAME> <wem> die Möglichkeit geben <Objekt> <Prozesswort>

SOLL fähig sein

KANN


Identifikation von Geschäftsdaten

Schritte:

1️⃣ Begriffe aus Geschäftsprozessen ableiten.

2️⃣ Daten mit Stakeholdern verfeinern (Attribute klären).

3️⃣ Konzeptionelle Zusammenhänge & Kardinalitäten modellieren.


Identifikation von Geschäftsregeln

Regeln aus Daten, Prozessen & Funktionen ableiten:



Kreativität

Kreativität

"Kreativität ist die Fähigkeit, Arbeit zu schaffen, die sowohl neuartig (d. h. originell, unerwartet) als auch angemessen (d. h. nützlich und anpassungsfähig in Bezug auf Aufgabenbeschränkungen) ist."

"Kognitive Prozesse, die zu einer originellen (z. B. neuartigen, einzigartigen oder ungewöhnlichen) und adaptiven (z. B. passenden, nützlichen) Erkenntnis, Idee oder Lösung führen."


Basic Elemente von Kreativität

Kopieren Transformieren Kombinieren


Kreativitätsprozess

Phasen:

1️⃣ Exploration: Ideenfindung ohne Bewertung (Kreativitätstechniken anwenden).

2️⃣ Combination & Transformation: Ideen strukturieren, analysieren & kombinieren.

3️⃣ Convergence: Vielversprechende Ideen auswählen & konsolidieren.

4️⃣ Evaluation: Ideen auf Eignung prüfen & für Produktentwicklung nutzen.

👉 Vorteil: Trennung von Ideenfindung & Bewertung fördert Kreativität & Innovation.


Grundlegende Kreativitätstechniken

Ideengenerierung:


Ideenbewertung & Auswahl:


Assoziative Techniken:



6-3-5 Brainwriting

🔹 Eine kreative Methode zur schnellen Ideenfindung in Gruppen.

🔹 Struktur: 6 Teilnehmer schreiben je 3 Ideen in 5 Rundenmax. 80 Ideen.

Ablauf:

1️⃣ Jeder Teilnehmer erhält ein Arbeitsblatt mit einer Fragestellung.

2️⃣ Moderator setzt Zeitlimit (z. B. 3–5 Minuten pro Runde).

3️⃣ Jeder schreibt 3 Ideen in die erste Zeile.

4️⃣ Blätter werden weitergereicht, der nächste ergänzt oder erweitert bestehende Ideen.

5️⃣ Vorgang wird wiederholt, bis alle Zeilen gefüllt sind.

👉 Ziel: Strukturierte Ideengenerierung & Weiterentwicklung ohne direkte Diskussion.


Lotus Blossom

Zentrale Idee im Mittelpunkt, umgeben von 8 Ideenblättern.

Erste Runde: Ideen zu dieser Hauptidee sammeln.

Zweite Runde: Jede Idee wird zum neuen Zentrum, weitere Ideen entwickeln.

Besonders geeignet für Weiterentwicklungen bestehender Produkte/Prozesse.


Remember the Future

Ziel: Den zukünftigen Erfolg eines Produkts aus Nutzersicht definieren.

Ablauf:

1️⃣ Teilnehmer versetzen sich zwei Jahre in die Zukunft (z. B. 2026).

2️⃣ Sie beschreiben, wie das Produkt ihr Leben verbessert hat.

3️⃣ Danach gehen sie weitere zwei Jahre in die Zukunft (z. B. 2028) und konkretisieren, was das Produkt geleistet hat.

Wichtig: Frage in der Vergangenheitsform formulieren → realistischere & detailliertere Ergebnisse.


Morphological Forced Connections

Ziel: Neue, unerwartete Ideen durch Kombination von Merkmalen finden.

Ablauf:

1️⃣ Merkmale (Attribute) eines Produkts/Systems in eine Matrix schreiben.

2️⃣ Mögliche Ausprägungen der Merkmale rechts daneben notieren.

3️⃣ Merkmalkombinationen bilden:



Product Box

Ziel: Produktverpackung entwerfen (auch für virtuelle Produkte)

Schritte:

1️⃣ Wichtigste Botschaft festlegen → Was überzeugt den Kunden?

2️⃣ Produktname wählen, der die Idee transportiert.

3️⃣ Bild/Skizze ergänzen, die das Produkt symbolisiert.

4️⃣ Wichtige Features auflisten.

5️⃣ Anforderungen an die Umgebung definieren.



Buy a Feature

Ziel: Features priorisieren durch simulierten Kaufprozess.

Ablauf:

1️⃣ Liste möglicher Features mit Preisen erstellen.

2️⃣ Teilnehmer (Kunden/Nutzer) erhalten Spielgeld.

3️⃣ Sie investieren in gewünschte Features.

4️⃣ Teure Features fördern Verhandlungen & Gruppenentscheidungen.

Ergebnis: Die wichtigsten Features aus Kundensicht identifizieren.


Six Thinking Hats

Gruppendiskussion mit 6 Denkweisen (Hüte):


Ziel: Verschiedene Perspektiven einnehmen, um fundierte Entscheidungen zu treffen.


Kontext Analyse

KONTEXTANALYSE

...wie können die Ergebnisse dokumentiert werden?


Physical Models:


Artifact Models:


Flow Models:




Projektebene

Entscheidungen der Projektebene 

Thema: Welches Problem oder Ziel steht im Fokus?

Stakeholder: Wer ist betroffen (Organisationen, Personen)?

Ziele: Was soll erreicht oder geschaffen werden?

Prozesse: Welche fachlichen Aufgaben müssen analysiert oder optimiert werden?


Thema

Projektbeschreibung

Name: Name des Projektes

Kurzbeschreibung: Gegenstand / Thema des Projektes, kurze Motivation

Zeitraum: Geplante Projektlaufzeit, Releases, etc. Kunde Name, Kontaktdaten

Sonstige Informationen: z.B. ausgeschlossene Themen / Änderungen, etc.



Stakeholder


Stakeholderbeschreibung

Feld Beschreibung

ID: Eindeutige Kennung für den Stakeholder

Bezeichnung: Name oder Bezeichnung des Stakeholders

Funktion / Rolle: Rolle im Projekt (z. B. Nutzer, Sponsor)

Kontaktdaten: Ansprechpartner und deren Kontaktinformationen

Verfügbarkeit: Erreichbarkeit der Ansprechpartner im Projekt

Interesse: Einstellung des Stakeholders zum Projekt

Einfluss: Macht & Entscheidungsbefugnis im Projekt

Ziele / Interessen: Wichtige Zielsetzungen und Interessen im Projekt

Hilfsmittel

Zwiebelschalen-Modell

🔹 Schicht 1: Enge Beteiligung (Projektleiter, Entwickler)

🔹 Schicht 2: Betroffene durch Änderungen (Endnutzer)

🔹 Schicht 3: Externe Einflussnehmer (Sponsoren, Behörden, Politik)


Stakeholder-Matrix

Stakeholder werden nach Einfluss (niedrig/hoch) und Interesse (gering/hoch) eingeteilt:

🔹 A (hoch/hoch): Schlüsselakteure, in Planung & Entscheidungen einbinden (z. B. Projektleiter, Sponsoren).

🔹 B (hoch/gering): Mächtig, aber wenig interessiert, Entscheidungen in ihrem Interesse treffen (z. B. Führungskräfte).

🔹 C (gering/hoch): Hoher Einsatz, wenig Macht, gut informieren & einbinden (z. B. Endnutzer, Berater).

🔹 D (gering/gering): Kaum Einfluss & Interesse, minimal informieren (z. B. Betriebsrat).

Ziel: Wichtige Stakeholder gezielt einbinden & Widerstände vermeiden.



Zielerhebung

Ermittlung der gewünschten Zielzustände der Stakeholder

🔹 Top-Down-Analyse:


🔹 Bottom-Up-Analyse:



Zielbeschreibungstabelle

Feld Beschreibung

ID Eindeutige Kennung für das Ziel

Bezeichnung Klarer, eindeutiger Name des Ziels

Priorität Wichtigkeit des Ziels (hoch, mittel, gering)

Kritikalität Relevanz für den Projekterfolg

Quelle Ursprung des Ziels (Stakeholder, Dokument, System)

Unterstützte Stakeholder Personen/Gruppen, die von der Zielerreichung profitieren Beschreibung Detaillierte Erklärung des Ziels

Übergeordnete Ziele Zugehörige Hauptziele inkl. Verfeinerungstyp (UND/ODER) Untergeordnete Ziele Subziele inkl. Verfeinerungstyp (UND/ODER)

Weitere Zielbeziehungen Verknüpfungen zu anderen Zielen (z. B. Konflikte)



Prozessbeschreibungstabelle

Feld Beschreibung

ID Eindeutige Kennung der Aufgabe/des Prozesses

Bezeichnung Klarer, eindeutiger Name

Zielsetzung Zweck der Aufgabe/des Prozesses

Involvierte Rollen Stakeholder (Rollen), die beteiligt sind

Durchführungsprofil Häufigkeit der Durchführung (häufig, selten)

Motive Übergeordnete Ziele, die die Aufgabe antreiben

Priorität Wichtigkeit der Aufgabe/des Prozesses

Vorbedingungen Voraussetzungen für die erfolgreiche Durchführung

Benötigte Informationen Relevante Daten/Dokumente als Input

Ergebnisse Resultate nach der Durchführung (Dokumente, Daten)



User Research

Zielsetzung „User Research“

Nutzer verstehen: Ziele, Bedürfnisse, Eigenschaften

Psychologische Aspekte: Motivation, Einstellung, Erfahrung

Fachliche Faktoren: Wissen, Beruf, Software-Erfahrung

Physische Merkmale: Alter, Geschlecht, Einschränkungen


Persona

Fiktiver Stereotyp, basierend auf User Research

Erleichtert Nutzerverständnis & Produktanforderungen

Inhalte: Name, Demographie, Rolle, Zitat, Bild

Fokus: Ziele, Aufgaben, Nutzungskontext, Herausforderungen


Allgemeines Vorgehen zur Erstellung einer Persona

Proto Persona erstellen->Daten erheben->Daten analysieren&validieren (Kreislauf)



Warum ist eine Priorisierung von Personas wichtig?

Zu viele Personas führen zu Feature-Überladung und schlechter Nutzeranpassung.

👉 Lösung: Priorisierung in primäre, sekundäre & ausgeschlossene Personas.


Customer Journey

Customer Journey

Gesamter Nutzerprozess: Von Erstkontakt bis nach dem Kauf.

Bestandteile:



Sales-Funnel Model

Sales Funnel Modell

Das Sales Funnel Modell beschreibt die Phasen, die ein Kunde durchläuft, bevor er eine Kaufentscheidung trifft. Es ähnelt der Customer Journey, fokussiert sich jedoch stärker auf den Verkaufsprozess.

🔹 Awareness (Bewusstsein): Kunde erfährt vom Produkt.

🔹 Interest (Interesse): Kunde informiert sich weiter.

🔹 Decision (Entscheidung): Kunde erwägt den Kauf.

🔹 Action (Aktion): Kunde kauft das Produkt.

Ziel: Nutzer gezielt durch den Verkaufsprozess führen & Conversion optimieren.

Empathy Map

Empathy Map

Eine Empathy Map ist ein Tool zur Analyse der Nutzerperspektive. Sie hilft, das Verhalten, die Gedanken und Emotionen der Nutzer besser zu verstehen.

Sie besteht aus vier Hauptbereichen:

🔹 Sagt – Was äußert der Nutzer?

🔹 Denkt – Was beschäftigt ihn innerlich?

🔹 Fühlt – Emotionen, Sorgen, Wünsche

🔹 Tut – Wie verhält er sich?

Ziel: Tiefere Nutzerkenntnis für eine nutzerzentrierte Produktentwicklung.


Erstellung einer Empathy Map

Workshop (~20 Min.) mit Team, das die Zielgruppe kennt.

Fokus festlegen:



Requirements Engineering

Requirements Engineering

Ziel: Anforderungen systematisch spezifizieren & verwalten, Stakeholder-Konsens erreichen, Fehlentwicklungen vermeiden.


Kernaktivitäten:

  1. Ermitteln – Anforderungen sammeln & konsolidieren.
  2. Dokumentieren – Anforderungen strukturiert erfassen.
  3. Validieren & Verhandeln – Anforderungen prüfen & abstimmen.
  4. Verwalten – Anforderungen & Artefakte organisieren.

Arten von Anforderungen:

Software-Lebenszyklus:

RE → Design → Implementierung → Integration → Einführung → Wartung

Fehlerquellen in Projekten:


📌 Beispiel für Missverständnis:

Anforderung: Umkehrschub nur nach Landung aktivierbar.

Fehlinterpretation: Aktivierung erst, wenn Räder schnell drehen.

Folge: Kein Umkehrschub bei Aquaplaning → Flugzeug verlässt Landebahn → Unfall. 🚨

🛠 Herausforderungen:



Artefaktbasierte Techniken

Dokumentanalyse&Systemarchäologie

Dokumentanalyse & Systemarchäologie

Dokumentanalyse:


Systemarchäologie:


Nachteile:



Beobachtungstechniken

Apprenticing

Apprenticing

Beschreibung:


Vorteile (zusätzlich zur Feldbeobachtung):


Nachteile (zusätzlich zur Feldbeobachtung):



Contextual Inquiries

Contextual Inquiry

Beschreibung:


Best Practices:



Feldbeobachtung

Feldbeobachtung

Beschreibung:


Vorteile:


Nachteile:



Befragungstechniken

Interviews

Arten von Interviews:


Vorteile & Nachteile von Interviews

Vorteile:


Nachteile:




Grundlagen der Interviewführung

1. Bedeutung der Interviewführung

2. Arbeitsschritte eines Interviews

Vorbereitung:


Gesprächsbeginn:


Durchführung:


Gesprächsende:


Nachbereitung:


3. Fragetechniken für erfolgreiche Interviews

4. Aktives Zuhören und Gesprächsführung

🔹 Ziel: Klare, strukturierte Interviews, die relevante Informationen liefern und Missverständnisse vermeiden. ✅

Fokusgruppe

Fokusgruppe

Eigenschaften:


Vorteile (vs. Einzelinterviews):


Nachteile:



Arbeitsschritte einer Fokusgruppe:

1. Vorbereitung:


2. Beginn:


3. Durchführung:


4. Ende:


5. Nachbereitung:



Best Practices:


Umfragen

Anforderungsermittlung mit Fragebögen

Vorteile:


Nachteile:



Kano Modell

Kano-Modell


🔹 Mit der Zeit werden Begeisterungsmerkmale zu Leistungs- oder Basismerkmalen.

🔹 Technischer Fortschritt erhöht Kundenerwartungen.

🔹 Erfolgreiche Produkte erfüllen Basismerkmale, bieten nützliche Leistungsmerkmale und heben sich durch Begeisterungsmerkmale ab.

🔹 Nutzungskontext beeinflusst Erwartungen – Benutzerziele, physisches & soziales Umfeld berücksichtigen.

Software Quality Assurance

Software Testing & Bugs

Begriff "Bug":


Auswirkungen von Software-Bugs:


Fehlertypen:


Testing – Ziele:

1️⃣ Bugs finden

2️⃣ Qualität prüfen

3️⃣ Vertrauen erhöhen

Testing – Definition:


Validation vs. Verification:


Qualitätskriterien & Tests:


Testing vs. Qualität:


7 Regeln des Testings:

1️⃣ Tests beweisen Bugs, nicht deren Abwesenheit.

2️⃣ 100% Testabdeckung ist unmöglich.

3️⃣ Früh testen!

4️⃣ Fehler treten oft in Clustern auf.

5️⃣ Wiederholtes Testen reicht nicht.

6️⃣ Use Cases bestimmen Testfokus.

7️⃣ Ein funktionierendes System ≠ ein zufriedenes System. 🚀

Testing in Software Lifecycle

Teststufen & Testarten

V-Modell – Teststufen:

1️⃣ Component Testing: Prüfung einzelner Komponenten (Unit & Class Testing).

2️⃣ Integration Testing: Überprüfung der Zusammenarbeit von Komponenten (Bottom-Up, Top-Down).

3️⃣ System Testing: Test des gesamten Systems auf funktionale & nicht-funktionale Anforderungen.

4️⃣ Acceptance Testing: Validierung, ob das System alle Nutzeranforderungen erfüllt.

Regression Testing (Wartungstests):


Testkategorien:


Statisches vs. Dynamisches Testing:



Boundary Testing

Boundary Testing

Idee:

Grenzwerte in if-then-else-Strukturen oder Schleifen sind fehleranfällig (z. B. Off-by-One-Fehler). Besonders effektiv in Kombination mit Äquivalenzpartitionierung.

Wichtige Prüfungen:


Vor- & Nachteile:

✅ Häufige Fehlerquelle → Hohe Fehlererkennung.

✅ Effiziente Kombination mit anderen Methoden.

❌ Komplexe Identifikation aller Grenzen.

❌ Erfordert kreative Testfälle.

Equivalence Partitioning

Äquivalenzklassenbildung (Equivalence Partitioning)

Äquivalenzklassenbildung teilt Eingaben in Gruppen mit ähnlichem Verhalten ein. Ein Wert aus einer Partition repräsentiert die gesamte Gruppe – wenn er einen Fehler aufdeckt, tut es jeder andere Wert in der Gruppe auch. Ebenso gilt, dass ein fehlerfreier Wert für alle in der Gruppe gilt.


Vorgehen:

  1. Domänen definieren: Mögliche Eingabe- und Ausgabewerte bestimmen.
  2. Partitionierung nach Regeln:
  1. Weitere Aufspaltung bei ungleichen Behandlungen innerhalb einer Partition.

Beispiele:

Optimierung:

Vor- und Nachteile:

✅ Reduziert Testfälle, effizient für viele Eingaben.

❌ Berücksichtigt schwer Interdependenzen, sollte mit Grenzwertanalyse kombiniert werden.

Dynamic testing

Dynamisches Testing

Testmethoden:

1️⃣ Blackbox Testing: Testet das System ohne Kenntnis des Codes (eingabe- & ausgabebasiert).


Begriffe:


Ziel dynamischer Tests:


🚀 Herausforderung:



Advanced Testing Strategies

Mutation Testing

Ansatz

  1. Mutanten erzeugen: Leichte Modifikationen am Originalprogramm.
  2. Testfälle ausführen:

Arten des Mutation Testings

Interpretation der Testergebnisse

Mutationsoperatoren

Mutation Testing hilft, Testfälle zu verbessern, indem es überprüft, ob sie Code-Modifikationen erkennen.

Mocks & Mockito

Was ist ein Mock?

Mockito Syntax

when(itemRepository.findById("it1")).thenReturn(mockedItem);

verify(itemRepository, times(1)).findById("it1");

PowerMock – Mocking für schwierige Fälle

Mocking hilft, Klassen isoliert zu testen, Fehlerquellen zu minimieren und stabile Unit-Tests zu schreiben.

Whitebox Testing

Control Flow Graphs

Anomalien im Kontroll- und Datenfluss

McCabe’s Cyclomatic Complexity

Diese Konzepte helfen, die Testbarkeit und Qualität von Code zu bewerten und zu verbessern. 🚀

Controllflow-based Testing

Test Coverage Methoden

Testkriterien vs. Testabdeckung

Statement Coverage

Branch Coverage

Path Coverage

Boundary Interior Testing

Beispiel-Testfälle für Statement & Branch Coverage

Diese Methoden helfen dabei, eine möglichst hohe Code-Abdeckung zu erreichen und Fehler frühzeitig zu erkennen.

Static Testing

Review-Typen & Prozess

Review-Typen:

1️⃣ Informal Review: Einzelprüfung, kein fester Prozess, günstig, optional dokumentiert.

2️⃣ Walkthrough: Autor präsentiert das Dokument, informell, keine Vorbereitung nötig.

3️⃣ Technical Review: Formelle Prüfung durch Experten, erfordert Dokumentation.

4️⃣ Inspection: Strukturierteste & formellste Methode, mit festen Rollen & Checklisten.

Review-Prozess:

🔹 Planung: Festlegung von Dokumenten, Team & Kriterien.

🔹 Kick-Off: Vorstellung der Dokumente & Sammeln von Checklisten.

🔹 Individuelle Vorbereitung: Jeder prüft das Dokument auf Fehler.

🔹 Meeting: Moderator führt durch den Review, Diskussionen sind nicht erlaubt.

🔹 Ergebnisse: Fehlerbewertung (kritisch, Hauptfehler, geringfügig, akzeptiert).

🔹 Rework: Fehlerbehebung & erneuter Review bei Bedarf.

🔹 Abschluss: Messwerte sammeln, entscheiden, ob weitere Reviews nötig sind. 🚀

Vorteile von Reviews:


Probleme bei Reviews:



Psychology of Testing

Psychology of Testing

Grundsatz:


Können Entwickler ihre eigenen Programme testen?


Unabhängiges Testing-Team:


Fehlermeldung & Kommunikation:



Test Process

Testprozess

Testplanung & Steuerung:


Testanalyse & Design:


Testimplementierung & Ausführung:


Test Oracle (Erwartete vs. Tatsächliche Ergebnisse):


Testauswertung & Abschluss:



Modellbildung

Modellbildung

ist zentrale Aufgabe des Entwicklungsprojekts.

Ziel ist die Beschreibung der wesentlichen Eigenschaften des Zielsystems.

-->ggf. durch vereinfachte, abstrakte Repräsentation in Form eines Systemmodells.


Systemmodelle

entstehen sukzessive während des Entwicklungsprozesses.

werden schrittweise verfeinert und konkretisiert.

hauptsächlich während der Analyse und Design Aktivitäten

verschiedene Abstraktionsstufen möglich: Analysemodell, Designmodell, Architekturmodell etc.


Aspekte der Modellbildung

Gegenstände der Modellierung

Anwendungskontext der Modellierung

Sichten der Modellierung

Modellierungskonzepte

Methodik der Modellbildung


Verhaltensmodellierung

Aspekte der Verhaltensmodellierung lassen sich grob drei verschiedenen Sichten zuordnen.

Externe Verhaltenssicht

beschreibt:

Die Anwendungssituationen, in denen das System zum Einsatz kommt.

Das extern sichtbare Verhalten des Systems in verschiedenen Anwendungssituationen

-->externe Szenarien.


Interne Verhaltenssicht

beschreibt:

die dynamische Interaktion, Kommunikation und Synchronisation der Objekte, durch die das externe Verhalten intern realisiert wird

-->interne Szenarien.


Objektsicht

beschreibt:

welche Verantwortlichkeiten ein bestimmtes Objekt erfüllt.

wie ein Objekt auf den Eintritt von bestimmten Ereignissen reagiert.

unter welchen Umständen ein Objekt seinen Zustand verändert.




UML

Die Unified Modeling Language (UML)

ist eine standardisierte, universelle, semi-formale Modellierungsnotation zur Visualisierung, Spezifikation, Entwicklung und Dokumentation von Softwaresystemen, die 1997 zum ersten Mal veröffentlich wurde.


ist keine Methodik sondern nur visuelle Darstellung

ist eine Modellierungsnotation mit graphischen unt textuellen Notationselementen

besitzt wohldefinierte Syntax und Semantik

dient der Modellierung von Softwaresystemen.

Notation, die Aspekte ,Sichten und Abstraktionsebenen eines Systemmodells beschreibt.

kann in allen Aktivitäten des Softwareentwicklungsprozesses eingesetzt werden.

bietet Notationselemente für statistische Systemstruktur, dynamisches Systemverhalten und Systemarchitektur.


ist keine Modellierungsmethode, sondern eine Modellierungsnotation.

unterstützt den Entwicklungsprozess, schreibt aber keinen bestimmten vor.

erzwingt keine bestimmte Programmiersprache.

erzwingt keine bestimmten Modellierungs-oder Entwicklungswerkzeuge

erzwingt keine bestimmten Vorgehensmodelle



Syntax legt formal fest, ob eine Modellbeschreibung korrekt im Sinne der UML-Sprachdefinition ist.

Semantik legt semi-formal fest, wie eine syntaktisch korrekte Modellbeschreibung zu verstehen ist.

• UML ist selbst in UML formuliert (UML-Metamodell).



Rollen

Rollen

beschreiben ,welche Funktion ein Objekt ein einer Verknüpfung innehat

zu jeder an einer Assoziation beteiligten Klasse kann eine Rolle definiert werden

Der Gebrauch von Rollen ist optional

Meist ergibt sich die Rolle bereits aus dem Namen der Klasse


Rollen sind verpflichtet ,wenn zwischen zwei Klassen mehr als eine Assoziation besteht.

+------------+     +------------+

| Mitarbeiter|     | Abteilung |

+------------+     +------------+

|      |<>------->| Leiter   |

|      |--------->| Mitglied  |

+------------+     +------------+


Oder wenn eine Assoziation Objekte der gleichen Klasse miteinander verknüpft



+---------+

| Person |

+---------+

|     |<----+

|     |   |

+---------+   |

 ^       |

 | "Vorgesetzter"

 |

"Untergebener"


Objekte

Objekte


einKunde : Kunde

Anrede=Herr

Vorname:"Hans"

Adresse="Musterstr. 1 97212 Deutschland"



Attribute und Operationen

Spezifikation von Attributen

Attributname

Attributtyp(opt.):String,boolean,Date

Typkonformer Initialwert(opt.)



Kunde

-----------------

Anrede: Anredetyp

Vorname: String[30]

Nachname:String[30]

Adresse:String[200]

Alter:Integer



Darstellung von Operationen

Operationsname

Signatur(opt.)

zusätzliche Eigenschaften(opt.)


Sichtbarkeit von Operationen

• + public • - private • # protected • ~package



Beispiel

[+|-|#] Name(Parameterliste) [: Rückgabetyp]

+ addiere(a: int, b: int): int

- speichereDaten(daten: String)

[Visibility]+ (public), - (private), # (protected)

Op_Name → Name der Methode

Parameter_List → Liste der Parameter

: Return_Type → Rückgabewert (optional)

["in"|"out"|"inout"] → Definiert die Datenflussrichtung (meist in als Standard)

Default_Value → Standardwert für Parameter (optional)



Klassen

Kunde

-------------

Anrede Titel

Vorname

Nachname

Straße

PLZ

-------------

erfassen

aktualisieren

löschen

drucken


(Darstellung einer Klasse)


Assoziationen


Kunde hat ein Konto

Konto-----------------Kunde


Ein Mitarbeiter arbeitet in einer Firma

Firma------------------- beschäftigt>-----------Mitarbeiter

-------- <arbeitet für ----------------

name name

anschrift anschrift



Kardinalitäten und Multiplizitäten

1:1 1

1:n(n>=1) 1..*

1:n(n>=0) 0..*/*

optional 0..1

feste c (3/5/10)

Intervall 5..15

Ordnungs- {ordered}

beziehung


Aggregationsbeziehung: Eine "hat-ein"-Beziehung, bei der ein Teil unabhängig vom Ganzen existieren kann. Beispiel: Eine Universität besteht aus Fakultäten, aber eine Fakultät kann auch ohne eine bestimmte Universität existieren.

Eine hohle Raute an der Seite des Ganzen.




Kompositionsbeziehung: Eine stärkere "besteht-aus"-Beziehung, bei der die Teile ohne das Ganze nicht existieren können. Beispiel: Ein Haus besteht aus Räumen, die ohne das Haus nicht sinnvoll existieren.

Eine ausgefüllte Raute an der Seite des Ganzen.






Diagrammtypen

UML

Strukturdiagramme

Objektdiagramm

Klassendiagramm

Komponentendiagramm

Verteilungsdiagramm

Paketdiagramm

Kompositionsstrukturdiagramm

Profildiagramm


Verhaltensdiagramme

Use Case Diagramm

Aktivitätsdiagramm

Zustandsdiagramm

Interaktionsübersichtsdiagramm

Sequenzdiagramm

Kommunikationsdiagramm

Timingdiagramm


Softwareentwicklungsprozess


Analyse

Use Case Diagramm

Objektdiagramm


Analyse&Design

Klassendiagramm

Aktivitätsdiagramm

Zustandsdiagramm

Interaktionsdiagramme

Paketdiagramm

Kompositionsstrukturdiagramm


Design

Komponentendiagramm

Verteilungsdiagramm

Sequenzdiagramme

UML-Notation für Interaktionen

Jede Interaktion wird durch ein Rechteck spezifiziert und enthält:

• Das Schlüsselwort sd gefolgt vom Namen

• Eine Liste von Ein-/Ausgabeparametern (optional)

• Eine Liste lokaler Attribute (optional)

• Vor- und Nachbedingungen (optional)

• Ein Interaktionsdiagramm 



Sequenzdiagramme

Primäre Zielsetzung: Beschreibung des zeitlischen Ablaufs der Interaktion.

Speziell geeignet zur Darstellung von nichttrivialen Kontrollstrukturen.


Interaktionspartner

Dargestellt durch Rechteck mit Beschriftung (Name).

Eine gestrichelte Lebenslinie, die nach unten berläuft.

Typische Interaktionspartner sind Objekte oder Aktoren.


Virtuelle Zeitachse

Bestimmt die zeitliche Ordnung der dargestellten Ereignisse

Verläuft parallel zu den Lebenslinien der Interaktionspartner von oben dach unten.

Wird nicht explizit dargestellt.


Aktivitätsbalken

Darstellung als Rechteck, das die Lebenslinie überlappt.

Symbolisiert Aktivität des Interaktionspartners.

Oder das Warten auf eine Antwort.


Nachrichten

Jede Kommunikation zwischen zwei Interaktionspartnern wird durch eine Nachricht modelliert.

Eine Nachricht wird durch einen Pfeil zwischen den Lebenslinien repräsentiert.

Eine Nachricht besitzt einen Namen.

Rückgabewert und Parameter sind optional: typ:=name(ar1,..,argn)


Synchroner Nachrichtemechanismus

Bei synchronen Nachrichten wartet der Sender, bis er Antwort erhält.


Synchroner Selbstaufruf

Selbstaufrufe eines Objektes werden durch gestapelte Aktivitätsbalken dargestellt.


Asynchroner Nachrichtenmechanismus

Sender und Empfänger arbeiten unabhängig voneinander

Der Sender wartet nicht auf eine Antwort

Der Empfänger kann die Nachricht parallel zu Aktivitäten des Senders bearbeiten


Objekterzeugung&-zerstörung

Die Erzeugung eines Objekts wird durch eine Konstruktor-Nachricht dargestellt.

Die Vernichtung wird durch das vorzeitige Ende der Lebenslinie angezeigt (Kreuz).



Zeitbedingungen

zur Formulierung von Zeiteigenschaften besteht die Möglichkeit

• einen Zeitpunkt mit einer Zeitmarke (kurze horizontale Linie) zu kennzeichnen,

• die aktuelle Systemzeit an einer Zeitmarke mit now abzufragen,

• ein Zeitintervall zwischen zwei Zeitpunkten zu kennzeichnen,

• und die Dauer eines Zeitintervalls mit duration abzufragen. 

Kombinierte Fragmente

Motivation


Kombinierte Fragmente bieten eine übersichtliche Notation für Fallunterscheidungen, Schleifen und Nebenläufigkeit.


Ein kombiniertes Fragment besteht aus:

• Einem rechteckigen Fragmentrahmen

• Einen Interaktionsoperator

• Interaktionsoperanden, die durch gestrichelte Linien separiert sind

• Interaktionsbedingungen


alt-Operator

• Beim alt-Operator stehen n Ablaufalternativen zur Auswahl (n > 1)

• Jede Ablaufalternative wird durch einen Interaktionsoperanden spezifiziert

• Anhand der Interaktionsbedingungen genau eine der Alternativen ausgewählt


opt-Operator

• Dient zur Modellierung typischer if/then Strukturen ohne else.

• Hat nur einen Interaktionsoperanden.

• Ist die Bedingungen erfüllt, wird er ausgeführt,

• ansonsten übersprungen.


break-Operator

• Dient zur Modellierung von Fehlersituationen oder Ausnahmen.

• Hat nur einen Interaktionsoperanden.

• Wird der Interaktionsoperand ausgeführt, wird die umgebende Interaktion vollständig beendet. 


loop-Operator

• Dient zur Modellierung von Schleifen.

• Hat nur einen Interaktionsoperanden → Schleifenrumpf


par-Operator

• Der par-Operator hat n Operanden (n > 1), die nebenläufig abgewickelt werden können.

• Ereignisse können quasi parallel stattfinden

• Die Ereignisse innerhalb eines Operanden bleiben allerdings sequenziell.


critical-Operator

• der critical-Operator hat genau einen Interaktionsoperanden, der atomar abgewickelt wird 

Use Case Diagramme

Ein Use-Case-Diagramm zeigt zusammengehörige Use Cases, Akteure und deren Beziehungen. Ziel ist die Modellierung des externen Systemverhaltens, die Abgrenzung des Systems sowie die Definition seines Einsatzzwecks und erwarteten Verhaltens. Es wird während der Anforderungsdefinition genutzt.


Notationselemente


Knoten

Das System -> charakterisiert die Abgrenzung der zu erstellenden Anwendung gegenüber der Außenwelt.

Akteure -> repräsentieren Personen oder andere externe Systeme, die mit dem Zielsystem interagieren.

Use Cases-> beschreiben Funktionalitäten des Systems.


Kanten

Assoziationen zwischen Use Cases und Akteuren ≡ Kommunikationsverbindungen

Abhängigkeitensbeziehungen zwischen Use Cases (include oder extend)

Generalisierungsbeziehungen zwischen Use Cases

Generalisierungsbeziehungen zwischen Akteuren


Akteure

definiert die Rolle eines Objektes außerhalb des Zielsystems, das mit dem Zielsystem interagiert.

Anwender des Systems in ihren unterschiedlichen Rollen.

Organisationseinheiten oder Abteilungen, die das System kollektiv nutzen.

Externe Peripheriegeräte, wie Sensoren, Geräte Drucker.

Externe Systeme, die über Datenschnittstellen mit dem Zielsystem kommunizieren.


Akteure und Use Cases

werden im UCD durch eine Kommunikationsverbindung miteinander verknüpft, wenn:

Der Akteur den Use Case initiiert.

Der Akteur bei Durchführung des Use Cases anderweitig mit dem System interagiert.

Der Akteur infolge der Durchführung des Use Cases direkt oder indirekt durch das System mit Informationen versorgt wird.


Kommunikationsverbindungen sind Spezielfälle von Assoziationen und ein Use Case kann mit mehreren Akteuren verknüpft sein.





Checkliste für die Beschreibung der Use Cases

1. Kurzbeschreibung

2. Vorbedingungen

3. Nachbedingungen

4. Akteure

5. Trigger

6. Beschreibung des Default-Szenarios

7. Fehlersituationen / Alternativen / Varianten


• Kurzbeschreibung

Ein Termin kann für einen oder mehrere Teilnehmer von dazu berechtigten Benutzern erfasst werden. Pro Termin können bis zu drei Notifikationen spezifiziert und Teilnehmer ihnen zugeordnet werden. Alle Teilnehmer müssen über diesen neuen Termin verständigt werden. Neue Termine müssen sofort in allen geöffneten, die jeweiligen Teilnehmer betreffenden Kalendern nachgezogen werden.

• Vorbedingungen Benutzer ist dem System bekannt

• Nachbedingungen Neuer Termin ist erfasst. Alle Teilnehmer sind verständigt und gegebenenfalls informiert. Alle Sichten sind aktualisiert

• Akteure Benutzer, Email-System, Fax-System

• Trigger keine

• Beschreibung des Default-Szenarios

1. Benutzer meldet sich an

2. Eckdaten des neuen Termins werden erfasst

3. Alle Teilnehmer werden dem Termin zugeordnet

4. Benutzer ist berechtigt für alle Teilnehmer den Termin zu erfassen

5. Termin führt bei keinem zu Kollisionen

6. Alle Teilnehmer werden benachrichtigt

7. Alle geöffneten Kalender werden aktualisiert

• Fehlersituationen / Alternativen / Varianten Benutzer hat für keinen der Teilnehmer die Berechtigung, den Termin im Kalender des Teilnehmers einzutragen.



Beziehungen

Einschlußabhängigkeit

Mehrere unterschiedliche Use Cases können identische Sequenzen enthalten

Der gemeinsame Anteil kann als eigener Use Case separiert werden

Der separierte Use Case wird durch eine <<include>>-Beziehung einbezogen (Pfeilspitze zeigt zum separaten Use Case)



Geld abheben --------------<<include>>-------------->Kunde identifizieren


Erweiterungsabhängigkeit

Varianten, Fehler- und Ausnahmesituationen eines Use Cases können als eigenständige Use Cases separat modelliert werden

Der Use Case ,der die Variante bzw. die Ausnahmesituation beschreibt, wird durch eine <<extend>>-Beziehung einbezogen (Pfeilspitze zeigt zum Standard-Use-Case)

Der Standard-Use-Case enthält einen Extension Point


Meldung über Kreditlinienüberschreitung----<<extends>>---->Geld abheben//extensionpoints(Kredilimit überschreiten)


Generalisierung/Spezialisierung

Ein Use Case kann durch andere Use Cases spezialisiert werden,die die Spezifikation seines externen Verhaltens vollständig übernehmen und weitere,spezielle Eigenschaften hinzufügen.

Der speziellere Use Case kann den allgemeineren Use Case in seinem Kontext ersetzen.

Ein Akteur kann ebenfalls durch einen anderen Akteur spezialisiert werden.


Passwort prüfen-------------->Benutzeridentität prüfen




Aktivitäten

• Anforderungsdefinition: Welche Anforderungen will man mit dem Zielsystem erfüllen?

• Analyse: Wie kann das Zielsystem mit seinen Anforderungen modelliert werden?

• Design: Wie kann das Modell inklusive technischer Rahmenbedingungen umgesetzt werden?

• Implementierung Wie können die Komponenten des Entwurfs umgesetzt werden?

• Integration Wie können die lauffähigen Komponenten zu einem Gesamtsystem zusammengesetzt werden?

• Stabilisierung Wie kann überprüft werden, ob das Gesamtsystem die ursprünglichen Anforderungen erfüllt? 

Software

Software (Strukturierte Sichtweise)

ist eine Sammlung von Prozeduren, die eine vorgegebene Funktionalität zur Verfügung stellen.

Die Funktionalität steht im Vordergrund.

Von Prozeduren werden Daten ver- und bearbeitet.

Vorhandene Daten werden von einer Vielzahl von Programmen genutzt.

Struktur der Daten ist den Prozeduren bekannt.


Nachteile der strukturierten Sichtweise

Daten und Programmen sind miteinander verflochten.

Daten werden von Umständen von mehreren Programmen genutzt.

Änderungen von Daten benötigen evtl. Änderungen von Programmen.

Daten sind ungeschützt.

Wiederverwendbarkeit von Programmen ist nur bedingt gegeben.


Objektorientierte Sichtweise


Software wird als Sammlung realer Objekte betrachtet, die Daten und zugehörige Methoden kapseln.


Eine Software besteht aus einer Menge von Objekten, die einen Bezug zur Realität haben.

Ein Objekt besitzt Daten und Methoden, durch die Daten manipuliert werden können.

Auf die Daten eines Objektes kann nur über dessen Methoden zugegriffen werden.

Objekte integrieren durch das Versenden von Nachrichten.

Das Verhalten eines Objekts wird durch seine Methoden beschrieben.


Sie wollen ein Schachspiel programmieren. Welche Objekte wären dafür sinnvoll? 

Schachbrett: 2D-Array (String[][]), das die Positionen der Figuren speichert.

Figur: Klasse mit Typ (Bauer, Dame etc.) und Farbe (String).

Spieler: Enthält Name und Farbe.

Spiel: Verwaltet den Spielablauf, z. B. Zugvalidierung und Status.