Softwaretechnik. Zusammenfassung der Methodik der Vorlesung im Wintersemester 2010/2011

Größe: px
Ab Seite anzeigen:

Download "Softwaretechnik. Zusammenfassung der Methodik der Vorlesung im Wintersemester 2010/2011"

Transkript

1 Softwaretechnik Zusammenfassung der Methodik der Vorlesung im Wintersemester 2010/2011 INHALT 1 Objektorientierte Analyse Use Case Modell Aktoren bestimmen Anwendungsfälle bestimmen Diagramm erstellen Beschreibungen anfertigen Statisches Modell Klassen identifizieren Assoziationen bestimmen Attribute identifizieren Vererbung einführen Modell überarbeiten Dynamisches Modell Interaktionsdiagramme entwickeln Zustands- und Aktivitätsdiagramme entwickeln Objektorientierter Entwurf Objektentwurf Operationen hinzufügen Assoziationen ausrichten Zugriffsrechte bestimmen Mehrfachvererbung auflösen Wiederverwendung von Klassen Realisierung von Zustandsdiagrammen Prozedurgesteuerte Realisierung Realisierung durch Fallunterscheidung Realisierung durch Zustandsobjekte Realisierung durch eine Zustandsmaschine Systementwurf Grundlagen... 10

2 2.3.2 Fassadenklassen Schichtenarchitekturen Drei-Schichten-Architektur für betriebliche Informationssysteme Kontrollobjekte Beobachter Anmerkung: Der folgende Text versteht sich mit Blick auf die Klausur als Zusammenfassung zur gleichnamigen Vorlesung und fußt dazu natürlich auf die von Prof. Dr. Hennicker erstellten Inhalte. Quelle: Der Autor übernimmt keinerlei Gewährleistung dafür, dass diese Zusammenfassung inhaltlich vollständig oder korrekt ist. Die Benutzung erfolgt also zu eigenem Vergnügen und auf eigene Gefahr. ;) Daniel Buschek

3 3 1 OBJEKTORIENTIERTE ANALYSE Ziel: Die Anforderungen an das Softwaresystem erfassen und präzise und verständlich beschreiben. 1.1 Use Case Modell Input: Informelle, knappe Beschreibung, z.b. aus einem Interview. Ziel: Die (vom Kunden) gewünschte Funktionalität des Systems beschreiben Aktoren bestimmen Zunächst sollen die Aktoren bestimmt werden, die mit dem System interagieren: Wer benützt das System? Wer holt Informationen vom System? Wer liefert dem System Informationen? Anwendungsfälle bestimmen Nun können die Anwendungsfälle bestimmt werden; diese beschreiben die Aufgaben, die das System für einen oder mehrere Aktoren erledigen soll. Hierbei besteht oft die Schwierigkeit, die richtige Granularität zu finden: Welche Alternativen gehören noch zum selben Anwendungsfall, was ist schon ein neuer Anwendungsfall? Diagramm erstellen Nachdem Aktoren und Anwendungsfälle bestimmt wurden, kann ein entsprechendes Anwendungsfall-Diagramm (Use Case Diagramm) erstellt werden. Eventuell kann hier noch eine kurze Beschreibung der Aktoren und Anwendungsfälle angegeben werden Beschreibungen anfertigen In diesem letzten Schritt werden die Anwendungsfälle (iterativ) mit Beschreibungen versehen. Diese haben folgendes Format: Name des Anwendungsfalls Kurzbeschreibung Vorbedingung: Was ist Voraussetzung für eine erfolgreiche Ausführung des Anwendungsfalls? Nachbedingung: Beschreibung des Zustands nach erfolgreicher Ausführung. Primärszenario: Beschreibt den schrittweisen Ablauf im Normalfall. Sekundärszenarien: Beschreiben den schrittweisen Ablauf bei Fehlerfällen oder Optionen.

4 4 1.2 Statisches Modell Input: Das Use Case Modell, die ursprüngliche Problembeschreibung, erweitert um Experten- und Allgemeinwissen. Ziel: Ein Klassendiagramm, noch ohne Operationen Klassen identifizieren Es sollen die Klassen für das statische Modell gefunden werden. Kandidaten dafür sind Personen bzw. Rollen, Organisationen, Gegenstände und begriffliche Konzepte (z.b. Bestellung). 1. Kandidaten notieren: Hierzu durchsucht man die Use Case Beschreibungen nach Substantiven. 2. Ungeeignete Klassen streichen: Es sollen Klassenkandidaten gestrichen werden, die redundant, irrelevant oder vage sind. Ebenso eignen sich manche der gefundenen Substantive möglicherweise besser als Attribut einer anderen Klasse oder es handelt sich um eine Tätigkeit. 3. Fehlende relevante Klassen hinzufügen: Hinweise auf fehlende Klassen ergeben sich aus Problembereichswissen und aus Attributen vom vorigen Schritt, zu denen es noch keine Klassen gibt Assoziationen bestimmen Nun sollen Assoziationen zwischen den Klassen gefunden werden. Kandidaten dafür sind physische/logische Verbindungen mit bestimmter Dauer, z.b. konzeptionelle Verbindungen ( arbeitet für ), Besitz ( hat, ist Teil von ) sowie häufige Zusammenarbeit von Objekten zur Lösung einer Aufgabe. 1. Kandidaten notieren: Hierzu durchsucht man die Use Case Beschreibungen nach Verben, Substantiven im Genitiv ( die Karte des Kunden ) oder Possessivpronomen ( seine, ihre, ). Achtung: Verben bezeichnen oft Aktivitäten statt Beziehungen. 2. Ungeeignete Assoziationen streichen: Vor allem auf redundante (abgeleitete) Assoziationen sollte verzichtet werden. 3. Fehlende relevante Assoziationen hinzufügen: Analog zur Vorgehensweise beim Bestimmen der Klassen. 4. Multiplizitäten und ggf. explizite Rollennamen hinzufügen: Im Zweifelsfall kann man die Multiplizitäten aber auch noch weglassen und erst später bestimmen.

5 Attribute identifizieren Bei der Suche nach Attributen gelten folgende Richtlinien: Es sollen nur für die Anwendung relevante Attribute eingeführt werden. Attribute sollen keine Objekttypen haben, dafür werden Assoziationen verwendet. Die genauen Attributtypen können noch weggelassen werden Vererbung einführen In der Analyse geht es hierbei vor allem um Generalisierung: Gemeinsame Merkmale der vorhandenen Klassen (Attribute, Assoziationen) können in einer Oberklasse zusammengefasst werden. Außerdem sollte hier bestimmt werden, welche Klassen abstrakt sind Modell überarbeiten Im Prinzip besteht dieser Schritt aus dem Überdenken der bisherigen Arbeit. Checkliste: Fehlen Klassen oder Assoziationen? Sind alle Klassen und Assoziationen notwendig? Sind alle Attribute und Assoziationen richtig platziert? Gibt es Assoziationen, bei denen ein Qualifizierer sinnvoll wäre? Welche Typen haben/bekommen die Attribute? Fehlen noch Multiplizitäten? 1.3 Dynamisches Modell Input: Use Case Beschreibungen (Szenarien) und statisches Modell. Ziel: Entwurf von Interaktionsdiagrammen für jeden Anwendungsfall, auf deren Basis dann Zustandsund Aktivitätsdiagramme abgeleitet werden Interaktionsdiagramme entwickeln Interaktionsdiagramme beschreiben die Zusammenarbeit und den Nachrichtenaustausch zwischen mehreren Objekten. In UML gibt es Sequenzdiagramme und Kommunikationsdiagramme. Im Rahmen der Vorlesung bzw. Übung wurden nur Sequenzdiagramme auch wirklich verwendet. 1. Identifizieren der Nachrichten, die innerhalb eines Anwendungsfalls ausgetauscht werden und der Objekte, die die Nachrichten senden und empfangen. 2. Konstruktion von Interaktionsdiagrammen für jeden Anwendungsfall bzw. dessen Szenarien.

