Modellierungstechniken im Softwaredesign€¦ · Unified Modeling Language (UML) •...

Post on 18-Oct-2020

1 views 0 download

Transcript of Modellierungstechniken im Softwaredesign€¦ · Unified Modeling Language (UML) •...

Praxisprojekt [ai] Control WS 2011/2012

Lara Baschour und Anne Heiting

Modellierungstechniken im Softwaredesign

Was ist Modellierung?

• Modell = „Ein Modell ist eine Repräsentation eines Systems von Objekten, Beziehungen

und/oder Abläufen. Ein Modell vereinfacht und abstrahiert dabei im Allgemeinen das

repräsentierte System.“

• System= „[...] einen Teil der Realität oder ein noch nicht bestehendes Gebilde, das noch

erstellt werden muss [...].“

Modellierung = „Der Prozess, bei dem ein Modell eines Systems erstellt wird.“

Folien Modellierung, WS 10/11, S. 28 f.

Wozu Modellierung?

Vor allem beim Entwurf komplexer Systeme nötig: • Umfang oft zu komplex für menschliche Vorstellungskraft • Um Konflikte, wie das System aussehen soll, zu vermeiden

(bei mehreren Entwicklern oft unterschiedliche Vorstellungen)

• Explizite Modellierung um Dokumentation und Pflege zu ermöglichen

Kecher, C. (2006)

• Analysephase der Softwareentwicklung ist notwendig um gewünschte Software zu realisieren

• dient der Visualisierung, Vereinfachung, Simulation von Systemen

• Fehler können vermieden, Kosten minimiert, Qualität verbessert werden

• Vor allem bei Erstellung großer Systeme ist Veranschaulichung durch Modell unbedingt erforderlich

Kecher, C. (2006); Berns, K., Schürmann, B., Trapp, M. (2010)

Vergleich mit Bau eines Hauses

• Softwarearchitekt (Architekt) muss sich zunächst damit auseinandersetzen, was gewünschte Software (Haus) leisten soll und wie bzw. ob sie mit weiteren Systemen interagieren soll (Lage des Hauses)

• Es muss festgelegt werden, welche Erwartungen erfüllt und welche nicht erfüllt werden können

Entstehendes Modell = Bauplan

Kecher, C. (2006)

Idee modellbasierter Entwicklung

• in allen Phasen der Entwicklung kommen Modelle zum

Einsatz

Analyse/Definition Entwurf/Design Implementierung Test Einsatz/Wartung Kecher, C. (2006); Hitz, M., Kappel, G., Kapsammer, E., Retschitzegger, W. (2005)

Modellstruktur

• Alle Modelle haben: Syntax = Grammatik/Symbole, die für Modell genutzt

werden dürfen

Semantik = Bedeutung der Symbole des Modells • Wird im Metamodell definiert dadurch Generieren eines Programmiercodes möglich Berns, K., Schürmann, B., Trapp, M. (2010); Hitz, M., Kappel, G., Kapsammer, E., Retschitzegger, W. (2005)

Modellierungstechniken

• Viele verschiedene Modellierungstechniken, wie etwa Unified Modelling Language (UML), Specification and Description Language (SDL), Petri- Netze, Labview, MatLab...

• Häufig erforderlich, verschiedene Modellierungssprachen miteinander zu verknüpfen (Beispiel: UML vs. MatLab)

Berns, K., Schürmann, B., Trapp, M. (2010)

Unified Modeling Language (UML)

• Standard-Modellierungssprache für Software Engineering • Entwickelt von Grady Booch, James Rumbaugh, Ivar Jacobson (1997) • Liegt objekt-orientierten Konzepten zugrunde (reale Welt besteht aus Objekten

die untereinander in Beziehung stehen) • Große Vielfalt an verschiedenen Modellen • sowohl statische als auch dynamische Aspekte modellierbar:

statische Modelle: beschreiben Zustand des Systems zu bestimmtem Zeitpunkt dynamische Modelle: beschreiben zudem, wie sich das System entwickelt

Forbig, P. (2002); Kecher, C. (2006); Seemann, J., Wolff von Gudenberg, J. (2000)

Vorteile der UML

• Präzise Semantik der Notationselemente

• Plattform- und Sprachunabhängigkeit

• Vielfalt an Modellen ermöglicht verschiedene Sichtweisen auf das zu modellierende System

Kecher, C. (2006); Seemann, J., Wolff von Gudenberg, J. (2000)

Übersicht UML 2.0 – Diagramme Kecher, C. (2006)

Strukturmodelle

• Beschreiben Strukturen eines Systems

• Modellierung statischer, zeitunabhängiger Elemente

• Modellierung einzelner Komponenten, Schnittstellen und deren Verknüpfungen zueinander

• Relationen zwischen einzelnen Komponenten werden rein statisch beschrieben

• Keine Beschreibung von dynamischer Interaktion zwischen Komponenten

