Prototyping

Transcrição

Prototyping
8. Prototyping-Werkzeuge
SEW, © Prof. Uwe Aßmann
1
8.1 Arten und Werkzeugklassen
für das Prototyping
SEW, © Prof. Uwe Aßmann
2
Arten von Prototypen
Def.:
Ein Software-Prototyp ist ein leicht herzustellendes, einfach zu änderndes,
ablauffähiges Modell des geplanten Softwareproduktes. Es ist noch unvollkommen, läßt aber vor der eigentlichen Systementwicklung die Erprobung
wesentlicher Eigenschaften durch den Anwender zu. Prototyping nennt
man alle Arbeiten zur Herstellung solcher Prototypen.
vollständige - enthalten alle wesentlichen Funktionen des geplanten
Systems. In Softwaretechnologie ungewöhnlich !
unvollständige - gestatten es, die Brauchbarkeit und Machbarkeit einzelner Aspekte (Benutzungsschnittstelle, Systemarchitektur,
Komponenten) des Systems zu untersuchen.
wiederverwendbare - wesentliche Teile werden bei derImplementierung in das Zielsystem übernommen.
Wegwerfprototypen - dienen für Zwischenphasen als ablauffähiges
Modell und werden bei Implementierung nicht
weiterverwendet.
horizontales - Erfassung der wesentlichen Systemfunktionen und Eigenschaften horizontal über eine komplette Schicht.
vertikales - Ausschnitt aus dem Gesamtsystem ist eine bestimmte
Systemfunktion, die über mehrere Schichten vertikal modelliert wird.
Prof. U. Aßmann, SEW
3
Einteilung des Prototyping
►
a) Exploratives Prototyping:
Erforschung von unbekannten Anwendungen oder Eigenschaften
zur Ermittlung des Informations- und Funktionsbedarfs mit dem Ziel
einer möglichst vollständigen Problemanalyse bzw.
Systemspezifi kation. Prototyprealisierung übernehmen Entwickler
und Anwender gemein- sam. Prototypen sind
Entwicklungshilfsmittel und werden nicht zum fer- tigen Produkt
ausgebaut.
►
►
b) Experimentelles Prototyping:
Experimenteller Nachweis der Tauglichkeit von
Teilspezifi kationen, von Architekturmodellen und
Lösungsmöglichkeiten für Systemkomponenten. Prototyprealisierung
und Experimente werden in der Hauptsache vom Entwickler
durchgeführt.
►
►
c) Evolutionäres Prototyping:
Schrittweise inkrementelle Systementwicklung vom Prototypen mit
klaren Benutzeranforderungen aber unvollständiger
Funktionsanbindung und Qualität zum fertigen Produkt. Die
Systementwicklung verliert den Charakter eines Projektes und wird ein
ständiger die Anwendung beglei- tender Prozess zwischen
Entwickler und Benutzer. Prototypen werden in der Regel nicht
simuliert, sondern ausgeführt.
►
Prof. U. Aßmann, SEW
4
Prototyping-orientiertes Phasenmodell
Problemanalyse
und Grobplanung
Istzustands-Beschreibung, Projektauftrag, Grobplan
Systemspezifi kation, Projektplan, Systemprototyp
Systemspezifi kation
User-InterfacePrototyping
Entwurf
Systemarchitektur, KomponentenStruktur, A.u.K.-Prototypen
Architektur- und
KomponentenPrototyping
Implementierung
Systemimplementierung
Systemtest
fertiges
Produkt
Betrieb und
Wartung
Zeit
Quelle: Pomberger, G., Pree, W.: Grundlagen des Software Engineering; Carl Hanser Verlag
München 2004, S. 30
Prof. U. Aßmann, SEW
5
Prototyping - Zyklus
Reale Welt
analysieren
evaluieren
(ausprobieren)
(Teil-)
Modell bauen
installieren
simulieren
Ideen
Glaube
spez.
testen
progr.
Quelle: nach [4, S. 93]
einrichten
Maschine
Prof. U. Aßmann, SEW
6
Prototyping-Aktivitäten
1. Prototypen konstruieren/spezifi zieren
Daten-, Funktions- bzw. Komponentenauswahl
(horizontal versus vertikal)
2. Prototypen herstellen
3. Mit Prototypen experimentieren
Werkzeuge
4. Prototypen auswerten
Prototyp akzeptiert?
nein
ja
5. Prototypen ändern und erweitern
Prof. U. Aßmann, SEW
7
Prototyp-Evaluationsschritte
Produktbewertung
Produkt
Prüfung auf Standardkonformität
Entwicklungsbegleitende Evaluation
Prototyp
frühzeitiges Feedback
für weitere Dialogschritte
Qualitätssicherung
Gütesiegel (ISO 9000)
Produktauswahl
Quelle: Ziegler,J., Ilg,R.: Benutzergerechte Software- Gestaltung; Oldenbourg Verlag 1993
Prof. U. Aßmann, SEW
8
Durchführbarkeitsstudie
entscheidet über Akzeptanz des Prototypen und damit über Anforderungskonzeption/Systemspezifi kation zwischen Anwender und Systementwickler:
Prüfung der Vollständigkeit der Anforderungen
►alle
funktionalen
und
nichtfunktionalen
Anforderungen(REQUIREMENTS)
bzw.
Nebenbedingungen(CONSTRAINTS) müssen enthalten sein
Prüfung der Konsistenz von Anforderungen
►die Anforderungen dürfen einander nicht widersprechen.
Prüfung der technischen Durchführbarkeit
►das
Zusammenspiel der Software mit der entsprechenden
Hardware muss die gewünschten Leistungen erbringen, dazu gehört
die Bereitstellung der erwarteten Informationen in der geforderten
Menge und Genauigkeit
Prüfung der personellen Voraussetzungen
►für die Projektentwicklung, die Bedienung und den Betrieb des
Software- produktes muss geeignetes Personal zur Verfügung
stehen
Prüfung der Ökonomie
►in einer Kosten-Nutzen-Analyse muss festgestellt werden, ob das
Projekt mit wirtschaftlich vertretbarem Aufwand realisiert werden
kann
Prof. U. Aßmann, SEW
9
8.2 Werkzeuge zur Beschreibung
und Simulation von Dialogen
SEW, © Prof. Uwe Aßmann
10
Anforderungen an Prototyping-Werkzeuge
Allgemeine Anforderungen an Prototyping-Werkzeuge
Gewährleistung einfacher Datenverbindungen mit Analysetools
Einfache Spezifi kation der Benutzungsoberfl äche möglichst grafi sch durch Auswahl
aus Objektbaukästen
Effi ziente Möglichkeit der dynamischen Dialogablaufbeschreibung
Werkzeuggestützte Analyse und Prüfung der Prototyp-Spezifi kation
Inkrementelle Fertigstellung von Prototypen
Erweiterbarkeit/Offenheit des Prototypen zur Verbreiterung (horizontales P.) oder
Vertiefung (vertikales Prototyping) des Problemumfanges
Universelle Nutzbarkeit unabhängig von der konkret vorliegenden Anwendungslösung
Portabilität des erzeugten Prototypen auf mehrere Plattformen
Möglichkeit des weiteren Prototypausbaus zum fertigen Produkt
Automatisierte Dokumentation des Prototypen
Anforderungen an die Benutzung des Prototypen
Schnelle Herstellung, Änderung und Ausführbarkeit(Simulation) von Prototypen
Isomorphes Abbild der Bediensituation für den Benutzer
Prototyp nach Evaluationsmethoden möglichst werkzeuggestützt bewertbar
Prof. U. Aßmann, SEW
11
Aufbau von Prototyping-Systemen
textuell
Editor
semigraphisch
grafi sch
Spezifi kation
generierter
Prototyp
Generator
Oberfl äche
Dialogablauf
Interpreter
Compiler
Code für wiederverwendbaren
Prototypen
Laufzeitsystem/Simulator
Prof. U. Aßmann, SEW
12
Bestandteile und Werkzeuge eines UIMS
Toolkit
Benutzer
User Interface
Manager (UIM)
UIS
UIDS
Dialogdesigne
r
Applikation
Dialogspezifi kationswerkzeuge
Oberfl ächeneditoren
UIMS
UIS = User Interface System
UIDS = User Interface Design System
UIMS = User Interface Management System
Quelle: Götze,R.: Dialogmodellierung für multimediale Benutzerschnittstellen; Diss. Universität Oldenburg 1994
Prof. U. Aßmann, SEW
13
Konstruktionsschritte zum Prototyping
(nach Vorgehen des JANUS-Systems)
Grundlage der Konstruktion eines Prototypen sind Spezifi kationsregeln, nach denen
die Bestandteile des zu modellierenden Systems in
Objekte auf der Oberfl äche transformiert werden (hier am Beispiel des JANUS-Systems):
►
►
►
►
►
- Festlegung der benötigten Fenster und ihre konkreten Arten, z.B. ein
Anwendungsfenster, mehrere Unterfenster, Dialog- und
Mitteilungsfenster
- Bestimmung des konkreten Aufbaus der Fenster und aller benötigten
Bestandteile, wie Titelbalken, Smarticon, Menübar und Pulldownmenüs
einschließlich der Bezeichnungen sowie Felder und weitere Elemente
- Festlegung der Benutzerereignisse, die auf die Oberfl ächenobjekte
reagieren und die gewünschten Zustandswechsel (Fensterübergänge
bzw. Aktivieren anderer Objekte) hervorrufen sollen.
- Umsetzung des Dialogkonzepts mit einem Prototyping-Werkzeug
(UIB oder UIMS) entsprechend den verfügbaren Mitteln, d. h.
Präsentationsbe-schreibung mit grafi schem Editor und/oder
Dialogablaufbeschreibung textuell oder visuell.
- Schrittweise Vervollkommnung des Prototypen durch Anpassung und
Nachkorrektur insbesondere der auf Nachrichten bzw. Ereignisse reagierenden Methoden.
Quelle: Balzert, H.: Lehrbuch Grundlagen der Informatik; Spektrum Akademischer Verlag Heidelberg 1999
Prof. U. Aßmann, SEW
14
Vorgehen des JANUS-Systems
Ansatz:
Aus der objektorientierten Modellierung eines Anwendungsystems (UML)
wird über Transformationsregeln ein Vorschlag für das Objektnetz
der Benutzungsschnittstelle automatisch erzeugt.
Transformationsregeln zur Umsetzung der für die Oberfl äche relevanten Klassen:
Klasse --> Fenster, das sich dann auf alle Klassenmethoden und -attribute bezieht, die
für alle Instanzen von Klasse Gültigkeit besitzen.
Klassenmethoden --> Menüoptionen als eine Möglichkeit der Umsetzung von
Operationen.
Klassenattribute --> Felder im Fenster, die zur Erfassung von Attributwerten der
Klasse benutzt werden können.
Objekte als Instanzen der Klasse --> Einzelfenster abgebildet. Geerbte
Eigenschaften werden nur übernommen, wenn genügend Platz vorhanden ist.
Für Einzelfenster gilt ebenfalls: Objektmethoden --> Menüoptionen und
Objektattribute --> verwendbar als Erfassungsfelder für Attributwerte
Botschaftenverbindungen werden für die Dialogstruktur nicht berücksichtigt.
►
Ziel ist ein dediziertes UI-Metamodell für ein konkretes UIMS.
►
US-System: Automatisierte wissensbasierte Generierung von Mensch-Computer-Schnittstellen; Informatik Forschung und Entwicklu
Prof. U. Aßmann, SEW
15
Integration von JANUS in ObjectiF
Von der Anforderungsanalyse bis zum Klassenmodell unter Nutzung des CASE-Tools
ObjectiF
Einlesen der Daten aus dem Klassenmodell in JANUS
Auf der Basis von Transformationsregeln und (software-ergonomischen) Wissensbasen werden 80-95% der Benutzungsschnittstelle und der späteren Anwendung
generiert
Je nach Variante des JANUS-Generators werden Client-Server-Verteilung, Benutzerund Rechteverwaltung sowie ein Prototyp für das Web-Interface inklusive Servlets
erzeugt.
Erzeugung lauffähiger Programme, nicht nur Code-Gerüste oder -Rümpfe
Bereitstellung vom Methodenrümpfen und spezieller Code-Marken zur Codierung
individueller Anforderungen von Hand
Produkte der JANUS-Generatorfamilie werden als Add-In in ObjectiF integriert
Technische Einbettung des Entwicklungsgenerators JANUS erfolgt über COMSchnittstelle von ObjectiF
Nach dem Start wird das UML-Klassenmodell in jdl-Datei transformiert.
Prof. U. Aßmann, SEW
16
Prototyping-Werkzeug ShortCut*
SA/RT-Modelle des CASE ProMod werden in ihrem dynamischen Verhalten
simuliert und für den Endbenutzer ablauffähig gestaltet.
Konstruktionsschritte:
►
- Gestaltung eines graphischen UI unter Verwendung eines
strukturierten Editors, mit dem nach dem Baukastenprinzip Oberfl ächen
für den kom- merziellen wie technischen Bereich kombiniert werden.
►
- Verknüpfung aller Oberfl ächenelemente mit den Datenfl üssen des
SA/ RT- Modells, die mit Terminatoren verbunden sind, durch
Hinterlegung des Datenfl ußnamens hinter das entsprechende
Oberfl ächenelement.
►
- Festlegung der den elementaren Bestandteilen der Datenfl üsse
zuzuord- nenden Datentypen mittels Auswahl aus einer Dialogbox.
►
- Defi nition von SQL-Datenbankzugriffen zu den Speichern des SAMo- dells, wenn relationale Datenbanken (Ingres, Oracle, Sybase) für
das Proto- typing genutzt werden sollen.
►
- Beschreibung der (Dialog-)Ablaufl ogik durch interpretierbaren
Pseudo- code oder realen Programmcode hinterlegt den SA/RTProzessen bzw. als Ergänzung/Umsetzung der Minispecs.
* ShortCut ist ein Produkt der Firma CSE Salzburg.
Prof. U. Aßmann, SEW
17
JBuilder Foundation
Hersteller:
•
•
Borland Corporation in Scotts Valley, Kalifornien
(Im November 2006 wurden die Entwicklungswerkzeuge, darunter auch JBuilder, von
Borland in eine neue Tochtergesellschaft Namens CodeGear ausgegliedert.)
Plattform:
Windows, Linux, Solaris, Apple Mac OS X
Zielsprache: Java
Charakteristik:
–großer Hauptspeicherbedarf
–visueller Designer
–Verwendung von Wizards
–Benutzung von Swing Controls
–farbliche Syntaxunterstützung (frei definierbar)
–Verwendung Java Beans mit dem Entity Bean Modeller
–integrierter Debugger
–Web-Entwicklung mit Internet Bean Express/Struts (Open Source Framework)
–UML Code Visualisierung
–mehrere Projekte können gleichzeitig bearbeitet werden
Verfügbarkeit: freies Download JBuilder 2005 Foundation
URL: http://www.codegear.com/Downloads/TrialandFreeVersions/JBuilder/tabid/143/Default.aspx
Prof. U. Aßmann, SEW
18
Jigloo GUI Builder for Eclipse
Hersteller:
Cloud Garden
Plattform:
Linux, Apple Mac OS X, Windows
Zielsprache: Java
Charakteristik:
–Plugin für die Eclipse Java IDE und WebSphere Studio
–Entwicklung von Swing- und SWT-Komponenten
–Erstellung der GUI nach dem WYSIWYG-Prinzip
–Leichte Handhabung von Objekten
–Einfach zu bedienende Oberfläche
–Komponentenauswahl aus Paletten
–Nutzung aller Funktionen von Eclipse möglich

