Objektorientierte Analyse Grundlagen
52 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Welches Ziel hat die OO-Analyse?

  • Modellierung von Verhaltenssequenzen
  • Erstellung von Objektdiagrammen
  • Identifikation von Anforderungen zu einem funktionalen Modell (correct)
  • Entwicklung von Strategie- und Prozessdiagrammen

Was beschreiben Objekte in der OO-Analyse?

  • Attribute mit konkreten Werten (correct)
  • Strukturen von Datenbanken
  • Eigene Methoden für die Interaktion
  • Verhaltenssequenzen von Software

Wie können Objektdiagramme eingesetzt werden?

  • Zur Modellierung von Datenbankstrukturen
  • Zur Erstellung von Verhaltensdiagrammen
  • Für Tests mit Randfällen und Spezialfällen (correct)
  • Zum Entwurf von Algorithmusstrukturen

Was beinhaltet die Modellierung von Szenarien?

<p>Modellierung von Verhaltenssequenzen mit Sequenzdiagrammen (A)</p> Signup and view all the answers

Was ist ein Vorteil der Verwendung von Sequenzdiagrammen?

<p>Sie bieten ein besseres Verständnis für Verhaltenssequenzen (D)</p> Signup and view all the answers

Was ist das Hauptziel der objektorientierten Analyse?

<p>Anforderungen in ein Modell der fachlichen Aufgabe umwandeln (C)</p> Signup and view all the answers

Welche Klassenarten sollten in der Analyse bevorzugt betrachtet werden?

<p>Datenklassen (D)</p> Signup and view all the answers

Was sollte bei der Erstellung von Klassendiagrammen beachtet werden?

<p>Reine Datenmodelle und deren Kombinationen betrachten (C)</p> Signup and view all the answers

Welche Struktur hilft bei der Überprüfung von Operationen in der objektorientierten Analyse?

<p>Zustandsdiagramme (C)</p> Signup and view all the answers

Was könnte ein sinnvoller Schritt bei der Architekturdefinition von Analyse-Datenklassen sein?

<p>Umbau der (Analyse-)Datenklassen (C)</p> Signup and view all the answers

In welcher Form sollten Assoziationen und Aggregationen gefunden werden?

<p>Durch Betrachtung der Anforderungen (A)</p> Signup and view all the answers

Was könnte ein Aspekt sein, den man bei der Identifizierung von Klassen vermeiden sollte?

<p>Technische Klassen (B)</p> Signup and view all the answers

Was ist ein wichtiges Element der objektorientierten Analyse?

<p>Das Finden von Szenarien (B)</p> Signup and view all the answers

Welche Beziehungstypen können für die Enumeration RelationType verwendet werden?

<p>FRIEND (A), FAMILY (C)</p> Signup and view all the answers

Wie viele Beziehungen können durch die Assoziation Relationship erstellt werden?

<p>mehrere (A)</p> Signup and view all the answers

Welche Funktion hat die Import-Anweisung in einem Klassendiagramm?

<p>Sie importiert externe Typen. (A)</p> Signup and view all the answers

Was beschreibt der Multiplikator [1..*] in einer Assoziation?

<p>Mindestens ein und beliebig viele Objekte, die verbunden werden müssen. (B)</p> Signup and view all the answers

Welche der folgenden Klassen kann nicht importiert werden?

<p>local.database.User (C)</p> Signup and view all the answers

Welches Attribut gehört nicht zur Klasse Relationship?

<p>String status (D)</p> Signup and view all the answers

Was gilt, wenn eine importierte Klasse als Obertyp verwendet wird?

<p>Es müssen bestimmte API-Funktionen bereitgestellt werden. (D)</p> Signup and view all the answers

Welche der folgenden Multiplikatoren beschreibt mehrere optional verbundene Objekte?

<p>[*] (C)</p> Signup and view all the answers

Welche Modelle sind erforderlich, um ein informationssystem zu generieren?

<p>GUI Modelle (B), Klassendiagramme (D)</p> Signup and view all the answers

Was ist eine optionale Komponente zur Validierung von Eingabedaten?

<p>OCL (B)</p> Signup and view all the answers

Was ermöglicht die Definition der Geschäftslogik in einem generierten System?

