2 Prototyping bei der Software-Entwicklung - Universität Stuttgart
2 Prototyping bei der Software-Entwicklung - Universität Stuttgart
2 Prototyping bei der Software-Entwicklung - Universität Stuttgart
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>Software</strong>technik II<br />
ST II<br />
§ 2 <strong>Prototyping</strong> <strong>bei</strong> <strong>der</strong> <strong>Software</strong>entwicklung<br />
Lernziele<br />
– Verstehen, dass <strong>Prototyping</strong> in <strong>der</strong> <strong>Software</strong>entwicklung eine Methode zur<br />
Anfor<strong>der</strong>ungsermittlung und –verifikation ist<br />
– Wissen, wie <strong>Prototyping</strong> den Kommunikationsprozess zwischen<br />
Entwicklern und Benutzern unterstützt<br />
– Den Prozess des <strong>Prototyping</strong> kennen<br />
– Verschiedene Arten des <strong>Prototyping</strong> kennen<br />
Literatur<br />
– K. Beck: Extreme programming explained, embrace change, Addison-<br />
Wesley, 2000<br />
– Tagungsband: 11th International Workshop on Rapid System <strong>Prototyping</strong><br />
(RSP ‚00), IEEE Press, 2000<br />
– C. Sny<strong>der</strong>: Rapid <strong>Prototyping</strong>: Principles and Applications, Morgan<br />
Kaufmann Publishers, 2003<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 58
<strong>Software</strong>technik II<br />
ST II<br />
§ 2 <strong>Prototyping</strong> <strong>bei</strong> <strong>der</strong> <strong>Software</strong>entwicklung<br />
2.1 Grundlagen <strong>Prototyping</strong><br />
2.2 Modellbildung mit Petri-Netzen<br />
2.3 <strong>Prototyping</strong> im <strong>Entwicklung</strong>sprozess<br />
2.4 <strong>Prototyping</strong>-Werkzeuge<br />
2.5 Hinweise für die Praxis<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 59
2.1 Grundlagen <strong>Prototyping</strong><br />
ST II<br />
Ausgangssituation<br />
Hohe Komplexität von Projekten im technischen Bereich, da<br />
– Umfangreiche Aufgabenstellung<br />
– Echtzeitanfor<strong>der</strong>ungen<br />
– Verteilte Systeme<br />
– Zuverlässigkeitsanfor<strong>der</strong>ungen, Sicherheitskriterien<br />
– Anbindung an technische Prozesse<br />
– Technologisches Neuland<br />
<strong>Prototyping</strong> schafft Transparenz<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 60
2.1 Grundlagen <strong>Prototyping</strong><br />
ST II<br />
Fragestellung /Ziele (Live-Mitschrieb)<br />
Modell<br />
Modifikationen<br />
Entwickler<br />
Experimente<br />
Erkenntnisse/Ideen<br />
Interpretation<br />
Ergebnisse<br />
Umsetzung/Realisierung<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 61
2.1 Grundlagen <strong>Prototyping</strong><br />
ST II<br />
Man möchte für zu entwickelnde „Systeme“ herausfinden:<br />
– Welche Funktionen laufen ab?<br />
– Wie verän<strong>der</strong>n sich Ausgangsgrößen, wenn sich Parameter verän<strong>der</strong>n?<br />
– Wie ist da<strong>bei</strong> das Zeitverhalten?<br />
wichtig für Echtzeitsysteme<br />
– Welche Teile des “Systems” än<strong>der</strong>n sich?<br />
– Wie ist die Belastung bzw. Auslastung <strong>der</strong> “Systeme” über <strong>der</strong> Zeit?<br />
Man möchte dadurch erreichen:<br />
– Das “System” bezüglich Zeiten und Mengen (Auslastung) richtig<br />
auszulegen<br />
optimale Auslegung<br />
– Die Steuerung des “Systems” zu üben<br />
Ausbildung<br />
– Das Verhalten des “Systems” vorführen zu können (Denkfehler im<br />
Lösungsalgorithmus, Missverständnisse über Funktionsweisen, fehlende<br />
Funktionen, etc.)<br />
Kommunikation mit Kunden<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 62
2.1 Grundlagen <strong>Prototyping</strong><br />
ST II<br />
Vorgehensweise zur Lösung <strong>der</strong> Problematik<br />
1. <strong>Entwicklung</strong> und Beschreibung des Modells<br />
2. Evaluierung des Modells<br />
3. Simulation des Modells<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 63
2.1 Grundlagen <strong>Prototyping</strong><br />
ST II<br />
Beispiel: Chemische Fabrik mit 2 Produktionslinien und einer Verladestation<br />
Produktion1<br />
Produktion2<br />
Produktion1<br />
Produzieren1<br />
Verladen1<br />
Rohstoffeholen1<br />
Produktion1-<br />
Starten<br />
Exklusiv<br />
Produktion2<br />
Produzieren2<br />
Verladen2<br />
Rohstoffeholen2<br />
Produktion2-<br />
Starten<br />
– Um eine Vorstellung vom<br />
Ablauf zu haben, müssen<br />
die Schritte mit Mengen<br />
und Zeiten versehen<br />
werden<br />
– Es muss zum Ausdruck<br />
gebracht werden, dass<br />
<strong>bei</strong>de Prozesse<br />
voneinan<strong>der</strong> über die<br />
Verladestation abhängen<br />
Ende<br />
Ende<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 64
2.1 Grundlagen <strong>Prototyping</strong><br />
ST II<br />
<strong>Entwicklung</strong> und Beschreibung des Modells<br />
Zielsetzung ist die Simulation des Systemmodells<br />
Folgende Verfahren sind anwendbar:<br />
a) Programmierung des Systems in einer Programmiersprache<br />
b) Verwendung eines Simulationssystems (z.B. GPSS, SIMULA)<br />
c) Verwendung eines allgemeinen Spezifikationssystems<br />
d) Verwendung einer speziellen Spezifikations- und Modellbildungssprache<br />
GPSS: General Purpose Simulation System<br />
SIMULA: Simulation Language<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 65
2.1 Grundlagen <strong>Prototyping</strong><br />
ST II<br />
Bewertung (1)<br />
a) Programmierung des Systems in einer Programmiersprache<br />
– Hoher Aufwand, da keine Werkzeuge<br />
– Keine methodische Unterstützung<br />
– Keine Hilfsmittel zur Evaluierung <strong>der</strong> Ergebnisse<br />
b) Verwendung eines Simulationssystems ( z.B. GPSS, SIMULA)<br />
– Kein hierarchisches Modell<br />
– Mangelnde semantische Definition <strong>der</strong> Modelle<br />
– Enge Verknüpfung mit “unstrukturierten” prozeduralen<br />
Programmiersprachen (z.B. FORTRAN)<br />
– „General Purpose“ Systeme: Aufwand <strong>der</strong> Anpassung an konkrete<br />
Aufgabenstellung<br />
– Fehlende graphische Interaktionsmöglichkeit<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 66
2.1 Grundlagen <strong>Prototyping</strong><br />
ST II<br />
Bewertung (2)<br />
c) Verwendung eines allgemeinen Spezifikationssystems<br />
– Top Down Vorgehensweise<br />
– Modellierung von <strong>Software</strong>- und Hardwareaspekten<br />
– Statische Analyse des Modells (Vollständigkeit, Konsistenz,<br />
Kontrollflusseigenschaften, Dateneigenschaften)<br />
Nachteil: fehlende Zuordnung von Ausführungszeiten,<br />
keine Simulation / Animation<br />
d) Verwendung einer speziellen Spezifikations- und<br />
Modellbildungssprache<br />
– Erweiterte Petri-Netze<br />
– Zuordnung von Ausführungszeiten, Durchflussmengen,<br />
algorithmischer Verar<strong>bei</strong>tung<br />
– Simulation/ Animation<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 67
Frage zu Kapitel 2.1<br />
ST II<br />
Frage zu Kapitel 2.1<br />
Welche Aussage gilt für die Simulation?<br />
Antwort<br />
f<br />
Simulation dient zum Nachweis des Verhaltens von komplexen Systemen<br />
<br />
Bei <strong>der</strong> Simulation experimentiert man am Modell, um Erkenntnisse über<br />
das reale System zu gewinnen<br />
<br />
Simulation ist die Modellhafte Nachbildung eines Systems, z. B. am<br />
Rechner<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 68
<strong>Software</strong>technik II<br />
ST II<br />
§ 2 <strong>Prototyping</strong> <strong>bei</strong> <strong>der</strong> <strong>Software</strong>entwicklung<br />
2.1 Grundlagen <strong>Prototyping</strong><br />
2.2 Modellbildung mit Petri-Netzen<br />
2.3 <strong>Prototyping</strong> im <strong>Entwicklung</strong>sprozess<br />
2.4 <strong>Prototyping</strong>-Werkzeuge<br />
2.5 Hinweise für die Praxis<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 69
2.2 Modellbildung mit Petri-Netzen<br />
ST II<br />
Petri-Netze zur Modellierung kooperieren<strong>der</strong> Prozesse (1)<br />
Petri-Netz<br />
– Gerichteter Graph<br />
– Zwei Arten von Knoten<br />
• Stellen<br />
• Transitionen<br />
– Kanten verbinden nur Knoten unterschiedlichen Typs<br />
– Markierung auf Stellen definiert Systemzustand<br />
– Transition kann schalten, wenn alle Stellen in <strong>der</strong>en Vorbereich mit<br />
Marken besetzt sind<br />
– Schaltvorgang entfernt Marken aus dem Vorbereich und legt Marken<br />
in Nachbereich<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 70
2.2 Modellbildung mit Petri-Netzen<br />
ST II<br />
Petri-Netze zur Modellierung kooperieren<strong>der</strong> Prozesse (2)<br />
S2<br />
T1<br />
T3<br />
S2<br />
S3<br />
T2<br />
T4<br />
S4<br />
S2<br />
T1<br />
T2<br />
S1 S3 S4<br />
T3<br />
T4<br />
T5<br />
T5<br />
a) Petri-Netz mit Anfangsmarkierung<br />
b) 1. Folgemarkierung<br />
S2<br />
T1<br />
T2<br />
S1 S3 S4<br />
T3<br />
T4<br />
T5<br />
c) 2. Folgemarkierung<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 71
2.2 Modellbildung mit Petri-Netzen<br />
ST II<br />
Erweiterung von Petri-Netzen<br />
Stellen/Transitions-Systeme<br />
– Kapazitätsfunktion gibt die Maximalzahl von Marken für jede Stelle an<br />
– Gewichtsfunktion gibt für jede Kante an, wie viele Marken ihre Transition<br />
von ihrer Stelle entfernt bzw. darauf abgelegt<br />
a)<br />
S1<br />
K=3<br />
2<br />
T<br />
2<br />
2<br />
K=4<br />
K=2<br />
S2<br />
S3<br />
b)<br />
S1<br />
K=3<br />
2<br />
T<br />
2<br />
2<br />
K=4<br />
K=2<br />
S2<br />
S3<br />
Beispiel: <strong>Prototyping</strong> von Fertigungssystemen<br />
Film: Petri Netze<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 72
2.2 Modellbildung mit Petri-Netzen<br />
ST II<br />
Prädikat/Transitions-Netze<br />
Jede Marke ist ein individuelles Objekt mit einem/mehreren Attributen<br />
Stellen werden zu Prädikaten, die bezüglich einer Marke wahr bzw. falsch<br />
sein können<br />
Nur Marken, <strong>der</strong>en Attribute an den beschrifteten Kanten enthalten sind,<br />
können Transitionen aktivieren<br />
Zusätzliche Aktivierungsbedingungen <strong>bei</strong> Transitionen<br />
Beispiel<br />
5<br />
8<br />
3<br />
X<br />
Schaltbedingung<br />
5 3<br />
X<br />
17<br />
1<br />
42<br />
10<br />
4<br />
Y<br />
X = 2Y<br />
Z = 2X + Y<br />
vorher<br />
Schalt wirkung<br />
Z<br />
17<br />
1<br />
42<br />
10<br />
Y<br />
X = 2Y<br />
Z = 2X + Y<br />
nachher<br />
20<br />
Z<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 73
ST II<br />
Hierarchisch erweiterte Petri-Netze<br />
Strukturierung durch Einführung von Hierarchien<br />
Verfeinerung bedeutet das Ersetzen von Netzknoten durch ein<br />
detailliertes Unternetz<br />
Vergröberung beschreibt den umgekehrten Vorgang<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 74
2.2 Modellbildung mit Petri-Netzen<br />
Beispiel: <strong>Prototyping</strong> komplexer Automatisierungssysteme<br />
mittels Hierarchisierung<br />
ST II<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 75
2.2 Modellbildung mit Petri-Netzen<br />
ST II<br />
Zeitbehaftete Petri-Netze<br />
– Spezifikation <strong>der</strong> Dauer einer Aktion o<strong>der</strong> eines Ereignisses<br />
– Zusammengesetzte Ereignisse o<strong>der</strong> ein Übergang kann bestimmte<br />
Zeitdauer benötigen<br />
– Zeitintervalle werden <strong>bei</strong> Transitionen festgelegt, die Wartezeiten werden<br />
<strong>bei</strong> den Stellen erbracht<br />
Beispiel: <strong>Prototyping</strong> von Echtzeitsystemen<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 76
2.2 Modellbildung mit Petri-Netzen<br />
ST II<br />
Einsatz von Petri-Netzen zur Modellierung komplexer Systeme<br />
Modellierung von Systemen<br />
– Systemstruktur<br />
Strukturinformation<br />
Dekompositionsinformation<br />
– Systemdynamik<br />
Kausale Zusammenhänge<br />
Temporale Zusammenhänge<br />
Modellinformation<br />
Strukturinformation<br />
Dekompositionsinformation<br />
Kausale Zusammenhänge<br />
Temporale Zusammenhänge<br />
Abbildung im Petri-Netz<br />
Netztopologie und Netzelemente<br />
Verfeinerung von Stellen bzw. Transitionen<br />
Topologie + Markenspiel + Anfangszustand<br />
Verwendung zeitbehafteter Netze<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 77
2.2 Modellbildung mit Petri-Netzen<br />
ST II<br />
Vorteile von erweiterten Petri-Netzen<br />
– Verfolgung eines Zeitablaufs möglich<br />
– Simulation möglich (Berechnung <strong>der</strong> Zustände)<br />
– Kapazitäts-/Mengenbehandlungen möglich<br />
– Animation möglich (Verfolgung <strong>der</strong> Simulation am Bildschirm)<br />
– Bei automatischer Codeerzeugung direkte Übernahme <strong>der</strong> festgelegten<br />
Parameter in ein Programm<br />
– Transitionen können in Teilnetze verfeinert werden<br />
(Top-Down-Vorgehen)<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 78
Frage zu Kapitel 2.2<br />
ST II<br />
Frage zu Kapitel 2.2<br />
Gegeben ist ein Petrinetz. Wie sieht das Petrinetz aus, nachdem die Transition<br />
erfolgt ist?<br />
K=5<br />
K=4<br />
S1<br />
3<br />
T<br />
2<br />
2<br />
S2<br />
K=3<br />
Antwort<br />
S3<br />
K=4<br />
S1<br />
3<br />
T<br />
2<br />
2<br />
S2<br />
K=5<br />
K=3<br />
K=4<br />
S1<br />
3<br />
T<br />
2<br />
2<br />
S2<br />
K=5<br />
K=3<br />
K=4<br />
S1<br />
3<br />
T<br />
2<br />
2<br />
S2<br />
K=5<br />
K=3<br />
f<br />
<br />
S3<br />
<br />
S3<br />
f<br />
<br />
S3<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 79
<strong>Software</strong>technik II<br />
ST II<br />
§ 2 <strong>Prototyping</strong> <strong>bei</strong> <strong>der</strong> <strong>Software</strong>entwicklung<br />
2.1 Grundlagen <strong>Prototyping</strong><br />
2.2 Modellbildung mit Petri-Netzen<br />
2.3 <strong>Prototyping</strong> im <strong>Entwicklung</strong>sprozess<br />
2.4 <strong>Prototyping</strong>-Werkzeuge<br />
2.5 Hinweise für die Praxis<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 80
2.3 <strong>Prototyping</strong> im <strong>Entwicklung</strong>sprozess<br />
ST II<br />
<strong>Prototyping</strong> im <strong>Entwicklung</strong>sprozess<br />
– Frühzeitige Erstellung ablauffähiger Modelle (Prototypen)<br />
– Experimentieren mit diesen Modellen<br />
– Schaffung einer Kommunikationsbasis zwischen<br />
Auftraggeber, Anwen<strong>der</strong>, Management und Entwickler<br />
– Auf Experiment und Erfahrung gegründete Vorgehensweise<br />
Arten von <strong>Prototyping</strong><br />
– Demonstrationsprototypen<br />
Erster Eindruck für Auftraggeber und Nutzer<br />
Weit entfernt von tatsächlichem System<br />
– Prototypen im engeren Sinn<br />
Greifbare Vorstellung über Problemlösung<br />
Unterstützung <strong>bei</strong> Analyse und Einschränkung des<br />
Anwendungsbereiches<br />
– Labormuster<br />
Technische Machbarkeit<br />
Experimentelle Erprobung zeigt Dynamik und die Restriktionen<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 81
2.3 <strong>Prototyping</strong> im <strong>Entwicklung</strong>sprozess<br />
ST II<br />
Der <strong>Software</strong>-Prototyp soll folgende Eigenschaften haben<br />
– Wesentlich geringerer Aufwand als das geplante Produkt<br />
– Einfach zu än<strong>der</strong>nd und zu erweitern<br />
– Nicht notwendigerweise alle Eigenschaften des Zielsystems<br />
– Ausführbar<br />
Modell des geplanten <strong>Software</strong>-Produkts<br />
<strong>Prototyping</strong>:<br />
alle Ar<strong>bei</strong>ten, die zur Herstellung solcher Prototypen notwendig sind<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 82
2.3 <strong>Prototyping</strong> im <strong>Entwicklung</strong>sprozess<br />
ST II<br />
Ziele/Aufgaben des <strong>Prototyping</strong> im <strong>Entwicklung</strong>sprozess(1)<br />
Frühzeitige bzw. entwicklungsbegleitende Aussagen über Verhalten und<br />
Leistungsfähigkeit eines zu entwickelnden <strong>Software</strong>systems<br />
– Durchführbarkeitsanalyse<br />
– Integration des Endanwen<strong>der</strong>s<br />
– Nachweis von wichtigen Anfor<strong>der</strong>ungen<br />
– Kommunikation zwischen Entwicklern<br />
– Grundlage für Entwurfsentscheidungen<br />
– Frühzeitige Einweisung <strong>der</strong> späteren Nutzer<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 83
2.3 <strong>Prototyping</strong> im <strong>Entwicklung</strong>sprozess<br />
ST II<br />
Ziele/Aufgaben des <strong>Prototyping</strong> im <strong>Entwicklung</strong>sprozess (2)<br />
<strong>Software</strong>-Prototypen müssen ausführbar sein<br />
– Direkte Ausführung<br />
– Simulation<br />
Vorgehensweisen <strong>bei</strong>m <strong>Prototyping</strong><br />
– Horizontales <strong>Prototyping</strong><br />
– Vertikales <strong>Prototyping</strong><br />
Anwen<strong>der</strong><br />
Zu entwickelndes System<br />
Simulation <strong>der</strong><br />
Benutzungsschnittstelle<br />
Simulation<br />
eines<br />
Systemausschnitts<br />
Horizontales<br />
<strong>Prototyping</strong><br />
vertikales<br />
<strong>Prototyping</strong><br />
<strong>Prototyping</strong>-Arten:<br />
– Exploratives <strong>Prototyping</strong> ------- Analyse<br />
– Experimentelles <strong>Prototyping</strong> ------- Realisierung<br />
– Evolutionäres <strong>Prototyping</strong> ------- <strong>Entwicklung</strong><br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 84
2.3 <strong>Prototyping</strong> im <strong>Entwicklung</strong>sprozess<br />
ST II<br />
Exploratives <strong>Prototyping</strong><br />
Erforschung des<br />
Anwendungsgebietes<br />
Ziel: vollständige Systemspezifikation<br />
Zweck:<br />
– Entwicklern einen Einblick in Anwendungsbereich ermöglichen<br />
– Diskussion von Lösungsansätzen mit den Anwen<strong>der</strong>n<br />
– Abklärung <strong>der</strong> Realisierbarkeit des geplanten Systems<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 85
2.3 <strong>Prototyping</strong> im <strong>Entwicklung</strong>sprozess<br />
ST II<br />
Vorgehensweise<br />
– <strong>Entwicklung</strong> eines Prototypen<br />
– Erprobung anhand von Anwendungs<strong>bei</strong>spielen<br />
– Ermittlung <strong>der</strong> gewünschten Funktionalität<br />
Funktionalität<br />
Leichte Än<strong>der</strong>barkeit<br />
Kürze <strong>der</strong> <strong>Entwicklung</strong>szeit<br />
Qualität<br />
– Realisierung des Prototyps durch Anwen<strong>der</strong> und Entwickler<br />
– Technik zur Unterstützung <strong>der</strong> Problemanalyse und <strong>der</strong><br />
Systemspezifikation<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 86
2.3 <strong>Prototyping</strong> im <strong>Entwicklung</strong>sprozess<br />
ST II<br />
Experimentelles <strong>Prototyping</strong><br />
Ziel:<br />
Vollständige Spezifikation von Teilsystemen als Grundlage für die<br />
Implementierung<br />
Zweck: Experimenteller Nachweis <strong>der</strong> Tauglichkeit von Teilsystemen, von<br />
Architekturmodellen und von Lösungsideen für einzelne<br />
Systemkomponenten<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 87
2.3 <strong>Prototyping</strong> im <strong>Entwicklung</strong>sprozess<br />
ST II<br />
Vorgehensweise<br />
<strong>Entwicklung</strong> eines Prototyps<br />
Simulation von Wechselwirkungen zwischen Systemkomponenten<br />
Erprobung <strong>der</strong> Schnittstellen <strong>der</strong> einzelnen Systemkomponenten und <strong>der</strong><br />
Flexibilität <strong>der</strong> Systemzerlegung im Hinblick auf Erweiterung unter<br />
Verwendung von Anwendungs<strong>bei</strong>spielen<br />
Qualität spielt weniger eine Rolle<br />
Realisierung <strong>der</strong> Prototypen in <strong>der</strong> Hauptsache durch Entwickler<br />
Technik zur Unterstützung <strong>bei</strong>m System- und Komponentendesign<br />
Experimentieren spielt eine zentrale Rolle<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 88
2.3 <strong>Prototyping</strong> im <strong>Entwicklung</strong>sprozess<br />
ST II<br />
Evolutionäres <strong>Prototyping</strong><br />
Ziel:<br />
Inkrementelle Systementwicklung, schrittweise aufbauende<br />
<strong>Entwicklung</strong><br />
Vorgehensweise:<br />
– <strong>Entwicklung</strong> eines Prototypen für klare Benutzeranfor<strong>der</strong>ungen<br />
– Basissystem für Anwen<strong>der</strong> und den nächsten <strong>Entwicklung</strong>sschritt<br />
– Systementwicklung und <strong>Prototyping</strong> wechseln sich ab<br />
– Prototypen werden nicht simuliert und weggeworfen, son<strong>der</strong>n Schritt für<br />
Schritt zum Produkt ausgebaut<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 89
2.3 <strong>Prototyping</strong> im <strong>Entwicklung</strong>sprozess<br />
ST II<br />
Klassifizierung von Prototypen (1)<br />
Vollständiger Prototyp:<br />
– Alle wesentlichen Funktionen des geplanten Systems sind vollständig<br />
verfügbar<br />
– Erfahrung <strong>bei</strong>m Einsatz und Prototyp selbst bilden Grundlage für<br />
endgültige Systemspezifikation<br />
– Für <strong>Software</strong>systeme nicht üblich<br />
Automobilbau<br />
Unvollständiger Prototyp:<br />
– Brauchbarkeit und Machbarkeit einzelner Aspekte (z.B.<br />
Benutzungsschnittstelle, Systemarchitektur, Systemkomponenten,<br />
<strong>Software</strong>system) werden untersucht<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 90
2.3 <strong>Prototyping</strong> im <strong>Entwicklung</strong>sprozess<br />
ST II<br />
Klassifizierung von Prototypen (2)<br />
Wegwerfprototypen:<br />
– Prototyp dient nur als ablauffähiges Modell<br />
Wie<strong>der</strong>verwendbare Prototypen:<br />
– Wesentliche Teile werden <strong>bei</strong> <strong>der</strong> Implementierung des<br />
Zielsystems übernommen<br />
Film: Automatisierter Fußballschuh David<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 91
2.3 <strong>Prototyping</strong> im <strong>Entwicklung</strong>sprozess<br />
ST II<br />
<strong>Prototyping</strong> <strong>der</strong> Benutzungsschnittstelle<br />
– Entwurf <strong>der</strong> Benutzungsschnittstelle während <strong>der</strong> Systemanalyse<br />
– Wie<strong>der</strong>verwendung <strong>der</strong> Benutzungsschnittstelle während des<br />
Entwurfs und <strong>der</strong> Implementierung<br />
– Ergonomische Benutzungsschnittstelle durch<br />
frühzeitige Integration <strong>der</strong> Nutzer<br />
– Vermeidung kostenintensiver Än<strong>der</strong>ungen nach <strong>der</strong> Auslieferung<br />
Unterstützung durch GUI-Buil<strong>der</strong><br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 92
2.3 <strong>Prototyping</strong> im <strong>Entwicklung</strong>sprozess<br />
ST II<br />
Traditionelles Wasserfall-Life-Cycle-Modell<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 93
2.3 <strong>Prototyping</strong> im <strong>Entwicklung</strong>sprozess<br />
ST II<br />
<strong>Prototyping</strong> Life-Cycle-Modell<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 94
2.3 <strong>Prototyping</strong> im <strong>Entwicklung</strong>sprozess<br />
ST II<br />
Aspekte prototyping-orientierter <strong>Software</strong>entwicklung<br />
Kosten:<br />
– Keine Vermin<strong>der</strong>ung <strong>der</strong> <strong>Software</strong>entwicklungskosten<br />
– Keine Verkürzung <strong>der</strong> <strong>Entwicklung</strong>szeit<br />
Reduzierung ≈<br />
Mehraufwand<br />
– Eventuelle Steigerung <strong>der</strong> Kosten durch Einbeziehung <strong>der</strong> Nutzer<br />
in den <strong>Entwicklung</strong>sprozess<br />
– Höherer Zeitaufwand durch Validierung und Erprobung <strong>der</strong> Prototypen<br />
– Verringerung <strong>der</strong> Life-Cycle-Kosten<br />
Niedrigere Wartungskosten durch höhere Qualität<br />
Niedrigere Betriebskosten durch höhere Qualität<br />
Ergonomisch bessere Produkte durch frühzeitige Experimente<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 95
2.3 <strong>Prototyping</strong> im <strong>Entwicklung</strong>sprozess<br />
ST II<br />
Qualität<br />
Steigerung <strong>der</strong> Qualitätsmerkmale<br />
– Benutzerfreundlichkeit<br />
– Funktionale Adäquatheit<br />
– Än<strong>der</strong>- und Erweiterbarkeit<br />
– Korrektheit<br />
– Zuverlässigkeit<br />
Steigerung <strong>der</strong> Qualität des <strong>Entwicklung</strong>sprozesses<br />
– Vermin<strong>der</strong>ung von Risikofaktoren<br />
Probleme<br />
– Endlos langer Spezifikationsprozess (je mehr man hat,<br />
desto mehr man will)<br />
– Einsatz von Systemprototypen, Produktentwicklung findet nicht statt<br />
– Kostenrechtfertigung ist schwieriger<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 96
2.3 <strong>Prototyping</strong> im <strong>Entwicklung</strong>sprozess<br />
ST II<br />
Vorteile von Prototypen<br />
Auftraggeber:<br />
Nutzer:<br />
Entwickler:<br />
Generell:<br />
Projektfortschritt kann anschaulicher vermittelt werden<br />
Anschauliche Vorstellung ermöglicht rechtzeitige und<br />
kostengünstigere Einbringung von Än<strong>der</strong>ungswünschen<br />
Höhere Sicherheit, dass die <strong>Entwicklung</strong> mit den<br />
Wünschen übereinstimmt<br />
Erfolgserlebnisse <strong>bei</strong> lang laufenden Projekten<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 97
Frage zu Kapitel 2.3<br />
ST II<br />
Frage zu Kapitel 2.3<br />
Wozu wird exploratives <strong>Prototyping</strong> eingesetzt?<br />
Antwort<br />
<br />
<br />
Entwicklern einen Einblick in Anwendungsbereich ermöglichen<br />
f<br />
f<br />
Effizientere Realisierung des Systems<br />
<br />
<br />
<br />
Diskussion von Lösungsansätzen mit den Anwen<strong>der</strong>n<br />
Abklärung <strong>der</strong> Realisierbarkeit des geplanten Systems<br />
Vollständige Spezifikation von Teilsystemen<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 98
<strong>Software</strong>technik II<br />
ST II<br />
§ 2 <strong>Prototyping</strong> <strong>bei</strong> <strong>der</strong> <strong>Software</strong>entwicklung<br />
2.1 Grundlagen <strong>Prototyping</strong><br />
2.2 Modellbildung mit Petri-Netzen<br />
2.3 <strong>Prototyping</strong> im <strong>Entwicklung</strong>sprozess<br />
2.4 <strong>Prototyping</strong>-Werkzeuge<br />
2.5 Hinweise für die Praxis<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 99
2.4 <strong>Prototyping</strong>-Werkzeuge<br />
ST II<br />
Aufgaben von <strong>Prototyping</strong> - Werkzeugen<br />
1) Repräsentation von Prototypen<br />
2) Ausführung von Prototypen zur Aufdeckung von<br />
– Denkfehlern im Lösungsalgorithmus<br />
– Missverständnissen über Funktionsweisen<br />
– Fehlende Funktionen<br />
– Ungenügendem Zeitverhalten<br />
– Nicht ergonomischer Benutzungsoberflächen usw.<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 100
2.4 <strong>Prototyping</strong>-Werkzeuge<br />
ST II<br />
Die wesentlichen <strong>der</strong>zeitigen Probleme<br />
– Wie kann das <strong>Prototyping</strong> in den <strong>Entwicklung</strong>sprozess integriert werden?<br />
– Wie ist das Zusammenspiel mit Systementwicklungsumgebungen?<br />
Gefahr:<br />
Prototypen werden “speziell programmiert”<br />
“Wegwerfprototypen”<br />
– Hoher zusätzlicher Aufwand<br />
Endprodukt = Prototyp + Nachbesserungen<br />
– Unwartbares und unstrukturiertes <strong>Software</strong>-System<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 101
2.4 <strong>Prototyping</strong>-Werkzeuge<br />
ST II<br />
Neues Konzept<br />
Bereitstellung von <strong>Prototyping</strong>-Werkzeugen,<br />
– die auf <strong>der</strong> Projektdatenbank als Prototyprepräsentation basieren und<br />
– verschiedenste Validierungs- und Simulations- Funktionen bereitstellen<br />
Evolutionäres <strong>Prototyping</strong><br />
Wesentliche Vorteile:<br />
– Bisherige <strong>Entwicklung</strong>smethoden und -werkzeuge können<br />
<strong>bei</strong>behalten werden<br />
– Minimaler zusätzlicher Aufwand<br />
– Je<strong>der</strong> <strong>Entwicklung</strong>sstand als Prototyp verfügbar<br />
– Prototypvalidierung erfolgt rechnergestützt<br />
– Verifikation <strong>der</strong> Phasenübergänge<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 102
2.4 <strong>Prototyping</strong>-Werkzeuge<br />
ST II<br />
Systemarchitektur<br />
Integration von <strong>Entwicklung</strong>s- und <strong>Prototyping</strong>-Umgebungen:<br />
<strong>Prototyping</strong>umgebung<br />
<strong>Entwicklung</strong>sumgebung<br />
Benutzer-<br />
Interaktion<br />
Spezifikationswerkzeug<br />
Programmierwerkzeug<br />
Projekt-<br />
Datenbank<br />
Transformation<br />
Prototyp-<br />
Repräsentation<br />
Simulations-<br />
und<br />
Analysefunktionen<br />
Simulationsprotokoll<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 103
2.4 <strong>Prototyping</strong>-Werkzeuge<br />
ST II<br />
Industrielle <strong>Prototyping</strong>-Werkzeuge (1)<br />
Shortcut<br />
– Umwandlung von SA- Informationen in einen Prototypen<br />
– GUI-Buil<strong>der</strong><br />
– Schnittstelle zu Datenbanken<br />
– Debugging im Prototypen<br />
STATEMATE<br />
– Graphisches Systemmodell mit Beschreibung<br />
Funktionen<br />
Systemstruktur<br />
Dynamik (Statecharts)<br />
– Interaktive und programmierbare Simulation<br />
– GUI-Buil<strong>der</strong><br />
– Generierung von C bzw. Ada-Code<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 104
2.4 <strong>Prototyping</strong>-Werkzeuge<br />
ST II<br />
Industrielle <strong>Prototyping</strong>-Werkzeuge (2)<br />
ASCET-SD (Advanced Simulation and Control Engineering Tool<br />
- <strong>Software</strong> Development; Firma ETAS GmbH)<br />
– <strong>Prototyping</strong> <strong>Entwicklung</strong>swerkzeug aus dem Automobilbereich<br />
– Unterstützt:<br />
Entwurfsspezifikation komponentenbasierter SW für Steuergeräte<br />
Graphischen Entwurf<br />
Konfigurierung <strong>der</strong> Echtzeitbetriebssystem-Komponenten<br />
– Generierung von C-Code<br />
– Besitzt eine Testumgebung<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 105
2.4 <strong>Prototyping</strong>-Werkzeuge<br />
Datenfluss-orientierter Blockdiagramm-Editor (ASCET-SD)<br />
(Bsp. Leerlaufregelung Motor)<br />
ST II<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 106
Frage zu Kapitel 2.4<br />
ST II<br />
Frage zu Kapitel 2.4<br />
Was sind Aufgaben des <strong>Prototyping</strong> im <strong>Entwicklung</strong>sprozess?<br />
Antwort<br />
f<br />
<br />
<br />
Aufdecken von Denkfehlern im Lösungskonzept<br />
Erreichen von Durchgängigkeit im <strong>Entwicklung</strong>sprozess<br />
<br />
<br />
Entdeckung fehlen<strong>der</strong> Funktionen<br />
Aufdecken von ungenügendem Zeitverhalten<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 107
<strong>Software</strong>technik II<br />
ST II<br />
§ 2 <strong>Prototyping</strong> <strong>bei</strong> <strong>der</strong> <strong>Software</strong>entwicklung<br />
2.1 Grundlagen <strong>Prototyping</strong><br />
2.2 Modellbildung mit Petri-Netzen<br />
2.3 <strong>Prototyping</strong> im <strong>Entwicklung</strong>sprozess<br />
2.4 <strong>Prototyping</strong>-Werkzeuge<br />
2.5 Hinweise für die Praxis<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 108
2.5 Hinweise für die Praxis<br />
ST II<br />
Einsatz von Prototypen<br />
– <strong>Prototyping</strong> setzt ausreichendes Wissen über das Anwendungsgebiet<br />
voraus<br />
– <strong>Prototyping</strong> kann nicht allein auf <strong>der</strong> Basis schriftlicher Dokumente<br />
durchgeführt werden<br />
– Die Benutzer müssen am <strong>Prototyping</strong>-Prozess beteiligt werden<br />
– Die Beteiligung <strong>der</strong> Benutzer ersetzt nicht die kreativen Ideen <strong>der</strong><br />
Entwickler<br />
– <strong>Prototyping</strong> ist ein Lernprozess für alle daran beteiligten<br />
Personengruppen<br />
– <strong>Prototyping</strong> verbessert die Planung von <strong>Software</strong>-Projekten<br />
– <strong>Prototyping</strong> erfor<strong>der</strong>t neue Formen <strong>der</strong> Vertragsgestaltung für <strong>Software</strong>-<br />
Projekte<br />
– Ein Prototyp ist kein Ersatz für fehlende Dokumentation<br />
– Entscheidung, ob Wegwerfprototyp o<strong>der</strong> evolutionärer Prototyp vor<br />
Beginn <strong>der</strong> <strong>Entwicklung</strong><br />
– Wegwerfprototypen: quick and dirty and limited<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 109
Vorbereitungsfragen<br />
Vorbereitungsfragen zu § 2<br />
Frage 1: Modellierung (SS 05)<br />
Der Graph veranschaulicht einen Programmablauf.<br />
a) Beschreiben Sie diesen Ablauf kurz und knapp.<br />
b) Welches Problem erkennen Sie <strong>bei</strong> diesem Programm?<br />
A<br />
B<br />
E<br />
D<br />
P?<br />
c) Schlagen Sie eine Lösung zur Beseitigung des erkannten Problems vor.<br />
F<br />
ST II<br />
C<br />
Frage 2: <strong>Prototyping</strong> (SS 09)<br />
Womit kann man die Phasenübergänge verifizieren?<br />
© 2013 IAS, Universität <strong>Stuttgart</strong> 110