Graphische Methoden des Softwareentwurfs Fabian Kasper, März 2006
Eine Einleitung Zitate: „Immer wenn man glaubt, ein idiotensicheres Programm herausgebracht zu haben, wird der reichhaltige Genpool der Natur garantiert innerhalb kürzester Zeit einen besseren Idioten hervorbringen ...“ [Jürgen Ilse in news:de.comp.lang.c]
You should learn from the mistakes of others, because you'll never have enough time to make all those mistakes yourself. [Benjamin Franklin] Fabian Kasper, März
Moderne Projektabwicklung Was der Kunde erklärte
Fabian Kasper, März
Moderne Projektabwicklung Was der Projektleiter verstand
Fabian Kasper, März
Moderne Projektabwicklung Wie es der Analytiker entwarf
Fabian Kasper, März
Moderne Projektabwicklung Was der Programmierer programmierte
Fabian Kasper, März
Moderne Projektabwicklung Was der Berater definierte
Fabian Kasper, März
Moderne Projektabwicklung Wie das Projekt dokumentiert wurde
Fabian Kasper, März
Moderne Projektabwicklung Was installiert wurde
Fabian Kasper, März
Moderne Projektabwicklung Was dem Kunden in Rechnung gestellt wurde
Fabian Kasper, März
Moderne Projektabwicklung Wie es gewartet wurde
Fabian Kasper, März
Moderne Projektabwicklung Was der Kunde wirklich gebraucht hätte
Fabian Kasper, März
Ein Überblick
Softwareentwicklung: Planung Analyse Entwurf Programmierung Test Projektmanagement Qualitätsmanagement Konfigurationsmanagement Dokumentation
Fabian Kasper, März
Softwareentwurf – Eine Definition
Wo gehört Softwareentwurf eigentlich hin?
nur ein kleiner Teil bei der SW-Entwicklung Vorher sollte man wissen, was man entwerfen möchte! hierfür braucht man:
Göttliche Eingebung Idee Auftrag
Was bedeutet eigentlich Softwareentwurf? „Aus gegebenen Anforderungen an ein Produkt eine Softwaretechnische Lösung zu entwickeln […].„ Fabian Kasper, März [Helmut Balzert]
Graphischer Softwareentwurf Beispiele:
graphisch entwerfen & programmieren:
LabView
LEGO Mindstorms (RCX Code)
nur graphisch entwerfen (Modellieren):
UML
Fabian Kasper, März
LabVIEW
Blockorientierte „Programmiersprache“
1986 von National Instruments
Anwendungsgebiete:
Messtechnik
Automatisierungstechnik
Programmbestandteile
Frontpanel (Benutzerschnittstelle)
Blockdiagramm (graph. „Quellcode“) Fabian Kasper, März
LabVIEW (2)
Programmiert wird, indem man Funktionsblöcke (VIs) platziert diese Verbindet („Drähte“) und Abhängigkeiten definiert
Fabian Kasper, März
LabVIEW (3) Vorteile
Nachteile
Relativ einfach
Große Funktionsbibliothek
Wird schnell zum „Drahtwirrwarr“
Laufzeitumgebung zur Ausführung notwendig
Umstrukturierung des Programms aufwändig (verschieben und reorganisieren von vielen Blöcken) Fabian Kasper, März
Einfaches Steuern von externer Hardware (Messgeräte, etc…)
LEGO Mindstorms (RCX Code)
Roboterbausatz von LEGO
Herzstück: programmierbarer gelber Microcontroller-„Ziegel“
Möglichkeit zur graphischen programmierung
von LEGO entwickelte „Programmiersprache“ auf Block-Basis Fabian Kasper, März
LEGO Mindstorms (2) Programmierung:
Aneinanderfügen von Blöcken
Jeder Block stellt eine Anweisung, Verzweigung, etc… dar
zwei Blöcke immer direkt aneinander (keine „Drähte“, die verzweigen können)
Programm (Zeichnung) wird am PC compilliert und in den Microcontroller übertragen Fabian Kasper, März
LEGO Mindstorms (3)
Fabian Kasper, März
UML
Unified Modeling Language einheitliche, visuelle, ausdrucksstarke Modellierungs-Sprache UML 1.0 release: 1996; Heute: UML 2.0 Kombination aus Analyse und Entwurf beschreibt objektorientierte Systeme (nicht nur Software, auch z.B.: Geschäftsabläufe):
Abläufen Strukturen Beziehungen zwischen Komponenten
bietet verschiedene Ansichten des Systems: Fabian Kasper, März
UML (2)
UML und manche seine Diagramme Strukturdiagramme (insgesamt: sechs) Verteilungsdiagramm Klassendiagramm Objektdiagramm
Verhaltensdiagramme (insgesamt: sieben) Anwendungsfall
Diagramm
Sequenzdiagramm Zustandsdiagramm Aktivitätsdiagramm
Fabian Kasper, März
Verteilungsdiagramm (Deployment Diagram)
ist ein physikalisches Diagramm
zeigt die Verteilung von lauffähiger Software (sog. Artefakte) auf Einheit(en) (sog. Knoten) in einem Netzwerk
Knoten: Hardware, Prozessoren, Laufzeitumgebungen,…
Artefakte: Software (-stücke), Bibliotheken, JAR-Dateien,…
Anwendungsfall Diagramm (Use Case Diagram) zeigt das Verhalten eines Systems (muss nicht Software sein) aus der Sicht des Benutzers
indem es Beziehungen zwischen Nutzern (Akteure) und den Anwendungsfällen darstellt
einfach, wird meißt am Beginn des Projekts (für den Kunden) erstellt
Nutzer: Person, Nachbarsystem,…
Anwendungsfall: nach Außen sichtbarer Zustand des Systems; kapselt
Fabian Kasper, März
Anwendungsfall Diagramm (2) (Use Case Diagram)
Fabian Kasper, März
Sequenzdiagramm (Sequence Diagram)
zeigt den zeitlichen Ablauf einer Reihe von Nachrichten zwischen Objekten
nur für ganz spezielle Aktionen
sagt nichts über Beziehungen zwischen den Objekten aus
vertikal: Zeitachse
horizontal: Nachrichten
Fabian Kasper, März
Sequenzdiagramm (2) (Sequence Diagram)
Im Restaurant
Fabian Kasper, März
Quellenübersicht
Paulus, Conrad: „Werkzeuge in der Software Entwicklung. Softwareentwurf“, URL: http://www.informatik.tu-cottbus.de/~rust/ws19992000/tools/Paulus.pdf [Stand: 12.03.2006] Hörr, Christian (2002): „Softwareentwurf“ URL: www.jaiden.de/Downloads/Softwareentwurf.ppt [Stand: 12.03.2006] Braun / Sivils / Shapiro / Versteegh: „Unified Modeling Languge (UML) Tutorial“ URL: http://pigseye.kennesaw.edu/~dbraun/csis4650/A&D/UML_tutorial/ [Stand 20.04.2001] Wikipedia (DE): URL: http://de.wikipedia.org [Stand: 12.03.2006] Wikipedia (EN): URL: http://en.wikipedia.org [Stand: 12.03.2006] oose.de GmbH: „UML auf gut Deutsch“ URL: http://www.oose.de/uml_auf_gut_deutsch.htm [Stand: 18.09.2004] Holub, Allen: „Allen Holub‘s UML Quick Reference“ URL: http://www.holub.com/goodies/uml/ [Stand: 24.04.2004] G. Chroust / Rational Software Corporation: „Komponentendiagramm, Verteilungsdiagramm, Paket“ URL: www.sea.uni-linz.ac.at/teaching/ss2004/voallsys/downloads/uml-
Fabian Kasper, März
Quellenübersicht (2)
http://www.software-kompetenz.de/?27032 Jeckle / Rupp / Hahn / Zengler / Queins: ULM 2 glasklar. Carl Hanser Verlag, 2003 www.torsten-horn.de/techdocs/uml.htm
Fabian Kasper, März