<p>Handgeschriebene Erweiterungen (B)</p> Signup and view all the answers

Wie viele Mitglieder sind bei einer Gruppe maximal erlaubt, laut Beispiel ‘Social Network’?

<ul> <li>(B)</li> </ul> Signup and view all the answers

Was ist eines der Ergebnisse der Generierung in einem modellgetriebenen Ansatz?

<p>Datenbankstruktur (A), Grafische Nutzeroberflächen (B)</p> Signup and view all the answers

Welche Art von Beziehungen kann in dem Beispiel ‘Social Network’ definiert werden?

<p>Kollege (A), Freund (B), Follower (C), Familie (D)</p> Signup and view all the answers

Was beschreibt die Attribute eines Profils in dem ‘Social Network’ Beispiel?

<p>/int numOfPosts (B)</p> Signup and view all the answers

Welches der folgenden Elemente ist nicht Teil des GUI Modells?

<p>Datenstruktur (B)</p> Signup and view all the answers

Welches Element gehört zur Kommunikationsinfrastruktur zwischen Frontend und Backend?

<p>InstantMessage (C)</p> Signup and view all the answers

Welche der folgenden Optionen beschreibt einen hookpoint in einem generierten Code?

<p>Benutzeranpassungen (B)</p> Signup and view all the answers

Welche der folgenden Eigenschaften ist kein Attribut eines ‘Post’ im Beispiel des ‘Social Networks’?

<p>String profileName (A)</p> Signup and view all the answers

Welche Modellierungssprache wird zur Beschreibung von Workflows verwendet?

<p>BPMN (D)</p> Signup and view all the answers

Was beschreibt das Attribut 'Date lastVisit' im Beispiel ‘Social Network’?

<p>Das letzte Besuchsdatum eines Nutzers (A)</p> Signup and view all the answers

Welche Funktion hat die Methode 'getAuctionIdent' in der Klasse 'Auction'?

<p>Sie gibt den Identifikator der Auktion zurück. (D)</p> Signup and view all the answers

Welche Beschreibung trifft auf get/set-Methoden zu?

<p>Sie ermöglichen den Zugriff auf private Attribute. (A)</p> Signup and view all the answers

Was ist eine häufige Anforderung an die Code-Synthese, die nicht in den Beispielen erwähnt wird?

<p>Plattformunabhängigkeit des Codes. (B)</p> Signup and view all the answers

Welcher Aspekt des Codes gewährleistet den Zugriffsschutz auf Attribute?

<p>Die Implementierung eines Security-Managers. (A)</p> Signup and view all the answers

Was beschreibt die Notwendigkeit einer qualitativen Assoziation im Zusammenhang mit den gezeigten Klassen?

<p>Die Verbindung zwischen Personen und deren Telefonnummern. (C)</p> Signup and view all the answers

Was ist ein möglicher Vorteil der Code-Generierung mit get/set-Methoden?

<p>Ermöglicht einen besseren Zugriff auf private Daten. (A)</p> Signup and view all the answers

Was ist eine mögliche Anforderung für die Serialisierbarkeit eines Objekts?

<p>Es muss einfach in Binaries konvertierbar sein. (D)</p> Signup and view all the answers

Welche Eigenschaft beschreibt die Synchronisierung in den Methoden der Klasse 'Auction'?

<p>Sie verhindert den gleichzeitigen Zugriff von mehreren Threads. (D)</p> Signup and view all the answers

Welches der folgenden Attribute würde die Klasse 'Auction' nicht implementieren?

<p>Die Gebotsdauer. (D)</p> Signup and view all the answers

Was ist eine wesentliche Anforderung an die Datenhaltung von Objekten laut den genannten Anforderungen?

<p>Die Objekte müssen in einer Datenbanktabelle gespeichert werden. (D)</p> Signup and view all the answers

Welches Element wird verwendet, um eine exemplarische Folge von Interaktionen darzustellen?

<p>Sequenzdiagramme (C)</p> Signup and view all the answers

Was charakterisiert die Kommunikationswege zwischen System und Anwender?

<p>Es gibt auch asynchrone Kommunikationswege. (A)</p> Signup and view all the answers

Was beschreiben Statecharts?

