Benutzer-Werkzeuge

Webseiten-Werkzeuge


anlage:modellierungstechniken:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
anlage:modellierungstechniken:start [2023/09/08 07:08] – angelegt Martin Pabstanlage:modellierungstechniken:start [2023/09/08 07:15] (aktuell) Martin Pabst
Zeile 26: Zeile 26:
 === Wiederholung === === Wiederholung ===
 Wiederholungen werde durch ein "L" dargestellt, das den zu wiederholenden Block umschließt: Wiederholungen werde durch ein "L" dargestellt, das den zu wiederholenden Block umschließt:
- +{{ :anlage:modellierungstechniken:pasted:20230908-090854.png }}
-{{ :softwaretechnik:modellierung:pasted:20220102-120250.png }}+
 Eine For-Wiederholung kann so dargestellt werden: Eine For-Wiederholung kann so dargestellt werden:
-{{ :softwaretechnik:modellierung:pasted:20220102-120511.png }}+{{ :anlage:modellierungstechniken:pasted:20230908-090909.png }}
 Die Diagramme habe ich mit dem [[https://www.structorizer.com/|Online-Tool Structorizer.com von Janis Huser]] erstellt. Die Diagramme habe ich mit dem [[https://www.structorizer.com/|Online-Tool Structorizer.com von Janis Huser]] erstellt.
  
Zeile 35: Zeile 34:
 Im Klassendiagramm werden Klassen und ihre Beziehungen zueinander dargestellt. Im Klassendiagramm werden Klassen und ihre Beziehungen zueinander dargestellt.
 === Klasse === === Klasse ===
-{{ :softwaretechnik:modellierung:pasted:20220102-125426.png }}+{{ :anlage:modellierungstechniken:pasted:20230908-090931.png }}
 Als Datentypen können die Datentypen von Java verwendet werden. Die **Zugriffsmodifikatoren** bedeuten folgendes: Als Datentypen können die Datentypen von Java verwendet werden. Die **Zugriffsmodifikatoren** bedeuten folgendes:
   * + (public): Das Attribut/die Methode ist überall sichtbar.   * + (public): Das Attribut/die Methode ist überall sichtbar.
Zeile 44: Zeile 43:
  
 === Abstrakte Klasse === === Abstrakte Klasse ===
-{{ :softwaretechnik:modellierung:pasted:20220102-125742.png }}+{{ :anlage:modellierungstechniken:pasted:20230908-090955.png }}
  
 === Interface === === Interface ===
-{{ :softwaretechnik:modellierung:pasted:20220102-125814.png }}+{{ :anlage:modellierungstechniken:pasted:20230908-091007.png }}
  
 === Spezialisierung/Generalisierung === === Spezialisierung/Generalisierung ===
-{{ :softwaretechnik:modellierung:pasted:20220102-130229.png }}+{{ :anlage:modellierungstechniken:pasted:20230908-091024.png }}
 Dies steht für Dies steht für
 <code java> <code java>
Zeile 58: Zeile 57:
 </code> </code>
 Für abstrakte Klassen genauso: Für abstrakte Klassen genauso:
-{{ :softwaretechnik:modellierung:pasted:20220102-130417.png }}+{{ :anlage:modellierungstechniken:pasted:20230908-091042.png }}
  
 === Implementierung eines Interface === === Implementierung eines Interface ===
-{{ :softwaretechnik:modellierung:pasted:20220102-130527.png }}+{{ :anlage:modellierungstechniken:pasted:20230908-091100.png }}
  
 === Aggregation === === Aggregation ===
-{{ :softwaretechnik:modellierung:pasted:20220102-130608.png }}+{{ :anlage:modellierungstechniken:pasted:20230908-091112.png }}
 Objekte der Klasse „Übergeordnet“ können Objekte der Klasse „Enthalten“ enthalten (als Referenzattribute). Die Objekte der Klasse Enthalten können aber auch dann weiter existieren, wenn es das übergeordnete Objekt nicht mehr gibt. Objekte der Klasse „Übergeordnet“ können Objekte der Klasse „Enthalten“ enthalten (als Referenzattribute). Die Objekte der Klasse Enthalten können aber auch dann weiter existieren, wenn es das übergeordnete Objekt nicht mehr gibt.
 Es können auch Kardinalitäten angegeben werden: Es können auch Kardinalitäten angegeben werden:
-{{ :softwaretechnik:modellierung:pasted:20220102-130639.png }}+{{ :anlage:modellierungstechniken:pasted:20230908-091126.png }}
 Bedeutung: Ein Objekt der Klasse „Übergeordnet“ enthält immer genau ein Objekt der Klasse „Enthalten“. Ein Objekt der Klasse „Enthalten“ kann in beliebig vielen (n), aber auch in keinem (0) Objekt der Klasse „Übergeordnet“ enthalten sein. Bedeutung: Ein Objekt der Klasse „Übergeordnet“ enthält immer genau ein Objekt der Klasse „Enthalten“. Ein Objekt der Klasse „Enthalten“ kann in beliebig vielen (n), aber auch in keinem (0) Objekt der Klasse „Übergeordnet“ enthalten sein.
 Bei Angabe der Aggregation muss kein entsprechendes Attribut in der übergeordneten Klasse aufgeführt werden (Wenn in Abituraufgaben ein „erweitertes Klassendiagramm“ gefordert ist, sollten diese jedoch als Attribut immer vorhanden sein). Zur Angabe des Attributnamens kann die Aggregation mit dem Namen beschriftet werden: Bei Angabe der Aggregation muss kein entsprechendes Attribut in der übergeordneten Klasse aufgeführt werden (Wenn in Abituraufgaben ein „erweitertes Klassendiagramm“ gefordert ist, sollten diese jedoch als Attribut immer vorhanden sein). Zur Angabe des Attributnamens kann die Aggregation mit dem Namen beschriftet werden:
-{{ :softwaretechnik:modellierung:pasted:20220102-130721.png }} +{{ :anlage:modellierungstechniken:pasted:20230908-091145.png }}
 === Komposition === === Komposition ===
-{{ :softwaretechnik:modellierung:pasted:20220102-130823.png }}+{{ :anlage:modellierungstechniken:pasted:20230908-091159.png }}
 Unterschied zur Aggregation: Wird das Objekt aus der Klasse „Übergeordnet“ zerstört, dann wird auch das Objekt aus der Klasse „Enthalten“ zerstört. Ein Objekt aus „Enthalten“ kann daher auch nur in einem einzigen übergeordneten Objekt enthalten sein. Die weiteren Angaben bei der Aggregation treffen auch auf die Komposition zu. Unterschied zur Aggregation: Wird das Objekt aus der Klasse „Übergeordnet“ zerstört, dann wird auch das Objekt aus der Klasse „Enthalten“ zerstört. Ein Objekt aus „Enthalten“ kann daher auch nur in einem einzigen übergeordneten Objekt enthalten sein. Die weiteren Angaben bei der Aggregation treffen auch auf die Komposition zu.
  
 === Allgemeine Assoziation === === Allgemeine Assoziation ===
-{{ :softwaretechnik:modellierung:pasted:20220102-130928.png }}+{{ :anlage:modellierungstechniken:pasted:20230908-091213.png }}
 Der Pfeil gibt die Richtung der in der Beschreibung angegebenen Beziehung an (z.B. zur Klarstellung, dass der Lehrer den Schüler unterrichtet und nicht der Schüler den Lehrer). Der Pfeil gibt die Richtung der in der Beschreibung angegebenen Beziehung an (z.B. zur Klarstellung, dass der Lehrer den Schüler unterrichtet und nicht der Schüler den Lehrer).
 Für die Kardinalitäten siehe Aggregation. Für die Kardinalitäten siehe Aggregation.
 Diese Art der Beziehung wird in der 9. Klasse bei der Modellierung von Datenbanken verwendet (die Klassen entsprechen den Entitätstypen). In Abituraufgaben können sie auch im Sinne von Aggregation/Komposition eingesetzt werden: Diese Art der Beziehung wird in der 9. Klasse bei der Modellierung von Datenbanken verwendet (die Klassen entsprechen den Entitätstypen). In Abituraufgaben können sie auch im Sinne von Aggregation/Komposition eingesetzt werden:
-{{ :softwaretechnik:modellierung:pasted:20220102-131001.png }} +{{ :anlage:modellierungstechniken:pasted:20230908-091231.png }}
 ===== Objektdiagramm ===== ===== Objektdiagramm =====
 Ein Objektdiagramm stellt einen "Schnappschuss" (d.h. einen Zustand) eines/mehrerer Objekte zu einem bestimmten Zeitpunkt dar. Das Objektdiagramm enthält keine Methoden (diese sind ja bereits im Klassendiagramm der zugehörigen Klasse vorhanden), keine Datentypen und keine Zugriffsmodifikatoren. Es besteht daher nur aus zwei Abschnitten: Der erste Abschnitt enthält den Objektnamen, gefolgt von einem Doppelpunkt und dem Klassennamen und ist vollständig unterstrichen. Im zweiten Abschnitt kommen die Attributnamen und die Attributwerte, durch ein „=“-Zeichen getrennt. Ein Objektdiagramm stellt einen "Schnappschuss" (d.h. einen Zustand) eines/mehrerer Objekte zu einem bestimmten Zeitpunkt dar. Das Objektdiagramm enthält keine Methoden (diese sind ja bereits im Klassendiagramm der zugehörigen Klasse vorhanden), keine Datentypen und keine Zugriffsmodifikatoren. Es besteht daher nur aus zwei Abschnitten: Der erste Abschnitt enthält den Objektnamen, gefolgt von einem Doppelpunkt und dem Klassennamen und ist vollständig unterstrichen. Im zweiten Abschnitt kommen die Attributnamen und die Attributwerte, durch ein „=“-Zeichen getrennt.
Zeile 88: Zeile 85:
 === Beispiel: einfach verkettete Liste === === Beispiel: einfach verkettete Liste ===
 **Klassendiagramm:** **Klassendiagramm:**
-{{ :softwaretechnik:modellierung:klassendiagramm.png?400 |}}+{{ :anlage:modellierungstechniken:pasted:20230908-091249.png }}
  
 **Beispiel für ein dazugehöriges Objektdiagramm:** **Beispiel für ein dazugehöriges Objektdiagramm:**
-{{ :softwaretechnik:modellierung:objektdiagramm_1.png?600 |}}+{{ :anlage:modellierungstechniken:pasted:20230908-091426.png }}
 Die Farben sind nur zur Verdeutlichung da. Im Abitur sind sie nicht gefordert. \\ \\  Die Farben sind nur zur Verdeutlichung da. Im Abitur sind sie nicht gefordert. \\ \\ 
 === Variante === === Variante ===
 Oft werden die Beziehungen der Objekte zueinander durch Verbindungslinien dargestellt, an die der Name des entsprechenden Referenzattributs geschrieben wird, z.B. Oft werden die Beziehungen der Objekte zueinander durch Verbindungslinien dargestellt, an die der Name des entsprechenden Referenzattributs geschrieben wird, z.B.
-{{ :softwaretechnik:modellierung:objektdiagramm_3.png?600 |}} +{{ :anlage:modellierungstechniken:pasted:20230908-091445.png }}
- +
-===== Sequenzdiagramm ===== +
-Bei Beteiligung mehrerer Objekte, die untereinander kommunizieren (über Methodenaufrufe und Rückgabewerte) geht die Übersicht schnell verloren. Um dieses Verhalten übersichtlich darzustellen gibt es in der UML das Sequenzdiagramm. Hier ein Beispiel, wobei in Blau die Fachwörter für die einzelnen Bestandteile angegeben sind. +
- +
-{{ :softwaretechnik:modellierung:pasted:20220102-143936.png?600 }} +
- +
-Der Zeitverlauf im Sequenzdiagramm ist von oben nach unten gerichtet, von links nach rechts sind die einzelnen Objekte angeordnet. Objekte, die zum Startzeitpunkt schon existieren stehen oben (zum Startzeitpunkt), andere Objekte werden erst zum Zeitpunkt der Instanziierung mit eingereiht. +
- +
-<WRAP center round tip 60%> +
-Das Ende der Lebenszeit eines Objekts kann man dann markieren, wenn es keine Referenz mehr auf das Objekt gibt. +
-</WRAP>+
  
 ===== Zustandsdiagramm ===== ===== Zustandsdiagramm =====
 Ein Zustandsdiagramm („state machine“) modelliert ein System anhand der verschiedenen Zustände, die es annehmen kann. Zwei Zustände sind dann unterscheidbar, wenn sich mindestens ein Attributwert der beteiligten Objekte ändert. Zustände werden in Rechtecken mit abgerundeten Ecken dargestellt, Zustandsübergänge mit Pfeilen. An den Pfeilen steht ein Auslöser für den Zustandsübergang (meist ein Methodenaufruf), zusätzlich ggf. noch eine Aktion, die dann ausgeführt wird und/oder eine Bedingung für den Zustandsübergang (in eckigen Klammern). Der Anfangszustand wird mit einem dicken schwarzen Punkt und einem Pfeil markiert. Ein Zustandsdiagramm („state machine“) modelliert ein System anhand der verschiedenen Zustände, die es annehmen kann. Zwei Zustände sind dann unterscheidbar, wenn sich mindestens ein Attributwert der beteiligten Objekte ändert. Zustände werden in Rechtecken mit abgerundeten Ecken dargestellt, Zustandsübergänge mit Pfeilen. An den Pfeilen steht ein Auslöser für den Zustandsübergang (meist ein Methodenaufruf), zusätzlich ggf. noch eine Aktion, die dann ausgeführt wird und/oder eine Bedingung für den Zustandsübergang (in eckigen Klammern). Der Anfangszustand wird mit einem dicken schwarzen Punkt und einem Pfeil markiert.
 Im folgenden Beispiel ist eine Schranke standardmäßig geschlossen. Steckt jemand ein Ticket ein (Auslöser), so wird (falls das Ticket gültig ist - Bedingung) die Schranke geöffnet (Aktion) und ist dann im Zustand „offen“. Fährt man bei offener Schranke ein (Auslöser), so geht die Schranke wieder in den Zustand „geschlossen“ über. Im folgenden Beispiel ist eine Schranke standardmäßig geschlossen. Steckt jemand ein Ticket ein (Auslöser), so wird (falls das Ticket gültig ist - Bedingung) die Schranke geöffnet (Aktion) und ist dann im Zustand „offen“. Fährt man bei offener Schranke ein (Auslöser), so geht die Schranke wieder in den Zustand „geschlossen“ über.
-{{ :softwaretechnik:modellierung:pasted:20220102-144252.png }} +{{ :anlage:modellierungstechniken:pasted:20230908-091514.png }}
  
anlage/modellierungstechniken/start.1694156907.txt.gz · Zuletzt geändert: 2023/09/08 07:08 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki