Softwaretechnik Unified Modeling Language (UML)



Ähnliche Dokumente
EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick

Unified Modeling Language (UML)

SEQUENZDIAGRAMM. Christoph Süsens

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

Vorlesung Programmieren

Software-Engineering 2. Übungen zur Wiederholung. IT works. Metris GmbH

RUP Analyse und Design: Überblick

Softwareentwicklungspraktikum Sommersemester Grobentwurf

Software Engineering in der Praxis

Vorlesung "Software-Engineering"

Requirements Engineering I

Use Cases. Use Cases

Software Engineering I

a) In der Aufgabenstellung war ein möglichst einfaches Klassendiagramm gefordert. Abb. 1 zeigt eine mögliche Lösung. * * * Aufbau 1..

Guido de Melo Fachvortrag, Uni Ulm UML 2.0. Für den Einsatz in der Praxis

Software Engineering. 3. Anforderungsanalyse. Franz-Josef Elmer, Universität Basel, WS 2006/07

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

Klassendiagramm. (class diagram)

Software Engineering Interaktionsdiagramme

Software Engineering in der Praxis

Software-Engineering SS03. Zustandsautomat

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

4. AuD Tafelübung T-C3

Vgl. Oestereich Kap 2.7 Seiten

Motivation. Motivation

Grundlagen der Softwaretechnik

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Produktskizze. 28. November 2005 Projektgruppe Syspect

Softwaretechnologie -Wintersemester 2013/ Dr. Günter Kniesel

Objektorientierte Programmierung

Arbeiten mit UMLed und Delphi

8 Design Patterns. Events

Softwaretechnologie -Wintersemester 2011/ Dr. Günter Kniesel

Software Engineering Analyse und Analysemuster

7. Analyse-Phase: Datenmodellierung Software Engineering

UML (Unified Modelling Language) von Christian Bartl

Lösungsvorschlag für Übungsblatt 6 Software Engineering 1 (WS 2012/13)

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

Klassendiagramm. Kurzer Überblick über UML - Stand BlaBla

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Gliederung des Vortrages

Objektorientierte Konzepte und Notation in UML. Objekt Klasse Attribut Operation

MS Access 2010 Kompakt

Klausur Software Engineering für WI (EuI)

Objektorientierte Programmierung OOP

4. BEZIEHUNGEN ZWISCHEN TABELLEN

GI-Technologien zur Umsetzung der EU-Wasserrahmenrichtlinie (WRRL): Wissensbasen. Teil 1: Einführung: Wissensbasis und Ontologie.

Melanie Kaspar, Prof. Dr. B. Grabowski 1

Übung 1. Ziel: Statisches Modell (Klassendiagramm) aus allgemeiner Beschreibung erstellen.

s.beat DAP-10X White Paper USB Stromversorgung am Apple Macintosh und deren Auswirkung

Klausur Software-Engineering SS 2005 Iwanowski

Erfahrungen mit Hartz IV- Empfängern

Xesar. Die vielfältige Sicherheitslösung

BPMN. Suzana Milovanovic

Veröffentlichen von Apps, Arbeitsblättern und Storys. Qlik Sense Copyright QlikTech International AB. Alle Rechte vorbehalten.

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Mediator 9 - Lernprogramm

Übung bezeichnung titel thema Übungsgruppe gruppennr wochentag uhrzeit namementor vornamementor Student name vorname matrikelnr

White Paper - Umsatzsteuervoranmeldung Österreich ab 01/2012

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

Datenbankmodelle 1. Das Entity-Relationship-Modell

Handbuch ECDL 2003 Professional Modul 3: Kommunikation Kalender freigeben und andere Kalender aufrufen

Schleswig-Holstein Kernfach Mathematik

Statuten in leichter Sprache

Word 2010 Schnellbausteine

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Abschlussklausur Geschäftsprozessmodellierung und Workflowmanagement

Energetische Klassen von Gebäuden

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

SWE5 Übungen zu Software-Engineering

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Softwareentwicklungspraktikum Sommersemester Feinentwurf

Objektorientierte Analyse

Datenbanken Microsoft Access 2010