Berns, K., Schürmann, B., Trapp, M. (2010); Forbig, P. (2002); Hitz, M., Kappel, G., Kapsammer, E., Retschitzegger, W. (2005)

Diagrammtyp Zentrale Frage Stärken

Kecher, C. (2006); Sophist GmbH (2009)

Aus welchen Komponenten besteht das System? Wie stehen diese untereinander in Beziehung?

Modelliert die statischen Elemente eines Systems

Wie kann ich mein Modell so schneiden, dass ich den Überblick bewahre?

Organisieren und Strukturieren von Elementen in Paketen

Welche innere Struktur besitzt das System zu einem bestimmten Zeitpunkt zur Laufzeit?

Momentaufnahme der Objekte eines Systems, wird nur zur Veranschaulichung verwendet

Wie sieht das Innenleben einer Klasse, einer Komponente, eines Systemteils aus?

Zeigt Aufbau und Abhängigkeit einzelner Systemkomponenten, zudem Modellierung von Schnittstellen möglich

Verhaltensmodelle

• Fokus auf dynamischen Aspekten

• Beschreiben Verhalten von Systemeinheiten innerhalb eines Systems

• Verhalten, das sich nicht aus dem Zusammenspiel verschiedener Komponenten ergibt

Berns, K., Schürmann, B., Trapp, M. (2010); Forbig, P. (2002); Hitz, M., Kappel, G., Kapsammer, E., Retschitzegger, W. (2005)

Diagrammtyp Zentrale Frage Stärken

Kecher, C. (2006); Sophist GmbH (2009)

Was leistet mein System aus der Sicht externer Akteure?

Außensicht auf das System, einfache Notations- Mittel

Wie läuft ein bestimmter Algorithmus ab?

Detaillierte Veranschaulichung von Abläufen mit Bedingungen, Schleifen, Verzweigungen und parallelen Abläufen

Welche Zustände kann ein Objekt bei welchen Ereignissen annehmen?

Schachtelung möglich

Interaktionsmodelle

• Modellieren dynamisches Verhalten zwischen einzelnen Komponenten

• Interaktion und Austausch von Informationen zwischen Objekten

• Oft mit zeitlichem Bezug

Berns, K., Schürmann, B., Trapp, M. (2010); Forbig, P. (2002); Hitz, M., Kappel, G., Kapsammer, E., Retschitzegger, W. (2005)

Diagrammtyp Zentrale Frage Stärken Kecher, C. (2006); Sophist GmbH (2009)

Wer tauscht mit wem welche Informationen in welcher Reihenfolge aus?

Darstellung von Informationsaustausch in zeitlicher Abfolge, keine Beziehung von Objekten

Wann befinden sich die Interaktionspartner in was für einem Zustand?

Modelliert Interaktion mit Bezugnahme der resultierenden Zustandswechsel innerhalb einer Zeitspanne

Wann läuft welche Interaktion ab? Verschafft Überblick über einzelne Interaktionen und deren Reihenfolge

Wer arbeitet im System zusammen? Stellt den Informationsaustausch zwischen Kommunikationspartnern dar, jedoch keine zeitliche Abfolge

Fazit

• Modellierung von zentraler Bedeutung bei der Entwicklung komplexer Systeme • Ansonsten können Fehler unterlaufen wie:

„Es wird das falsche Softwareprodukt entwickelt.“ (Kecher 2006, S.15) In Analysephase werden Architekturfragen nicht hinreichend geklärt. „Das Softwareprodukt wird falsch entwickelt.“ (Kecher 2006, S. 15) wenn kein Modell vorhanden, fehlt Kommunikationsgrundlage von Entwicklern und Programmierern

• Oft ist Verknüpfung verschiedener Modelltypen notwendig auf einheitliche

Benennung und Notation achten ( Konsistenz) • noch viele weitere Modellierungstechniken, wie Petri- Netze, Erweiterungen der UML

(Object Constraint Language), SDL, etc.

Quellen

• Vorlesungsfolien „Modellierung“ WS 2010/11; Prof. Norbert Fuhr • Berns, K., Schürmann, B., Trapp, M. (2010). Eingebettete Systeme-Systemgrundlagen und

Entwicklung eingebetteter Software. Vieweg+Tuebner: Wiesbaden. • Forbig, P. (2002). Objektorientierte Softwareentwicklung mit UML. Carl Hanser Verlag: München.

• Hitz, M., Kappel, G., Kapsammer, E., Retschitzegger, W. (2005). UML@Work. dpunkt.verlag:

Heidelberg • Kecher, C. (2006). UML 2.0-Das umfassende Handbuch. Galileo Press: Bonn.

• Martin, J., Odell, J. (1999). Objektorienterte Modellierung mit UML: Das Fundament. Prentice hall:

München. • Seemann, J., Wolff von Gudenberg, J. (2000). Software- Entwurf mit UML. Springer Verlag:

Würzburg.

• Sophist GmbH (2009). Die Diagramme der UML 2. Nürnberg.