Prof. U. Aßmann, SEW
19
Eclipse Visual Editor Project (VEP)
The Eclipse Project
Hersteller:
Windows, Linux, Mac OS
Plattform:
Zielsprache: Java
Charakteristik:
−Plugin für Eclipse SDK
−Entwicklung von Swing- und SWT-Komponenten
−Erstellung der GUI nach dem WYSIWYG-Prinzip
−Vergleichbar mit Jigloo
−Wurde als Framework entwickelt
−Nutzung aller Funktionen von Eclipse
Verfügbarkeit: freier Download, Open Source,
URL: http://www.eclipse.org/vep/WebContent/main.php
►
►
Prof. U. Aßmann, SEW
20
Simulationstool in teamwork
Es erlaubt dem Nutzer, ein SA/RT-Modell auszuführen, um daraus Rückschlüsse
auf das Verhalten seiner Komponenten und seiner Leistungsfähigkeit zu ziehen.
Durchgeführt wird eine symbolische Simulation auf der Basis von Token, indem
für ein vorzugebendes Input-Szenario von Ereignissen und Eingaben das Modellverhalten über die Zeit simuliert wird.
Für die Simulation sind darüber hinaus zu spezifi zieren: (Defaultwerte vorh.)
 Simulationsattribute der Modellkomponenten