Kapitel 10 Aktive DBMS

Erstellen eigener HTML Seiten auf ewon

Software Engineering. 3. Analyse und Anforderungsmanagement

Design Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Enigmail Konfiguration

Bürgerhilfe Florstadt

Integration verteilter Datenquellen in GIS-Datenbanken

Bedienungsanleitung für Mitglieder von Oberstdorf Aktiv e.v. zur Verwaltung Ihres Benutzeraccounts auf

Anleitung über den Umgang mit Schildern

Bedienungsanleitung für BackupMotion

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

Kapitel 3: Hörsaalbeispiel Klassendiagramm (Analysesicht)

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

Datenbanken. Erstellen des Semantischen Modells. Manuel Friedrich. Schiller-Gymnasium Hof

Online Intelligence Solutions TESTABLAUF. 7 Schritte für ein erfolgreiches Testing.

Jederzeit Ordnung halten

PRÜFUNG. Grundlagen der Softwaretechnik

Use Cases. Die Sicht des Nutzers. Fortgeschrittenenpraktikum SS 2004

BUSINESSPLAN Ihr»roter Faden«zur Erstellung eines Businessplans

Vorlesung vom Einführung in die geschäftsprozessorientierte Unternehmensführung

AutoTexte und AutoKorrektur unter Outlook verwenden

Step by Step Softwareverteilung unter Novell. von Christian Bartl

Version White Paper ZS-TimeCalculation und die Zusammenarbeit mit dem iphone, ipad bzw. ipod Touch

Transkript:

Softwaretechnik Unified Modeling Language () Karsten Weicker, Nicole Weicker HTWK Leipzig, FHTW Berlin David Shayne: She s so charismatic, and she s brilliant and beautiful. I mean, a real artist, and, and we speak the same language. (Bullets Over Broadway, 1994) Karsten Weicker, Nicole Weicker 1/ 73

Modellbildung Definition: Modell Definition Ein Modell ist ein bewusst abstrahiertes (konkretes oder gedankliches) Abbild eines vorhandenen Gebildes oder eines konkreten oder gedanklichen Vorbilds für ein zu schaffendes Gebilde. Karsten Weicker, Nicole Weicker 2/ 73

Modellbildung Definition: Modell Definition Ein Modell ist ein bewusst abstrahiertes (konkretes oder gedankliches) Abbild eines vorhandenen Gebildes oder eines konkreten oder gedanklichen Vorbilds für ein zu schaffendes Gebilde. Beispiele: Spielzeugauto, Lebenslauf, Arbeitslosenstatistik, Modell eines geplanten Gebäudes, Musterbrief Karsten Weicker, Nicole Weicker 2/ 73

Modellbildung Modelle in der Software-Enwicklung 1. Modell der involvierten Geschäftsanwendungsfälle 2. Modell der Software auf der Spezifikationsebene 3. Modell der Software auf Architekturebene 4. (Vorgehensmodelle hier irrelevant) Karsten Weicker, Nicole Weicker 3/ 73

Modellbildung 1. In der Analyse: Geschäftsebene Ziel der Modellierung: Identifikation des zu modellierenden Teils der Firma grobes Modell der Abläufe Identifikation der Geschäftsanwendungsfälle aus Kundensicht evtl. interne Details wie Dokumentenfluss Karsten Weicker, Nicole Weicker 4/ 73

Modellbildung 2. Spezifikation: Software Ziel der Modellierung: Einpassen der Software in das Geschäftsmodell Identifikation der Anwendungsfälle Beschreibung der Struktur der involvierten Daten Abläufe eines Anwendungsfalls bzgl. der Daten Zustandsveränderungen (der Software oder der Benutzungsoberfläche) Karsten Weicker, Nicole Weicker 5/ 73

Modellbildung 3. Architektur: Software Ziel der Modellierung: Beschreibung der Verteilung auf verschiedene Server etc. Beschreibung der Komponenten und ihrer Beziehung zueinander (Architektur) Beschreibung der Klassen und ihrer Beziehung zueinander (Feinentwurf) Beschreibung der Abläufe auf den Klassen Karsten Weicker, Nicole Weicker 6/ 73