6 Zustands- und Aktivitätsdiagramme entwickeln Input: Die im vorigen Schritt erstellten Sequenzdiagramme zu den Anwendungsfällen. Ziel: Ein Zustandsdiagramm für jede Klasse mit interessanten Verhalten entwickeln (Klassen deren Objekte einen nicht-trivialen Lebenszyklus haben). Die in den Zustandsdiagrammen auftauchenden Operationen sollen dann mit Aktivitätsdiagrammen beschrieben werden. Zustands- und Aktivitätsdiagramme erfassen also das vollständige Verhalten eines jeden Objekts einer Klasse über viele Szenarien hinweg. Aktivitätsdiagramme können auch weggelassen werden, wenn es bereits ein einziges Interaktionsdiagramm gibt, das schon das vollständige Ablauf-Verhalten der Operation zeigt. Kriterien für interessantes Verhalten : Ein Objekt reagiert auf gleiche Ereignisse in Abhängigkeit seines Zustands unterschiedlich. Mindestens ein Ereignis wird in bestimmten Zuständen ignoriert (bzw. kann dort gar nicht auftreten). Typische zustandsabhängige Objekte sind Kontrollobjekte für Anwendungsfälle und Benutzerschnittstellen, Geräte (z. B. Digitaluhr) sowie Objekte mit beschränktem Fassungsvermögen (voll, leer). Klassifizierung von Zuständen: stabiler/inaktiver Zustand: Ein Zustand, dem keine Aktivität zugeordnet ist. Aktivitätszustand: Ein Zustand, dem eine Aktivität zugeordnet ist und der nur durch ein (evtl. bedingtes) Completion Event verlassen werden kann. Vorgehensweise zur Konstruktion eines Zustandsdiagramms: 1. Wahl eines Sequenzdiagramms, das eine typische Interaktion für ein Objekt der betrachteten Klasse zeigt (normalweise das Sequenzdiagramm für das Primärszenario). 2. Betrachten der Lebenslinie des Objekts. 3. Bilden einer Kette von Zuständen, wobei man der Lebenslinie des Objekts folgt: Inaktive Phasen werden durch stabile Zustände modelliert. Aktive Phasen werden durch Aktivitätszustände umgesetzt, in denen lokale Operationen zur Durchführung der Aktivität aufgerufen werden (dies wird später in den Aktivitätsdiagrammen dargelegt). Eintreffende Ereignisse werden durch entsprechend markierte Transitionen von stabilen Zuständen in Aktivitätszustände modelliert. Das Ende von aktiven Phasen wird durch eine Transition mit einem Completion Event von einem Aktivitätszustand in einen stabilen Zustand umgesetzt. 4. Bilden von Zyklen für Abläufe, die wiederholt werden können. Damit ist dann ein Sequenzdiagramm verarbeitet, freilich noch ohne die Details zu den Aktivitäten. Die angegebenen Schritte wiederholt man für alle Sequenzdiagramme, in denen ein Objekt der

7 7 betrachteten Klasse eine Rolle spielt und erweitert das Zustandsdiagramm entsprechend. Meist führt diese Erweiterung zu Verzweigungen von einem stabilen Zustand aus, der in mehreren Sequenzdiagrammen als Ausgangszustand des Objekts auftauchte. Anschließend folgt die Konstruktion von Aktivitätsdiagrammen für die lokalen Operationen (also die Operationen in den Aktivitätszuständen des erstellten Zustandsdiagramms). Außerdem kann das Zustandsdiagramm evtl. noch durch das Hinzufügen von Bedingungen bei den von Aktivitätszuständen ausgehenden Transitionen verfeinert werden. Dies ist wichtig, damit das Zustandsdiagramm deterministisch ist! Zuletzt müssen evtl. auch noch weitere angegebene Sekundärszenarien integriert werden, für die gar kein Sequenzdiagramm erstellt wurde. 2 OBJEKTORIENTIERTER ENTWURF Input: Das statische und dynamische Modell der objektorientierten Analyse. Ziel: Ein Modell der Systemimplementierung; also wie die einzelnen Aufgaben gelöst werden. 2.1 Objektentwurf Das statische Analysemodell wird nun erweitert und überarbeitet. Dazu verwendet man die Informationen aus dem dynamischen Modell der Analyse. Die beiden Modelle werden also zusammengeführt Operationen hinzufügen Das statische Modell soll um Operationen erweitert werden. 1. Betrachten der Interaktionsdiagramme: Für jede an ein Objekt der Klasse K gesendete Nachricht wird eine entsprechende Operation bei K eingeführt. 2. Betrachten der Zustands- und Aktivitätsdiagramme: Es wird eine Operation eingeführt für jedes Call-Event eines Zustandsdiagramms und für jede in einem Aktivitätszustand aufgerufene (lokale) Operation. Das gilt natürlich auch für Aktionen in den zugehörigen Aktivitätsdiagrammen. 3. Benutzerdefinierte Konstruktoren bei nicht-abstrakten Klassen hinzufügen. 4. Benötigte Zugriffsoperationen für Attribute und Rollen hinzufügen (also Getter- und Setter). 5. Beschreiben der Algorithmen der Operationen (z. B. in Java-Pseudocode).

