2. Mod - 2.2 Wozu OOAD? Flashcards
Welche Anforderungen soll Software erfüllen?
funktionalen Anforderungen
Nenne Bsp. für nicht-funktionale Anforderungen
Plattformen, Wartbarkeit, Zuverlässigkeit, Erweiterbarkeit, Skalierbarkeit, Wiederverwendbarkeit,…
Was ist sinnvoll bevor die erste Zeile Code geschrieben wird?
systematisch die Anforderungen an ein System zu analysieren und seinen Aufbau zu entwerfen
Nenne 2 (mögliche) Schritte zu guter Software
- Sei sicher das deine Software auch dass macht was der Kunde möchte
- Basic Objekt-Orientierungs Prinzipien für die Flexibilität apply
- Streben nach einem wartbaren, wieder verwendbaren Design
(Nur eine von mehreren möglichen Vorgehensweisen)
- wäre schlecht los zu programmieren und dann erst über Design der Software nachzudenken
- alle drei Schritte sollten sich auf Design und nicht auf Implementierung beziehen
Was könnte hilfreich bei der Überlegung des Designs sein?
manchmal hilfreich, sich beim Design schon Codefragmente in Zielprogrammiersprache zu überlegen, um Alternativen klarer zu sehen
Was sollte der erste Schritt bei der Erstellung einer Software sein?
Kunden befragen
Was sollte der zweite Schritt bei der Erstellung einer Software sein?
OO (objekt-orientierte) Prinzipien anwenden
Worauf sollte bei der Benennung der Objekte geachtet werden?
Objekte sollen das sein und tun was ihre Bezeichnung erwarten lässt
Worauf deuten Objekte hin, die häufig mir leeren Attributen verwendet werden?
dass eine Klasse mehreren Zwecken dient
- ein Konzept pro Klasse
Was erleichtert Kapselung?
spätere Veränderungen
Was sollte der dritte Schritt bei der Erstellung einer Software sein?
Wiederverwendbarkeit und Wartbarkeit im Auge behalten
Welche Frage sollte man sich stellen wenn man über Wiederverwendbarkeit nachdenkt?
Wie könnte man die Klassen so modellieren, dass bei zukünftigen neuen Attributen nur noch eine Klasse geändert werden muss?
Was ist “Delegation”?
Die Klasse die nicht zuständig ist, sollte die Aufgabe auf die zuständige Klasse abwälzen
Was bedeutet “lossely coupled”?
Im Ergebnis sind Klassen nicht mehr eng voneinander abhängig - man sagt dann, sie sind nur noch lose miteinander verbunden
Erklärung “Seperation of Concerns”
die Unterteilung eines Computerprogramms in verschiedene Abschnitte. Jeder Abschnitt befasst sich mit einem separaten Anliegen, einer Reihe von Informationen, die den Code eines Computerprogramms betreffen.