Diagrammarten in (1) Anwendungsfalldiagramm Wer darf welche Funktion(alität) durchführen Aktivitätsdiagramm Abfolge von Tätigkeiten Klassendiagramm Struktur (der Daten) Objektdiagramm Momentaufnahme eines Klassendiagramms Karsten Weicker, Nicole Weicker 7/ 73

Diagrammarten in (2) Sequenzdiagramm zeitliche Abfolge der Interaktion Kommunikationsdiagramm Zusammenspiel der Klassen Zustandsdiagramm Zustandsveränderungen (Komponentendiagramm) Komponenten zur Laufzeit (Einsatzdiagramm) Verteilung der Software auf die Hardware Karsten Weicker, Nicole Weicker 8/ 73

Modellierungssichten für Software Sicht von Außen GUI Sequenzdiagramm () Anwendungsfälle () Funktionsbaum strukturelle Sicht Entity Relationship Klassendiagramm () Data dictionary System Ablaufsicht Datenflussdiagramm Sequenzdiagramm () Kommunikationsdiagramm () Verhaltenssicht Zustandsdiagramm () Petrinetze Karsten Weicker, Nicole Weicker 9/ 73

Anwendungsfalldiagramm engl. Use Case Diagram Ziel: Sammlung der Anwendungsfälle (Anwendungsszenarios oder Funktionalitäten) unter Berücksichtigung der Frage, welche Benutzer mit welchen Anwendungsfällen interagieren Sicht: von Außen Ebene: Analyse, Spezifikation Details werden ausgespart Karsten Weicker, Nicole Weicker 10/ 73

Anwendungsfalldiagramm: Notation (1) Akteure (Menschen und Systeme) Anwendungsfall Akteur interagiert selbstinitiiert mit dem Anwendungsfall Akteur wird vom Anwendungsfall in die Interaktion eingebunden Karsten Weicker, Nicole Weicker 11/ 73

Anwendungsfalldiagramm: Notation (2) Interaktion kann von beiden ausgehen verschiedene Akteure werden zusammengefasst Ein Teilablauf wird aus dem Szenario ausgelagert und separat beschrieben Karsten Weicker, Nicole Weicker 12/ 73

Anwendungsfalldiagramm: Notation (3) Eine Erweiterung bzw. Variante wird an einen Anwendungsfall angelagert Karsten Weicker, Nicole Weicker 13/ 73

Anwendungsfalldiagramm: Beispiel (Software) Karsten Weicker, Nicole Weicker 14/ 73

Anwendungsfall: Ablaufbeschreibung Jeder Anwendungsfall wird genauer beschrieben: natürlichsprachlich gemäßt dem Formular Name:... Kurzbeschreibung:... Akteure:... fachliche Auslöser:... normaler Ablauf: 1....... alternative Abläufe:... Vor-/Nachbedingungen:... oder mit Aktivitäts- oder Sequenzdiagrammen Karsten Weicker, Nicole Weicker 15/ 73

Anwendungsfalldiagramm: Beispiel (Geschäftssystem) Mensa mit Möglichkeit der Buchung vorab Karsten Weicker, Nicole Weicker 16/ 73

Einbettung der Software in s Geschäftssystem Karsten Weicker, Nicole Weicker 17/ 73

Anwendungsfalldiagramm: Beispiel (SW) Karsten Weicker, Nicole Weicker 18/ 73

Aktivitätsdiagramm engl. activity diagram Ziel: Aktivitäten und Verantwortlichkeiten eines Systems dargestellen Sicht: von Außen oder Ablauf Ebenen: Analyse, (Spezifikation) Hier sind insbesonders Kontroll- und Datenflüsse von Interesse Karsten Weicker, Nicole Weicker 19/ 73

Aktivitätsdiagramm: Notation (1) Aktivität Startknoten Endknoten Kontrollfluss Datenobjekt Karsten Weicker, Nicole Weicker 20/ 73

Aktivitätsdiagramm: Notation (2) Datenfluss Entscheidung zwischen Alternativen Zuordnung zu Systemen/Akteuren Karsten Weicker, Nicole Weicker 21/ 73