8 Assoziationen ausrichten Mit diesem Schritt sollen bidirektionale Assoziationen vermieden werden, was die spätere Implementierung erleichtert. Dazu wird betrachtet, in welche Richtung die bestehenden Assoziationen durchlaufen werden (z.b. beim Senden von Nachrichten oder Operationsaufrufen). Wenn sich dabei herausstellt, dass dies nur in eine Richtung geschieht, wird die Assoziation entsprechend ausgerichtet Zugriffsrechte bestimmen Nun werden die Zugriffsrechte für Attribute, Rollennamen und Operationen festgelegt. Attribute und Rollennamen sollten dabei nicht öffentlich zugreifbar sein Mehrfachvererbung auflösen Dieser Schritt ist notwendig, wenn die bei der Implementierung benutzte Sprache keine Mehrfachvererbung unterstützt (z.b. Java). Die Auflösung wird durch die Einführung einer Schnittstelle umgesetzt. Eine der beiden Oberklassen wird durch ein Interface ersetzt, das an ihrer Stelle von der Unterklasse geerbt (bzw. implementiert) wird. Zudem wird eine neue Klasse erstellt, welche die entfernte Oberklasse ersetzen soll (vermutlich gleiche Implementierung). Diese neue Klasse implementiert ebenfalls das eingeführte Interface und wird von der Unterklasse zur Delegation bei Aufrufen der Operationen aus dem Interface benutzt. Beispieldiagramme dazu finden sich im Skript in Kapitel (Folie 11) Wiederverwendung von Klassen Oft bestehen bereits erprobte und hochwertige Klassen, die man im Entwurf wiederverwenden möchte. Braucht man noch mehr Funktionen als die vorhandenen, kann man diese durch Spezialisierung in einer Subklasse hinzufügen. Achtung: Vielleicht bietet die geerbte Klasse mehr Operationen an, als man eigentlich benötigt. Dadurch könnte das Kapselungsprinzip verletzt werden. In einem solchen Fall bietet sich eine Wiederverwendung durch Delegation an. Hierbei bekommt die neue Klasse ein (privates) Objekt der wiederverwendeten Klasse, an das sie bei Bedarf Methodenaufrufe weiterleiten kann. 2.2 Realisierung von Zustandsdiagrammen Input: Das Zustandsdiagramm einer Klasse. Ziel: Ein Objektentwurf mit Algorithmen zur Realisierung des durch das Zustandsdiagramm beschriebenen Verhaltens. Zustandsdiagramme können systematisch realisiert und in den Objektentwurf integriert werden. Dazu gibt es vier Möglichkeiten, die im Folgenden beschrieben werden.

9 Prozedurgesteuerte Realisierung Bei diesem Ansatz werden Ereignisse durch erzwungene Benutzereingaben unterschieden. Das setzt voraus, dass es sich bei den Objekten um Kontrollobjekte zur Dialogsteuerung handelt und sich diese somit an der Systemgrenze befinden. Das gesamte Zustandsdiagramm wird überführt in eine Prozedur mit: modalen Dialogen für die (externen) Ereignisse bedingten Anweisungen für Verzweigungen Wiederholungsanweisungen für Zyklen des Diagramms Anmerkung: Diese Methode ist heutzutage offensichtlich keine allzu gute Idee mehr; flexible Benutzerschnittstellen sind so nur schwer zu realisieren Realisierung durch Fallunterscheidung Hier merkt sich das Objekt seinen Zustand in Form eines Attributs. In den Operationen kann dann anhand dieses Wertes entschieden werden, wie sie sich zu verhalten haben. 1. Ein Enumerationstyp stellt die endlich vielen (stabilen) Zustände dar. 2. Die Klasse bekommt ein explizites Zustandsattribut dieses Typs. 3. Die zustandsabhängigen Operationen werden durch Fallunterscheidung nach dem aktuellen Wert des Zustandsattributs realisiert. Vorteil: Leichte Erweiterbarkeit bezüglich neuer Operationen. Eine neue Operation wird einfach zur Klasse hinzugefügt und nutzt die Fallunterscheidung nach dem Wert des Zustandsattributs. Nachteil: Schlechte Erweiterbarkeit bezüglich neuer Zustände. Ein neuer Zustand bedeutet möglicherweise Veränderungen (nämlich einen neuen Fall) bei den Fallunterscheidungen in allen bisherigen Operationen Realisierung durch Zustandsobjekte Ein spezielles Zustandsobjekt übernimmt hier die Ausführung der zustandsabhängigen Operationen. 1. Jedes Objekt der Klasse bekommt ein Zustandsobjekt, das den aktuellen Zustand repräsentiert. 2. Aufrufe von zustandsabhängigen Operationen werden an das Zustandsobjekt delegiert. 3. Das aktuelle Zustandsobjekt führt die gewünschte Aktivität aus und gibt den (neuen) Zustand zurück, der nun mit dem Basisobjekt verbunden werden soll.

10 10 Vorteil: Leichte Erweiterbarkeit bezüglich neuer Zustände. Ein neuer Zustand kann einfach als neue Unterklasse der abstrakten Zustandsklasse umgesetzt werden. Nachteil: Schlechte Erweiterbarkeit bezüglich neuer Operationen. Eine neue Operation muss zumindest in die Klasse und den abstrakten Zustand aufgenommen werden; möglicherweise aber leider auch in alle bisherigen Zustands-Unterklassen Realisierung durch eine Zustandsmaschine Dieser Ansatz realisiert das Zustandsdiagramm, in dem dieses komplett mit verbundenen Objekten nachgebaut wird. Idee: Alle in einem Zustandsdiagramm vorkommenden Größen (stabile Zustände, Transitionen, Aktivitäten, Ereignisse) werden durch Objekte dargestellt. Ereignisse werden von einer speziellen Event-Handle -Operation interpretiert. Das gesamte Zustandsdiagramm wird durch eine verzeigerte Objektstruktur repräsentiert. 2.3 Systementwurf Ziel: Der Objektentwurf soll in die Systemumgebung eingebettet werden. Außerdem wird die Systemarchitektur festgelegt Grundlagen Die Systemarchitektur beschreibt die Gesamtstruktur des Software-Systems durch Angabe von Subsystemen und Beziehungen zwischen diesen. Eine grobe Systemarchitektur wird meist schon zu Beginn der Systementwicklung angegeben. Subsysteme werden durch Pakete oder durch Komponenten (mit Schnittstellen) dargestellt. Grundregeln: hohe Kohärenz (high cohesion): Systemteile die (logisch) zusammen gehören sollen in einem Subsystem zusammengefasst werden. geringe Kopplung (low coupling): Zwischen den Subsystemen sollen möglichst wenige Abhängigkeiten bestehen. Vorteil: Änderung und Austauschen von einzelnen Teilen wird vereinfacht Fassadenklassen Mit Hilfe von Fasadenklassen kann eine geringe Kopplung erreicht werden. Sie vereinen die Dienste verschiedener Klassen eines Subsystems durch Delegation der Aufrufe an die zuständigen Objekte. Ein Beispiel dazu findet sich im Skript in Kapitel (Folie 50).

11 Schichtenarchitekturen In einer Schichtenarchitektur stellt jede Schicht Dienste für die darüber liegende(n) Schicht(en) bereit. Ein bekanntes Beispiel ist das OSI-Modell. Bei geschlossenen Architekturen darf eine Schicht nur auf die direkt darunterliegende Schicht zugreifen, andernfalls spricht man von einer offenen Architektur. Als Client/Server-System bezeichnet man eine Verteilung der Schichten auf verschiedene Rechner. Eine Schicht kann selbst aus verschiedenen Subsystemen bestehen Drei-Schichten-Architektur für betriebliche Informationssysteme Für viele Anwendungen wird eine Drei-Schichten-Architektur gewählt. Diese besteht aus einer Benutzerschnittstelle, dem Anwendungskern und einer Datenbankschnittstelle. Benutzerschnittstelle: Behandelt Nutzereingaben (Mausklicks, Tasten) Ein-/Ausgabe von Daten Dialogkontrolle Anwendungskern: Zuständig für die Anwendungslogik, also die eigentlichen Aufgaben des Problembereichs Ergibt sich aus dem Objektentwurf Datenbankschnittstelle: Sorgt für Speicherung persistenter Daten der Anwendung und den Zugriff darauf Daneben gibt es noch Subsysteme für allgemeine Dienste, wie etwa Kommunikationsdienste, Dateiverwaltung oder Bibliotheken (APIs, GUI, ) Kontrollobjekte Für die Dialogsteuerung (z.b. Verwaltung mehrerer Fenster) oder zur Steuerung der Aufgaben des Anwendungskerns werden häufig eigene Objekte verwendet. Solche Kontrollobjekte sorgen für geringe Kopplung und haben meist ein interessantes Verhalten, das durch Zustandsdiagramme beschrieben werden kann Beobachter Es gilt die Sichtbarkeitsregel zu beachten: Der Anwendungskern darf die Benutzerschnittstelle nicht kennen. Das hat den Vorteil, dass Änderungen an der GUI keine Auswirkungen auf den Code des Anwendungskerns haben. Um die berechneten Daten dennoch anzeigen zu können, kann man mit Beobachtern arbeiten.