<p>Sie zeigen die Dynamik und Zustände eines Systems. (A)</p> Signup and view all the answers

Welche der folgenden Aussagen über Sequenzdiagramme ist korrekt?

<p>Sie können sowohl Normalfälle als auch Ausnahmefälle abbilden. (A)</p> Signup and view all the answers

Was ist eine Eigenschaft von Anforderungsanalyse?

<p>Sie beeinflusst den Entwurf und die Implementierung des Systems. (C)</p> Signup and view all the answers

Was ist ein Ziel von Sequenzdiagrammen?

<p>Sie beschreiben zeitliche Abläufe zwischen Objekten. (C)</p> Signup and view all the answers

In welcher Phase werden Testfälle typischerweise verwendet?

<p>Wartung (D)</p> Signup and view all the answers

Was beschreibt die Kommunikation zwischen Anwendern und System?

<p>Sie kann sowohl synchron als auch asynchron sein. (B)</p> Signup and view all the answers

Flashcards

Modell in der Code-Generierung

Eine abstrakte und kompakte Darstellung eines Softwaremodells, die technologieunabhängig ist. Sie dient als Grundlage für die Code-Generierung.

Code-Generator

Ein Programm, das aus einem Modell automatisch Code in einer bestimmten Programmiersprache generiert.

Serialisierbarkeit

Die Möglichkeit, ein Objekt in ein Format zu konvertieren, das für die Speicherung oder den Transport geeignet ist.

Automatische Tabellen-Erzeugung

Eine Datenbanktabelle wird automatisch aus einem Softwaremodell generiert.

Signup and view all the flashcards

Getter-Methode

Eine Methode, die den Zugriff auf ein Attribut ermöglicht, ohne es direkt zu verändern.

Signup and view all the flashcards

Setter-Methode

Eine Methode, die den Wert eines Attributs änder.

Signup and view all the flashcards

Technologie

Eine Programmiersprache wie Java oder C++, die zur Implementierung von Software eingesetzt wird.

Signup and view all the flashcards

Zusätzliche Anforderungen

Zusätzliche Anforderungen an den Code-Generator, die zu verschiedenen Code-Implementierungen führen.

Signup and view all the flashcards

Plattformabhängigkeit

Code, der für unterschiedliche Plattformen angepasst werden muss, z. B. für Windows und Linux.

Signup and view all the flashcards

Attributzugriffssicherung

Die sichere Verwaltung des Zugriffs auf Attribute eines Objekts.

Signup and view all the flashcards

Was ist ein Enumerations-Typ?

Ein Enumerationstyp (enum) dient zur Definition einer Menge von benannten Konstanten.

Signup and view all the flashcards

Was bedeutet der Pfeil '->' in einem Klassendiagramm?

Der Pfeil '->' zeigt eine Assoziation zwischen zwei Klassen an.

Signup and view all the flashcards

Was ist Multiplizität?

Die Multiplizität beschreibt, wie viele Objekte der einen Klasse mit einem Objekt der anderen Klasse verknüpft sein können.

Signup and view all the flashcards

Was ist ein 'Import-Statement'?

Ein 'Import-Statement' erlaubt den Zugriff auf Typen oder Klassen aus anderen Packages.

Signup and view all the flashcards

Was ist Komposition?

Eine Komposition ist ein starkes Verbindungsverhältnis zwischen zwei Klassen, bei dem das abhängige Objekt ohne das haupt Objekt nicht existiert.

Signup and view all the flashcards

Was bedeutet "c2" in einem Klassendiagramm?

"c2" ist ein Name für eine Komposition.

Signup and view all the flashcards

Wie kann ein 'enum' verwendet werden?

Ein 'enum' kann als Datentyp verwendet werden, um festzulegen, welche einzelnen Werte ein Attribut annehmen darf.

Signup and view all the flashcards

Was ist eine Assoziation?

Eine Assoziation ist eine Beziehung zwischen zwei Klassen, die durch den Pfeil '->' gekennzeichnet wird.

Signup and view all the flashcards

GENERATOR Framework

Ein modellgetriebenes Framework, das als Generator dient, um Software zu generieren. Es nutzt verschiedene Modelle von Software Bestandteilen, um kompletten Code zu erstellen.