Aktivitätsdiagramm: Notation (3) Parallele Vorgänge Karsten Weicker, Nicole Weicker 22/ 73

Aktivitätsdiagramm: Beispiel Karsten Weicker, Nicole Weicker 23/ 73

Aktivitätsdiagramm in der Analyse interne Abläufe nicht berücksichtigt Konzentration auf die Tätigkeit von Außenstehenden Bedingungen an Verzweigungen: alle Möglichkeiten und eindeutig parallele Prozesse nur über Synchronisation zusammenführen Karsten Weicker, Nicole Weicker 24/ 73

Aktivitätsdiagramm in der Analyse Beispiel: Mensa der Zukunft Karsten Weicker, Nicole Weicker 25/ 73

Zwei Minuten Erstellen Sie ein kleines Aktivitätsdiagramm, das Ihre Aktivität während dieser Vorlesung beschreibt. Karsten Weicker, Nicole Weicker 26/ 73

Klassendiagramm engl. Class Diagram Ziel: Die Struktur der Daten einer Software soll dargestellt werden. Sicht: strukturell Ebenen: Spezifikation, Entwurf Benutzersicht oder Abläufe sind hier höchstens am Rande von Belang Karsten Weicker, Nicole Weicker 27/ 73

Klassendiagramm: Notation (1) Klasse Assoziation mit einer Bezeichnung und Multiplizität Assoziation mit Rollenangabe und Multiplizität Assoziation mit Navigationsrichtung Karsten Weicker, Nicole Weicker 28/ 73

Klassendiagramm: Notation (2) Aggregation (has-a relationship) Komposition (contains-a relationship) Datentyp Schnittstelle Karsten Weicker, Nicole Weicker 29/ 73

Klassendiagramm: Notation (3) Generalisierung als Klasse Generalisierung als Schnittstelle Karsten Weicker, Nicole Weicker 30/ 73

Klassendiagramm: Notation (4) Paket Benutzen der Dienste einer Klasse Karsten Weicker, Nicole Weicker 31/ 73

Klassendiagramm: Beispiel (Analyse) Karsten Weicker, Nicole Weicker 32/ 73

Klassendiagramm Schritte zur Erstellung 1. Identifikation möglicher Klassen 2. Assoziationen: Wo besteht ein Zusammenhang zwischen den Klassen? 3. Kardinalitäten eintragen 4. Attribute definieren 5. Verifikation Probleme identifizieren, Datenmodell vereinfachen Sind immer alle Attribute belegt? Kommen dieselben Attribute in mehreren Klassen vor? Karsten Weicker, Nicole Weicker 33/ 73

Klassendiagramm Mensa der Zukunft Karsten Weicker, Nicole Weicker 34/ 73

Objektdiagramm engl. Object Diagram Ziel: Darstellung einer möglichen realen Instanz des Klassendiagramms Sicht: strukturell Klassen werden durch (ggf. mehrere) Objekte ersetzt Ebenen: Spezifikation, Entwurf wie Klassendiagramm, aber keine Multiplizität an Assoziationen Karsten Weicker, Nicole Weicker 35/ 73

Objektdiagramm: Notation Objekt einer Klasse Durch Name bezeichnetes Objekt Link zwischen zwei Objekten Karsten Weicker, Nicole Weicker 36/ 73

Objektdiagramm: Beispiel Karsten Weicker, Nicole Weicker 37/ 73

Zwei Minuten Schreiben Sie ein Dutzend Objekte aus diesem Raum auf. Fassen Sie ähnliche Objekte zu Klassen zusammen. Finden Sie Attribute (Daten) zu einer dieser Klassen. Karsten Weicker, Nicole Weicker 38/ 73

Sequenzdiagramm engl. Sequence Diagram Ziel: Die Darstellung der Interaktion von Akteuren und Objekten entlang einer Zeitachse Sicht: Ablauf, von Außen Ebenen: Spezifikation, Entwurf, sehr eingeschränkt Analyse Dies kann auf unterschiedlich hohem Niveau geschehen. vorrangig: Mutationsereignisse Karsten Weicker, Nicole Weicker 39/ 73