12 12 Indirekte Kommunikation durch Beobachter: GUI-Objekte melden sich als Beobachter (Observer) beim Anwendungskern an (addobserver). Falls der Anwendungskern ein Ereignis publizieren will, benachrichtigt er alle seine Beobachter (notifyobservers), die entsprechend reagieren (update). Jeder konkrete Beobachter implementiert das Interface Observer. Der Anwendungskern kennt (zur Programmierzeit) nur das Observer-Interface. Konkrete Observer werden zur Laufzeit dynamisch eingebunden.

Softwaretechnik 2015/2016

Softwaretechnik 2015/2016 Softwaretechnik 2015/2016 PST Lehrstuhl Prof. Dr. Matthias Hölzl HAUPT-/ BACHELOR- SEMINAR ADAPTIVE SYSTEME PST Joschka PROF. DR. Rinke WIRSING 14. JUNI 2009 VORNAME NAME AGENDA Übung 11: 14.01.2016 Schon

Mehr

Objektorientierte Analyse (OOA) Inhaltsübersicht

Objektorientierte Analyse (OOA) Inhaltsübersicht Inhaltsübersicht Einführung Anforderungen an die UML-Diagramme Verhalten: Use-Case-Diagramm Verhalten: Aktivitätsdiagramm Verhalten: Zustandsautomat Struktur: Klassendiagramm Seite 1 Einführung In der

Mehr

Übungen Softwaretechnik I

Übungen Softwaretechnik I Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Übungen Softwaretechnik I Übung 5: Objektorientierte Analyse Einführung Objektorientierung in der

Mehr

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich WS 02/03 Warum muss ein Objekt wissen, zu welcher Klasse es gehört? Damit die Klassenzugehörigkeit

Mehr

Unified Modelling Language

Unified Modelling Language Unified Modelling Language SEP 72 Software-Entwicklung Software-Entwicklung ist Prozess von Anforderung über Modellierungen zu fertigen Programmen Anforderungen oft informell gegeben fertige Programme

Mehr

Modellierungstipps für die Anwendungsfallmodellierung

Modellierungstipps für die Anwendungsfallmodellierung Modellierungstipps für die Anwendungsfallmodellierung Identifiziere nur relativ grobe Abläufe als Anwendungsfälle! Anwendungsfälle werden nicht in weitere Anwendungsfälle zerlegt, höchstens unter Verwendung

Mehr

NACHRICHTENTECHNISCHER SYSTEME

NACHRICHTENTECHNISCHER SYSTEME Einführung UML COMPUTERSIMULATION NACHRICHTENTECHNISCHER SYSTEME 11. Unified Modeling Language UML 220 Standardsprache d zur Visualisierung, i Spezifikation, Konstruktion und Dokumentation komplexer (Software-)

Mehr

Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler

Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler Übungen zur Vorlesung Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler Übungsblatt 7 Lösungshilfe Aufgabe 1. Analysephase (12 Punkte) Eine Firma hat den Auftrag erhalten eine

Mehr

Christoph Kecher, Alexander Salvanos UML 2.5. Das umfassende Handbuch. Rheinwerk. Computing

Christoph Kecher, Alexander Salvanos UML 2.5. Das umfassende Handbuch. Rheinwerk. Computing Christoph Kecher, Alexander Salvanos UML 2.5 Das umfassende Handbuch Rheinwerk Computing Inhalt Vorwort 13 1 Einführung 17 1.1 Weshalb muss Software modelliert werden? 17 1.2 Die Phasen bei der Softwareentwicklung

Mehr

Übung 1 Einführung, Wiederholung Methoden des Software Engineering WS 2012/13. Christian Kroiß

Übung 1 Einführung, Wiederholung Methoden des Software Engineering WS 2012/13. Christian Kroiß Übung 1 Einführung, Wiederholung Methoden des Software Engineering WS 2012/13 Christian Kroiß Inhalt heute Organisatorisches & Ablauf der Übung Auffrischung Vorlesung Softwaretechnik: Aktivitäten bei der

Mehr

TEIL I Strukturdiagramme 1 Einführung Klassendiagramm Objektdiagramm Kompositionsstrukturdiagramm...

TEIL I Strukturdiagramme 1 Einführung Klassendiagramm Objektdiagramm Kompositionsstrukturdiagramm... Auf einen Blick TEIL I Strukturdiagramme 1 Einführung... 13 2 Klassendiagramm... 29 3 Objektdiagramm... 111 4 Kompositionsstrukturdiagramm... 125 5 Komponentendiagramm... 145 6 Verteilungsdiagramm... 161

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Unified Modeling Language (UML) Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Unified Modeling Language (UML)

Mehr

UML (Unified Modelling Language) von Christian Bartl

UML (Unified Modelling Language) von Christian Bartl UML (Unified Modelling Language) von Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 UML Unified Modelling Language... 3 2 Diagrammtypen... 3 2.1 Aktivitätsdiagramm... 3 2.1.1 Notation... 4 2.1.2 Beispieldiagramm...

Mehr

Das umfassende Handbuch

Das umfassende Handbuch Christoph Kecher UML 2.0 Das umfassende Handbuch. Jfjf- Ali' ' w v^i* >" '-«(."', Galileo Press Inhalt Vorwort 11 1 Einführung 1.1 Weshalb muss Software modelliert werden? 13 1.2 Was ist die UML? 15 1.3

Mehr

Objektorientiertes Design

Objektorientiertes Design Objektorientiertes Design Yi Zhao Marc Spisländer Lehrstuhl für Software Engineering Friedrich-Alexander-Universität Erlangen-Nürnberg Zhao, Spisländer FAU Erlangen-Nürnberg Objektorientiertes Design 1

Mehr

UML 2.0 Das umfassende Handbuch

UML 2.0 Das umfassende Handbuch Christoph Kecher V.-M \MM UML 2.0 Das umfassende Handbuch Galileo Computing Inhalt Vorwort 11 1 Einführung 13 1.1 Weshalb muss Software modelliert werden? 13 1.2 Was ist die UML? 15 1.3 Die Geschichte

Mehr

Einführung in die objektorientierte Programmierung

