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

19
Praxisprojekt [ai] Control WS 2011/2012 Lara Baschour und Anne Heiting Modellierungstechniken im Softwaredesign

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

Page 1: Modellierungstechniken im Softwaredesign€¦ · Unified Modeling Language (UML) • Standard-Modellierungssprache für Software Engineering • Entwickelt von Grady Booch, James

Praxisprojekt [ai] Control WS 2011/2012

Lara Baschour und Anne Heiting

Modellierungstechniken im Softwaredesign

Page 2: Modellierungstechniken im Softwaredesign€¦ · Unified Modeling Language (UML) • Standard-Modellierungssprache für Software Engineering • Entwickelt von Grady Booch, James

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.

Page 3: Modellierungstechniken im Softwaredesign€¦ · Unified Modeling Language (UML) • Standard-Modellierungssprache für Software Engineering • Entwickelt von Grady Booch, James

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)

Page 4: Modellierungstechniken im Softwaredesign€¦ · Unified Modeling Language (UML) • Standard-Modellierungssprache für Software Engineering • Entwickelt von Grady Booch, James

• 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)

Page 5: Modellierungstechniken im Softwaredesign€¦ · Unified Modeling Language (UML) • Standard-Modellierungssprache für Software Engineering • Entwickelt von Grady Booch, James

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)

Page 6: Modellierungstechniken im Softwaredesign€¦ · Unified Modeling Language (UML) • Standard-Modellierungssprache für Software Engineering • Entwickelt von Grady Booch, James

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)

Page 7: Modellierungstechniken im Softwaredesign€¦ · Unified Modeling Language (UML) • Standard-Modellierungssprache für Software Engineering • Entwickelt von Grady Booch, James

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)

Page 8: Modellierungstechniken im Softwaredesign€¦ · Unified Modeling Language (UML) • Standard-Modellierungssprache für Software Engineering • Entwickelt von Grady Booch, James

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)

Page 9: Modellierungstechniken im Softwaredesign€¦ · Unified Modeling Language (UML) • Standard-Modellierungssprache für Software Engineering • Entwickelt von Grady Booch, James

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)

Page 10: Modellierungstechniken im Softwaredesign€¦ · Unified Modeling Language (UML) • Standard-Modellierungssprache für Software Engineering • Entwickelt von Grady Booch, James

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)

Page 11: Modellierungstechniken im Softwaredesign€¦ · Unified Modeling Language (UML) • Standard-Modellierungssprache für Software Engineering • Entwickelt von Grady Booch, James

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

Page 12: Modellierungstechniken im Softwaredesign€¦ · Unified Modeling Language (UML) • Standard-Modellierungssprache für Software Engineering • Entwickelt von Grady Booch, James

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)

Page 13: Modellierungstechniken im Softwaredesign€¦ · Unified Modeling Language (UML) • Standard-Modellierungssprache für Software Engineering • Entwickelt von Grady Booch, James

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

Page 14: Modellierungstechniken im Softwaredesign€¦ · Unified Modeling Language (UML) • Standard-Modellierungssprache für Software Engineering • Entwickelt von Grady Booch, James

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)

Page 15: Modellierungstechniken im Softwaredesign€¦ · Unified Modeling Language (UML) • Standard-Modellierungssprache für Software Engineering • Entwickelt von Grady Booch, James

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

Page 16: Modellierungstechniken im Softwaredesign€¦ · Unified Modeling Language (UML) • Standard-Modellierungssprache für Software Engineering • Entwickelt von Grady Booch, James

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)

Page 17: Modellierungstechniken im Softwaredesign€¦ · Unified Modeling Language (UML) • Standard-Modellierungssprache für Software Engineering • Entwickelt von Grady Booch, James

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

Page 18: Modellierungstechniken im Softwaredesign€¦ · Unified Modeling Language (UML) • Standard-Modellierungssprache für Software Engineering • Entwickelt von Grady Booch, James

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.

Page 19: Modellierungstechniken im Softwaredesign€¦ · Unified Modeling Language (UML) • Standard-Modellierungssprache für Software Engineering • Entwickelt von Grady Booch, James

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.