Signup and view all the flashcards

Datenmodel

Ein Model, das die Struktur von Daten beschreibt, z.B. die Attribute eines Objekts.

Signup and view all the flashcards

GUI Modelle

Modelle, die den Aufbau von grafischen Benutzeroberflächen (GUIs) definieren, z.B. Layouts und Elemente.

Signup and view all the flashcards

Klassendiagramme

Modelle, die den Aufbau und die Beziehungen von Objekten in einem System beschreiben, z.B. Klassendiagramme.

Signup and view all the flashcards

OCL (Object Constraint Language)

Eine Sprache, die verwendet wird, um Regeln und Einschränkungen für Modelle zu definieren, z.B. zur Validierung von Eingabedaten.

Signup and view all the flashcards

BPMN (Business Process Model and Notation)

Eine Notation, die den Ablauf von Prozessen in einem System beschreibt, z.B. Workflows.

Signup and view all the flashcards

Datenbank

Datenbank, die zur Speicherung von Daten im System verwendet wird.

Signup and view all the flashcards

Kommunikationsinfrastruktur

Kommunikationsmechanismen zwischen dem Frontend (Benutzeroberfläche) und dem Backend (logische Ebene) des Systems.

Signup and view all the flashcards

Grafische Nutzer Interfaces (GUI)

Grafische Benutzeroberflächen (GUIs), die dem Benutzer eine visuelle Interaktion mit dem System ermöglichen.

Signup and view all the flashcards

System Core

Der Kern des Systems, der die Geschäftslogik ausführt.

Signup and view all the flashcards

Manager

Ein Modul, das die Daten innerhalb des Systems verwaltet.

Signup and view all the flashcards

Reader

Ein Modul, das Daten aus dem System liest.

Signup and view all the flashcards

Writer

Ein Modul, das Daten in das System schreibt.

Signup and view all the flashcards

Data Storage

Ein Modul, das die Daten des Systems speichert.

Signup and view all the flashcards

Handgeschriebene Erweiterungen

Handgeschriebene Erweiterungen, die an bestimmten Stellen (hookpoints) im generierten Code eingefügt werden.

Signup and view all the flashcards

Sequenzdiagramm

Eine Methode, die zur Modellierung von Verhaltenssequenzen verwendet wird.

Signup and view all the flashcards

Objektdiagramm

Eine Methode, die zur Modellierung von Strukturen auf exemplarischer Basis verwendet wird.

Signup and view all the flashcards

OO-Analyse

Dient dazu, ein Modell der fachlichen Aufgabe zu erstellen. Es ist datenorientiert.

Signup and view all the flashcards

Objekt

Ein Objekt in einem Objektdiagramm.

Signup and view all the flashcards

Klasse

Ein abstrakter Bestandteil eines Systems, der Attribute (Eigenschaften) und Operationen (Methoden) hat.

Signup and view all the flashcards

Klassen in der OO-Analyse

Klassen, die die Struktur und das Verhalten von Objekten in einem System beschreiben und die Grundlage für objektorientierte Programmierung bilden.

Signup and view all the flashcards

Relevante Klassen in der Analyse

In der Analyse konzentrieren wir uns auf Klassen, die Daten repräsentieren, wie z. B. Kunden, Produkte oder Bestellungen.

Signup and view all the flashcards

Technische Klassen

Klassen, die sich um die technische Implementierung kümmern, z. B. Datenbankverbindungen, Benutzeroberflächen oder Netzwerkkommunikation.

Signup and view all the flashcards

Pakete in der Analyse

Gruppen von Klassen, die zusammengehören und ein bestimmtes Teilgebiet des Systems abdecken.

Signup and view all the flashcards

Serialisierung

Die Fähigkeit, ein Objekt in ein Datenformat zu konvertieren, das leicht gespeichert oder übertragen werden kann.

Signup and view all the flashcards

Zustandsdiagramm

Ein Diagramm, das den Zustand und die Übergänge eines Objekts während seiner Lebensdauer darstellt.

Signup and view all the flashcards

Objekte im Sequenzdiagramm

Ein Satz von Objekten, die in einem Sequenzdiagramm dargestellt sind, angeordnet nach den Zeitlinien ihrer Interaktion.