►• Prozessattribute, wie z.B. Datenaufnahme,
Schaltdauer,...
►• Datenf
l ussattribute, wie z.B.
Erzeugungswahrscheinlichkeit,..
► unterschieden nach den
Verbindungskomponenten
►• Speicherattribute, wie z.B. Zugriffsdauer
►• Signalf
l ussattribute, speziell
Erzeugungswahrscheinlichkeit
►• Hardwareattribute, z.B. relative
Verarbeitungsgeschwindigkeit
 Wurzeldiagramm mit Modelltiefe (DFD-Simulationsausschnitt)
Modellsicht, d.h.
implementationsunabhängig
oderDFD-Editors
mit
•
Durchführung:
 essentiell
Dialogmodus:
Menüpunkt 'Simulation' des
Berücksichtigung
der Hardwaremodule
 Stapelmodus: Vorbereitung
eines Kommandof
i les nötig
►
Ergebnisse: Trace Files, Simulations-Statistiken,Fehlerprotokoll
Prof. U. Aßmann, SEW
21
Vorteile des Prototyping
Die Anforderungen und Analyseergebnisse sind aufgrund der Beteiligung
von Nicht-DV-Spezialisten besser fundiert.
Durch schnelle Verfügbarkeit und frühzeitige Erprobung werden Entwurfsfehler vermieden.
Als Folge der unmittelbaren Beteiligung der Anwender erhöht sich die
Akzeptanz des späteren Softwareproduktes.
Frühzeitige Experimente mit Prototypen der Benutzungsschnittstelle führen
zu ergonomisch günstig gestalteten Produkten.
Die frühzeitige Auseinandersetzung mit dem Prototypen führt zu einer
vorgezogenen Einsatzvorbereitung, während der die Benutzer geschult
und trainiert werden.
Im umgekehrten Fall ergeben sich bei den Entwicklern beschleunigte
Lernprozesse über das Anwendungssystem.
Größere Sicherheit von Anforderungsanalyse und Entwurf ist Basis für eine
bessere Planbarkeit, Aufwandsabschätzung und Termintreue.
Frühzeitige Fehlererkennung senkt Betriebs- und Wartungskosten.
Qualitätsmerkmale Benutzerfreundlichkeit, funktionale Adäquatheit, Änderund Erweiterbarkeit, Korrektheit und Zuverlässigkeit werden gesteigert.
Prof. U. Aßmann, SEW
22
Schwierigkeiten beim Prototyping
Prototyp-Ergebnisse dürfen nicht zu spät kommen, damit sie die
Entwicklung im gewünschten Maße beeinfl ussen können.
Prototypen können schwer eingrenzbar und groß werden, womit sie später
verfügbar und ihrer Funktion nicht voll gerecht werden.
Die Prototyp-Entwicklung ist ein zusätzlicher Aufwand, der in der Regel die
Kosten erhöht und die Entwicklungszeit verlängert.
Die Prototyp-Entwicklung zieht mitunter die Aufmerksamkeit mehr von der
Produkt-Entwicklung ab als vertretbar ist.
Prototypen erwecken den Anschein, die meisten Probleme gelöst zu haben.
Das kann zu gefährlichen Fehleinschätzungen (beim höheren Management)
führen.
Wenn Prototypen nur in geringem Maße weiterverwendet werden, können
sie als bloße Wegwerf-Software zu teuer werden.
Prototyp kann zum dauerhaften Provisorium werden und die methodengestützte Entwicklung des eigentlichen Produktes verhindern.
Unterschied zwischen Prototyp und eigentlichem Produkt verschwindet, was
zum Rückfall in das "code and fi x", anstatt zu einer systematischen,
wohlgeplanten top-down Systementwicklung führen kann.
Prof. U. Aßmann, SEW
23