Sequenzdiagramm: Notation Objekt mit Lebenslinie Methodenaufruf Karsten Weicker, Nicole Weicker 40/ 73

Sequenzdiagramm: Notation Erzeugen eines Objekts Löschen eines Objekts Karsten Weicker, Nicole Weicker 41/ 73

Sequenzdiagramm: Notation Alternative Abläufe Karsten Weicker, Nicole Weicker 42/ 73

Sequenzdiagramm: Notation Wiederholung im Ablauf Methodenaufruf selben Objekt beim Karsten Weicker, Nicole Weicker 43/ 73

Sequenzdiagramm: Beispiel Karsten Weicker, Nicole Weicker 44/ 73

Sequenzdiagramm: Checkliste Welche Klassen sind vom Mutationsereignis betroffen? Startobjekt bestimmen Wie wird das Mutationsereignis weitergeleitet? Parameter der Ereignisse welche Information brauchen die Objekte? Verifikation: Gehen die Ereignisse entlang der Assoziationen im Klassendiagramm? Karsten Weicker, Nicole Weicker 45/ 73

Sequenzdiagramm Mensa der Zukunft: Menü abholen Karsten Weicker, Nicole Weicker 46/ 73

Sequenzdiagramm Mensa der Zukunft: Menü abholen Karsten Weicker, Nicole Weicker 47/ 73

Zusammenspiel der -Diagramme Modellierung eines IT-Systems Geschäftssystem G.-Anw.fälle Akt.diagramme Software-Architektur Anwendungsfalldiagramm Sequenzdiagramm ergibt sich aus pro Anwendungsfall GUI-Prototyp Zusammenhang herstellen Klassendiagramm Sequenzdiagramm Zustandsdiagramm Kommunikationsdiagramm Karsten Weicker, Nicole Weicker 48/ 73

Kommunikationsdiagramm engl. Collaboration Diagram Ziel: Zeitlicher Ablauf in einem Objektdiagramm Ebenen: Spezifikation, Entwurf Sicht: Ablauf vorrangig: Anzeigeaufrufe Karsten Weicker, Nicole Weicker 49/ 73

Kommunikationsdiagramm: Notation Aufruf im Objektdiagramm mit nummerierter Reihenfolge Karsten Weicker, Nicole Weicker 50/ 73

Kommunikationsdiagramm: Beispiel Karsten Weicker, Nicole Weicker 51/ 73

Kommunikationsdiagramm: Checkliste Welche Information soll in der Abfrage dargestellt werden? Welche Klassen werden gebraucht? Was ist das Startobjekt? Ereignispfad wird bestimmt. Benötigte Attribute werden angegeben Verifikation: Folgen die Ereignisse den Assoziationen? Wird richtig iteriert? Karsten Weicker, Nicole Weicker 52/ 73

Zustandsdiagramm engl. State Diagram Ziel: Wann treten Zustandsveränderungen im Systemverhalten auf Sicht: Verhalten Ebenen: Analyse, Spezifikation, event. Entwurf Meist: Zustand eines konkreten Objekts Karsten Weicker, Nicole Weicker 53/ 73

Zustandsdiagramm: Notation Startknoten Endknoten Zustand Zustand mit festen Aktivitäten Karsten Weicker, Nicole Weicker 54/ 73

Zustandsdiagramm: Notation Zustandsübergang (Ereignis) Zustandsübergang (Ereignis) Karsten Weicker, Nicole Weicker 55/ 73

Zustandsdiagramm: Notation hierarchischer Zustand hierarchischer Zustand in anderem Diagramm Karsten Weicker, Nicole Weicker 56/ 73

Zustandsdiagramm: Notation Zustand mit Gedächtnis Durchführung Zustandsdia- Parallele zweier gramme Karsten Weicker, Nicole Weicker 57/ 73

Zustandsdiagramm: Beispiel Karsten Weicker, Nicole Weicker 58/ 73