Signup and view all the flashcards

Normalfall im Sequenzdiagramm

Ein Szenario, das den idealen Verlauf von Ereignissen in einem Sequenzdiagramm beschreibt.

Signup and view all the flashcards

Ausnahmefall im Sequenzdiagramm

Ein Szenario, das unerwartete oder fehlerhafte Ereignisse in einem Sequenzdiagramm beschreibt.

Signup and view all the flashcards

Testfall im Sequenzdiagramm

Ein Szenario, das verwendet werden kann, um das System zu testen, in einem Sequenzdiagramm.

Signup and view all the flashcards

Zeitlinie im Sequenzdiagramm

Eine Darstellung, die den zeitlichen Ablauf von Interaktionen zwischen Objekten beschreibt.

Signup and view all the flashcards

Synchrone Interaktion im Sequenzdiagramm

Eine synchrone Interaktion, bei der ein Objekt direkt auf die Nachricht eines anderen Objekts reagiert.

Signup and view all the flashcards

Asynchrone Interaktion im Sequenzdiagramm

Eine asynchrone Interaktion, bei der ein Objekt eine Nachricht sendet, aber nicht darauf wartet, dass das andere Objekt reagiert.

Signup and view all the flashcards

Study Notes

Softwaretechnik - Vorlesung - Systemanalyse und -modellierung

  • Die Vorlesung behandelt Softwaretechnik, insbesondere die Systemanalyse und -modellierung.
  • Der Dozent ist Professor Bernhard Rumpe vom Software Engineering der RWTH Aachen.
  • Die Website des Dozenten ist http://www.se-rwth.de/

Warum, Was, Wie und Wozu?

  • Modellierungssprachen werden häufig in der Industrie eingesetzt.
  • Grundlagenwissen für andere Vorlesungen.
  • Entwicklung von Systemen mithilfe von Modellen zur Beschreibung von Struktur und Verhalten.
  • Klassendiagramme, Objektdiagramme, Sequenzdiagrammen und Statecharts sind wichtige Werkzeuge.
  • Verstehen des Aufgabengebiets und Strukturierung der Lösung.
  • Schaffung einer einheitlichen Terminologie und Identifizierung von Grundkonzepten.

Systemmodellierung

  • Die Analyse (Systemanalyse) umfasst die Anforderungs-Ermittlung (Requirements Elicitation).
  • Anforderungs-Spezifikation (Pflichtenheft) definiert die Anforderungen.
  • Systemmodellierung (System Modelling) beschreibt das System.
  • Die Produktdefinition (Funktionale Spezifikation) definiert funktionsbezogene Eigenschaften des Systems.
  • Der Entwurf ist der abschließende Schritt, in dem das „Wie“ realisiert wird.

Systemmodellierung

  • Abstrakte Modellierung der fachlichen Aufgabe (fachliches Modell, Domänenmodell).
  • Das Team ist klein.
  • Strukturierung des Aufgabengebietes.
  • Schaffung einer einheitlichen Terminologie.
  • Identifizierung von Grundkonzepten.
  • Zusammenhang mit Anforderungsspezifikation sichern.
  • Implementierungsaspekte ausklammern.
  • Funktionale Essenz des Systems.
  • Datenhaltung und Benutzeroberfläche werden im Allgemeinen hinten angestellt.

Objektorientierte Analyse (OOA)

  • Die fachliche Aufgabe wird durch kooperierende Objekte modelliert.
  • Im statischen Modell werden Klassen, Eigenschaften und Aufgaben von Objekten sowie Beziehungen zwischen den Klassen (Objekten) beschrieben.
  • Im dynamischen Modell werden Verhaltensweisen von Objekten, Zustände und typische Anwendungsfälle dargestellt.
  • "Gesellschaft" von kooperierenden Objekten

Modellierung mit UML: Strukturen

  • Klassendiagramm: Darstellung der statischen Struktur, Typen und Beziehungen zwischen Klassen.
  • Objektdiagramm:zeigt einen Momentaufnahme möglicher Situationen, mit konkreten Objekten und Werten.
  • Später können Kompositionsstrukturdiagramme und Implementierungsdiagramme dazu kommen.