Einführung in die objektorientierte Programmierung Einführung in die objektorientierte Programmierung Seminarunterlage Version: 4.04 Copyright Version 4.04 vom 17. Juni 2016 Dieses Dokument wird durch die veröffentlicht. Copyright. Alle Rechte vorbehalten.

Mehr

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 12. UML GUI-Schicht 1 GUI-Schicht Sichtbarmachen

Mehr

Software Engineering, SoSe 07, WSI, D. Huson, May 7,

Software Engineering, SoSe 07, WSI, D. Huson, May 7, Software Engineering, SoSe 07, WSI, D. Huson, May 7, 2007 17 4 Modellierung in UML Nach einer Vorlesung von Prof. Andreas Zeller, Lehrstuhl Softwaretechnik Universität des Saarlandes, Saarbrücken. 4.1

Mehr

Objektorientierte Systementwicklung

Objektorientierte Systementwicklung Karl-Heinz Rau Objektorientierte Systementwicklung Vom Geschäftsprozess zum Java-Programm Mit 162 Abbildungen vieweg Überblick und Vorbemerkungen 1 1 Objektorientierte Software-Entwicklung 5 1.1 Überblick

Mehr

Objektorientierte Analyse (OOA) Übersicht

Objektorientierte Analyse (OOA) Übersicht Übersicht UML ist die Notation für ein objektorientiertes Vorgehensmodell, sowohl für die Analyse als auch für das Design. Analyse (WAS?) Use Cases Aktivitätsdiagramme (für die Use Cases) Klassendiagramme

Mehr

Von der UML nach C++

Von der UML nach C++ 22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete

Mehr

Begriffe 1 (Wiederholung)

Begriffe 1 (Wiederholung) Begriffe 1 (Wiederholung) Klasse Eine Klasse ist der Bauplan für ein oder mehrere Objekte. In einer Klasse werden Dienste (Methoden) zur Verfügung gestellt. Klassennamen beginnen mit einem Großbuchstaben.

Mehr

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung. Grundkurs C++

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung. Grundkurs C++ Grundkurs C++ Objektmodellierung Grundkurs C++ Objektmodellierung welche Objekte bzw. Klassen werden benötigt? welche Information wird benötigt, um ein Objekt zu beschreiben? welche Beziehungen bestehen

Mehr

Kapitel 5: Das Design

Kapitel 5: Das Design Nach der Analyse kommt... Kapitel 5: Das Design SoPra 2008 Kap. 5: Das Design (1/20) Kapitel 5.1: Überblick Was ist Design? Ergebnis der Analyse: abstrakte Definitionen Objektmodell: Klassen, Assoziationen,

Mehr

Jason T. Roff UML. IT Tutorial. Übersetzung aus dem Amerikanischen von Reinhard Engel

Jason T. Roff UML. IT Tutorial. Übersetzung aus dem Amerikanischen von Reinhard Engel Jason T. Roff UML IT Tutorial Übersetzung aus dem Amerikanischen von Reinhard Engel Inhaltsverzeichnis Inhaltsverzeichnis Einführung 11 Grundlagen der UML 15 Warum wir Software modellieren 16 Analyse,

Mehr

Christoph Kecher UML2. Das umfassende Handbuch. Galileo Press

Christoph Kecher UML2. Das umfassende Handbuch. Galileo Press Christoph Kecher UML2 Das umfassende Handbuch Galileo Press Vorwort 11 TEIL I Strukturdiagramme i '...,....,...,.;..,,,...,, 1.1 Weshalb muss Software modelliert werden? 13 1.2 Was ist die UML? 15 1.3

Mehr

Techniken der Projektentwicklungen

Techniken der Projektentwicklungen Dynamische Modellierung 8. Termin Rückblick auf statische Modellierung Dynamische Modellierung Basiskonzepte Beispiel Erweiterungen Eigenschaften Syntax Rückblick auf statische Modellierung Dynamische

Mehr

So#waretechnologie für Fortgeschri4ene Teil Eide. Stunde IV: UML. Köln 26. Januar 2017

So#waretechnologie für Fortgeschri4ene Teil Eide. Stunde IV: UML. Köln 26. Januar 2017 So#waretechnologie für Fortgeschri4ene Teil Eide Stunde IV: UML Köln 26. Januar 2017 Model of vs. model for TheoreKcal model model for comparison calibra9on verifica9on Empirical model model of deduc9on

Mehr

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel. EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.de/~mtr FRAGEN / ANMERKUNGEN Vorlesung Neue Übungsaufgaben MODELLIERUNG

Mehr

Objektorientierte und Funktionale Programmierung SS 2014

Objektorientierte und Funktionale Programmierung SS 2014 Objektorientierte und Funktionale Programmierung SS 2014 6 Objektorientierte Entwurfsmuster 1 6 Objektorientierte Entwurfsmuster Lernziele Einige wichtige Entwurfsmuster kennen und verstehen Einsatzmöglichkeiten

Mehr

Kapitel 3. Objektorientierte Analyse

Kapitel 3. Objektorientierte Analyse Seite 1 Kapitel 3 Objektorientierte Analyse Prof. Dr. Rolf Hennicker 23.11.2010 Ziele Seite 2 Eine Anwendungsfall-Analyse für ein zu entwickelndes System durchführen können. Schrittweise ein statisches

Mehr

Informationssystemanalyse Use Cases 11 1

Informationssystemanalyse Use Cases 11 1 Informationssystemanalyse Use Cases 11 1 Use Cases Slide 1 Als ein populäres Mittel um Anforderungen zu erfassen und Systeme zu beschreiben, werden Use Cases benutzt. Sie bilden die Basis für eine umfassendere

Mehr

UML -Klassendiagramme

UML -Klassendiagramme UML -Klassendiagramme UML - offline: ArgoUML http://argouml.stage.tigris.org/ UML online: Links genmymodel.com umlet.com/umletino/umletino.html Arten von UML-Diagrammen Diagramm Strukturdiagramm Verhaltensdiagramm

Mehr

7. Konkretisierungen im Feindesign. 7.1 Zustandsdiagramme 7.2 Object Constraint Language

7. Konkretisierungen im Feindesign. 7.1 Zustandsdiagramme 7.2 Object Constraint Language 7. Konkretisierungen im Feindesign 7.1 Zustandsdiagramme 7.2 Object Constraint Language 173 Verfeinerte Modellierung Durch die verschiedenen Sichten der Systemarchitektur wird der Weg vom Anforderungsmodell

Mehr

Objektorientiertes Design

Objektorientiertes Design Objektorientiertes Design Beispiel-Anforderungen: Simple International (SIB) Interaktion mit der SIB: Ablauf von Interaktionen: UML Beispiel für OOD: Vorgehen Ergebnis Beispiel-Anforderungen: Simple International

Mehr

UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language

UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Ziel dieses Seminars Verständnis von Objekt-Orientierung Was sind Klassen? Was ist Vererbung?

Mehr

UML 1.4 Referenz. Matthias Niete Dirk M. Sohn Orientation in Objects GmbH Weinheimer Str Mannheim

