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</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</p> Signup and view all the answers

    Was ist das Hauptziel der objektorientierten Analyse?

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

    Welche Klassenarten sollten in der Analyse bevorzugt betrachtet werden?

    <p>Datenklassen</p> Signup and view all the answers

    Was sollte bei der Erstellung von Klassendiagrammen beachtet werden?

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

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

    <p>Zustandsdiagramme</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</p> Signup and view all the answers

    In welcher Form sollten Assoziationen und Aggregationen gefunden werden?

    <p>Durch Betrachtung der Anforderungen</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</p> Signup and view all the answers

    Was ist ein wichtiges Element der objektorientierten Analyse?

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

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

    <p>FRIEND</p> Signup and view all the answers

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

    <p>mehrere</p> Signup and view all the answers

    Welche Funktion hat die Import-Anweisung in einem Klassendiagramm?

    <p>Sie importiert externe Typen.</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.</p> Signup and view all the answers

    Welche der folgenden Klassen kann nicht importiert werden?

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

    Welches Attribut gehört nicht zur Klasse Relationship?

    <p>String status</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.</p> Signup and view all the answers

    Welche der folgenden Multiplikatoren beschreibt mehrere optional verbundene Objekte?

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

    Welche Modelle sind erforderlich, um ein informationssystem zu generieren?

    <p>GUI Modelle</p> Signup and view all the answers

    Was ist eine optionale Komponente zur Validierung von Eingabedaten?

    <p>OCL</p> Signup and view all the answers

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

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

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

    <ul> <li></li> </ul> Signup and view all the answers

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

    <p>Datenbankstruktur</p> Signup and view all the answers

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

    <p>Kollege</p> Signup and view all the answers

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

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

    Welches der folgenden Elemente ist nicht Teil des GUI Modells?

    <p>Datenstruktur</p> Signup and view all the answers

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

    <p>InstantMessage</p> Signup and view all the answers

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

    <p>Benutzeranpassungen</p> Signup and view all the answers

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

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

    Welche Modellierungssprache wird zur Beschreibung von Workflows verwendet?

    <p>BPMN</p> Signup and view all the answers

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

    <p>Das letzte Besuchsdatum eines Nutzers</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.</p> Signup and view all the answers

    Welche Beschreibung trifft auf get/set-Methoden zu?

    <p>Sie ermöglichen den Zugriff auf private Attribute.</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.</p> Signup and view all the answers

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

    <p>Die Implementierung eines Security-Managers.</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.</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.</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.</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.</p> Signup and view all the answers

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

    <p>Die Gebotsdauer.</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.</p> Signup and view all the answers

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

    <p>Sequenzdiagramme</p> Signup and view all the answers

    Was charakterisiert die Kommunikationswege zwischen System und Anwender?

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

    Was beschreiben Statecharts?

    <p>Sie zeigen die Dynamik und Zustände eines Systems.</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.</p> Signup and view all the answers

    Was ist eine Eigenschaft von Anforderungsanalyse?

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

    Was ist ein Ziel von Sequenzdiagrammen?

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

    In welcher Phase werden Testfälle typischerweise verwendet?

    <p>Wartung</p> Signup and view all the answers

    Was beschreibt die Kommunikation zwischen Anwendern und System?

    <p>Sie kann sowohl synchron als auch asynchron sein.</p> 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.
    • 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

    Use Quizgecko on...
    Browser
    Browser