Modellierung mit UML: Verhalten

  • Sequenzdiagramme: Visualisierung der Interaktion zwischen Objekten durch Methodenaufrufe und exemplarische Abläufe.
  • Statechart: Darstellung von Zustandsautomaten, Hierarchien, möglichen Abläufen und deren Verbindung mit dem Zustandsraum eines Objekts.
  • Aktivitätendiagramme und Usecases werden in der Folge besprochen.

UML Klassendiagramme

  • Die Vorlesung behandelt die Modellierung mit UML (Unified Modeling Language).
  • Die Vorlesung behandelt insbesondere UML-Klassendiagramme.
  • Die Behandlung der UML-Klassendiagramme dient als Vorbereitung für die Codegenerierung.
  • In der Vorlesung wird speziell auf die Modellierung mit UML, 2011 von B. Rumpe eingegangen.

Grundkonzepte der Objektorientierung

  • Ein System besteht aus mehreren Variabel vielen Objekten, deren Anzahl und Struktur dynamisch ist.
  • Ein Objekt hat ein definiertes Verhalten (Menge genau definierter Operationen).
  • Eine Operation wird beim Empfang einer Nachricht ausgeführt.
  • Ein Objekt hat einen inneren Zustand.
  • Der Zustand eines Objekts ist privat.
  • Ein Objekt hat eine eindeutige Identität.
  • Es können im selben System mehrere Objekte mit identischem Verhalten und identischem inneren Zustand existieren.

Konzepte der Objektorientierung

  • Ein Objekt gehört zu einer Klasse.
  • Die Klasse schreibt das Verhaltensschema und die innere Struktur der Objekte vor.
  • Klassen besitzen einen "Stammbaum", wo Verhaltensschemata und innere Strukturen durch Vererbung an Unterklassen weitergegeben werden.
  • Vererbung bedeutet Generalisierung einer Klasse zu einer Oberklasse.
  • Polymorphie: Eine Nachricht kann verschiedene Reaktionen auslösen, je nachdem, zu welcher Unterklasse das Objekt gehört.
  • Polymorphe Methode: Gleiche Methodenname, unterschiedliche Implementierungen in verschiedenen Klassen.

Klasse mit Attributen und Methoden

  • Die Klasse und ihre Attribute und Methoden werden in Klassendiagrammen dargestellt.
  • Attribute: Beschreibung der Informationen eines Objekts (z.B. Name, Adresse...).
  • Methoden: Beschreiben das Verhalten eines Objekts (z.B. lesen, speichern, ändern).
  • Sichtbarkeitsangaben wie public, protected und private.
  • Methodensignaturen (welche Parameter und Rückgabetypen).

Vererbung, Schnittstellen-Implementierung

  • Klasse als Oberklasse und Unterklasse mit Vererbung.
  • Abstrakte Klassen und Interfaces.
  • Implementierung von Interfaces.

Abstrakte Klassen

  • Klassen können nicht instanziiert werden.
  • Sinnvoll in Generalisierungshierarchien.
  • Gemeinsamer Merkmale der Unterklassen in abstrakten Klassen.
  • Notation: Schlüsselwort «abstract» oder Klassenname in kursiver Schrift.

Vererbung (Generalisierung/Spezialisierung)

  • Beziehung zwischen einer spezialisierten Klasse und einer allgemeineren Klasse.
  • Die spezialisierte Klasse erbt Eigenschaften von der allgemeineren Klasse.
  • Kann weitere Eigenschaften (Attribute und Methoden) hinzufügen.
  • Instanz der Unterklasse kann überall verwendet werden, wo eine Instanz der Oberklasse erlaubt ist.
  • Hierarchie von "ist-ein" Beziehungen.
  • Mehrfachvererbung ist im Prinzip möglich.

Enumeration-Klasse

  • Eine Klasse, die eine Aufzählung definiert.
  • Definiert einen Satz von Konstanten-Werten.

Assoziationen

  • Assoziationsrollen, Namen, Kardinalitäten.
  • Assoziation als binäre Beziehung zwischen Klassen.
  • „Person participates in Auction“
  • Assoziationsrolle „auctions“
  • Eine Person kann an bis zu 99 Auktionen teilnehmen.
  • Kardinalitäten: genau eines, optional, beliebig, nicht-null, feste Intervalle.