UML 1.4 Referenz. Matthias Niete Dirk M. Sohn Orientation in Objects GmbH Weinheimer Str Mannheim Matthias Niete niete@oio.de Dirk M. Sohn sohn@oio.de Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim 1 Allgemeine Notationselemente Paketnamen {Eigenschaftswerte} Notiz Paketnamen

Mehr

Vgl. Oestereich Kap 2.1 Seiten

Vgl. Oestereich Kap 2.1 Seiten Vgl. Oestereich Kap 2.1 Seiten 21-49. 1 Ein Use Case ist eine zeitlich ununterbrochene Interaktion (ein Arbeitsschritt). Use Case Namen bestehen aus einem Subjekt und einem Verb wie zum Beispiel Daten

Mehr

OOA-Dynamische Konzepte

OOA-Dynamische Konzepte Proseminar UML im SS 2005 OOA-Dynamische Konzepte Teil 2 von Benjamin Daeumlich 1 Übersicht Szenario Definition Interaktionsdiagramme Sequenzdiagramm Kommunikationsdiagramm Sequenz- vs. Kommunikationsdiagramm

Mehr

Unified Modeling Language 2

Unified Modeling Language 2 Unified Modeling Language 2 Marvin Frommhold 17.11.2008 Gliederung Einleitung Geschichte Strukturierung der Spezifikation Diagrammtypen Strukturdiagramme Verhaltensdiagramme CASE-Werkzeuge Quellen Was

Mehr

Theorie zu Übung 8 Implementierung in Java

Theorie zu Übung 8 Implementierung in Java Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept

Mehr

Einführung in die Informationsverarbeitung Teil Thaller. Stunde VII: Planen und Realisieren

Einführung in die Informationsverarbeitung Teil Thaller. Stunde VII: Planen und Realisieren Einführung in die Informationsverarbeitung Teil Thaller Stunde VII: Planen und Realisieren Manfred Thaller, Universität zu Köln Köln 18. Dezember 2014 Rekapitulation Der Gang der Argumentation 1. Der Rohstoff:

Mehr

Software Engineering in der Praxis

Software Engineering in der Praxis Software Engineering in der Praxis Praktische Übungen Pinte, Spisländer FAU Erlangen-Nürnberg Objektorientiertes Design 1 / 17 Objektorientiertes Design Florin Pinte Marc Spisländer Lehrstuhl für Software

Mehr

Model-View-Controller

Model-View-Controller Software Design Pattern Model-View-Controller Michael Lühr Gliederung Einführung und Problemstellung Ansatz durch MVC Detaillierte Darstellung der Komponenten Model View Controller Vor- und Nachteile Zusammenfassung

Mehr

HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2

HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2 HSR Rapperswil 2001 Markus Rigling Programmieren: Vererbung 1 Variante 2 Inhaltsverzeichnis: 1. Was ist Vererbung...3 2. Anwendung...3 3. Realisierung...3 4. Vorgehensweise zur Erstellung einer Kind-Klasse...3

Mehr

INSPIRE - Modellierung

INSPIRE - Modellierung INSPIRE - Modellierung Inhalt Motivation Modellierung UML Diagramme INSPIRE-Schulung LKROS 2 Motivation Was ist ein Modell, und warum wollen wir modellieren? Warum brauchen wir eine Modellierungssprache

Mehr

4. Mentorium. UML-Modellierung (Lösungshinweise)

4. Mentorium. UML-Modellierung (Lösungshinweise) Wirtschaftsinformatik (PWIN) 4. Mentorium Objektorientierung & UML-Modellierung (Lösungshinweise) Wirtschaftsinformatik 2 (PWIN), SS 2009, Professur für Mobile Business & Multilateral Security 1 Objektorientierung

Mehr

Konzepte der Programmiersprachen

Konzepte der Programmiersprachen Konzepte der Programmiersprachen Sommersemester 2010 4. Übungsblatt Besprechung am 9. Juli 2010 http://www.iste.uni-stuttgart.de/ps/lehre/ss2010/v_konzepte/ Aufgabe 4.1: Klassen in C ++ Das folgende C

Mehr

Muster in der Software Technik. Grundlegende Konzepte der Software Entwicklung und Objekt Orientierung

Muster in der Software Technik. Grundlegende Konzepte der Software Entwicklung und Objekt Orientierung Muster in der Software Technik Grundlegende Konzepte der Software Entwicklung und Objekt Orientierung Grundlagen für die weitere Vorlesung: Aktivitäten und Prozesse der Software Entwicklung Objektorientierte

Mehr

Unified Modeling Language (UML)

Unified Modeling Language (UML) Kirsten Berkenkötter Was ist ein Modell? Warum Modellieren? Warum UML? Viele, viele Diagramme UML am Beispiel Was ist ein Modell? Ein Modell: ist eine abstrakte Repräsentation eines Systems, bzw. ist eine

Mehr

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05. Creational Patterns Seminar Software-Entwurf WS 2004/05 Thomas Liro Inhaltsüberblick Einordnung des Themas Beschreibung von Design Pattern Auswahl von Design Patterns Was sind Creational

Mehr

Teil II: OOP und JAVA (Vorlesung 9)

Teil II: OOP und JAVA (Vorlesung 9) Teil II: OOP und JAVA (Vorlesung 9) Modul: Programmierung B-PRG Grundlagen der Programmierung II Prof. Dot.-Ing. Roberto Zicari Professur für Datenbanken und Informationssysteme (FB 12) 14.06.06 1 Teil

Mehr

Objektdiagramm Komponentendiagramm Paketdiagramm. 6. Weitere Strukturdiagramme

Objektdiagramm Komponentendiagramm Paketdiagramm. 6. Weitere Strukturdiagramme 6. Weitere Strukturdiagramme Objektdiagramm Komponentendiagramm Paketdiagramm 1 6.1 Objekte Ausprägungsspezifikation von Klassen und Assoziationen 2 Definition Das Objektdiagramm zeigt eine bestimmte Sicht

Mehr

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Anwendungsentwicklung mit Java Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Vererbung (1) 2 Problem: Objekte mit gleichen Attributen/Methoden, aber nicht völlig identisch, z.b., LKW, PKW,

Mehr

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML) Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0 9 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Gerüstbeispiel Ein Duo, Quarto oder Sexto ist ein Gerüst. Die Klassen Duo, Quarto und Sexto sollen durch Vererbung

Mehr

Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl

Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl 26.07.21 Themenübersicht Objektorientierte Software-Entwicklung Objektorientierte Analyse und Design OOA OOD Objektorientierte

Mehr

Klassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla

Klassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla BlaBla Diese Kennzeichnungen sind nur Erläuterungen und nicht Bestandteil des Diagramms Quelle: P.Grässle, H.Baumann, P.Baumann, UML projektorientiert, Galileo Verlag, 2003 21 Primäre Begriffe Kapselung

Mehr

Algorithmen und Datenstrukturen 06

Algorithmen und Datenstrukturen 06 31. Mai 2012 1 Besprechung Blatt 5 Fragen 2 Objektorientierte Programmierung Allgemein Sichtbarkeit Konstanten 3 Unified Modeling Language (UML) Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung

Mehr

Analyse und Design mit U ML 2.3

