17.01.2014 Aufrufe

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

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!