Aggregation

  • Schwache Zusammengehörigkeit.
  • Austauschbarkeit der Teile.
  • Jeder Teil hat einen eigenen Lebenszyklus.

Komposition

  • Objekt aus Teilen, die eine zusammengehörige Einheit bilden.
  • Teile vom Kompositum sind abhängig.
  • Lebenszyklus wird kombiniert.
  • Austauschbarkeit der Teile ist nicht gegeben.

Qualifizierte Assoziation

  • Qualifikatoren werden mit Attributen der Zielklasse verwendet.
  • Qualifikator „String“ erlaubt einzelne Objekte zu selektieren.
  • Objekt kann in verschiedenen Auktionen unterschiedlich qualifiziert sein.

Qualifizierte Assoziation

  • Assoziationen erlauben Selektion einzelner Objekte aus einer Menge.
  • Qualifikatoren: Zahlenintervall, expliziter Identifikator oder frei wählbarer Wert eines vorgegebenen Typs.
  • Qualifikation an beiden Enden möglich.
  • Qualität der Assoziationen durch Attribute der Zielklassen.
  • Qualifizierung von Assoziationen durch Typen.

Generative Software Engineering

  • Eine Methode zur effizienten Generierung von Softwareteilen.
  • Auf Grundlage von Modellen (z.B. UML oder DSL).
  • Ziel: verbesserte Qualität und verkürzte Entwicklungszeit.
  • Einsatzgebiete: Codegenerierung, Generierung von Testfällen, Prototyping.

Code Synthese von kompletten, lauffährigen Informationssystemen

  • Informationsysteme umfassen Erfassung, Verarbeitung, Speicherung und Verteilung von Informationen.
  • Komponenten: Aufgaben, Menschen, Strukturen (Rollen) und Technologien.
  • GSE-Lösung für die Generierung von Systemen.

Modellgetriebenes Software Engineering von Informationssystemen

  • Modelle definieren Datenstruktur und GUI.
  • Generierung von Datenbankstrukturen / Kommunikationsinfrastruktur / GUI-Interfaces.
  • Handgeschriebene Erweiterungen für die Geschäftslogik und Oberflächenanpassung sind möglich.

Klassen und Interfaces

  • Klassen und Interfaces sehen Java Code ähnlich, aber enthalten neither Methoden nor Sichtbarkeiten.

Assoziationen (I) und (II)

  • Assoziationen in Klassendiagrammen mit Namen, Navigationsrichtungen und Mehrfachheiten.
  • Rollennamen für Navigation.
  • Qualifikatoren als Attribute der gegenüberliegenden Klasse.

Komposition

  • Zusammengesetzte Teile sind Teil einer Gesamtheit.
  • Lebenszyklus der Teile ist an den Lebenszyklus der Gesamtheit gekoppelt.
  • Verwendete Notation in der Syntax.

Enumerationen

  • Eine Aufzählung von diskreten Werten.
  • Ein Datentyp.

Importieren von Typen und Klassen

  • Ähnlich zu Java können Typen und Klassen importiert werden.
  • Importierte Typen werden als Klassentypen in den Klassendiagrammen verwendet.

Generische Typen und Klassen

  • CD4Analysis erlaubt keine generischen Typen.
  • Generische Typenkonstruktoren sind Optional, Set, List und Map.

Der vollständige CD SocNet in textueller Form (I) und (II)

  • Komplette Textform der Klassendiagramme für SocNet, inklusive Klassen, Interfaces und Assoziationen.

Objektdiagramm

  • Exemplarische Modellierung von Strukturen.
  • Sammlung von Objekten und deren Beziehungen zu einem bestimmten Zeitpunkt im Leben eines Systems.
  • Instanzen.
  • Mehrere Objektdiagramme beschreiben verschiedene Situationen zu unterschiedlichen Zeitpunkten innerhalb desselben Systemteils.

Beispiel: Einzelnes Objekt

  • Darstellung eines konkreten Objekts mit Attributen und Werten.