Analyse und Design mit U ML 2.3 Analyse und Design mit U ML 2.3 Objektorientierte Softwareentwicklung von Bernd Oestereich unter Mitarbeit von Stefan Bremer 9., aktualisierte und erweiterte Auflage Ofdenbourg Verlag München Inhaltsverzeichnis

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 11. UML: Sequenzdiagramm 1 Motivation Es

Mehr

Orientierte Modellierung mit der Unified Modeling Language

Orientierte Modellierung mit der Unified Modeling Language UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler Ziel dieses Seminars Verständnis von Objekt-Orientierung Was sind Klassen? Was ist Vererbung?

Mehr

Objektorientierte Software-Entwicklung

Objektorientierte Software-Entwicklung Objektorientierte Software-Entwicklung Priv.-Doz Dr. Rolf Hennicker 04.10.2002 Kapitel 4 Objektorientierter Entwurf Kapitel 4 Objektorientierter Entwurf 2 Ziele Aus dem statischen und dynamischen Analysemodell

Mehr

Interaktionsdiagramme in UML

Interaktionsdiagramme in UML Interaktionsdiagramme in UML Interaktionsdiagramm ist ein Oberbegriff für eine Reihe von Diagrammen, die das Verhalten eines objektorientierten Systems durch Objektinteraktionen beschreiben Ein Sequenzdiagramm

Mehr

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure 8. Objektorientierte Programmierung Informatik II für Verkehrsingenieure Grundbegriffe ALAN KAY, ERFINDER DER SPRACHE SMALLTALK, HAT DIE GRUNDBEGRIFFE DER OBJEKTORIENTIERTEN PROGRAMMIERUNG WIE FOLGT ZUSAMMENGEFASST:

Mehr

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung Grundkurs C++ Objektmodellierung Grundkurs C++ Objektmodellierung welche Objekte bzw. Klassen werden benötigt? welche Information wird benötigt, um ein Objekt zu beschreiben? welche Beziehungen bestehen

Mehr

Übungen zu Softwaretechnik

Übungen zu Softwaretechnik Prof. Dr. Dr. h.c. M. Broy Lösungsblatt 10 Dr. H. Ehler, S. Wagner 16. Januar 2004 Übungen zu Softwaretechnik Aufgabe 14 Systementwurf / SW-Grobentwurf nach dem V-Modell Auf dem Arbeitsblatt 3 sind Auszüge

Mehr

Objektorientierte Software-Entwicklung

Objektorientierte Software-Entwicklung Objektorientierte Software-Entwicklung Priv.- Doz Dr. Rolf Hennicker 04.10.2002 Kapitel 3 Objektorientierte Analyse Kapitel 3 Objektorientierte Analyse 2 Ziele Eine Anwendungsfall-Analyse für ein zu entwickelndes

Mehr

FACHHOCHSCHULE MANNHEIM

FACHHOCHSCHULE MANNHEIM Objektorientierte Programmierung 5. Vorlesung Prof. Dr. Peter Knauber FACHHOCHSCHULE MANNHEIM Hochschule für Technik und Gestaltung Objektorientierter Entwurf nach Folie 1 Folie 2 Objektorientierter Entwurf

Mehr

Bessere Service-Modellierung durch Kombination von BPMN und SoaML. Nürnberg, 24. Februar 2011

Bessere Service-Modellierung durch Kombination von BPMN und SoaML. Nürnberg, 24. Februar 2011 Bessere Service-Modellierung durch Kombination von BPMN und SoaML Nürnberg, 24. Februar 2011 Vorstellung Maria Deeg Project Manager, Leiterin der MID Akademie m.deeg@mid.de Studium Lehramt Gymnasium Mathematik

Mehr

Einführung in die Informatik 1

Einführung in die Informatik 1 Einführung in die Informatik 1 Objektorientierung Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00 Uhr, o.n.v.

Mehr

Objektorientierte Analyse am Beispiel Silent Kitchen Company

Objektorientierte Analyse am Beispiel Silent Kitchen Company Objektorientierte Analyse am Beispiel Silent Kitchen Company Anforderungsanalyse Die objektorientierte Analyse (OOA) beginnt mit der Anforderungsanalyse. Es soll der Problemraum erkannt, erfasst und definiert

Mehr

Software Engineering Analyse und Analysemuster

Software Engineering Analyse und Analysemuster Software Engineering Analyse und Analysemuster Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Klassendiagramme in der Analyse Im Rahmen der Anforderungsanalyse

Mehr

ANWENDUNGSFALLDIAGRAMM:

ANWENDUNGSFALLDIAGRAMM: EINFÜHRUNG Ein UML Modell kann folgende unterschiedliche Sichtweisen auf den Problemlösungsbereich (Aspekte) enthalten: Dynamische Aspekte Softwareorganisatorische Aspekte Statische Aspekte Welche Aussagen

Mehr

Design Pattern. Motivation, Beispiel Definition "Das" Buch der Gang of Four Ausführliches Beispiel: Facade Beispiele. Aufgabe

Design Pattern. Motivation, Beispiel Definition Das Buch der Gang of Four Ausführliches Beispiel: Facade Beispiele. Aufgabe , Beispiel der Gang of Four Ausführliches Beispiel: Beispiele Wiederverwendung ist etwas Gutes...!!! Wiederverwendung (auch: Verständlichkeit, Änderbarkeit, Portierbarkeit etc.) wird auf Design-Ebene ermöglicht

Mehr

Klausur. Softwareentwurf. 14. Februar 2011 Bearbeitungszeit: 120 Minuten

Klausur. Softwareentwurf. 14. Februar 2011 Bearbeitungszeit: 120 Minuten Klausur Softwareentwurf 14. Februar 2011 Bearbeitungszeit: 120 Minuten FG Datenbank- und Informationssysteme Prof. Dr. Gregor Engels unbedingt vollständig und lesbar ausfüllen! Vorname: Matrikelnummer:

Mehr

Unified. Copyright Adriano Gesué UML 2.0 UML 1.4 UML 1.3 UML 1.2 UML 1.1 UML 1.0 UML 0.9. Method 0.8

Unified. Copyright Adriano Gesué UML 2.0 UML 1.4 UML 1.3 UML 1.2 UML 1.1 UML 1.0 UML 0.9. Method 0.8 Literatur Martin Fowler and Kendall Scott: UML Distilled: Applying the Standard Object Modeling Language. Addison-Wesley 1997. James Rumbaugh, Ivar Jacobson, and Grady Booch: The Unified Language Reference

Mehr

Systemanalyse. - Folien zur Vorlesung für AI3 im Sommersemester Teil 5 -

Systemanalyse. - Folien zur Vorlesung für AI3 im Sommersemester Teil 5 - Systemanalyse - Folien zur Vorlesung für AI3 im Sommersemester 2010 - -Teil 5 - Hans-Jürgen Steffens (by courtesy of Prof. Dr. Thomas Allweyer) Fachbereich Informatik und Mikrosystemtechnik Fachhochschule

Mehr

OO-Design. Klausur FHF * WI1 / WI2 * SS Name:.../ Semester:...