Zustandsdiagramm Verhaltenssicht: Checkliste Welche Mutationsereignisse sind für das Objekt wichtig? Wie sieht ein normales Leben des Objekts aus? Welche Zustände gibt es? Was tun die Objekte? Aktionen Karsten Weicker, Nicole Weicker 59/ 73

Zustandsdiagramm Verhaltenssicht: Mensa der Zukunft Karsten Weicker, Nicole Weicker 60/ 73

Komponenten- und Einsatzdiagramm engl. Component Diagram bzw. Deployment Diagram Ziel: Modellierung der Implementation eines Systems Modellierung der Implementationsumgebung eines Systems Für die Software-Architektur interessant wird in dieser Vorlesung nicht weiter betrachtet Sie sollen nur kurz die wichtigsten Symbole sehen Karsten Weicker, Nicole Weicker 61/ 73

Komponenten- und Einsatzdiagramm: Notation Komponente Paket Karsten Weicker, Nicole Weicker 62/ 73

Komponenten- und Einsatzdiagramm: Notation Schnittstelle Zugriff auf die Schnittstelle einer Komponente Karsten Weicker, Nicole Weicker 63/ 73

Object Constraint Language Object Constraint Language Motivation ist eine umfassende Spezifizierungssprache gehört zu es können komplexere Zusammenhänge als in den Diagrammen ausgedrückt werden hier: Beschreibung von Invarianten in Klassendiagrammen auch: Vor-/Nachbedingungen Wächter (guards) Karsten Weicker, Nicole Weicker 64/ 73

Object Constraint Language Object Constraint Language Operationen arithmetisch: +,,, / boolesch: Not, And, Or, Xor, Implies vergleichend: <, >, <=, >=, <>, = prädikatenlogisch: Menge->forall(x : Typ Bedingung ) Menge->exists(x : Typ Bedingung ) Mengen-Operationen: Anzahl der Elemente: Menge->size() Test auf Leerheit: Menge->notEmpty() Restriktion: Menge->select(Bedingung) Summe: Menge.Attribut->sum() Karsten Weicker, Nicole Weicker 65/ 73

Object Constraint Language Object Constraint Language Direkt im Klassendiagramm Karsten Weicker, Nicole Weicker 66/ 73

Object Constraint Language Object Constraint Language Ergänzend zum Klassendiagramm Alle Angestellten sind mindestens 16 Jahre alt contex Firma inv: self.angestellter->forall(p:person p.alter > 16) Karsten Weicker, Nicole Weicker 67/ 73

Object Constraint Language Object Constraint Language Ergänzend zum Klassendiagramm Die Anzahl der Angestellten stimmt. contex Firma inv: self.angestellter->size() = self.anzahlbeschäftigte Karsten Weicker, Nicole Weicker 68/ 73

Object Constraint Language Object Constraint Language Ergänzend zum Klassendiagramm Eine große Firma zahlt mindestens 100000 Euro Gehaltsgeld aus. contex Firma inv: self.status = groß implies self.angestellte.gehalt->sum() > 100000 Karsten Weicker, Nicole Weicker 69/ 73

Object Constraint Language Object Constraint Language Ergänzend zum Klassendiagramm Ehefrauen sind weiblich und mindestens 16. contex Person inv: self.ehefrau->notempty() implies ( self.ehefrau.geschlecht = weiblich and self.ehefrau.alter >= 16 ) Karsten Weicker, Nicole Weicker 70/ 73

Object Constraint Language Object Constraint Language Ergänzend zum Klassendiagramm Die Firma enthält Angestellte über 50. contex Firma inv: self.angestellter->select(alter>50)->notempty() Karsten Weicker, Nicole Weicker 71/ 73

Object Constraint Language Zwei Minuten Beschreiben Sie mit OCL, die Bedingung, dass alle Angestellen einer Firma verheiratet sind. Karsten Weicker, Nicole Weicker 72/ 73

Object Constraint Language Zwei Minuten Beschreiben Sie mit OCL, die Bedingung, dass alle Angestellen einer Firma verheiratet sind. contex Firma inv: self.angestellter->forall( p:person p.ehefrau->notempty() Or p.ehemann->notempty ) Karsten Weicker, Nicole Weicker 73/ 73