Beispiel: Linkstruktur

  • Darstellung von Verbindungen (Assoziationen) zwischen Objekten in einem Objektdiagramm. Stereotypen für Schnittstellen werden verwendet und diese sind dabei spezifiziert.

Objektstruktur mit Einbettung

  • Visualisierung und Darstellung von Beziehungen (Komposition) zwischen Objekten in einer Objektstruktur.

Was haben wir gelernt? - OO-Analyse

  • Methodik für die Objektorientierte Analyse.
  • Ziel: Von den Anforderungen zu einem Modell der fachlichen Aufgabe.
  • Datenorientiert versus Verhaltensorientiert.

Was haben wir gelernt? - Objektdiagramme

  • Verfahren für die Modellierung von Strukturen.
  • Nutzung zur Darstellung von Testsituationen und Spezialfällen.

Was haben wir gelernt? - Szenarien

  • Verfahren für die Beschreibung einer exemplarischen Folge von Interaktionen.

Was haben wir gelernt? - Sequenzdiagramme

  • Methoden für die Darstellung von Interaktionen zwischen Objekten anhand von Ereignissen und Nachrichten.
  • Darstellung von Normalfällen, Ausnahmefällen und Testszenarien.

Was haben wir gelernt? - Statecharts

  • Konzepte: Zustände und Übergänge (Transitionen).
  • Hierarchische Zustände innerhalb eines Gesamtsystems.
  • Vollständige Verhaltensbeschreibung.

Beispiel: Zustandsmodell einer Tür

  • Darstellung der Zustände einer Tür (geschlossen, offen, verriegelt...).

Beispiel: Zustandsmodell für den Kaffeautomaten(1)

  • Beispiel für ein Zustandsmodell eines automatischen Kaffeeautomaten.
  • Zustände: 0 €, 0,50 €, 1 €
  • Aktionen: Münzeinwurf, Getränkeauswahl.

Beispiel: Zustandsmodell für den Gesamtautomaten (2)

  • Erweitertes Zustandsmodell für den Kaffeeautomaten, das weitere Zustände und Aktionen beinhaltet.
  • Fokus auf die komplexe Steuerung des Gerätes (Münzeinwurf, Getränkewahl...).

Beispiel Seminarplanung: Zustände eines Seminars

  • Zustände für eine Seminarplanung inkl. Anmeldung und Durchführung.
  • Zustände/Aktionen: inPlanung, geplant, Anmeldung möglich/geschlossen, unterrichten, deaktivieren...
  • TN informiert/nicht informiert/deaktiviert

Beispiel: Objektlebenszyklus der Klasse "Teambesprechung"

  • Darstellung verschiedener Zustände der Klasse "Teambesprechung" vom Anfang bis zum Abschluss.
  • Zustände/Aktionen: in Bearbeitung, geplant, abgestimmt, fixiert, eingeladen...
  • Visualisierung der Assoziationen unter Verwendung qualifizierter Bezeichnungen (z.B. Namensattribute).
  • Visuelle Darstellung der Assoziationen unter Verwendung von Typ-basierten Qualifizierern (z.B. "Melli", "Max").

Beispiel: Autovermietung

  • Visualisierung der Ablaufschritte (Interaktionen) zwischen Kunde, Mitarbeiter und Kreditfirma; Darstellung von verschiedenen Eventualitäten.

Beispiel: Auktionssystem

  • Visuelle Darstellung des Ablaufs einer Auktion.
  • Darstellung von Aktionen und deren Rückgaben.

Eigeninitiative: Sequenzdiagramm für ...

  • Vorschläge für die Erstellung eigener Sequenzdiagramme.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Description

Dieses Quiz behandelt die Grundlagen der objektorientierten Analyse (OO-Analyse) und fokussiert auf zentrale Konzepte wie Objekte, Klassendiagramme und Sequenzdiagramme. Testen Sie Ihr Wissen über die Modellierung und den Einsatz von Objektdiagrammen sowie die Identifizierung von Klassen. Ideal für Studierende der Informatik, die sich mit der OO-Analyse beschäftigen.

More Like This

Object Oriented Analysis: UML Diagrams
8 questions
CSC 2210 Object Oriented Analysis & Design
40 questions
Use Quizgecko on...
Browser
Browser