Home

pdf, ca. 3,8 MB - Persönliche Webseiten der Informatik

image

Contents

1. Fallstudie CSharp Microsoft Visual C NET Entwurf test cs Entwurf E j la xj Datei Bearbeiten Ansicht Projekt Erstellen Debuggen Daten Extras Fenster Hilfe gd 6 40 BA o o E B Debug y gb aProvider UE AI B a o ama is E ar soja E H Toolbox ax urf Kunde Kundeneu cs Entwurf Angebot angebotneu cs Entwurf Angebot Angebot cs Entwurf testes Entwurf Angebot A 4 x Projektmappen Explorer Fallstudi A X Zustandsdiagrammedit aloa Bla h Zeiger El u Projektmappe Fallstudie CSharp 1 Projek Zustand Drag Feedback 5 El Fallstudie CSharp 2 Startzustand El al Verweise E Y Angebot 2 Zustandsuebergang EN Angebot cs 5 Zustand 5 8 AngebotNeu cs amp Startzustand aj ES Angebotsanzeige cs 2 Zustandsuebergang ngebotserstellung cs ngebotspflege cs o zustand ngebotssuche cs 5 Bestellung E Kunde 8 Kunde cs Kundenanzeige cs E Kundenerstellung cs 8 KundeNeu cs ES Kundenpflege cs E Kundensuche cs 5 App ico 4 assemblyInfo cs E Fassade cs 8 Pizzaservice cs 8 test cs Eigene Benutzersteue 5 Daten KI Komponenten m Sag Aufgabenliste ES Buildfehler angezeigte Aufgaben gefiltert x Zwischenablagering 1 M Beschreibung S Ber A A AA Ausgabe AX gt Bereit JL Abb 34 Dragfeedback 73 Parameter Beschreibung object hitObject Das zur ckgebene Objekt einer zuvor aufgerufenen GetHitTest Met
2. A35 Line Color Property Zustand ber diese Property kann die Linienfarbe eines Zustandes angesehen oder editiert werden Nice to have 44 A36 Line Color Property ber diese Property kann die Nice to have Startzustand Linienfarbe eines Startzustandes angesehen oder editiert werden A37 Background Color ber diese Property kann die Nice to have Property Zustand F llfarbe eines Zustandes angesehen oder editiert werden A38 Background Color ber diese Property kann die Nice to have Property Startzustand F llfarbe eines Startzustandes angesehen oder editiert werden A39 Font Property Zustand ber diese Property kann die Nice to have Schriftart und Schriftgr e f r einen Zustandes angesehen oder editiert werden A40 Font Property ber diese Property kann die Nice to have Startzustand Schriftart und Schriftgr e f r einen Startzustand angesehen oder editiert werden A41 Notiz Property Zustand ber diese Property kann die Notiz Should have f r einen Zustand angesehen oder editiert werden A42 Notiz Property ber diese Property kann die Notiz Should have Startzustand f r einen Startzustand angesehen und editiert werden A43 Notiz Property ber diese Property kann die Notiz Should have Zustands bergang f r einen Zustands bergang angesehen und editiert werden A44 Event Property ber diese Property kann das Must have
3. Es wird Code in mehreren Sprachen u a in Visual Basic C J und C erzeugt Der erzeugte Code ist gut lesbar und bersichtlich Wird eine GUI Komponente gel scht so werden alle betreffenden Codestellen dieser Komponente abgesehen von den Event Methoden gel scht Dies hat den Vorteil dass in diesen Event Methoden einprogrammierter Code beim L schen bzw Ver ndern der GUI nicht verloren geht Anderseits kann es dazu f hren dass im Code noch berfl ssige Methoden erhalten bleiben die nirgends mehr aufgerufen werden Diese Methoden m ssen vom Entwickler manuell gel scht werden was wiederum mehr Aufwand mit sich bringt Der generierte Code enth lt Kommentare die zu besserer Nachvollziehbarkeit des Codes f hren 2 4 3 Folgerung Die untersuchten GUI Builder Jigloo und das Produkt von Visual Studio Net weisen unterschiedliche St rken und Schw chen auf Die Vorteile von Eclipse sind dass es frei verf gbar und sehr gut f r die Entwicklung von Java Programmen geeignet ist Visual Studio Net hingegen ist nicht frei benutzbar Die Besonderheit von Visual Studio Net liegt eindeutig in der Unterst tzung mehrerer Programmiersprachen So k nnen Anwender in der Programmiersprache ihrer Wahl entwickeln Beide Produkte bieten eine einheitliche Oberfl che Die Oberfl che ist durch die klare Aufteilung in mehrere voneinander abgegrenzte Komponenten anschaulich Sie ist nicht mit unn tigen Details berladen Die Pal
4. 3 W hlen Sie entweder aus der Liste eine bestehende GUI Maske aus und best tigen dies mit dem Button OK oder geben Sie unter dem Eingabefeld Name den Namen f r die zu erzeugende GUI Maske ein Achten sie dabei darauf in welchen Pfad in der GUI Auswahlliste sie sich gerade befinden In diesem Pfad wird ihre Maske beim Erzeugen abgelegt Wenn Sie den Namen der zu erzeugenden Maske eingeben haben best tigen Sie dies mit dem Button Erzeugen Die GUI Referenz ist danach dem Zustand zugewiesen w hlen Sie ein GUI Formular aus w hlen Sie eine GUI Formular aus Fallstudie CSharp Kunde E Kundenanzeige cs E Kundenerstellung cs El Kundenpflege cs E Kundensuche cs Zielpfad 3 Bestellung FabudsCshapranda 3 Angebot neue GUI Form anlegen Abbrechen 131 4 6 GUI Maske Zuweisung eines Zustands ndern Um die GUI Maske Zuweisung eines Zustands zu ndern gehen Sie wie folgt vor 1 Markieren Sie ihren zu ndernden Zustand 2 Klicken Sie im Eigentschaftsfenster beim Property GUIReferenz den Button an Eigenschaften zustandi SUIT ZustandsdiagrammE JE BackColor L White Bezeichnung zustandi BorderColor Black Groesse 111 103 GUIReferenz 3 W hlen Sie entweder aus der Liste eine bestehende GUI Maske aus und best tigen dies mit dem Button OK oder geben Sie unter dem Eingabefeld Name den Namen f r die zu neu erzeuge
5. 9 8 Zustandsdiagrarr O webservice System Web Services System Web Services 1 0 5000 0 C B Y Bestellung Bestellung cs Elemente hinzuf gen entfernen System Web UI Webeontrols System Web 1 0 5000 0 4 a Pak z SUIT ZustandsdiagrammEditor SUIT 1 0 2515 28071 le M d z Elemente alphabetisch sortieren n SUIT Zustandsdiagrammeditor SUIT 1 0 232 22 i a an de Listenansicht Qu SUIT Zustandsdiagrammeditor SUIT 1 0 2327 30422 Kundenerieios Registerkarte hinzuf gen M zustandsuebergang SUIT ZustandsciagrammEditor SUIT 1 0 2515 28071 c E Kundenerstellun Alle Registerkarten anzeigen lzustandsuebergang SUIT ZustandsdiagrammEditor SUIT 1 0 2327 30422 le 8 KundeNeu cs rn Kundenpflege cs Kundensuche cs Sprache Invariante Sprache Invariantes Land E AssemblyInfo cs Fassade cs Pizzaservice cs a Durchsuchen App ico Version 1 0 2327 30422 Retail BE A Elgene Benutzersteuerelemente y Aufgabenliste 21 Buildfehler angezeigte Aufgaben gefiltert q x Zwischenablagering v pecena z 2 Allgemein 4 gt Ausgabe a Xl rl Bereit Abb 29 Toolbox nach dem Hinzuf gen der Toolboxitems f r das Zustandsdiagramm Um den Vorgang des Einf gens der Komponenten in die Toolbox zu automatisieren implementiert die Designer Klasse ZustandsdiagrammDesigner die Methode addToolBoxlItems auf diese Weise muss diese
6. Abb 58 Login Verfahren in SUIT Zustandsdiagramm Notation Erweitert Abbildung 3 zeigt nun dass das Ereignis Login Click die Aktion UserVerifying startet und diese Aktion sowohl zum Folgezustand Arbeitsumgebung als auch rekursiv zu sich selbst f hrt Durch die zwei Transitionen die beide auf das Ereignis Login Click reagieren und beide die Aktion UserVerifying ansto en jedoch andere Folgezust nde aufweisen wird hier der verzweigte Dialogablauf dargestellt Allerdings darf man sich hier nicht irref hren lassen denn dieses Diagramm beschreibt nicht den Sachverhalt der in Abb 56 durch ein Interaktionsdiagramm beschrieben worden ist Auch in dem Diagramm in Abb 58 ist keinerlei Semantik ber den R ckgabewert der UserVerifying Funktion enthalten und w rde im Falle einer Simulation sogar dazu f hren dass v llig unklar w re welche der Zust nde und somit welche Maske nun im Falle eines Login Click Ereignis aktiv w re Daher sollte der SUIT Anwender m glichst solche Diagramme vermeiden Der SUIT Zustandsdiagrammeditor erlaubt zwar die Erstellung solcher Transitionen die auf dasselbe Ereignis reagieren aber zu unterschiedlichen Folgezust nde f hren Der SUIT Anwender sollte jedoch hiervon absehen da es sonst zu unvorhersehbaren Problemen in der Simulation kommen kann Der SUIT Zustandsdiagrammeditor in der aktuellen Version hat keinerlei Sicherheitsabfragen gegen solche unklaren Dialogverzweigungen Diese Sicherheit
7. Background Color Property Zustand Erf llt Nice to have A38 Background Color Property Startzustand Erf llt Nice to have A39 Font Property Zustand Erf llt Nice to have A40 Font Property Startzustand Erf llt Nice to have A41 Notiz Property Zustand Erf llt Should have A42 Notiz Property Startzustand Erf llt Should have A43 Notiz Property Zustands bergang Erf llt Should have A44 Event Property Zustands bergang Erf llt Must have A45 Action Property Erf llt Must have A46 In Property Zustands bergang Erf llt Must have A47 Out property Erf llt Must have A48 Points Property Zustands bergang Erf llt Should have A49 Gr e von Zust nden mit dem Mauscursor Erf llt Should have ndern A50 Die Position eines Zustandes ber Drag amp Erf llt Should have Drop ndern A51 Die Position eines Startzustandes ber Erf llt Should have Drag amp Drop ndern A52 Die Position eines Zustandes ber Drag amp Erf llt Should have Drop ndern A53 Die Position eines Zustands bergangs ber Erf llt Should have Drag amp Drop ndern A54 Verschieben von Zust nden Erf llt Should have A55 Speicherung vom Zustandsdiagramm als Erf llt Nice to have Bilddatei A56 Speicherung von Zustanddiagramm als Code Erf llt Must have A57 nderung im Zustandsdiagrammcode Erf llt Should have Reverse Engeenering A58 Vergr ern des Zeichenblattes Erf llt Should have A60 Drucken eines Zustdandsdiagramms nicht erf l
8. 2i DynamicProperties ControlEventAction E Ein Dialog Fenster erscheint in dem Sie die GUI Maske die Sie beim ausgehenden Zustand des Zustands bergangs zugewiesen haben sehen k nnen Je nachdem wie ihre GUI Maske aussieht gibt es Screenshot EE EventActionChooser Kundenanzeige efundene Kunden IstKunde anlegen bearbeiten 133 also hier Abweichung von den folgenden Ereignisausl sendes Control emdZurueck W hlen Sie das Event aus auf dem reagiert werden soll BackColorChanged BackgroundlmageChanged BindingContextChanged CausesYalidationChanged ChangeUlCues ContextMenuChanged Control dded ControlRemoved CursorChanged Disposed DockChanged DoubleClick DragDrop DragEnter DragLeave DragOver EnabledChanged Enter FontChanged ForeColorChanged HandleCreated Methodenname der Action die ausgef hrt werden soll neueSuchd Abbrechen DK W hlen Sie im ihre GUI Masken Ansicht linkes Fensterbereich des Dialogs das Control aus auf dessen Ereignis reagiert werden soll und w hlen Sie dann das Ereignis aus der Liste rechts im Fenster aus Geben Sie den Namen der Action dann in dieses Feld ein H andleCreated Methodenname der Action die ausgef hrt werden soll Abbrechen OK 6 Best tigen Sie nun mit dem Button OK Ihr Zustands bergang sollte nun erfolgreich das ausgew hlte Event und Action zugewiesen sein 4 8 Event und A
9. Aktionen muss vom Anwender nachtr glich implementiert werden Allein f r das Zustandsdiagramm des Gesamtsystems Pizzaservice wurden 23 Methoden automatisch generiert Bei gro en Systemen ist die Menge der im Zustandsdiagramm definierten Aktionen entsprechend umfangreicher Die automatische Generierung dieser Methoden in einer Fassade w rde den manuellen Programmieraufwand erheblich reduzieren 88 Folgender Fassaden Ausschnitt wurde von SUIT f r das Zustandsdiagramm in Abb 48 erzeugt public class Fassade public static void angebot_bearbeiten object sender System Eventirgs e Output WriteLine angebot_bearbeiten invoked public static void angebot suchen object sender System Eventirgs e Output WriteLine angebot_suchen invoked public static void show_angebotssuche object sender System Event rgs e Output WriteLine show _angebotssuche invoked lt ssummary gt Code generated by FassadeGenerator Don t change next statement Change to this statement may cause exception if the code is regenerated jii lt summary gt public static System IO TextWriter Output System Console Out Abb 49 Ein Ausschnitt der Fassade zum Zustandsdiagramm in Abb 48 In der Simulationsansicht von SUIT kann man sich nun das bereits modellierte Verhalten des Pizzaservicesystems ansehen Der aktive Zustand in dem auf eine Benutzereingabe gewartet wird wird in der Simulationsansicht fa
10. Das Objekt das von einem zuvor aufgerufenen GetHitTest zur ckgeben wurde Int X Die Offset Anzahl zu dem Zustandselement in der X Richtung IntY Die Offset Anzahl zu den Zustandselement in der Y Richtung Point initialPoint Der Punkt an dem dieser Drag initialsiert wurde zu den Zustandselement in der Y Richtung Tabelle 15 Parameter von Drag 74 onClick public virtual void onClick Mouse onClick wird ausgef hrt wenn auf das Zustandsdiagrammelement geklickt wurde onClick ist virtual und kann in einer von ZDiagrammElementDesigner abgeleiteten Klasse berschrieben werden EventArgs me EnvDT E DTE DTE Parameter Beschreibung MouseEventArgs me Die Argumente f r den Mouse Event EnvDTE DTE DTE Der DTE des hostest Tabelle 16 Parameter von onClick 6 6 Fazit Die in Kapitel 4 beschriebenen funktionalen Anforderungen an SUIT wurden bewertet ob sie als erf llt oder nicht erf llt gelten k nnen Weiterhin wurden die technischen Besonderheiten bei der Umsetzung von SUIT in Net beschrieben damit wurde ein kleiner Einblick in Net gew hrt SUIT kann weiterentwickelt werden Zu diesem Zweck wurden die Schnittstellen zu SUIT beschrieben 75 7 Fallstudie 7 1 Einleitung Ziel der vorliegenden Bachelor Arbeit ist die Entwicklung eines Tools mit dem auf der Basis von Zustandsdiagrammen und Fensterentw rfen eine Benutzungs
11. System Drawing Color White this startzustandl Bezeichnung startzustandl this startzustandl BorderColor System Drawing Color Black this startzustandl Groesse new System Drawing Size 100 100 this startzustandl GUIReferenz Fallstudie CSharp Maskel cs this startzustandl Info null So sieht am Beispiel des Startzustands aus Abb 30 der in SUIT automatisch generierte Code in C aus CodeDom ist jedoch mit der jetzigen Version f r die sprachunabh ngigen Generierung der Fassade nicht ausreichend da das CodeDom Model im vorliegenden Net Framework Version 1 1 f r Objekte die nicht von Typ IComponent sind noch nicht komplette Sprachunabh ngigkeit realisiert F r die Fassadengenerierung wird die Klasse FileCodeModel benutzt Diese erm glicht den Zugriff auf die Methoden innerhalb der Fassade FileCodeModel ist im EnvDTE Namespace definiert Folgender Codeausschnitt zeigt die zu dem Beispiel aus Abb 30 generierte Fassade 63 namespace WindowsApplication3 lt summary gt Zusammenfassung f r Fassade lt summary gt public class Fassade public static void suchen object sender System EventArgs e Output WriteLine suchen invoked lt summary gt Code generated by FassadeGenerator Don t change next statement Change to this statement may cause exception if the code is regenerated lt summary gt public static System IO TextWriter Output System Conso
12. Type DesignerTypeName Type DesignerBaseType wird vor der Klassendeklaration aufgerufen Dieser Code initialisiert eine neue Instanz der DesignerAttribute Klasse mit den Typen des Designers und der Designerbasisklasse Mit dem Parameter Type DesignerTypeName wird der zuzuordnende Designer bergeben In unserem Code ist es der ZustandsdiagrammDesigner typeof IRootDesigner sagt aus dass der ZustandsdiagrammDesigner vom Typ IRootDesigner ist Ein Designer vom Typ IRootDesigner wird beim Doppelklick auf die Klasse angezeigt Er ist der Stammdesigner und befindet sich an der h chsten Position 6 4 3 Programmiersprachunabh ngigkeit in der Codegenerierung in Net Verwenden von CodeDom NET stellt den Code Document Object Model CodeDom Mechanismus zur Verf gung um die logische Struktur des Quellcodes zu beschreiben CodeDom Elemente werden miteinander verbunden sodass eine Datenstruktur entsteht die die Struktur von Quellcode abbildet Jede Klasse Methode Variable etc ist ein eigenes Objekt das instanziert und zum Diagramm hinzugef gt werden muss Im Folgenden wird an einem Beispielcode aus CodeDom die Erzeugung eines CodeDom Diagramm demonstriert 61 Beispiel In c Point myPoint new Point 10 10 in VB Dim myPoint As Point New Point 10 10 Im Beispielcode wird ein Objekt der Klasse Point mit seinen x und y Koordinaten erzeugt Aus diesem Programmiercode wird nun demonstriert wie eine CodeDom Struktur
13. berlegungen die sich skizzenhaft in Form von Masken mit GUI Komponenten wiederfinden Was z B aus dem Zustandsdiagramm nicht hervorgeht ist die Information dass durch das Bet tigen des Buttons Suche das Ereignis suche_click ausgel st wird Das bedeutet dass die Beziehung zwischen der GUI Komponente und dem durch den Dialogwechsel auszul senden Ereignis fehlt Im Modell aus Abb 1 ist sie jedoch nachvollziehbar Ziel ist es also das Zustandsdiagramm um Maskenskizzen zu erweitern Dazu ist es erforderlich jede Skizze einem Zustand zuzuordnen Siehe dazu Abb 4 1 Buch 2 Buch Buchsuche Buchliste Suche_click Buchsuche Buchinfo Abb 4 Zustandsdiagramm Literatur Suche um die Maskenskizzen angereichert 10 Die gesamten Informationen aus dem Ursprungsmodell in Abb 1 wurden in Form eines Zustandsdiagramms und Fensterskizzen beschrieben Dialogabl ufe der Buchsuche wurden in Form eines Zustandsdiagramms modelliert Hierzu wurden Zust nde Zustands berg nge und Ereignisse definiert und die Zust nde Skizzen zugeordnet In Abb 1 und im Modell in Abb 4 handelt es sich letztendlich um dasselbe Modell Das Modell aus Abb 1 ist durch den Versuch die Dialogabl ufe in ihrer Reihenfolge darzustellen entstanden Bei diesem Vorgang ist intuitiv also eher unbeabsichtigt ein Zustandsdiagramm entstanden Das Modell in Abb 4 bildet auch den Versuch die Dialogabl ufe in ihrer Reihenfolge darzustellen mit dem Unterschied da
14. glichkeit per Drag amp Drop Verfahren und Properties Einstellungen sein Zustandsdiagramm aufzubauen zu editieren und zu entwickeln Dabei wurde das Ziel gesetzt dass der Zustandsdiagramm Designer sich m glichst nahtlos in die Net Entwicklungsumgebung integriert siehe Abschnitt 5 2 So wurde die schon aus dem GUI Builder bekannte Toolbox beim Zustandsdiagramm Designer um neue Elemente erweitert wie z B Zustand und Zustands bergang Hierbei wird das Ziel verfolgt dass SUIT sich mit wenig Aufwand weiterentwickeln l sst Im Falle einer Weiterentwicklung kann die Toolbox ohne einen gro en Aufwand um weitere Zustandsdiagrammelemente erg nzt werden Um diese Erg nzung zu erm glichen wurde eine abstrakte Oberklasse ZustandsdiagrammElement angelegt von der alle Toolbox Elemente f r den Zustandsdiagramm Designer erben muss Der Zustandseditor von SUIT ist so angelegt dass er alle Elemente von Typ ZustandsdiagrammElement akzeptiert Will man also den SUIT Zustandsdiagrammeditor um weitere Elemente erweitern so muss man eine Klasse definieren die von ZustandsdiagrammElement erbt Abb 25 zeigt die Vererbungsstruktur der Elemente die zur Zeit in SUIT unterst tzt werden ZustandsdiagrammElement Startzustand Abb 25 Vererbungsbaum der Elemente in SUIT Zustandsdiagramm Designer Zustands bergang 51 In Abb 25 l sst sich erkennen dass alle zur Zeit im SUIT unterst tzten Elemente Zustand Startzustand und Zustand be
15. i 8 Pizzaservice cs y B test cs E A O DS O O O OO EOS TEGO ESAS DEDOS OOO EA 1 Daten 4 Komponenten Aufgabenliste 22 Buildfehl te Aufgab filtert x Windows Forms fg zen 2 ler angezeigte Aufgaben gel 3 a Zwischenablagering mM Peschirepung er Allgemein I u E z EA Ausgabe a x wj Bereit Abb 33 SUIT Zustandsdiagramm mit DragFeedback Die Komponente Zustand mit dem Namen zustand1 w rde bei einem Methodenaufruf von IsInRect true liefern weil sie sich im Rechteck befindet Dagegen liefert das Komponenten Object mit dem Namen zustand2 bei s nRect false weil sich zustand2 au erhalb des rechteckigen Bereichs befindet GetCursor public virtual Cursor GetCursor object hitObject GetCursor gibt den Maus Cursor f r den bergebenden HitObjekt zur ck Handelt es sich bei dem bergebenen hitObject um HitLeft oder HitRight so wird ein Cursor Object zur ckgegeben mit zwei horizontalen Spitzen West Ost Ist es aber ein HitTop oder HitBottom Object gibt GetCursor ein Cursor Object mit zwei vertikalen Spitzen Nord S d Bei einem HitUpperLeft oder HitLowerRight ist es ein Cursor mit zwei diagonalen Spitzen Nordwest S dost Handelt es sich um HitUpperRight oder HitLowerLeft ist der Cursor zwei diagonale Spitzen Nordost S dwest Ansonsten gibt die Methode GetCursor einen Cursor Object mit vier Spitzen die nach Nord S d Ost und West zeigen zur ck siehe Tabelle 8 Die Methode GetCursor ist v
16. nnen die Eigenschaften eines Startzustandes angesehen oder editiert werden Must have A26 Property Ansicht Zustands bergang ber diese Property Ansicht k nnen die Eigenschaften eines Zustands bergangs angesehen und editiert werden Must have A27 Position Property Zustand ber diese Property kann die Position eines Zustandes angesehen oder editiert werden Must have A28 Position Property Startzustand ber diese Property kann die Position eines Startzustandes angesehen und editiert werden Must have A29 Gr e Property Zustand ber diese Property kann die Gr e eines Zustandes angesehen oder editiert werden Must have A30 Gr e Property Startzustand ber diese Property kann die Gr e eines Anfangzustand angesehen oder editiert werden Must have A31 Text Property Zustand ber diese Property kann die Beschriftung eines Zustandes angesehen oder editiert werden Must have A32 Text Property Startzustand ber diese Property kann die Beschriftung eines Startzustandes angesehen oder editiert werden Must have A33 Masken Property Zustand ber diese Property kann den Eintrag Referenz der Maske eines Zustandes angesehen oder editiert werden Must have A34 Masken Property Startzustand ber diese Property kann den Eintrag der Maske Referenz eines Startzustandes angesehen oder editiert werden Must have
17. oooocnoocccooocccnonccinnncconnncninnos 101 9 2 6 Konsistenzverlust in sp teren Phasen oooooonnncccnnonccnnnccconnncnonnncononocononccnonnccnonnccnnnos 104 9 4 Fatit nrn aien PAULI NE EELUL SEES IE E ATE E BL GELNEURUERER a a 105 EOS USD ER cds 106 19 1 Einleitung asien een 106 192 Erweiterungen von SU a a E E aE 106 10 2 1 Erweiterung Hierarchie 2 2 u a E E E R EEE ERE 106 10 2 2 Erweiterung Konsistenzerhaltung oooococnonccnnonocononcnononccnnnnncnnnnnccnnnccnnnnccnoncccnnnos 107 IS Fait NN 111 PERES E LI A A A AA A a aS 112 Quellen asada ias 113 Abbild ngsyerzeichni as 114 A RO 116 Mder tes ee E 117 Anhan t e a edge 120 Ben utzer aNd DC r a a e E a EAS 121 Kl ssendiagramnM ae Eike 139 1 Einleitung Die Softwaremodellierung besitzt im Software Entwicklungsprozess einen hohen Stellenwert Hier hat sich in der objektorientierten Software Entwicklung UML in wenigen Jahren als Standardsprache durchgesetzt UML bietet neun Typen von Diagrammen doch keins davon geht auf die Erfordernisse beim Entwurf von Benutzungsschnittstellen ein obwohl noch vor wenigen Jahren eine Studie von Myers und Rosson ergab dass ca 50 des Gesamtaufwandes eines Softwareprojektes alleine f r die Programmierung der graphischen Benutzungsschnittstelle notwendig war MyersRosson92 Gr nde hierf r sind unter anderem fehlende Methoden und unzureichende Werkzeuge Ein wesentliches Bestreben dieser Bachelor Arbeit ist es den Entwickler b
18. t SUIT SUIT erzeugt aus einem Modell automatisch Prototypen Weiterhin wird das Modell in SUIT zur automatischen Codegenerierung genutzt Prototypen k nnen in SUIT bis zur fertigen Anwendung weiterentwickelt werden Ende des Textes Noura Haji amp Vinh Phu Phan Title of the paper Developing User Interface with state diagram and window designs Keywords User Interface GUI state diagram Prototyping Abstract The main object of this bachelor s thesis is to support the developer in building user interfaces Due to missing methods and insufficient tools the former development effort is extraordinary This bachelor s thesis presents a method to create user interfaces by means of state diagrams and window designs The solution to implement this method was to combine the functionality of a GUI builder with a state diagram editor and to integrate this into the software development process This solution is called SUIT SUIT takes a model and creates automatically prototypes and code The prototypes which are built in SUIT can be developed to running software applications End of text Erkl rung Hiermit versichern wir dass wir diese Arbeit selbst ndig verfasst haben und keine anderen als die angegebenen Quellen und Hilfsmittel verwendet wurden Hamburg 19 Januar 2007 Vinh Phu Phan Hamburg 19 Januar 2007 Noura Haji Danksagung An dieser Stelle m chten wir allen danken die bei der Entstehung dieser Arbeit mitgewirkt habe
19. 444s s s40sseenenannnennenennnan nennen nennen en nenn 7 8 9 11 12 13 14 15 16 17 18 28 30 31 34 37 38 40 41 76 78 80 83 84 86 88 90 100 101 104 105 106 107 108 111 112 Bildsehirmmasken a se es ee an ra dad leed 12 14 16 38 Cc GOIEDo Mae iii 50 51 52 61 62 63 Codegenerierung ccoococccccncncncococononcnnnnnnonncnnnrnnnncnrnnnnnnnrnroroncnnnss 12 14 21 24 50 51 52 61 90 93 95 101 102 103 D Dial gwechsel r run en BE DI 34 E Eclips Sra n a ab he ee Hole ner ae iaa 18 19 24 Elementar Werkzeug ns A paa 15 78 79 80 87 Endlicher Automat 22222022sssennsennennnnnnennnnnnennnnnennnenennnnnnnennnnenenennnsnnnenennennen 9 30 31 40 ENAZUSTINA O ee SE E A ETET 38 39 Entscheidungstabelle 4u4u4040nananennennnanannnnnnnnannnne nen nnnnnnnnnnannnnn een nnnnen 33 37 40 ENVDTE 2 2 A A a E ES 48 63 65 66 F EallstUdiSia cata Di 76 Fassa endend 13 14 17 18 31 37 40 41 46 52 53 54 58 63 64 88 89 90 91 92 95 98 99 106 112 Fassaden Pattern cui A A A Aa ee 52 Fensterentwurl 2 3 asada a adas 13 14 15 16 17 18 28 30 31 37 40 76 80 86 90 91 92 95 97 99 105 106 112 Ele Go de M dem A A Hrn 63 Funktionale Komponente occooccccocccocococnccccncnoncnccncnnnrncncn rra nn nn nn nana nnnnnnennnincnnenenanenennananes 13 53 G GUI B llder aiii e 11 12 14 15 16 17 18 19 22 23 24 25 28 29
20. Ausblick dar ber gegeben werden wie sich SUIT weiterentwickeln l sst SUIT erf llt in der aktuellen Version die von uns erhofften Ziele die wir in der Vision siehe 1 2 beschrieben haben Benutzungsschnittstellen lassen sich in SUIT mit Hilfe von Zustandsdiagrammen und Fensterentw rfen modellieren und das schon recht in den fr hen Etappen der Softwareentwicklung Die Simulationskomponente erm glich es den Kunden einen Prototyp schnell vorzulegen und die Fassaden Generierung nimmt dem Entwickler Programmierarbeit ab und bietet eine gute Schnittstelle zur Weiterentwicklung der mit SUIT modellierten Prototypen F r die n chste SUIT Version sollen die Aspekte der Konsistenzhaltung und Hierarchie neue prim re Ziele sein Um diese Ziele zu erreichen bedarf es Erweiterungen an SUIT die in Abschnitt 10 2 erl utert werden Im Abschnitt 10 3 folgt dann ein Fazit 10 2 Erweiterungen von SUIT F r die folgenden SUIT Versionen k nnen zwei prim re Ziele gesetzt werden Zun chst soll die M glichkeit geboten werden das gesamte Zustandsdiagramm Modell aufzuteilen und somit besser zu strukturieren Diese Erweiterung soll in Abschnitt 10 2 1 erl utert werden Abschnitt 10 2 2 bezieht sich dann auf Erweiterungen an SUIT die auf die Konsistenzerhaltung zwischen dem SUIT Zustandsdiagramm Modell der tats chlichen Benutzungsschnittstelle zielen 10 2 1 Erweiterung Hierarchie SUIT wurde bisher nur bei kleineren Projekten getestet In diesen Projek
21. Drag amp Drop Verfahren auf die en per Drag amp Drop Zeichenfl che platziert werden Gr e von Die Gr e kann direkt beim Together Should have Zust nden beim Platzieren per Drag amp Drop ge ndert Erzeugen ndern werden Farbliche Zust nde k nnen in verschiedenen Together Nice to have Hervorhebung Farben dargestellt werden Visio Gr e des Das Zeichenblatt kann verkleinert Visio Nice to have Zeichenblattes oder vergr ert werden ndern Format des Es kann zwischen einem Visio Nice to have Zeichenblattes Querformat oder einem Hochformat ausgew hlt werden Formatieren von Text und andere Beschriftungen Visio Nice to have Text k nnen beliebig formatiert werden Formatierung F r jedes Element kann eine Visio Nice to have Muster F llmuster definiert werden Formatierung Linienbreite Linienfarbe Kann f r Visio Nice to have Linie jedes Element beliebig definiert werden Druckansicht Eine Druckansicht kann vor dem Visio Nice to have Drucken angezeigt werden Tabelle 2 Neu erkannte Anforderungen aus Visio und Together 2 6 Fazit Die Erzeugung von Benutzungsschnittstellen in Form von Zustandsdiagrammen und Fensterentw rfen ist in der Literatur bisher noch nicht beschrieben worden Die Recherche nach einem Werkzeug das die in 1 2 1 beschriebene Methode umsetzt ergab dementsprechend kein Ergebnis Es sind zwar GUI Builder zur Gestaltung graphischer Oberfl chen oder Zustandsdiagramm Editoren zum Ers
22. Eigenschaften im Eigenschaftsfenster Abb 31 angezeigt so kann f r jede Eigenschaft definiert werden ob es sich bei dieser Eigenschaft um eine schreibgesch tzte Eigenschaft oder um eine Lese Schreib Eigenschaft handelt Eigenschaften die den System Component Model ReadOnlyAttribute Konstruktor mit dem Wert true versehen sind sind schreibgesch tzt 6 4 5 Aufrufen des GUI Designers in SUIT EnvDTE DTE DTE dient zur Automatisierung und Erweiterbarkeit von Visual Studio Mit einem DTE Object k nnen Prozesse in Visual Studio wie z B das Kompilieren von Projekten und der Zugriff auf Elemente der Entwicklungsumgebung wie z B der Zugriff auf den GUI Builder von Visual Studio automatisiert werden DTE am Beispiel des Aufruf des GUI Builder in SUIT Der Aufruf des GUI Builders in SUIT ist notwendig da z B bei einem Doppelklick auf einem Zustand der GUI Builder mit der dem Zustand zugeordneten Maske ge ffnet wird Diese kann dann bearbeitet werden F r den Aufruf des GUI Builders ben tigt man ein Objekt der Enwticklungsumgebung angeboten durch das DTE Objekt im Namespace EnvDTE Ein Objekt des Typs DTE repr sentiert unter anderem alle bestehenden Projekte mit den darin enthaltenen Dateien alle Konstanten etc innerhalb der Entwicklungsumgebung Ist das DTE Objekt erst einmal bei der Hand kann man sich das Projekt holen das die GUI Datei enth lt Hat man nun das Projekt in der sich die GUI Datei befindet so kann man sich ein Obj
23. Entsorgung der Felder werden in SUIT nicht ber cksichtigt um diese muss sich der Anwender selbst k mmern siehe Abschnitt 3 4 Dadurch ist dem Anwender trotz vorgegebenen Fassade Pattern gen gend Freiraum gelassen um seinen eigene Designentwurfe einzubringen Dennoch sorgt diese durch die Fassade erzwungene Entkoppelung daf r dass eine saubere Trennung von Funktionalit t und View stattfinden muss sodass der Anwender mehr oder minder verpflichtet ist auf Softwareengeneeringssicht ein gutes Entwurfskonzept zu realisieren 5 5 Fazit Die SUIT Architektur gliedert sich in die bestehende Visual Studio Net Architektur ein SUIT verh lt sich hierbei in der Handhabung wie eine Net Klassenbibliothek Die interne SUIT Architektur l sst sich in drei eigen entwickelte Komponenten Zustandsdiagramm 53 Komponente Simulationskomponente und Codegenierungskomponente und eine fremdentwickelte Komponente GUI Designer Komponete unterteilen Durch die automatische Fassaden Generierung wird eine Schnittstelle zu sauberen Trennung zwischen der Interaktionskomponente und der Funktionalen Komponente angeboten die der SUIT Anwender bei dem Entwurf seines Zielsystem Architektur ber cksichtigen muss 54 6 Umsetzung von SUIT 6 1 Einleitung Dieses Kapitel gibt einen kleinen Einblick in die Umsetzung von SUIT In Abschnitt 6 2 wird darauf eingegangen welche der Anforderung im Anforderungskapitel siehe Kapitel 4 umgesetzt wurden
24. Entwicklung von SUIT In Kapitel 3 wird die Theorie der Erzeugung von Benutzungsschnittstellen in Form von endlichen Automaten und Fensterentw rfen dargelegt In Abgrenzung von der Theorie Denerts der Erzeugung von Benutzungsschnittstellen mit Interaktionsdiagrammen und Fensterentw rfen wird die im Rahmen dieser Bachelor Arbeit geplante Vorgehensweise der Erzeugung von Benutzungsschnittstellen auf Basis von Zustandsdiagrammen und Fensterentw rfen beschrieben In Kapitel 4 werden alle Anforderungen an SUIT dargelegt und klassifiziert in Kapitel 5 die SUIT Architektur beschrieben Im dritten Bereich der Arbeit wird die Umsetzung von SUIT dargestellt und nach verschiedenen Gesichtspunkten untersucht und beurteilt In Kapitel 6 wird ein kleiner Einblick in die Umsetzung von SUIT gegeben Au erdem wird auf Besonderheiten bei der Realisierung von SUIT und auf die im Rahmen der Umsetzung verwendeten Technologien eingegangen In Kapitel 7 wird am Beispiel einer Fallstudie der praktische Einsatz von SUIT demonstriert In Kapitel 8 folgt eine Analyse des Usabiliy Tests dem SUIT mit Hilfe von Testpersonen unterzogen wurde Hierdurch soll SUIT auf seine Praxistauglichkeit hin untersucht werden Der vierte Teil der Arbeit besteht aus den Kapiteln 9 und 10 In Kapitel 9 werden die M glichkeiten und Grenzen von SUIT beschrieben Und in Kapitel 10 folgt ein Ausblick dar ber wie sich SUIT weiterentwickeln l sst Hier werden f r SUIT sinnvolle Erweiteru
25. Kundendaten arbeitet Diese Kunden geben Bestellungen aus die auch von dieser Benutzungsschnittstelle verwaltet 101 werden sollen ber das Hauptmen in dem sich das System zu Anfang befindet kann der Anwender entscheiden ob er Kunden oder Bestelldaten ansehen will Je nachdem was der Anwender ansehen will bekommt er eine Liste mit der bersicht alle Kunden oder Bestelldaten In diesen bersichtslisten kann der Anwender dann die Details der Daten zu einem Kunden sofern er vorher im Hauptmen die Kundenliste ausgew hlt hat oder zu einer Bestellung anfordern und manipulieren Zu einer detaillierten Beschreibung einer Bestellung geh rt ein Kunde der diese Bestellung aufgegeben hat Dieser Kunde kann im Bestelldetail angezeigt und bearbeitet werden Daher ist die Kunden Maske Kunde cs sowohl ber den Weg der Kundenliste als auch ber die Bestellliste erreichbar Diese Kunden Maske wird wie in Abb 55 zu erkennen in zwei Zust nden Kunde und KundeBestellung benutzt Eine Wiederreferenzierung von Masken in unterschiedlichen Zust nden ist in manchen F llen also sinnvoll und wird von SUIT unterst tzt Diese unterst tzte Funktionalit t macht jedoch die Codegenerierung f r den Aufruf des Folgezustands und somit die Folgemaske komplexer als sie ist Das Problem bei der Codegenierung des Folgemaskeaufrufs besteht darin zu entscheiden an welcher Stelle dieser Code generiert werden muss Es gibt dort drei m gliche Ans
26. Object HitBottom Wird gesetzt wenn die Maus ein ZustandsdiagrammElement am unteren Rand ber hrt hat object HitLeft Wird gesetzt wenn die Maus ein ZustandsdiagrammElement am linken Rand ber hrt hat object HitRight Wird gesetzt wenn die Maus ein ZustandsdiagrammElement am rechten Rand ber hrt hat object HitTop Wird gesetzt wenn die Maus ein ZustandsdiagrammElement am oberen Rand ber hrt hat object HitLowerLeft Wird gesetzt wenn die Maus ein ZustandsdiagrammElement am unteren linken Rand ber hrt hat object HitLowerRight Wird gesetzt wenn die Maus ein ZustandsdiagrammElement am unteren rechten Rand ber hrt hat object HitUpperLeft Wird gesetzt wenn die Maus ein ZustandsdiagrammElement am oberen linken Rand ber hrt hat object HitUpperRight Wird gesetzt wenn die Maus ein ZustandsdiagrammElement am oberen rechten Rand ber hrt hat Size myAdornmentDimensions Liefert die Gr e des Verzierungvierecks das beim Selektieren eines Elementes in Designer gezeichnet werden soll Tabelle 9 Statische Variablen der Klasse ZDiagrammElementDesigner Wird eine Klasse von ZDiagrammElementDesigner abgeleitet muss die folgende Methode implementieren BoundingBox public abstract Rectangle BoundingBox get set Dieser Property gibt einen Rechteckigen Bereich f r das Element zur ck anhand dessen ermittelt wird welcher Bereich neu gezeichnet werden muss
27. Startzustand Zustandsuebergang startzustand Alternativ k nnen Sie ein Startzustand durch ein Doppelklick auf des Element Startzustand in der Toolbox Kategorie Zustandsdiagrammeditor Elemente erzeugen 128 4 3 Erzeugung eines Zustands Bevor Sie einen Zustand erzeugen k nnen m ssen Sie ein Zustandsdiagramm erzeugt haben Siehe 4 1 Offnen Sie dieses Zustandsdiagramm in seiner Designer Ansicht Um nun einen Zustand per Drag amp Drop zu erzeugen gehen Sie wie folgt vor 1 W hlen Sie aus der Toolbox unter der Kategorie Zustandsdiagrammeditor Elemente das Element Zustand aus Toolbox 2x Zustandsdiagrammeditor El RK Zeiger amp Zustand g8 Startzustand Zustandsuebergang 2 Ziehen Sie nun per Drag amp Drop auf ihre Zeichenfl che einen Rahmen der die Gr e und Position ihres Zustands beschreiben soll Fallstudie CSharp Microsoft Visual C NET Entwurf Datei Bearbeiten Ansicht Projekt Erstellen Debuggen De Du 40 sam Toolbox 2x Startseite Pizzaservice cs Entw Zustandsdiagrammeditor El KR Zeiger 433 Zustand ee ee Startzustand Zustandsuebergang 3 Beim Loslassen der Maus also beim best tigen des Drag amp Drops sollte ihr Zustand erzeugt worden sein 75 Fallstudie CSharp Microsoft Visual CF NET Entwur Datei Bearbeiten Ansicht Projekt Erstellen Debuggen Dal 0 6 Sug Oro Toolbox 2x Startseite Pizzaservice cs Entwu Zustandsdiagrammeditor El A
28. Tool existiert das diese Methode umsetzt Unsere Recherche nach solch einem Tool best tigte unsere Vermutung siehe Kapitel 2 Daher ist Ziel dieser Bachelor Arbeit solch ein Tool zu realisieren 1 2 2 Vision SUIT SUIT steht f r Statechart User Interface Tool Es handelt sich um das Tool das im Rahmen dieser Bachelor Arbeit entwickelt werden soll SUIT soll die in der Vision in Abschnitt 1 2 1 13 beschriebene Methode umsetzen Es unterst tzt also die Modellierung von Benutzungsschnittstellen in Form von Zustandsdiagrammen und Fensterentw rfen SUIT erm glicht die Modellierung des dynamischen Verhaltens einer Benutzungsschnittstelle in Form eines Zustandsdiagramms Das in SUIT erstellte Zustandsdiagramm kann um die Informationen der Bildschirmmasken angereichert werden In ihm wird festgehalten welche Maske auf dem Bildschirm in einem Zustand dargestellt werden soll Auf diese Art und Weise wird die L cke zwischen der Modellierung des dynamischen Verhaltens einer Benutzungsschnittstelle und die graphische Gestaltung ihrer Oberfl che geschlossen In SUIT wird au erdem noch erreicht dass der in die Modellierung in Form von Zustandsdiagrammen und Fensterentw rfen investierte Aufwand in den Entwicklungsprozess mehr integriert wird SUIT steigert den Nutzen eines Modells indem aus dem Modell automatisch Code in Form einer Fassade generiert werden kann Dar ber hinaus kann das Modell simuliert werden Die Simulation dient dazu das
29. Vorgehensweise in Abgrenzung zur Vorgehensweise von Denert dargestellt und diskutiert In Abschnitt 3 5 wird ein Fazit aus den berlegungen gezogen 3 2 Benutzungsschnittstellen auf Basis von endlichen Automaten und Fensterentw rfen Die zustandsbasierte Modellierung stellt eine M glichkeit dar das Verhalten von Benutzungsschnittstellen zu spezifizieren Die Benutzungsschnittstelle eines Systems kann als eine endliche Menge von Zust nden und Zustands berg ngen modelliert werden In Abh ngigkeit von einer bestimmten Eingabe wechselt der Zustandsautomat von einem Zustand in einen anderen Welche Eingaben m glich sind ist vom aktuellen Zustand des Systems abh ngig Eingaben verursachen Zustands berg nge und dienen dem Benutzer zum Navigieren in den endlichen Automaten Eine Benutzungsschnittstelle besteht in der Regel aus einer Menge von Masken zwischen denen durch Eingabeaktionen Men auswahl OK Button usw hin und her gewechselt werden kann Werden Masken bzw Dialogboxen als Zust nde aufgefasst und Eingabeaktionen als Kanten berg nge so k nnen die Navigationsm glichkeiten durch die Bedienoberfl che als endlicher Automat modelliert werden In jedem Zustand wartet das System auf eine Benutzereingabe Ein Mausklick auf einen Button z B ist ein Ereignis das eine Aktion ausl st die einen Zustandswechsel in den Folgezustand bewirken kann Bei der Modellierung einer Benutzungsschnittstelle eines Systems in Form eines endl
30. Zust nde und ihre berg nge Transitionen Zustandsdiagramme beschreiben das Verhalten eines Systems als eine Menge von Zust nden und Zustands berg ngen Ein Zustand beschreibt das System zu einem bestimmten Zeitpunkt Ein Zustands bergang ist ein Zeitpunkt an dem das System einen gegebenen Zustand verl sst und in einen neuen Zustand bergeht Er ist durch ein Ereignis und eine Aktion spezifiziert Aktionen werden im Zustandsdiagramm dadurch ausgel st dass ein bergang stattgefunden hat Im Rahmen dieser Bachelor Arbeit wurden flache Zustandsdiagramme f r die Modellierung gew hlt Die praktische Begr ndung daf r liegt in dem Vorhaben diese im Rahmen der n chsten Version auf Statecharts zu erweitern sofern sich die Erzeugung von Benutzungsschnittstellen in Form von Zustandsdiagrammen und Fensterentw rfen mit SUIT als praxistauglich erweist Statecharts wurden von Harel entwickelt sie erweitern Zustandsdiagramme um Hierarchieebenen und Parallelit t Sie wurden urspr nglich informell vorgestellt Eine erste formale Beschreibung erfolgte dann in Harel 1987 Zustandsdiagramme k nnen sich bei der Modellierung umfangreicher Benutzungsschnittstellen als problematisch erweisen da sie keine Hierarchie und keine Modularit t erm glichen Statecharts erweitern Zustandsdiagramme unter anderem um Hierarchie und erleichtern somit das Modellieren dynamischen Verhaltens von Systemen Die Einf hrung von Hierarchie in Statecharts verhinde
31. Zustand eine Maske zugeordnet werden Die Zuordnung wird in einer Maskentabelle erfasst 3 3 5 Dialogwechsel Wird ein Dialog verlassen um zu einem anderen zu wechseln bestehen bzgl der Behandlung des verlassenen Dialogs zwei grunds tzliche Alternativen 1 Die in ihm erfassten Daten werden verworfen oder best tigt dadurch ist er abgeschlossen 2 Wird der Dialog weder verworfen noch best tigt bleibt er offen Die Bearbeitung der Daten ist nur unterbrochen oder suspendiert Daher ist eine R ckkehr zu ihm m glich Wird der Dialog unterbrochen durch einen Dialogwechsel so wird der jeweils aktuelle Zustand zwischengespeichert Kehrt der Anwender zu ihm zur ck befindet sich der Dialog weiterhin in genau diesem gespeicherten Zustand Eine spezielle Variante besteht darin einen Dialog zu unterbrechen um eine neue Inkarnation desselben Dialogs mit anderen Daten zu erm glichen Die Anzahl der Inkarnationen eines Dialogs kann festgelegt werden 34 1 Ist sie O wird der Dialog bei einem Wechsel zu einem anderen Dialog abgeschlossen Der aktuelle Zustand wird nicht gespeichert bei einem erneuten Aufruf wird daher der Initialzustand wiederhergestellt 2 Ist sie maximal 1 wird immer nur die zeitlich letzte Inkarnation gespeichert so dass eine R ckkehr zu diesem Dialog m glich ist 3 Ist sie gt 1 ist die Festlegung einer Regel erforderlich nach der zu einem bestimmten Dialog zur ckgekehrt wird M gliche Altern
32. Zustands bergang Ereignis worauf der Zustands bergang reagieren soll angesehen und editiert werden A45 Action Property ber diese Property kann die Must have auszuf hrende Aktion bei einem Zustands bergang angesehen oder editiert werden A46 In Property Der hineinf hrende Zustand eines Must have Zustands bergang Zustands bergangs A47 Out property Der hinausf hrende Zustand eines Must have Zustands bergangs A48 Points Property Gibt eine Liste aller Knickpunkte Should have Zustands bergang eines Zustands bergangs A49 Gr e von Zust nden mit Durch das Ziehen mit dem Should have dem Mauscursor ndern Mauscursor an den Ecken eines Zustands kann die Gr e des Zustands ver ndert werden A50 Die Position eines Die Position eines selektierten Should have Zustandes ber Drag amp Zustandes kann ber Drag amp Drop Drop ndern ge ndert werden A51 Die Position eines Die Position eines selektierten Should have Startzustandes ber Drag amp Drop ndern Startzustandes kann ber Drag amp Drop ge ndert werden 45 A52 Die Position eines Die Position eines selektierten Should have Zustandes ber Drag amp Zustandes kann ber Drag amp Drop Drop ndern ge ndert werden A53 Die Position eines Die Position eines selektierten Should have Zustands bergangs ber Zustands bergang kann ber Drag Drag amp Drop ndern amp Drop ge
33. angelegt bekommen haben und den Designer Ansicht f r diese neue Klasse sehen 4 2 Erzeugen eines Startzustand Bevor Sie einen Startzustand erzeugen k nnen m ssen Sie ein Zustandsdiagramm erzeugt haben Siehe 4 1 Offnen Sie dieses Zustandsdiagramm in seiner Designer Ansicht Um nun einen Startzustand per Drag amp Drop zu erzeugen gehen Sie wie folgt vor 1 W hlen Sie aus der Toolbox unter der Kategorie Zustandsdiagrammeditor Elemente das Element Startzustand aus Ea Toolbox 32 Zustandsdiagrammeditor Elemente Rh Zeiger 5 Zustand E Startzustand 5 Zustandsuebergang xogqjooL 127 2 Ziehen Sie nun per Drag amp Drop auf ihre Zeichenfl che einen Rahmen der die Gr e und Position ihres Startzustands beschreiben soll Fallstudie CSharp Microsoft Visual C NET Entwurf Zus Datei Bearbeiten Ansicht Projekt Erstellen Debuggen Daten E a w sugg De Toolbox n X Startseite Pizzaservice cs Entwurf An Zustandsdiagrammeditor El K Zeiger Zustand Ed Startzustand Zustandsuebergang A A nn nenn 3 Beim Loslassen der Maus also beim best tigen des Drag amp Drops sollte ihr Startzustand erzeugt worden sein Fallstudie CSharp Microsoft Visual C NET Entwurf Datei Bearbeiten Ansicht Projekt Erstellen Debuggen Daten T a ad K v gt Toolbox q x Startseite Pizzaservice cs Entwurf Zustandsdiagrammeditor El RK Zeiger ES Zustand g8
34. die M glichkeit ihr Zustandsdiagramm zu entwerfen Wenn Sie wie empfohlen mit CF Projekten arbeiten k nnen Sie den Zustandsdiagramm Projektltem Template f r C Projekte installieren und ein Zustandsdiagramm per Template erzeugen lassen Die Installation des C Templates finden sie in Abschnitt 2 2 1 beschrieben Um ein Zustandsdiagramm per Template zu erzeugen gehen Sie wie folgt vor 1 W hlen Sie folgende Men aus Datei gt Neues Element hinzuf gen Datei Bearbeiten nsicht Projekt Erstellen Debuggen Neu gt ffnen gt Schlie en en Neues Element hinzuf gen Stro Umschalt 4 2 Es erscheint nun ein neues Dialog in dem Sie eine Liste der Kategorien sehen W hlen Sie aus dieser Liste folgenden Pfad Lokale Projekte Zustandsdiagramm W hlen Sie danach die Vorlage Benutzerschnittstellen Zustandsdiagramm aus 126 Neues Element hinzuf gen Fallstudie CSharp Kategorien vorlagen Lokale Projektelemente 3 Benutzeroberfl che Y Code Benutzerschnittstellen E Daten Zustandsdiagramm Y web 3 Dienstprogramm 3 Ressourcen 3 Zustandsdiagramm Zustandsdiagramm um den Ablauf einer Benutzerschnittstelle zu modellieren Name Zustandsdiagrammi cs Abbrechen Hilfe 3 Geben Sie nun einen Namen f r ihr Zustandsdiagramm ein und best tigen den Vorgang mit einem Klick auf den Button ffnen Sie sollten nun eine Zustandsdiagramm Klasse in ihrem Projekt
35. erzeugen zu finden sein a Name Zustandsdiagramm2 B DynamicProperties 3 Klicken Sie auf die Option Simulieren 8 Jal M gt als BMP speichern 137 4 Sie sollten nun das Simulationsfenster sehen in der Sie ihr Zustandsdiagramm Modell zu sehen ist Simulation ER Run W Start Zur ck Click goBackKundeToStart emdAngsteisverwallung Click show _angebotssuchel Bestellung Piz emdKundenverwaltung Click show_kundensucheO zaservice cs Zur ck Click goBaciAngebolTostaril gt Bereit zur 5 Bereit zur dAngebofSuchen Click 7 sh botssuch Angebotssuche a aaa ia i BUGA des Kundensuche Angebot Ange Kunde Kunden botssuche cs suche cs Jayansuapuny Toys YOJO Vayansapunypus Quauyaune Sunaysad XI AOP abbrechen CIERT canoslBestellungl le BungegsegTmous YONI Bunye Seg po fen Click Tkunden_suchen 5 Zum Ausf hren der Simulation dr cken Sie auf Run Nun sollten Sie ihre Benutzungsschnittstelle durchsimulieren k nnen Simulation Tipp Sie k nnen das Simulationsfenster w hrend der Simulation schlie en ohne das die Simulation abgebrochen wird So k nnen Sie dem Kunden ein Prototyp vorf hren ohne Ihn mit dem Zustandsdiagrammmodell zu konfrontieren 138 Klassendiagramm Zustandsdiagramm E Class Component SP ZustandsdiagrammElementContainer Zustand
36. modelliert wurde Zustandsdiagramm Designer Legende A erzeugt B B A benutzt B B benutzt A B A benutzt B Abb 24 Zusammenspiel der SUIT Komponenten 50 In Abb 24 erkennt man dass SUIT sich aus 3 Komponenten der Zustandsdiagramm Komponente Codegenerierungskomponente und der Simulationskomponente zusammensetzt Die GUI Designer Komponente des Net Frameworks wird von der Zustandskomponente immer dann mitbenutzt wenn der Anwender aus seinem Zustandsdiagramm heraus den GUI Builder aufrufen will Dies geschieht zum Beispiel dann wenn der Anwender einem Zustand eine GUI Maske zuordnen will Durch das Einbinden von SUIT ber Bibliothekenverweise an das Anwender Projekt bekommt der Anwender die M glichkeit Zustandsdiagramme in Anwendungscode zu erzeugen Dieser Code der in einer beliebigen Net Sprache geschrieben sein kann wird durch die Zustandsdiagramm Komponente als grafisches Zustandsdiagramm umgesetzt und im Zustandsdiagramm Designer angezeigt Dieses Net sprach bergreifende Einlesen und Speichern von Code ist dank dem CodeDomsSerializer m glich der in Net f r jedes Objekt dass das IComponent Interface implementiert ein CodeDom Objekt erzeugen und dieses dann serialisieren kann Ein CodeDom Objekt ist ein Objekt Model das Quellcode repr sentiert Es sprachunabh ngig konzipiert vergleiche Kapitel 6 Der Zustandsdiagramm Designer ist Bestandteil der Zustandsdiagramm Komponente und bietet dem Anwender die M
37. ndert werden A54 Verschieben von Ein Zustand kann ber Drag amp Drop Should have Zust nden auf der Zeichenfl che hin und her verschoben werden A55 Speicherung vom Erstellte Zustandsdiagramme Nice to have Zustandsdiagramm als k nnen als bmp Datei gespeichert Bilddatei werden A56 Speicherung von Erstellte Zustandsdiagramme Must have Zustanddiagramm als k nnen als Code gespeichert werden Code A57 nderung im nderung im Should have Zustandsdiagrammcode Zustandsdiagrammcode f hren zu Reverse Engeneering nderungen in Zustandsdiagramm Editor Ansicht A58 Vergr ern des Das Zeichenblatt kann bei Bedarf Should have Zeichenblattes vergr ert werden A60 Drucken eines Erstellte Zustandsdiagramme Nice to have Zustdandsdiagramms k nnen seitenorientiert gedruckt werden A61 Simulieren eines Zustandsdiagramme k nnen Must have Zustandsdiagramms simuliert werden A62 Loggen im Alle Aktionen werden zur bersicht Should have Simulationsmodus ausgegeben A63 Simulationsansicht Es gibt eine Simulationsansicht in Nice to have der das zu simulierenden Zustandsdiagramm dargestellt wird Hier werden alle aktiven Zust nde farblich hervorgehoben A64 Scrollen Wenn der Zeichenbereich des Must have Zustanddiagramms gr er ist als der Anzeigebereich des Monitors erscheinen Scrollbalken die ein Scrollen des Anzeigebereichs des aktuellen Zustandsdiagramms auf einem anderen Anzeigebereich des Zustandsdiagramms erm gliche
38. sich in die Entwicklungsumgebung integrieren Durch diese Integration in die Entwicklungsumgebung soll der Anwender die M glichkeit haben nicht noch extra ein weiteres zu erlernendes eigenst ndiges Programm zu bedienen sondern in seiner ihm mehr oder minder wohlbekannten Entwicklungsumgebung eine Zusatzkomponente zu erhalten die ihm in seiner Entwicklungst tigkeit hilft SUIT verfolgt daher den Ansatz sich m glichst nahtlos in die Entwicklungsumgebung zu integrieren und sich in der Bedienung und Handhabung hnlich wie die Entwicklungsumgebung selbst zu verhalten Diese Integration ist jedoch nur m glich wenn die Entwicklungsumgebung eine Integration erlaubt sie durch geeignete Schnittstellen unterst tzt Microsofts Visual Studio NET bietet f r die Integration das Automatisierungsmodell EnvDTE und die Design Time Architektur in NET erlaubt es auf Designerfunktionalit ten wie z B die GUI Builder Funktionalit ten von Visual Studio NET zuzugreifen siehe Kapitel 6 Durch die Integration von SUIT in Visual Studio NET ist die M glichkeit gegeben ber diese Schnittstellen auf die Entwicklungsumgebung selbst bzw auf die in Visual Studio NET integrierten GUI Builder zuzugreifen Somit muss eine wichtige Komponente f r SUIT nicht mehr selbst entwickeln werden Wie sich SUIT nun in die bestehende NET Architektur integriert zeigt Abb 23 48 Microsoft Visual Studio Einbinden von NET Bibliotheken die im Anwendg pr
39. tze die auf den ersten Blick alle ihre Berechtigung haben A Code f r den Aufruf der Folgemaske wird in der Aktion selbst generiert B Code f r den Aufruf der Folgemaske wird in der vorigen Maske generiert C Zur Laufzeit wird mit Hilfe des Zustandsdiagrammmodels bestimmt welche Folgemaske aufgerufen wird F r die Generierung nach M glichkeit A sprich folgendes in Abb 55 sind einige Aktionen mit den Namen AnzeigeKundenliste AnzeigeBestellungsliste AnzeigeBestelldetails und AnzeigeKunde zu sehen Diese Aktionen sind von den Namen her so gew hlt dass der Schluss nahe liegt diese Aktionen sorgen f r den Aufruf der entsprechenden Folgemaske wie z B die Kundenliste oder die Bestellliste Der Code f r den Folgemaskeaufruf sollte also bei diesen Aktionen idealerweise in der Aktion selbst generiert werden Nur im Umkehrschluss sind solche Funktionen eigentlich berfl ssig wenn sie als Funktionalit t nur den Aufruf der Folgemasken haben Diese Informationen sind im Modell schon in den Transitionen durch deren Folgezustand enthalten und m ssen nicht durch eine entsprechend benannte Aktion zus tzlich in das Modell eingebaut werden Da jedoch in der aktuellen SUIT Zustandsdiagramm Notation zu jeder Transition ein Ereignis und eine Aktion angegeben werden muss sind AnzeigeKundeliste AnzeigeBestellungsliste AnzeigeBestellungdetails und AnzeigeKunde notwendig damit eine dieser Transitionen angegeben werden kann Die Not
40. ufe einer Benutzungsschnittstelle mit Hilfe von Zustandsdiagrammen modelliert werden Wenn also Masken Zust nde und die Pfeile zwischen den Masken die Zustands berg nge abbilden l sst sich das Modell in Abb 1 wie folgt in die Form eines Zustandsdiagramms berf hren o Abb 2 Zustandsdiagramm Literatur Suche Das Zustandsdiagramm in Abb 2 beschreibt zwar die Reihenfolge der Dialogabl ufe wie sie im Modell in Abb I enthalten sind aber nicht den kompletten Sachverhalt der dort dargestellt ist Die Information unter welchen Bedingungen ein Dialogwechsel stattfindet ist nicht in Abb 2 beschrieben Denn aus Abb 1 ist ersichtlich dass beim Klicken auf dem Button Suche ein Dialogwechsel zu der Folgemaske Buchliste erfolgt und beim Klicken auf den Button Details die Maske Buchinfo angezeigt werden Gerade diese Information fehlt jedoch im Zustandsdiagramm in Abb 2 Um sie soll es nun angereichert werden Dies ist m glich denn in einem Zustandsdiagramm k nnen Ereignisse definiert werden die einen Zustandswechsel hervorrufen Das Zustandsdiagramm von Abb 2 soll also um die Informationen der Ereignisse erg nzt werden dies wird in Abb 3 dargestellt o Details_click Abb 3 Zustandsdiagramm Literatur Suche um die Ereignisse angereichert Vergleicht man das Modell aus Abb 1 und das nunmehr entstandene Zustandsdiagramm Abb 3 erkennt man dass dieses immer noch nicht alle Details abbildet Was fehlt sind die
41. und Angebotsverwaltungswerkzeug wurden bereits mit SUIT in Form von Zustandsdiagrammen und Fensterentw rfen modelliert siehe Abb 36 und Abb 41 Daher w re es sinnvoll diese Ergebnisse als zusammengesetzte Zust nde also Zust nde die die bereits modellierten Zustandsdiagramme repr sentieren in das Zustandsdiagramm des Kombi Werkzeugs Bestellverwaltungskombiwerkzeug zu integrieren Die Verschachtelung von Zustandsdiagrammen und somit die Definition von zusammengesetzten Zust nden ist eine Anforderung die wir erkannt haben Sie tr gt ganz entscheidend zur Reduzierung der Komplexit t eines Modells bei und unterst tzt den Werkzeuggedanken des WAM Ansatzes Die bereits identifizierten Werkzeuge werden im 86 Zustandsdiagramm des Gesamtsystems klar erkennbar da sie als zusammengesetzte Zust nde im Modell visualisiert werden Die Verschachtelung von Zustandsdiagrammen ist im Rahmen der vorliegenden Implementierung von SUIT noch nicht m glich Die Realisierung dieser Anforderung wird im Rahmen der n chsten Version geplant 7 3 7 Integration der Werkzeuge zum Gesamtsystem Die Vorgehensweise der Untergliederung eines Gesamtsystems in Teilwerkzeuge hat sich wie bereits erw hnt in der Softwareentwicklung bew hrt Sie f rdert die Verst ndlichkeit verringert die Komplexit t eines Systems und erh ht die Wiederverwendbarkeit Das Pizzaservicesystem wurde in die zwei einfachen elementaren Werkzeuge Kunden
42. wesentlich da sie die Weichen f r das weitere Vorgehen stellt Denn mit der Entscheidung f r einen bestimmten GUI Builder f llt die Entscheidung f r eine bestimmte Entwicklungsumgebung f r SUIT 18 2 4 1 Jigloo CloudGardens Jigloo GUI Builder Jigloo 3 9 5 ist ein Add In f r Eclipse Eclipse ist ein Open Source Projekt Die Entwicklungsumgebung ist frei verf gbar und gut f r die Entwicklung von Javaprogrammen geeignet Eclipse wird nicht installiert sondern kann als Java Anwendung sofort ausgef hrt werden Oberfl che Java NewJFrame java Eclipse Platform u lal xi Eile Edit HTML Tidy Source Refactor Navigate Search Project Run PHP Apache Window Help Sao Er abbl 0 Q JEFO a 7 Imal zi IS O9 vr E ava gt B foo php 5 NewJFrame java X a Containers Components More Components Menu Custom MEN E XO 23 4 Em g B BE S Extra components gt Non visual components F H this JFrame Border w ag m E a m mi Properties Layout Events Properties Value xl E size 332 270 iv text jButton1 k u toolTipText vpublic class NewJFrame extends javax swing JFrame Expert action bnbnb v z k x actionCommand n TESSE main method to display this JFrame actionMap javax swing ActionMa y ee static void main String args allgnmentX oo E z s E alignmenty 0 5 NewJFrame inst new NewJFrame i O fl inst setVisible true autoscro 988 borderPainted Y t
43. 0 aspx 12 01 07 WindowBuilderPro http www windowbuilderpro com 13 01 07 VisualEditor http www eclipse org vep WebContent main php 13 01 07 113 Abbildungsverzeichnis ADO TESTA Rank 8 Abb 2 Zustandsdiagramm Literatur Suche 2 22 td 9 Abb 3 Zustandsdiagramm Literatur Suche um die Ereignisse angereichert 10 Abb 4 Zustandsdiagramm Literatur Suche um die Maskenskizzen angereichert 10 Abb 5 Zustandsdiagramm Literatur Suche um die Masken angereichert u 11 Abb 6 Zustandsdiagramm Literatur Suche um die Aktionen angereichert 12 Abb 7 Fassade sa ae enden ie leise 13 ADb Einsatz von SUIT isc 15 Abb 9 M0 in BI nasse Tegernsee 19 Abb210 Die Palette helles ii A EAE EASA 20 Abb 11 Property Fenster in Jiglo0 unse a 20 Abb 12 Von Jigloo generierter Code Ausschnitt einer GUI mit 2 JButtons u 21 Abb 13 Code Ausschnitt einer GUI mit 2 JButtons und ActionListener in Jigloo 22 Abb 14 integrierter GUI Builder von Microsoft Visual Studio Net 2003 ursn seen 23 Pl Pogeiker 2a Inn neiaeslie 25 ADD LO VISO A AR 26 Abb 17 Interaktionsdiagramm eines Geldausgabeautomaten aus Denert 1992 32 Abb 18 Spezifikation einer Aktion mittels Entscheidungstabelle Denert 1992 36 Abb 19 Zustand iii ea 39 Abb 20 Startz stand arte le Deals ee o dd 39
44. 31 41 48 49 50 51 52 59 61 65 93 100 GUEKOMpo ente iia A A Ruine 10 20 21 22 23 24 117 NAM Te ee ee 34 35 107 110 111 Interaktionsdiagramm 2224444444HHn nennen nennen en en nenn nn en nenn 31 32 33 34 37 107 108 109 Interaktionskomponente 4s4444sssenennenenanannnenenenannn nennen nn 13 31 52 53 54 99 112 J UELLE e rs E er ee ee nee rennen 19 20 21 22 K Klassendiagramm iu A HEBT BIER 57 Kombi Werkzeug 2 5 EEE ER Ri IH 15 78 86 87 Komponente orrei m a anne ne Raten HART ine Fre 4 48 49 50 51 52 53 54 Konsistenzerhaltung 4 44444444 nannnenennnnnennenenannnnn nennen 104 105 106 107 109 111 M PE nee nen ne ren 8 9 12 14 18 21 30 34 38 39 43 44 46 51 65 80 81 82 83 84 86 101 102 103 104 109 110 111 Modellierung reisean an kana Ara iA PE A LAKAN ESAERA KE 7 9 11 14 15 17 26 30 31 34 37 40 80 92 93 94 95 97 100 104 105 109 112 N Navigation se ON 30 38 Notati n reis irrita ad hc 15 32 37 39 O 0107 16 1110 microcadena rante tadas anos 11 12 17 24 38 P Proto png sierra ana ala IRE Maren a DA 14 92 99 107 108 110 111 S SINUlAHON sn nenne 14 18 31 38 41 46 49 51 52 54 58 88 89 92 93 94 95 96 99 104 106 108 109 110 111 SimulatidnSanSiCAt umi irar a aan aaa A a aiaa ae aa aeeti iaaa 46 56 89 Sprach nabhang OKOE lion een E nee ange E et re 61 63 SIEPA Ke u
45. Abb 21 Zustandsubergane cn ee 40 Abb 22 Rekursiver Zustandsubersangs iran 40 Abb 23 Integration von SUIT in die Microsoft Visual Studio Net Architektur 49 Abb 24 Zusammenspiel der SUIT Komponenten u 22442204422sernnennnensnnennnennnn essen 50 Abb 25 Vererbungsbaum der Elemente in SUIT Zustandsdiagramm Designer 31 Abb 26 Architektur des Zielsystem mit Fassade oooooonnccnnnnnnococonnnonnnonnncnn nono nnnnnnnrnn corn n cnn ncnnnno 53 Abb 27 Ausschnitt aus dem Klassendiagramm 2240022440022000sssnsnnnnnnnnnnnnnnennnnnannnn 57 Abb 28 Toolbox vor dem Hinzuf gen der Toolboxitems f r das Zustandsdiagramm 60 Abb 29 Toolbox nach dem Hinzuf gen der Toolboxitems f r das Zustandsdiagramm 60 Abb U Zustandschasramm isa 63 Abb 31 Eigenschaftsfenster im Zustandsdiagrammeditor u 220s2ner sn snnernnennner nennen 64 Abb 32 Visual Studio net in der Ansicht von SUIT u 2220022002200r se nnnennnnennersnnennnen 67 Abb 33 SUIT Zustandsdiagramm mit DragFeedback 2202200s2ner see ennennnnennnen seen 12 ADD34 Dragfeedback 2 2 A Eee 73 Abb 35 Anwendungsfalldiagramm Pizzaservice uuussuessnersnnesnnennnnennnnnsnnennnennnnennnen nennen 79 Abb 36 Diagramm der Benutzungsschnittstelle des Angebotsverwaltungswerkzeugs 80 Abb 37 Maskeder Altigebotsuches aa sans am ae 81 ADb 38 Maske der Angeb tanze
46. Bereichung f r die Benutzer Entwickler Kommunikation dar Prototypen k nnen erstellt werden von Benutzern getestet und falls Verbesserungsw nsche existieren entsprechend ge ndert werden Nur wenn die Erstellung von Prototypen schnell genug ist sind mehrere Prototypingzyklen m glich in denen der Prototyp iterativ verbessert wird Sind z B nderungen erforderlich so kann das modellierte Zustandsdiagramm in SUIT angepasst werden und schon hat man einen neuen Prototyp den man dem Kunden vorzeigen kann Die Fassaden Genierung hingegen nimmt dem Entwickler Programmieraufwand ab und kann damit dazu beitragen Kosten und Zeit zu sparen Die Fassaden Klasse stellt eine Schnittstelle zwischen der Funktions und Interaktionskomponente dar und bietet somit eine M glichkeit den erzeugten Prototypen weiter zu entwickeln so dass der Prototyp nicht als Wegwerfprototyp angesehen werden muss Die Fassaden Genierung ist so angelegt dass bei nderungen im Zustandsdiagramm Modell und erneuten Genierung der Fassade bereits in der Fassaden Klasse von Anwender hinzuimplementierter Code nicht verloren geht So bietet SUIT nicht nur ein Tool zum schnellen Erzeugen von explorativen Prototypen von Benutzungsschnittstellen sondern diese Prototypen sollen und k nnen sogar weiter entwickelt 99 werden Diese M glichkeit ist ihm gegeben da SUIT sich in Visual Studio Net integriert und somit der Entwickler schon in seiner Entwicklungsumgebung ist Die Vort
47. ControlEvent ctionHelper ControlEventActionHelper Class GUIReferenzConverter 57 GUIRefHelper GUIRefHelper 183
48. Die Scroll Position auf die umgerechnet werden soll Diese Position ist bereits vom Zoom Faktor ber cksichtig worden und kann einfach zum Punkt addiert werden Float Zoom der Zoom Faktor auf der umgerechnet werden soll Color backColor Die Hintergrundfarbe die hinter den Elementen sind Wird oft gebraucht f r das Reverisble Feedback Tabelle 6 Parameter von DrawCreateDragFeedback delete public virtual void delete Zustandsdiagramm myDiagram IDesignerHost myHost Die Methode delete ist virtual d h sie kann in einer abgeleiteten Klasse berschrieben werden delete dient dem L schen einer Komponente Das L schen ist Komponentenabh ngig so m ssen z B beim L schen eines Zustands alle hinein und hinausf hrenden Zustands berg nge mitgel scht werden Wird die Methode delete in der Unterklasse nicht berschrieben so wird die Funktionalit t von delete geerbt Die vererbte delete Methode bewirkt dass eine Komponente nur sich selbst l scht 68 Parameter Beschreibung Zustandsdiagramm myDiagram Das Zustandsdiagramm Object von dem die Komponente gel scht werden soll IDesignerHost myHost myHost ist ein Objekt zum Verwalten von Designertransaktionen und Komponenten und Komponenten Tabelle 7 Parameter von delete initialize public abstract bool initialize Design ZustandsdiagrammDesigner designer String name Point startPunkt Point endPunkt ZustandsdiagrammElement star
49. Druckansicht Von gro er Bedeutung ist auch die M glichkeit ein Diagramm in Microsoft Office Word Dokumente zu integrieren und von dort aus direkt zu ndern Ein wesentlicher Nachteil von Visio liegt darin dass Visio auch f r nichtkommerzielle Zwecke nicht frei erh ltlich ist 2 5 3 Folgerung Im Rahmen der Analyse der Zustandsdiagramm Editoren haben wir eine gr ere Menge Anforderungen f r die Eigenentwicklung eines Werkzeuges erkannt Im Folgenden werden die in Together und Visio bereits identifizierten Anforderungen die f r die Realisierung des Tools dieser Bachelor Arbeit sinnvoll sind aufgelistet Jede Anforderung wurde nach den Kriterien must have should have oder nice to have klassifiziert Abk rzung Beschreibung der Anforderung Erkanntin Klassifikation Rastermuster Rastermuster zum Positionieren Together Should have von Zustandsdiagrammelementen Notizfelder Kommentare oder Beschreibungen Together Nice to have k nnen in Notizfelder eingetragen werden 27 Description Jeder Zustand hat einen Together Should have Property Description Property in dem zustandsspezifische Informationen eingetragen werden k nnen Platzieren von Zust nde k nnen per Drag amp Drop Together Should have Zust nden per Verfahren auf der Zeichenfl che Drag amp Drop platziert werden Platzieren von Zustands berg nge k nnen per Together Should have Zustands berg ng
50. Funktionsf lle von Together und Visio bietet eine Vielzahl von Gesichtspunkten um neue Anforderungen zu gewinnen 2 5 1 Together 6 2 Borland Together 6 2 test File Edit Search View Project Run Deploy Selection Tools Help brsBolad 201 ERRE PEST D DiD O worspacs v JE Explorer m o x 32 Designer w alasa Beer E Pr Aaz Eo E Y test ul 83 lt default gt Ol amp untitled Oli R E al af ej 5 Editor a P En o Progress I insert int car Abb 15 Together Together ist ein kostenpflichtiges UML Modellierungstool von Borland Es ist ein m chtiges Tool das mehrere Diagrammtypen unterst tzt und dem Entwickler Code Generierung in mehreren Programmiersprachen bietet 25 Im Rahmen unserer Bachelor Arbeit betrachten wir jedoch nur die Modellierung in Form von Zustandsdiagrammen in Together Der Zustandsdiagrammeditor ist sehr benutzerfreundlich Rastermuster dienen der Orientierung beim Zustandsmodell Entwurf Es bietet u a Notizfelder zum Hinzuf gen von Kommentaren Description als Properties f r einen Zustand als weiterer Kommentarm glichkeit an etc Praktisch ist auch das Anlegen von Zust nden da die Gr e und Position bereits w hrend der Platzierung per Drag and Drop festgelegt werden kann Um Zustandsdiagramme m glichst bersichtlich und aussagekr ftig zu gestalt
51. INDOWS Microsoft NET CHWINDOWSIMirrasnft NFT System Security System ServiceProcess dll System Web dll System Web Mobile dll System Web RegularExpressi System Web Services dil System Windows Forms dll System Xml dll vJ5BrowserStubLib vjscor vJSharpCodeProvider vislih W hlen Sie SUIT dll durch Durchsuchen Ausw hlen A f e Kompor T Konpenentenname m lon T Ok Abbrechen Hilfe 4 Best tigen Sie Ihre Auswahl mit Klicken des OK Buttons Nun sollte SUIT in ihrem Projekt eingebunden sein 125 4 Bedienung des SUIT Zustandsdia grammeditors Der SUIT Zustandsdiagrammeditor in der aktuellen SUIT Version Vers 1 00 unterst tzt alle Net Sprachen Zustandsdiagramm Klassen k nnen mit dem Editor in allen Sprachen erzeugt werden jedoch geht das Generieren der Fassade und die Simulation in der vorliegende Version nur mit C Projekten Daher wird empfohlen diese SUIT Version einschlie lich nur in C Projekten zu verwenden 4 1 Erzeugung eines Zustandsdiagramm Um ein SUIT Zustandsdiagramm zu erzeugen erstellen Sie eine Klasse die von SUIT ZustandsdiagrammEditor Zustandsdiagramm erbt Um von SUIT Zustandsdia grammEditor Zustandsdiagramm erben zu k nnen sollten Sie die SUIT Klassenbibliothek in ihrem Projekt eingebunden haben siehe hierzu Abschnitt 3 ffnen Sie diese Klasse in der Design Ansicht mit Visual Studio Net 2003 um den SUIT Zustandsdiagrammeditor aufzurufen Sie haben nun
52. Kundensuche cs lt gt Be a a a a a 8 Zustandsdiagrammi cs E App ico Offset E AssemblyInfo cs a Fassade cs 8 Pizzaservice cs gt Eigene Benutzersteuer 7 Aufgabenliste 2 Buildfehler angezeigte Aufgaben gefiltert Zwischenablagering MH la Beschreibung Allgemein 4 Ausgabe xl an a x Bereit Abb 32 Visual Studio net in der Ansicht von SUIT 67 Parameter Beschreibung ZustandsdiagrammElement startElement Das ZustandsdiagrammElement das an der Position des startPoint angesiedet ist Ist null wenn an den startPoint kein Element vorhanden ist Point startPoint Der Start Punkt an dem der Drag begann Dieser Punkt ist dem DragControl gebunden und nicht global daher muss er noch mit screenOffset addiert werden ZustandsdiagrammElement endElement Das ZustandsdiagrammElement das an der Position des endPoint angesiedet ist Ist null wenn an den endPoint kein Element vorhanden ist Point endPoint Der End Punkt an dem der Drag endet Dieser Punkt ist dem DragControl gebunden und nicht global daher muss er noch mit screenOffset addiert werden Point myScreenOffset Dieses Offset kann zu den Point Koordinaten addiert werden um sie zu den globalen Koordinaten zu konvertieren so dass mit diesen Koordinaten die DrawReversible Methode in ControlPaint direkt verwendet werden kann Point scrollPos
53. Noura Haji amp Vinh Phu Phan Erzeugung von Benutzungsschnittstellen auf Basis von Zustandsdiagrammen und Fensterentw rfen Bachelorarbeit eingereicht im Rahmen der Bachelorpr fung im Studiengang Angewandte Informatik am Department Informatik der Fakult t Technik und Informatik der Hochschule f r Angewandte Wissenschaften Hamburg Betreuender Pr fer Prof Dr J rg Raasch Zweitgutachter Prof Dr rer nat Christoph Klauck Abgegeben am 19 Januar 2007 Noura Haji amp Vinh Phu Phan Thema der Bachelorarbeit Erzeugung von Benutzungsschnittstellen auf Basis von Zustandsdiagrammen und Fensterentw rfen Stichworte Benutzungsschnittstelle GUI Zustandsdiagramme Prototyping Kurzzusammenfassung Dem Entwickler bei der Erstellung von Benutzungsschnittstellen eine angemessene Unterst tzung zu bieten ist ein wesentliches Bestreben dieser Bachelor Arbeit Bisher ist die Entwicklung von Benutzungsschnittstellen mit erheblichem Aufwand verbunden Gr nde daf r sind fehlende Methoden und unzureichende Werkzeuge In dieser Bachelor Arbeit wird die Methode der Erzeugung von Benutzungsschnittstellen mit Hilfe von Zustandsdiagrammen und Fensterentw rfen vorgestellt F r die Umsetzung dieser Methode wurde eine L sung entwickelt die die Funktionalit t eines GUI Builders mit der eines Zustandsdiagrammeditors zweckm ig kombiniert und beide Komponenten in geeigneter Wiese in den Softwareentwicklungsprozess integriert Diese L sung hei
54. Suchen Click suchen dia ai Details cs Zurueck Click zurueck Abb 60 Inkarnationsbeispiel Zustandsdiagramm Abb 60 beschreibt eine allgemeine Suche In Dialog Suche wird nach Eingabe eines Suchwortes und Bet tigen des Suchbuttons in die Folgemaske SuchErgebnis gewechselt In dieser Maske werden alle passenden Suchergebnisse aufgelistet Nach Auswahl eines 110 bestimmten Suchergebnisses und Bet tigen der Taste Details wird zur Detailansicht gewechselt Beim Zur ckkehren in dem Dialog der Suchergebnisse ist es w nschenswert wenn dieser Dialog noch offen ist so dass eine R ckkehr zu den in ihm bereits angezeigten Suchergebnissen m glich ist Die Daten der Suche d rfen also nicht verloren gehen Es muss der jeweils aktuelle Stand zwischengespeichert werden Kehrt der Benutzer zu ihm zur ck befindet sich der Dialog weiterhin in genau diesem gespeicherten Zustand Um dies erreichen zu k nnen muss f r den Dialog der Suchergebnisse eine Inkarnation definiert werden Mit der Definition von Inkarnationen wird vorgegeben ob beim Unterbrechen eines Dialogs der jeweils aktuelle Zustand zwischengespeichert wird oder nicht Hier in unserem Beispiel z B ist es sinnvoll beim Zur ckkehren von Details zu SuchErgebnis die Suchergebnisse noch anzeigbar sind Im Dialog Details k nnen hingegen die Daten also die Anzeige der Details eines Suchergebnisses verloren gehen also nicht zwischengespeichert werden Es muss also die M glichkeit
55. Vorteil der Sprachunabh ngigkeit Werden Benutzungsschnittstellen in Form von Zustandsdiagrammen und Fensterentw rfen beschrieben Kann das entstandene Modell in einer beliebigen Programmiersprache umgesetzt werden Im Rahmen dieser Bachelor Arbeit beschr nken wir uns jedoch auf eine bestimmte Programmiersprache Interaktionskomponente Fassade zeigelnfoFuerBuch suche Funktionale Komponente Abb 7 Fassade Zustandsdiagramme besitzen also gen gend Ausdruckskraft um das dynamische Verhalten von Benutzungsschnittstellen vollst ndig zu spezifizieren In einem Zustandsdiagramm stehen die Interaktionen des Benutzers mit dem System ihre Reihenfolge und die von ihm wahrnehmbaren Zustands nderungen im Vordergrund Eine GUI befindet sich immer f r einen gewissen Zeitraum in einem bestimmten Zustand Ein Zustand markiert eine Stelle im Dialogablauf an der das System auf eine Eingabe des Benutzers wartet Benutzereingaben wie z B das Dr cken eines Buttons mit der Maus l sen Ereignisse aus Ereignisse sto en Aktionen an Nach Ausf hrung der Aktion gelangt die Benutzungsschnittstelle in den Folgezustand Die Methode Benutzungsschnittstellen in Form von Zustandsdiagrammen und Fensterentw rfen zu modellieren und das entstandene Zustandsdiagramm zu simulieren und aus dem Modell Code in Form einer Fassade automatisch zu generieren ist jedoch in der verf gbaren Literatur nicht beschrieben Daher liegt die Vermutung nahe dass noch kein
56. Zeiger 8 Zustand amp Startzustand 2 Zustandsuebergang zustand Alternativ k nnen Sie ein Zustand durch ein Doppelklick auf des Element Zustand in der Toolbox Kategorie Zustandsdiagrammeditor Elemente erzeugen 129 4 4 Erzeugung eines Zustands bergang Bevor Sie einen Zustands bergang erzeugen k nnen m ssen Sie ein Zustandsdiagramm erzeugt haben Siehe 4 1 ffnen Sie dieses Zustandsdiagramm in seiner Designer Ansicht Sie sollten au erdem wenigsten einen Zustand oder Startzustand erzeugt haben siehe Abschnitt 4 2 und 4 3 um rekursive Zustands berg nge und wenigsten zwei Zust nde haben um normale Zustands berg nge erzeugen zu k nnen Um einen Zustand bergang zu erzeugen gehen Sie wie folgt vor 1 W hlen Sie aus der Toolbox unter der Kategorie Zustandsdiagrammeditor Elemente das Element Zustands bergang aus Toolbox ax Zustandsdiagrammeditor El RK Zeiger ES Zustand Ed Startzustand 2 Zustandsuebergang Ziehen Sie nun per Drag amp Drop auf ihre Zeichenfl che einen Zustands bergang Es kann sich hierbei um einen rekursiven oder normalen Zustands bergang handeln Der Zustands bergang muss in die Pfeilrichtung gezogen werden 73 Fallstudie CSharp Microsoft Visual C NET Entwurf Zustandsdiagramm1 cs Entwurf Datei Bearbeiten Ansicht Projekt Erstellen Debuggen Daten Extras Fenster Hilfe oa ad NQ Debug ob Toolbox x Startseite Pizzaservice cs E
57. Zustand berg nge aus und erm glichen somit das Navigieren durch das Interaktionsdiagramm Diese kann erfolgen durch 33 Das Bet tigen einer Funktionstaste Durch Men auswahl Durch Eingabe eines Kommandos in einem bestimmten Feld Oder implizit durch Dateninhalt die Steuerinformation liegt dabei meist in der Unterscheidung ob der Schl ssel eines Datenobjekts und oder der zugeh rige Fachinhalt eingegeben wurde oder nicht Denert 1992 Seite 132 Denert unterscheidet zwischen globalen virtuellen Tasten und speziellen virtuellen Tasten Die speziellen virtuellen Tasten sind nicht allgemein g ltig Sie werden in einer Entscheidungstabelle spezifiziert Globale virtuelle Tasten sind Virtuelle Tasten die unabh ngig vom aktuellen Zustand immer dasselbe bewirken wie z B das Vor und R ckw rtsbl ttern in Informationen oder den Aufruf der Hilfe Sie k nnen einmalig systemweit definiert werden In der Tabelle der globalen virtuellen Tasten werden die Standard Interaktionen und ihre Realisierung beschrieben es wird festgehalten welche Aktionen sie anstofen und in welchem Folgezustand sie das System berf hren Auf diese Weise m ssen wiederkehrende virtuelle Tasten nicht in jedem Zustand neu definiert werden die Interaktionsdiagramme werden somit nicht mit redundanten Informationen berladen 3 3 4 IAD Zust nde und Masken Bei der Modellierung einer Benutzungsschnittstelle in Form von Interaktionsdiagrammen kann jedem
58. agramm in Abb 35 entnehmen kann benutzen die Anwendungsf lle Angebot ndern Angebot anlegen und Angebot l schen den Anwendungsfall Angebot suchen Daher muss eine Angebotssuche ausgef hrt werden ehe eine weitere Aktion auf ein Angebot erfolgen kann Damit ist eine bestimmte Reihenfolge vorgegeben Wird nun dieser Ablauf durch ein Zustandsdiagramm beschrieben ergeben sich daraus vier Zust nde die wie folgt benannt werden k nnen bereit zur Suche Anzeige der Angebotsdaten bereit zum Angebotanlegen und bereit zur Angebots nderung Jedem Zustand ist eine Maske zugeordnet 3 Bereit zum cmdAnlegen Click geheZu_angebot_anlegen Er egen cmdAnlegen Click angebot_anlegen gt x bot ng 1 cmd bbrechen Click angebotanlegen_abbruch ae Bereit zur Bereit zur Anzeige der gt bot Angebitssuche cmdSuchen Click angebot_suchen gt Angebotsdaten A a O Pedo Angebotl nge le Angebot nge cmdSpeichern Click angebot_speichem Angebot nge botssuche cs cmdZurueck Click geheZu_Angebotsuche botsanzeige cs botspflege cs cmdAbbrechen Click angebotaenderung_abbrechen Deisplege e3 Abb 36 Diagramm der Benutzungsschnittstelle des Angebotsverwaltungswerkzeugs 80 Das Zustandsdiagramm der Benutzungsschnittstelle des Angebotsverwaltungswerkzeugs in Abb 36 wurde in SUIT erstellt Jedem Zustand inner
59. agramm wurde das dynamische Verhalten des Pizzaservicesystems beschrieben Hier wurden Zust nde und Zustands berg nge definiert Jedem Zustand wurde eine Maske zugeordnet die Zustands berg nge wurden mit Beschriftungen f r Ereignisse und Aktionen versehen Damit war der Prototyp fertig gestellt Im Rahmen dieser Fallstudie hat SUIT am Beispiel des Pizzaservicesystems eine gro e Praxistauglichkeit bewiesen Mit einem geringen Aufwand wurde aus dem Modell automatisch ein Prototyp erstellt Dar ber hinaus hat SUIT eine Fassade zur Weiterentwicklung automatisch generiert Wenn also der Prototyp nicht als Wegwerfsoftware realisiert wird Kann er zu einem ausgereiften System weiterentwickelt werden Es kann festgehalten werden dass SUIT mindesten f r Systeme der Gr enordnung des Pizzaservicesystems praxistauglich ist Die Praxistauglichkeit bei komplexeren Systemen muss noch im Rahmen gro er Projekte berpr ft werden Die in diesem Kapitel verwendete Vorgehensweise hat wie bereits erw hnt prim r das Ziel zu demonstrieren wie SUIT eingesetzt werden kann Der Anwendungsbereich des Pizzaservicesystems wurde hierf r nur grob analysiert F r einen Einsatz von SUIT f r das Erzeugen von Benutzungsschnittstellen in der Praxis ist eine detailliertere Anforderungsanalyse empfehlenswert als im Rahmen der Fallstudie durchgef hrt wurde Auf diese Weise k nnen Prototypen erfolgreich entwickelt werden die f rdernd in der Entwickler und B
60. aktionsdiagramm eignet sich zwar daf r die wesentlichen Abl ufe verst ndlich nachvollziehbar und bildhaft zu visualisieren Werden jedoch zu viele Details und Sonderf lle in einem Interaktionsdiagramm dargestellt kann es wie bereits erw hnt schnell unverst ndlich und un bersichtlich werden F r das Interaktionsdiagramm des Geldautomaten in Abb 17 sieht der von Denert verwendete Code Denert 1992 wie folgt aus Zustand Z1 Ger t geschlossen SK Scheckkarte pr fen Falls ok Ger t ffnen gt Z2 Falls nok gt Z1 Zustand Z2 Scheckkarte gepr ft Ghz Geheimzahl pr fen Falls ok gt Z3 Falls nok gt Z2 Abb Ger t schlie en gt Z1 Zustand Z3 Geheimzahl ok Kto Kontostand drucken gt Z3 Aus gt ZA Abb Ger t schlie en gt Z1 Zustand4 zahlungsbereit Bst Geld ausgeben Ger t schlie en gt Z1 Abb Ger t schlie en gt Z1 In Z1 z B ist nur die virtuelle Taste siehe Abschnitt 3 3 2 SK zul ssig Das Bet tigen dieser Taste st t die Aktion Scheckkarte pr fen an Wurde die Aktion erfolgreich ausgef hrt ok wird die n chste Aktion Ger t ffnen angesto en das System gelangt in den Folgezustand Z2 Ansonsten kehrt das System zu Z1 zur ck 3 3 2 Virtuelle Tasten Das Konzept der virtuellen Tasten beinhaltet jegliche Art dialogsteuernder Information Denert 1992 Die physische Realisierung einer virtuellen Taste kann unterschiedlich sein Virtuelle Tasten l sen
61. alten Es ist also m glich diese Informationen aus dem Model zu entnehmen um die Codegenerierung f r den Folgezustand also das Anzeigen der Folgemaske zu automatisieren Jedoch sind beim Generieren dieser Codestellen die f r das Aufrufen deren Folgemaske zust ndig sein werden einige Dinge zu beachten Wo soll der Code generiert werden In der Transition angebenden Aktion also in der dazugeh rigen Aktionsmethodendeklarationen der Fassade oder doch lieber in der Maske Klasse selbst Egal wo der Code hingeneriert wird beide Stellen h tten ihre Vor und Nachteile Um diese Vor und Nachteile zu erl utern soll folgendes Beispiel genutzt werden Abb 55 zeigt ein SUIT Zustandsdiagramm das das dynamische Verhalten einer kleinen noch unvollst ndigen Benutzungsschnittstelle beschreiben soll Hauptmen Bestellungsliste Bestellung Click 4nzeigeBestellungsliste l Hauptmen cs Bestellungsliste cs m O V i 14 V T 3 x poy V N E lt de 2 2 G u T E 5 y KundenListe 3 KundeBearbeiten Click 4nzeigeKunde KundenListe cs 2 0 BestellungDetails Click 4nzeigeBestellDetails KundeBestellung Bestelldetails Kunde cs BestellungDetails cs Kunde KundeBearbeiten Click AnzeigeKunde Speichern Click SpeichernKunde Kunde cs Qapunyulayalads y yay Ulayorado gt 55 SUIT Zustandsdiagrammbeispiel In Abb 55 wird eine Benutzungsschnittstelle modelliert die mit
62. ame Nachname Telefonnummer Stra e Hnr PLZ abbrechen speichern Abb 45 Maske der Kundenpflege Vom Zustand Anzeige der Kundendaten bzw der entsprechenden Maske aus kann man ber die Taste zur ck wieder in die Suchmaske also zum Zustand bereit zur Suche zur ckkehren 85 7 3 6 Bestellverwaltungskombiwerkzeug Wie dem Anwendungsfalldiagramm in Abb 35 entnommen werden kann nutzt der Anwendungsfall Bestellung aufnehmen die fachlichen Dienstleistungen des Kundenverwaltungswerkzeug und des Angebotsverwaltungswerkzeug Daher handelt es sich im Sinne von Z llighofen Z llighoven 1998 um ein Kombi Werkzeug das zur Erledigung seiner Aufgabe verschiedene fachliche Dienstleistungen kombiniert und softwaretechnisch aus existierenden Subwerkzeugen zusammengesetzt ist Bestellung Vorname Nachname Telefonnummer Strasse Hnr PLZ Ort Bestellungen Kunde suchen Angebot suchen abbrechen ok Abb 46 Maske der Bestellung Wird der Anwendungsfall Bestellung aufnehmen durch ein Zustandsdiagramm beschrieben ergibt sich der Zustand Bereit zum Bestellen mit der entsprechenden Maske in Abb 46 von welcher aus nach Bet tigen der Taste Kunde suchen in das Kundenverwaltungswerkzeug und durch Bet tigen der Taste Angebot suchen in das Angebotsverwaltungswerkzeug verzweigt werden kann Die Benutzungsschnittstellen der beiden Werkzeuge Kundenverwaltungswerkzeug
63. anden Dateien und Verzeichnisse wenn der Kopiervorgang Sie darauf hinweist 124 3 Einbindung von SUIT ins Projekt 1 Um SUIT in ihrem Projekt einzubinden m ssen Sie zuerst ihr Projekt laden oder neu anlegen 2 W hlen Sie nun folgende Men s aus Projekt gt Verweis hinzuf gen a Yo Y L Projekt Erstellen Debuggen Extras Fenster Hilfe Windows Form hinzuf gen Geerbtes Formular hinzuf gen Benutzersteuerelement hinzuf gen Geerbtes Steuerelement hinzuf gen Komponente hinzuf gen Klasse hinzuf gen E El El y E Neues Element hinzuf gen Strg Umschalt 4 3 vorhandenes Element hinzuf gen Umschalt Alt A Aus Projekt ausschlie en Alle Dateien anzeigen Verweis hinzuf gen A him Fiinam E 3 Suchen Sie nun nach der die SUIT Library indem Sie auf Durchsuchen klicken Standardm ig unter C Programme SUIT SUIT dll ein Doppelklick aus Verweis hinzuf gen NET com Projekte Komponentenname Version Pfad 1 0 5000 0 1 0 5000 0 1 0 5000 0 1 0 5000 0 1 0 5000 0 1 0 5000 0 1 0 5000 0 1 0 5000 0 1 0 5000 0 1 0 5000 0 7 0 5000 0 1 0 5 C WINDOWS Microsoft NET C WINDOWS Microsoft NET CHWINDOWS Microsoft NET C WINDOWS Microsoft NET CHWINDOWS Microsoft NET CA WINDOWS Microsoft NET C AWINDOWS Microsoft NET C WINDOWS Microsoft NET C WINDOWS Microsoft NET CHWINDOWS Microsoft NET CHW
64. assaden Klasse wird die Schnittstelle angeboten die diese Interaktionskomponente mit der Funktionalen Komponente kommunizieren l sst Abb 26 zeigt die dadurch entstehende Architektur des Anwendungssystems 52 Interaktionskomponente GUI Mit Hilfe von SUIT entworfen Fassade Von SUIT generierte Klasse mit Methodenk pfen Funktionale Komponente Vom Entwickler zu implementieren Abb 26 Architektur des Zielsystem mit Fassade Die Interaktionskomponente wird durch SUIT dahingehend angereichert dass die Aktionen die im SUIT Zustandsdiagramm angegeben werden auch aufgerufen werden wenn das zur Aktion zugeh rige Ereignis ausgel st wird Dieser Methodenaufruf ruft die Methodendeklaration in der Fassaden Klasse auf von der der Anwender durch nachtr gliches Ausimplementieren auf die entsprechenden Klassen der Funktionalen Komponente delegieren kann So ist die Interaktionskomponente nur an die Fassade gekoppelt Der Entwurf der funktionalen Komponente ist dem Anwender berlassen sodass trotz einer von SUIT vorgegebenen Zielsystem Architektur gen gend Freiheiten in Bezug auf die die Gestaltung seines Systems gegeben ist Auch ist die Gestaltung der Interaktionskomponente die Gestaltung der GUI dem Anwender frei berlassen und SUIT bietet sich hier nur als unterst tzendes Tool f r Gestaltung und Entwurf der Interaktionskomponente an Die Auswertung der Benutzereingaben und die Pr sentation der Ausgaben die Ver und
65. ativen sind die zeitlich letzte Inkarnation LIFO Kellerprinzip wird gew hlt die erste Inkarnation FIFO Warteschlangenprinzip wird gew hlt die Wahl ist durch den Anwender vorzunehmen daher muss ihm eine Selektionsm glichkeit angeboten werden Beim bergang von einem Dialog zu einem anderen sind bzgl ihrer Behandlung vier M glichkeiten gegeben der alte Dialog wird verlassen und ein neuer begonnen der alte Dialog wird verlassen und ein offener wieder aufgenommen der alte Dialog wird unterbrochen und ein neuer begonnen der alte Dialog wird unterbrochen und ein offener wieder aufgenommen Diese M glichkeiten m ssen nicht vollst ndig realisiert bzw erlaubt sein Zwar ist meist ein flexibler Wechsel zwischen Dialogen w nschenswert aber es kann erforderlich sein den Zugang zu einem Dialog nicht von jedem anderen aus zu erm glichen sondern jeweils zu beschr nken Dies geschieht dadurch dass er an Bedingungen gekn pft wird z B indem ein Passwort oder f r den zweiten Dialog ben tigte Daten bergeben werden 3 3 6 IAD Aktionen Bei IADs werden au erdem die Aktionen einbezogen die durch das Bet tigen der virtuellen Taste angesto en werden Wie sind diese Aktionen zu spezifizieren Da in den Aktionen dialogspezifische Daten bearbeitet werden kann dies nur f r den einzelnen Dialog erfolgen Um eine Aktion zu spezifizieren ist der spezifische Dialog auf die von ihm auszul sende Aktion hin zu analysiere
66. aufgebaut werden kann Als erstes wird eine Variablendeklaration vom Typ Point mit dem Namen myPoint erzeugt CodeVariableDeclarationStatement myPointVariable myPointVariable new CodeVariableDeclarationStatement typeof Point myPoint Als n chstes wird ein Objekt des Typs Point erzeugt das benutzt wird um die Variable myPoint zu initialisieren Es werden hier die X und Y Koordinaten in einem CodePrimitiveExpression Objekt als primitive Datentypen dargestellt CodeExpression parameters new CodeExpression new CodePrimitiveExpression 10 new CodePrimitiveExpression 10 Es wird eine Instanz des Typs Point mit den Parametern x und y erstellt CodeObjectCreateExpression initializer initializer new CodeObjectCreateExpression typeof Point parameters Schlie lich wird dem initializer also die Instanz des Typs Point die variablen Deklaration zugewiesen myPointVariable InitExpression initializer So kann also jeder Programmiercode in Form einer CodeDom Struktur die sprachunabh ngig ist beschrieben werden Mit Hilfe von CodeDom kann Quellprogramm sprachunabh ngig dargestellt werden F r die Serialisierung des Zustandsdiagramms in SUIT ist es jedoch nicht notwendig eine CodeDom Struktur selbst zu erzeugen Net bietet hierf r in System ComponentModel Design Serialization Namespace Klassen an Component implementiert Klassen von System ComponentModel Desi
67. bei gro en Benutzungsschnittstellen bew hrt l sst sich erst sagen wenn SUIT in der Praxis wirklich zum Einsatz kommt Die ersten Tests lassen jedoch Positives erhoffen 112 Quellen Denert 1992 Ernst Denert Software Engineering Springer Verlag 1992 eclipse http www eclipse org 11 11 2006 Gamma 2004 Erich Gamma Richard Helm Ralph E Johnson Entwurfsmuster Elemente wiederverwendbarer objektorientierter Software Addison Wesley in Pearson Education Deutschland 2004 Harel 1987 David Harel Statecharts A Visual Formalism for Complex Systems Science of Computer Programming 1987 Jigloo3 9 5 http www cloudgarden com jigloo v 3 9 5 11 11 2006 Together http www borland com us products together index html 11 11 2006 MyersRosson92 B A Myers and M B Rosson Survey on user interface programming In SIGCHT 92 Human Factors in Computing Systems May 1992 Visio2003 http office microsoft com de de visio default aspx 11 11 2006 Visual Studio Net 2003 http www microsoft com germany msdn library visualtools UeberblickUeberVisualStudioN ET2003 mspx mfr true 11 11 2006 Z llighoven 1998 Z llighoven Heinz Das objektorientierte Konstruktionshandbuch Heidelberg dpunkt Verl 1998 CodeDom http windowsforms net articles shapedesigner aspx 12 01 07 uselab http users informatik haw hamburg de use lab 12 01 07 msdn attribute http msdn2 microsoft com de de library system attribute VS 8
68. bklappbar A3 Erzeugen eines Zustandes Ein Zustand kann per Drag amp Drop Must have per Drag amp Drop von der Toolbox auf die Zeichenfl che platziert werden Die Gr e ist nicht vorgegeben und wird beim Erzeugen beliebig definiert A4 Erzeugen eines Ein Anfangszustand kann per Drag Must have Anfangszustandes per amp Drop von der Toolbox auf die Drag amp Drop Zeichenfl che platziert werden Die Gr e ist nicht vorgegeben und wird beim Erzeugen beliebig definiert AS Erzeugen eines Zustandes Mit einem Doppelklick auf das Icon Should have per Doppelklick Zustand in der Toolbox wird ein Zustand fester Gr e auf die Zeichenfl che platziert A6 Erzeugen eines Mit einem Doppelklick auf das Icon Should have Startzustand per Startzustand in der Toolbox wird ein Doppelklick Startzustand fester Gr e auf die Zeichenfl che platziert A7 Erzeugen eines Ein Zustands bergang wird per Must have Zustands bergang Drag amp Drop von der Toolbox auf Transition per die Zeichenfl che platziert Jeder Drag amp Drop Zustands bergang muss einen hineinf hrenden und einen hinausf hrenden Zustand haben AS Erzeugen eines rekursiven Rekursive Zustands berg nge sollen Should have Zustands bergangs erlaubt sein A9 L schen eines Zustandes Ist ein Zustand selektiert wird er Must have beim Dr cken der Entf Taste gel scht Die eingehenden und ausgehenden Zustands berg nge werden gel scht A10 L s
69. botssuche cs 0 Uee ngel abbrechen Glick cancelBestellung Quauyaune Bunjajsad y AD AOpUI BunsyssgTmoys AAD Bunye sss Pu Qayansuapuny moys yao USyansapunypua Bereit zum Bestellen cmdSuchen Click fangebot_suchen cmdSuchen Click kunden_sucheni JeyonsepunynzaysB AA FASSUNZP emdZurueck Clek 7 gehezu 2 Bestellung Be Anzeige der stellung cs Anzeigen der Angebotsdaten Kundendaten Kunde Kunden Angebot Angeb anzeige cs otsanzeige cs cmdBearbeiten Click geheZu_angebot_bearbeiten cmdSpechern Click angebot_speichem emdAnlegen Click geheZu_angebot_anlegen Quabajue jogaue ya y usbaluypua Juorugge usBeuejogeBuE 40D USYISIG YPU lt md nlegen Click geheZu_KundeAnlegenf Oyoniqqe Bundapuaeuapuna y yI YING pura Quiayoarads uajepuapuny y yao Ulayoredspulo lt mdAbbrechen CIcK Tangebotaendenung_abbrechen cmdBearbeiten Click geheZu_kundeBearbeiten Bereit zur Kundendaten Anderung Bereit zur Angebot Anderung Bereit zum Kunden anlegen Bereit zum Angebot anlegen Angebot Angebot serstellung cs Angebot Ange botspflege cs Kunde Kunden Kunde Kunden pflege cs erstellung cs Abb 48 Diagramm der Benutzungsschnittstelle des Gesamtsystems SUIT erzeugt aus den im Zustandsdiagramm bereits definierten Aktionen eine Fassade F r jede Aktion wird automatisch eine Methode generiert Die fachliche Funktionalit t dieser
70. chen eines Ist ein Startzustand selektiert wird Must Have Startzustandes er beim Dr cken der Entf Taste gel scht Alle hinausgehenden Zustands berg nge werden gel scht 42 All L schen eines Zustands bergangs Ist ein Zustands bergang selektiert wird er beim Dr cken der Entf Taste gel scht Must have A12 Zustands berg nge Knickpunkte In einem Zustands bergang k nnen Knickpunkte definiert werden um eine gewinkelte Darstellung eines Zustands bergangs zu erm glichen Should have A13 Notizfeld Ein Notizfeld ist ein Zustandsdiagrammelement das auch aus der Toolbox selektiert und frei auf die Zeichenfl che platziert werden kann Nice to have A14 Selektieren Ein Anfangszustand Zustand oder Zustands bergang kann mit der Maus selektiert werden Must have AI15 Selektieren des gesamten Zustandsdiagramms Ein Zustandsdiagramm kann mit der Maus selektiert werden Should have Al6 Undo redo Es gibt eine Undo Funktionalit t die den letzten Bearbeitungsschritt r ckg ngig macht und eine redo Funktionalt t die den letzten Bearbeitungsschritt wiederholt Die Undo Funktion dient der Korrektur von fehlerhaften Eingaben und die Redo Funktion macht eine Korrektur r ckg ngig Should have A17 Mehrfachselektion von Zust nden Mehrere Zust nde k nnen durch Umrahmen mit dem Mauscursor gruppiert werden um darauf ein
71. cklung darstellt Dies deutet darauf hin dass es daf r bisher an geeigneten Tools mangelt 98 9 M glichkeiten und Grenzen von SUIT 9 1 Einleitung In diesem Kapitel soll auf die M glichkeiten und Grenzen von SUIT eingegangen werden die im Laufe der Bachelor Arbeit aufgefallen sind Ob SUIT die erhofften Vorteile in der Vision erf llt oder nicht wird in Abschnitt 9 2 erl utert Diese Grenzen von SUIT sollen in Abschnitt 9 3 aufgezeigt und ihre Ursachen erl utert werden In Abschnitt 9 4 folgt ein Fazit zu diesem Kapiteln 9 2 M glichkeiten von SUIT Die Methode Benutzungsschnittstellen mit Hilfe von Zustandsdiagrammen und Fensterentw rfen zu entwerfen wurde mit SUIT umgesetzt Erste praktische Tests haben ergeben dass SUIT eine gute Basis bietet Benutzungsschnittstellen schnell und kosteng nstig zu entwerfen Die Usability Tests zu dieser Methodik Benutzungsschnittstellen zu entwerfen hatten gezeigt dass alle Tester diese Vorgehensweise als leicht verst ndlich betrachten und ohne gro es Umdenken Zustandsdiagrammmodelle ihres Benutzungsschnittstellensystem intuitiv entwerfen k nnten siehe Kapitel 8 Die Simulationskomponente kann schon in den fr hen Phasen der Softwareentwicklung zum Einsatz kommen Sie erm glicht ohne eine Zeile Code geschrieben zu haben einen Prototyp der zu entwickelnden Benutzungsschnittstelle zu erzeugen Die Simulationskomponente bietet die M glichkeit des Rapid Prototyping und stellt damit eine
72. ction eines Zustands bergang ndern Um Event und Action eines Zustands bergangs zu ndern gehen Sie wie folgt vor 1 Markieren Sie den Zustands bergang dessen Event und Action ge ndert werden soll 2 Klicken Sie im Eigenschaftsfenster beim Property ControlEventAction den Button an se Eigenschaften zustandsuebe ie DynamicProperties gangi SUIT Zustandsdiagramr Y ControlEvent ckion 3 Ein Dialog Fenster erscheint in dem Sie die GUI Maske die Sie beim ausgehenden Zustand des Zustands bergangs zugewiesen haben sehen k nnen Je nachdem wie ihre GUI Maske aussieht gibt es also hier Abweichung von den folgenden Screenshot 134 EE EventActionChooser Kundenanzeige Ereignisausl sendes Control emdZurueck fistKunde W hlen Sie das Event aus auf dem reagiert I werden soll BackColorChanged BackgroundlmageChanged BindingContextChanged CausesYalidationChanged ChangelllCues ContextMenuChanged Control dded ControlRemoved CursorChanged DoubleClick DragDrop DragEnter DragLeave DragOver EnabledChanged Enter FontChanged ForeColorChanged GiveFeedback GotFocus HandleCreated Methodenname der Action die ausgef hrt werden soll neueSuchd Abbrechen DK 4 W hlen Sie im ihre GUI Masken Ansicht linkes Fensterbereich des Dialogs das Control aus auf dessen Ereignis reagiert werden soll und w hlen Sie dann das Ereignis aus der L
73. das Zustandsdiagramm Die Toolboxelemente m ssen nun in der Toolbox platziert werden damit sie in ihr erscheinen Das Hinzuf gen der bereits definierten Komponenten kann manuell ber die Visual Studio Oberfl che erfolgen Mit einem rechten Mausklick auf der Toolbox k nnen diese Elemente ber die Option Elementen hinzuf gen entfernen ausgew hlt und hinzugef gt werden Siehe dazu Abb 29 Fallstudie CSharp Microsoft Visual C NET Entwurf Angebot Zustandsdiagramm1 cs Entwurf EJES Datei Bearbeiten Ansicht Projekt Erstellen Debuggen Daten Extras Fenster Hilfe SUSsUgkBbr gt E B Debug y 9 HitLeft Bear aa ze jon s la ml bbotNeu cs Angebot Angebot cs Angebot Angebots lung cs Entwurf Kunde KundeNeu cs Entwurf Angebot Zustan i cs Entwurf 4 gt x Proj enExpl 4 X Zustandsdiagrammeditor Elemente F asias Rh Zeiger Schritt 2 1 Projektmappe Fallstudie C 2 Zustand S El Fallstudie CSharp 63 Startzustand Schritt 1 Toolbox anpassen f xl i en amp Zustandsuebergang NET Framework Komponenten comsteuerelemente l 8 Angebot cs M ausschneiden 8 AngebotNeu cs Ea Angebotsanzeigt Kopier al Microsoft VisualBasic Compati Microsoft WisualBasic Compatibility 7 0 5 al a O webclient Systern Net System 1 0 5000 0 Q Angebotssuche X L schen O Webcontrol System Web UI WebControl System Web 1 0 5000 0
74. dem Zustand kann eine Maske zugeordnet Zust nden werden Speicherung von Zustanddiagrammen Das Zustandsdiagramm muss gespeichert werden k nnen Simulation Das Zustandsdiagramm kann simuliert werden Fassade Es wird eine Fassade generiert werden GUI Masken Ereignisse den Es muss die M glichkeit geben Ereignisse der Zustands bergang zuweisen GUI Maske den Zustands bergang zuzuweisen Tabelle 1 Notwendige Anforderungen an SUIT 2 3 Existierende Tools Im Rahmen dieses Kapitels wurde untersucht ob es auf dem Markt Tools f r die Erzeugung von Benutzungsschnittstellen in Form von Zustandsdiagrammen und Fensterentw rfen existieren Als Leitfaden f r die Untersuchung diente die grobe Anforderungstabelle aus 2 2 Die Recherche nach bereits existierenden kommerziellen oder nicht kommerziellen Softwarel sungen ergab jedoch kein Ergebnis f r eine der Vision entsprechende Gesamtl sung 2 4 GUI Builder Als Entwicklungsumgebung f r die Entwicklung von SUIT kommen insbesondere Eclipse eclipse und Microsoft Visual Studio Net Visual Studio Net 2003 in Betracht Microsoft Visual Studio verf gt ber einen fest eingebauten GUI Builder Eclipse kann mit einem beliebigen GUI Builder Plugin ausgestattet werden Die drei bekanntesten Produkte sind Jigloo Jigloo 3 9 5 Window Builder Pro WindowBuilderPro und Visual Editor VisualEditor Bei der Analyse haben wir uns f r Eclipse auf Jigloo beschr nkt Die Analyse der GUI Builder ist
75. der SUIT Zustandsdiagramm Notation Jedoch l sst sich eine Benutzungsschnittstelle in ihrer endg ltigen Version niemals komplett ohne die Informationen ber die Funktionalit t wie z B R ckgabewerte einzelner Funktionen beschreiben die durchaus Einfluss auf den Dialogverlauf nehmen K nnen F r das SUIT Zustandsdiagramm Modell k nnten diese fehlenden funktionalen Elemente in den sp teren Etappen der Softwareentwicklung bedeuten dass es seine Konsistenz verliert da eben nicht der komplette Dialogverlauf einer Benutzungsschnittstelle unter Ber cksichtigung der funktionalen Implementierung im Modell selbst abbildbar ist So kann zwar der mit SUIT entstandene Prototyp zum Weiterentwickeln genutzt werden jedoch ist es wahrscheinlich dass das SUIT Zustandsdiagramm Modell sp ter seine G ltigkeit verliert Diese Konsistenzerhaltung und die damit verbunden SUIT Zustandsdiagramm Notation Erweiterungen k nnten als prim res Ziel f r die folgenden SUIT Versionen angesehen werden Diese m glichen Erweiterungen und deren Ursachen sofern sie uns jetzt bekannt sind werden im Kapitel Ausblick siehe Kapitel 10 erl utert Es sollte bei diesem Versuch jedoch beachtet werden dass SUIT dadurch sein prim res Ziel fr h in der Softwareentwicklung eingesetzt werden zu k nnen nicht wieder verliert 104 9 4 Fazit SUIT erf llt in ersten Tests unsere Erwartungen und schient wenigstens f r kleine Einplatzsysteme praxistauglich einsetzbar zu s
76. diagtamme nee kun 31 3 3 2 Virt elle Tasten 00 A A Ei 33 3 3 4 IAD Zust nde und Masken nen a a 34 323 9 Dialos wechseln 2 BER 34 3 3 0 ITAD Aktionen vetar dd 35 3 4 Die in dieser Arbeit gew hlte Vorgehensweise oooooonccononcccnoncccnoncnononcnononcconancconncconnnoss 37 3 4 1 Vorgehensweise mit ZustandsdiagraMMeN oooooocccnonoccnoncnononcnononcnonnnononnncnnnnncnnanncnnns 37 342 SUIT No tion A A A A RS 39 O ies 40 ANIOTAETUN ab ao ES 41 2 EMEN S Dale Denim 41 4 2 funktionale Anforderungen iii R a 41 e S A e VA EEOSE N PENEEEREEIIE CPRENRERER ER TIREETENEEEISE EES 47 SOUL LI Atchilekt r O ne 48 A O e A E A 48 5 2 SUIT Architektur Zusammenhang mit VS Net coooocccnccccconcccconcncnnnnnononcnononcnonnncconnnccnnnnnss 48 3 3 Interne SULT Archrtekt r a a a ta 49 5 4 Architektur des Zielsystems nu se ikea 52 32 Fazil E E S 53 Umsetzung FOSTER a 55 6 1 Einleitung unica diia bai 3 6 2 mseseizie Anforderungsen da ididia 55 0 3 POMO din 57 6 4 Besonderheiten rn Aa A OS 59 6 4 1 Erweiterung der Toolbox um Zustandsdiagramm Elemente ueen 59 6 4 2 ffnen mit dem Zustandsdiagramm Designer in VS Net n eneeeeen 61 6 4 3 Programmiersprachunabh ngigkeit in der Codegenerierung in Net 61 6 4 4 Das Anzeigen von Eigenschaften in einem Eigenschaftsfenster 64 6 4 5 Aufrufen des GUI Designers in SUIT 2200222200ssssenssnsenssnnennsnnnnnnnnnnnnannnn 65 6 5 schnittste
77. dschirmmasken erlaubt In der vorliegenden SUIT Version ist es noch nicht m glich auf ein externes Visual Studio Projekt zuzugreifen selbst wenn das externe Projekt sich auf demselben Rechner befinden w rde So ist ein verteiltes Benutzungsschnittstellensystem nicht mit SUIT zu modellieren bzw nicht ohne dass der Programmierer selber Hand anlegt und die externen Bildschirmmasken programmiertechnisch seinem Projekt zug nglich macht Diese projekt bergreifende Bildschirmmasken Referenzierung der Zust nde im SUIT Zustandsdiagramm Editor ist f r die n chste Version geplant Durch diese Einschr nkung der Referenzierung ist es daher auch nicht m glich dass auf Web Benutzungsschnittstellen zugegriffen werden kann da zurzeit auch noch keine Referenzierung von Web Seiten erlaubt ist Um dies zu erm glichen m sste neben einer GUI Builder Komponente SUIT um einen Web Seiten Editor erweitert werden Von dieser Komponente wurde in dieser SUIT Version abgesehen da eine Untersuchung der zustandsbasierten Modellierung von Benutzungsschnittstellen auch ohne die Web Seiten Editor Komponente m glich ist und diese Untersuchung prim res Ziel dieser Bachelor Arbeit ist 100 9 3 2 Codegenerierung f r den Aufruf des Folgezustands Mit dem SUIT Zustandsdiagrammeditor wird der Dialogverlauf einer Benutzungsschnittstelle modelliert Die Informationen welche Maske bei bestimmten Ereignissen angezeigt wird sind also in dem Zustandsdiagrammmodel enth
78. e Operation auszuf hren wie z B Copy amp Paste Should have A18 Rastermuster Ein Rastermuster dient der Orientierung beim Anlegen zu Zust nden Should have A19 Zoom Das erstellte Zustandsdiagramm kann in seiner Ansicht vergr ert oder verkleinert werden Should have A20 Neuanlegen von Masken Von jedem Zustand aus kann per Doppelklick der integrierte GUI Builder von Visual Studio aufgerufen werden und dem Zustand kann eine Maske generiert werden Must have A21 Zuordnung von Masken per Doppelklick Wurde einem Zustand noch keine Maske zugeordnet so werden nach einem Doppelklick auf dem Zustand alle bereits im Project definierten GUI Masken angezeigt Es kann eine Maske ausgew hlt werden oder neu angelegt werden Must have 43 A22 Zuordnung von Masken im Property Fenster Wurde einem Zustand noch keine Maske zugeordnet kann im Property Fenster im Masken Property eine Referenz auf eine GUI Klasse eingetragen werden Must have A23 Andern von Masken Ist einem Zustand eine Maske zugeordnet kann diese mit einem Doppelklick auf dem Zustand aufgerufen werden Dann k nnen nderungen vorgenommen werden Must have A24 Property Ansicht Zustand ber diese Property Ansicht k nnen die Eigenschaften eines Zustands angesehen und editiert werden Must have A25 Property Ansicht Startzustand ber diese Property Ansicht k
79. ei der Erstellung von Benutzungsschnittstellen angemessen zu unterst tzen F r diesen Zweck wird im Rahmen dieser Bachelor Arbeit ein Werkzeug f r die Erzeugung von Benutzungsschnittstellen auf Basis von Zustandsdiagrammen und Fensterentw rfen realisiert 1 1 Motivation Zum Entwurf von Benutzungsschnittstellen ist es ab einer bestimmten Gr e unerl sslich ein Modell ihres dynamischen Verhaltens zu entwickeln Daf r ist ein geeignetes Tool erforderlich Viele auf dem Markt angebotenen Modellierungstools dienen allerdings in erster Linie nur der Modellierung Diese Tools k nnen eher als Graphikprogramme angesehen werden da sie haupts chlich den Anwender beim Erstellen von Diagrammen unterst tzen Die Diagramme k nnen aber letztendlich nur gespeichert oder ausgedruckt werden Aus Sicht des Programmierers und Software Entwicklers w re es jedoch w nschenswert aus einem formal eindeutigen Modell m glichst viele der niedergelegten Informationen zur automatischen Erzeugung von Code f r die Benutzungsschnittstelle weiter zu verwenden In einigen F llen k nnen Modelle w hrend der Spezifikation bereits so detailliert beschrieben werden dass aus ihnen zumindest ein Programmger st wenn nicht sogar ausf hrbarer Code automatisch generiert werden k nnte Weiterhin ist es erstrebenswert aus einem Modell einen lauff higen Prototypen zu erstellen das in den fr hen Phasen der Softwareentwicklung zum Einsatz kommen kann Modelle sollten n
80. eile die wir in der Vision beschrieben haben scheinen sich also mit SUIT erf llt zu haben SUIT erf llt also in der Hinsicht unsere Erwartungen Jedoch haben wir auch Grenzen an SUIT entdeckt die in Abschnitt 9 3 genauer erl utert werden Unter anderem ist eine dieser Grenzen von SUIT das Entwickeln von verteilten Benutzungsschnittstellen siehe 9 3 1 So beschr nkt sich SUIT erstmal nur auf Einzelplatzsystemen Ein kleines Einplatzsystem f r einen Pizzaservice siehe Fallstudie wurde mit SUIT ansatzweise entwickelt Anhand der Fallstudie hat sich SUIT f r solche Benutzungsschnittstellen als gut geeignet erwiesen Wie tauglich SUIT f r die Entwicklung von gr eren Benutzungsschnittstellen ist l sst sich erst genau sagen wenn SUIT wirklich zum praktischen Einsatz kommt 9 3 Erl uterung der Grenzen In diesem Abschnitt werden die erkannten Grenzen von SUIT im Laufe der Bachelor Arbeit erl utert und aufgezeigt Es sollen die Ursachen festgestellt werden und m gliche L sungen angeboten werden Diese L sungen sofern realisierbar k nnen dann f r die n chste Version von SUIT umgesetzt werden 9 3 1 Verteilte Benutzungsschnittstellen Mit SUIT l sst sich nicht der Dialogablauf von Benutzungsschnittstellen modellieren deren Bildschirmmasken sich auf mehreren Rechnern befinden Dies hat als Ursache dass der SUIT Zustandsdiagramm Editor keine projekt bergreifende geschweige denn rechner bergreifende Referenzierung der Bil
81. ein Verteilte Benutzungssysteme sind mit SUIT noch nicht modellierbar Der Code f r den Aufruf der Folgemaske wird mit SUIT noch nicht automatisch geniert da der Ort f r die Erstellung nur vom Programmierer selbst sinnvoll bestimmt werden kann Durch die einfache SUIT Zustandsdiagramm Notation erm glich SUIT dem Anwender Benutzungsschnittstellen m glichst in den fr hen Etappen der Softwareentwicklung einzusetzen ohne sein Zielsystem und dessen Anforderungen vollst ndig kennen zu m ssen Diese berschaubare Notation erm glich es auch dem Anwender die Methodik Benutzungsschnittstellen in Form von Zustandsdiagrammen und Fensterentw rfen ohne gro e Einarbeitung umsetzen und verstehen zu k nnen Durch das nicht Ber cksichtigen der Funktionalit t in der Modellierung kann es dazu kommen dass in sp teren Etappen der Softwareentwicklung in denen die Funktionen ausimplementiert werden die Konsistenz zwischen den Zustandsdiagramm Modell und der Benutzungsschnittstelle verloren geht Diese Konsistenzerhaltung und die daf r n tigen Erweiterungen in der SUIT Zustandsdiagramm Notation sollen im Kapitel Ausblick erl utert werden Wie SUIT sich letztendlich bei gro en Projekten bew hrt wird sich erst dann zeigen wenn SUIT wirklich zum praktischen Einsatz in gro en Projekten kommt Doch die Ergebnisse der Usability Tests und der Fallstudie lassen Positives erhoffen 105 10 Ausblick 10 1 Einleitung In diesem Kapitel soll ein
82. ekt der EnvDTE Projectltem erzeugen der auf die GUI Datei zeigt ProjectItem Schnittstelle stellt ein Element in einem Projekt dar in unserem Falle ist es die GUI Datei die beim Doppelklick angezeigt werden soll Hat man nun das Projektitem also das Element aus dem Projekt hier die GUI Datei so kann diese ge ffnet werden Soll nun diese GUI Datei in der Ansicht des GUI Builders ge ffnet werden kann dies mit Hilfe der Klasse Constants im Namespace EnvDTE definiert werden Die Klasse Constants definiert vsViewKindDesigner um eine Datei in der Designer Ansicht also in der Ansicht des GUI Builders anzuzeigen Folgender PseudoCode zeigt diese Vorgehensweise Zuerst holt man sich das aktuelle Projekt Als Parameter werden der Pseudo_Methode getProject den Namen der GUI Datei und einen Objekt der Klasse EnvDTE DTE myDTE 65 bergeben myDTE enth lt alle bestehenden Projekte der Entwicklungsumgebung Visual Studio Net EnvDTE Project pr getProject GUI_Datei_Name myDTE Hat man nun das aktuelle Projekt so erzeugt man ein Objekt der Klasse Projectltem das die zu ffnende GUI Datei als Element darstellt EnvDTE ProjectItem myGUI getProjektItem GUI Datei Name Hat man nun ein Projektitem der GUI erzeugt so kann dieses in der GUI Builder Ansicht ge ffnet werden myGUI Open EnvDTE Constants vsViewKindDesigner 6 5 Schnittstelle von SUIT Um SUIT um ein weiteres Zustandsdiagra
83. en anlegen Abb 39 Maske der Angebotserstellung Vom Zustand Anzeige der Angebotsdaten mit der Maske der Angebotsanzeige aus kann die Taste bearbeiten bet tigt werden Dies f hrt zu der Aktion geheZu_angebot_bearbeiten Es wird zum Folgezustand bereit zur Angebots nderung gewechselt In dieser Maske kann man ber die beiden Tasten abbrechen und speichern und die dazugeh renden Aktionen in den Zustand Anzeige der Angebotsdaten zur ckkehren Angebotsdatenpflege Angebotdaten pflegen Bestellnummer Name Kategorie Preis Beschreibung abbrechen speichern Abb 40 Maske der Angebotsdatenpflege 82 Vom Zustand Anzeige der Angebotsdaten aus kann man ber die Taste l schen nach Anklicken des zu l schenden Angebots oder durch Anklicken der Taste zur ck wieder in die Suchmaske zur ckkehren also zum Zustand bereit zur Suche 7 3 5 Kundenverwaltungswerkzeug Wie man dem Anwendungsfalldiagramm in Abb 35 entnehmen kann benutzen die Anwendungsf lle Kunden anlegen Kunden l schen und Kundendaten pflegen den Anwendungsfall Kunden suchen Daher muss eine Kundensuche ausgef hrt werden ehe eine weitere Aktion bez glich eines Kunden erfolgen kann Damit ist eine bestimmte Reihenfolge vorgegeben Wird dieser Ablauf durch ein Zustandsdiagramm beschrieben ergeben sich daraus vier Zust nde die wie folgt benannt werde
84. en Entwicklungsphasen kommt man jedoch nicht an der funktionalen Implementierung vorbei Werden vom SUIT Anwender in diesen Phasen Funktionen ausimplementiert die auf den Dialogverlauf der Benutzungsschnittstelle Einfluss nehmen so sind diese nicht in dem Modell abbildbar In diesem Abschnitt widmen wir uns m glichen Konsistenzverlust Ursachen und Notationserweiterung So kann ein neues prim res Ziel der n chsten SUIT Version darin liegen Konsistenzerhaltung f r die sp teren Etappen der Softwareentwicklung zu gew hrleisten um die Weiterentwicklung des mit SUIT erzeugten Prototyps zu optimieren In Abschnitt 10 2 2 1 wird auf die Konsistenzverlust Ursache eingegangen die durch dialogablaufsteuernde Aktionsr ckgabewerte verursacht werden Abschnitt 10 2 2 2 geht dann auf die Konsistenzverlust Ursache Inkarnationen ein 10 2 2 1 Dialogsverlaufsteuernde Aktionsr ckgabewerte Ein Hauptgrund f r diesen Konsistenzverlust in der Implementierungsphase sehen wir in der fehlenden M glichkeit dialogsverlaufsteuernde Aktionsr ckgabewerte zu modellieren R ckgabewerte von Aktionen m gen zum Zeitpunkt der Analyse noch nicht zu hundert Prozent bekannt sein sie k nnen jedoch Einfluss auf den Dialogverlauf haben Eine totale Missachtung der funktionalen Implementierung vom Modell f hrt daher leicht zu einem Konsistenzverlust des Models Um das Problem der dialogsverlaufsteuernden R ckgabewerte einer Aktion zu veranschaulichen soll das Beispiel de
85. en Zu diesem Zweck sind ein Zustandsdiagrammeditor und ein GUI Builder unabdingbar Es existieren sowohl kommerzielle als auch nichtkommerzielle Zustandsdiagrammeditoren und GUI Builder auf dem Markt siehe Marktanalyse in Kapitel 2 Daher liegt die berlegung nahe jeweils eines dieser Produkte sofern es erweiterbar und integrierbar ist wieder zu verwenden In diesem Fall w re die Realisierung eines eigenen GUI Builders oder Zustandsdiagrammeditors berfl ssig Die Kommunikation zwischen dem GUI Builder und dem Zustandsdiagrammeditor muss durch eine eigene Komponente realisiert werden Der Vorteil dieser L sung liegt in der M glichkeit der Wiederverwendung bereits bestehender Komponenten 14 Trotzdem haben wir uns zur Umsetzung des Tools dieser Bachelor Arbeit daf r entschieden einen eigenen Zustandsdiagrammeditor zu realisieren da es unser Ziel ist einen speziell f r Benutzungsschnittstellen ma geschneiderten Zustandsdiagrammeditor zu entwickeln Im Rahmen dieser Bachelor Arbeit soll ein explorativer Prototyp erstellt werden Es soll berpr ft werden ob die Idee Benutzungsschnittstellen in Form von Zustandsdiagrammen und Fensterentw rfen zu entwickeln praxistauglich ist Stellt sich anschlie end heraus dass Zustandsdiagramme in der jetzigen Notation f r die Modellierung des dynamischen Verhaltens von Benutzungsschnittstellen unzureichend sind so kann man mit einer eigenen Realisierung flexibler auf neue Erkenntnisse reagi
86. en k nnen Zust nde in verschiedenen Farben dargestellt werden Zust nde k nnen ineinander verschachtelt werden Nachteilig beim Zustandsdiagrammeditor von Together sind die hohen Anspr che an die Hardware Au erdem stellt er derart viele Funktionalit ten zur Verf gung dass der berblick leicht verloren gehen kann Ein weiterer wichtiger Nachteil besteht darin dass Together sogar bei der Verwendung f r nichtkommerzielle Zwecke kostenpflichtig ist Der Zustandsdiagrammeditor von Together bietet keine Druckansicht 2 5 2 MS Visio Zeichnungi Microsoft Visio 5 3 Datei Bearbeiten Ansicht Einf gen Format Extras Shape UML fenster 2 Frage hier eingeben vr ox D0 Bda 7442 ax 9 0 18 5 1 A 9 7 0 Arial Shapes Nach Shapes suchen Geben Sie Ihren Suchbegril y E UML Aktivitat E UML Kollaboration E UML Komponente E uM verteilung El UML Sequenz E UML Zustandsdiagramm H UML Statische Struktur El UML Anwendungsfall 4 gt gt Zustandsdiagramm 1 Zeichenblatt 1 1 Abb 16 Visio Microsoft Visio 2003 ist ein Bestandteil des Microsoft Office Systems Es bietet dem Anwender die M glichkeit Informationen in Form verschiedener Diagrammtypen abzubilden Im Rahmen unserer Bachelor Arbeit beschr nken wir uns jedoch auf die Modellierung in Form von Zustandsdiagrammen in Microsoft Visio 26 Der Zustandsdiagrammeditor bietet eine sehr benutzerfreundliche Zeichen
87. enen Ablauflogik ausf hren 5 4 Architektur des Zielsystems Durch die Codegenerierungskomponente von SUIT wird f r den Anwender Code erzeugt Jedoch beschr nkt sich dieser automatisch erzeugte Code nur auf eine Fassaden Klasse die die Methodenk pfe der im Zustandsdiagramm angebenden Aktionen deklariert Die Ausimplementierung also die eigentliche Funktionalit t kann nur vom Anwender selbst entwickelt und programmiert werden Eine automatische Codegenerierung f r die dahinter liegende Funktionalit t ist nicht m glich da die n tigen Informationen hierzu nicht aus dem Zustandsdiagramm entnommen werden k nnen Durch die Generierung einer Fassaden Klasse wird dem Anwender also schon ein gewisses Entwurfsmuster ein Pattern vorgeben das somit auch eine gewisse Entwurfsentscheidung f r den Anwender darstellt Es entsteht eine Vorgabe in der Architektur des Zielprogramms das vom Anwender mit Hilfe von SUIT entwickelt werden soll Diese Architektur soll in diesem Abschnitt vorgestellt und deren Vorteile erl utert werden Das Fassaden Pattern Gamma 2004 hat den Vorteil dass es den Klient im unserem Fall die Interaktionskomponente vom Subsystem die Funktionskomponente voneinander entkoppelt und eine starke Kopplung somit vermieden werden kann Die Interaktionskomponente also die Komponente die die GUI enth lt wird mit Hilfe von SUIT und dem in SUIT integrierten GUI Builder entworfen Durch die automatisch generierte F
88. enh nge zwischen den Anwendungsf llen untereinander und zwischen ihnen und den beteiligten Akteuren beschrieben werden Dieses Diagramm bietet den Ausgangspunkt f r den n chsten Schritt der Identifizierung von Werkzeugen Um den Entwurf bzw die Identifikation von Werkzeugen zu erleichtern wird in Z llighoven 1998 zus tzlich die Beschreibung von Szenarien empfohlen Dies ist bei der vorliegenden Fallstudie nicht erforderlich da es sich nicht um ein komplexes schwer berschaubares System handelt In unserem Beispiel bietet ein Anwendungsfalldiagramm ausreichend Anhaltspunkte um Werkzeuge zu erkennen Im Folgenden werden einige weitere Begriffe gem Z llighoven 1998 Seite 48 verwendet Ein einfaches Werkzeug besitzt anwendungsfachlich eine elementare Funktionalit t Softwaretechnisch besitzt es keine Sub Werkzeuge Ein Kombi Werkzeug kombiniert verschiedene fachliche Dienstleistungen zur Erledigung einer komplexen Aufgabe Softwaretechnisch ist es aus existierenden Sub Werkzeugen zusammengesetzt Ist ein Werkzeug als technische Komponente innerhalb eines anderen Werkzeugs eingesetzt so wird es als Sub Werkzeug bezeichnet Nach ihrer Identifikation werden die Werkzeuge wiederum zu einem Gesamtsystem kombiniert Diese Vorgehensweise demonstriert wie mit dem Tool der vorliegenden Arbeit eine Benutzungsschnittstelle f r ein vollst ndiges System Pizzaservicesystem modelliert werden kann 78 B
89. enutzerkommunikation eingesetzt werden k nnen Sie k nnten als Hilfsmittel dienen um die Richtigkeit einer Anforderungsanalyse sicherzustellen Anschlie end k nnen sie einem voll einsatzf higen und kompletten Softwaresystem weiterentwickelt werden 90 8 Usability 8 1 Einleitung Thema dieses Kapitels ist der Usabiliy Test dem SUIT mit Hilfe von vier Testpersonen unterzogen wurde Die Usability Tests wurden nach zwei Hinsichten untersucht 1 ging es um die Benutzbarkeit von SUIT selbst 2 um die Praxistauglichkeit der Methode die SUIT umsetzt das Modellieren von Benutzungsschnittstellen in Form von Zustandsdiagrammen und Fensterentw rfen 8 2 Usability Aufgabe Jeder Testperson wurde eine Aufgabe gestellt die sie st rungsfrei bearbeiten sollte Die Aufgabe bestand darin anhand eines Beispiels Suche nach Literatur siehe n chster Abschnitt in SUIT ein Zustandsdiagramm zu entwerfen das den beschriebenen Ablauf der Literatursuche modelliert und dieses um die ben tigten Masken anreichert Es sollte eine Fassaden Klasse erzeugt und das Modell simuliert werden Beispiel Suche nach Literatur Martina hat sich dazu entschieden ihr Referat ber das Thema Geschichte der Dinosaurier anzufertigen und ist nun auf Literatursuche Sie begibt sich deshalb in die Bibliothek setzt sich an einen Rechner und ffnet die Seite des Katalogs der Bibliothek Daraufhin ffnet das System den Suchdialog mit Eingabefeldern f r die m glic
90. er erneut die Adresse einzugeben wird daher auf die Haustelefonnummer zur ckgegriffen Au erdem dient sie f r R ckrufe an den Kunden Eine Kundennummer ist bei einem Pizzaservice System nicht praxistauglich und wird daher nicht verwendet Ist der Kunde nicht im System bekannt werden seine Kundendaten wie z B Anschrift Name etc angefragt und dem System vermittelt Ist der Kunde schon im System registriert k nnen gegebenenfalls die Kundendaten gepflegt und bei Anderungen aktualisiert werden Nun kann der Mitarbeiter die Bestellungen des Kunden entgegen nehmen Dabei berpr ft das System ob die gew nschten Artikel vorhanden sind Ist die Bestellung abgegeben wird diese in Form einer Rechnung ausgedruckt die an die K che weitergereicht wird Hier werden die bestellten Pizzen gem der weitergereichten Rechnung gebacken auslieferungsreif verpackt und samt Rechnung einem Fahrer zum Ausliefern weitergereicht Konnte eine Auslieferung aus irgendeinem Grund nicht erfolgreich abgewickelt werden z B weil der Kunde nicht angetroffen wurde wird dem System mitgeteilt dass die Auslieferung nicht erfolgreich abgeschlossen werden konnte Dar ber hinaus muss das System dem Anwender eine M glichkeit bieten seine Stammdaten zu pflegen 7 3 Schrittweise Erzeugung des Prototyps 7 3 1 Vorgehensweise Die Entwicklung des Prototyps erfolgt unter Einbeziehung von Konzepten des WAM Ansatzes Z llighoven 1998 Es wird zun chst unter V
91. er Benutzungsschnittstelle in Form eines Zustandsdiagramm modelliert und die Bildschirmmasken generiert kommt die Simulationskomponente zum Einsatz gt Codegenerator Aus dem erstellten Zustandsdiagramm erzeugt der Codegenerator von SUIT eine Fassade der Funktionskomponente Im Folgenden werden tabellarisch siehe Tabelle 2 alle funktionalen Anforderungen an SUIT aufgelistet Jede Anforderung wird einer der folgenden drei Klassifikationen zugeordnet gt Must have dies sind Anforderungen die SUIT erf llen muss Sie werden im Rahmen dieser Bachelor Arbeit realisiert gt Should have dies sind m gliche Erg nzungen die SUIT bereichern w rden und im Rahmen dieser Bachelor Arbeit soweit es zeitlich m glich ist realisiert werden 41 gt Nice to have dies sind m gliche Erg nzungen die SUIT bereichern w rden und im Rahmen dieser Bachelor Arbeit soweit es zeitlich m glich ist realisiert werden Wobei die Should have Anforderungen h her priorisiert sind als die Nice to have Anforderungen ID Abk rzung Beschreibung der Anforderung Klassifikation Al Erzeugen einer Eine Zustandsdiagrammdatei wird Must have Zustandsdiagrammklasse erzeugt die das Zustandsdiagramm des Anwenders beschreibt A2 Toolbox Der Zustandsdiagramm Editor Must have verf gt ber eine Toolbox in der Zust nde Startzust nde und Zustands berg nge symbolisch angezeigt werden Die Toolbox ist auf und a
92. eren Erfordern z B neue Erkenntnisse eine Ab nderung der Notation des Zustandsdiagramms so kann diese nderung problemlos vorgenommen werden Eine eigene Implementierung bietet mehr Flexibilit t um auf nderungen der Anforderungen und auf neue Erkenntnisse zu reagieren Daher besteht unser Vorgehen darin f r das Tool dieser Bachelor Arbeit einen existierenden GUI Builder wiederzuverwenden und einen eigenen Zustandsdiagrammeditor zu implementieren 1 2 4 Einsatz SUIT Szenarien Use Cases Elementar Werkzeuge Aufgaben Kombi Werkzeug Simulation Code Generierung Abb 8 Einsatz von SUIT Bildschirm BSS Masken Modellierung Abb 8 zeigt die Etappen an in denen das Tool dieser Bachelor Arbeit zum Einsatz kommen kann Dieser Einsatz erfolgt in der Regel nachdem die im WAM Ansatz Z llighoven 1998 beschriebenen Werkzeuge identifiziert worden sind Arbeitsabl ufe lassen sich in Szenarien beschreiben Mit Hilfe von Szenarien werden Use Cases identifiziert Anhand der Anwendungsf lle und Szenarien werden wiederkehrende Aufgaben erkannt und zu Elementar Werkzeugen zusammengefasst Bei komplexen Aufgaben k nnen elementare Werkzeuge zu einem Kombi Werkzeug kombiniert werden Diese Zusammenf hrung von Subwerkzeugen zu einem Kombi Werkzeug wird im WAM Entwurfsmuster Werkzeugkomposition beschrieben Z llighoven 1998 An diesem Punkt kommt das Tool dieser Bachelor Arbeit zum Einsatz SUIT schreibt jedoch ke
93. erierung von Code in Form einer Fassade Alle Details einer Benutzungsschnittstelle abzudecken steht daher bisher nicht im Zentrum der Aufmerksamkeit Sollte sich die Modellierung von Benutzungsschnittstellen mithilfe von Zustandsdiagrammen und Fensterentw rfen jedoch als praxistauglich erweisen w rde die Erweiterung des Tools in dieser Richtung eine Bereicherung bedeuten 40 4 Anforderungen 4 1 Einleitung Das im Rahmen diese Bachelor Arbeit zu implementierende Tool SUIT wird in die Entwicklungsumgebung Miscrosoft Visual Studio NET integriert SUIT verf gt nicht ber einen eigenen GUI Builder sondern nutzt die Funktionalit ten des GUI Builders von Visual Studio Die Implementierung eines eigenen GUI Builder wird im Rahmen dieser Bachelor Arbeit nicht geplant In Abschnitt 4 2 werden alle funktionalen Anforderungen an SUIT beschrieben und klassifiziert In 4 3 folgt ein Fazit 4 2 funktionale Anforderungen SUIT ist in drei Module aufgeteilt gt Zustandsdiagramm Editor Mit dem Zustandsdiagrammeditor werden das komplette dynamische Verhalten einer Benutzungsschnittstelle und die Gestaltung ihrer graphischen Oberfl che beschrieben Der Zustandsdiagrammeditor ist der wesentliche Teil dieser Arbeit Es handelt sich hierbei um einen graphischen Editor zum Editieren von Zustandsdiagrammen mit der Besonderheit dass der Editor den integrierten GUI Builder von Visual Studio nutzt gt Simulator Wurde das dynamische Verhalten ein
94. erwendung der Metapher Werkzeug und Material des WAM Ansatzes versucht die Materialien zu erkennen und das Gesamtsystem in einzelne Werkzeuge aufzuteilen Die Werkzeug und Material Metapher des WAM Ansatzes hat sich bei den immer komplexer werdenden Anwendungen als sehr fruchtbar erwiesen Denn je gr er ein Softwaresystem ist desto schwieriger wird es f r den einzelnen das Ganze komplett zu berblicken Somit w rde die Untergliederung eines Gesamtsystems in Werkzeugen die Verst ndlichkeit erh hen und die Komplexit t reduzieren 77 Der detaillierte Entwurf von Materialien ist in diesem Abschnitt kein prim res Ziel Der Schwerpunkt liegt auf der interaktiven Pr sentation und Handhabung des Materials Diese fallen in die Zust ndigkeit des Werkzeugs Ein Werkzeug pr sentiert Materialien gem ihrem Verwendungszusammenhang und erm glicht ihre Sondierung und Manipulation Es vergegenst ndlicht immer wiederkehrende Arbeitst tigkeiten welche an Materialien ausgef hrt werden Materialien k nnen nach Z llighoven 1998 sondiert und manipuliert werden Sie werden durch Werkzeuge bearbeitet Da es sich hier nicht um ein komplexes System handelt bietet das Anwendungsfalldiagramm ausreichend Anhaltspunkte f r Werkzeuge so dass in diesem Abschnitt auf die Beschreibung von Szenarien verzichtet wird Das Gesamtsystem hier Pizzaservicesystem wird zun chst in einem Anwendungsfalldiagramm siehe Abb 35 dargestellt in dem die Zusamm
95. estellung abgeben use Kunde gt Y uses Kunde anlegen Dante uc a Kunde l schen Kundendaten pflegen Angebot ndern uses USeS Angebot suchen K Angebot anlegen Y uses uses uses Angebot l schen D Bestellung ausliefern Berichte anzeigen Fahrer Abb 35 Anwendungsfalldiagramm Pizzaservice Mitarbeiter 7 3 2 Identifikation der elementaren Werkzeuge Das auf der vorgenommenen Ist Analyse beruhende Anwendungsfalldiagramm des zu entwickelnden Pizzaservicesystems ist in Abb 35 aufgef hrt Dem Anwendungsfalldiagramm kann eine Gruppierung also gleichartige Handlungen an hnlichen Datens tzen entnommen werden Diese bilden die ersten Anhaltpunkte f r Werkzeuge Die Anwendungsf lle Kunden suchen Kunden anlegen Kunden l schen und Kunden pflegen sind zusammengeh rige Anwendungsf lle hier werden Kundendaten bearbeitet Die Anwendungsf lle Angebot suchen Angebot ndern Angebot anlegen und Angebot l schen bearbeiten Angebotsdaten Dies legt nahe Kundendaten und Angebotsdaten als Materialien zu betrachten Dieser Betrachtungsweise nach k nnen zwei elementare Werkzeuge Kundenverwaltungswerkzeug und Angebotsverwaltungswerkzeug identifiziert werden Pr sentation und Manipulation von Kundendaten und Angebotsdaten sind ausschlie lich ber diese Werkzeuge m glich Kundendaten z B k nnen ber das Kundenverwaltungs
96. estellungDetails cs oder KundenListe cs sein muss Wenn also der Code nicht allgemein in der Aktion geniert werden kann so w re es als zweite M glichkeit die Codegenerierung nach M glichkeit B zu untersuchen M glichkeit B geniert den Code f r den Aufruf der Folgemaske in der vorigen Maske Im Beispiel der Abb 55 w rde das bedeuten dass in der Maske Hauptmen cs selbst der Code hinterlegt wird der daf r sorgt dass beim Klicken auf Bestellung die Maske Bestellungsliste cs und beim Klicken auf Kunden die Maske Kundenliste cs aufgerufen werden In der Maske Hauptmen cs den Code f r den Aufruf zu erzeugen scheint also in diesem Fall gut zu funktionieren Funktioniert dies auch in den meisten F llen so gibt es auch hier wieder Masken wo die Codeerstellung des Aufrufs der Folgemaske nicht in der Maske selbst erzeugt werden kann In Abb 55 wird die Maske Kunden cs in zwei Zust nden verwendet W rde nun also der Code der Folgemaske in der Maske Kunde cs hinterlegt werden so w re nicht klar was die Folgemaske sein wird im Falle das Speichern geklickt w rde Speichern Click f hrt bei dem Zustand KundeBestellung zur ck zu BestellDetails cs w hrend beim Zustand Kunde zu KundenListe cs gegangen werden muss Der Code f r den Aufruf der Folgemaske w rde also bei Kunden cs dazu f hren dass f r Speichern Klick keine klare Folgemaske definiert werden kann ohne zu ber cksichtigen in welchem Zustand wir uns gerade befinden Dieses Pr
97. ette ist sowohl bei Jigloo als auch beim GUI Builder von Visual Studio gut erreichbar Die Bedienung des GUI Builders in Visual Studio ist sehr praktisch Hier werden im Gegensatz zu Jigloo mehrere Operationen zum Einf gen von GUI Komponenten auf dem Designer unterst tzt Ein weiterer Vorteil in der Bedienung bei Visual Studio liegt eindeutig in der M glichkeit die Gr e einer GUI Komponente direkt beim Erzeugen beliebig zu definieren so dass sie nicht nachtr glich ge ndert werden muss 2 4 4 Fazit Die Ergebnisse der Analyse haben dazu gef hrt dass wir uns f r Visual Studio entschieden haben Der Hauptgrund ist die Flexibilit t die durch die M glichkeit der Programmierung und der Codegenerierung in mehreren Sprachen gegeben ist Der Anwender kann die 24 Programmiersprache w hlen die f r eine Probleml sung am besten geeignet ist er ist in Grenzen nicht an eine bestimmte Programmiersprache gebunden Au erdem ist der GUI Builder in Visual Studio ein fester Bestandteil der Entwicklungsumgebung und erfordert somit keine weiteren Installationen Dar ber hinaus bietet der GUI Builder in Visual Studio dem Anwender mehr M glichkeiten bei der Bedienung Der Anwender ist somit nicht an eine bestimmte Vorgehensweise zum Erzeugen von GUI Komponenten gebunden 2 5 Zustandsdiagramm Editoren Im Rahmen dieser Analyse haben wir uns auf die Zustandsdiagramm Editoren von Together Together und MS Visio Visio2003 beschr nkt Die gro e
98. frei erh ltlich Die Entwicklungsumgebung unterst tzt die Entwicklung von Anwendungen f r die Net Plattform Es werden unter anderem die Programmiersprachen Visual Basic C J und C unterst tzt 22 Oberfl che gui_test Microsoft Visual J NET Entwurf Formi jsl Entwurf la xl Datei Bearbeiten Ansicht Projekt Erstellen Debuggen Daten Format Extras Fenster Hilfe U Sug eeoa p Debug vi rd Nue Beste aa az E ls oa Et Toolbox A x Objektbrowser Startseite Form1 jsl Entwurf 4 b x Projektmappen Explorer qui_test 4 X Daten calla Komponenter T Projektmappe gui_test 1 Projekt Windows Forms S EH gui_test Zeiger El ba Verweise 5 EES W AssemblyInfo jsl A Form1 jsl ab Button bi TextBox A Label B MainMenu M CheckBox RadioButton GroupBox E PictureBox i Panel ES ListBox E checkedListBox o Projektmappen Ex 24 Klassenansicht ComboBox e 57 DataGrid Eigenschaften a 3 ListView Formi System Windows Forms Form v 23 TabControl i E 7 B TreeView Font Microsoft Sans Serif 4 Zwischenablage v ForeColor MM Controlrext Allgemein FormBorderStyle Sizable RightToLeft No Ausgabe 2x Text Formi D Ei Text Der Text im Steuerelement Y Aufgabenliste El Ausgabe I Eigenschaften Dynamische Hilfe Bereit Abb 14 integ
99. gegeben werden abh ngig vom Dialog eine Inkarnation festzulegen F r eine fr he Simulation und damit ein fr hes Prototyping ist die Betrachtungsweise der Inkarnationen der Masken noch unn tig Teilweise ist es in dieser fr hen Phase sogar noch nicht mal bekannt ob und welche Inkarnationen f r eine Maske zu erwarten sind In den sp teren Etappen der Softwareentwicklung ist es jedoch in einigen F llen unerl sslich Inkarnationen f r die Masken zu bestimmen sofern aus dem Zustandsdiagrammmodell der Code f r Dialogwechsel automatisch generiert bzw zur Laufzeit der Dialogwechsel bestimmt werden soll Da die aktuelle SUIT Version den Dialogwechseln nicht automatisiert und diese Aufgabe dem SUIT Anwender berl sst siehe dazu Abschnitt 9 2 4 ist die aktuelle Zustandsdiagrammnotation ohne die Informationen ber die Inkarnationen der Masken v llig ausreichend Die fehlende M glichkeit mit der SUIT Zustandsdiagrammnotation Informationen ber die Inkarnationen der Masken abzulegen kann sobald der SUIT Anwender die Dialogwechsel in seinem Benutzungsschnittstellensystem einprogrammiert f hren dazu dass das Zustandsdiagrammmodel seine Konsistenz verliert In den sp teren Phasen ist also damit zu rechnen dass die Konsistenz zwischen Modell und Benutzungsschnittstelle dadurch verloren geht 10 3 Fazit Die n chste Version von SUIT kann dahingehen erweitert werden das sie Hierarchien unterst tzt Dies bietet dem Anwender die M gl
100. gn Serialization Namespace In SUIT sind beide Klassen Zustandsdiagramm und ZustandsdiagrammElement von Component abgeleitet und erben somit die Funktionalit t der von Component implementierten Klassen F r die berf hrung der CodeDom Struktur in Programmiercode dienen die in den System CodeDom Compiler Namespace bereitgestellten Funktionen System CodeDom Com piler Namespace enth lt Klassen f r das Generieren und Kompilieren von Quellcode in einer unterst tzten Programmiersprache Das Zustandsdiagramm ist in SUIT Sprachunabh ngig realisiert Dies wird durch die Benutzung 62 von CodeDom von Net erm glicht Im Folgenden wird ein Ausschnitt des in SUIT generierten Codes f r das Zustandsdiagramm aus Abb 30 gezeigt startzustand zustand Maskel cs suchen Click suchen Maske2 cs Abb 30 Zustandsdiagramm public class Beispiel SUIT ZustandsdiagrammEditor Zustandsdiagramm private SUIT ZustandsdiagrammEditor Startzustand startzustandl private SUIT ZustandsdiagrammEditor Zustand zustandl private SUIT ZustandsdiagrammEditor Zustandsuebergang zustandsuebergangl region Zustandsdiagramm Designer generated code private void InitializeComponent this startzustandl new SUIT ZustandsdiagrammEditor Startzustand this zustandl new SUIT ZustandsdiagrammEditor Zustand this zustandsuebergangl new SUIT ZustandsdiagrammEditor Zustandsuebergang startzustandl this startzustandl BackColor
101. halb des Zustandsdiagramms wurde eine Maske zugeordnet Zu Beginn befindet sich die Benutzungsschnittstelle im Zustand bereit zur Suche um die zu bearbeitende Tupelmenge durch den Benutzer spezifizieren zu lassen Angebotssuche Suchkriterien eingeben Bestellnummer Name Kategorie Preis zur ck Suchen Abb 37 Maske der Angebotsuche Durch das Bet tigen der Taste suche in der Maske der Angebotssuche Abb 37 wird die Aktion Angebot_suchen angesto en Die Benutzungsschnittstelle gelangt in den Folgezustand Anzeige der Angebotsdaten Dieser ist der zentrale Zustand des Zustandsdiagramms von dem aus die verschiedenen Operationen wie Angebot ndern Angebot l schen usw ausgef hrt werden k nnen Anbebotsanzeige Gefundene Angebote anlegen loschen bearbeiten zur ck 81 Abb 38 Maske der Angebotanzeige Durch das Bet tigen der Taste anlegen in der Maske der Angebotanzeige Abb 38 wird die Aktion geheZu_angebot_anlegen angesto en Die Benutzungsschnittstelle wechselt in den Zustand bereit zum Angebotsanlegen hier sind nur noch der Abbruch oder das Erfassen m glich Beide Tasten in der Maske Angebotserstellung in Abb 39 sto en jeweils eine Aktion an und f hren zum Zustand Anzeige der Angebotsdaten zur ck Angeboiserstellung Angebotdaten pflegen Bestellnummer Name Kategorie Preis Beschreibung abbrech
102. hen Suchkriterien Da Martina sich erst einmal einen grunds tzlichen berblick ber ihr Themengebiet verschaffen m chte gibt sie im Eingabefeld suchen den Text Dinosaurier ein und klickt mit der Maus den Button suche an Kurze Zeit sp ter pr sentiert das System die Ergebnisse in einer Liste mit mehreren Eintr gen Neben interessanten Titeln wie australische Dinosaurier finden sich darin auch weniger relevante Titel Martina klickt auf den Titel eines f r ihr Referat n tzlich erscheinenden Buches notiert sich die Signatur und geht zu den Regalen hin ber 8 3 Testverlauf Als Kriterien f r die Auswahl der Testpersonen legten wir fest dass sie Informatik oder technische Informatik studieren und die Vorlesung Software Engineering besuchen oder 91 besucht haben Auf diese Weise sollten nur Testpersonen ausgew hlt werden die Kenntnisse in der Modellierung und in Prototyping mitbringen Vor dem Usability Test fand ein Vorgespr ch statt Anhand eines kleinen mit SUIT gestalteten Beispiels wurde die Testperson mit der Methode Benutzungsschnittstellen in Form von Zustandsdiagrammen und Fensterentw rfen zu modellieren und mit der Bedienung von SUIT vertraut gemacht Anschlie end erhielt die Testperson die Aufgabe die sie selbst ndig zu l sen hatte Nach jedem Test fand dann ein Nachgespr ch statt in dem die Testperson einzeln ber die im Folgenden genannten Punkte befragt wurde Das Nachgespr ch l sst sich in drei Ha
103. hen wird auch das Verhalten der Testperson aufgezeichnet Zu diesem Zweck sind im Usability Labor mehrere Kameras aufgestellt W hrend der Aufnahme kann die Testperson durch lautes Denken ihre Eindr cke bei der Benutzung von SUIT schildern w hrend sie die Aufgabe l st Im Usability Labor werden diese Schilderungen durch Ton und Videoaufnahmen aufgezeichnet Aus den spontanen u erungen der Testperson kann man bei der Auswertung Schl sse dar ber ziehen wie die Testperson mit SUIT zurechtgekommen ist Au erdem findet nach jedem Test ein Nachgespr ch statt in dem die Testperson ihre Erfahrungen mit SUIT schildern und Verbesserungsvorschl ge u ern kann Insbesondere kann sie Auskunft dar ber geben an welchen Stellen sie Schwierigkeiten bei der Benutzung hatte All diese Beobachtungen und u erungen flie en in die Auswertung des Usability Tests ein 8 4 1 Erste Testperson Die Testperson hat noch keine Erfahrung mit der Entwicklungsumgebung Visual Studio Sie hat bereits einmal Zustandsdiagramme erstellt jedoch nicht im Zusammenhang mit Benutzungsschnittstellen und nicht in der Kombination von Zustandsdiagrammeditor und GUI Builder wie sie in SUIT vorliegt Bisher hat ihr eine Methode oder Vorgehensweise gefehlt mit der sie schnell und einfach Prototypen erstellen kann Die Kombination von GUI Builder und Zustandsdiagrammeditor und somit die M glichkeit Zust nden Masken zuzuordnen ist ihr zug nglich und erscheint ihr sehr i
104. hnittstelle besteht aus einer Vielzahl einzelner Elemente wie z B der Handhabung des Dialogwechsels siehe Abschnitt 2 2 5 und der Analyse der Benutzereingaben etc Alle Elemente zu ber cksichtigen ist wie bereits erw hnt nicht unser prim res Ziel Wir verzichten z B auf die Auswertung von Benutzereingaben wie sie Denert in Abschnitt 2 2 6 vornimmt Die Simulation eines Systems an seiner Benutzungsschnittstelle soll eine vertraute Anschauung der Bildschirmmasken und abl ufe bieten Um das dynamische Verhalten einer Benutzungsschnittstelle in den fr hen Phasen der Softwareentwicklung zu beschreiben ist die Auswertung von Benutzereingaben nicht erforderlich da zu diesem Zeitpunkt die dahinter stehende Funktionalit t noch nicht detailliert bekannt ist Von uns werden ber cksichtigt e Zustandsdiagramme Diese beschreiben das dynamische Verhalten einer Benutzungsschnittstelle Zustandsdiagramme bestehen aus Zust nden und Zustands berg ngen Bei den Zust nden unterscheidet man zwischen normalen Zust nden und dem Anfangzustand e Aktivit t ist eine Operation die beim Eintritt in einem Zustand ausgef hrt werden Es handelt sich hierbei um einen Verweis auf dem den Zustand zugeordneten ausf hrbaren Maskencode e Ereignisse dies stellt bei unserem Verfahren die Entsprechung zu den virtuellen Tasten Denerts dar Durch ein Ereignis wird eine Information an das System bertragen Ein Beispiel f r ein Ereignis k nnte z B das Be
105. hode Color backColor Die Hintergrundfarbe die hinter den Elementen ist Wird oft gebraucht f r das Reversible Feedback Point screenOffset Dieses Offset kann zu den Elementkoordinaten addiert werden um sie zu den globalen Koordinaten zu konvertieren so dass mit diesen Koordinaten die DrawReversible Methode in ControlPaint direkt verwendet werden kann Point mouseOffset Das aktuelle Offset von der Maus zur der Position wo der Drag begonnen hat Point scrollPos Die Scroll Position auf die umgerechnet werden soll Diese Position ist bereits vom Zoomfaktor ber cksichtigt worden und kann einfach zum Punkt addiert werden Float Zoom der Zoomfaktor auf den umgerechnet werden soll Point initialPoint Der Punkt an dem dieser Drag initialsiert wurde zu dem Zustandselement in der Y Richtung Tabelle 14 Parameter von DrawDragFeedback Drag public abstract void Drag object hitObject int x int y Point initialPoint Drag wird aufgerufen am Ende eines erfolgreichen Drags um die neue Position Gr e eines Zustandselements zu aktualisieren Die X und Y Werte sind relativ zu dem Drag so dass sie einfach zu den Koordinaten des Komponents hinzuaddiert werden k nnen Das Objekt dass von GetHitTest zur ckgeliefert wurde wird weitergegeben so dass die Methode Drag wei ob die Komponente vergr ert verschoben usw werden soll Parameter Beschreibung object hitObject
106. ichen Automaten kann daher jedem Zustand eine Maske zugeordnet werden F r eine Anwendung dieses Ansatzes ist eine ber zeichnerische Modelleditoren hinausgehende Unterst tzung durch ein Werkzeug sinnvoll Ein Schritt in diese Richtung ist die Implementierung eines graphischen Editors der die zustandsbasierte Modellierung von 30 Benutzungsschnittstellen unterst tzt Der Editor sollte dar ber hinaus ber einen integrierten GUI Builder zur Gestaltung der graphischen Oberfl che verf gen Auf dieser berlegung basiert die Idee zu SUIT Dieses Werkzeug bereichert die Visual Studio Umgebung um einen Zustandsdiagrammeditor mit dem integrierten GUI Builder von Visual Studio eine Simulationskomponente und einen Codegenerator Siehe 1 2 SUIT bietet damit die M glichkeit das dynamische Verhalten von Benutzungsschnittstellen auf Basis von Zustandsdiagrammen und Fensterentw rfen zu modellieren das entstandene Modell zu simulieren und aus dem Modell das Codeger st f r eine Fassade in einer Net Sprache zu generieren Die Simulationsm glichkeit erm glicht eine explorative Vorgehensweise Ziel ist es das Systemverhalten unter dynamischen Aspekten aufzuzeigen Es wird ein Prototyp als Kommunikationsmedium entwickelt der dazu dienen soll die Anforderungen an das zu implementierende System zu verstehen und zu verfeinern Durch die Visualisierung anhand der Simulation erh lt der Anwender ein Bild des zuk nftigen Systems und kann somit f
107. ichkeit sein Modell zu strukturieren um bersichtlichkeit in gr eren Projekten zu gew hrleisten Die Konsistenzerhaltung zwischen dem Modell und der Benutzungsschnittstellen k nnte ein weiteres wichtiges Ziel der n chsten SUIT Version sein Hierf r m sste die aktuelle SUIT Zustandsdiagramm Notation um die Modellierungsm glichkeit von dialogablaufsteuernden Aktionsr ckgabewerte und Inkarnationen der Masken erweitert werden Dialogablaufsteuernde Aktionsr ckgabewerte k nnen mit der Einf hrung der Statecharts W chter Bedingung Harel 1987 realisiert werden Es sollte bei diesen Erweiterung immer ber cksichtig werden dass die aktuellen positiven Eigenschaften von SUIT wie z B die M glichkeit in den fr hen Etappen der Softwareentwicklung zu Simulieren nicht verloren gehen 111 11 Resume Im Rahmen dieser Bachelor Arbeit wurde SUIT entwickelt In SUIT kann das dynamische Verhalten einer Benutzungsschnittstelle mit Hilfe von Zustandsdiagrammen und Fensterentw rfen modelliert werden Das Modell einer Benutzungsschnittstelle kann in SUIT simuliert und aus dem Modell automatisch Code in Form einer Fassade generiert werden Die Modellierung von Benutzungsschnittstellen mit endlichen Automaten und Fensterentw rfen wird in der Literatur abgesehen von ein paar Ausnahmen wie Denert in Denert 1992 kaum angesprochen Auch ergab die im Rahmen der Marktanalyse durchgef hrte Suche nach einem existierenden Tool dass die Methode der Benut
108. icht nur als Vorlage dienen sondern gewinnbringend f r die Weiterentwicklung einer Benutzungsschnittstelle eingesetzt werden Ziel ist es also die Modellierung von Benutzungsschnittstellen mehr in den Softwareentwicklungsproze zu integrieren und damit den Nutzen eines Modells zu steigern 1 2 Vision 1 2 1 Methode Beim Entwurf von Benutzungsschnittstellen geht ein Entwickler gew hnlich so vor dass er ein Modell ihres Verhaltens entwirft er skizziert bildhaft die Masken und legt die Reihenfolge ihres Ablaufs fest Abb 1 zeigt ein m gliches Beispiel solch eines Modells Buchsuche 1 Buch 2 Buch Abb 1 Literatur Suche Abb 1 beschreibt die Dialogabl ufe der Literatur Suche in Form von Masken Die Benutzungsschnittstelle befindet sich zu jedem Zeitpunkt in einer von mehreren Masken Benutzereingaben f hren dazu dass zwischen den Masken hin und her navigiert werden kann Die Skizze der Maske Buchsuche im Beispiel besitzt ein Eingabefeld in dem der Suchbegriff eingegeben wird Klickt man auf den Button Suche so gelangt man in die n chste Maske Buchliste Hier werden alle zu dem Suchbegriff passenden B cher aufgelistet Wird nun ein Buch aus der Liste ausgew hlt wechselt man durch einen Klick auf Details zu der Folgemaske Buchinfo in der die Details des ausgew hlten Buches angezeigt werden Ein solches Modell wie das beschriebene entsteht intuitiv allein aufgrund des Versuchs die Abl ufe in einer Benu
109. ige ana 82 Abb 39 Maske der Angebotserstellung mortis lic desa iiageciiirbiciia n 82 Abb 40 Maske der Angebotsdatenpflege oooocconnncccnoncccnonccononcnononcnonnncnonnncnononcnonnccnnnnccnnnncnnns 82 Abb 41 Diagramm der Benutzungsschnittstelle des Kundenverwaltungswerkzeugs 83 ADbb 42 Maske der Kundens che od een 84 Abb 43 Maske der Kundenanzeigen een a 84 Abb 44 Maske der Kundenerstell une essen en Besen 85 Abb 45 Maske der Kundenpflese u A ELLE 85 Abb 46 Maske der Bestellung ask 86 Abb 47 Startmaske des Gesamtsystems Pizzaservice uursnscssssesssssenssnnennsnennnnnnnnnennnnnannnn 87 Abb 48 Diagramm der Benutzungsschnittstelle des GesamtsysteMS ooooocccnoncccnocccononccnnnnnnnns 88 Abb 49 Ein Ausschnitt der Fassade zum Zustandsdiagramm in Abb 48 89 Abb 50 Pizzasystem in der Simulationsansicht von SUIT ursersnesnnennnnessneesnneennen 89 Abb 51 L sung der ersten Tesiperson ans eeln 94 Abb 52 L sung der zweiten Testperson anussah anna 95 Abb 53 L sung der dritten Testperson anal e ee 96 Abb 54 L sung der vierten Testpers n cintia tania derribada 97 Abb 55 SUIT Zustandsdiagrammbeispiel 200022000022000nssnsensennnnnnnennnneennnnnnnn ann 101 Abb 56 Darstellung eines Login Verfahren in Form eines Interaktionsdiagrammes 108 Abb 57 Darstellung eines Login Verfahren in SUIT Zustandsdiagramm Notation 108 Abb 58 Login Verfahren
110. im L schen von GUI Komponenten werden Best tigungsfenster angezeigt die im Falle einer L schung mit OK best tigt werden m ssen Wenn mehrere GUI Komponenten erzeugt werden m ssen wirkt diese st ndige Abfrage st rend und macht die Bedienung unkomfortabel Codegenerierung Durch die Formatierung mit Hilfe von Tabulatoren l sst sich der erzeugte Java Code bersichtlich und anschaulich darstellen private void initGUI try setDefaultCloseOperation WindovConstants DISPOSE ON CLOSE getContentPane setLayout null jButtoni new JButton getContentPane add jButtoni jButtonl setText jButtonl jButtonl setBounds 28 21 140 28 jButton2 new JButton getContentPane add jButton2 B jButton2 setText jButton2 jButton2 setBounds 217 21 140 25 setSize 400 300 catch Exception e e printStackTrace Abb 12 Von Jigloo generierter Code Ausschnitt einer GUI mit 2 JButtons Abb 12 stellt einen generierten Code Ausschnitt von Jigloo dar Die dazugeh rige Maske besteht aus zwei JButtons JButtonl A und JButton2 B In Jigloo werden alle zu einer erzeugten GUI Komponente geh rigen Codestellen in geschweifte Klammern gesetzt Wird z B der JButtonl entfernt so wird der dazugeh rige Code Block A gel scht Manuell generierter Code innerhalb dieser Klammernbl cke gehen beim L schen der betreffenden GUI Komponente daher verloren 21 private void initGUI tr
111. in SUIT Zustandsdiagramm Notation Erweitert 109 115 Tabellenverzeichnis Tabelle 1 Notwendige Anforderungen an SUIT 2uc22uursunesnneennnensnersnnennnennnnnsnnen nennen 18 Tabelle 2 Neu erkannte Anforderungen aus Visio und Together uuesssssnesenenenn 28 Tabelle 3 Die Anforderungen an SUIT una usa a sen en 46 Tabelle 4 Parameter von draw n E ini a 66 Tabelle 5 Parameter von DrawCreateDragFeedback 240422440422000sssnnnnnnnenennnenen 68 Tabelle6 Paramelerson delle 2a As 69 Tabelle 7 Parameter von initialize rss pa an 69 Tabelle 8 Statische Variablen der Klasse ZDiagrammElementDesigner e 70 Tabelle9 Parameter von Gte is 71 Tabelle 10 Parameter von ds rare 71 Tabelle LI Parameter VON GE CUE ale 12 Tabelle 12 Parameter von DrawAdornments 2200222000220000ssnsonssnnenssnnnnnnnnnnnnnnnnnanennnanenn 13 Tabelle 13 Parameter von DrawDragFeedback oooonoconononncnonnnonnonocnnnnonnoonccnonocononoconnnec nnoccnos 74 Tabelle 14 Parameter von Di ii 74 Tabelle 15 Parameter von onClick aiii is 75 116 Index A ARONA A AA id A 12 13 30 31 33 34 35 36 37 38 40 e TR 11 12 38 39 Anwendungsfalldiagramm ooocococcccccccncocnoncncnnnnnnnnccnnnnnnonnncn conca nrnnn nena nnnnncnnrnnninincnnenicn 76 78 79 ATENITEKIUR re di sd 48 49 50 51 52 53 B Benutzereingaben s npn ie a A AL fe 8 13 36 40 Benutzungsschnittstelle
112. ind mit virtuellen Tasten siehe Abschnitt 3 3 2 beschriftet Aktionen werden dadurch ausgel st dass ein bergang stattgefunden hat Zwischen zwei Zust nden k nnen eine bis mehrere Aktionen ausgef hrt werden Im Unterschied zu den endlichen Automaten werden Aktionen in einem Interaktionsdiagramm als eigenst ndige Elemente in Form eines Rechteckes dargestellt Eine Aktion kann mehrere Ausg nge besitzen Jeder Ausgang ist mit einem Aktionsergebnis versehen 31 Im Folgenden wird in Abb 17 das Interaktionsdiagramm eines Geldausgabeautomaten aus Denert 1992 beispielhaft dargestellt GA gt Ger t geschlossen nok Scheckkarte pr fen ok Ger t Ger t ffnen schlie en Abbruch 2 Ghz nok Geheimzahl pr fen ok 7 Geheimzahl ok Kto Kontostand drucken Abbruch 01 Zahlungsbereit B Geld ausgeben Abb 17 Interaktionsdiagramm eines Geldausgabeautomaten aus Denert 1992 Abbruch 3 Aus st Neben der graphischen Notation in Form von Interaktionsdiagrammen benutzt Denert aus Gr nden der Ubersichtlichkeit einen Interaktionsdiagramm Code um das Modell exakter zu 32 spezifizieren und es nicht mit Details und Sonderf llen zu berladen Im Interaktionsdiagramm Code werden alle Zust nde des Interaktionsdiagramms angefangen vom Initialzustand aufgelistet F r jeden Zustand werden alle ausgehenden Zustands berg nge erfasst und die durch sie angesto enen Aktionen sowie der Folgezustand beschrieben Ein Inter
113. ine bestimmte Reihenfolge der Arbeitsabfolgen vor Abb 8 beschreibt die g ngige Vorgehensweise Wichtig ist dass die Anforderungen an eine Benutzungsschnittstelle erkannt worden sind um daraus ein Modell ihres dynamischen Verhalten in SUIT modellieren und aus diesem einen Prototyp generieren zu k nnen Ein detailliertes Verst ndnis der Anforderungen ist jedoch keine Vorraussetzung da SUIT aus einem Modell einen Prototyp erstellt um diesen dem Anwender fr hzeitig vorzuf hren und mit ihm die Anforderungen der Benutzungsschnittstelle abzustimmen 15 In diesem Tool werden Dialogabl ufe der bereits identifizierten Werkzeuge in Form von Zustandsdiagrammen modelliert und den Zust nden Bildschirmmasken zugeordnet Das Tool generiert aus dem entstandenen Modell Code Au erdem kann das Modell simuliert werden Der praktische Einsatz von SUIT wird in der Fallstudie siehe Kapitel 7 detailliert beschrieben 1 3 Aufbau der Arbeit Im zweiten Kapitel wird die Notwendigkeit der Realisierung von SUIT begr ndet Im ersten Schritt wird eine Marktanalyse unternommen die feststellen soll ob bereits Tools f r die Erzeugung von Benutzungsschnittstellen und Fensterentw rfen auf dem Markt existieren Da diese Untersuchung zu keinem positiven Ergebnis kommt werden im zweiten Schritt auf dem Markt existierende Komponenten von SUIT GUI Builder und Zustandsdiagramm Editor analysiert Die n chsten drei Kapitel dienen der theoretischen Grundlegung der
114. ines Prototyps in SUIT aus ihrer Sicht sehr schnell und einfach vonstatten Die Erstellung 94 von Prototypen in Form von Zustandsdiagrammen und Fensterentw rfen fiel der Testperson nicht schwer Die Testperson bewertet es sehr positiv dass in der Fassade einprogrammierter Code durch eine nderung im Zustandsdiagramm nicht verloren geht Die Bedienung in SUIT weist aus Sicht der Testperson keine M ngel auf W re SUIT nicht in Visual Studio integriert w rde sie das Tool gerne benutzen F r die L sung der Usability Aufgabe hat die Testperson dreizehn Minuten gebraucht siehe CD Usability test02 avi So sieht das Ergebnis der Testperson aus CD Usability Test 2 Test 2 sIn startzustand En zustan SucheEingabe cs Ergebnisseanzeigen cs g g OsePI3EOD 7 4919 Luopag zustand Detail nzeige cs Abb 52 L sung der zweiten Testperson 8 4 3 Dritte Testperson Die Testperson bringt keine Erfahrung in Visual Studio mit Sie beurteilt die Umgebung als gew hnungsbed rftig und zu berladen F r die Erstellung von Zustandsdiagrammen hat die Testperson bisher Together oder Poseidon benutzt Au erdem besitzt sie Erfahrung mit der Entwicklung von Prototypen sie hat diese allerdings immer manuell erstellt was im Verh ltnis zu SUIT mehr Programmieraufwand erfordert hat Nach Aussage der Testperson werde mit SUIT ein einfaches Design erm glicht Die Simulation biete ihr eine gute Hilfe Die Modellierung in F
115. irtual und kann in einer von ZDiagrammElementDesigner abgeleiteten Klasse berschrieben werden Parameter Beschreibung object hitObject Ein Objekt dass von einer GetHitTest Methode zur ckgeliefert wurde Tabelle 12 Parameter von GetCursor 22 DrawAdornments public abstract void DrawAdornments Graphics g bool primary Die Methode DrawAdornments wird aufgerufen wenn das Element selektiert wurde Diese Methode zeichnet den Selektionsrahmen um das Element Parameter Beschreibung Graphics g Das Graphics Objekt auf das der Selektionsrahmen zu zeichnen ist Bool primary primary ist true wenn das selektierte Element das prim re Selektierte Element ist Dieser Parameter ist bei Mehrfachauswahl Interessant Tabelle 13 Parameter von DrawAdornments DrawDragFeedback public abstract void DrawDragFeedback object hitObject Color backColor Point screenOffset Point mouseOffset Point scrollPos float zoom Point initialPoint DrawDragFeedback wird benutzt um den Drag Feedback Abb 34 beim Resizing f r den User aufzuzeichnen DrawFeedback sollte so zeichnen das der erste Aufruf das Feedback an der angegebenen Position zeichnet und der zweite Aufruf es wieder l scht Siehe dazu DrawCreateDragFeedback Hier k nnen die Methoden der Klasse ControlPaint benutzt werden da diese Methoden wie DrawReversibleLine oder DraReversibleFrame unterst tzt
116. ist wenn das Element in dem bergebenden Rechteck r enthalten ist ansonsten false Parameter Beschreibung Rectangle r Das Rechteck das den Bereich beschreibt in dem berpr ft wird ob dieses Element in diesem Bereich enthalten ist Tabelle 11 Parameter von IsInRect 71 Fallstudie CSharp Microsoft Visual C NET Entwurf test cs Entwurf d laj x Datei Bearbeiten Ansicht Projekt Erstellen Debuggen Daten Extras Fenster Hilfe a 0 40 iren oa dA p Debug rg aProvider DBABRL3 Beat amaia Ss je gt a EH Toolbox 2 X urf Kunde KundeNeu cs Entwurf AngebotlAngebotNeu cs Entwurf Angebot Angebot cs Entwurf test cs Entwurf Angebot amp 4 X Projektmappen Explorer Fallstudi AX Zustandsdiagrammeit Bess 3 8 h Zeiger H 1 Projektmappe Fallstudie CSharp 1 Projel 3 Zustand E EN Fallstudie CSharp Startzustand E E verweise 2 Zustandsueb E Angebot ustandsuebergang 8 Angebot cs amp Zustand 8 AngebotNeu cs Startzustand ES Angebotsanzeige cs 3 Zustandsuebergang startzustand E Angebotserstellung cs Angebotspflege cs El Angebotssuche cs Bestellung B A Kunde 8 Kunde cs Kundenanzeige cs Kundenerstellung cs KundeNeu cs Kundenpflege cs ES Kundensuche cs B App ico CHH AssemblyInfo cs E Fassade cs zustand2 7 zustand
117. iste rechts im Fenster aus 5 Geben Sie den Namen der Action dann in dieses Feld ein HandleCreated ds Methodenname der Action die ausgef hrt werden soll Abbrechen OK 6 Best tigen Sie nun mit dem Button OK Ihr Zustands bergang sollte nun erfolgreich den neuen Event und Action zugewiesen sein 4 9 L schen von Elementen aus dem Zustandsdiagramm Bearbeiten Ansicht Projekt x R ckg ngig Strg Z Markieren Sie das zu l schenden Element im Zustandsdiagramm Designer und dr cken Sie entweder die Korb Strg C Taste entf oder w hlen das Men Bearbeiten gt L schen y aus N X L schen Entf 135 5 Fassadengenerierung Bevor die Fassaden Klasse generiert werden kann muss ein Zustandsdiagramm erzeugt und in der Design Ansicht ge ffnet werden siehe Abschnitt 4 1 ACHTUNG Bedenken Sie jedoch dass die Fassadengenierung in der vorliegenden SUIT Version nur C Projekte unterst tzt Um eine Fassaden Klasse zu genieren gehen Sie wie folgt vor 1 Markieren Sie das Zustandsdiagramm in dem Sie auf eine freie Stelle der Zeichenfl che des Zustandsdiagramm Designers anklicken 2 Im Eigenschaftsfenster sollte nun die Eigenschaften des Zustandsdiagramms erscheinen und unterhalb der Liste eine Option Fassade erzeugen zu finden sein Eigenschaften n X Zustandsdiagramm2 SUIT Zustandsdiagramn Y DynamicProperties E Fassade erzeugen Simulieren Diagramm als BMP ST
118. iten ein die Simulation in der Ansicht des Zustandsdiagramms 93 ablaufen lassen und die Dialogabl ufe anhand des von ihm modellierten Zustandsdiagramms nachvollziehen Dem Kunden hingegen der in der Regel weniger an Details interessiert sei k nnte daher die Simulation in Form einer blo en Abfolge von Masken so wie sie ihn sp ter als Software vorliegt pr sentiert werden In der gesamten Video und Tonaufzeichnung auch der Formulierung ihrer Eindr cke wirkt die Testperson entspannt sie erledigte die Testaufgabe sicher und ohne Schwierigkeiten Insgesamt hat die Testperson zweiundzwanzig Minuten f r die L sung der Usability Aufgabe ben tigt siehe CD Usability testOl avi Im Folgenden wird in Abb 51 das Ergebnis der ersten Testperson aufgezeigt CD Usability Test 1 Test 1 sIn startzustand Formi cs estarten Click suchen 77 zustand zustand2 y cHeckedListBox1 Click ausw Ergebnis cs Buchauswahl cs Abb 51 L sung der ersten Testperson 8 4 2 Zweite Testperson Die Testperson hat noch nicht mit der Entwicklungsumgebung Visual Studio gearbeitet Sie ist dieser gegen ber reserviert und abgeneigt sie zu benutzen Als in hohem Ma e st rend empfindet sie die Toolbox in Visual Studio die den Designer verdeckt Die Testperson bringt Erfahrung in der Zustandsdiagrammmodellierung mit sie hat auch bereits einmal Prototypen erstellt Vor dem Hintergrund dieser Erfahrung geht die Erstellung e
119. ktion f hrt die Suche aus Es bietet sich also an das Zustandsdiagramm um Informationen der auszuf hrenden Aktionen anzureichern Buchsuche Buchliste Suche_click suche Do Buchsuche Do Buchliste GUI GUI Details_click zeigelnfoFuerBuch Buchinfo Do Buchinfo GUI Abb 6 Zustandsdiagramm Literatur Suche um die Aktionen angereichert Wie in Abb 6 dargestellt wurde das Zustandsdiagramm aus Abb 5 um die Aktionen erg nzt Suche_click z B l st die Aktion suche aus Ist das dynamische Verhalten einer Benutzungsschnittstelle erstmal in der in Abb 6 beschriebenen Form er ffnet es uns eine neue M glichkeit die der automatischen Codegenerierung Informationen an einem Zustandsdiagramm k nnen dazu benutzt werden 12 um automatisch Code zu generieren Die im Zustandsdiagramm aus Abb 6 definierten Aktionen suche und zeigelnfoFuerBuch lassen sich automatisch genieren und die dahinter liegende Funktionalit t Kann dann sp ter implementiert werden Es kann also eine Klasse automatisch erzeugt werden die alle Methodendeklarationen enth lt eine so genannte Fassaden Klasse Die Fassaden Klasse ist eine Schnittstelle zwischen der Interaktionskomponente und der Funktionskomponente Sie soll dazu dienen Implementierungsdetails zu verbergen So ruft die Interaktionskomponente Funktionen der Fassaden Klasse auf Diese wiederum ruft Funktionen der Funktionskomponente auf Abb 7 Diese Methode bietet dar ber hinaus den
120. le Out public Fassade TODO F gen Sie hier die Konstruktorlogik hinzu Wie im Code ersichtlich wird wurde f r das Zustandsdiagramm aus Abb 30 eine Fassade automatisch generiert Das Zustandsdiagramm besteht aus einem Zustands bergang vom Startzustandl zu Zustandl Auf dem Zustands bergang ist die Aktion suchen definiert Die Aktion findet man als Methodenrumpf in der Fassade wieder 6 4 4 Das Anzeigen von Eigenschaften in einem Eigenschaftsfenster Eigenschaften xl startzustand1 SUIT ZustandsdiagrammeEditor Startzustand X 4 E Name startzustand1 El Konfigurationen DynamicProperties E Sonstiges BackColor _ White Bezeichnung startzustand1 BorderColor MM Black Groesse 100 100 GUIReferenz WindowsApplication3 Maske1 cs Info Position 97 196 TextColor MA Red Textfont Arial 10pt Abb 31 Eigenschaftsfenster im Zustandsdiagrammeditor 64 Instance Variablen die ber getter und setter Methoden verf gen werden standardm ig als Eigenschaften im Eigenschaftsfenster angezeigt Mit der BrowsableAttribute Klasse kann definiert werden ob eine Eigenschaft im Eigenschaftsfenster Abb 31 angezeigt werden soll Der Zustandsdiagrammeditor zeigt im Eigenschaftsfenster die Eigenschaften nicht an die mit dem Browsable Konstruktor mit dem Wert false gekennzeichnet sind Standardm ig ist jede Eigenschaft mit dem BrowsableAttribute Konstruktor mit dem Wert true markiert Werden
121. lle von SUITE les Dil 66 6 3 1 ZustandsdiasrammBlement ss eine 66 6 5 2 2DiastammElementDesipner a an ass 69 0 0 Fazit ee Be See 75 Ball Studie E E E E E E E T EE 76 Tl Eleinte ein E e A ee 76 TZ Ise Analyse eiin EL A a A 76 7 3 Schrittweise Erzeugung des Prototyps coooccononoccnoncccnoncnononncconnnccnnnnccnnncnononcnnnncnnonnccnnnos 77 Tl Vorgehensweise a era 77 7 3 2 Identifikation der elementaren Werkzeuge oocoococnnococooncccnnancnnoncnonnnccnnnncnnonncnnnnnnos 79 7 3 3 Entwicklung der Benutzungsschnittstelle auf Basis eines Zustandsdiagramms 80 7 3 4 Angebotsverwaltungswerkzeug u 222uusssseessnnnensnnnennnnnennnnnnnnnnnnsnnnsnsnnnensnensnennnnn 80 7 3 5 Kundenverwaltungswerkzeug PA en 83 7 3 6 Bestellverwalt ngskombiwerkzeug ua aaa kenn 86 7 3 7 Integration der Werkzeuge zum Gesamtsystem uucsssessssesssnnenssnnnsnenenennnnennn nn 87 TA FAZIT een we ee See 90 A O OO O 91 SS O 91 8 2 Usability Aufgabe nun E R A EEE 91 8 3 Testverlauf ss ee een 91 A N E E A 92 8 4 1 Erste Testperson iia pd E E E ua 93 8 42 Zweite Testpersoi i sne a e E E E E A OAE 94 SE Dritte E sense ER 95 SAA Vierte Tesiperson arena 96 BI Far ee en ee ee 97 M glichkeiten und Grenzen von SUIT uni een 99 OS Einleitine A A A E 99 9 2 M glichkeiten von SUIT unse Rein 99 9 Erlauterung der Grenzen lassen ee 100 9 3 1 Verteilte Benutzungsschnittstellen 22252 a Me 100 9 3 2 Codegenerierung f r den Aufruf des FolgezustandS
122. llt Must have A12 Zustands berg nge Knickpunkte Erf llt Should have A13 Notizfeld nicht erf llt Nice to have A14 Selektieren Erf llt Must have A15 Selektieren des gesamten nicht erf llt Should have Zustandsdiagramms A16 Undo redo Erf llt Should have A17 Mehrfachselektion von Zust nden Erf llt Should have A18 Rastermuster Erf llt Should have A19 Zoom Erf llt Should have A20 Neuanlegen von Masken Erf llt Must have 55 A21 Zuordnung von Masken per Doppelklick Erf llt Must have A22 Zuordnung von Masken im Property Fenster Erf llt Must have A23 ndern von Masken Erf llt Must have A24 Property Ansicht Zustand Erf llt Must have A25 Property Ansicht Startzustand Erf llt Must have A26 Property Ansicht Zustands bergang Erf llt Must have A27 Position Property Zustand Erf llt Must have A28 Position Property Startzustand Erf llt Must have A29 Gr e Property Zustand Erf llt Must have A30 Gr e Property Startzustand Erf llt Must have A31 Text Property Zustand Erf llt Must have A32 Text Property Startzustand Erf llt Must have A33 Masken Property Zustand Erf llt Must have A34 Masken Property Startzustand Erf llt Must have A35 Line Color Property Zustand Erf llt Nice to have A36 Line Color Property Startzustand Erf llt Nice to have A37
123. lt eine Zustandsdiagrammelement Komponente dar ZustandsdiagrammElement stellt Methoden zum Zeichnen zum L schen und zur Initialisierung von Zustandsdiagramm Elementen bereit Zustandsdiagramm ist von Component abgeleitet Diese Klasse stellt ein Zustandsdiagramm dar Die Klasse Zustandsdiagramm verwaltet eine Liste von Zustandsdiagrammelementen Zustand ist eine Unterklasse der Klasse ZustandsdiagrammElement Sie stellt einen Zustand dar Sie implementiert die abstrakten Methoden von ZustandsdiagrammElement Startzustand erweitet die Klasse Zustand um eine Startzustandkomponente Zustandsuebergang ist von ZustandsdiagrammElement abgeleitet und stellt einen Zustands bergang dar In Zustandsuebergang werden die abstrakten Methoden von ZustandsdiagrammElement implementiert ZustandsdiagrammDesigner stellt einen Designer bereit der das Verhalten eines Zustandsdiagramms im Entwurfsmodus erweitert Der ZustandsdiagrammDesigner ist Bestandteil der Zustandsdiagramm Komponente und bietet dem Anwender die M glichkeit per Drag amp Drop Verfahren und ber Properties Einstellungen sein Zustandsdiagramm aufzubauen zu editieren und zu entwickeln Vom ZustandsdiagrammDesigner aus kann die Fassadengenerierung und die Simulation angesto en werden ZDiagrammElementDesigner ist eine abstrakte Klasse Sie stellt einen Designer bereit der das Verhalten einer Komponente vom Typ ZustandsdiagrammElement im Entwurfsmodus erweitert Sie bietet Methoden zum E
124. lt Nice to have A61 Simulieren eines Zustandsdiagramms Erf llt Must have A62 Loggen im Simulationsmodus Erf llt Should have A63 Simulationsansicht Erf llt Nice to have A64 Scrollen Erf llt Must have 56 A65 Generierung von Code Erf llt Must have A66 Generierung von Code in anderen Sprachen nicht erf llt Nice to have A67 Statechart Editor nicht erf llt Nice to have A68 GUI Masken Ereignisse den Erf llt Must have Zustands bergang zuweisen Tabelle 4 Umgesetzte Anforderungen 6 3 Programmstruktur Im Folgenden wird ein Ausschnitt aus dem Klassendiagramm von SUIT dargestellt Das vollst ndige Klassendiagramm befindet sich im Anhang Zustandsdiagramm Y ZustandsdiagrammDesigner Y Class Class Component ComponentDesigner Zustandsdiagramm lement X ZDiagramme lementDesiner Y Abstract Class Abstract Class Component ComponentDesigner Zustand E Zustandsuebergang Y ZustandDesigner Y ZustandsuebergangDesigner Class Class Class ZustandsdiagrammElement ZustandsdiagrammElement ZDiagrammElementDesigner ZDiagrammElementDesigner Startzustand Y FassadeGenerator E SimulationGUI Y Class Class Zustand Form Abb 27 Ausschnitt aus dem Klassendiagramm Abb 27 zeigt einen Ausschnitt aus dem Klassendiagramm von SUIT In diesem Ausschnitt sind bis auf die Vererbungsbeziehungen keine weiteren Beziehungen i
125. mmelement zu erweitern muss e eine von ZustandsdiagrammElement abgeleitete Komponente e cine von ZDiagrammElementDesigner abgeleitete Designerklasse implementiert werden 6 5 1 ZustandsdiagrammElement ZustandsdiagrammElement ist eine abstrakte Klasse Sie stellt eine Komponente dar Um SUIT um neue Komponenten erweitern zu k nnen muss diese Klasse geerbt werden Die Schnittstelle ZustandsdiagrammElement implementiert folgenden abstrakten Methoden draw public abstract void draw Graphics g Diese Methode draw dient zum Zeichnen von der Komponente Parameter Beschreibung Graphics g Das Graphics Objekt auf die die Komponente zu zeichnen ist Tabelle 5 Parameter von draw 66 DrawCreateDragFeedback public abstract void DrawCreateDragFeedback ZustandsdiagrammElement start Element Point startPoint ZustandsdiagrammElement endElement Point endPoint Point myScreenOffset Color backColor Point scrollPos float zoom Die Methode DrawCreateDragFeedback erm glicht dem Benutzer w hrend einer Drag amp Drop Operation beim Erzeugen einer Komponente ein Visuelles Feedback anzuzeigen Das Rechteck auf Abb 32 visualisiert ein Feedback beim Erzeugen eines Zustands per Drag amp Drop DrawCreateDragFeedback sollte so zeichnen das der erste Aufruf das Feedback an der angegebenen Position zeichnet und der zweite Aufruf es wieder l scht In DrawCreateDragFeedback bietet es sich an die Methode
126. n A65 Generierung von Code Generierung einer Fassade in c Must have A66 Generierung von Code in Generierung einer Fassade in allen Nice to have anderen Sprachen Net Sprachen A67 Statechart Editor Der Zustandsdiagramm Editor wird Nice to have auf ein Statechart Editor erweitert A68 GUI Masken Ereignisse Es muss die M glichkeit geben Must have den Zustands bergang zuweisen Ereignisse der GUI Maske den Zustands bergang zuzuweisen Tabelle 3 Die Anforderungen an SUIT 46 4 3 Fazit Es wurden die funktionalen Anforderungen an SUIT beschrieben und klassifiziert Kriterium der Klassifikation war ob Anforderungen konstitutiv oder optional sind d h durch SUIT erf llt werden m ssen oder m gliche Erg nzungen darstellen 47 5 SUIT Architektur 5 1 Einleitung In dem folgenden Kapitel soll die Architektur von SUIT beschrieben werden Durch die Integration in die Entwicklungsumgebung Microsoft Visual Studio NET sind gewisse Rahmenbedingungen f r die Architektur vorgegeben In Abschnitt 5 2 soll die architektonische Sicht beschrieben werden wie sich SUIT in die Entwicklungsumgebung integriert Im Abschnitt 5 3 wird dann auf den internen Aufbau von SUIT und seine Komponenten eingegangen und erl utert Abschnitt 5 4 behandelt die Architektur des Zielprogramms das mit Hilfe von SUIT entwickelt werden soll Im Abschnitt 5 5 folgt dann ein Fazit 5 2 SUIT Architektur Zusammenhang mit VS Net SUIT soll
127. n Ausgangspunkt sind die verschiedenen Felder und Feldinhalte des Dialogs f r den eine Aktion ausgel st wird In bestimmten Feldern werden Daten neu eingegeben ge ndert oder gel scht Dies bildet die Grundlage f r die Bearbeitung der entsprechenden Gesch ftsvorf lle durch welche wiederum mittelbar oder unmittelbar Sachbearbeiter mit Teilaufgaben beauftragt werden 35 Ef n n T Ef Eingabefeld Ef2 n A Gv Gesch tfsvorfall n neu eingegeben kK ge ndert Efm n Los gel scht Gvi X Gv2 x x X War X Gvn X Abb 18 Spezifikation einer Aktion mittels Entscheidungstabelle Denert 1992 Um die Abh ngigkeiten von Feldinhalten und Gesch ftsvorf llen bzw Sachbearbeiterauftr gen bersichtlich darzustellen kann die Entscheidungstabelle verwendet werden siehe Abb 18 F r jede Aktion eines Dialogs muss eine eigene Spezifikation erfolgen Die Entscheidungstabelle f r TJAD Aktionen Abb 18 enth lt zwei Teile den Bedingungs und den Aktionsteil Im Bedingungsteil obere H lfte werden die Felder untereinander aufgelistet deren Inhalte in der Aktion zu bearbeiten sind Es wird nun spaltenweise analysiert welche verschiedenen Eingaben neu eingegeben ge ndert gel scht f r diese Felder im Hinblick auf eine Aktion zusammenh ngen K nnen Im Aktionsteil untere H lfte werden die potentiell zu bearbeitenden Gesch ftsvorf lle evtl auch die unmittelbar anzusto enden Sachbearbeiterauftr ge untereinande
128. n Die Benutzungsschnittstelle gelangt in den Folgezustand Anzeige der Kundendaten Dieser ist der zentrale Zustand des Zustandsdiagramms von dem aus die verschiedenen Operationen wie Kunde anlegen Kunde l schen usw ausgef hrt werden k nnen H Kundenanzeige Gefundene Kunden anlegen l schen bearbeiten zur ck Abb 43 Maske der Kundenanzeigen Durch das Bet tigen der Taste anlegen in der Maske der Kundenerstellung in Abb 44 wird die Aktion geheZu_KundeAnlegen angesto en Die Benutzungsschnittstelle wechselt in den Zustand Bereit zum Kundenanlegen in der entsprechenden Maske sind nur noch der Abbruch oder das Erfassen m glich Beide Tasten sto en jeweils eine Aktion an und f hren zum Zustand Anzeige der Kundendaten zur ck 84 Kundenerstellung Kunde anlegen Vorname Nachname Telefonnummer Stra e Hnr PLZ abbrechen anlegen Abb 44 Maske der Kundenerstellung Vom Zustand Anzeige der Kundendaten mit der Maske in Abb 43 aus kann die Taste bearbeiten bet tigt werden Dies f hrt zu der Aktion geheZu_KundeBearbeiten Es wird zum Folgezustand Bereit zur Kundendaten nderung gewechselt In der entsprechenden Maske Abb 45 kann man ber die beiden Tasten abbrechen und speichern und die dazugeh renden Aktionen in den Zustand Anzeige der Kundendaten zur ckkehren Kundenpflege Kundendaten pflegen Wom
129. n Insbesondere bedanken wir uns bei unseren Betreuer Prof Dr J Raasch der uns mit seinen Ratschl gen und seiner Hilfe immer zur Seite stand Ebenso m chten wir uns bei Prof Dr rer nat C Klauck bedanken der als Zweitgutachter uns offen mit Ratschl gen und Anregungen geholfen hat Unser Dank richtet sich auch an die freiwilligen Tester die im Usability Labor sich an SUIT herangetraut haben und uns mit ihren Meinungen und Kommentaren bzgl des Tools weitergeholfen haben Inhaltsverzeichnis Einleitune usa A T7 LEMOA ee tds a a a do 7 I EP VISTO A A LES IFESPORNEEIEESSEIE EURER 8 1 2 1 Methode A akedunfels 8 E22V SION SUTE ee ee el 13 1 23 SUM Komp nenten iii bai 14 1 2 4 Email its cascos 13 13 Aufbauder ari 16 Marktanalyse O O 17 2 1 PACO A A E A A A AE A AA a E 17 2 2 Grobe Anforderungen latas 17 AA aa e e E E E AAE Aa 18 24 GUL B ilder spionne ada 18 A A A E E ROA 19 2 4 2 Integrierter GUI Builder von Microsoft Visual Studio Net ursneenn 22 2 4 3 Folgenins dd 24 DAA Fat ee id o eo eds ee le o ido 24 2 9 Zustandsdiagramm Editoren it A A A 25 23 1 E sine 23 29 2 MSY son en ans ee nee 26 2 5 3 Folgemine nun 21 28 VA a nenne an en E T 28 o Theorie sent A EN 30 TO 30 3 2 Benutzungsschnittstellen auf Basis von endlichen Automaten und Fensterentwirfen 30 3 3 Vorgehensweise mit Interaktionsdiagrammen oooooccnoncccnoncncnonnnononononononononcnnnnncconnccnnnnno 31 3 3 1 Interaktions
130. n Kreis zum Zustand hineinf hrt Bezeichnung Maske cs Abb 20 Startzustand 39 Transition Zustands bergang Ein normaler Zustands bergang Abb 21 wird als Pfeil zwischen zwei Zust nden visualisiert Ein rekursiver Zustands bergang Abb 22 f hrt zum Ausgangzustand zur ck Die Transitionsbeschriftung besteht aus einem Ereignis und einer Aktion Ereignis Aktion Bezeichnung Bezeichnung Maske cs P Maske cs Abb 21 Zustands bergang Bezeichnung Maske cs Ereignis Aktion Abb 22 Rekursiver Zustands bergang 3 5 Fazit Der zustandsbasierte Ansatz die Modellierung von Benutzungsschnittstellen mithilfe endlicher Automaten und Fensterentw rfe wird sowohl von Denert in seiner Vorgehensweise bei der Spezifikation einer Benutzungsschnittstellen als auch im Rahmen dieser Bachelor Arbeit zur Modellierung einer Benutzungsschnittstelle verfolgt Denert ber cksichtigt wie bereits erw hnt eine Vielzahl einzelner Elemente die f r die Spezifikation einer Benutzungsschnittstelle eigentlich unerl sslich sind Einige davon wurden in Abschnitt 2 2 beschrieben Er besch ftigt sich unter anderem mit der Handhabung eines Dialogwechsels und f hrt Entscheidungstabellen zur Analyse von Benutzereingaben ein z B f r die Spezifikation einer Aktion wie sie in Abschnitt 2 2 6 beschrieben wurde Der Schwerpunkt bei der Entwicklung von SUIT liegt auf der schnellen Prototypenerstellung und der automatischen Gen
131. n der Abbildung dargestellt Dies l sst sich auf die Benutzung von Attribut Klassen in Net begriinden Die Attribute Klassen ordnen einer Klasse vordefinierte Systeminformationen oder benutzerdefinierte Informationen zu siehe dazu msdn attribute Es handelt sich hierbei um Definitionen die in einer Klasse zwischen zwei eckigen Klammern beschrieben werden Die Klassem stehen also durch die Definition der Attribute Klassen miteinander in Beziehung Die in UML bekannten Beziehungen wie Aggregationen oder Kompositionen kann hier nicht immer definiert werden da die Beziehungen durch die Attribute Klassen zustande kommen 37 Die Klassen in SUIT lassen sich wie anhand des Klassendiagramms Abb 27 erkennbar grob in Designer und Zustandsdiagrammelemente einteilen Die Designer Klassen und die Komponentenklassen der Zustandsdiagrammelemente und des Zustandsdiagramms Jede Designer Klasse ist eine Klasse vom Typ ZustandsdiagrammElement oder Zustandsdiagramm zugeordnet Die Designerklasse ZustandsdiagrammDesigner z B ist der Klasse Zustandsdiagramm zugeordnet Die Designerklassen erweitern das Verhalten der Komponenten Zustandsdiagrammelemente und Zustandsdiagramm zur Entwurfszeit Sie bieten Operationen zum L schen Erzeugen und Editieren dieser Komponenten Die Komponentenklassen repr sentieren dagegen die Daten der einzelnen Zustandsdiagrammkomponenten ZustandsdiagrammElement ist eine abstrakte Klasse von Component abgeleitet Sie stel
132. n k nnen bereit zur Suche Anzeige der Kundendaten bereit zum Kundenanlegen Zustand ist eine Maske zugeordnet Das Zustandsdiagramm inkl der Zuordnung der Masken wird in Abb 41 gezeigt Bereit zur Kundensuche Kunde Kunden suche cs und bereit zur Kundendatenpflege Jedem gt Bereit zum IstKunde Click geheZu_KundeAnlegen Kunden anlegen Anzeigen der emdSuchen Click kunden_suchen Kundendaten Kunde Kunden cmdZurueck Click geheZu_KundeSuche anzeige cs cmdAnlegen Click kunde_anlegen cmdAbbruch Chck angebotanlegen_abbruch Kunde Kunden erstellung cs Bereit zur cmdBearbeiten Click geheZu_KundeBearbeiten Kundendaten nderung cmdSpeichern Click kundendaten_speichern Kunde Kunden cmdAbbruch Click kundenaenderung_abbruch pflege cs Abb 41 Diagramm der Benutzungsschnittstelle des Kundenverwaltungswerkzeugs Zu Beginn befindet sich die Benutzungsschnittstelle im Zustand Bereit zur Kundensuche um die zu bearbeitenden Kundendaten durch den Benutzer spezifizieren zu lassen 83 Kundensuche Suchkriterien eingeben Vorname Nachname Telefonnummer Stra e Hnr Il zur ck Suchen Abb 42 Maske der Kundensuche Durch das Bet tigen der Taste Suchen in der Maske der Kundensuche in Abb 42 wird die Aktion geheZu_KundeSuchen angesto e
133. n von ControlPaint zu benutzen ControlPaint bietet Methoden wie DrawReversibleFrame und DrawReversibleLine DrawReversibleFrame zeichnet einen umkehrbaren Rahmen auf dem Bildschirm w hrend DrawReversibleLine eine umkehrbare Linie auf dem Bildschirm zeichnet Die DrawRevisible Methoden von ControlPaint nutzen beim Zeichnen die globalen Koordinaten einer Komponente Die globalen Koordinaten beschreiben die Lage der graphischen Komponenten aus der Sicht des Anwenders Die globalen Koordinaten sind bezogen auf die gesamte Bildschirmfl che In DrawCreateDragFeedback sollte deshalb zus tzlich noch das Offset des Bildschirms der aktuelle Zoomfaktor und die Scrollposition ber cksichtigt werden um aus den relativen Koordinaten diese sind nur auf die Zeichenfl che bezogen die globalen Koordinatenwerte umzurechnen Siehe dazu Abb 32 laj xj Datei Bearbeiten Ansicht Projekt Erstellen Debuggen Daten as Fenster Hilfe Offset S WesuUg Br n o A Debug a EA E ES t ale Projektmappen Explorer Fallstudie C 4 X EIER 8 Projektmappe Fallstudie CSharp 1 Projekt E EN Fallstudie CSharp El La verweise E Y Angebot S Angebot cs relative Koordinate A pirata El Angebotserstellung cs Angebotspflege cs Angebotssuche cs E Y Bestellung Bestellung cs E Pizzaservice cs E I Kunde 8 Kunde cs E Kundenanzeige cs Kundenerstellung cs a a 2 Zustandsuebergang BE ScrollPos KundeNeu cs Kundenpflege cs i i
134. nde GUI Maske ein Achten sie dabei darauf in Welchen Pfad in der GUI Auswahlliste sie sich gerade befinden In diesem Pfad wird ihre beim Erzeugen abgelegt Wenn Sie den Namen des zu erzeugenen Maske eingeben haben best tigen Sie dies mit dem Button Erzeugen Die neue GUI Referenz ist danach dem Zustand zugewiesen W hlen Sie ein GUI Formular aus W hlen Sie eine GUI Formular aus Fallstudie CSharp Kunde EN Kundenanzeige cs E Kundenerstellung cs El Kundenpflege cs Kundensuche cs Zielpfad 3 Bestellung 3 Angebot neue GUI Form anlegen m A Abbrechen DK 132 4 7 Zuweisung von Event und Action zu einem Zustands bergang Um Event und Action zu einem Zustands bergang zuzuweisen sollten Sie ein Zustandsdiagramm erzeugt und dieses in der Designer Ansicht ge ffnet haben siehe Abschnitt 4 1 Au erdem sollte der zuzuweisende Zustand oder Startzustand erzeugt worden sein siehe Abschnitt 4 4 und dem ausgehenden Zustand des Zustands bergang eine GUI Maske zugewiesen sein siehe Abschnitt 4 5 Um Event und Action zu einem Zustands bergang zuzuweisen gehen Sie wie folgt vor 1 Markieren Sie den Zustands bergang der Event und Action zugewiesen bekommen soll Doppelklicken Sie nun auf diesen Zustands bergang oder klicken Sie im Eigenschaftsfenster beim Property ControlEvent Action den Button an Eigenschaften zustandsuebergangi SUIT Zustandsdiagramr
135. ndet dass die Simulation eine gute Veranschaulichung f r den Kunden bietet F r sie bietet SUIT eine wesentliche Erleichterung in der Prototypenerstellung da in SUIT nderungen schnell im Zustandsdiagramm vorgenommen und simuliert werden k nnen 96 Die Testperson u ert aber auch dass sich m glicherweise bei der Modellierung gr erer Systeme die Modellierung in Form von Zustandsdiagrammen als problematisch erweisen k nnte Bez glich der Bedienung von SUIT hat die Testperson keine Verbesserungsw nsche ge u ert jedoch wei sie dass die Arbeit in SUIT die Einarbeitung in Visual Studio voraussetzt Die Testperson hat siebzehn Minuten f r die Bearbeitung der Usability Aufgabe gebraucht siehe CD Usability test04 avi So sieht das Ergebnis der vierten Testperson aus CD Usability Test 4 Test 4 s1n zustand Ergebnis cs startzustand Den cs zustand2 Details cs Abb 54 L sung der vierten Testperson 8 5 Fazit Insgesamt hat keine Testperson mehr als f nfundzwanzig Minuten f r die Erledigung der Usability Aufgabe gebraucht Das ist f r uns aus mehreren Gr nden ein positives Ergebnis Erstens wurden die Testpersonen mit einem neuen Tool und einer ihnen bisher unbekannten Methode der Modellierung von Benutzungsschnittstellen mit Hilfe von Zustandsdiagrammen und GUI Buildern konfrontiert zweitens besa keine Testperson Erfahrung mit Visual Studio der Entwicklungsumgebung in die SUIT i
136. ngsvorschl ge gemacht und diskutiert In Kapitel 11 folgt das Resum Folgende Aufteilung fand im Rahmen der Ausarbeitung statt Kapitel 2 4 und 7 wurden von Noura Haji bearbeitet Kapitel 2 5 9 und 10 wurden von Vinh Phu Phan bearbeitet Die restlichen Kapiteln 2 1 2 2 2 3 3 4 5 6 8 und 11 sind durch gemeinsame Arbeit entstanden 16 2 Marktanalyse 2 1 Einleitung Ein Ziel dieser Marktanalyse ist es zu berpr fen ob bereits Tools f r die Erzeugung von Benutzungsschnittstellen in Form von Zustandsdiagrammen und Fensterentw rfen auf dem Markt existieren Als Leitfaden f r die Untersuchung diente eine grobe Anforderungsliste an SUIT die im Abschnitt 2 2 angegeben wird Das Ergebnis dieser Untersuchung folgt in Abschnitt 2 3 Der im Rahmen unserer Bachelor Arbeit zu entwickelnde Prototyp SUIT hat als Anforderung grafische Oberfl chen anhand von Zustandsdiagrammen und Fensterentw rfen zu erzeugen Unabdingbar f r ihn sind daher ein Zustandsdiagramm Editor und ein integrierbarer GUI Builder Siehe 1 2 3 Im Abschnitt 2 4 werden vorhandene GUI Builder zur Erzeugung graphischer Benutzeroberfl chen betrachtet Diese Analyse hat das Hauptziel einen geeigneten GUI Builder zwecks Wiederverwendung f r das Tool dieser Bachelor Arbeit zu finden Im Abschnitt 2 5 werden vorhandene Zustandsdiagramm Editoren untersucht Das Hauptaugenmerk liegt hierbei auf der Suche nach neuen Anforderungen da im Rahmen dieser Bachelo
137. ntegriert ist Der Usability Test hat ergeben dass die Methode Benutzungsschnittstellen in Form von Zustandsdiagrammen und Fensterentw rfen zu modellieren anschaulich und intuitiv ist 97 Diese Denkweise ist keiner der vier Testpersonen schwer gefallen Alle Testpersonen haben die Aufgabe sicher erledigt Die Erstellung von Prototypen in Form eines Modells dessen Ergebnis simulierbar ist beurteilen alle sehr positiv da dies keinerlei Programmieraufwand erfordert Die Fassade bietet f r alle Testpersonen einen weiteren Vorteil da sie den zus tzlichen Programmieraufwand reduziert Zwei der Testpersonen besa en keine Erfahrung in der Prototyperstellung Gr nde daf r sind die bisher fehlenden Methoden und Werkzeuge mit denen eine schnelle und einfache Prototyperstellung m glich w re Die anderen zwei Testpersonen besa en Erfahrung in der Erzeugung von Prototypen beschrieben diese jedoch aufgrund der manuellen Vorgehensweise als aufw ndig und unpraktisch Alle Testpersonen u erten sich positiv ber die von SUIT umgesetzte Methode und w rden mit SUIT gerne weitere Erfahrungen machen Bei zwei Testpersonen stellte die Entwicklungsumgebung Visual Studio ein Argument gegen die Benutzung von SUIT dar da beide das Arbeiten mit Visual Studio eher als st rend empfinden Ansonsten beurteilten alle die Bedienung von SUIT als ergonomisch und benutzerfreundlich Insgesamt ergab der Test dass SUIT eine Bereicherung f r die Prototypentwi
138. ntuitiv in der Umsetzung Die ihr bekannten Tools zum Erstellen von Zustandsdiagrammen wie z B Together sind aus ihrer Sicht mit z T unn tigen Funktionalit ten berladen und anders als der Zustandsdiagrammeditor von SUIT un bersichtlich und komplex Die Einf hrung in SUIT gestaltet sich daher einfach SUIT ist au erdem anschaulich so dass man sich wie die Testperson hervorhebt auf die eigentliche Aufgabe konzentrieren kann Ein weiterer Punkt ist dass SUIT anders als Together auf die Modellierung von BSS abzielt Die Vorteile von SUIT liegen f r die Testperson in der drastischen Vereinfachung der Modellierung des dynamischen Verhaltens einer Benutzungsschnittstelle die durch den Einsatz der aufeinander abgestimmten Tools Zustandsdiagrammeditor und GUI Builder zustande kommt Damit ist die Benutzungsfreundlichkeit von SUIT ein entscheidender Vorteil Weiterhin ist f r die Testperson wichtig dass SUIT fr hzeitig ein simulierbares Ergebnis bietet Die Simulation erlaubt schnell Ergebnisse zur Verf gung zu haben Besonders vorteilhaft findet die Testperson die automatische Codegenerierung da sie den Programmieraufwand erheblich reduziert Die Testperson w rde SUIT generell benutzen da dieses nach ihrer Ansicht eine schnelle und einfache Denke erm glicht Au erdem findet die Testperson die M glichkeit der Simulation in verschiedenen Ansichten praktisch Der Entwickler k nne so sch tzt die Testperson die M glichke
139. ntwurf Angebot Angebots ige cs Entwurf Zu Zustandsdiagrammeditor El h Zeiger G Zustand Ed Startzustand 2 Zustandsuebergang zustand Beim Loslassen der Maus also beim best tigen des Drag amp Drops sollte ihr Zustands bergang erzeugt worden sein 72 Fallstudie CSharp Microsoft Visual C NET Entwurf Zustandsdiagramm1 cs Entwurf Datei Bearbeiten Ansicht Projekt Erstellen Debuggen Daten Extras Fenster Hilfe D s Hg Ks p Debug H Toolbox A Xx Startseite Pizzaservice cs Entwurf Angebot Angebots ige cs Entwurf 21 Zustandsdiagrammeditor El R Zeiger 2 Zustand E Startzustand 3 Zustandsuebergang O startzustand zustand 130 4 5 GUI Maske Zuweisung zu einem Zustand Um eine Maske einen Zustand gilt auch f r Startzustand zuzuweisen sollten Sie einen Zustandsdiagramm erzeugt und diesen in der Designer Ansicht ge ffnet haben siehe Abschnitt 4 1 Au erdem sollte der zuzuweisende Zustand oder Startzustand erzeugt worden sein siehe Abschnitt 4 2 und 4 3 Um einen Zustand eine Maske zuzuweisen gehen Sie wie folgt vor 1 Markieren Sie ihren zuzuweisenden Zustand 2 Doppelklicken Sie nun auf diesen Zustand oder klicken Sie im Eigentschaftsfenster beim Property GUIReferenz den Button an Eigenschaften zustandi SUIT ZustandsdiagrammE Y BackColor L White Bezeichnung zustandi BorderColor Black Groesse 111 103 GUIReferenz E
140. nur wie in Abb 57 darstellen Login Arbeitsum gebung Login Click Userverifying Login cs Abb 57 Darstellung eines Login Verfahrens in SUIT Zustandsdiagramm Notation Abb 57 zeigt dass mit dem Ereignis Login Click die Aktion UserVerifying ausgef hrt wird Jedoch ist hier unabh ngig vom R ckgabewert der Funktion UserVerifying der Folgezustand immer die Arbeitsumgebung Somit ist egal ob nun die Verifizierung OK oder nicht OK war der Anmeldevorgang abgeschlossen Dies ist f r ein fr hes Prototyping wo es nur darum geht den Kunden eine funktionalit tsfreie Benutzungsschnittstelle vorzulegen noch akzeptabel aber zum Beschreiben des endg ltigen Dialogablauf des Benutzungsschnittstellensystem reicht dieses Diagramm nicht mehr aus Da SUIT das Ziel verfolgt m glichst in den fr hen Phasen der Softwareentwicklung zum Einsatz zu kommen und unter anderem m glichst fr h den Kunden einen Prototyp dank der Simulationskomponente vorlegen zu k nnen ist die SUIT Zustandsdiagramm Notation ausreichend Die Gefahr bei dieser Notation ist jedoch dass in den sp teren Phasen es zu einem Konsistenzverlust zwischen Diagramm und Benutzungsschnittstellen kommt Will man den Dialogablauf des Login Vorgang dennoch in SUIT darstellen k nnte ein Diagramm wie in Abb 58 entstehen das mit Vorsicht zu genie en ist 108 Login Arbeitsum Login Click Userverifying gebung Login cs Login Click Userverifying
141. oblem kann dadurch vermieden werden dass die Doppelreferenzierung von Masken verboten wird Will man also eine Maske in einem anderen Zustand wieder verwenden m sste man eine Kopie dieser Maske erzeugen und die Kopie dann referenzieren Jedoch f hrt diese Vorgehensweise zu redundanten Masken die Nachteile in der Wartung und nderungen dieser Masken mit sich bringen SUIT verzichtet aus diesem Grunde auch auf die Erzeugung des Codes f r den Aufruf des Folgezustands in der vorigen Maske selbst Da SUIT weder den Code in der Aktion noch in der vorigen Maske erzeugt muss ein anderer Weg gefunden werden Da bei einer Doppelrefenzierung von Masken in verschieden Zust nden es dazu kommen kann dass eine Maske nur in Zusammenhang mit dem Wissen ber ihren aktuellen Zustand bestimmen kann was ihre Folgemaske ist ist dieser Weg also nur unter Einbeziehung des aktuellen Zustands und somit dem Zustandsdiagrammmodell m glich Der aktuelle Zustand in dem ein Benutzungssystem sich gerade befindet l sst sich nur zur Laufzeit bestimmen Die dritte L sung w re also zur Laufzeit ber eine zus tzliche 103 Komponente zu bestimmen was gerade der aktuelle Zustand ist und was f r ein Zustand somit auch welche Maske beim Ausl sen des Ereignisses folgen muss Diese Komponente arbeitet Hand in Hand mit dem Zustandsdiagramm zur Laufzeit und m sste also zus tzliche Ressourcen beanspruchen die auf Kosten der Ressourcen f r das Benutzungsschni
142. ojekt benutzt Einbinden der SUIT Klassenbibliothek SUIT als DLL Datei werden Benutzung der Net Bibliothken z B die Net Framework Klassenbibliotheken CLR GUI Designer Klassen Betriebssystem Abb 23 Integration von SUIT in die Microsoft Visual Studio Net Architektur Die Architektur in Abb 23 zeigt eine stark vereinfachte Darstellung des Zusammenspiels von Visual Studio und dem Net Framework Aus der Abbildung l sst sich entnehmen dass SUIT sich auf gleicher Stufe wie das Net Framework ansiedelt jedoch die Net Framework Klassenbibliothek mitbenutzt In Microsoft Visual Studio lassen sich Klassenbibliotheken aus dem Net Framework in den Anwendercode einbinden SUIT verh lt sich hier genauso wie eine Net Klassenbibliothek die der Anwender auch ber Visual Studio in seinem Projekt einbinden kann Somit ist die Handhabung von SUIT f r den Anwender nicht anders als er es schon aus den Net Klassenbibliotheken gewohnt war Die Kapselung des Betriebssystems vom Anwendercode also von den Quellcodes die ber Visual Studio geschrieben und verwaltet werden geschieht weiterhin ber das Net Framework SUIT integriert sich hier nahtlos und durchbricht diese Kapselung nicht 5 3 Interne SUIT Architektur In diesem Abschnitt soll auf die wesentlichen Bestandteile von SUIT eingegangen werden SUIT l sst sich auf folgenden 4 Komponenten aufteilen auf die Zustandsdiagramm Komponente a
143. ononononanononcncncnnnnnnaninannnnnn 12 18 37 39 40 42 51 55 56 58 Zustandswechsel r2 2 8 2 22a Rear IR 9 30 119 Anhang 120 Benutzerhandbuch SUIT Version 1 0 Stand 06 01 2007 Inhaltsverzeichnis 1 Systemanforderune o e e 123 NN nn 2 Rn In RE 124 2 1 Install alon AAA A A sei 124 2 2 Installationen von Zustandsdiagramm Template 220022000sssnenennnneennnennnnnn 124 2 2 1 Installation von C Template io 124 3 Einbindung von SUIT ins Projekt econo rita ana 125 4 Bedienung des SUIT Zustandsdiagrammeditor c ocococcccoccnonnconncnoncnonnnono nono ncnononnnnnnnn ccoo corno 126 4 1 Erzeugung eines Zustands diari is 126 4 2 Erzeugen eines Startzustand ae 127 4 3 Erzeugung eines Zustadds rim kenn 129 4 4 Erzeugung eines Zustandsubergang u RR a ta 130 4 5 GUI Maske Zuweisung zu einem Zustand u r 2usssssesssnnenssnnennnnennnnnnnnnnnnnnn anne 131 4 6 GUI Maske Zuweisung eines Zustands ndern u022440022000sssnnesssnennnnnnnnnnnnnnn 132 4 7 Zuweisung von Event und Action zu einem Zustands bergang e 133 4 8 Event und Action eines Zustands bergang ndern u 22400s2sssensennennnnesnnn anne 134 4 9 L schen von Elementen aus dem Zustandsdiagramm oocooocccnnonccnoncnononcnnnonannnnncnnnnnannnn 135 5 Fassadengeneriering suussaeekskeiikek kai bee 136 A RA 137 6 1 Voraussetzung f r die Simulation een 137 6 2 Wie startet man eme Sim
144. orm von Zustandsdiagrammen und Masken ist aus Sicht der Testperson verst ndlich und zug nglich Die automatische Codegenerierung der Fassade sieht 95 die Testperson als positiv an Die Bedienung in SUIT ist f r sie einfach bedarf aber aufgrund der Entwicklungsumgebung Visual Studio einer Einarbeitung Insgesamt findet die Testperson SUIT viel versprechend und w rde dieses Tool gerne benutzen wollen w re es nicht in Visual Studio realisiert Insgesamt hat die Testperson neunzehn Minuten f r die berarbeitung der Usability Aufgabe gebraucht siehe CD Usability test03 avi So sieht das Ergebnis der von der Testperson gel sten Aufgabe aus Abb 53 CD Usability Test 3 Test 3 sIn startzustand1 Formi cs zustand zustand3 Titelanzeige cs Abb 53 L sung der dritten Testperson 8 4 4 Vierte Testperson Die Testperson bringt keine Erfahrung in Visual Studio mit sie beurteilt die Entwicklungsumgebung jedoch nicht negativ Bisher hat die Testperson Together f r die Erstellung von Zustandsdiagrammen benutzt und findet im Vergleich dazu den Zustandsdiagrammeditor in SUIT bersichtlich und anschaulich Die Testperson hat noch keine Prototypen erstellt vermutet aber dass dies einen gro en Programmieraufwand mit sich bringt wenn die Erstellung manuell erfolgt Mit SUIT seien diese dagegen schnell gemacht Die Testperson hat sich bei der Aufgabe schnell zurechtgefunden Die Testperson fi
145. ounds 29 55 400 300 cursor DEFAULT_CURSOR defaultCloseOperation DISPOSE_ON_CLOSE defaultLookAndFeelDecor L false dropTarget extendedState NORMAL v i EA Abb 11 Property Fenster in Jigloo Bedienung Jigloo bietet einen Layout Manager Standardm ig ist ein Border Layout f r das Entwurfsfenster ausgew hlt F r Entwickler die das Arbeiten mit dem Layout Manager nicht gewohnt sind ist es oft irritierend wenn deshalb die eingef gten Komponenten nicht an der gew nschten Stelle erscheinen F r Anf nger die mit dem Konzept der Layout Manager nicht vertraut sind kann es viel M he und Zeit kosten die Oberfl che bedarfsgerecht zu gestalten Grunds tzlich ist es aber auch m glich Komponenten ohne einen Layout Manager in einem Container zu platzieren In diesem Fall sollte das absolute Layout ausgew hlt werden Die 20 Komponenten k nnen mit einem Klick ausgew hlt und mit einem weiteren Klick an der damit zugleich selektierten Stelle der Zeichenfl che eingef gt werden Jigloo unterst tzt nicht das Einf gen von GUI Komponenten ber Drag amp Drop Au erdem kann die Gr e einer GUI Komponente nicht gleich beim Erzeugen ge ndert werden Sie besitzt immer eine vordefinierte Default Gr e Erst nach dem Platzieren auf dem Form Editor kann sie angepasst werden Beim Erzeugen von GUI Komponenten wird ein Fenster zum Best tigen oder ndern von Default Werten angezeigt welches man mit OK best tigen muss Auch be
146. r hzeitig korrigierend eingreifen SUIT erm glicht auch die Weiterentwicklung von Prototypen bis zur einsatzf higen Anwendung da das Tool qualitativ hochwertigen Code erzeugt der nicht verworfen wird sondern bedarfsweise wieder verwendet werden kann SUIT erzeugt eine abstrakte Schnittstelle die Fassade Durch die Trennung der Interaktionskomponente und der Funktionskomponente durch eine Fassade wird ein sauberes nachvollziehbares Design unterst tzt siehe Abschnitt 1 2 3 3 Vorgehensweise mit Interaktionsdiagrammen Im Folgenden wird die Vorgehensweise von Denert beschrieben Denert 1992 Als Beschreibungsmethode zur Modellierung des dynamischen Verhaltens einer Benutzungsschnittstelle dienen hier Interaktionsdiagramme IAD eine Variante endlicher Automaten Es wird jedoch nicht auf alle Details eingegangen die in Denert 1992 bei der Spezifikation einer Benutzungsschnittstelle ber cksichtigt werden 3 3 1 Interaktionsdiagramme Interaktionsdiagramme sind eine Variante endlicher Automaten Die wesentlichen Elemente eines Interaktionsdiagramms sind die Zust nde und die Zustands berg nge In Interaktionsdiagrammen werden die Zust nde als Kreise visualisiert Der Zustand markiert einen Punkt im Dialogablauf in dem das System auf eine Eingabe des Benutzers wartet Der Startzustand wird im Interaktionsdiagramm durch ein Dreieck visualisiert Die Zustands berg nge werden durch Pfeile zwischen den Zust nden dargestellt Die Pfeile s
147. r A ANC 31 39 58 59 61 NAC tn hie REIN Ren 13 37 46 57 106 110 111 SUI Mitin iaa 13 14 15 16 17 18 28 31 37 40 41 42 47 48 49 50 51 52 53 55 57 61 75 80 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 T NO 25 26 27 28 a Kale a 0P ETE ET an eher sen erh een 51 52 55 59 60 61 94 ME E 37 38 39 40 42 55 101 102 103 siehe Zustands bergang U ME en ee Re ed ern ee 7 37 25 57 Ys ability ans ara ea A ee ee nee 91 97 99 105 112 118 V Virtuelle Taste iii N a a A AA E a A 33 34 MSI EAE N EAE AAS AEE EE AEEA EA EE O aia 26 27 28 MISUAl Edi ern ETEA AA E TT E 18 Visual Studio da ann 18 22 23 24 25 28 31 41 48 49 50 52 59 60 61 65 66 93 94 95 96 97 WwW AE E TE E E E E E E T E 109 110 111 WAN ist A E E A A A A ARAE AAE 15 77 Weiterentwicklung oocococococononononcnnononononenononennnnnnnnrnrnene nene nn nn nn enen ann anne nennen 7 17 51 90 106 Window Builder Pro ne ee en Di 18 Z Zustand u a ne 11 12 13 14 17 26 30 31 33 34 35 37 38 39 45 illa to balboas irc cren 51 58 80 83 86 90 103 104 Zustandsdiagramm oocococcccncncoconononcnnnananincnnonanon 9 10 11 12 13 14 17 18 28 37 39 41 42 51 52 53 58 61 62 63 83 86 87 88 89 90 106 108 109 Z standsdiagramm Editor ici aii 17 100 ZUStandS berganNO ococccocococononcnoncncon
148. r Arbeit die Realisierung eines eigenen Zustandsdiagramms Editor geplant ist Im Abschnitt 2 6 folgt ein Fazit 2 2 Grobe Anforderungen SUIT erlaubt die Modellierung des dynamischen Verhaltens von Benutzungsschnittstellen in Form von Zustandsdiagrammen Diese k nnen au erdem um weitere Details der graphischen Oberfl che bereichert werden wobei f r jeden Zustand festgelegt wird welche Masken auf dem Bildschirm dargestellt werden Das erstellte Zustandsdiagramm kann simuliert werden Au erdem wird eine Fassade f r die Weiterentwicklung generiert siehe 1 2 2 Somit bestehen im Groben zwei Anforderungen an SUIT Ben tigt werden Zustandsdiagramm Editor der ber die g ngigen Operationen zum Anlegen eines Zustandsdiagramms verf gt und ein GUI Builder der in den Zustandsdiagramm Editor integriert ist so dass f r jeden Zustand innerhalb des Zustandsdiagramms per Drag amp Drop Masken erzeugt werden k nnen siehe 1 2 3 In Tabelle 1 sind alle notwendigen Anforderungen an SUIT aufgelistet 17 Anforderung Beschreibung Erzeugen eines Zustands Ein Zustand kann auf der Zeichenfl che platziert werden Erzeugen eines Anfangszustandes Ein Anfangzustand kann auf der Zeichenfl che platziert werden Erzeugen eines Zustands bergangs Ein Zustands bergang kann auf der Transition Zeichenfl che platziert werden Neuanlegen von Masken Masken k nnen erzeugt werden Erzeugung von Masken zu den Je
149. r Vorgang nicht mehr manuell durchgef hrt werden Wird eine Klasse vom Typ Zustandsdiagramm mit dem 60 ZustandsdiagrammDesigner ge ffnet so f gt dieser der Toolbox ein Startzustand ein Zustand und ein Zustands bergang Item automatisch hinzu 6 4 2 ffnen mit dem Zustandsdiagramm Designer in VS Net Will man in Visual Studio eine Klasse in der Designeransicht ffnen so kann dies mit einem Doppelklick auf die Klasse erreicht werden Das Anzeigen einer Klasse in der Designeransicht ist nur m glich wenn eine Klasse bereits einem Designer zugeordnet worden ist In Visual Studio werden Klassen die von System Windows Forms Form abgeleitet sind in der Designeransicht des GUI Builders angezeigt Form ist von Component abgeleitet In Net k nnen Komponentenklassen Designerklassen zugeordnet werden Form ist dem Designer GUI Builder zugeordnet Darin liegt begr ndet dass beim ffnen einer Klasse vom Typ Form diese in der Designeransicht des GUI Builders ge ffnet wird In SUIT soll das Zustandsdiagramm in der Zustandsdiagrammdesigner Ansicht ge ffnet werden Es muss also der Komponentenklasse Zustandsdiagramm die Designerklasse Zustandsdigrammdesigner zugeordnet werden Dieser Vorgang wird im Folgenden angezeigt Der Zustandsdigrammdesigner ist der Klasse Zustandsdiagramm durch folgende Code Definition zugeordnet Designer typeof SUIT ZustandsdiagrammEditor Design ZustandsdiagrammDe signer typeof IRootDesigner Designer
150. r aufgelistet F r jeden wird festgelegt von welchen Bedingungen Eingaben im oberen Teil seine Aktivierung abh ngt Eine IAD Aktion kann unterschiedliche Ergebnisse herbeif hren Im IAD selbst werden nur Bezeichnungen f r diese angegeben oder nichts falls nur das Ergebnis o k m glich ist Auch die Ermittlung dieser Ergebnisse Kann nur f r jeden einzelnen Dialog durchgef hrt werden Diese Spezifizierung kann ebenfalls mithilfe einer Entscheidungstabelle vorgenommen werden Der Vorteil einer Entscheidungstabelle zur Analyse von Benutzereingaben besteht vor allem darin dass sie zur vollst ndigen Analyse zwingt da alle theoretisch m glichen Eingaben und ihre Kombinationen dargestellt werden Bestimmte Kombinationen werden andernfalls leicht bersehen da sie als unm glich oder sinnlos eingesch tzt werden Zwingend ist der Einsatz einer Entscheidungstabelle jedoch nicht gelegentlich ist eine verbale Darstellung oder eine Darstellung mittels Pseudocode einfacher und leichter nachzuvollziehen 36 3 4 Die in dieser Arbeit gew hlte Vorgehensweise 3 4 1 Vorgehensweise mit Zustandsdiagrammen Anders als Denert der Interaktionsdiagramme f r die Beschreibung von Benutzungsschnittstellen w hlt wird in dieser Arbeit die Modellierung in Form von Zustandsdiagrammen vorgenommen Zustandsdiagramme basieren wie die von Denert beschriebenen Interaktionsdiagramme auf endlichen Automaten Die Basiselemente eines Zustandsdiagramms sind
151. r benutzerrechteabh ngigen Benutzungsschnittstelle dienen Bei einigen Benutzungsschnittstellen ist der Bildschirmmaskenverlauf abh ngig davon welcher Benutzer gerade am Arbeitsplatz arbeitet Abh ngig von seinen Benutzerrechten bekommt der Benutzer andere Bildschirmmasken angezeigt Diese Benutzungsschnittstellensysteme bieten meist einen Anmeldebildschirm an um den Benutzer zu verifizieren Je nach Zugriffsrecht bekommt der angemeldete Benutzer dann unterschiedliche Masken zu sehen Ist die Verifizierung des Benutzers nicht erfolgreich wird in den meisten benutzerrechteah ngigen Benutzungsschnittstellen der Zugriff auf die Masken verweigert und der Benutzer bleibt beim Anmeldebildschirm So kann dieser Dialogverlauf mit Interaktionsdiagrammen wie in Abb 56 dargestellt werden 107 j j Verifizierung OK its Login Click Us Veribins g Arbeits umgebung Verifizierung fehlgeschlagen Abb 56 Darstellung eines Login Verfahren in Form eines Interaktionsdiagrammes Diese benutzerrechteabh ngigen Benutzungsschnittstellen lassen sich jedoch nicht mit der aktuellen SUIT Zustandsdiagramm Notation darstellen Der Dialogablauf wird also vom R ckgabewert der Verifizierungsfunktion in Abb 56 UserVerifying gesteuert Ein Zustandsdiagramm das so einen Ablauf beschreiben k nnte m sste also um die Informationen des R ckgabewertes der Verifizierungsfunktion erweitert werden In der aktuellen SUIT Version lie e sich dieser Dialogverlauf
152. ramm mit W chterbedingung wie in Abb 59 aussehen Login Arbeitsum gebung Verifizierung OK Login Click Userverifying Login cs Verfizierung fehlgeschlagen Login Click Userverifying Abb 59 Login Verfahren mit W chterbedingung In Falle der dialogablaufsteuernden R ckgabewerte w re die W chterbedingung also das Erf llen eines bestimmten R ckgabewertes Bei dieser Notationserweiterung sollte jedoch bedacht werden dass diese Erweiterung auch in der Simulation ber cksichtig werden sollte So muss in der Simulation diese R ckgabewerte irgendwie schon zur ckgeliefert werden Dies setzt teilweise eine Implementierung der Aktionen voraus Inwiefern diese Implementierung den fr hen Einsatz der Simulation und somit das Prototyping in der fr hen Etappen der Softwareentwicklung behindert muss noch in Rahmen einer ausf hrlichen Analyse untersucht werden Optimal w re wenn diese W chterfunktionen als optional angesehen werden so dass diese funktionalen Details zur den fr hen Etappen der Softwareentwicklung noch nicht modelliert werden muss 10 2 2 2 Inkarnationen der Masken In Kapitel 3 2 5 wurde der Dialogwechsel nach Denert beschrieben Dort wurde der Begriff Inkarnationen von Masken eingef hrt und erl utert Diese M glichkeit die Inkarnationen der Masken zu definieren ist in der aktuellen SUIT Zustandsdiagrammnotation noch nicht vorgesehen Suche SuchErgebnis ais cick TshowDetailst Details Suche cs
153. rbig markiert Erfolgt nun eine Benutzereingabe so wird die Aktion zur besseren Nachvollziehbarkeit ausgegeben Au erdem wird zum Folgezustand gewechselt Im Folgenden ist das Zustandsdiagramm des Pizzaservicesystems in der Simulationsansicht abgebildet Simulation EI EB Pizzaservice Start zul SmdAngsbofsverwallung Cick gehezu_angebolssuchef BestellungiPiz Kundenverwaltung zaservice cs ZUR IGKTgehezu_sEril Angebotsverwaltung Bestellungsverwaltungssystem Bereit zur ick Angebotssuche mdAngebotSuchen Click show_angebotssuche Angebot Ange botssuche cs 2 fe z 2 5 3 OBunnagseg moys PIO Bunyeruanejssgpu gt Oayansuapuny MOUS XONI Uayangepunypu chen Glick Fangebot_suchen 5 Bereit zum l Bestellen A amd Abb 50 Pizzasystem in der Simulationsansicht von SUIT 89 7 4 Fazit Ziel von SUIT ist es schnell und einfach einen Prototyp f r eine Benutzungsschnittstelle zu erzeugen um diese dem Anwender fr hzeitig vorf hren zu k nnen Au erdem soll der manuelle Programmieraufwand m glichst verringert werden Aus den in SUIT erstellten Modellen in Form von Zustandsdiagrammen und Fensterentw rfen sollen so viele Informationen wie m glich zur automatischen Codegenerierung genutzt werden Dieses Ziel wurde im Rahmen dieser Fallstudie am Beispiel eines Pizzaservicesystems exemplarisch erreicht In einem Zustandsdi
154. rgang direkt oder indirekt von ZustandsdiagrammElement erben Durch diese Vererbung werden diese Elemente vom SUIT Zustandsdiagrammeditor als erlaubte Toolbox Elemente erkannt Wie dies vonstatten geht wird in Kapitel 6 erkl rt Das Property Fenster das auch beim mitgelieferten GUI Builder von Visual Studio Net bekannt ist wird auch beim Zustandsdiagramm Designer erneut eingef hrt um dem Anwender eine vertraute Entwicklungsumgebung anzubieten ber den Zustandsdiagramm Designer l sst sich dann die Codegenerierungskomponente aufrufen Die Codegenerierungskomponente generiert anhand des Zustandsdiagramms das vom Zustandsdiagrammdesigner entworfen wurde eine Fassade Klasse die die Methodenk pfe der im Zustandsdiagramm vorkommenden Aktionen definiert Dies sollte urspr nglich ber CodeDom geschehen jedoch stellte sich hier heraus dass das CodeDom Modell in der vorliegenden Net Framework Version 1 1 f r Objekte die nicht von Typ IComponent sind noch nicht komplette Sprachunabh ngiskeit erreicht hat In Kapitel 6 wird auf CodeDom n her eingegangen Die Simulationskomponente wird auch vom Zustandsdiagramm Designer angesto en Sie nutzt die Codegenierungskomponente um die Fassadeklasse zu genieren sofern dies nicht schon vom Anwender eingeleitet wurde Wenn Fassadeklasse und die GUI Masken entworfen sind kann die Codegenierungskomponente anhand des Zustandsdiagramms die GUI Masken kompilieren und nach der im Zustandsdiagramm beschrieb
155. rierter GUI Builder von Microsoft Visual Studio Net 2003 Die Programmoberfl che von Microsoft Visual Studio in der GUI Builder Standard Ansicht besteht aus vier Kernkomponenten Abb 14 e Toolbox Die Palette nennt sich in Visual Studio Toolbox Hier sind die wichtigsten GUI Komponenten verankert Die Toolbox ist mit Komponenten berf llt und wirkt dadurch un bersichtlich e Projektmappen Explorer Hier sind alle Dateien des aktuell ge ffneten Projekts aufgelistet ber dieses Fenster lassen sich neue Dateien gleich welcher Art hinzuf gen und die Projekteigenschaften bearbeiten e Eigenschaftsfenster Hier k nnen die Eigenschaften des im Designer gew hlten Objektes ver ndert werden e Designer ist die Zeichenfl che des GUI Builders Bedienung Die Bedienung beim Einf gen von Komponenten wird durch die M glichkeit der absoluten Positionierung am Raster vereinfacht Der GUI Builder bietet mehrere M glichkeiten GUI Komponenten auf den Designer zu platzieren 23 e Durch Drag Drop k nnen Elemente aus der Toolbox auf den Designer gezogen werden Hierbei kann die Gr e des Elements bereits beim Erzeugen angepasst werden e Nach einem Doppelklick auf die Komponente in der Toolbox erscheinen die bereits angeklickten GUI Komponenten auf dem Designer e Nach einem Klick auf die Komponente in der Toolbox und einen weiterer Klick auf den Designer wird die Komponente an der gew nschten Stelle eingef gt Codegenerierung
156. rmitteln der Mausposition auf einem Zustandsdiagrammelement und stellt Methoden zum Zeichnen bereit ZustandDesigner ist eine von ZDiagrammElementDesigner abgeleitete Klasse Die Klasse ZutandsDesigner erweitert das Verhalten eines Zustands im Entwurfsmodus ZustandsuebergangDesigner ist eine von ZDiagrammElementDesigner abgeleitete Klasse Sie erweitert das Verhalten eines Zustands bergangs im Entwurfsmodus FassadeGenerator ist eine Klasse in der die Fassade des erzeugten Zustandsdiagramms generiert wird 58 6 4 Besonderheiten 6 4 1 Erweiterung der Toolbox um Zustandsdiagramm Elemente Die Toolbox besteht in der Ansicht des GUI Builders in Visual Studio aus einer gro en Anzahl von Toolboxelementen wie Buttons TextBoxes Listen etc Diese Toolbox ist in jedem Designer verf gbar Abh ngig von dem zurzeit verwendeten Designer ist es nicht immer sinnvoll in der Toolbox immer dieselben Toolboxelemente zur Verf gung zu stellen So sind z B Buttons Listen und andere f r den GUI Builder zur Verf gung stehende Toolboxelemente f r den ZustandsdiagrammDesigner uninteressant Stattdessen ergibt es Sinn f r einen ZustandsdiagrammDesigner in der Toolbox Elemente wie z B einen Zustand einen Zustands bergang einen Startzustand etc anzubieten und alle anderen Toolboxelemente zu deaktivieren Um dies zu erreichen benutzten wir einen Filter der es erlaubt nur bestimmte Toolboxelemente in der Toolbox zu aktivieren Damit Objekte der
157. rt dass ein Modell bei komplexen Systemen un bersichtlich wird Die Notation von Harel ist bereits weit verbreitet und wird in der Softwareentwicklung eingesetzt wie z B in UML Einige Statechart Editoren wurden bereits in der von uns durchgef hrten Marktanalyse untersucht Die Realisierung einer Modellierung in Form von Statecharts w rde aber den Rahmen der Bachelor Arbeit sprengen und wird deshalb f r die n chste Version geplant Denert ber cksichtigt bei der Spezifikation von Benutzungsschnittstellen eine gro e Anzahl Details und versucht diese zu einem sinnvollen Ganzen zu verbinden Denert 1992 Wir konzentrieren uns schwerpunktm ig auf die Erzeugung von Benutzungsschnittstellen Prototypen mit Hilfe von Zustandsdiagrammen und Fensterentw rfen und die automatische Generierung einer Fassadenschnittstelle siehe Abschnitt 1 2 Die Erzeugung der Prototypen soll mit m glichst geringem Aufwand erfolgen Sie sollten leicht nderbar und bei Bedarf zu einem ausgereiften System erweiterbar sein Das Hauptziel 37 dabei ist das dynamische Verhalten von Benutzungsschnittstellen in einer relativ fr hen Phase eines Projektes aufzuzeigen und somit eine fr he Kundeneinbindung zu erreichen Dadurch k nnen das Anwendungsprobleme und m gliche L sungen besser untersucht und verstanden werden so dass Fehler fr her als bisher entdeckt und beseitigt werden k nnen und somit weniger Kosten verursachen Die Spezifikation einer Benutzungssc
158. rue E bounds 0 O 392 270 v public NewJFrame buttonGroup E m LES EE S o writable Smart Insert 40 72 Abb 9 Jigloo in Eclipse Abb 9 zeigt die wichtigsten Komponenten von Jigloo in Eclipse in der vollen Ansicht Form Editor GUI Editor Source Editor Quelltext Editor Outline View oben rechts Property Editor unten rechts Bei der standardm igen Einstellung erscheinen Quelltext und GUI wie in Abb 9 zu sehen auf derselben Oberfl che So k nnen durch die gleichzeitige Darstellung von Entwurfsmodus und Quelltext Anderungen im Quelltext auch w hrend der GUI Erzeugung eingesehen werden 19 Die Outline View bietet eine gute bersicht ber alle bereits erzeugten GUI Komponenten Die verf gbaren GUI Komponenten sind in der Palette thematisch geordnet siehe Abb 10 was ihre Bedienung u ert erleichtert Containers Aa More Components Menu Custom Layout 0 PASTER TIT TEER Abb 10 Die Palette in Jigloo Auch der Property Editor Abb 11 ist anschaulich und wohlgeordnet Er besteht aus drei verschiedenen Fenstern e Properties e Layout e Events Properties Layout Events Properties Yalue Basic background 212 208 200 enabled W true focusTraversalPolicy font foreground 0 0 0 iconimage No Image locale Deutsch Deutschland preferredSize 0 0 size 400 300 title H Expert alwaysOnTop O false b
159. sabfrage w re eine m gliche Anforderung der n chsten SUIT Version Zusammenfassend ist mit der aktuellen SUIT Zustandsdiagramm Notation der Dialogverlauf eines Login Verfahren einer Benutzungsschnittstelle nicht Komplett darstellbar F r einen fr hen Prototyp reicht aber die Darstellungsform indem man von dem R ckgabewert der Verifizierungsfunktion absieht und den Anmeldevorgang als immer erfolgreich ansieht Der R ckgabewert einer Aktion ist f r die Modellierung des Zustandsdiagramm in SUIT ohne Belang Durch diese fehlende M glichkeit kann das Modell in den sp teren Phasen nicht mehr exakt die Benutzungsschnittstelle beschreiben wenn diese dialogablaufsteuernde Aktionsr ckgabewerte vom Programmierer selbst einprogrammiert werden m ssen Eine Erweiterung der aktuellen SUIT Zustandsdiagramm Notation m sste also in Betracht gezogen werden wenn f r die n chste SUIT Version die Konsistenzerhaltung prim res Ziel sein soll Eine m gliche Erweiterung der Notation um dialogablaufsteuernde Aktionsr ckgabewerte im Modell modellieren zu k nnen w re die W chter Bedingung die in Harel 1987 f r 109 Statecharts definiert sind Eine W chterbedingung ist eine Bedingung die wahr sein muss damit der bergang zu dem sie geh rt stattfinden kann Mit W chterbedingungen kann dokumentiert werden dass ein bestimmtes Ereignis je nach Bedingung zu unterschiedlichen berg ngen f hrt F r das Login Verfahren Beispiel k nnte eine Diag
160. schnittstelle entwickelt und prototypisch implementiert werden kann Um die Eignung des Tools f r die prototypische Implementierung einer Benutzungsschnittstelle zu demonstrieren wird in diesem Kapitel eine Fallstudie durchgef hrt Die Fallstudie hat die Entwicklung der Benutzungsschnittstelle eines Pizzaservicesystems zum Thema Die Untersuchung hat zwei Ziele Es soll demonstriert werden wie das Tool f r das Entwerfen von Benutzungsschnittstellen mit Hilfe von Zustandsdiagrammen und Fensterentw rfen eingesetzt werden Kann Es ist aufzuzeigen wie der Prototyp einer Benutzungsschnittstelle schrittweise l ckenlos und ohne den Einsatz zus tzlicher Tools erzeugt werden kann Durch die Demonstration anhand einer Fallstudie soll die Praxistauglichkeit des zu entwickelnden Tools berpr ft werden Die Untersuchung unterliegt zugleich einer Beschr nkung des Anspruchs Es ist nicht das Ziel ein lauff higes System zu entwickeln d h ein ausgereiftes Pizzaservicesystem zu entwerfen das auch tats chlich eingesetzt werden kann Daher wird auf eine detaillierte Anforderungsanalyse verzichtet die in der Praxis bei einem Software Entwicklungsprozess unabdingbar w re Eine ausf hrliche Analyse der Fallstudie ist also im Rahmen dieses Kapitels nicht geplant Eine detaillierte Beschreibung der Funktionalit t des zu implementierenden Systems Pizzaservice besitzt keine direkte Relevanz f r die in diesem Kapitel zu beschreibende Vorgehenswei
161. sdiagramm zugeordnet Buchsuche GUI Buchliste GUI und Buchinfo GUI sind Verweise auf den vom GUI Builder generierten Maskencode Dieser Code wird automatisch beim Betreten eines Zustands ausgef hrt Am Anfang befindet sich das Zustandsdiagramm im Zustand Buchsuche und die Operation Buchsuche GUI wird ausgef hrt sodass die Maske Buchsuche erscheint Durch einen Klick auf den Button Suche wird das Ereignis Suche_click ausgel st Das Zustandsdiagramm wechselt zum Folgezustand Buchliste Beim Betreten des Zustands Buchliste wird die Aktivit t Do Buchliste GUI ausgef hrt und es wird die GUI Maske der Buchliste angezeigt Von hier aus kann durch das Ausl sen von Details_click ein Zustands bergang angesto en werden und das Zustandsdiagramm wechselt in den Zustand Buchinfo In Buchinfo wird die Maske Buchinfo auf dem Bildschirm dargestellt Werden die Dialogabl ufe einer Benutzungsschnittstelle in einem formalen eindeutigen Modell beschrieben und das Modell um die Bildschirmmasken angereichert so ist wenig zus tzlicher Aufwand erforderlich um das Modell automatisch simulieren zu k nnen und die Dialogabl ufe gem dem Modell ablaufen zu lassen In einem Zustandsdiagramm k nnen au erdem noch Aktionen definiert werden die ausgef hrt werden wenn ein Ereignis einen Zustands bergang ausl st Im Beispiel der Literatur Suche z B l st ein Klick auf den Button suche ein Ereignis aus Dieses Ereignis st t eine Aktion an Die angesto ene A
162. sdiagrammElementContainer y Class SP ZustandsdiagrammElement Zustandsdiagrammelement S Abstract Class f Component Zustandsuebergang a Class ZustandsdiagrammElement Zustand 3 Class ZustandsdiagrammElement 2 Zustandsuebergang f Startzustand Class Zustand SP ZustanduebergangContainer lt lt ZustanduebergangContainer Class 139 TextBoxWriter Class Textwriter Q ZustandsdiagrammDesigner V Class ComponentDesigner EmbeddedsimulationGUI Y Class Form Zustandsdia SP EmbeddedSimulationGUI SimulationGUI FassadeGenerator Class Form austandsdiagrammvien Class UserControl FassadeGenerator Class 83 83 ZDiagrammE lementDesioner F Abstract Class i i P ComponentDesigner BL enmarcan ControlEventAction Class ControlEvent ction ZustandDesigner ZustandsuebergangDesigner ControlEventactionEditor Class Class ZDiagrammElementDesigner ZDiagrammElementDesigner op et ActionEditor ass UITypeEditor SP GUIRefChooser 2 ControlEvent ctionConverter GUIRefChooser Y EventActionChooser ControlEventActionConverter Class f Class em EventActionChooser StringConverter Class Form 2 GUIReferenzEditor P GUIReferenzConverter GUIReferenzEditor E Class UITypeEditor Class StringConverter Class 140 SP
163. se Die Untersuchung wird in folgenden Schritten vorgenommen Im Abschnitt 7 2 wird eine allgemeine Beschreibung des Ist Zustandes des Pizzaservicesystems gegeben Daraufhin folgt im Abschnitt 7 3 ausgehend von einem Anwendungsfalldiagrammes des Ist Zustandes die schrittweise Erzeugung des Prototyps Mit einem Fazit im Abschnitt 7 4 wird das Kapitel Fallstudie abgeschlossen 7 2 Ist Analyse Das System in dieser Fallstudie verwaltet den Bestellvorgang eines Pizzaservices Ein Kunde der eine Pizza bestellen will ruft bei dem Pizzaservice an um seine Bestellung abzugeben 76 Der Mitarbeiter der diesen Anruf entgegen nimmt soll mit Hilfe des Fallstudie Systems alle Bestellungen berblicken und die Bestellung des Kunden aufnehmen k nnen Ruft ein Kunde an wird bevor die Bestellung entgegen genommen wird berpr ft ob er dem System bekannt ist Dies geschieht durch die Anfrage der Haustelefonnummer des Kunden Die Haustelefonnummer wird als Identifikationskriterium gew hlt weil sie die Anschrift und somit die Lieferadresse eher eindeutig identifiziert als es ber den Namen der Fall ist da in einem Haushalt und somit bei einer Lieferadresse mehrere Personen wohnen k nnen Der Kunde ist so gesehen weniger die Person die die Bestellung aufgegeben hat als der Ort an den die Bestellung ausgeliefert wird Um ein schnelles Auffinden von im System bereits gespeicherten Kunden Adressen zu gew hrleisten ohne dabei immer wied
164. sind Im Abschnitt 6 3 wird die Programmstruktur von SUIT erl utert In Abschnitt 6 4 werden die Besonderheiten der Umsetzung von SUIT und die f r die Umsetzung des Tools verwendeten Net Technologien beschrieben In Abschnitt 6 5 wird die Schnittstelle zu SUIT erl utert In 6 6 folgt ein Fazit 6 2 Umgesetzte Anforderungen Die im Kapitel 4 beschriebenen Anforderungen werden in diesem Abschnitt aufgegriffen Es soll hier erl utert werden welche dieser Anforderung mit der aktuellen SUIT Version realisiert wurden und welche davon noch offen sind Im Folgenden wird eine Tabelle dargestellt die den Status erf llt nicht erf llt der einzelnen Anforderungen wiedergibt ID Abk rzung Status Klassifikation Al Erzeugen einer Zustandsdiagrammklasse Erf llt Must have A2 Toolbox Erf llt Must have A3 Erzeugen eines Zustandes per Drag amp Drop Erf llt Must have A4 Erzeugen eines Anfangszustandes per Drag Erf llt Must have amp Drop AS Erzeugen eines Zustandes per Doppelklick Erf llt Should have A6 Erzeugen eines Startzustand per Doppelklick Erf llt Should have A7 Erzeugen eines Zustands bergang Erf llt Must have Transition per Drag amp Drop AS Erzeugen eines rekursiven Erf llt Should have Zustands bergangs A9 L schen eines Zustandes Erf llt Must have A10 L schen eines Startzustandes Erf llt Must Have All L schen eines Zustands bergangs Erf
165. speiche 3 Klicken Sie auf die Option Fassade erzeugen In Ihrem Projekt sollte nun eine Klasse Fassade zu finden sein Tipp Wenn Sie bereits eine Fassade erzeugt haben wird diese Fassade mit den hier beschriebenen Schritten 1 3 wieder aktualisiert 136 6 Simulation 6 1 Voraussetzung f r die Simulation Bevor Sie simulieren sollten Sie das Zustandsdiagramm erstellt siehe Abschnitt 4 1 und ihr Modell entworfen haben Ihr Modell muss ber einen Startzustand verf gen alle erreichbaren Zust nde sollten eine g ltige GUI Maske zugewiesen bekommen haben Siehe Abschnitt 4 5 und vermeiden Sie in Ihrem Modell unklare Wegverzweigungen wie z B in der unteren Abbildung wo ein Ereignis zu zwei unterschiedliche Zust nde f hrt Login Arbeitsum Login Click Userverifying gebung Login cs Login Click Userverifying Bevor die Simulation ausgef hrt werden kann sollten Sie die Fassaden Klasse genieren lassen und daf r sorgen dass Ihr Projekt fehlerfrei kompilierbar ist 6 2 Wie startet man eine Simulation Um eine Simulation zu starten gehen Sie wie folgt vor 1 Markieren Sie das Zustandsdiagramm in dem Sie auf eine freie Stelle der Zeichenfl che des Zustandsdiagramm Designers anklicken Eigenschaften n X 2 Im Eigenschaftsfenster sollte nun die Zustandsdiagramm2 SUIT Zustandsdiagramn Eigenschaften des Zustandsdiagramms erscheinen und unterhalb der Liste eine GE Option Fassade
166. spezifizierte dynamische Verhalten einer Benutzungsschnittstelle zu berpr fen Da die dynamische Verhaltensspezifikation durch Zustandsdiagramme erfolgt muss die Simulation die Zustandsdiagramme in dem Sinne animieren dass der Ablauf der Zustandsfolgen mit den damit verbundenen Bildschirmmasken graphisch visualisiert wird Die Simulationsm glichkeit erm glicht somit ein exploratives Prototyping Dieses hilft dabei die Kommunikation zwischen den Entwicklern und den Benutzern zu erleichtern Lauff hige Prototypen sind das bestm gliche Kommunikationsmittel ber eine Benutzungsschnittstelle Sie werden in der Anforderungsanalyse angewandt um die Anforderungen von Benutzern an das k nftige System zu identifizieren Mit SUIT sollen Prototypen mit m glichst geringem Aufwand und mit so wenig Kosten wie m glich erstellt werden Au erdem soll es in SUIT die M glichkeit geben Prototypen nicht nur als Wegwerfprototypen zu realisieren sondern diese auch zu einem ausgereiften System weiterentwickeln zu k nnen Die Kosten und der Aufwand im Rahmen der Realisierung einer Benutzungsschnittstelle soll auch durch die automatische Codegenerierung reduziert werden Durch die automatische Erzeugung der Fassade entf llt hiermit ein weiterer manueller Programmieraufwand 1 2 3 SUIT Komponenten Die zentrale Anforderung an das Tool dieser Bachelor Arbeit besteht darin Benutzungsschnittstellen in Form von Zustandsdiagrammen und Bildschirmmasken zu erzeug
167. ss hier das Modell gezielt auf ein Zustandsdiagramm hin entwickelt worden ist Wenn es sich in Abb 1 und Abb 4 um ein und dasselbe Modell handelt kann man doch die Dialogabl ufe gleich in Form eines Zustandsdiagramms wie sie in Abb 4 dargestellt sind modellieren da Zustandsdiagramme viele Konstrukte bieten die f r die Modellierung einer Benutzungsschnittstelle sinnvoll eingesetzt werden k nnen Da es ohnehin n tig ist die Masken zu skizzieren ist es doch zweckm ig diese Skizzen mit Hilfe eines GUI Builders zu erzeugen Das Ergebnis ist dann ein ausf hrbarer Code der Maske In einem Zustandsdiagramm k nnen in jedem Zustand Aktivit ten definiert werden Dabei handelt es sich um Operationen die ausgef hrt werden wenn sich das Zustandsdiagramm in dem Zustand befindet Wurden nun ausf hrbare Skizzen mit einem GUI Builder generiert k nnen diese als Aktivit t in einem Zustand definiert werden Auf diese Weise wird beim Eintreten eines Zustands die dazugeh rige GUI ausgef hrt Im Folgenden Abb 5 ist das Zustandsdiagramm aus Abb 4 dargestellt das um den ausf hrbaren Code der Masken in Form von Aktivit ten angereichert wurde Buchsuche Buchliste Suche_click Do Buchsuche Do Buchliste GUI GUI Details_click Buchinfo Do Buchinfo GUI Abb 5 Zustandsdiagramm Literatur Suche um die Masken angereichert 11 In Abb 5 wurden Masken mit Hilfenahme eines GUI Builders generiert und diese den Zust nden im Zustand
168. standsdiagrammdesigners referenziert und benutzt zu werden Sie erscheinen aber noch nicht auf der Toolbox Abb 28 da sie dieser noch nicht hinzugef gt wurden 39 Fallstudie CSharp Microsoft Visual C NET Entwurf Angebot Zustandsdiagrammi cs Entwurf K laj x Datei Bearbeiten Ansicht Projekt Erstellen Debuggen Daten Extras Fenster Hilfe Sm Sugi Beno p Debug y ql Hitteft Ear Bear aa milano 590 Et Toolbox 9 botneu cs AngebotiAngebot cs Angebot Angebots lung cs Entwurf Kunde Kundeneu cs Entwurf Angebot Zustan 1 cs Entwurf lt gt x Projektmappen Expl 4 X Zustandsdiagrammeditor Elemente Mela 18 X Zeiger T Projektmappe Fallstudie c S EN Fallstudie CSharp a 3 Verweise E Y Angebot 8 Angebot cs 8 AngebotNeu cs Angebotsanzeig Angebotserstell Angebotspflege Angebotssuche Zustandsdiagram B 3 Bestellung Bestellung cs Pizzaservice cs E Kunde Kunde cs ES Kundenanzeige Kundenerstellun Kundeneu cs Kundenpflege c Kundensuche cs App ico E AssemblyInfo cs Fassade cs 8 Pizzaservice cs v 4 Eigene Benutzersteuerelemente Aufgabenliste 21 Buildfehler angezeigte Aufgaben gefiltert mx Zwischenablagerin a Beschreibung gt jemein 4 Ausgabe al Bereit Abb 28 Toolbox vor dem Hinzuf gen der Toolboxitems f r
169. t tigen einer Taste sein Ereignisse l sen wie die virtuellen Tasten bei Denert Zustands berg nge aus Das System kann dabei in jedem Zustand auf verschiedene Ereignisse mit dem Wechsel in andere Zust nde reagieren Mit Hilfe von Ereignissen kann der Benutzer durch das Modell navigieren e Aktionen dies sind Operationen die w hrend einer Transition von einem Zustand zum anderen ausgef hrt werden Eine Aktion wird angesto en wenn ein Ereignis ausgel st wird Die Spezifikation von Aktionen wie sie Denert vornimmt Abschnitt 2 2 6 wird von uns nicht durchgef hrt da diese ber die reine Simulation einer Benutzungsschnittstelle hinausgehen w rde Masken werden in Form von Aktivit ten den Zust nden eines Zustandsdiagramms zugeordnet In jedem Zustand wartet das System auf eine Benutzereingabe Erfolgt eine Benutzereingabe so navigiert das System von einem Zustand zum Folgezustand Gel nge man durch eine Aktion in einen Endzustand so w ren keine weiteren Eingabe und somit keine Navigationsm glichkeiten mehr m glich da ein Endzustand das Ende eines Systems symbolisiert Dem Endzustand wird keine Maske zugeordnet weil keine Eingabe 38 mehr erfolgen darf Wenn man sich also im Endzustand befindet ist keine Maske mehr aktiv Alle Masken sind geschlossen und es ist keine mehr offen Wir verzichten somit auf die Definition eines Endzustands da das Ende eines Systems auch durch das Schlie en aller offenen Masken erreicht
170. tElement ZustandsdiagrammElement endElement initialize dient der Initialisierung einer Komponente bei ihrer Erzeugung Parameter Beschreibung ZustandsdiagrammDesigner designer Ein Designer des Typs ZustandsdiagrammDesigner String name Name der Komponente Point startPunkt Der Start Punkt an dem der Drag begann Dieser Punkt ist dem DragControl gebunden und nicht global daher muss er noch mit screenOffset addiert werden Point endPunkt Der End Punkt an dem der Drag endet Dieser Punkt ist dem DragControl gebunden und nicht global daher muss er noch mit screenOffset addiert werden ZustandsdiagrammElement startElement Das ZustandsgiagrammElement das an der Position des startPoint angesiedet ist Ist null wenn an dem startPoint kein Element vorhanden ist ZustandsdiagrammElement endElement Das ZustandsgiagrammElement das an der Position des endPoint angesiedelt ist Ist null wenn an dem endPoint kein Element vorhanden ist Tabelle 8 Parameter von initialize 6 5 2 ZDiagrammElementDesigner Die abstrakte Klasse ZDiagrammElementDesigner stellt eine Basisdesignerklasse zum Erweitern des Verhaltens einer Komponente im Entwurfsmodus dar ZDiagrammElementDesigner implementiert folgende Static Variablen 69 Static Variable Beschreibung Object HitMove Wird gesetzt wenn die Maus einen Punkt meist irgendwo in der Mitte des ZustandsdiagrammElement ber hrt hat
171. tellen von Zustandsdiagrammen verf gbar Aber ein Werkzeug das die Funktionalit t eines GUI Builders und eines Zustandsdiagramm Editors kombiniert wurde im Rahmen unsere Recherche nicht gefunden Daraus leitet sich die Notwendigkeit ab SUIT zu realisieren Die Implementierung eines eigenen GUI Builders wird nicht geplant siehe 1 2 3 Es wurden deshalb die GUI Builder Jigloo und Visual Studio Net GUI Builder n her betrachtet Die 28 Analyse hat dazu gef hrt dass wir uns f r den integrierten GUI Builder von Visual Studio Net als geeigneter GUI Builder zur Wiederverwendung f r das Tool dieser Bachelor Arbeit entschieden haben Weiterhin wurden die Zustandsdiagramm Editoren von Together und Visio betrachtet um neue sinnvolle Anforderungen f r die Realisierung eines eigenen Zustandsdiagrammeditor in SUIT finden 29 3 Theorie 3 1 Einleitung Den Schwerpunkt dieses Kapitels stellt die Erzeugung von Benutzungsschnittstellen mit Hilfe eines endlichen Automaten und Fensterentw rfen dar In Abschnitt 3 2 wird dieser Ansatz detaillierter erl utert und das im Rahmen dieser Bachelor Arbeit zu implementierende Tool vorgestellt Eine M glichkeit welche in Denert 1992 aufgezeigt wird ist die Modellierung von Benutzungsschnittstellen in Form von Interaktionsdiagrammen Diese Vorgehensweise wird im Rahmen dieses Kapitels in Abschnitt in 3 3 beschrieben In Abschnitt 3 4 wird die von uns im Rahmen dieser Bachelor Arbeit verwendete
172. ten hat ein Zustandsdiagramm gereicht um die gesamte Benutzungsschnittstelle zu beschreiben ohne dass es un bersichtlich wurde Bei gr eren Benutzungsschnittstellen kann diese bersichtlichkeit im Zustandsdiagramm Modell verloren gehen Um bersichtlichkeit zu gew hrleisten muss eine M glichkeit zur logischen Strukturierung des SUIT Zustandsdiagramm Modell geboten werden Diese Strukturierung Kann in Form von Hierarchien realisiert werden Hierarchien bieten hierbei eine M glichkeit ein Zustandsdiagramm in mehrere Teildiagramme zu unterteilen Das aktuelle SUIT Zustandsdiagramm hat den Aspekt der Hierarchie noch nicht integriert Da SUIT sich aber an Statechart Definition anlehnt Kann dies eingebaut werden Statechart bietet die M glichkeit Hierarchien Harel 1987 zu definieren und zu erzeugen In der n chsten SUIT Version sollte um Struktur und bersichtlichkeit einzuf hren diese Hierarchie in die SUIT Zustandsdiagramm Notation eingef hrt werden 106 10 2 2 Erweiterung Konsistenzerhaltung Die aktuelle SUIT Version ber cksichtigt nicht die Implementierungen von Funktionalen Aspekten der Benutzungsschnittstelle Das prim re Ziel von SUIT ist das fr he Prototyping In dieser fr hen Phase hat man noch kein detailliertes Verst ndnis ber die Funktionalit t Daher wurden in der aktuellen SUIT Zustandsdiagramm Notation keinerlei Konstrukte angeboten die diese Funktionalit ten im Modell ber cksichtigen In den sp ter
173. ttstellensystem gehen Au erdem w rde eine Komponente die Teil der Benutzungsschnittstelle werden m sste f r den SUIT Anwender bedeuten dass er eine zus tzliche Komponente in seinem Projekt zu verwalten und verstehen hat Aus diesem Grunde wurde in SUIT auch auf diese Komponente verzichtet In der aktuellen SUIT Version wird somit keinerlei Codegenierung f r den Aufruf des Folgezustands unterst tzt SUIT berl sst dies der Zust ndigkeit des Programmierers da dieser am besten bestimmen kann wie und wo diese Codestellen hingeh ren In der aktuellen SUIT Version wird bei der Simulation mit Hilfe des Zustandsdiagrammmodels bestimmt welcher Zustand der Aktuelle is um dann den entsprechenden Folgezustand Folgemaske aufzurufen Aber f r das endg ltige Benutzungsschnittstellesystem muss der SUIT Anwender selbst daf r sorgen 9 2 6 Konsistenzverlust in sp teren Phasen Mit der jetzigen SUIT Zustandsdiagramm Notation haben wir erreicht dass Benutzungsschnittstellen schnell und verst ndlich mit einem Zustandsdiagramm modelliert werden k nnen Die Usabilty Tests haben gezeigt dass diese unkomplizierte SUIT Zustandsdiagramm Notation stark dazu beigetragen hat diese Methodik der Benutzungsschnittstellen Modellierung verst ndlich und intuitiv umsetzbar zu halten Ziel ist es ein Tool zu bieten das m glichst fr h in den Etappen der Softwareentwicklung zum Einsatz kommt Das Abbilden von funktionalen Elementen war daher nie bestreben
174. tzungsschnittstelle also die auftretenden Abfolgen von Masken und die damit verbundenen Eingaben und Ausgaben zu beschreiben Was durch die obige Abbildung jedoch deutlich wird ist dass dieses Modell aus der Logik der Vorgehensweise heraus ein bestimmtes Muster eine Struktur aufweist Im Modell bilden die Masken die Knoten und die Pfeile mit denen die Masken verbunden werden die Kanten Wird eine Eingabe bet tigt so wird zu der Folgemaske gewechselt Beim n heren Betrachten des Modells handelt es sich um nichts anderes als einen endlichen Automaten Der endliche Automat ist folglich kein Resultat einer besonderen methodischen Vorgehensweise sondern ein Ergebnis das w hrend des bildhaften Entwurfs der Dialogabl ufe durch eine Anzahl von aufeinander folgenden Masken instinktiv entsteht Der endliche Automat ist also kein gezielt anvisiertes Ergebnis So instinktiv wie diese Betrachtungsweise scheint ist sie in der Literatur bis auf einige Ausnahmen wie Denert in Denert 1992 nicht beschrieben Denert beschreibt in Denert 1992 die Modellierung von Benutzungsschnittstellen in Form von Interaktionsdiagrammen diese sind eine Art endlicher Automaten Eine weitere M glichkeit endliche Automaten darzustellen sind Zustandsdiagramme Die Dialogabl ufe lassen sich wie bereits im Modell beschrieben auf einen endlichen Automaten zur ckf hren Endliche Automaten k nnen durch Zustandsdiagramme beschrieben werden Somit k nnen die Dialogabl
175. uf die GUI Builder Komponente auf die Simulationskomponente auf die Codeerzeugungskomponente Auf die Entwicklung eines neuen GUI Builders wurde verzichtet da der GUI Builder von Visual Studio sich hier anbietet wiederbenutzt zu werden und dadurch die Realisierung eines eigenen GUI Builders nicht erforderlich ist Somit kann Entwicklungszeit gespart werden 49 und der Anwender bekommt ein GUI Builder vorgesetzt mit dem er mehr oder minder vertraut ist Es wird somit auf die GUI Builder Komponente zur ckgegriffen die Visual Studio bereits zur Verf gung stellt Dieser Zugriff ist dank des Service Hierarchy Konzept von Net m glich da in Net mit diesem Service auch auf Instanzen des GUI Builder Designer zugegriffen werden kann Durch die Wiederverwendung des bereits in Visual Studios bestehenden GUI Builders l sst sich SUIT letztendlich in 3 eigenen Komponenten und eine fremd entwickelte Komponente aufteilen Abb 24 zeigt das Zusammenspiel dieser Komponenten Visual Studio Anwender Projekt Zustandsdiagramm Fassade Code Code ne a A Einbinden per Serializer NET Framework Zustandsdiagramm Codegenerierungs GUI Komponente komponente Designer Kompo Generiert aus dem Zustandsdiagramm die Fassaden nente Bietet Klassen zur Darstellung KI asse und Erstellung von Zustandsdiagrammen in Designer Ansicht an Simulationskomponente Simuliert den Ablauf des GUI System das mit Hilfe des Zustandsdiagramms
176. ulation Li ds 137 122 1 Systemanforderung SUIT wurde f r die Entwicklungsumgebung Visual Studio Net 2003 von Microsoft entwickelt Um SUIT zu benutzen sind Microsoft Visual Studio Net 2003 und das Microsoft Net Framework Version 1 1 Voraussetzung Getestet und entwickelt wurde SUIT mit dem Net Framework 1 1 4322 SP1 123 2 Installationshinweise 2 1 Installation von SUIT Bitte beachten Sie vor der SUIT Installation die Systemanforderungen in Abschnitt 1 Um SUIT zu Installieren legen Sie die SUIT CD in ihr CD ROM Laufwerk ein und starten Sie die sich auf der CD befundenen Setup exe Folgen Sie den Installationsanweisungen der Setup Routine bis zum erfolgreichen Abschluss der SUIT Installation 2 2 Installationen des Zustandsdiagramm Template In der Aktuellen SUIT Version Vers 1 00 unterst tzt SUIT zur Zeit nur f r die Net Sprache C einen Projectltem Template zur Erzeugung von Zustandsdiagrammklassen Daher gibt es auch nur eine Installaltionsbeschreibung f r das Einrichten des Template f r CF siehe 2 2 1 2 2 1 Installation von C Template Um f r C Projekte das Projektltem BenutzerschnittstellenZustandsdiagramm zu bekommen installieren Sie den C Template Kopieren Sie dazu das ganze Verzeichnis C auf der CD ROM in ihren Visual Studio Net 2003 Verzeichnis Das Visual Studio Net 2003 Verzeichnis finden Sie standardm ig unter C Programme Microsoft Visual Studio NET 2003 berschreiben Sie die vorh
177. umgebung Gitter dienen der Positionierung von Zustandsdiagrammelementen Zustandsdiagrammelemente k nnen somit vertikal oder horizontal ausgerichtet werden indem man sich am Gitter des Zeichenblattes orientiert Anders als in Together erh lt der Benutzer die M glichkeit seine Seite individuell einzurichten Die Gr e des Zeichenblattes kann vom Anwender beliebig definiert werden Die Seite kann im Querformat oder Hochformat dargestellt werden Der Benutzer kann au erdem noch die R nder des Zeichenblattes ndern Die Men s und Symbolleisten in Visio sind mit den Men s und Symbolleisten in anderen Microsoft Office Programmen vergleichbar so dass man standardisierte Verfahren zum ffnen Drucken und Speichern von Diagrammen benutzen kann Zustandsdiagrammelemente k nnen auf vielf ltige Weise hervorgehoben werden durch die Farbe das Muster die Farbe der Linien die das Muster bilden die St rke der Linien etc Au erdem stellt der Zustandsdiagrammeditor von Visio wie alle anderen Microsoft Office Programme verschiedene M glichkeiten zum Formatieren von Text zur Verf gung Ein weiterer Vorteil besteht in der M glichkeit des Hinzuf gens von Hyperlinks zu Zustandsdiagrammelementen denn mit diesen Verkn pfungen kann man zu einer anderen Seite in demselben Diagramm zu einem anderen Visio Diagramm zu einer beliebigen Datei oder zu einer Webseite wechseln Um eine einwandfreie Druckausgabe zu gew hrleisten bietet Visio eine
178. uptthemen gliedern Vorkenntnisse Bedienung und Methode Folgende Fragen wurden der Testperson gestellt Vorkenntnisse 1 Haben Sie schon einmal mit Visual Studio Net gearbeitet 2 Haben Sie schon einmal mit einem Zustandsdiagramm gearbeitet Wenn ja mit welchem Und wie w rden Sie SUIT anhand Ihrer Erfahrungen im Vergleich mit den anderen Zustandsdiagrammeditoren beurteilen 3 Haben Sie schon einmal Prototypen f r BSS erstellt Wenn ja wie umfangreich war der investierte Aufwand Bedienung 4 Wie beurteilen Sie die Bedienung von SUIT Sehen Sie vor allem Schw chen oder St rken in der Bedienung von SUIT Methode 5 Wie beurteilen Sie die Idee den Ansatz BSS mit Hilfe von Zustandsdiagrammen und Fensterentw rfen zu entwerfen F llt Ihnen diese Denkweise schwer 6 W rde die Genierung einer Fassade f r Sie eine Arbeitserleichterung bedeuten 7 Stellt die Simulation f r Sie eine hilfreiche Veranschaulichung ihres Modells dar 8 W rden Sie SUIT f r die Erstellung ihrer n chsten Prototypen nutzen wollen 9 Welche Schwachstellen sehen Sie in SUIT welche Verbesserungsvorschl ge w rden Sie anf hren 8 4 Ergebnisse Der Usability Test fand in einem Usability Labor uselab der Hochschule f r Angewandte Wissenschaften Hamburg statt Alle von der Testperson vorgenommenen Eingaben ber 92 Tastatur und Maus wurden w hrend der Bearbeitung der Testaufgabe in SUIT aufgezeichnet Neben dem Bildschirmgesche
179. verwaltungswerkzeug und Angebotsverwaltungswerkzeug und in das Kombi Werkzeug Bestellverwaltungskombiwerkzeug untergliedert Diese Werkzeuge werden nun miteinander durch ein Zustandsdiagramm Abb 48 wieder zum Gesamtsystem integriert Die Startmaske des Gesamtsystems Pizzaservice ist in Abb 47 zu sehen A Pizzaservice Kundenverwaltung Angebotsverwaltung Bestellungsverwaltungssystem Abb 47 Startmaske des Gesamtsystems Pizzaservice Zu Beginn befindet sich das System im Zustand start Durch das Bet tigen der Taste Kundenverwaltung gelangt das System in das Kundenverwaltungswerkzeug Abb 41 durch Bet tigen der Taste Angebotsverwaltung in das Angebotsverwaltungswerkzeug Abb 36 ber die Taste Bestellverwaltungssystem schlie lich gelangt man in das Bestellverwaltungskombiwerkzeug Abb 48 87 Mit Hilfe des entstandenen Zustandsdiagramms in Abb 48 kann nun das Verhalten der Benutzungschnittstelle des Pizzaservicesystems simuliert werden Das Zustandsdiagramm kann nun von der Simulationskomponenete interpretiert und automatisch ausgef hrt werden Start zur ck Click geheZu_start emdAngebotsverwaltung Click geheZu_angebotssuche BestellungiPiz cmdKundenverwraltung Click show_kundensuche zaservice cs Bereit zur Kundensuche Bereit zur Angebotssuche mdAngebotSuchen Click show_angebotssuche Kunde Kunden suche cs Angebot Ange
180. von ZustandsdiagrammElement erbenden Komponenten Startzustand Zustand und Zustandsuebergang in der Toolbox f r den ZustandsdiagrammDesigner aktiviert werden k nnen m ssen die von System ComponentModel Component abgeleitete Klasse ZustandsdiagrammElement und die Designer Klasse ZustandsdiagrammDesigner vor der Klassendeklaration folgenden Code enthalten ToolboxItemFilter SUIT ZustandsdiagrammEditor ZustandsdiagrammElement ToolboxItemFilterType Require ToolboxlItemFilter String ToolboxltemFilterType gibt die f r ein Toolboxelement zu verwendende Filterzeichenfolge und den Filtertyp an Der ToolboxltemFilterT ype ToolboxItemFilterType Require gibt an dass die Filterzeichenfolge SUIT ZustandsdiagrammEditor ZustandsdiagrammElement f r ein Toolboxelement vorhanden sein muss um ein Toolboxelement zu aktivieren Diese Bedingung ist f r den Startzustand Zustand und Zustands bergang gegeben da diese Klassen von ZustandsdiagrammElement abgeleitet sind und somit die Filterzeichenfolge SUIT ZustandsdiagrammEditor ZustandsdiagrammElement erben Des Weiteren m ssen die Klassen ZustandsdiagrammDesigner und ZustandsdiagrammElement ber eine bereinstimmende Filterzeichenfolge verf gen In unserem Code verf gen beide Klassen ber die Filterzeichenfolge SUIT ZustandsdiagrammEditor ZustandsdiagrammElement Die Toolboxitems vom Typ Startzustand Zustand und Zustandsiibergang erfiillen jetzt die Bedingung innerhalb des Zu
181. wendigkeit dieser Methode k nnte au erdem noch darin liegen dass z B AnzeigeKunde als Funktionalit t h tte daf r zu sorgen dass der ausgesuchte Kunde aus der Datenbank geholt und angezeigt werden muss Jedoch ist das nicht immer der Fall dass beim Zustands bergang eine Aktion ben tigt wird Diesen Mangel soll in der n chsten SUIT Version behoben werden Es ist geplant dass die SUIT Zustandsdiagrammnotation f r die n chste Version auf die Eigenschaft hin erweitert werden kann Aktionen bei Transitionen als eine optionale Angabe anzusehen und nicht mehr als notwendige Pflichtangabe 102 Wenn man unter diesem Aspekt genauer berlegt ist es fragw rdig ob der Code f r den Aufruf der Folgemaske wirklich idealerweise immer in der Aktion generiert werden sollte Dagegen spricht vor allem die Tatsache dass es nicht in jeder Aktion Sinn macht den Code f r den Folgemaskeaufruf zu generieren Da es Aktionen geben kann nach deren Ausf hrung unterschiedliche Folgemasken geladen werden m ssen ist eine Codegenerierung f r den Aufruf der Folgemaske in der Aktion sogar fatal In Abbildung 4 ist eine Aktion SpeichernKunde zu erkennen die in zwei Transitionen benutzt werden Diese zwei Transitionen haben unterschiedliche Folgemasken einmal zur BestellungDetails cs und einmal zu KundenListe cs W rde hier Code f r den Aufruf der Folgemaske in der Aktion SpeichernKunde generiert werden so ist v llig unklar ob nur die Folgemaske nun B
182. wenn sich am Element bzw in seiner Darstellung etwas ver ndert Dies kann z B beim Selektieren durch zeichnen eines Selektionsrahmen erfolgen 70 GetHitTest public abstract object GetHitTest int x int y Diese Methode berpr ft ob das Element mit dem Mauszeiger ber hrt wurde Der Root Designer wird jedes Mal diese Methode aufrufen wenn ein Maus Move Ereignis ausgel st wird Das zur ckgegebene Objekt ist Null wenn die Koordinaten nicht auf dem Element liegen Wenn die Koordinaten auf dem Element sind gibt die Methode ein Identifizierungsobjekt wieder dass der Designer sp ter weiter benutzen kann Dieses R ckgabeobjekt kann der GetCursor DrawDragFeedback und Drag Methode bergeben werden Die Methode GetHitTest gibt ein Object Tabelle 4 zur ck dass die Ber hrung identifiziert Dieser kann null sein wenn der Punkt sich nicht im Element befindet Parameter Beschreibung Int x Die X Koordinate f r den Ber hrungstest Int y Die Y Koordinate f r den Ber hrungstest Tabelle 10 Parameter von GetHitTest IsInRect public abstract bool IsInRect Rectangle r Diese Methode berpr ft ob eine Komponente in einem bergebenden Rechteck r enthalten ist Diese Methode wird bei einer Selektion durch einen rechteckigen Bereich das per Drag amp Drop gezogen worden ist verwendet um zu berpr fen ob das Element in diesem Rechteck enthalten ist Sie gibt einen Boolean Wert zur ck der true
183. werden kann Denn wenn keine Maske mehr offen ist bedeutet das dass man sich in keinem der definierten Zust nde des erstellten Zustandsdiagramms mehr befindet Das Ende eines Systems kann also auch dadurch erreicht werden wenn alle Masken geschlossen werden und keine mehr offen ist Die Einsparung des Endzustands f hrt zur Einsparung vieler Zustands berg nge Die Transitionen die zum Endzustand hinf hren fallen dadurch weg Sie werden im Modell nicht mehr visualisiert Die Einsparung dieser Zustands berg nge erh ht die bersichtlichkeit innerhalb des modellierten Zustandsdiagramms Denn viele GUI Systeme k nnen von jedem Dialog aus beendet werden Das w rde in einem Zustandsdiagramm bedeuten dass von jedem Zustand eine Transition zum Endzustand f hrt Dadurch werden Zustandsdiagramme un bersichtlich und un berschaubar Das Weglassen eines Endzustands f hrt also zur Einsparung vieler Zustands berg nge und verhilft zu erh hter bersichtlichkeit innerhalb des Zustandsdiagramms 3 4 2 SUIT Notation Zustand Ein Zustand Abb 19 wird durch ein Rechteck visualisiert Er enth lt seine Bezeichnung und eine Aktivit t Bei der Aktivit t handelt sich hierbei um eine Referenz auf den ausf hrbaren Maskencode siehe 1 2 Bezeichnung Maske cs Abb 19 Zustand Ein Startzustand Abb 20 besteht aus drei Komponenten ein gef llter Kreis einen Zustands bergang und einen Zustand wobei der Zustands bergang vom gef llte
184. werkzeug angezeigt gepflegt gel scht und neu angelegt werden Bei den beiden identifizierten Werkzeugen handelt es sich um einfache Werkzeuge mit elementarer Funktionalit t da sie wiederkehrende Arbeitsabl ufe wie Kunden suchen oder Kundendaten pflegen unterst tzen 79 Nachdem die elementaren Werkzeuge Kundenverwaltungswerkzeug und Angebotsverwaltungswerkzeug identifiziert worden sind widmen wir uns im Folgenden der graphischen Repr sentation der einzelnen Werkzeuge 7 3 3 Entwicklung der Benutzungsschnittstelle auf Basis eines Zustandsdiagramms Eine Benutzungsschnittstelle besteht in der Regel aus einer Menge von Masken und Dialogboxen zwischen denen durch Eingabeaktionen Men auswahl OK Button usw hin und her gewechselt werden kann In der zustandsbasierten Modellierung befindet sich die Benutzungsschnittstelle immer dann in einem Zustand wenn sie auf eine Eingabe wartet Tritt ein Ereignis z B durch das Bet tigen einer Taste auf so navigiert die Benutzungsschnittstelle von einem Zustand zu einem anderen Zustand Werden also Benutzungsschnittstellen in Form von Zustandsdiagrammen und Fensterentw rfen modelliert so kann jedem Zustand eine Maske zugeordnet werden siehe 1 2 Im Folgenden wird dies zun chst f r die identifizierten Werkzeuge Angebotsverwaltungswerkzeug und Kundenverwaltungswerkzeug in SUIT durchgef hrt 7 3 4 Angebotsverwaltungswerkzeug Wie man dem Anwendungsfalldi
185. y setDefaultClose peration Windowlconstants DISPOSE_ON_CLOSE getContentPane setLayout null i jButtoni new JButton getContentPane add jButtoni jButtonl setText jButtonl jButtonl setBounds 25 21 140 28 jButtonl addictionListener new ActionListener public void actionPerformed ActionEvent evt System out println jButtonl actionPerformed event evt TODO add your code for jButtonl actionPerformed jButton2 new JButton getContentPane add jButton2 jButton2 setText jButton2 jButton2 setBounds 217 21 140 28 pack setSize 400 300 catch Exception e e printStackTrace Abb 13 Code Ausschnitt einer GUI mit 2 JButtons und ActionListener in Jigloo F gt man einer GUI Komponente in Abb 13 JButtonl einen ActionListener vom Typ Anonymous hinzu so wird der Code wie Block A in Abb 8 dargestellt Wird nun in der Methode actionPerformedO Code einprogrammiert wird dieser beim L schen des ActionListeners ber Jigloo ebenfalls gel scht Vorteilhaft ist hierbei jedoch dass beim erneuten Erzeugen eines ActionListeners des Typs Anonymous ber Jigloo der vom Anwender erzeugte Code wieder eingef gt wird sofern noch keine Speicherung des Codes erfolgt ist 2 4 2 Integrierter GUI Builder von Microsoft Visual Studio Net Der GUI Builder ist ein fester Bestandteil von Visual Studio Net Visual Studio Net 2003 Microsoft Visual Studio Net ist nicht
186. zerschnittstellenmodellierung umsetzt kein Ergebnis Es zeigte sich dadurch die Notwendigkeit SUIT zu realisieren Der Einsatz von SUIT in einer Fallstudie am Beispiel eines Pizzalieferservice Systems hat sich als praxistauglich erwiesen Neben einer Fallstudie wurde SUIT noch in einem Usability Labor von freiwilligen Testern getestet Die Tester u erten sich positiv ber die Vorgehensweise Benutzungsschnittstellen mit Hilfe von Zustandsdiagrammen und Fensterentw rfen zu modellieren Alle Testpersonen sind der Meinung dass diese Methode eine gro e Hilfe f r die Erstellung von Benutzungsschnittstellenprototypen darstellt und ihnen manuelle Arbeit in gr erem Umfang erspart Die in der Vision geschilderten Erwartungen an SUIT haben sich im Usability Labor best tigt Die Tester k nnen sich gut vorstellen dass sich durch die schnelle Prototyperzeugung in SUIT die Benutzer Entwickler Kommunikation verbessern w rde Auch die Fassadengenerierung die eine Schnittstelle zwischen der Interaktionskomponente und der funktionalen Komponente darstellt wird von den Testern als positiv eingestuft Die automatische Fassadengenerierung bietet somit eine Schnittstelle zur Weiterentwicklung des Prototyps und nimmt den Programmierern Programmieraufwand ab Die in Rahmen dieser Bachelor Arbeit durchgef hrten Tests an SUIT deuten darauf hin dass SUIT die gew nschten Aussichten die in der Vision beschrieben wurden erf llt Wie sich SUIT letztendlich

Download Pdf Manuals

image

Related Search

Related Contents

Origin Storage 1TB 3.5" 7.2k SATA  Honeywell SmartLine EU Meter Users manual, 34-ST-25-19  Wasp WPS150  Valueline 1m RCA m/m  VISJET 2.0 User Manual  - Ibiblio  Dossier cas par cas ZAEU  Inspur SA5212H2 User Manual  Samsung SL50 Digital Camera User Manual  断 水のお知らせ  

Copyright © All rights reserved.
Failed to retrieve file