Sie sind auf Seite 1von 30

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 […].„
[Helmut Balzert]
Fabian Kasper, März
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  Wird schnell zum
„Drahtwirrwarr“
 Große
Funktionsbibliothek  Laufzeitumgebung
zur Ausführung
 Einfaches Steuern notwendig
von externer
Hardware  Umstrukturierung
(Messgeräte, etc…) des Programms
aufwändig
(verschieben und
reorganisieren von
vielen Blöcken)
Fabian Kasper, März
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, Laufzeit-
umgebungen,…
 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/ws1999-
2000/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