Podcast
Questions and Answers
Welches Ziel hat die OO-Analyse?
Welches Ziel hat die OO-Analyse?
Was beschreiben Objekte in der OO-Analyse?
Was beschreiben Objekte in der OO-Analyse?
Wie können Objektdiagramme eingesetzt werden?
Wie können Objektdiagramme eingesetzt werden?
Was beinhaltet die Modellierung von Szenarien?
Was beinhaltet die Modellierung von Szenarien?
Signup and view all the answers
Was ist ein Vorteil der Verwendung von Sequenzdiagrammen?
Was ist ein Vorteil der Verwendung von Sequenzdiagrammen?
Signup and view all the answers
Was ist das Hauptziel der objektorientierten Analyse?
Was ist das Hauptziel der objektorientierten Analyse?
Signup and view all the answers
Welche Klassenarten sollten in der Analyse bevorzugt betrachtet werden?
Welche Klassenarten sollten in der Analyse bevorzugt betrachtet werden?
Signup and view all the answers
Was sollte bei der Erstellung von Klassendiagrammen beachtet werden?
Was sollte bei der Erstellung von Klassendiagrammen beachtet werden?
Signup and view all the answers
Welche Struktur hilft bei der Überprüfung von Operationen in der objektorientierten Analyse?
Welche Struktur hilft bei der Überprüfung von Operationen in der objektorientierten Analyse?
Signup and view all the answers
Was könnte ein sinnvoller Schritt bei der Architekturdefinition von Analyse-Datenklassen sein?
Was könnte ein sinnvoller Schritt bei der Architekturdefinition von Analyse-Datenklassen sein?
Signup and view all the answers
In welcher Form sollten Assoziationen und Aggregationen gefunden werden?
In welcher Form sollten Assoziationen und Aggregationen gefunden werden?
Signup and view all the answers
Was könnte ein Aspekt sein, den man bei der Identifizierung von Klassen vermeiden sollte?
Was könnte ein Aspekt sein, den man bei der Identifizierung von Klassen vermeiden sollte?
Signup and view all the answers
Was ist ein wichtiges Element der objektorientierten Analyse?
Was ist ein wichtiges Element der objektorientierten Analyse?
Signup and view all the answers
Welche Beziehungstypen können für die Enumeration RelationType
verwendet werden?
Welche Beziehungstypen können für die Enumeration RelationType
verwendet werden?
Signup and view all the answers
Wie viele Beziehungen können durch die Assoziation Relationship
erstellt werden?
Wie viele Beziehungen können durch die Assoziation Relationship
erstellt werden?
Signup and view all the answers
Welche Funktion hat die Import-Anweisung in einem Klassendiagramm?
Welche Funktion hat die Import-Anweisung in einem Klassendiagramm?
Signup and view all the answers
Was beschreibt der Multiplikator [1..*]
in einer Assoziation?
Was beschreibt der Multiplikator [1..*]
in einer Assoziation?
Signup and view all the answers
Welche der folgenden Klassen kann nicht importiert werden?
Welche der folgenden Klassen kann nicht importiert werden?
Signup and view all the answers
Welches Attribut gehört nicht zur Klasse Relationship
?
Welches Attribut gehört nicht zur Klasse Relationship
?
Signup and view all the answers
Was gilt, wenn eine importierte Klasse als Obertyp verwendet wird?
Was gilt, wenn eine importierte Klasse als Obertyp verwendet wird?
Signup and view all the answers
Welche der folgenden Multiplikatoren beschreibt mehrere optional verbundene Objekte?
Welche der folgenden Multiplikatoren beschreibt mehrere optional verbundene Objekte?
Signup and view all the answers
Welche Modelle sind erforderlich, um ein informationssystem zu generieren?
Welche Modelle sind erforderlich, um ein informationssystem zu generieren?
Signup and view all the answers
Was ist eine optionale Komponente zur Validierung von Eingabedaten?
Was ist eine optionale Komponente zur Validierung von Eingabedaten?
Signup and view all the answers
Was ermöglicht die Definition der Geschäftslogik in einem generierten System?
Was ermöglicht die Definition der Geschäftslogik in einem generierten System?
Signup and view all the answers
Wie viele Mitglieder sind bei einer Gruppe maximal erlaubt, laut Beispiel ‘Social Network’?
Wie viele Mitglieder sind bei einer Gruppe maximal erlaubt, laut Beispiel ‘Social Network’?
Signup and view all the answers
Was ist eines der Ergebnisse der Generierung in einem modellgetriebenen Ansatz?
Was ist eines der Ergebnisse der Generierung in einem modellgetriebenen Ansatz?
Signup and view all the answers
Welche Art von Beziehungen kann in dem Beispiel ‘Social Network’ definiert werden?
Welche Art von Beziehungen kann in dem Beispiel ‘Social Network’ definiert werden?
Signup and view all the answers
Was beschreibt die Attribute eines Profils in dem ‘Social Network’ Beispiel?
Was beschreibt die Attribute eines Profils in dem ‘Social Network’ Beispiel?
Signup and view all the answers
Welches der folgenden Elemente ist nicht Teil des GUI Modells?
Welches der folgenden Elemente ist nicht Teil des GUI Modells?
Signup and view all the answers
Welches Element gehört zur Kommunikationsinfrastruktur zwischen Frontend und Backend?
Welches Element gehört zur Kommunikationsinfrastruktur zwischen Frontend und Backend?
Signup and view all the answers
Welche der folgenden Optionen beschreibt einen hookpoint in einem generierten Code?
Welche der folgenden Optionen beschreibt einen hookpoint in einem generierten Code?
Signup and view all the answers
Welche der folgenden Eigenschaften ist kein Attribut eines ‘Post’ im Beispiel des ‘Social Networks’?
Welche der folgenden Eigenschaften ist kein Attribut eines ‘Post’ im Beispiel des ‘Social Networks’?
Signup and view all the answers
Welche Modellierungssprache wird zur Beschreibung von Workflows verwendet?
Welche Modellierungssprache wird zur Beschreibung von Workflows verwendet?
Signup and view all the answers
Was beschreibt das Attribut 'Date lastVisit' im Beispiel ‘Social Network’?
Was beschreibt das Attribut 'Date lastVisit' im Beispiel ‘Social Network’?
Signup and view all the answers
Welche Funktion hat die Methode 'getAuctionIdent' in der Klasse 'Auction'?
Welche Funktion hat die Methode 'getAuctionIdent' in der Klasse 'Auction'?
Signup and view all the answers
Welche Beschreibung trifft auf get/set-Methoden zu?
Welche Beschreibung trifft auf get/set-Methoden zu?
Signup and view all the answers
Was ist eine häufige Anforderung an die Code-Synthese, die nicht in den Beispielen erwähnt wird?
Was ist eine häufige Anforderung an die Code-Synthese, die nicht in den Beispielen erwähnt wird?
Signup and view all the answers
Welcher Aspekt des Codes gewährleistet den Zugriffsschutz auf Attribute?
Welcher Aspekt des Codes gewährleistet den Zugriffsschutz auf Attribute?
Signup and view all the answers
Was beschreibt die Notwendigkeit einer qualitativen Assoziation im Zusammenhang mit den gezeigten Klassen?
Was beschreibt die Notwendigkeit einer qualitativen Assoziation im Zusammenhang mit den gezeigten Klassen?
Signup and view all the answers
Was ist ein möglicher Vorteil der Code-Generierung mit get/set-Methoden?
Was ist ein möglicher Vorteil der Code-Generierung mit get/set-Methoden?
Signup and view all the answers
Was ist eine mögliche Anforderung für die Serialisierbarkeit eines Objekts?
Was ist eine mögliche Anforderung für die Serialisierbarkeit eines Objekts?
Signup and view all the answers
Welche Eigenschaft beschreibt die Synchronisierung in den Methoden der Klasse 'Auction'?
Welche Eigenschaft beschreibt die Synchronisierung in den Methoden der Klasse 'Auction'?
Signup and view all the answers
Welches der folgenden Attribute würde die Klasse 'Auction' nicht implementieren?
Welches der folgenden Attribute würde die Klasse 'Auction' nicht implementieren?
Signup and view all the answers
Was ist eine wesentliche Anforderung an die Datenhaltung von Objekten laut den genannten Anforderungen?
Was ist eine wesentliche Anforderung an die Datenhaltung von Objekten laut den genannten Anforderungen?
Signup and view all the answers
Welches Element wird verwendet, um eine exemplarische Folge von Interaktionen darzustellen?
Welches Element wird verwendet, um eine exemplarische Folge von Interaktionen darzustellen?
Signup and view all the answers
Was charakterisiert die Kommunikationswege zwischen System und Anwender?
Was charakterisiert die Kommunikationswege zwischen System und Anwender?
Signup and view all the answers
Was beschreiben Statecharts?
Was beschreiben Statecharts?
Signup and view all the answers
Welche der folgenden Aussagen über Sequenzdiagramme ist korrekt?
Welche der folgenden Aussagen über Sequenzdiagramme ist korrekt?
Signup and view all the answers
Was ist eine Eigenschaft von Anforderungsanalyse?
Was ist eine Eigenschaft von Anforderungsanalyse?
Signup and view all the answers
Was ist ein Ziel von Sequenzdiagrammen?
Was ist ein Ziel von Sequenzdiagrammen?
Signup and view all the answers
In welcher Phase werden Testfälle typischerweise verwendet?
In welcher Phase werden Testfälle typischerweise verwendet?
Signup and view all the answers
Was beschreibt die Kommunikation zwischen Anwendern und System?
Was beschreibt die Kommunikation zwischen Anwendern und System?
Signup and view all the answers
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.
Assoziationen und Links
- 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.
Qualifizierte Assoziation und Links
- 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.
Qualifizierte Assoziationen und Links - Attribut als Qualifikator
- Qualität der Assoziationen durch Attribute der Zielklassen.
Qualifizierte Assoziationen und Links - Typ als Qualifikator
- 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...
Beispiel: Qualifizierte Assoziationen und Links - Attribut als Qualifikator
- Visualisierung der Assoziationen unter Verwendung qualifizierter Bezeichnungen (z.B. Namensattribute).
Beispiel: Qualifizierte Assoziationen und Links - Typ als Qualifikator
- 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.
Related Documents
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.