1987) • Spezifiziert eine Sequenz von Aktionen, einschließlich möglicher Varianten, die das System in Interaktion mit Akteuren ausführt • Beschreibt das extern wahrnehmbare Verhalten, ohne auf die interne Struktur oder Details der Realisierung einzugehen (Balzert, Heide: Lehrbuch der Objektmodellierung. Heidelberg, 2005.)
Benutzungsoberfläche einer Anwendung – Präsentation der Daten, Interaktion mit Benutzer / Benutzerin Fachkonzeptschicht: Modelliert den funktionalen Kern der Anwendung; Zugriff auf Datenhaltungsschicht Datenhaltungsschicht: Form der Datenspeicherung, z.B. relationale DB Schichten-Architektur
keine Spielerin das Spiel gewonnen hat, VERFAHRE WIE FOLGEND: WENN ein leeres Spielfeld angeklickt wurde: lege die aktuelle SpielerID im zweidimensionalen Array „gameGrid“ ab und stelle das Spielersymbol dar IM ANDEREN FALLE: tue nichts Prüfe die Gewinnbedingung
Spiel gewonnen, WENN: der Spieler drei seiner Symbole in (unmittelbarer) horizontaler Reihenfolge abgelegt hat ODER der Spieler drei Symbole in diagonaler Reihenfolge abgelegt hat
ist als der Wert von variableEins. Wenn ja, soll eine entsprechende Nachricht ausgegeben werden: int variableEins = 5; int variableZwei = 8; if(variableZwei > variableEins) { cout << “Variable Zwei ist größer als Variable Eins.“; } Auswahlanweisungen: if
Spiel gewonnen, WENN (IF): der Spieler drei seiner Symbole in (unmittelbarer) horizontaler Reihenfolge abgelegt hat ODER (II) der Spieler drei Symbole in diagonaler Reihenfolge abgelegt hat
angeklickt? Gewinnbedingung Prüfen I: Hat ein Spieler / eine Spielerin drei ihrer Symbole in (unmittelbarer) horizontaler Reihenfolge abgelegt? Prüfen II: Finden sich drei Symbole eines Spielers in diagonaler Folge?
keine Spielerin das Spiel gewonnen hat, VERFAHRE WIE FOLGEND: WENN ein leeres Spielfeld angeklickt wurde: lege die aktuelle SpielerID im zweidimensionalen Array „gameGrid“ ab und stelle das Spielersymbol dar IM ANDEREN FALLE: tue nichts Prüfe die Gewinnbedingung
gewonnen hat, VERFAHRE WIE FOLGEND: WENN ein leeres Spielfeld angeklickt wurde: lege die aktuelle SpielerID im zweidimensionalen Array „gameGrid“ ab und stelle das Spielersymbol dar IM ANDEREN FALLE: tue nichts Prüfe die Gewinnbedingung
Reagiert mit einem definierten Verhalten auf Anforderungen / seine Umgebung Besitzt eine Identität, die es von anderen Objekten unterscheidet. Kann mit anderen Objekten verbunden sein: Objektbeziehungen Objekt
Attribute: unveränderliche Merkmale des Objekts; die Attributwerte können Änderungen unterliegen Verhalten eines Objekts wird durch eine Menge von Operationen beschrieben; Änderung oder Abfrage des Zustandes ausschließlich durch Operationen Objektorientierte Programmierung Objekt = Daten + Methoden / Operationen
können dieselbe Identität besitzen Besitzen zwei Objekte dieselben Attributwerte, so sind sie gleich Beispiel nach Balzert: Michael und Susi haben beide ein Kind (Daniel) Gleichheit. Michael und Janine sind Eltern desselben Kindes (Daniel) Identität. Objekt Abb.: Balzert, Heide: Lehrbuch der Objektmodellierung. Heidelberg, 2005.
zur gleichen Klasse. Abstrakt vs. konkret: Jedes Objekt ist Exemplar bzw. Instanz einer Klasse Klasse: Definiert für eine Sammlung von Objekten deren Struktur (Attribute) Verhalten (Operationen) Beziehungen Verfügt über Mechanismen, um neue Objekte zu erzeugen (Object Factory) Klassen
{ klassenVariable=23; } ~EineKlasse(); // Destruktor int gebeVariablezurueck(void) { return klassenVariable; } private: // privater Teil int klassenVariable; // private Variable }; Klassen in C++ Kapselung / Information Hiding
Konstanten, Funktionen) von anderen Klassen erben Beispiel C++: class Person { string name; //... }; class Mitarbeiter : Person { long sozialversicherungsNr; //... }; Vererbung
Methoden, um auf die Klassenelemente zuzugreifen und bildet den Spezialfall „Mitarbeiter“ ab, indem sie die Variable sozialversicherungsNr verwendet: class Person { string name; //... }; class Mitarbeiter : Person { long sozialversicherungsNr; //... }; Vererbung
einer spezialisierten Klasse. Die spezialisierte Klasse ist vollständig konsistent mit der Basisklasse, enthält aber zusätzliche Informationen (Attribute, Operationen). Die allgemeine Klasse wird auch als Oberklasse (engl. super class), die spezialisierte Klasse als Unterklasse (engl. sub class) bezeichnet. Das Konzept der Vererbung ist nicht nur dazu gedacht, um gemeinsame Eigenschaften und Verhaltensweisen zusammenzufassen, sondern sie muss immer auch eine Generalisierung bzw. Spezialisierung darstellen, d.h. jedes Objekt der Unterklasse "ist ein" Objekt der Oberklasse. Vererbung
dahinter stehende Konzept. Aufgabe 2 Worin unterscheiden sich die while- und die do while-Schleife? Aufgabe 3 Differenzieren Sie die Begriffe "Klasse" und "Instanz" im Kontext der objektorientierten Programmierung. Aufgabe 4 Wofür steht die Abkürzung "MVC" (im besprochenen Kontext)? Beschreiben Sie kurz, was sich hinter dem Begriff verbirgt. Aufgabe 5 Lesen Sie die Seiten 283 bis 285 in Balzert, Heide: Lehrbuch der Objektmodellierung (http://de.scribd.com/doc/32365794/Balzert-Heide-Lehrbuch-Der-Objektmodellierung) und erläutern Sie die Begriffe "Klassenbibliothek" und "Framework". Aufgabe 6 Beschreiben Sie kurz den Aufbau und die Bestandteile der for-Schleife. Welche Ausgabe generiert die folgende for-Schleife? Hausaufgaben