OO-Design. Klausur FHF * WI1 / WI2 * SS Name:.../ Semester:... OO-Design Klausur FHF * WI1 / WI2 * SS 2000 Name:.../ Semester:... Lineares Benotungsschema: 90 Punkte = Note 1, 30 Punkte = Note 4 Aufgabe 1: (28 Punkte) - Ergänzen Sie zum Fallbeispiel "Seminaranmeldung"

Mehr

Vgl. Oestereich Kap 2.4 Seiten

Vgl. Oestereich Kap 2.4 Seiten Vgl. Oestereich Kap 2.4 Seiten 99-110 1 Vgl. Oestereich Kap 2.41 Seiten 99ff 2 Wie das Klassendiagramm ist auch das Objektdiagramm ebenfalls ein Strukturdiagramm. Da die Anzahl der Attribute sehr groß

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Geoinformation I Datenmodellierung

Geoinformation I Datenmodellierung Seite 1 von 61 Geoinformation I Datenmodellierung Seite 2 von 61 Datenmodellierung Übersicht Datenverwaltung und Datenbanken objektorientierte Abbildung der Realität Grundlagen der Objektorientierung Darstellung

Mehr

Objektorientierte Softwareentwicklung

Objektorientierte Softwareentwicklung Objektorientierte Softwareentwicklung Grundkonzepte der UML Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile direkt aus der Vorlesung

Mehr

Einführung in die Programmierung für NF. Übung

Einführung in die Programmierung für NF. Übung Einführung in die Programmierung für NF Übung 11 15.01.2014 Inhalt Korrektur Blatt 10 JList mit ListModel bzw. DefaultListModel ActionListener und InputDialoge UML Praktische Anwendung Observer-Pattern

Mehr

CARL HANSER VERLAG. Mario Jeckle, Chris Rupp, Jürgen Hahn, Barbara Zengler, Stefan Queins. UML 2 glasklar

CARL HANSER VERLAG. Mario Jeckle, Chris Rupp, Jürgen Hahn, Barbara Zengler, Stefan Queins. UML 2 glasklar CARL HANSER VERLAG Mario Jeckle, Chris Rupp, Jürgen Hahn, Barbara Zengler, Stefan Queins UML 2 glasklar 3-446-22575-7 www.hanser.de Einleitung... 1 Liebe Leserin, lieber Leser... 1 Ihre Meinung ist uns

Mehr

7. Zusammenfassung (1)

7. Zusammenfassung (1) Typisierung in OO-Sprachen Subtyping vs. Subclassing Untertypen für Typkonstrukte Funktionsuntertypen und Überschreiben Generik Einsatz von Vererbung konzeptioneller Entwurf: Abstraktion Spezialisierung

Mehr

Martin Fowler, Kendall Scott. UML konzentriert. Eine strukturierte Einführung in die Standard-Objektmodellierungssprache. 2., aktualisierte Auflage

Martin Fowler, Kendall Scott. UML konzentriert. Eine strukturierte Einführung in die Standard-Objektmodellierungssprache. 2., aktualisierte Auflage Martin Fowler, Kendall Scott UML konzentriert Eine strukturierte Einführung in die Standard-Objektmodellierungssprache 2., aktualisierte Auflage Deutsche Übersetzung von Arnulf Mester, Michael Sczittnick

Mehr

Software-Entwurfsmuster (weitere) A01 OOP. Software-Entwurfsmuster (weitere)

Software-Entwurfsmuster (weitere) A01 OOP. Software-Entwurfsmuster (weitere) 2014-01-08 Software-Entwurfsmuster (weitere) 1 185.A01 OOP Software-Entwurfsmuster (weitere) 2014-01-08 Software-Entwurfsmuster (weitere) 2 OOP Vererbung versus Delegation class A { public void x() { z();

Mehr

Inhaltsverzeichnis 1. Objektorientierung: Ein Einstieg 2. Objekte, Klassen, Kapselung

Inhaltsverzeichnis 1. Objektorientierung: Ein Einstieg 2. Objekte, Klassen, Kapselung Inhaltsverzeichnis 1. Objektorientierung: Ein Einstieg... 1 1.1 Objektorientierung: Konzepte und Stärken...... 1 1.1.1 Gedankliche Konzepte der Objektorientierung....... 2 1.1.2 Objektorientierung als

Mehr

Anwendungsfall. Das Anwendungsfall-Diagramm (Use-Cases/Use-Case Diagramm) Die Anwendungsfall-Beschreibung. Dr. Beatrice Amrhein

Anwendungsfall. Das Anwendungsfall-Diagramm (Use-Cases/Use-Case Diagramm) Die Anwendungsfall-Beschreibung. Dr. Beatrice Amrhein Anwendungsfall Das Anwendungsfall-Diagramm (Use-Cases/Use-Case Diagramm) Die Anwendungsfall-Beschreibung Dr. Beatrice Amrhein Kundenbedürfnisse Fertigungs-System 2 Erste Schritte: Kundenbedürfnisse erfassen

Mehr

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung Grundkurs C++ Objektmodellierung Grundkurs C++ Objektmodellierung welche Objekte bzw. Klassen werden benötigt? welche Information wird benötigt, um ein Objekt zu beschreiben? welche Beziehungen bestehen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren

Mehr

Sommersemester Implementierung I: Struktur

Sommersemester Implementierung I: Struktur Sommersemester 2003 Implementierung I: Struktur 2 Aufgabe 3 Implementierung I: Struktur Umfang: 1 Woche Punkte: 50 P. In den ersten beiden Aufgaben wurden die Struktur und das Verhalten des Systems modelliert.

Mehr

Übung Einführung in die Softwaretechnik

Übung Einführung in die Softwaretechnik Lehrstuhl für Informatik 3 RWTH Aachen Übung Einführung in die Softwaretechnik Lösungshinweise zum Übungsblatt 12 Aufgabe 28 Sichtbarkeits-Symbol UML Java + public # protected private (default) Sichtbar

Mehr

Übungen Grundlagen der Architektur von Anwendungssystemen SS 06. Blatt Nr

Übungen Grundlagen der Architektur von Anwendungssystemen SS 06. Blatt Nr Prof. Dr. Frank Leymann / Thorsten Scheibler Institut für Architektur von Anwendungssystemen Universität Stuttgart Übungen Grundlagen der Architektur von Anwendungssystemen SS 06 Blatt Nr.5 18.07.2006

Mehr

Entwurfsmuster. Marc Monecke

Entwurfsmuster. Marc Monecke Entwurfsmuster Marc Monecke monecke@informatik.uni-siegen.de Praktische Informatik Fachbereich Elektrotechnik und Informatik Universität Siegen, D-57068 Siegen 20. Mai 2003 Inhaltsverzeichnis 1 Grundlagen

Mehr

UML Crashkurs v0.1. UML für Fachinformatiker. von Hanjo Müller

UML Crashkurs v0.1. UML für Fachinformatiker. von Hanjo Müller UML Crashkurs v0.1 UML für Fachinformatiker von Hanjo Müller 3. Mai 2005 Inhaltsverzeichnis Inhaltsverzeichnis 1 UML - Unified Modeling Language 3 2 UML im Software Entwurf 4 2.1 Ablauf der Softwareentwicklung.............................

Mehr