Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 01/02 Kap. 4: Analyse
Modellierung komplexer Realität mit Objekten
Vorgehen orientiert an Vorstellung Modell:Entwicklung in mehreren Schritten - iterativund mit situationsangepassten Verbesserungen - inkrementell
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 01/02 Kap. 4: Analyse
Das sollten Sie heute lernen
Es gibt eine Sprache zur Beschreibung von Objekten und ihren Beziehungen:
Die Unified Modelling Language
Elemente der Unified Modelling Language Graphische Notationen Lesen von UML Diagrammen Umsetzung über Case Tools
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 01/02 Kap. 4: Analyse
Simulation komplexer technischer Anlagen
Teil II: Elemente zum Bau virtueller Anlagenkomponenten
Kapitel 4:Objektorientierte Analyse mit der Unified Modelling Language
Inhalt Teil I
Objektorientierte Analyse mit der Unified Modelling Language Teil II
Beispiel: Wärmebedarf eines Wohngebäudes
Anhang UML Quick Reference Ergänzung: Praktikum
-Analyse und Entwurf mit Rational Rose
am Beispiel Wärmebedarf eines Wohngebäudes
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 01/02 Kap. 4: Analyse
Was ist die UML
UML entstand aus der Zusammenführung von drei Notationen verschiedener Autoren:
Grady Booch
Jim Rumbaugh
Ivar Jacobson
UML ist sehr umfangreich
UML ist seit 1997 von der Object Management Group OMG standardisiert.
UML hat sich am Markt durchgesetzt
Quelle für UML www.rational.com
www.omg.org
UML 1.3
Arbeiten mit der UMLArbeitsumgebung auf Basis von Rational Rose
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 01/02 Kap. 4: Analyse
Methode und Notation
UML stellt zur Verfügung:ein Meta-Modell (grundlegende Modellierungskonzepte, Modellelemente und ihre Semantik)
eine graphische Notation zur Visualisierung des Meta-Modells
Richtlinien (Namenskovenktionen, Anordnung von Symbolen usw.)
UML ist keine Methode, weil sie kein Vorgehensmodell definiert
Dies geschieht erst mit dem Rational Unified Process
UML ist durch Verwendung von Stereotypen erweiterbar
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 01/02 Kap. 4: Analyse
Evolution der Unified Modelling Language: UML
2000 Unified Process
Herbst 1998 UML 1.3Von der OMG als Standard akzeptiert, Dez. 1997
Überarbeiteter Vorschlag an die OMG, Sept.1997 UML 1.1 Drei Bücher
-- User Guide
-- Reference Manual
-- Process Guide
Einreichung an die OMG, Jan. 1997 UML 1. Übergang
Unified Modelling Language Beta Version OOPSLA 1996
WWW - Juni 1996 UML 0.9 Nur WWW-Version
OOPSLA 1995 Unified Method 0.8 Handbücher
Booch 1993 OMT - 2
Andere Methoden Booch 1991 OMT - 1 OOSE
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 01/02 Kap. 4: Analyse
Verschiedene Sichten eines SW-Systems
UML ist für den gesamten Software-Lebenszyklus entwickelt worden
Verschiedene Sichten, die mit UML darstellbar sind:
Spezifikation(Nutzung), Analyse, Entwurf, Implementierung, Betrieb
DESIGN VIEW
PROCESS VIEW
DEPLOYMENT VIEW
COMPONENT VIEW
USE CASEVIEW
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 01/02 Kap. 4: Analyse
Klassen: Attribute und Methoden
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 01/02 Kap. 4: Analyse
Beziehungen: Diagrammtypen der UML
Sichten werden über Diagramme graphisch beschrieben
Die wichtigsten DiagrammeUse Case-Diagramm
Klassendiagramm
Paketdiagramm
Komponenten-Diagramm
Weitere Diagramme sind z.B.Interaktionsdiagramm (Sequenzdiagramm, Kollaborationsdiagramm)
Zustandsdiagramm
Deployment-Diagramm
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 01/02 Kap. 4: Analyse
Use Case-Diagramm
Beschreibt Benutzungsszenarien eines Systems (Anwendungsfälle)
WER (Akteur) tut WAS (Use Case)
Geeignet für:Anforderungsspezifikation
Kommunikation mit dem Auftraggeber
Geschäftsprozessmodellierung
Workflowmodellierung
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 01/02 Kap. 4: Analyse
Elemente eines Use Case-Diagramms
Use Case A Use Case B
Use Case
Use Case A Use Case B
<<include>>
Use Case A Use Case B
<<extend>>
Actor
Anwendungsfall A ist eine Variation vom Anwendungsfall B (Generalisierung)
Akteur
Anwendungsfall
Der Anwendungsfall A ist ein Bestandteil vom Anwendungsfall B
Der Anwendungsfall A erweitert an einer bestimmten Stelle den Anwendungsfall B
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 01/02 Kap. 4: Analyse
Beispiel für ein Use Case-Diagramm
VDI 2067En 832
Plant CalculationUser Building Calculation
<<extend>>
Die Anwendung Gebäudeberechnung enthält Berechnungen nach En 832 und VDI 2067. Sie wurde um eine Berechnung der RLT Anlage erweitert
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 01/02 Kap. 4: Analyse
Klassendiagramm
Zentrales Element der UML und der objektorientierten Softwareentwicklung
Darstellungen von Klassen und Objekten mit Beziehungen, Methoden und Attributen
Viele Details darstellbar, z.B.:spezielle Eigenschaften einer Klasse (abstrakt, interface)
Kardinalitäten der Beziehungen
Navigationsfähigkeit
usw.
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 01/02 Kap. 4: Analyse
Elemente eines Klassendiagramms
Aggregation: Klasse A beinhaltet die Klasse B
Vererbung: Klasse A erbt von der Klasse B
Klasse
Abhängigkeit: Klasse A hängt von der Klasse B in irgendeiner Art und Weise ab
Assoziation: Klassen A und B stehen in einer Beziehung zu einander
Class
- attribute
+ operation()
Class A ClassB
Class A ClassB
Class A ClassB
*11 *
Class A ClassB
*11 *
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 01/02 Kap. 4: Analyse
Beispiel für ein KlassendiagrammCBuilding
+ CalculateHeatingRequirement()+ set_m_pHeatedThermalZone()+ set_m_pUnheatedThermalZone()+ getVolumeOf HeatedZone()+ getSurf aceAreaOf HeatedZone()+ getFloorAreaOf HeatedZone()+ getFootprintAreaOf HeatedZone()+ getGlazingAreaOf HeatedZone()+ remov eUnheatedThermalZones()
CHeatedThermalZone
+ m_dHeatCapacity : double = dHeatCapacity+ m_dFootprintArea : double = dFootprintArea
+ CHeatedThermalZone()+ CalculateHeatingRequirement()- CalculateTransmissionLoss()- CalculateVentilationHeatLoss()- CalculateInternalHeatGains()
1
1
1
+m_pHeatedThermalZone1
HeatedThermalZone
CExternalEnclosure
# m_dOrientation : double = dOrientation# m_dInclination : double = dInclination
+ CExternalEnclosure()+ CalculateTransmissionHeatLoss()
CEnclosure
+ m_dArea : double = dArea+ m_dUValue : double = dUValue
+ CEnclosure()+ CalculateSpecif icTransmissionHeatLoss()+ CalculateTransmissionHeatLoss()+ CalculateSolarHeatGains()
CEnvironment
+ getExternalTemperature()+ getGroundTemperature()+ getSolarIrradiation()
11 1
+m_pEnvironment
1 bound to
CThermalZone
+ m_dVolume : double = dVolume+ m_dArea : double = dArea+ m_dAirchange : double = dAirchange+ m_dPhi : double = dPhi
+ CThermalZone()+ ConnectWall()+ CalculateSpecif icVentilationHeatLoss()+ CalculateSpecif icTransmissionHeatLoss()+ CalculateSolarHeatGains()+ getSurf aceArea()+ getGlazingArea()+ getExternalTemperature()
*
#m_listEnclosures
*surrounded by
1
1
+m_pEnvironment 1
1
bound to
Die Klasse Gebäude beinhaltet eine geheizte thermische ZoneDiese erbt von der Klasse thermische ZoneDie Klasse thermische Zone steht zur Klasse Hülle in der Beziehung umgeben und beinhaltend Randbedingungen der Klasse UmgebungDie Klasse äußere Hülle erbt Eigenschaften der Klasse Hülle und beinhaltet Randbedingungen der Klasse Umgebung
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 01/02 Kap. 4: Analyse
Paketdiagramm
Strukturierung eines Software-Systems in größere Einheiten als Klassen
Vermittelt einen Grobüberblick über ein Software-System
Wichtig für Darstellung von Abhängigkeiten auf höherer Ebene
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 01/02 Kap. 4: Analyse
Elemente eines Paketdiagramms
Paket
Abhängigkeit: Paket A hängt vom Paket B ab
Package
Package A
Package B
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 01/02 Kap. 4: Analyse
Beispiel für ein Paketdiagramm
Building Description
Building Calculation
Plant Calculation
Das Paket Gebäudesimulation hängt ab vom Paket BeschreibungDas Paket Anlagensimulation hängt ab von den Paketen Beschreibung und Gebäudesimulation
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 01/02 Kap. 4: Analyse
Komponenten
Eine Komponente ist ein unabhängiger, austauschbarer Teil eines Softwaresystems, die eine sinnvolle Aufgabe im Kontext einer Softwarearchitektur erledigt.
Eine Komponente ist auch eine standardisierte, wiederverwendbare und im Vorfeld implementierte Einheit, welche benutzt wird, um Konstrukte einer Programmiersprache zu erweitern und Softwareanwendungen zu bauen.
Eine Komponente kann mehrere Klienten haben, kennt aber nicht den Kontext in dem sie benutzt wird.
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 01/02 Kap. 4: Analyse
Komponentendiagramm
UML unterstützt die komponentenbasierte Softwareentwicklung
In der UML werden Implementierungskomponenten („technische Komponenten“) direkt unterstützt als Komponenten in Form von Quellcode Komponenten in Form von Binärcode Komponenten in Form von ausführbaren Code
UML unterstützt die von Microsoft verwendete Lollipop Notation
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 01/02 Kap. 4: Analyse
Elemente eines Komponentendiagramms
Komponente
Interface (Schnittstelle)
Component
Interface
Die Komponente A realisiert das Interface A
Die Komponente A hängt vom Interface der Komponente B ab.
Component A
Interface A
Component A
Component B
Interface B
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 01/02 Kap. 4: Analyse
Beispiel für ein Komponentendiagramm
CalcEn832
ICaculation
IFactoryRenSim.exe
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 01/02 Kap. 4: Analyse
Aufbau von Systemen mit Objekten
Systeme werden dadurch aufgebaut, dass Objekte in Beziehungen treten, von anderen Objekten genutzt werden.Das System wird von Anwendern genutzt. Dies wird über Use Case Diagramme beschrieben.Use Cases werden durch die Verbindung von Packages implementiert.Packages können aus Komponenten aufgebaut werden.Komponenten sind aus Objekten zusammengesetzt.Objekte, Komponenten, und Packages findet man iterativ
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 01/02 Kap. 4: Analyse
Diese Fragen sollten Sie jetzt beantworten können
Was ist die UML und was nicht Wie beschreibt die UML Klassen Wichtige Beziehungen zwischen Klassen Was ist ein Use Case Was ist ein Klassendiagramm Wie beschreibt man eine Komponente Wie liest man ein UML Diagramm Zu was sind Case Tools nötig