Home

Endbericht - Syspect - Carl von Ossietzky Universität Oldenburg

image

Contents

1. 81 9 3 Strukturdiagramm der Bankverwaltung aus MORW05 82 10 1 Klassenstruktur unter JUnit dis A AR 85 10 2 Klassenstruktur unter JUnit ip e 22 tr edo de Bele 88 10 3 Generierung von JUnit Testklassen aus JML Dateien 91 12 1 Schematische bersicht der Entwicklungsumgebung 106 12 2 Schematische bersicht ber die Exportfunktionn 110 13 1 Elemente von Zustandsdiagrammen 115 13 2 Diagrammelemente eines Strukturdiagramms 117 13 3 Aufbau einer CSP OZ DC Klasse 119 13 4 XML Beispiel einer CSP OZ DC Klasse 2 2 2 2 222 nn 120 13 5 Aktuelles XML Format f r Phaseneventautomaten 123 13 6 Allgemeine Anwendungsf lle 124 13 7 Anwendungsf lle in der Klassendiagrammansicht 129 13 8 Anwendungsf lle in der Strukturdiagrammansicht 133 13 9 Anwendungsf lle in der Zustandsdiagrammansicht 138 14 1 Klassendiagramm f r die Bank nach dem alten neuen UML Profil 144 14 2 Klassendiagramm f r die ATM nach dem alten neuen UML Profil 144 14 3 Strukturdiagramm Komponentendiagramm des Systems nach dem al ten neuen UML Profil sf 29 od A ee oe eS 145 15 1 Abh ngigkeiten des Syspect Werkzeuges 148 15 2 Wesentliche Abl ufe des GEF Frameworks 150 15 3 Abh ngigkeiten von Library Plug ins 153 15 4 Extension Points in Syspect sale au tr avi male a e 154 15
2. CARL VON OSSIETZKY un versit t OLDENBURG FAKULTAT II DEPARTMENT FUR INFORMATIK Endbericht 12 Oktober 2006 Projektgruppe Syspect Zaemer Carl von Ossietzky Universitat Oldenburg Fakultat II Department f r Informatik Abteilung Entwicklung korrekter Systeme Endbericht Projektgruppe Syspect 2 12 Oktober 2006 Endbericht INHALTSVERZEICHNIS Inhaltsverzeichnis Einleitung 1 I Seminarausarbeitungen 3 1 Eclipse 7 DI Nas ist ECU ti a a A A A 7 1 1 1 Geschichte von Eclipse eva ae Ha eg rare 7 1 1 2 Grundlegende Eigenschaften von Eclipse K 1 1 3 Eclipse Projekte a er ey 4 2 BE ee EE 8 1 2 Projektverwaltung in Eelipse va az Ks a2 ta sata andern a 8 1 2 1 Arbeitsbereich 24H a a 8 1 2 2 Projekte erzeugen a alk ea er ae here 8 1 2 3 Perspektiven in Eclipse 2 2 2 CE nn 9 1 2 4 Quellcode editieren 3 2 4 4 282 22 Year Ae Pree Ha 11 1 2 5 Kompilieren und Debuggen e rai 2x4 22 2 Kuna a Rs 11 1 2 6 Dokumentation go aa a EE thc Ed 12 1 3 Versionsverwaltung in Eclipse o 12 13 1 CVS Befehle in Eclipse o 12 1 3 2 Erweiterte Funktionen 2 4 406 El dos Ed oe Eds Bok Sook A 13 1 3 3 Subversion in Belipse za sa Js rn sata EE 13 1 4 Der Build Prozess mit ANT 22 2 CE m nn nenne 13 LAT Was ist AN a A ee ee 13 1 4 2 Syntax AAA A a a aed A 13 t43 ANT BIS AA er De a e a Te er A 14 1 4 4 ANT in Eclipse avin y ha ey Rey A Gade kn 15 2 Eclips
3. Abbildung 13 3 Aufbau einer CSP OZ DC Klasse Die UML Darstellung einer CSP OZ DC Spezifikation soll in eine XML Repr sentation f r CSP OZ DC exportiert werden k nnen Dieses XML Format f r CSP OZ DC wird weiter ben tigt um daraus eine XML Darstellung von Phasen Event Automaten oder KTRX Quellcode f r die Darstellung der Spezifikation zu generieren 1 Abbildung 13 3 zeigt den Aufbau einer CSP OZ DC Klasse welche in die Ab schnitte Ancestors Interface CSP Object Z und Duration Calculus aufgeteilt ist Die Definition einer CSP OZ Klasse ist aus MORWO5 bernommen wobei der Klasse noch ein Abschnitt f r DC Gegenbeispielformeln hinzugef gt wur de Die einzelnen Abschnitte sollen strukturiert im CSP OZ DC XML Schema vorhanden sein Auf der obersten Ebene des XML Dokuments werden globale Definitionen und Klassen aufgef hrt 2 Beispielhaft ist der grobe Aufbau des XML Dokumentes einer CSP OZ DC Klasse test in Abbildung 13 4 dargestellt 3 Die Darstellung der Object Z Ausdr cke soll in ZML erfolgen 4 Die Darstellung der Duration Calculus Formeln soll m glichst mit der Darstellung von Roland Meyer Mey05b bereinstimmen Projektgruppe Syspect 119 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION 5 Es soll m glich sein Object Z Datentypen sowohl auf globaler Ebene als auch innerhalb der einzelnen Klassen zu definieren lt xml version 1 0 encoding UTF 8 gt lt cod xmlns xsi Na
4. Projektgruppe Syspect T 12 Oktober 2006 Endbericht KAPITEL 1 ECLIPSE Die Eclipse Entwickler haben es sich zum Ziel gesetzt eine robuste voll ausgestatte te Industrieplattform f r die Entwicklung hoch integrierter Werkzeuge zur Verf gung zu stellen Verwirklichen wollen sie dies unter anderem durch eine Struktur die nur die Plattform als Grundger st vorsieht und alle Funktionen als Plug ins an die Platt form andocken l sst Dadurch wird erreicht dass man als Benutzer nie mehr als die gew nschten Funktionen installieren muss Andere komplexere Entwicklungsumgebun gen wirken aufgrund des Funktionsumfangs oft berladen und sind schwerer erweiter bar Positiv bewerten l sst sich auch die zum Teil erreichte Unabh ngigkeit von Pro grammiersprachen da f r viele beliebte Programmiersprachen ein Plug in f r Eclipse existiert oder entwickelt wird 1 1 3 Eclipse Projekte Zu Eclipse geh ren drei gro e Projekte n mlich das Eclipse Project EFIb das Eclipse Tools Project EFId und das Eclipse Technology Project EFle Das Eclipse Project umfasst Plattform Java Development Tools JDT und Plug in Development Environment PDE und hat es sich zum Ziel gemacht die Plattform und Grundger st zu berarbeiten und weiter zu entwickeln Das Eclipse Tools Project beinhaltet schlicht die wichtigsten Werkzeuge f r Eclipse Die Aufgabe ist die Koordination zwischen den Entwicklern um berschneidungen und Doppelungen bei Komponent
5. t ContentProvider 0 Widget inputChanged Widget dk y one Modell setContentProvider T Modell A setLabelProvider gt setinput LabelProvider Abbildung 2 7 Architektur einer Ansicht Sha04 2 2 4 Perspektiven Eine Perspektive vereint Ansichten mit Editoren und erm glicht es aus diesem Grund die Benutzeroberfl che f r Eclipse auf bestimmte Benutzeraufgaben und rollen aus zulegen Die komplette Ausrichtung und Aufteilung der Oberfl che wird durch eine Perspektive wiedergegeben Es gibt beispielsweise eine Java Perspektive die speziell f r die Entwicklung von Java Programmen oder eine Java Debug Perspektive die op timal f r den Debug Vorgang ausgerichtet ist Eine Perspektive kann sowohl ber die Benutzeroberfl che von Eclipse selbst als auch ber die Plug in Entwicklung erstellt werden ber die Oberfl che kann dies ber den Men punkt Window eingestellt und erstellt werden Bei der Plug in Entwicklung wird die Perspektive durch eine extension auf den extension point org eclipse ui perspectives definiert und durch die Im plementierung der Klasse IPerspectiveFactory initialisiert Diese bestimmt lediglich die einzelnen anzuzeigenden Komponenten und richtet diese aus 2 3 Features Plug ins verpacken Features dienen dazu Plug ins zu verwalten zusammenzufassen und diesen ein Pro duct Branding aufzusetzen Dadurch ergibt sich die M glichk
6. 2 2 2 2 n 65 7 4 1 CSP OZ Klassen ee ERS A E eae E E E By 66 TAD Semantik id a OE eS OT AEN BE a 66 O eA A lS ate a Aad ee Dal alia hag A he a ha a 67 8 CSP OZ DC und PEA 69 841 ES LAA A E A AA A 69 8 2 Duration Call u area 69 tel EE EE 8 a a EE a aa A 69 a Vi at apart Ge partys Opa eae pty ie p at a Um 70 B23 Beispiele tte a ei Dres Ge Pate Gk Pate Gok Pate Gee Pate ehe 71 8 3 Phase Event Automata os sr ee ee re ES 72 sAr OSPOD pen ee D eT e aes aufn ala EE 72 BAT CSP Tel g iia A le A a a die AA 73 8 4 2 Object Z Teil ar ange e PA 73 84 3 MG Vell na a e rar as e rent A 73 8 4 4 Wedel Checking u area Ber era a d 74 SA Beispiel unseren Sale oe AE E E Boke os 74 Go Zusammenfassung to de Bee en EO See AR AA 75 9 Ein UML Profil fiir CSP OZ DC TT GA Einleitung EEN 77 E EE en et fen ays 77 9 2 1 Capsule ate ann eh a in een 78 9 2 2 0 SPTOLOCO era o ae lS ES ES ASA AS 78 9 2 3 bersetzung der Klassendiagramme 78 9 2 4 bersetzung der Statemachines 79 9 2 5 bersetzung der Strukturdiagramme 79 0 3 BEISPIEL e ace a a ars A nn a re EA 80 9 4 Zusammenfassung A s x ale ae 82 Projektgruppe Syspect iii 12 Oktober 2006 Endbericht INHALTSVERZEICHNIS 10 Software testen 83 IMP e e o e A A E e A AR 83 10 2 TES MC a de A le RR le RA RR le A FIR 83 MA A ee RE ee See NLS E E 84 10 3 1 JUnit Framework a area pi eos De as we he ats eh elated 84 103 ZANT
7. In diesem Abschnitt werden alle Elemente beschrieben die f r Komponentendiagram me wichtig sind Generell zu beachten ist dass hier alle Klassen auf der Viewable Ebene angesiedelt sind und es f r sie keine eigenen Klassen auf der reinen Model Ebene gibt e IComponent repr sentiert eine Komponente Eine Komponente ist gewisserma en eine Capsule Instanz bzw jede Komponente bseitzt eine Capsule als Model e Eine Komponente kann mehrere IPorts haben e IPort und IComponent erben beide von IConnectorContainer Dies bedeutet sie k nnen beide ber IConnectorConnection mit IConnector Instanzen ver bunden sein Sie verwalten aber auch direkt die Instanzen der Konnektoren mit denen sie verbunden sind Diese redundante Datenhaltung ist dem Umstand ge schuldet dass die IConnectorConnection f r die grafische Darstellung relevant ist f r den Export jedoch nicht deswegen ist f r letzteren sozusagen die M g lichkeit eingebaut direkt die Konnektoren abfragen zu k nnen e IConnector ist das Superinterface f r IProvidedInterface und IRequiredInterface Ein IConnector kann ber ein IDelegate mit einem IPort verbunden sein Ein IConnector kennt immer sein IInterface dass durch ihn bereitgestellt pro vided oder von ihm ben tigt required wird e TAbstractConnector ist das Superinterface von IConnector und IAssemblyConnector e IComponentContent ist das Superinterface von IComponent und IConnector Es ist die Schnittstelle
8. N neu 0 3 aktuellerStock gt 0 aktuellerStock lt 3 aktuellerStock gt 0 aktuellerStock lt 3 aktuellerStock neu Abbildung 7 13 Z Schema der Operation fahreZu fahreZu A Fahrstuhl neu 0 3 aktuellerStock neu Abbildung 7 14 Z Schema der Operation fahreZu mit A Operator 7 4 Die Spezifikationssprache CSP OZ CSP OZ ist eine Kombination der Spezifikationssprachen CSP und Object Z Mit CSP OZ ist eine Spezifikation reaktiver Systeme mit einer Prozess und einer Datensicht m glich Der Vorteil der Kombination ist dass Kommunikationen im CSP Teil Aus wirkungen auf Datenzust nde im OZ Teil haben k nnen Somit sind CSP OZ Klassen im Vergleich zu Object Z Klassen aktiv Am Beispiel des Fahrstuhls soll in Abbildung 7 15 das Zusammenwirken gezeigt werden knopfDruecken fahreZu Abbildung 7 15 Z Schema der Operation fahreZu Die Kommunikation knopfDruecken hat keinen Einfluss auf die Datenhaltung des Fahr stuhls Die Kommunikation fahreZu hingegen ver ndert den gespeicherten aktuellen Stock der CSP Teil muss mit dem Object Z Teil kommunizieren Projektgruppe Syspect 65 12 Oktober 2006 Endbericht KAPITEL 7 CSP OZ KOMBINATION ZWEIER METHODEN 7 4 1 CSP OZ Klassen In Abbildung 7 16 ist das Format einer CSP OZ Klasse gezeigt Sie besteht aus einem Interface in dem alle Kan le deklariert werden Darauf folgt der CSP Teil und dann der Object Z Teil Z besteht
9. main Py ident gt Py O ready setup Pyar Pyar result Pyar auth Pyar debit Pyar Abschlie end muss noch das Strukturdiagramm der Anwendung Abbildung 9 3 ber setzt werden Hier ist zu sehen dass eine Instanz der Bank zwei ATMs und eine ML_ATM Multi Language ATM zu erzeugen sind Die Bank und die ATMs m ssen ber den gesamten Operationen die die Bank zur Verf gung stellt synchronisiert wer den Das Synchronisationsalphabet der ATMs besteht aus den Broadcast Operationen setup und ready Werden nun noch die Operationen in die Klasse eingetragen so erh lt man Projektgruppe Syspect 81 12 Oktober 2006 Endbericht KAPITEL 9 EIN UML PROFIL F R CSP OZ DC System ti 2 ATM W use USE ini i use Bank H ML ATM wd w lg 8 gw 19 Abbildung 9 3 Strukturdiagramm der Bankverwaltung aus MORW05 System local_chan ident local_chan ready local_chan setup local_chan auth local_chan debit local_chan result main Bank CLIENTS ident ready auth debit setup result CLIENTS ATM ATM ML_ATM ready setup ready setup Hierbei wurden die ports use und 1g ignoriert um die bersichtlichkeit zu erh hen und um keine Operationen zu definieren auf die im gesamten restlichen Beispiel keine Riicksicht genommen wurde 9 4 Zusammenfassu
10. 11 3 1 Umgang mit Dateien Was das Umgehen mit Dateien angeht sind die beiden betrachteten Programme unter schiedlich W hrend CVS nur Unterschiede von Textdateien festh lt erstellt Subversion mit einem speziellem Algorithmus auf den im Rahmen dieser Arbeit nicht n her ein gegangen werden kann Diffs auch auf Bin rdateien Subversion geht bei jeder Datei ersteinmal davon aus dass es sich um eine Bin rdatei handelt und erstellt das Diff und speichert dieses ab Im Arbeitsverzeichnis wird zus tzlich gespeichert ob es sich bei der Datei um eine Bin rdatei oder eine Textdatei handelt Bei einem Update werden nur die nderungen an den Textdateien bertragen Mit Subversion ist es auch m glich Dateien zu verschieben zu l schen zu kopieren und umzubenennen ohne die History zu verlieren welche bei den Operationen die CVS anbietet verloren geht falls die Operation berhaupt unterst tzt wird 11 3 2 Umgang mit Verzeichnissen Der Umgang mit Verzeichnissen ist mit dem der Dateien vergleichbar Unter Subversion ist es m glich Verzeichnisse zu verschieben zu l schen zu kopieren und umzubennen und das Repository merkt sich den Ursprung CVS l sst einmal vorhandene Verzeich nisse nicht mehr ndern Projektgruppe Syspect 96 12 Oktober 2006 Endbericht KAPITEL 11 VERSIONSVERWALTUNG 11 3 3 Ignore Optionen und Properties CVS hat eine Datei cvsignore In diese kann man Dateinamen oder Dateiendungen also zum B
11. Daten werden in einem Z Schema dargestellt um sie zu strukturieren JW96 Dieses hat entweder die Form Name Deklaration Praedikat oder wird als Schema Box dargestellt Diese hat ebenfalls die Bestandteile Name Deklaration und Praedikat In der folgenden Abbildung 7 11 wird die Datenhaltung eines Fahrstuhls als Z Schema Box dargestellt Fahrstuhl aktuellerStock N aktuellerStock gt 0 aktuellerStock lt 3 Abbildung 7 11 Z Schema Fahrstuhl 7 3 2 Transitionen In Z sollen nicht nur Datenzust nde beschrieben werden sie sollen auch ver ndert werden k nnen Um die Wirkung von Operationen auf die Variablen eines Zustands raumes auszudr cken werden zus tzliche Versionen eines Zustandsraums eingef hrt die dekoriert werden vgl Abbildung 7 12 _ Fahrstuhl aktuellerStock N aktuellerStock gt 0 aktuellerStock lt 3 Abbildung 7 12 Dekoriertes Z Schema Fahrstuhl Operationen werden ebenfalls als Z Schema dargestellt Wir betrachten in Abbildung 7 13 die Operation fahreZu die den aktuellen Stock des Fahrstuhls ver ndert Da ungestrichene und gestrichene Variablen in allen Z Schemata f r Operationen vor kommen darf man verk rzt den A Operator verwenden Das Schema darf verk rzt wie in Abbildung 7 14 geschrieben werden Projektgruppe Syspect 64 12 Oktober 2006 Endbericht KAPITEL 7 CSP OZ KOMBINATION ZWEIER METHODEN fahreZu aktuellerStock N aktuellerStock
12. Eclipse Foundation Inc GEF Eclipse Plug in January 31 2006 http www eclipse org gef Eclipse Foundation Inc A shape diagram editor September 17 2006 http www eclipse org articles Article GEF diagram editor shape html eNode Model view controller pattern http www enode com x markup tutorial mvc html March 27 2006 J Faber ETCS Case Study EM Treatment of Emergency Mes sages http csd informatik uni oldenburg de jfaber d1 EM_ description pdf October 27 2005 Karl Fogel and Moshe Bar Open Source Development with CVS http cvsbook red bean com cvsbook html October 2005 3rd Edition Fujaba Developer Group The Fujaba API http wwwcs uni paderborn de cs fujaba documents developer Fujaba index html Website fujaba de October 21 2005 Failures divergence refinement model checker http www fsel com Dr Bernhard Rumpe Florian H zl Markus Pister Merkblatt JML http www4 in tum de lehre vorlesungen sw_engineering WS0203 uebung merkblattJML pdf January 01 2006 Clemens Fischer Combination and Implementation of Processes and Data from CSP OZ to Java PhD thesis Bericht Nr 2 2000 2000 C Fischer E R Olderog and H Wehrheim A CSP View on UML RT structure diagrams Technical report Department f r Informatik Univer sit t Oldenburg 2001 Free Software Foundation GNU make http www gnu org software make April 02 2006 Free Software Foundation GNU General Public
13. Es bietet drei verschiedene Darstellungen e Diagram Explorer In dieser Darstellung werden in einem Projekt nur die Dia gramme dargestellt Dadurch ergibt sich eine Ansicht auf die Viewable Ebene des Models e Model Explorer Hierbei werden in einem Projekt nur die Elemente der Model Ebene dargestellt Es werden also keine Diagramme als Kinder von Projekten angezeigt Zustandsautomaten tauchen allerdings in dieser Ansicht als Kinder ihrer Capsules auf e Project Explorer In dieser Ansicht werden sowohl die Viewable Ebene als auch die Model Ebene angezeigt Schnittstellen Das Navigator Plug in stellt die Extension Points actioncontributor und toolbarcontributor zur Verf gung Der toolbarcontributor Extension Point erm glicht es anderen Plug ins zum Beispiel Editoren Actions in der Werkzeugleiste des Navigators unterzubringen Der actioncontributor Extension Point bietet eine Schnittstelle um anderen Plug ins zu erm glichen auf Doppelklicken in der Baumansicht zu reagieren Hierzu muss nur das Interface de syspect navigator ep IDoubleClickContributor implementiert werden Das Plug in erweitert die Eclipse Extension Points org eclipse help toc org eclipse ui perspectiveExtensions und org eclipse ui views siehe Abschnitt 15 2 2 S 154 Es gibt weitere Abh ngigkeiten zu folgenden Plug ins de syspect core Projektgruppe Syspect 163 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF org eclipse core runt
14. Projektgruppe Syspect 73 12 Oktober 2006 Endbericht KAPITEL 8 CSP OZ DC UND PEA 8 4 4 Model Checking Mit Hilfe der gemeinsamen Semantik f r CSP OZ DC ist es m glich Spezifikationen in dieser Kombination von Spezifikationssprachen zu erstellen und sie zu Model Checken Das Model Checking geschieht auf folgendem Weg Die Einzelteile der Spezifikation werden in PEA umgewandelt Die parallele Komposition dieser PEA kann dann in Timed Constraint Systems bersetzt werden f r die Model Checker bereits existieren Die bersetzung ist in HM05 beschrieben 8 4 5 Beispiel Um einen Einblick zu bekommen wie eine Spezifikation in CSP OZ DC und eine bersetzung in PEA aussieht betrachten wir folgendes Beispiel Die CSP OZ DC Spezifikation in Abbildung 8 2 beschreibt einen Z hler der sich um 0 bis 2 erh hen kann bei jedem Schritt nie gr er wird als 5 und bei dem 2 Resets mindestens 5 Zeit einheiten auseinander liegen Zus tzlich d rfen keine 5 Zeiteinheiten mehr vergehen sobald der Z hler ber 2 steigt so dass dann auf jeden Fall ein Reset folgen muss In Abbildung 8 3 ist der Automat zu sehen der sich bei einer bersetzung des CSP Teils ergibt Abbildung 8 4 zeigt den Automaten zum Object Z Teil Die bersetzung des DC Teils ist in Abbildung 8 5 zu sehen Class method inc increment 0 2 method reset main inc GO GO inc GO O reset main com_reset
15. berpr ft ob das entwickelte System die vertraglichen Vereinbarungen erf llt d h das Sys tem wird gegen das Pflichtenheft das den vertraglichen Rahmen vorgibt gepr ft Die einzelnen Teststufen bauen hinsichtlich der Testobjekte aufeinander auf Das Tes ten von h heren Stufen sollte erst dann erfolgen wenn die Tests niedriger Stufe mit ausreichendem Erfolg abgeschlossen wurden Die Gesamtheit aller Tests l sst eine Be wertung der Qualit t der Software zu und ist somit ein wesentlicher Bestandteil der Qualit tssicherung Sch04 10 3 JUnit JUnit ist ein Framework das zum Testen von Java Programmen entwickelt wurde Die beiden Hauptverantwortlichen dieses Projektes waren Erich Gamma und Kent Beck JUnit ist Open Source Software und wurde unter der IBM Public License ver ffentlicht Mittlerweile existieren hnliche Produkte f r andere Programmiersprachen Besonders geeignet ist dieses Testframework zum Automatisieren von Tests bez glich einzelner Klassen Im Zusammenhang mit JUnit wird h ufig vom so genanntem Test Driven De velopment TDD gesprochen Dies bedeutet dass das Testen ein kontinuierlicher Pro zess ist der ebenfalls einen Bestandteil der eigentlichen Softwareentwicklung darstellt Beim TDD wird zuerst der Testcode erzeugt und dann der eigentliche Programmcode der die Testbedingungen erf llen soll Diese Methodik ist in der Softwareentwicklung besonders f r agile Vorgehensmodelle wie z B Extreme Programmin
16. gt lt void method add gt lt object class de syspect model SystemDefinitionImpl gt lt void property parent gt lt object idref ProjectImpl0 gt lt void gt lt object gt lt void gt lt void gt lt void property children gt lt object idref HashSet0 gt lt void gt lt void property name gt lt string gt ProjectName lt string gt lt void gt lt object gt lt java gt Wie zu erkennen ist werden die als transient markierten Attribute nicht ausgegeben 15 3 5 SyspectUtils Plug in Das Plug in stellt Basisfunktionalit ten zur Verf gung die nicht von anderen Plug ins abh ngen Beispielsweise beinhaltet die Klasse LayoutsAndDatas aus dem Paket de syspect utils view statische Funktionen die standardisierte Layouts f r Kom ponenten der Benutzeroberfl che erzeugen Des Weiteren werden allgemeine Widgets und verschiedene Wizards f r das Syspect Projekt implementiert Die Wizards er weitern die abstrakte Klasse AbstractSyspectWizard vgl Abbildung 15 9 die eine Initialisierungsmethode bereitstellt AbstractSyspectWizard A ExportWizard SelectionWizard A NewProjectWizard Abbildung 15 9 Die Verberbungshierarchie von AbstractSyspectWizard Dieses Plug in erleichtert die Erweiterbarkeit von Syspect insofern als dass von meh reren Plug ins gemeinsam genutzte Funktionalit t vorl ufig an dieser Stelle gesammelt Projektgruppe Syspect 166 12 Oktober 2006 Endbericht KAPI
17. 113 DeleteActionHook 162 Drag and Drop 164 Draw2d 149 Druckfunktion 111 Duration Calculus 69 71 73 151 Eclipse 7 17 Editparts 149 Editpolicies 149 EMF 209 Endzustand 109 176 Export 148 Exportfunktionen 109 Extension Point 152 Factory 149 210 Formeleditor 107 114 GEF 25 148 149 Generalisierung 107 GMF 148 151 init 113 Initital Zustand 109 Instanz einer Klasse 108 invariant 113 Klasse 107 113 Klassendiagramm 50 52 78 105 107 109 111 112 Kommentar 109 Komponentendiagramm 176 196 Komposition 107 Konsistenz 107 Metadaten 112 Model Checker 105 109 111 Model Checking 74 Model Ebene 168 174 MOF 49 209 MVC 157 Object Z 43 57 69 73 151 Observer 149 PEA Tool 148 151 PEA XML 106 Performance 118 Phasen Event Automaten 72 105 109 111 151 219 Plug in 17 148 152 153 Port 108 117 Preference 162 protocol 107 113 Rich Client Platform 148 152 159 Projektgruppe Syspect 227 12 Oktober 2006 Endbericht INDEX Schablone 113 Startzustand 176 Statemachine 79 Stereotyp 107 113 210 Strukturdiagramm 50 79 105 108 111 116 Superzustand 109 SWT 149 Tabbed Property View 190 Tags 107 113 Testformeln 114 Transition 109 151 210 Typpr fung 114 UML 49 54 UML Modell 105 111 UML Profil 77 105 111 UML2 210 Unicode Darstellung 114 View Ebene 169 174 Viewable Eb
18. Das Ver ndern des UML Modells geschieht erst nachdem in s mtlichen Sichten auf das UML Modell die Ver nderung durchgef hrt wurde Optional wird es die Projektgruppe Syspect 112 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION 5 M glichkeit geben eine Klasse oder Assoziation in allen Klassendiagrammen zu l schen so dass auch das entsprechende Element im UML Modell gel scht wird Zur Vergr erung bzw Verkleinerung der Darstellung eines Klassendiagramms gibt es eine Zoom Funktion Klasse 1 Klassen werden innerhalb eines Klassendiagramms grafisch dargestellt Die Dar stellung einer Klasse kann in ihrer Gr e ver ndert werden Eine Klasse besitzt einen Namen und verf gt ber einen Stereotyp sowie ber At tribute Tags und Methoden Der Stereotyp einer Klasse kann capsule protocol und data sein Attribute haben einen Namen und einen Datentyp Methoden besitzen ebenfalls einen Namen und k nnen ber Parameter Tags sowie R ckga bewerte verf gen Zu dem Stereotyp capsule geh ren die Tags invariant init und dc counterexample Die Methoden einer capsule enthalten jeweils die Tags enable effect und changes Die Methoden einer Klasse des Stereotyps protocol besitzen die Tags input output und simple und den Stereotyp in out in s oder out_s Eine Klasse integriert auch Metadaten Optional Eine Klasse kann als Schablone gespeichert werden In der Schablo ne werden alle Inhalte einer
19. Dieses Plug in erweitert ebenfalls die Extension Points org eclipse ui actionSets org eclipse ui popupMenus und org eclipse help toc siehe Abschnitt 15 2 2 S 154 Weitere Abh ngigkeiten de syspect core de syspect navigator de syspect persistence de syspect utils org eclipse core runtime org eclipse gef org eclipse gmf runtime draw2d ui render und org eclipse ui views 15 3 16 SyspectComponentTable Plug in Das ComponentTable Plugin implementiert den ersten Teil der Komponenten Diagramm bersetzung siehe Abschnitt 15 3 13 S 196 Es wird benutzt um sowohl dem ModelConsistencyChecker zu erm glichen Konflikte zu erkennen als auch dem Export auf die entsprechenden bereits aufgebauten Datenstrukturen zuzugreifen Schnittstellen Dieses Plug in hat Abh ngigkeiten zu folgenden drei Plug ins de syspect core org eclipse core runtime und org eclipse ui views 15 3 17 Richtlinien f r den Quellcode Die Quellcode Richtlinien von Syspect dienen der Einheitlichkeit und Lesbarkeit des Quellcodes und somit der Wiederverwendbarkeit und Wartbarkeit des Produktes Grundlage f r unsere Quellcode Richtlinien sollen die Java Code Conventions Mic97 sein Es folgen einige Erweiterungen bzw Hervorhebungen besonders wichtiger Regeln e Sprache Bezeichnernamen und Kommentare des Quellcodes sind in englisch zu verfassen e Bezeichnernamen sollten selbstverst ndlich selbsterkl rend sein und keine kryp tischen Abk r
20. E New Project xj Select a wizard gt Create a Java project Wizards 3 Java Project 3 Java Project from Existing Ant Buildfile 5 Plug in Project ERC C BS E Managed Make C Project K Standard Make C Project E cvs ge Checkout Projects from CYS Ee Java E Java Project Java Project from Existing Ant Buildfile gt Plug in Development E 2 Simple T Project Abbildung 1 1 Project Wizard Hilfe von ANT Buildfiles generieren und das Auschecken von Projekten aus dem CVS erm glichen Au erdem kann der Project Wizard festlegen welche Compilerversion benutzt werden soll und welche Bibliotheken in das Projekt eingebunden werden 1 2 3 Perspektiven in Eclipse Perspektiven in Eclipse erm glichen es dem Benutzer sich Projekte aus unterschied lichen Ansichten anzusehen und sogar Ansichten f r seine individuellen Bed rfnisse zu erstellen Konkret gibt es zum Beispiel eine Java Perspektive Abb 2 in der stan dardm ig links der Package Explorer in der Mitte die zu editierende Datei unten eine Ausgabekonsole und rechts eine Liste aller Methoden und Variablen der Klasse erscheint Diese Perspektive soll es dem Nutzer erm glichen viele relevante Informa tionen f r das Bearbeiten und Kompilieren in der bersicht zu behalten Die Java Browsing Perspektive zeigt im oberen Bereich vier Fenster die nebeneinander Java Projekte Pakete Klassen und Methoden in strukturierter Weise darstellen Das Ziel dieser P
21. EINF HRUNG IN UML UND XMI werden typischerweise Anwendungsf lle und Akteure mit ihren Abh ngigkeiten und Beziehungen dargestellt e Zustandsdiagramm engl statechart Das UML Zustandsdiagramm ist eines von vielen in der Informatik gebr uchlichen Notationsformen um die Folge von Zu st nden zu definieren die ein Objekt einnehmen kann Es werden hierf r alle Zust nde Zustands berg nge und Bedingungen f r und Konsequenzen von Zu stands berg ngen in Form eines endlichen Automaten dargestellt e Aktivit tsdiagramm engl activity diagram Mit einem Aktivit tsdiagramm wird h ufig der Ablauf eines Anwendungsfalls beschrieben eignet sich aber zur Modellierung aller Aktivit ten innerhalb eines Systems e Sequenzdiagramm engl sequence diagram Ein Sequenzdiagramm ist eine gra fische Darstellung einer Interaktion und spezifiziert den Austausch von Nachrich ten zwischen Auspr gungen die im Diagramm als Lebenslinien dargestellt sind Zum Beispiel ist der Aufruf einer Java Methode in diesem Sinne eine Sequenz da nacheinander weitere Methoden Nachrichten von verschiedenen Objekten Auspr gungen aufgerufen werden e Interaktions bersichtsdiagramm engl interaction overview diagram Ist eine In teraktion zu komplex um beispielsweise in einem Sequenzdiagramm dargestellt zu werden da diese bei zuvielen Lebenslinien und Nachrichten zu un bersicht lich werden k nnen die wichtigsten Aktivit ten und Abl ufe dieser I
22. Sch05 Sha04 Smi00 SMTO6 Sta06 Tic05 tig tig05 UMLO5 Wen05 Torsten Posch Klaus Birken and Michael Gerdom Basiswissen Softwa rearchitektur Dpunkt 2004 Chris Rupp Jiirgen Hahn Stefan Queins Mario Jeckle and Barbara Zeng ler UML 2 glasklar Carl Hanser Miinchen 2005 A W Roscoe The theory and practice of concurrency 1997 H Rasch and H Wehrheim Checking Consistency in UML Diagrams Classes and State Machines Technical report Department fiir Informatik Universitat Oldenburg 2003 Prof Dr Stefan Sch f Skript Software Engineering Fachhochschule Ol denburg Ostfriesland Wilhelmshafen 2004 Prof Dr W Schafer FUJABA Dokumenatation Guided Tour http www se eecs uni kassel de 7Efujabawiki images 2 20 FujabaDoc pdf Pdf document Universit t Paderborn October 21 2005 Sherry Shavour Eclipse Anwendungen und Plug ins mit Java entwickeln Addison Wesley 2004 Graeme Smith The object z specification language Kluwer Academic Publishers 2000 C M Sperberg McQueen and Henry Thompson W3c xml schema http www w3 org XML Schema March 23 2006 Andreea Stamer Integration von CSP OZ in die OO Softwareentwicklung f r die automatische Verifikation Diplomarbeit Department f r Informa tik Abt Entwicklung korrekter Systeme Universit t Oldenburg March 20 2006 Matthias Tichy The Fujaba Diagram Visualization Architec ture http www se eecs uni
23. action gt lt viewerContribution gt lt extension gt Abbildung 15 7 Bereitstellen von Actions ber Extension Point Die Action Klassen m ssen entsprechend das Interface ActionDelegate aus dem Pa ket org eclipse ui implementieren vgl Abbildung 15 8 Genauer gesagt muss eine Action die f r das Men bzw die Werkzeugleiste der Workbench bereitgestellt werden soll das Workbench WindowActionDelegate Interface implementieren F r das Hinzu f gen von Actions zu z B Werkzeugleisten oder Kontextmen s in Views muss die Action Klasse das ViewActionDelegate Interface implementiert werden Entsprechend werden Actions f r Editoren bereitgestellt wenn sie das EditorActionDelegate Inter face implementieren Speziell k nnen Actions f r bestimmte Objekt Typen definiert werden Hierzu muss das Object Action Delegate Interface implementiert werden Projektgruppe Syspect 161 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF lt lt interface gt gt A lt lt interface gt gt lObjectActionDelegate lt lt interface gt gt IViewActionDelegate lt lt interface gt gt lEditorActionDelegate lt lt interface gt gt IWorkbenchWindowActionDelegate Abbildung 15 8 ActionDelegates Struktur DeleteActionHooks Das Konzept der DeleteActionHooks wurde entwickelt um Elemente aus der Model und der Viewable Ebene zu l schen Beim L schen eines Model Elements
24. gt INamedElement IView ClassTitle SyspectNodeEditPart Separator A AbstractClassEditPart ClassEditPart 8 DataEditPart CapsuleEditPart InterfaceEditPart Abbildung 15 25 Bereitstellung von ClassTitle und Separator SyspectComponentdiagramEditor Plug in Herausforderungen bei der Entwicklung des Komponentendiagrammeditors waren vor allem Eigenschaften des Komponentendiagramms welche nicht typisch f r das GEF Konzept sind Hierunter fallen unter anderen die Hauptzeichenelemente Provided Required Interfaces der AssemblyConnector und der Port e Ein Provided Required Interface wird im Editor durch eine Figure und eine Verbindungslinie zu einer Komponente dargestellt Demnach m sste erst eine Provided Required Figure im Diagramm gezeichnet werden die anschlie end mit einer Komponente durch eine Verbindungslinie verbunden wird Da al lerdings ein Provided Required Interface immer zu einer Komponente geh rt sollte die Figure und die Verbindung in einem gezeichnet werden D h ein Projektgruppe Syspect 184 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF Provided Required Interfaces und nicht nur die Verbindung muss einer Kom ponente zugewiesen werden Dieses wurde so realisiert dass erst eine Verbindung durch den Command CreateProvide RequireWithWizardCommand gezeichnet wird und dann automatisch die Figure des jeweiligen Interfaces als Target der Ve
25. lt lt component gt gt de syspect navigator lt lt component gt gt de syspect ozdcutil lt lt component gt gt lt lt component gt gt de syspect editorbundle classdiagramconsistency de syspect consistency diagram statemachineconsistency componentdiagramconsistency Abbildung 15 4 Extension Points in Syspect Eclipse Extension Points Viele unserer Plug ins erweitern Extension Points von Eclipse Diese werden hier er l utert so dass in folgenden Kapiteln die sich mit den Details der einzelnen Plug ins beschaftigen nur darauf verwiesen werden muss Das Core Plug in erweitert die beiden Extension Points org eclipse help contexts und org eclipse help toc Sie erm glichen das Einbinden eines Eelipse Hilfe Systems in Syspect Jedes Plug in das seine Hilfe Seiten in Form von Web Seiten bei diesem System registrieren will um Hilfe Seiten einzubinden muss ebenfalls den Ex tension Point org eclipse help toc eweitern der dieses erm glicht Auf diese Weise k nnen die Hilfe Seiten jedes Plug ins einzeln verwaltet werden und in der Syspect Hilfe sind nur von den Plug ins Seiten aufrufbar die im Produkt eingebunden sind F r eine ausf hrliche Beschreibung des Eclipse Hilfesystems sei auf die Eclipse Hilfe verwiesen Ein weiteres Eclipse Plug in das Syspect sehr viele Extension Points zur Verf gung Projektgruppe Syspect 154 12 Oktober 2006 Endbericht
26. m ssen 1 auch alle mit diesem Element in Verbindung stehenden Model Elemente 2 alle dem Element zugeh rigen Viewable Elemente gel scht werden Fall 2 muss von jedem Plug in welches Viewable Elemente erzeugt behandelt wer den da nur in diesen Plug ins gen gend Informationen ber die Abh ngigkeiten der Viewable Elemente vorliegen Das L schen der Model Elemente die mit dem zu l schenden Objekt in Verbindung stehen wird im Core Plug in durchgef hrt da ansons ten verschiedene Implementierungen z B in den Diagrammeditoren zu inkonsistenten Zust nden eines Projekts f hren k nnten So werden zum Beispiel beim L schen einer ICapsule alle mit der Klasse verbundenen IClassConnections gel scht das L schen der IVCapsule und der IVClassConnections wird vom Classdiagrameditor Plug in bernommen f r eine n here Erl uterung der Model Elemente siehe Abschnitt 15 3 6 S 167 Die DeleteActionHooks rufen zum L schen der Elemente Commands siehe Abschnitt 15 3 8 S 181 auf jedoch werden diese Commands nicht an den UndoManager ge meldet da ein L schvorgang als atomare Aktion behandelt wird um inkonsisten ten Zust nden des Projekts vorzubeugen Um Model Elemente zu L schen wird das DeleteCommand lt T gt aus dem Core Plug in erzeugt so dass f r jedes gel schte Element wieder dessen DeleteActionHooks aufgerufen werden Um Viewable Elemente zu ent fernen wird das DeleteCommand lt T S gt aus dem SyspectDiagramEditorBundle
27. nde Optional zur Transition geh rende Methode Anwendungsfall Superzustand erzeugen Akteure Nutzer Ziel Es soll ein Superzustand erzeugt werden Ausl sendes Ereignis Der Nutzer w hlt die entsprechende Funktion im Kontextmen oder in der Symbolleiste aus oder der Nutzer zieht einen oder mehrere Zust nde in einen bestehenden Zustand hinein Drag and Drop Vorbedingung Es existiert mindestens ein Zustand zwei bei Drag and Drop Nachbedingung Erfolg Ein Superzustand wird erzeugt Die ausgew hlten Zust nde werden in den Superzustand eingef gt Nachbedingung Fehlschlag Eine aussagekraftige Fehlermeldung wird ausgegeben Eingabedaten Ausgew hlte Zust nde bei Drag and Drop Zielzustand M gliche Fehler Es ist kein Zustand ausgew hlt Projektgruppe Syspect 139 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION Anwendungsfall Parallelit t erzeugen Akteure Nutzer Ziel In einem Zustand soll Parallelit t im Sinne von CSP erzeugt werden Ausl sendes Ereignis Der Nutzer w hlt die entsprechende Funktion im Kontextmen oder in der Symbolleiste aus Vorbedingung Ein Zustand existiert Nachbedingung Erfolg Der ausgew hlte Zustand wird zu einem Zustand mit Parallelit t Nachbedingung Fehlschlag Eine aussagekr ftige Fehlermeldung wird ausgegeben Eingabedaten Ausgew hlter Zustand M gliche Fehler Es ist kein Zustand ausgew hlt Anwendungsfall Element bearbeiten Akte
28. pea gt lt peaNet gt Abbildung 13 5 Aktuelles XML Format fiir Phaseneventautomaten Projektgruppe Syspect 123 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION 13 5 1 Allgemeine Anwendungsf lle Allgemeines Methode erstellen Als PEA XML exportieren Als LaTeX exportieren Als Grafik exportieren Klasse bearbeiten Exportieren Ce Speichern in XMI Nutzer Klassendiagramm erstellen Strukturdiagramm erstellen Laden von XMI Anwendungsfall KTEX Exportieren Akteure Nutzer Ziel KTEX Code generieren Ausl sendes Ereignis Der Nutzer hat entweder in der Symbolleiste oder im Men Exportieren nach KIRX ausgew hlt Vorbedingung Es muss automatisch oder manuell die CSP OZ DC XML Datei generiert worden sein Nachbedingung Erfolg Es existiert der KIIEX Code Nachbedingung Fehlschlag Eine aussagekraftige Fehlermeldung wird ausgegeben Eingabedaten Die CSP OZ DC XML Datei Projektgruppe Syspect 124 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION Anwendungsfall PEA XML Exportieren Akteure Nutzer Ziel PEA XML generieren Ausl sendes Ereignis Der Nutzer hat entweder in der Symbolleiste oder im Men Exportieren nach PEA XML ausgew hlt Vorbedingung Es muss automatisch oder manuell die CSP OZ DC XML Datei generiert worden sein Nachbedingung Erfolg Es existiert das PEA XML Nachbedingung F
29. siehe Abschnitt 15 3 8 S 180 benutzt welches ein Viewable Element aus der Liste der Kinder seines Eltern Objektes l scht Preferences PreferencePages sind ein Konzept von Eclipse um einfaches konfigurieren von Pro gramminhalten zu bewerkstelligen hnlich wie bei den Wizards Seiten sogenann ten PreferencePages welche ueber FieldEditoren leicht zu bauen sind Diese Edito ren greifen auf Konstanten zu welche vom schon erw hnten Preferencelnitilizer ihren Defaultwert erhalten Projektgruppe Syspect 162 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF Beim bauen der Seite ist zu beachten das diese von FieldEditorPreferencePage abge leitet ist um an die FieldEditoren heranzukommen und IWorkbenchPreferencePage implementiert Beispiele f r FieldEditoren sind DirectoryFieldEditoren zum ausw h len von Verzeichnissen und RadioGroupFieldEditor f r die Auswahl einer Sache aus mehreren m glichen Die Seite muss in der plugin xml unter Extensions eingetragen werden damit sie dort auftaucht wo sie hinsoll Die Konstante die mit dem FieldEditor bearbeitet wird muss in der PreferenceCon stants des jeweiligen Plug ins eingetragen sein und mit dem Preferencelnitializer in itialisiert werden 15 3 3 SyspectNavigator Plug in Bei diesem Plug in handelt es sich um eine Erg nzung der Benutzeroberfl che Es stellt Baumansichten des Models zur Verf gung f r eine n here Erl uterung des Models siehe Abschnitt 15 3 6 S 167
30. sii Minnie Use Withdraw P amount out money pin gt retcard out eject money en insert eject pin retcard amount capsule protocol component Interface ML_ATM base Lang_P ML_ATM Lang lan Weel 9 Sg g in select lang select Abbildung 14 2 Klassendiagramm f r die ATM nach dem alten neuen UML Profil die Umstellung des Stereotyps der Schnittstellen bot sich auch eine neue Modellierung dieser Verbindungen an indem Basiselemente der UML genutzt werden Namentlich sind dies Assoziationen mit den Sterotypen realization und dependency welche auch ein eigenes Notationselement den gestrichelten Pfeil mit einem wei en Dreieck bezie hungsweise mit einem Winkel als Pfeilspitze besitzen Die realization entspricht hierbei einer Aggregation mit dem Stereotyp base die dependency entspricht einer Aggregation mit dem Stereotyp conjugated Im alten Diagramm war es m glich mit den Sterotypen in und out innerhalb einer Schnittstelle zwei Richtungen der Kommunikation zu definieren Um die Bedeutung der neuen Verbindungen innerhalb der UML beizubehalten wurden diese beiden Ste reotypen aus dem Profil entfernt so dass alle Methoden einer Schnittstelle die von einer capsule realisiert wird nun als CSP Kan le der Form method bersetzt werden Entsprechend werden alle Methoden einer Schnittstelle von der eine capsule abh ngi
31. t Dateikonflikte zwar aus behindert aber meist die Produktivit t 11 1 2 Versionierungsansatz Auch wenn sie der gleichen Philosophie folgen haben CVS und Subversion doch unterschiedliche Versionierungsans tze CVS vergibt f r jede Datei einzelne Versionsnummern Das hei t es existiert zum Beispiel die Revision F nf der Datei test txt und daneben die Revision Eins der Datei tut txt Bei Subversion wird die Versionsnummer dem ganzem Repository gegeben Das hei t wenn die f nfte Version der Datei test txt im Repository liegt hat auch das Repository die Versionsnummer F nf Wenn dann die Datei tut txt dazukommt hat das ganze Repository die Versionsnummer Sechs Die Datei tut txt hat ebenfalls die Versionsnummer Sechs allerdings exisitieren keine Versionen Eins bis F nf Die Datei test txt hat weiterhin die Versionsnummer F nf 11 2 Grundlegende Operationen Dieses Kapitel beschreibt vier der grundlegendsten Operationen n her die sich in bei den Programmen in der Syntax kaum unterscheiden aber doch teilweise unterschiedlich arbeiten Teilweise existieren f r diese Befehle auch Abk rzungen oder Synonyme auf die aber nicht n her eingegangen wird 11 2 1 Auschecken e svn checkout Optionen URL Pfad e cvs checkout Optionen Projekte Um bei einem versionsverwalteten Projekt mitarbeiten zu k nnen das mit CVS oder Subversion versioniert wird muss man sich als erstes eine lokale Arbeitskopie erstellen Di
32. um den Quellcode m glichst flexibel und erwei terungsfreundlich zu halten Jedes subsystem besitzt einen eindeutigen Namen und ist in einem eigenen Verzeichnis gespeichert Jedes subsystem ist wiederum in Layers Schichten unterteilt Je tiefer eine Ebene in einem subsystem enthalten ist desto spezieller wird dessen Funktionalit t Prinzip von ArgoUML In ArgoUML wird das Model View Controller Prinzip an gewendet Das Modell stellt hierbei die verwendete NSUML Bibliothek dar in der alle Eigenschaften die ein Modell annehmen kann abgebildet sind Die View Komponente wird durch die GEF Bibliothek realisiert welches die M glichkeit bietet eine grafische Oberfl che zum Zeichnen bereitzustellen In ArgoUML selbst ist die Logik implemen tiert die als Schnittstelle zwischen den beiden anderen Komponenten fungiert Aufbau eines Diagramms Fine Diagrammart wie z B das Klassendiagramm besteht in ArgoUML aus mehreren Einheiten die im Quellcode ber verschiedene Verzeichnisse verteilt sind Das subsystem org model argouml uml enth lt die zwei Verzeichnisse diagram und ui Das Verzeichnis ui enth lt in einem weiteren Un terverzeichnis die Spezifikation f r das zum Diagramm zugeh rige Eigenschaftsfens ter Im Verzeichnis diagram sind in weiteren Verzeichnissen die grafischen Elemen te der einzelnen Diagrammarten untergebracht sowie der Zugriff auf das Modell jeder einzelnen Diagrammart implementiert In einem weiteren Verzeichnis namens o
33. z N A z ze P z 0 Init pe _effect_inc A z _enable_ nc Increment 0 2 r lt 5 x x increment 0 reset L lt 5 reset Sola 2 AL gt 5 Abbildung 8 2 CSP OZ DC Spezifikation eines Z hlers Projektgruppe Syspect 74 12 Oktober 2006 Endbericht KAPITEL 8 CSP OZ DC UND PEA anc A reset inc A reset en A reset inch e recet reset A inc Abbildung 8 3 Automat zum CSP Teil reset A inc x 0 z lt 5A x x inc_increment inc A reset x x N reset A inc Abbildung 8 4 Automat zum Object Z Teil 8 5 Zusammenfassung CSP OZ ist eine Kombination von Spezifikationstechniken mit der konfortables Mo dellieren m glich ist Mit dem Hinzunehmen des Duration Calculus ist es auch m glich zeitliche Zusammenh nge zu spezifizieren Es existiert eine gemeinsame Semantik f r CSP Object Z und den Duration Calculus in Phaseneventautomaten Model Checking der Spezifikationen ist m glich indem eine bersetzung in Phaseneventautomaten und von da aus in Transition Constrain Systems durchgef hrt wird f r die Model Checker existieren Projektgruppe Syspect 75 12 Oktober 2006 Endbericht KAPITEL 8 CSP OZ DC UND PEA reset reset eV c gt 5 Anreset reset z gt 5 res c 0 Abbildung 8 5 Automaten zum DC Teil Projektgruppe Syspect 76 12 Oktober 2006 Endbericht KAPITEL 9 EIN UML PROFIL F R CSP OZ DC Kapitel 9 Ein UML Profil f
34. 1 svn book html October 2005 For Subversion 1 1 book compiled from Revision 1337 CZT05 Community z tools http czt sourceforge net November 02 2005 Doh03 Thomas Dohmke Subversion ein Versionskontrollsystem http thomas dohmke de de artikel subversion June 2003 EFla Eclipse Foundation Inc Eclipse platform plug in developer guide message bundles http help eclipse org help32 index jsp topic org eclipse platform doc isv reference misc message_bundles html EFIb Eclipse Foundation Inc Eclipse Project http www eclipse org eclipse EFIc Eclipse Foundation Inc Eclipse Technology Project http www eclipse org technology EFId Eclipse Foundation Inc Eclipse Tools Project http www eclipse org tools EFI05a Eclipse Foundation Inc Eclipse wiki http eclipsewiki editme com November 05 2005 EFIO5b Eclipse Foundation Inc Homepage der Eclipse Community November 05 2005 http www eclipse org EFIOGa Eclipse Foundation Inc Eclipse plugin resource center and marketplace February 23 2006 http www eclipseplugincentral com EFI06b Eclipse Foundation Inc Eclipse plugins February 23 2006 http www eclipse plugins info Projektgruppe Syspect 233 12 Oktober 2006 Endbericht LITERATURVERZEICHNIS EF 106c EF 106d eN 006 Fab05 FB05 FDG05 FDR FHO06 Fis00 FOWO1 FSF06a FSFO06b GDBO02 GHJ95 HMO5
35. 5 Extension Points des Plug ins org eclipse ui 155 15 6 Von Syspect Core erweiterte Extension Points 159 15 7 Bereitstellen von Actions ber Extension Point 161 Projektgruppe Syspect 230 12 Oktober 2006 Endbericht ABBILDUNGSVERZEICHNIS 15 8 JActionDelegates Struktur eii 2 a ar era 162 15 9 Die Verberbungshierarchie von AbstractSyspectWizard 166 15 10Eltern Kind Beziehungen im Syspect Model in Pfeilrichtung gelesen ist die Semantik ist Kind EE 169 15 11Ein in einer ConstrainedNode Klasse aufgetretener Event wird an die Modelebene weitergeleitet vertikale Richtung und in der Parent Child Hierarchie zur Wurzel propagiert horizontale Richtung 170 15 12Superinterfaces y e bae ee e ee 171 15 18 Prejektmanager und Projekte viso Fr ra Fre a 172 15 14Klassen und Interfaces soeces loas ete alte em alle 173 19 192 Blemente q De e a A A eG 174 15 16 Verbindungen bt hots ace Gh ee ea ai 175 15 17Zustandsautomaten aooaa a ge dee aS de as ge Ss he 176 15 18Komponentendiagramme o oaa a 177 15 19Abstrakte Oberstruktur der Viewable Ebene 177 15 20Kontext Diagramme und Diagramminhalt 178 15 21 Diagramme und Verbindungen auf Viewable Ebene 178 15 22Die Vererbungshierarchie von ViewableNode 179 19 23 Die View Ebene ah gl daa eked aan he a eke a ehe 179 15 24 Vererbungshierarchie bei den CreateCom
36. Abbildung 7 2 Der CSP Prozess STOP Abbildung 7 3 zeigt den CSP Prozess SKIP Abbildung 7 3 Der CSP Prozess SKIP Abbildung 7 4 zeigt den CSP Prozess knopf1 fahreZul gt STOP knopf1 fahreZu1 d Abbildung 7 4 Der CSP Prozess knopf1 fahreZul gt STOP Abbildung 7 5 zeigt den CSP Prozess knopf1 fahreZul STOP knopf2 fahreZu2 STOP Abbildung 7 6 zeigt den CSP Prozess FS knopf1 fahreZul FS O knopf2 fahreZu2 ES Projektgruppe Syspect 59 12 Oktober 2006 Endbericht KAPITEL 7 CSP OZ KOMBINATION ZWEIER METHODEN fahreZu1 knopf2 fahreZu2 Abbildung 7 5 CSP Prozess mit fahreZu1 Abbildung 7 6 Der CSP Prozess FS Um die parallele Komposition zu erkl ren wird ein zweiter Prozess ben tigt Der Prozess FG soll einen Fahrgast verdeutlichen der den Fahrstuhl nutzt FG einsteigen gt knopf2 aussteigen FG Abbildung 7 7 stellt die parallele Komposition dar Zun chst werden die einzelnen Pro zesse dargestellt dann die Komposition der beiden Die Prozesse k nnen unabh ngig voneinander laufen au er eine Aktion aus dem Synchronisationsalphabet tritt ein Die sen Schritt m ssen die Prozesse gemeinsam gehen pn FS knopf 1 knopf 2 Verwendet man die nichtdeterministische Auswahl M entsteht ein fehlerhafter Fahrstuhl FFS Seine Fehlfunktion zeigt die paralle Komposition in Abbildung 7 8 Der Prozess FFS
37. Arbeit im amerikanischen Recht derivative work genannt und kann somit jede beliebige Lizenz annehmen Aufgrund der restriktiven Bedingungen der GPL wird Syspect unter die GPL gestellt Projektgruppe Syspect 220 12 Oktober 2006 Endbericht KAPITEL 17 AUSBLICK Richtlinien f r die Fehlerbehandlung Fehlerbehandlung In diesem Abschnitt wird allgemein beschrieben wie dem Nutzer mitgeteilt werden kann dass ein Fehler im Programm aufgetreten ist Es wird insbesondere nicht darauf eingegangen wie diese Fehler im Programm entdeckt werden k nnen Ist ein kritischer Fehler aufgetreten so muss dieser dem Nutzer mitgeteilt werden Dies geschieht auf mindestens zwei verschiedenen Wegen n mlich per Dialog so wie per Logdatei Die folgenden Informationen m ssen dabei in beiden Meldungen vorhanden sein e Eine aussagekr ftige Fehlermeldung e Provider Name e Plug in Name user friendly name Plug in ID e Version Fehlerdialog Dem Benutzer wird mit Hilfe eines Fehlerdialogs mitgeteilt dass ein Fehler aufgetreten ist Dieser muss die oben beschriebenen Informationen enthalten Zus tzlich ist ein aus sagekr ftiger Dialogtitel zu w hlen Der Dialog wird mit der JFace Klasse ErrorDialog erzeugt Damit ergibt sich dann ein Aussehen wie etwa in Abbildung 3 a Status Error Message OK lt lt Details Test Exception Abbildung 3 Beispiel eines Fehlerdialogs Projektgruppe Syspect 221 12 Oktober 20
38. Clock Eine Clock besteht nur aus einem Namen als String Die Abbildung 13 5 enth lt ein Beispiel f r das aktuelle Format Ansatzpunkte f r nderungen Da eine Anforderung die Erweiterung des aktuellen Formates ist hier eine Liste von Ansatzpunkten f r die notwendigen Erweiterungen 1 Variablentypen m ssen vom Benutzer definierbar sein Im Moment ist die Typ darstellung nur als String vorhanden 2 Mit dem FormulaTree ist im aktuellen Format nur die Darstellung von boolschen Ausdr cken und bin ren Relationen m glich Hier soll die Darstellung von Z Ausdr cken erm glicht werden 3 Es muss m glich sein Transitionen mit nur einem Ziel sowie optional Guards und der Uhrenr cksetzmenge einzuf gen da nach der neusten PEA Definition Hoe05 die initialen Kanten beschriftet werden d rfen 13 5 Anwendungsf lle Um das Arbeiten mit dem Werkzeug Syspect zu verdeutlichen sind analog zur Produkt skizze zu vier Themenbereichen Anwendungsfalldiagramme mit Erl uterungen vorhan den Diese decken jedoch nur oberfl chlich den jeweiligen Anwendungsfall ab Eine genauere Erl uterung inklusive von Konsistenzbedingungen werden im Entwurf erar beitet Die Anwendungsfalldiagramme f r das Bearbeiten von Klassen Struktur und Zu standsdiagrammen beschreiben die m glichen Anwendungsf lle im Umgang mit dem jeweiligen Diagrammtyp Das allgemeine Anwendungsfalldiagramm befasst sich mit Drucken Speichern oder Laden usw also F ll
39. Es wurde 1997 ins Leben gerufen und wird derzeitig international allerdings haupts chlich in Paderborn und Kassel weiterentwickelt Der Name FUJABA selbst ist ein Akronym und steht f r From UML to Java And Back again Das Programm ist in Java geschrieben und somit plattform bergreifend einsetzbar Die Applikation beinhaltet in der Standardversion die UML Diagrammtypen Klassen diagramm Zustandsdiagramm und Storydiagramm Mit Hilfe von FUJABA ist es m g lich aus solchen Diagrammen kompilierbaren und lauff higen Quellcode zu erzeugen Aber auch schon vorhandener Quellcode l sst sich in FUJABA importieren und per Reverse Engineering als UML Diagramm darstellen Sch05 Desweiteren bringt FUJABA ein Dynamic Object Browsing System DOBS mit sich welches die interne Objektstruktur in einer Java Virtual Machine JVM verdeutlicht So werden beispielweise das Entstehen und Zerst ren von Assoziationen und das Ver ndern von Attributwerten sichtbar gemacht DOBS wurde entwickelt um in Schulen die Lehre objekt orientierter Programmierung zu unterst tzen Mit im Programm enthalten ist au erdem eine GUI Bibliothek F Grafik welche das problemlose Erstellen von Eingabemasken und Fenstern erlaubt Somit l sst sich leicht eine Benutzeroberfl che kreieren die auch Interaktion mit dem Benutzer erlaubt Neben FUJABA gibt es auch noch weitere Projekte der FUJABA Developer Group Projektgruppe Syspect 27 12 Oktober 2006 Endbericht KAPIT
40. Event NAME_CHANGED von der Me thode an die Klasse in der die Methode liegt weitergeleitet Die Klasse bergibt dieses Event dann wiederum an ihren Parent also an das Projekt Der Grund daf r ist dass bei nderung des Namens einer Methode im Klassendiagramm es m glicherweise nicht ausreicht nur die Methode neu zu zeichnen M glicherweise muss die ganze Klasse oder gar das ganze Diagramm neu gezeichnet werden um auf die Ver nderung zu reagieren Tritt ein Event in View oder Viewable Ebene auf wird dieses an das dazuge h rige Modelelement weitergegeben Dadurch wird eine gewisse Fehlertoleranz erreicht da es nicht n tig ist sich als Listener f r einzelne grafische Elemente wie zum Beispiel ConstrainedNode einzutragen Stattdessen erh lt ein Modelelement auch alle Informationen ber Ver nderungen in den dazugeh rigen grafischen Ele menten Alle in Syspect verwendeten Events sind in dem Enum EEventsConstants defi niert ProjectManager event event event D Model ViewableDiagram event ConstrainedNode Parent View Abbildung 15 11 Ein in einer ConstrainedNode Klasse aufgetretener Event wird an die Modelebene weitergeleitet vertikale Richtung und in der Parent Child Hierarchie zur Wurzel propagiert horizontale Richtung Projektgruppe Syspect 170 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF Die Strategie wie in Syspect Events gefeuert werden ist somit ein Kompromiss zwischen einer au
41. Explorer diese nur aus dem lokalen Ar beitsbereich entfernt Projektgruppe Syspect 12 12 Oktober 2006 Endbericht KAPITEL 1 ECLIPSE 1 3 2 Erweiterte Funktionen Neben den Standardfunktionen wie checkout und commit die im vorherigen Abschnitt erl utert wurden hat Eclipse auch noch weitere erw hnenswerte Funktionen Der Compare Viewer erm glicht es dem Benutzer seine aktuell bearbeitete Datei mit der im Repository zu vergleichen Das ist vor allem dann n tzlich wenn die Datei im Repository ebenfalls ver ndert wurde und die nderungen zusammengef hrt werden m ssen Beide Dateien werden nebeneinander angezeigt und Unterschiede werden markiert Der Repository Explorer kann dem Benutzer das gesamte Repository anzeigen und macht es m glich jede einzelne Datei jeder Version mit ihrer Versionsgeschichte unter die Lupe nehmen In der Team Synchronizing Perspektive hat der Entwickler einen berblick ber die einzelnen Dateien des gesamten Projekts mit allen gerade eingehenden nderungen ausgehenden nderungen und Konflikten 1 3 3 Subversion in Eclipse Zwischen Subversion und CVS gibt es in Eclipse im Frontend so gut wie keine Unter schiede Alle Dialoge und Fenster sind sehr hnlich was den Vorteil hat dass jeder der CVS kennt auch Subversion in Eclipse benutzen kann Subclipse kann wie alle Plug ins unter dem Men punkt Help gt Software Updates gt Find and Install installiert werden Anschlie end w hlt man sel
42. IAbstractClass IAbstractClass Instanzen k nnen IClassConnections als ausgehende und abgehende Verbindungen haben und sie sind immer Kind ihres Projektes Sie selbst sind Eltern von IClassContent Instanzen Die erbenden Interfaces der IAbstractClass sind IClass und IInterface Sie unter scheiden sich wie folgt e IClass hat als IClassContent IAttribute und IMethod Objekte IClass ist wie IAbstractClass abstrakt und hat als konkrete Unterklassen ICapsule und IData Diese beiden unterscheiden sich dadurch voneinander dass ICapsule eine IStateMachine zus tzlich als ClassContent und ein Set von IDCTag Objekten besitzt IDCTag kapselt eine IDCFormula und implementiert das INamedElement Interface Die IStateMachine und andere zugeh rige Klassen werden in dem entsprechenden Abschnitt Seite 175 behandelt e IInterface Instanzen haben als IClassContent IMethodSignature Objekte Einige Details zum IClassContent e IMethodSignature und IAttribute implementieren das IFeature Interface welches besagt dass sie eine Sichtbarkeit haben Wir haben uns f r den Na men Feature entschieden weil in der UML auch Elemente mit einer Sichtbarkeit Feature genannt werden e Jede IMethod besitzt eine IMethodSignature Wenn z B eine Realisierungsbe ziehung zwischen einer ICapsule und einem IInterface erstellt wird wird f r jede IMethodSignature in dem Interface jeweils eine IMethod erstellt die die entsprechende IMethodSignature als Attribut hat
43. IPropertySource f r das Event Konzept verwendet siehe Abschnitt 15 3 6 S 169 Dar ber hinaus werden in dem Enum EPropertyConstants dem Java Bean Konzept folgend die Namen der Attribute der Modelklassen aufgelistet Dies wird ben tigt damit die Tabbed Property View siehe Abschnitt 15 3 12 S 192 darauf zugreifen kann Im folgenden werden nun zun chst einige Konzepte vorgestellt die durchgehend im gesamten Model verwendet werden Anschlie end werden thematisch sortiert in einem ausgew hlten Kontext alle Modelelemente vorgestellt bergeordnete Konzepte e Namenskonventionen Projektgruppe Syspect 167 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF Alle Namen in der Interface Struktur im Model haben ein I am Anfang des Namens Ein Interface der Viewable Ebene hat ein V nach dem I im Namen wenn es ein dazu korrespondierendes Interface dann ohne V auf der Model Ebene gibt Informationen zu den Modelebenen siehe unten Eine Klasse die ein Model Interface implementiert tr gt denselben Namen wie dieses Interface nur ohne I zu Beginn und mit Impl am Ende Verwendete Enums beginnen mit einem E e Eltern Kind Beziehungen Die Datenhaltung von Syspect basiert auf einer Baumstruktur d h die meisten Elemente sind ber Eltern Kind Beziehungen miteinander verkn pft Klassen die Elternelement sind m ssen das Interface IParent implementieren und Klassen die Ki
44. JUnit KEE 88 10 4 Java Modeling Language 89 IA SYD A ee E E Aere A ee A ee SOR 89 10 4 2 Behlerbehandlune gg er 2 re 2 were eng 91 IDAS OA de ra nahe ar es See ad A 91 10 5 Zusammenfassung und Beurteilung 92 11 Versionsverwaltung 93 LI Einlesen ig eae ete ae rd pa e Be 93 11 1 1 Versionsverwaltung 22 pu ee Dea ee Doe ee Da de Das 93 11 1 2 Versionierungsansatz 22 a 22 28 IA Eee 94 11 2 Grundlegende Operationen a ax eat an er are riet 94 112 1 Anschecken usa s ae tie Be sr We ee De 94 11 2 2 Binehecken soeg he Ye Nu e A E A E 95 LA Updaten pao e RA BA ae caes ae 95 11 24 Merken aia a a Be Bh ee 96 11 3 Komplexere Operationen 212 au ale as N 2 aa a a RR 96 11 3 1 Umgang mit Dateien rs Kir See ew AAA 96 11 3 2 Umgang mit Verzeichnissen 2 4 8 A a 96 11 3 3 Ignore Optionen und Properties 97 AAA a EE EE ll ARANA 97 115 Ad nmistration sra a a A 97 11 5 1 Repositories aS a EE ak 97 11 52 Mod l Aliase tinte a ar ARA 98 11 5 3 Zneriiskontrolles 4 3 4 23 24 a e Da a en 98 11 5 4 Systemvorraussetzungen oaoa 98 11 65 Fazit AE 98 II Entwurfsdokumente 101 12 Produktskizze 105 121 een EE ee a EEE EEN 105 12 2 Die grafische Oberfl che der Entwicklungsumgebung 105 12 2 1 Arbeiten mit Klassendiagrammen 107 12 2 2 Arbeiten mit Strukturdiagrammen 108 12 2 3 Arbeiten mit Zustandsdiagrammen 109 12 3 Exportfun
45. Kommentar hinzuf gen aus Vorbedingung Es existiert ein Element Nachbedingung Erfolg Dem ausgew hlten Element wird ein Kommentar hinzugef gt Nachbedingung Fehlschlag Eine aussagekraftige Fehlermeldung wird ausgegeben Eingabedaten Element zu dem der Kommentar hinzugef gt werden soll der Kommentartext m gliche Fehler Es ist kein Element ausgew hlt Projektgruppe Syspect 136 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION Anwendungsfall Strukturdiagramm zu capsule ffnen Akteure Nutzer Ziel Das Strukturdiagramm zu einer capsule soll ge ffnet werden Ausl sendes Ereignis Der Nutzer w hlt im Kontextmen oder in der Symbolleiste den entsprechen den Eintrag Vorbedingung Eine capsule existiert Nachbedingung Erfolg Das Strukturdiagramm f r das Innere der capsule wird angezeigt Existierte bisher kein Diagramm so wird ein neues erzeugt und angezeigt Dieses bein haltet capsules welche als Teil in einer Komposition mit der usseren capsule in Verbindung stehen Nachbedingung Fehlschlag Eine aussagekr ftige Fehlermeldung wird ausgegeben Eingabedaten capsule zu der das Diagramm angezeigt werden soll m gliche Fehler Es ist keine capsule ausgew hlt Projektgruppe Syspect 137 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION 13 5 4 Anwendungsf lle in der Zustandsdiagrammansicht Initialzustand erzeugen Normalen Zustand erzeugen Endzusta
46. License January 31 2006 http www fsf org licensing licenses gpl html Timothy J Grose Gary C Doney and Stephen A Brodsky Mastering XMI Wiley 2002 Erich Gamma Richard Helm and Ralph Johnson Design Patterns Ele ments of Reusable Object Oriented Software Addison Wesley Professional Computing Series Addison Wesley 1995 GAM e 95 1 1 Ex J Hoenicke and P Maier Model Checking of Specifications Integrating Processes Data and Time In J Fitzgerald I J Hayes and A Tarlecki editors FM volume 3582 of Lecture Notes in Computer Science pages 465 480 Springer 2005 Projektgruppe Syspect 234 12 Oktober 2006 Endbericht LITERATURVERZEICHNIS Hoa04 Hoe05 Hoe06 JMLO6 JNT06 JW96 K1i05 Lem06 Mey05aj Mey05b Mic97 MOFO06 MORWO4 MORWO5 O1d05 C A R Hoare Communicating Sequential Processes http www usingcsp com cspbooks 2004 J Hoenicke private communications November 2005 J Hoenicke Combination of processes data and time Dissertation De partment fiir Informatik Abt Entwicklung korrekter Systeme Universitat Oldenburg July 12 2006 Java modelling language hompage http www cs iastate edu leavens JML index shtml January 01 2006 The apache ant project homepage optionale tasks unter ant ju nit http ant apache org manual OptionalTasks junit html January 01 2006 J Davies J Woodcook Using Z http
47. OZ DC Spezifikation in Phasen Event Automaten zu transformieren um deren Eigenschaften durch einen Model Checker verifizieren zu k nnen 12 2 Die grafische Oberfl che der Entwicklungsum gebung Die Entwicklungsumgebung ist in drei Bereiche aufgeteilt Ein Vorschlag f r das sp tere Aussehen zeigt Abbildung 12 1 Der Diagrammstrukturbereich beinhaltet eine baumartige Ansicht der verschiedenen Projektgruppe Syspect 105 12 Oktober 2006 Endbericht KAPITEL 12 PRODUKTSKIZZE File Edit Window Classes mi Diagram2 Diagram3 Vv Project v Class Diagrams gt ClassDiag1 gt ClassDiag2 Neue Klasse Neue Assoziation Bearbeiten L schen Kommentar hinzuf gen Y Statecharts Zustandsdiagramm gt StateChart1 f r die Klasse gt StateChart2 erzeugen anzeigen Y StateChart3 Kontextmen State1 State2 Transition1 Y Structure Diagrams gt StructureDiag1 Symbolleiste Arbeitsbereich OSP OZ DC XML PEA XML OSP OZ DC LaTexX Diagramm struktur bereich Fehlermeldungen Hinweise auf Inkonsistenzen Abbildung 12 1 Schematische bersicht der Entwicklungsumgebung Diagrammarten und der einzelnen Komponenten der Diagramme Neue Klassendia gramme k nnen hier erstellt werden Diese Funktion kann wie auch alle weiteren so wohl ber das Kontextmen als auch ber das Programmmen am oberen Bereich des Bildschirms erreicht werden Weiterhin ist es m glich sich alle Klassen der bis dahi
48. Oktober 2006 Endbericht KAPITEL 3 FUJABA PropertyChangeEvents updates ModelElement EditPart modify requests creates sends Requests create EditPolicy Editor put on command stack Abbildung 3 4 Die FUJABA4Eclipse Struktur Mey05aj die EditPolicy bergeben Diese berpr ft unter anderem ob berhaupt eine Assozia tion zwischen den beiden Klassen m glich ist Ist dies m glich wird erst der eigentliche Befehl zur Ver nderung der Model Elemente erzeugt Bei der Erzeugung der Assozia tion im Meta Modell wird wie auch schon in FUJABA ein PropertyChangeEvent gefeuert Der als Observer dienende EditPart f hrt dann die Ver nderungen in der Darstellung den Figures durch 3 4 Zusammenfassung mit Hinblick auf eine Wei terverwendung im Rahmen des Projektes Die Konzepte welche FUJABA und auch FUJABA4Eclipse zugrunde liegen sind durchaus f r eine Weiterverwendung geeignet Die Struktur ist klar und bersichtlich vorgegeben Durch den in FUJABA eingef hrten FSA wird au erdem eine Abstraktion von der GUI Implementierung erreicht Das Meta Modell und das Unparse Modul machen den Eindruck auch bei Erweiterungen durch ihren modularen Aufbau keine Schwierigkeiten mit sich zu bringen Weniger gut stellen sich die Erweiterungm glichkeiten der bestehenden Applikationen dar W hrend FUJABA4Eclipse noch verglichen mit FUJABA recht bersichtlich wirkt erschwert doch die unzureichende Doku
49. Spezifikation in Phasen Event Automaten bersetzt werden Diese k nnen von einem anderen Werkzeug gelesen wer den das wiederum erm glicht dass Model Checker Eigenschaften der Spezifikation pr fen k nnen Gliederung Dieser Bericht ist wie folgt aufgebaut Zun chst werden alle Seminarvortr ge der Pro jektteilnehmer zu den in diesem Projekt relevanten Themen vorgestellt Im Anschluss folgen die in der Gruppe erstellten Entwurfsdokumente dabei handelt es sich im Ein zelnen um folgende Kapitel Produktskizze Die Produktskizze ist das Ergebnis der ersten Anforderungsanaly se und ist sowohl als Diskussionsgrundlage zwischen Kunden und Entwicklern gedacht als auch als Basis f r die Anforderungsdefinition Anforderungsdefinition Die Anforderungsdefinition ist eine Art Vertrag ber das zu entwickelnde Produkt Abweichungen hiervon m ssen gesondert angegeben werden Modifizierung der Anforderungen In diesem Kapitel werden die erw hnten Ab weichungen von der Anforderungsdefinition beschrieben Entwurf Getrennt in Architektur und Feinentwurf wird hier die technische Realisie rung der Syspect Applikation erl utert Schlie lich wird in einem abschlie enden Kapitel ein Fazit gezogen und ein Ausblick ber in Zukunft zu erg nzende Features gegeben Projektgruppe Syspect 2 12 Oktober 2006 Teil I Seminarausarbeitungen Endbericht In diesem Abschnitt werden alle Grundlagen die f r die Projektarbeit n tig ware
50. Tour ein Quick Guide sowie eine FAQ Seite zur Verf gung Cookbook F r Entwickler die ArgoUML in dessen Funktionalit t erweitern m ch ten steht ein cook book engl f r Kochbuch zur Verf gung In diesem Buch wird die Architektur in allen Einzelheiten dokumentiert sowie Erl uterungen zum Programmie rungen von Modulen und Plug ins zu ArgoUML gegebenen Kli05 ArgoUML Quellcode Dokumentation Der Quellcode ist durch JavaDoc doku mentiert und kann auf der Projekt Homepage eingesehen werden 4 3 Projektrelevante Themen 4 3 1 Aufgaben der Projektgruppe Syspect Die Projektgruppe Syspect hat das Ziel ein UML Entwicklungsumgebung zu entwi ckeln und zu implementieren welches die im folgenden aufgef hrten Merkmale aufwei sen soll Projektgruppe Syspect 37 12 Oktober 2006 Endbericht KAPITEL 4 ARGOUML UML Werzeug um Unterst tzung eines CSP OZ DC Profils erweitern Unterst tzung von Klassendiagrammen State Machines Composite Structure Diagrammen Formalisierung der Daten durch visuelle Eingabe der Spezifikationssprache Z Eingabe der Zeitaspekte durch Formeln des Duration Calculus DC Speicherung der UML Modelle im Standardaustauschformat XMI Export als Latex Sourcecode Export als Phasen Event Automaten PEA 4 3 2 ArgoUML Intern Dieses Kapitel besch ftigt sich mit der internen Struktur von ArgoUML Es soll einen kurzen Einblick ber die verwendeten Bibliotheken sowie einen Einblick in Orga
51. Verhalten in Ausnahmesituationen Die letzte besagt dass bei einer bestimmten Vorbedingung y lt 0 eine Ausnahme geworfen wird FH06 10 4 2 Fehlerbehandlung Wenn die aufgestellten Zusicherungen der JML Spezifikation nicht erf llt werden wer den entsprechende Ausnahmen geworfen Verletzungen von Vorbedingungen l sen einen JMLEntryPreconditionError oder JMLInternalPreconditionError aus Der letztere wird ausgel st wenn ein interner Aufruf einer anderen Methode eine Ausnahme ausl st Dementsprechend gibt es die Ausnahme JMLPostconditionError f r Verletzungen von Nachbedingungen Wenn die Bedingung einer Invarianten nicht mehr eingehalten wird l st dies einen JMLInvariantError aus 10 4 3 jmlunit jmlunit ist ein Werkzeug dass aus Java Klassen mit JML Spezifikation Testklassen auf Basis von JUnit generiert In diesem Zusammenhang spricht man auch von Model Driven Generation Ein Generator erh lt als Eingabe eine abstrakte Beschreibung durch eine Spezifikation Durch dieses Vorgehen wird die Entwicklung der Tests au tomatisiert da der eigentliche Testcode nicht mehr durch den Entwickler geschrieben werden muss Die folgende Grafik zeigt den Ablauf der Generierung java mit JML Annotation N jmlunit jmle een JML Test JML TestData class class class Abbildung 10 3 Generierung von JUnit Testklassen aus JML Dateien Aus e
52. Werkzeuge Aus den in der Einleitung beschriebenen Zielsetzungen ergeben sich folgende Unter projekte die zusammen das Community Z Tools Projekt ausmachen ZML Dies ist die XML Darstellung f r Z Terme Corejava Hierbei handelt es sich um die Java Klassen zur Repr sentation des Syntax Baumes f r Z Ausdr cke Zus tzlich sind hier bereits das Lesen sowie Schreiben von ZML implementiert Die Erweiterungen f r Object Z und TCOZ sind noch in Entwicklung GnAST GnAST ist ein Quellcode Generator der aus einem XML Schema Java Klassen und Interfaces generiert Hiermit werden die Corejava AST Klassen ge neriert Allerdings ist GnAST bisher nur als internes Hilfsmittel f r die CZT Entwickler im Einsatz JEdit Plugins Dieses Unterprojekt hat zum Ziel das Eingeben und Verarbeiten von Z Ausdriicken zu vereinfachen Parser Der Parser ist daf r zust ndig einen AST aus anderen Darstellungen f r Z Ausdr cke zu generieren Ebenso kann mit dem Parser ein AST in eine alternative Darstellungsform berf hrt werden Bisher unterst tzt er Z und Object Z TCOZ ist bisher nur geplant Als Darstellungsformen sind Unicode sowie TX m glich Weiterhin ist die Implementierung eines E Mail Markup geplant Typechecker Der Typechecker dient zum berpr fen von Z Ausdr cken auf Typkor rektheit Gaffe Gaffe ist ein GUI Builder f r Z Animatoren ZLive ZLive ist ein Z Animator der auf den Ideen von Jaza basiert einem in Haskell geschriebe
53. abgeschnittene Verbindungen in Diagrammen Diese sind beispielsweise gew nscht wenn ein Zustand in einer Region au erhalb des sichtbaren Bereichs liegt und eine Transition zu ihm f hrt Momentan wird der Zustand selbst dann entsprechend abgeschnitten die Transition hingegen nicht Mit der aktuell verf gbaren Version von GEF sind clipped connections leider nicht m glich Ansatzpunkt f r diese Funktionalit t w re die Klasse ContainerFigure 17 13 Drag and Drop zwischen Projekten In der aktuellen Version von Syspect ist Drag and Drop nur innerhalb von Projekten m glich Um es projekt bergreifend zu realisieren w re beispielsweise die Implemen tierung eines custom transfer denkbar Ansatzpunkt f r diese Funktionalit t ist die Klasse de syspect navigator View 17 14 Effizienteres Event System In einer zuk nftigen Version von Syspect k nnte unser Event System siehe Abschnitt 15 3 6 S 169 weiter verbessert werden Ansatzpunkt w re unter anderem die Klasse de syspect navigator ContentProvider 17 15 Verschieben von Regionen innerhalb von Zu st nden Momentan ist es nicht m glich Regionen innerhalb von Zust nden in Zustandsdia grammen zu verschieben Um dieses Feature zu implementieren muss die Klasse StateFlowLayoutEditPolicy erweitert werden 17 16 Definition der Methodentypen in der Kon vertierung zu PEA In CSP2PEAConverter for future work insert definition of the method types Projektgruppe Sysp
54. and Drop aus der Diagrammstruktur oder per Kontextmen hinzugef gt werden Innerhalb der Symbolleiste sind folgende Aktionen verf gbar e Neue Klasse capsule protocol data Neue Assoziation base Ageregation conjugated Ageregation Generalisierung Komposition e Bearbeiten e L schen e Kommentar hinzufiigen e Zustandsdiagramm fiir die Klasse erzeugen anzeigen Beim Erzeugen einer neuen Klasse muss deren Stereotyp ausgew hlt werden Eine neue Klasse des ausgew hlten Stereotyps erscheint daraufhin im Arbeitsbereich und kann hier angeordnet werden Will der Benutzer eine Assoziation erstellen so muss deren Typ ausgew hlt werden woraufhin die beiden zu verbindenden Klassen gew hlt werden m ssen Innerhalb des Programms wird daraufhin eine Pr fung auf Konsis tenz durchgef hrt deren Ergebnis im Nachrichtenbereich angezeigt wird Die Wahl des Symbols Bearbeiten ffnet einen Dialog zum ausgew hlten Element In diesem k n nen die relevanten Eigenschaften des Elements ver ndert werden z B bei einer Klasse deren Name Methoden Attribute Tags usw Zur Bearbeitung der Tags dient neben einer Texteingabe ein Formeleditor der je nach Tag OZ oder DC Formeln erstellen kann Optional kann sich der Bearbeitungs Dialog in den Arbeitsbereich einbetten Soll ein Element aus einem Diagramm gel scht werden so w hlt man L schen Zum Hinzuf gen eines Kommentars wird ein neues Kommentarelement erzeugt in de
55. aus einem namenlosen Schema das mit State bezeichnet wird einem Schema Init f r den Initialzustand und Schemata zu den Kommunikatio nen com c S I Interface CSP CSP Teil 7 OZ Teil Abbildung 7 16 CSP OZ Schema Das Beispiel des Fahrstuhls das auch schon zur Erkl rung von CSP Prozessen und Z Schemata verwendet wurde soll nun in Abbildung 7 17 die Kombination der beiden Spezifikationssprachen verdeutlichen Fahrstuhl chan knopfDruecken fahreZu 0 3 main knopfDruecken stock fahreZu stock main com fahreZu aktuellerStock N A aktuellerStock neu 0 3 Init aktuellerStock neu aktuellerStock 0 Abbildung 7 17 CSP OZ Schema eines Fahrstuhls 7 4 2 Semantik Eine CSP OZ Spezifikation soll als Spezifikation eines Prozesses aufgefasst werden und bekommt daher eine Semantik nach dem Failure Divergences Modell der CSP Prozesse Dazu werden FD Semantiken f r den CSP und den OZ Teil gebildet und aus der parallelen Komposition dieser beiden entsteht die FD Semantik einer kompletten CSP OZ Spezifikation Wird eine Kommunikation im CSP Teil ausgef hrt muss die entsprechende Operation auf den Zustand im OZ Teil ausgef hrt werden Projektgruppe Syspect 66 12 Oktober 2006 Endbericht KAPITEL 7 CSP OZ KOMBINATION ZWEIER METHODEN 7 5 Fazit CSP OZ kombiniert die Vorteile der Spezifikationssprachen CSP und Object Z Da durch k nnen rea
56. bestimmten Gr nden f r eine M glichkeit entscheide bzw aus bestimm ten Gr nden gegen die beiden anderen dann sollte dieser Vorgang dokumentiert werden Eine Anmerkungen dazu Was wichtig in diesem Fall bedeutet ist sub jektiv und sollte zun chst vom Programmierer entschieden werden Allerdings sollte bei Review Phasen konstruktive Kritik an der Dokumentation ge bt wer den um diese im Zweifelsfall zu pr zisieren e Jeder Klasse soll ein Verantwortlicher zugeordnet werden Dieser wird zu Beginn als Autor erw hnt und ist im Normalfall der der die erste Version der Klasse eincheckt F r den Fall dass ein anderer an der Klasse etwas ndern muss hat er zu markieren dass die nderung nicht vom Autor stammt und er hat den Autor zum n chstm glichen Zeitpunkt zu kontaktieren und die nderung mit ihm abzusprechen Dadurch erhalten wir f r jeden Schnipsel Code einen klaren Ansprechpartner Nat rlich kann im Ausnahmefall die Verantwortung f r eine Klasse mal getauscht werden bzw kommissarisch und zeitlich begrenzt von einem anderen gef hrt werden z B wenn einer Urlaub hat Nachtrag Durch die gro e Anzahl der Klassen in Syspect der h ufig eingesetzten Praxis dass einige wenige viele Klassenr mpfe erstellen die dann nach und nach von anderen umgearbeitet werden und bestimmt auch zu wenig Disziplin wurde diese Richtlinie kaum eingehalten e Weitere Richtlinien F r den Fall dass for Schleifen nicht in der neuen
57. dabei geschaffenen Klassendiagramm gibt es eine Klasse Car Diese soll einfach nur ein Attribut available vom Typ boolean haben W rde dieses Klassendiagramm nach XMI importiert k nnte der entsprechende Code so aussehen lt xsd complexType name Car gt lt xsd element name available type xsd boolean gt lt xsd element minOccurs 0 maxOccurs unbounded ref xmi Extension gt lt xsd complexType gt Eine Klasse wird immer als complexType definiert In einem complexType Element ist es m glich durch ein element Element ein Attribut der Klasse anzugeben Mit minOccurs und maxOccurs kann man Unter und Obergrenzen festlegen wieviele sol cher Elemente auftauchen d rfen Die default Werte f r beide sind 1 k nnen also im Fall von unserem Attribut available weggelassen werden Wir sehen aber auch dass dieser complexType null oder beliebig viele sogenannte extensions haben kann Dies dient dem Zweck spezifische werkzeugabh ngige Infor mationen zu speichern also z B Angaben an welcher Stelle die entsprechende Klasse im Diagramm eingezeichnet war Folgendes XML Dokument ist also korrekt im Sinne dieses Schemas lt Car gt Projektgruppe Syspect 55 12 Oktober 2006 Endbericht KAPITEL 6 EINF HRUNG IN UML UND XMI lt available gt true lt available gt lt Car gt Zur Vertiefung des Themas XMI wird GDB02 empfohlen Projektgruppe Syspect 56 12 Oktober 2006 Endbericht KAPITEL 7 CSP OZ KOMBI
58. dem s mtliche Elemente detailliert erkl rt werden Projektgruppe Syspect 34 12 Oktober 2006 Endbericht KAPITEL 4 ARGOUML w Unbenannt Class Diagram 1 ArgoUML Datei Bearbeiten Ansicht Neues Diagramm Anordnen Senerieren Hinweise Werkzeuge Hilfe Gapa xb0 lt gt Aa DEBHRERD 4 GE Y UR BBE t B ty BBS D Dr Order By Type Name gt E Q EX untitiedModel Class Diagram 1 Use Case Diagram 1 9 El java 9 E lang String double int Nach Priorit t sortieren e 8 Elemente lt Caza bearbaiten A Dokumentation A Ausseher Quelle estriktionen Markierte Werte Checkliste a Hoch Class a 8 ES EN Attribute E Attribut_Eins DJ mittel we A Niedrig Name Klasse_X Stereotyp N Namenstaum Paz untitiedModel _Y Vererbungen Operationen r Modifikatoren Empf nger Abh ngigkeiten Endpunkte _ Abstrakt _ Blatt 1 7 Wurzel _ Aktiv Sichtbarkeit nei Ars a Spezialisierungen Eigene Elemente Abbildung 4 1 Benutzeroberfl che ArgoUML 4 2 2 Funktionen von ArgoUML In diesem Kapitel werden die einzelne Funktionen erl utert die ArgoUML dem An wender bietet Grafische Oberfl che ArgoUML bietet dem Anwender eine grafische Oberfl che siehe Abbildung 4 1 mit der es m glich ist alle zur Verf gung stehenden Diagram marten zu zeichnen Die einzelnen Fenster auf der Oberfl che
59. den gestrichelten Pfeilen dargestellt bersicht ber die in GEF verwendeten Entwurfsmus ter Architekturmuster EFIO6d Projektgruppe Syspect 149 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF Controller Passed to enon Create Model EditPart Figure Element ee 8 x Notification Refresh kan E Policies Request__ User Abbildung 15 2 Wesentliche Abl ufe des GEF Frameworks e Das Model View Controller Muster wird verwendet um Schnittstelle Verhalten und Pr sentation von einander zu entkoppeln Jedes Java Objekt kann ein Model Element sein Jedes View Element muss das Interface Figure implementieren e Das Command Muster wird verwendet um nderungen am Model zu kapseln e Das Chain of Responsibility Muster entkoppelt Sender von Requests von den Empf ngern in dem mehr als einem Empf nger die M glichkeit gegeben wird den Request zu verarbeiten Zum Beispiel gibt es Editpolicies die Requests an mehrere verkettete Commands weitergegeben e Das State Muster erlaubt dem Editor sein Verhalten zu ndern wenn sein inter ner Zustand sich ndert Zum Beispiel verh lt sich der Editor bei einem ausge w hlten marquee tool anders als wenn ein create tool aktiv ist e Das Abstract Factory Muster stellt eine Schnittstelle f r das Erstellen von Fami lien mit einer in Beziehung stehender Objekte zur Verf gung Dies kann in GEF zum Erstellen von Editparts verwendet werden Das GEF Framework stellt sow
60. des Projekts ArgoUML setzt sich aus den zwei W rtern Argo und UML zusammen Die Unified Modeling Language vereinheitlichte Modellierungssprache h ufig mit UML abgek rzt ist eine von der Object Management Group OMGs entwickelte und standardisierte Beschreibungssprache um Strukturen und Abl ufe in objektorien tierten Softwaresystemen darzustellen Wik05b Projektgruppe Syspect 33 12 Oktober 2006 Endbericht KAPITEL 4 ARGOUML Der Begriff Argo stammt vom Entwickler Jason Roberts der Bibliothek f r kognitive Unterst tzung Def Kognition Mit dem Begriff Kognition werden solche Prozesse und Produkte bezeichnet die auf der Grundlage der Leistungsf higkeit des Gehirns auf berwiegend intellektuelle verstandesm ige Wahrnehmungen und Erkenntnisse bezogen sind Wik05d Der Begriff im Kontext der Bibliothek Argo steht hier f r Erkenntnis und Ent scheidungsprozesse mit denen Anwender von Programmen die diese Bibliothek nutzen in ihrer T tigkeit unterst tzt werden Jason Roberts war seinerzeit auf der Suche nach einem passenden Namen in der griechischen Mythologie und wurde in der Geschichte Jason and the Argonauts f ndig Er benannte seine Bibliothek nach dem Schiff aus der Geschichte welches hellseherische F higkeiten besa Argo ist zudem ein Teil von Programmnamen geworden die diese Bibliothek nutzen Allgemeine Informationen zum Projekt ArgoUML ArgoUML ist ein Open Source Projekt
61. die von SyspectProperties implementiert werden definieren eine Reihe von Attributen auf die im Folgenden eingegangen wird Property Contributor Der Property Contributor ist die Schnittstelle zwischen den einzelnen Workbench Parts und einer Tabbed Property View d h der Contributor wird von mehreren Work benchParts geteilt die auf ein Model zugreifen wollen Zu diesem Zweck miissen die ent sprechenden WorkbenchParts das Interface ITabbedPropertySheetPageContributor implementieren Dieses beinhaltet nur die Methode getContributorld ber die die eindeutige ID des Property Contributors zur ckgegeben wird Des Weiteren muss den WorkbenchParts mitgeteilt werden dass sie die Tabbed Property View benutzen sollen Hierf r wird die Methode getAdaptable Class adapter berschrieben die berpr ft ob der Adapter wirklich IPropertySheetPage ist und entsprechend die Tabbed Property View zur ckgibt Im Syspect Projekt sind die relevanten Workben cheParts der Navigator der ClassdiagramEditor der ComponentdiagramEditor und der StatemachineEditor Optional k nnen dem Property Contributor ein TypeMapper zum Abbilden der Ty pen von selektierten Objekten auf andere bzw ein LabelProvider f r die Darstellung hinzugef gt werden Property Tabs Der Property Tabs Extension Point definiert die m glichen Reiter die in der Tabbed Property View auftreten k nnen ber die Contributor ID wird eine Referenz zum Property Contributor geschaffen Je
62. e C Menge der Uhren e ECPxL VUV LAUC x P C x P Transitionsrelation es P L V Invarianten Pr dikat f r Zust nde e I P L C Uhreninvariante f r Zust nde Po C P Startzust nde 8 4 CSP OZ DC Mit dieser Syntax Definition der Phasen Event Automaten ist es uns nun m glich eine Ubersetzung der einzelnen Teile der CSP OZ DC Spezifikation in PEA anzugeben Projektgruppe Syspect 72 12 Oktober 2006 Endbericht KAPITEL 8 CSP OZ DC UND PEA 8 4 1 CSP Teil Den CSP Teil bersetzen wir unter Verwendung der operationellen Semantik Die Zu st nde werden weiterhin mit CSP Prozessen beschriftet Als Alphabet nutzen wir das vom main Prozess Zustandsvariablen oder Uhren werden keine eingef hrt F r jede Transition aus der operationellen Semantik des main Prozesses f hren wir eine Transi tion in unserem PEA ein e p a A Near 76 SP E falls a Ar p Neca e E sonst Zus tzlich erh lt jeder Zustand eine Schleife mit p Neca 7e p E Dies ist sp ter wichtig f r die parallele Komposition Die Startzust nde werden vom main Prozess abgeleitet 8 4 2 Object Z Teil Zur bersetzung des Object Z Teils erstellen wir einen Automaten mit nur einem Zu stand Die Startkante beschriften wir mit den Pr dikaten aus Init F r jedes Event wird genau eine Kante erstellt die genau dieses Event zul sst alle Variablen die nicht in der A Liste sind konstant h lt und die Variablen in der A Liste
63. eclipse equinox common e org eclipse gef e org eclipse ui views 15 3 9 Die drei Diagrammeditoren Die Beschreibung der drei Diagrammeditor Plug ins ist einem Kapitel zusammenge fasst da sie viele Gemeinsamkeiten aufweisen zum Beispiel stimmen die meisten Schnittstellen berein Jedes dieser Plug ins erweitert Syspect um einen grafischen Editor f r jeweils einen der drei Diagrammtypen die erforderlich sind um die Anforderungen des UML Profils zu erf llen siehe Kapitel 9 S 77 und Kapitel S Sie verwenden hierf r sowohl das GEF Plug in als auch das Syspect eigene de syspect editorbundle Diese Architektur soll es erleichtern weitere Diagrammtypen zu Syspect hinzuf gen zu k nnen Die Paketstruktur der Diagrammeditor Plug ins ist nach dem in Abschnitt 15 3 1 S 157 vorgestellten Prinzip in Controller und View Teil untergliedert W hrend im Controller Bereich sowohl die ben tigten GEF Klassen wie EditParts EditPolicies und Commands als auch Actions und jeweils ein Sprachpaket untergebracht sind werden im View Bereich neben den GEF Figures auch die View Anteile der Wizards und Preferences bereitgehalten In den folgenden Abschnitten werden pro Plug in einige Besonderheiten und Techniken vorgestellt die f r den Entwurf des Editors f r die jeweilige Diagrammart zu beachten wichtig sind SyspectClassdiagramEditor Plug in F r den Klassendiagrammeditor sind zwei verschiedene GEF Layout Konzepte notwen dig um
64. eine Kombination der drei Spezifikationssprachen CSP Hoa04 Object Z Smi00 und Duration Calculus ZHR91 zur Spezifikation von Abl ufen Daten und Zeit CSP OZ DC Spezifikation Das sind mehrere CSP OZ DC Klassen die zusammen das Verhalten eines Systems spezifizieren Der Spezifikations Begriff wird hier anders verwendet als in der UML DC Der Duration Calculus entwickelt von Zhou Hoare und Ravn ist eine Intervall Temporal Logik f r Realzeitsysteme Eclipse ist eine Open Source Community deren Projekte darauf ausgerichtet sind eine erweiterbare Entwicklungs Plattform und Anwendungssysteme zur Software Entwicklung bereitzustellen EFIO5b EMF Das Eclipse Modeling Framwork ist ein Open Source Java Framwork zur auto matisierten Erzeugung von Quelltext anhand von strukturierten Modellen Projektgruppe Syspect 223 12 Oktober 2006 Endbericht ANHANG GLOSSAR Entwurfsmuster engl design pattern beschreibt eine bew hrte Schablone f r ein Entwurfsproblem Es stellt damit eine wiederverwendbare Vorlage unabh ngig von einer Programmiersprache zur Probleml sung dar Extension Point ist eine von einem Plug in angegebene Erweiterungsm glichkeit Factory ist eine Klasse die nach bestimmten Kriterien Objekte anderer Klassen er zeugt Feature steht allgemein in der Software Entwicklung f r eine besondere Eigen schaft F higkeit eines Produktes Im Eclipse Umfeld gibt es jedoch eine weitere Bedeutung Ein Feature ist
65. einer Ampelsteuerung 7 1 Beispiel f r ein reaktives System 2 2 Emmen 7 2 Der CSP Prozess STOP e 7 3 Der CSP Prozess SKIP on m nn 7 4 Der CSP Prozess knopf1 fahreZul gt STOP 1 5 OGSP2Prozess nit A 2 2 2 Binnen en ee BOD re AE rel 6 Der CSR genee RE ees 2 Fr einer habe Wer GSP PIOZSSHPi una a RE a a A ee 7 8 Der CSP Prozess Ps TEE RI EN ae 7 9 CSP Prozess in Trace Semantik 7 10 CSP Prozess in SOS 10 El 18 19 21 21 22 22 24 25 25 26 28 29 30 31 Projektgruppe Syspect 229 12 Oktober 2006 Endbericht ABBILDUNGSVERZEICHNIS 7 11 Z Schema Bahrstohl Ae 3 22 oe e a 64 7 12 Dekoriertes Z Schema Fahrstuhl 64 7 13 Z Schema der Operation fahreZu 2 2 ee 65 7 14 Z Schema der Operation fahreZu mit A Operator 65 7 15 Z Schema der Operation fahreZu 2 ee 65 lO Cp PAO Ae Schema q 2 2 8 2a nal ae ale Betty de 66 7 17 CSP OZ Schema eines Fahrstuhls 66 8 1 Erf llende Interpretation f r P Q 72 8 2 CSP OZ DC Spezifikation eines Z hlers 2 2 22 22 nenn 74 8 3 Automat zum Os Pell aha a be Sa EB ah A de 75 8 4 Automat zum Object Z Teil 2 2 2 2 mo nme 75 8 5 Automaten zum DC Teil o 76 9 1 Klassendiagramm der Bank inklusive der ben tigten Protokolle aus MORWOS ue da SA EE AR a 80 9 2 Statemachine der Bank aus MORWO5S
66. f r Elemente die Kindelemente von Komponenten seien k nnen und damit eine entsprechende Beziehung wiederum zu IComponent Projektgruppe Syspect 176 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lAbstractConnector IComponentContent IConnectorContainer A A is_parent A lt lt interface gt gt E lt lt interface gt gt lt lt interface gt gt S lt lt interface gt gt lAssemblyConnector IConnector IComponent IPort lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt linterface IRequiredinterface IProvidedinterface IConnectorConnection IDelegate Abbildung 15 18 Komponentendiagramme Kontext Abstrakte Oberstruktur der Viewable Ebene Die Viewable Ebene hat folgende Struktur Alle Klassen dieser Ebene erben von der Wurzelklasse IViewable Auf der darunter liegenden Ebene gibt es zun chst fiir jede Basis Objektart Diagramm Verbindung Knoten eine eigene Oberklasse IViewableDiagram IViewableConnection IViewableNode Zus tzlich wurde ein In terface IViewableWithModel eingef hrt da alle Elemente dieser Ebene aufteilbar in zwei Gruppen sind In der einen Gruppe ha
67. gt IProjectManager lt lt interface gt gt IProject lt lt interface gt gt ITopLevelElement lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lAbstractClass IViewableDiagram ISystemDefinition lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt IStateMachine IClassContent IDiagramContent lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt IStateContainer IVAbstractClass IVAbstractState Component A E lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lAbstractState IVClassContent IVState IComponentContent lt lt interface gt gt IConnector lt lt interface gt gt lt lt interface gt gt IState IVRegion d Di lt lt interface gt gt IRegion Abbildung 15 10 Eltern Kind Beziehungen im Syspect Model in Pfeilrichtung gelesen ist die Semantik ist Kind von Die Viewable Ebene ist eine Art Ansichts Ebene Es gibt z B mehrere Ansichten auf eine Capsule da sie beliebig oft in Klassendiagrammen oder als Component in Komponentendiagrammen auftauchen kann Um dies zu erm glichen sind auf dieser Ebene die Interfaces IVClass und IComponent angesiedelt In diesen Klassen wird gespe
68. hat neben der Rolle des Observers im gleichnamigen Modell auch noch die M glichkeit Logik in FSA Eigenschaften zu bersetzen und umgekehrt FSA Eigenschaften in Logik Dies ist zum Beispiel im Dynamic Object Browsing System von Bedeutung So kann der Wert einer bool schen Variable in Farben bersetzt werden Die Variable mit der Ausp gung false w rde bersetzt Rot und true w rde Gr n ergeben 3 3 Architektur von FUJABA4Eclipse In der FUJABA Version f r Eclipse ist eine teilweise andere Struktur vorhanden Zu grunde liegt die durch das Graphical Editing Framework einem Eclipse Plugin vor gegebene Struktur welche auf dem MVC Modell aufsetzt Siehe hierzu Abbildung 3 4 Das Zusammenspiel der Komponenten ist am Besten mit Hilfe eines Beispiels zu erkl ren Wir gehen davon aus dass in unserem Klassendiagramm zwei Klassen existieren Diese wollen wir durch eine Assoziation verkn pfen Durch Anw hlen des Icons zum Erstellen einer Assoziation wird ein Befehl auf den Befehlsstapel des Editors gelegt Bei der Bearbeitung dieses Befehls wird die Instanz EditPart welche die Rolle des Controllers zusammen mit den Instanzen EditPolicy und Command bernimmt kontaktiert Diese erzeugt das Fenster zum Erstellen und Be arbeiten einer Assoziation Nach Auswahl der Klassen welche miteinander verkn pft werden sollen und anschlie endem Best tigen des Dialogs wird der erzeugte Befehl an Projektgruppe Syspect 30 12
69. hier eine M glichkeit verschiedene Plug ins und ih re F higkeiten zu gruppieren Es sind XML Dateien die keinen Code enthalten sondern nur die Informationen ber die von einem Produkt ben tigten Plug ins und wie erforderliche Updates m glich sind GEF Das Graphical Editing Framework ist ein Plug in das ein Framework f r die Erstellung von grafischen Editoren liefert Generalisierung ist in der UML eine gerichtete Beziehung zwischen einem generelle ren und einem spezielleren Classifier GUI Graphical User Interface Grafische Benutzeroberfl che Das ist eine grafische Schnittstelle um Interaktion mit dem Benutzer zu erm glichen JVM steht f r Java Virtual Machine Sie ist der Teil der Java Laufzeitumgebung JRE der f r die Ausf hrung des Java Bytecodes verantwortlich ist BKTEX Lamports TEX entwickelt von Leslie Lamport 1984 ist ein Softwarepaket dass die Benutzung des Textsatzprogramms TfXvereinfacht Kommentar ist eine Anmerkung die ein Modellierer in einem UML basierten Modell einf gen kann Ein Kommentar kann mit anderen UML Elementen verbunden sein Komposition ist eine spezielle Assoziationen die eine Teil vom Ganzen Beziehung darstellt Die Teile des Ganzen k nnen nicht einzeln bestehen im Vergleich zu einer Aggregation Konsistenz bedeutet Zusammenhalt und meint hier das schl ssige Zusammenpassen von View und Model ohne das Widerspr che auftreten Model Checker Ein Model Checker ist eine Software z
70. in einer anderen Ausarbeitung behandelt wird Ein sehr niitzliches Programm das man trotz des Namens fiir beide Systeme benutzen kann ist CVSview Es gibt auch Subversionview welches man nur fiir SVN benutzen kann Diese Werkzeuge bedienen sich eines Apache um in der Lage zu sein das Re pository im Internet ansehbar zu machen Dies ist nur ein lesender Zugriff der aber in der Lage ist Diffs und die Modulstruktur anzuzeigen 11 5 Administration Abschlie end werden in diesem Abschnitt noch ein paar Punkte zur Administration behandelt und was n tig ist um mit CVS oder Subversion arbeiten zu k nnen 11 5 1 Repositories Mit den Befehlen cvs init bzw svnadmin create legt man ein Repository mit add oder import dann die Modulstruktur an Ein Repository kann mehrere Projekte ent halten die unabh ngig voneinander verwaltet und benutzt werden k nnen Projektgruppe Syspect 97 12 Oktober 2006 Endbericht KAPITEL 11 VERSIONSVERWALTUNG 11 5 2 Modul Aliase CVS kann sogenannte Modul Aliase verwalten Das hei t man kann einen Begriff definieren der auf mehrere Verzeichnisse oder Dateien verweist die man dann unter Zuhilfenahme dieses Begriffs gemeinsam auschecken kann So eine Funktion ist in Sub version nicht implementiert sondern muss durch Kopieren in ein anderes Verzeichnis gel st werden Auch wenn diese Kopie quasi nur ein Abbild ist und keine vollst ndige Kopie ist diese Umsetzung f r Personen die d
71. ins Zudem es ist auch m glich Plug ins als Rich Client Application laufen zu lassen 2 1 2 Installation von Plug ins Plug ins lassen sich komfortabel ber einen integrierten Update Manager in Eclipse in stallieren und aktualisieren Jedoch kann das Plug in auch in das Installationsverzeich nis entpackt werden Wie Abbildung 2 2 zu entnehmen ist befindet sich der Update Manager in der Men leiste von Eclipse unter dem Punkt Help gt Software Updates Durch die Angabe einer Update Site ist es dem Update Manager m glich gefunde ne Plug ins aufzulisten und zu installieren Die Update Site kann sowohl ein lokales Verzeichnis als auch eine URL im Netz sein Eine weitere n tzliche Funktion des Upda te Managers ist die Pr fung auf Abh ngigkeiten verschiedener Plug ins untereinander d h entsprechende Inkompatibilit ten zwischen den Plug ins werden direkt aufgezeigt Das Installationsverzeichnis von Eclipse gliedert sich in die vier Unterverzeichnisse con figuration features plugins und readme Das Verzeichnis plugins enth lt alle Plug ins die zur Eclipse Installation installiert worden sind sowie interne Plug ins welche zu Eclipse geh ren Beispielhaft kann hier die Plattform als internes Plug in genannt werden Ein Plug in kann auch durch Kopieren in das Verzeichnis installiert werden Das gilt ebenso f r Features siehe Abschnitt 2 3 welche sich dementsprechend in dem Projektgruppe Syspect 18 12 Oktober 2006 Endberic
72. ins gibt es au erdem ein lang Paket language welches direkt im Stammpaket oder im controller Bereich jedes Plug ins liegt Hierin wurden in der GUI angezeigte Strings in sogenannte Property Dateien ausgelagert um eine bessere Handhabung der Textanzeige in der GUI zu bekommen und um Text in mehreren Sprachen zur Verf gung zu stellen Die Externalisierung der Strings wurde mit Hilfe von Eclipse Message Bundles reali siert Dieses Prinzip ist auf der Eclipse Homepage EF Ia beschrieben Somit beinhalten die lang Pakete der Plug ins sowohl die lokalisierten Strings als auch die Methoden um jene auszulesen 15 3 2 Syspect Core Plug in Das Syspect Core ist das Herzst ck unserer Applikation Hier sind zentrale Klassen wie SyspectApplication und SyspectPlugin angesiedelt die die Basis unserer Produktes bilden In diesem Abschnitt werden sowohl die bereitgestellten und ben tigten Schnitt stellen des Plug ins erl utert als auch weitere wichtige Klassen wie der UndoManager der NameAdministrator und SyspectUtil das zentrale Prinzip der Eclipse Actions und schlie lich das Syspect eigene Prinzip der DeleteActionHooks Projektgruppe Syspect 157 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF Schnittstellen Syspect Core stellt einige Extension Points zur Verf gung die im Folgenden beschrie ben werden e persistence Ein Plug in welches die Persistenz von Syspect bernehmen soll muss das Interface IPersistenceManager i
73. keinen Button oder Men eintrag Superzustand er zeugen die Funktionalit t ist nur ber Drag and Drop m glich e Produktskizze 12 2 3 Parallelit t wird ber UML Regions erm glicht e Produktskizze 12 3 Das Laden und Speichern erfolgt nicht mithilfe von XMI sondern mit einem eigenen XML Format Projektgruppe Syspect 145 12 Oktober 2006 Endbericht KAPITEL 14 MODIFIZIERUNG DER ANFORDERUNGEN e Anforderungsdefinition 13 2 Eine Druckfunktion muss nicht vorhanden sein da voraussichtlich in den meisten F llen die Grafiken in einen Textkontext gestellt werden sollen Deswegen ist die Bildexport Funktion ungemein wichtiger als eine Druckfunktion Au er als PNG und EPS ist es m glich BMP und JPEG Bilder zu exportieren e Anforderungsdefinition 13 2 2 Object Z Datentypen und Ausdr cke und DC Ausdr cke 2 Der DC Formeleditor ist nur f r Countertraces und nicht f r Test formeln vorgesehen da es im CSP OZ DC nur Countertraces gibt e Anforderungsdefinition 13 2 3 Allgemeine Eigenschaften 9 d Es ist gar nicht m glich Transitionen mit Operationen zu beschriften die in keiner Klasse defi niert sind deswegen wird dieser Vorgang auch nicht als Fehler angezeigt e Produktskizze und Anforderungsdefinition allgemein Alles was in diesen Doku menten ber Kommentare und sogenannte Metadaten steht wird durch folgendes ersetzt Es soll zum einen Kommentare f r Elemente geben die in einer Property Ansicht geschr
74. komfortabel Model Checking CGP99 durchf hren zu k nnen ben tigt man eine einheitliche Semantik Diese wird hier durch Phasen Event Automaten HM05 gelie fert 8 2 Duration Calculus Der Duration Calculus ist eine Logik tiber Zeitintervallen 8 2 1 Syntax Die Syntax des DC gliedert sich in drei Teile Zustandszusicherungen Eine Zustandszusicherung 7 hat folgenden Aufbau rel Ted sae m Projektgruppe Syspect 69 12 Oktober 2006 Endbericht KAPITEL 8 CSP OZ DC UND PEA Hierbei ist X eine Observable Observablen werden verwendet um Systemeingaben und Systemausgaben zu modellieren Terme Ein Term 0 hat folgenden Aufbau 0 x E Sm fO BA Hierbei ist x eine Variable ein spezielles Symbol m eine Zustandszusicherung und f ein Funktionssysmbol Formeln Formeln k nnen nach folgender Vorschrift gebildet werden Fri p 0 0 ak PA Ps Vek F E Hierbei ist p ein Pr dikatssymbol 0 bis 0 Terme und x eine Variable 8 2 2 Semantik Die Semantik des DCs definieren wir ber eine Interpretationsfunktion Zustandszusicherungen Die Semantik von Zustandszusicherungen ist gegeben durch eine Funktion Z Sie ordnet einer Zustandszusicherung zu jedem Zeitpunkt einen boolschen Wert 0 f r falsch oder 1 f r wahr zu T 0 t T 1 t O a T 7 t r u m 1 gdwZ m t 1 und Zelt sonst Tm A mr t l 0 Terme Die Semantik von Termen wird ber ebenfalls durch eine Funktion Z geliefert d
75. lassen sich nach indivi duellen anordnen ein und ausblenden Die folgenden Diagrammarten werden in der Version 0 19 unterst tzt e Klassendiagramm e Use Case Diagramm e State machines e Activity Diagramm e Collaboration Diagramm e Deployment Diagramm Projektgruppe Syspect 35 12 Oktober 2006 Endbericht KAPITEL 4 ARGOUML Forward Engineering Forward Engineering beschreibt die M glichkeit erstellte Diagramme in einen Quellcode einer definierbaren Zielsprache zu bersetzen Bis dato wurde die Zielsprache Java fest in ArgoUML integriert Weitere Sprachen sind als Module vorhanden und k nnen bei Bedarf nachinstalliert werden Reverse Engineering Reverse Engineering beschreibt den Prozess aus bereits ver f gbaren Quellcode Diagramme zu erstellen Zur Zeit wird diese Funktion nur f r die Zielsprache Java angeboten Object Constraint Language Support F r UML Klassendiagramme besteht die M glichkeit mit dem Object Constraint Language Support eingegebene Daten auf Syn tax und Typen zu berpr fen XMI Support Extensible Metadata Interchange XMI ist ein Datenformat wel ches zum Austausch von Daten unter Programmen dient Bei ArgoUML wird es dazu benutzt ein entwickeltes Modell in diesem Datenformat zu speichern um es anderen Programmen zur Verfiigung zu stellen Export von Diagrammen In ArgoUML ist es m glich Diagramme in ein Grafik format zu exportieren M gliche Dateiformate sind GIF PGML SVG Pos
76. lt lt interface gt gt IViewableDiagram lt lt interface gt gt IClassdiagram is_parent lt lt interface gt gt IComponentdiagram lt lt interface gt gt IComponent lt lt interface gt gt IVAbstractClass Abbildung 15 20 Kontext Diagramme und Diagramminhalt IVStateContainer Letzteres Interface erbt ebenfalls von IViewableWithModel und hat als erbende Kinder IVRegion und IVStateMachine Die erbenden Interfaces von IViewableConnection lassen sich in zwei Gruppen eintei len e IVTransition und IVClassConnection haben korrespondierende Interfaces auf der Model Ebene und erben deswegen auch von IViewableWithModel e IConnectorConnection und IDelegate haben keine zugeh rigen Modelelemente lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt IViewableDiagram IViewableWithModel IViewableConnection lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt IComponentdiagram IClassdiagram IVStateContainer IVTransition IVClassConnection IConnectorConnection IDelegate lt lt interface gt gt lt lt interface gt gt IVRegion IVStateMa
77. lungswerkzeug ANT Another Neat Tool zusammenzustellen Das Build Werkzeug ANT ist eine Java Technologie die zum automatischen Erstellen von Softwarepake ten entwickelt wurde Die Konfiguration erfolgt ber eine XML Datei die von ANT ausgewertet wird Der grunds tzliche Aufbau einer Konfigurationsdatei besteht aus der Definition eines Projektes das einzelne Ziele targets definiert Diese Ziele wiederum beinhalten Aufgaben tasks die bei Aufruf des Ziels ausgef hrt werden Solche Aufga ben sind u a das Kompilieren von Quellcode oder das bertragen von Daten zu einem Server Daneben kann man noch Abh ngigkeiten zwischen einzelnen Zielen definieren F r weitere Informationen sei auf die einschl gige Literatur verwiesen Unter ANT gibt es neben den o Aufgaben auch die M glichkeit ein JUnit Task zu definieren Lem06 Das folgende Listing zeigt den Aufbau dieses Tasks lt xml version 1 0 gt lt project name JUnit demo basedir gt lt target name junit depends compiletest gt lt junit gt lt formatter type plain usefile false gt lt beliebig viele gt lt test name IntTest gt Projektgruppe Syspect 88 12 Oktober 2006 Endbericht KAPITEL 10 SOFTWARE TESTEN lt junit gt lt target gt lt project gt Listing 3 JUnit Task unter ANT Am Anfang k nnen ber das Tag formatter einige Parameter gesetzt werden Das Attribut type konfiguriert die Protokollierung der Tests und das Attri
78. oder nicht zusammen Hierbei werden folgende Basisdatentypen benutzt Da die Basisdatentypen auch f r andere Schemata benutzt werden folgt hier nun die Auflistung der f r das PEA Format relevanten 1 Formula Eine Formula besteht entweder aus genau einer BooleanExpression genau einer RangeExpression genau einer EventExpression oder genau einem FormulaTree Es k nnen also boolsche Formeln damit kodiert werden 2 BooleanExpression Eine BooleanExpression dient zum Notieren boolscher Ausdr cke Im Moment wird der Ausdruck jedoch nur als String kodiert 3 RangeExpression Eine RangeExpression dient zum Vergleich einer Variable mit einer Zahl double Projektgruppe Syspect 121 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION 4 FormulaTree Ein FormulaTree besteht aus einer bis unbegrenzt vielen BooleanExpression RangeExpression EventExpression FormulaTree und ei nem Formula0perator 5 RangeOperator Der RangeOperator ist eine bin re Relation gt gt lt lt Im XML Format werden diese Symbole durch Strings repr sentiert greater greaterequal equal notequal lessequal less 6 EventExpression Eine EventExpression speichert den Namen eines Events 7 Formula0perator Der FormulaOperator kann im Moment AND OR oder NOT sein Er wird verwendet um boolsche Formeln in XML kodieren zu k nnen 8 Variable Eine Variable besteht aus einem Namen und einem Typen beides als String 9
79. operationelle Semantik SOS F r jeden CSP Prozess werden die Zust nde und Transitionen eines Automaten beschrieben Es handelt sich um nichtdeterministische Automaten mit 7 Transitionen der Form A A S sp mit A Events S eine m glicherweise unendliche Folge von Zust nden die CSP Prozesse Proc sind C Proc x Act x Proc So S ist der Startzustand Die Transitionen lassen sich nach vorgegebenen Regeln herleiten welche zum Beispiel in 01d05 Ros97 nachzulesen sind Beispiel N a gt P O SKIP a Ny P Q Dabei dr ckt Q die gerade eingetretene Terminierung aus Trace Semantik Die Trace Semantik gibt die einfache Sicht auf CSP Prozesse Eine Trace ist eine end liche Sequenz sichtbarer Events Act r Die Trace Semantik eines Prozesses ist die Menge aller m gliche Traces Die Beispiele in Abbildung 7 9 und 7 10 zeigen einen CSP Prozess in Trace Semantik und strukturierter operationeller Semantik T a SKIP O c b DRIP lt gt lt GS N BEAT gt Abbildung 7 9 CSP Prozess in Trace Semantik Projektgruppe Syspect 62 12 Oktober 2006 Endbericht KAPITEL 7 CSP OZ KOMBINATION ZWEIER METHODEN N a gt SKIP O c gt b SKIP c af NET SKIP c b gt SKIP c dl b Q SKIP c vl Q Abbildung 7 10 CSP Prozess in SOS Failure Divergences Semantik Die Failure Divergences Semantik FD Semantik gibt eine genauere Sicht auf d
80. r CSP OZ DC Sven Linker 9 1 Einleitung In der Softwareentwicklung wird immer gr erer Wert auf eine Strukturierung der Projekte mithilfe der UML gelegt Da jedoch die UML keine exakte Semantik besitzt sind die Diagramme h ufig mehrdeutig so dass sich die Korrektheit eines Designs nicht berpr fen l sst Im Folgenden soll ein UML Profil definiert werden dass eine bersetzung in die Systembeschreibungssprache CSP OZ DC erm glicht Hiermit wird auch den Diagrammen eine eindeutige Semantik hinzugef gt so dass eine automatische Verifikation der entwickelten Systeme m glich wird 9 2 UML Profil Zur grafischen Beschreibung eines Systems werden die aus der UML bekannten Klas sendiagramme und Statemachines genutzt Zus tzlich wurden aus der UML RT noch die sogenannten Strukturdiagramme bernommen Im UML Profil sind die Stereotypen capsule port und protocol vorhanden Als capsules werden die eigentlichen Systembau steine bezeichnet die Operationen zu Verf gung stellen und nutzen Diese Operatio nen sind jedoch nicht offen zug nglich sondern werden ber die ports anderen capsules zug nglich gemacht Jeder port ist entweder als Sender base schwarz oder als Emp f nger conjugated wei definiert Die Kommunikation zwischen zwei oder mehreren ports wird ber die protocols eindeutig beschrieben In diesen wird angegeben welche Operationen ber den entsprechenden Port zug nglich sind Um festzulegen in welcher capsule ei
81. reagieren Ebenso geschieht dieses mit Benutzereingaben auf der Oberfl che bzw an den Figures Die EditParts behandeln die Events allerdings nicht selbst sondern ha ben f r jedes Event entsprechende EditPolicies die diese Aufgabe bernehmen Die EditPolicies verarbeiten allerdings nur die Events Aktionen f hren sie daran anschlie Bend nicht aus Die Aktionen wie nderungen am Model werden von so genannten Commands bernommen die von den EditPolicies erstellt werden Das hat den Vorteil einer erh hten Modularit t da die Behandlung f r jedes Event separat implementiert werden kann und die Figure unabh ngig von ihren Daten sind bzw jede Figure ihren eigenen EditPart besitzt EFI05al Model Figure SR Refresh Not if Commands St EditPolicy EditPart att 2 GI la f EditPolicy bp Events Requests EditPolicy qe Abbildung 2 10 GEF Architektur 2 5 Fazit Eclipse bietet nicht nur eine sehr gute und ausgereifte Architektur f r die Plug in Entwicklung sondern auch eine beraus komfortable Entwicklungs IDE f r Plug ins Dabei kann auf viele allgemeine Funktionen zur ckgegriffen werden so dass sich die Entwicklung des Plug ins fast ausschlie lich auf die Logik des Plug ins an sich be schr nkt Diese Tatsache hat den Vorteil dass in einer bestehenden soliden Architektur entwickelt wird und berlegungen zum Grundaufbau der Architektur des Plug ins nicht mehr erforderlich sind Trotzdem ist Eclipse funktional so offe
82. runtime applications org eclipse core runtime preferences und org eclipse core runtime products wird im folgenden Abschnitt Rich Client Platform genauer eingegangen Die Plug ins org eclipse help contexts org eclipse help toc org eclipse ui actionSets org eclipse ui perspectiveExtensions org eclipse ui perspectives org eclipse ui popupMenus und org eclipse ui preferencePages wurden bereits vorgestellt siehe Abschnitt 15 2 2 S 154 Es gibt weitere Abh ngigkeiten zu folgenden Plug ins de syspect utils org apache lucene org eclipse help appserver org eclipse help base org eclipse help ui org eclipse help webapp org eclipse gef org eclipse swt org eclipse tomcat org eclipse ui forms und org eclipse ui views Rich Client Platform Syspect setzt auf der Eclipse Rich Client Platform auf Die minimale Menge an Plug ins die ben tigt wird um eine Rich Client Application zu erstellen nennt sich Rich Client Platform F r die Funktionalit t der Anwendung k nnen nat rlich weitere Plug ins verwendet werden die Plattform ist nur das Minimum das zum Erstellen einer Anwendung ausreicht Um so ein Stand alone Programm mit einer grafischen Oberfl che mit Eclipse zu erstellen werden nur zwei Plug ins und deren Voraussetzungen ben tigt Die beiden Plug ins sind org eclipse ui und org eclipse core runtime Auf org eclipse ui wurde bereits im Abschnitt 15 2 2 eingegangen Dieses Plug in wird f r die grafische Benutzeroberfl c
83. sein Nachbedingung Erfolg Die Daten wurden erfolgreich gespeichert und sind wieder abrufbar Nachbedingung Fehlschlag Eine aussagekr ftige Fehlermeldung wird ausgegeben Eingabedaten Das UML Modell Projektgruppe Syspect 126 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION Anwendungsfall Laden von XMI Akteure Nutzer Ziel Darstellung und Bearbeitung vorher gesicherter Daten Ausl sendes Ereignis Der Nutzer hat entweder in der Symbolleiste oder im Men Laden ausge w hlt Vorbedingung Datei zum Laden muss vorhanden sein Nachbedingung Erfolg Die Daten wurden erfolgreich geladen und werden korrekt dargestellt Nachbedingung Fehlschlag Eine aussagekr ftige Fehlermeldung wird ausgegeben Eingabedaten Die jeweilige Datei die geladen werden soll Anwendungsfall Neues Diagramm erstellen Akteure Nutzer Ziel Es soll ein neues Klassen oder Strukturdiagramm erstellt werden Ausl sendes Ereignis Der Nutzer hat entweder in der Symbolleiste oder im Men Klassendiagramm erstellen oder Strukturdiagramm erstellen ausgew hlt Nachbedingung Erfolg Es existiert das jeweilige Diagramm Nachbedingung Fehlschlag Eine aussagekraftige Fehlermeldung wird ausgegeben Eingabedaten Diagrammname Projektgruppe Syspect 127 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION Anwendungsfall Klasse bearbeiten Akteure Nutzer Ziel ndern der Dat
84. sst und diese im CSP2PEAConverter zu implementieren 17 10 Undo im OZ Editor Im OZ Editor sind derzeit keine R ckg ngig Wiederherstellen Funktionen verf gbar Da unser bereits implementiertes Undo Redo nicht darauf ausgelegt ist miisste hier ein eigenes System entwickelt werden Ansatzpunkt ist die Klasse OZEditor 17 11 Optimierung der Nutzung von javacc Zur Erstellung des DC2XMLConverter wird javacc in Verbindung mit dem Visitor Pattern eingesetzt D h vom Entwickler muss nur ein Interface implementiert werden dass Methoden f r den Umgang mit jedem einzelnen Knoten vorschreibt Die Naviga tion durch den Parse Baum bernimmt generierter Code Das Problem ist aber dass die Superklasse SimpleNode aller Knotenklassen nicht als abstract generiert wird und somit besagtes Interface auch f r diese Klasse eine Projektgruppe Syspect 213 12 Oktober 2006 Endbericht KAPITEL 17 AUSBLICK visit Methode vorschreibt die implementiert werden muss Da keine Situation m glich erscheint dass diese Methode tats chlich aufgerufen wird ist es zun chst nur ein sthetisches Problem diese Methode berhaupt haben zu m ssen und in ihr einfach null zur ckzugeben Da jedoch nicht absch tzbar ist wie Syspect noch weiterentwickelt wird und durch m gliche Nebeneffekte hier doch weitergehende Probleme auftreten k nnen w re eine Beseitigung dieser Schwachstelle w nschenswert 17 12 Clipped Connections Clipped Connections sind
85. vorkommen durch k rzer Ausdr cke zu ersetzen In diesem Fall lie e sich der Pfadname bin bla blub durch build ersetzen lt target name compile depends init description compile the source gt lt mkdir dir bin gt lt target gt Targets fiihren die eigentlichen Befehle wie zum Beispiel lt mkdir dir bin gt aus Durch depends kann das Target von einem anderen Target abh ngig gemacht werden was bedeutet dass das Target von dem es abh ngig ist zuerst ausgef hrt wird Au erdem wird ein Target nicht ausgef hrt wenn das von dem es abh ngig ist fehlschl gt 1 4 3 ANT Beispiel lt project name erample default doc basedir gt lt target name init gt lt mkdir dir bin gt lt target gt lt target name build depends init gt lt javac srcdir src destdir bin gt lt target gt lt target name doc depends build gt lt javadoc sourcepath packagenames src destdir doc gt lt target gt lt project gt Dieses Beispiel zeigt drei Targets von denen das erste ein Verzeichnis erstellt das zweite den Quellcode kompiliert und das dritte die Dokumentation erzeugt So wie das Programm jetzt aufgebaut ist w rden alle drei Targets in der eben erw hnten Reihenfolge abgearbeitet werden Grund daf r ist das ein Target erst das Target aus f hrt von dem es ggf abh ngig ist Es w re zwar auch m glich alle drei Befe
86. welches unter st ndiger Erweiterung steht Die erste Version wurde im Jahre 1996 ver ffentlicht und steht heute unter BSD Lizenz zum freien Download unter tig05 zur Verf gung Auszug BSD Lizenz Bei der BSD Lizenz handelt es sich um ein standardi siertes Copyright f r Freie Softwareprodukte Software unter der BSD Lizenz darf frei verwendet werden und es ist erlaubt sie zu kopieren zu ver ndern und zu Verbreiten Wik05c Eine kommerzielle Erweiterung bietet z B das Unternehmen Gentleware mit dem Produkt Poseidon an 4 2 1 Benutzeroberfl che Abbildung 4 1 zeigt die Benutzeroberfl che von ArgoUML Zu sehen ist die Men leiste auf der in Drop Down Men s s mtliche Funktionen zugreifbar sind Darunter befindet sich eine Werkzeugleiste mit weiteren ausgew hlten Funktionen In der Mitte rechts ist das Editorfenster zum Zeichnen der Diagramme zu sehen links daneben das Navigator Panel mit dessen Hilfe die Struktur der Diagramme aufgezeigt wird Unten rechts ist das Eigenschaften Panel untergebracht hier werden Eigenschaften von akti ven Elementen angezeigt und k nnen editiert werden Links daneben befindet sich die sogenannte To Do Liste auf der Aufgaben anzeigt werden Des weiteren soll hier nicht weiter auf die Benutzung der Oberfl che und Anordnung der Elemente eingegan gen werden da dieses den Umfang der Ausarbeitung sprengen w rde somit verweise ich hier auf das online bereitgestellte Benutzerhandbuch in
87. wurden bei einem Update gemerged Dies kann geschehen wenn man comitten m chte aber eine ver altete Version der Datei hatte und diese ge ndert hat Diese wird dann nicht comittet und es ist n tig ein Update zu ziehen Wenn nur unterschiedliche Dinge ge ndert oder eingef gt wurden wird einfach alles in die Datei geschrieben und man kann die Datei comitten Wurden gleiche Zeilen ge ndert werden beide Versionen in die Datei einge tragen und man muss diesen Konflikt per Hand l sen Am besten einigt man sich mit der Person die die andere nderung vorgenommen hat auf eine Vorgehensweise ndert die Datei entsprechend und checkt diese dann ins Repository ein Hier unterscheiden sich CVS und Subversion wieder W hrend man bei CVS auch die unver nderte Datei mit beiden Versionen in einer Datei comitten kann was auch aus Versehen passieren k nnte wartet Subversion auf ein svn resolved welches die L sung des Konfliktes signalisiert Somit wird ein unerw nschter commit verhindert Nicht zu Verwechseln mit diesem Vorgang ist der Befehl svn merge Dieser f hrt zwar auch wie oben beschrieben zusammen allerdings geschieht dieses Mergen zwischen Branches welche unterschiedliche Abzweigungen in einem Projekt sind 11 3 Komplexere Operationen Dieser Abschnitt geht darauf ein wie CVS und Subversion mit Dateien und Verzeich nissen umgehen und wie in beiden eine Ignore Option realisiert ist bzw was diese macht
88. www usingz com 1996 M Klink ArgoUML Cookbook http argouml tigris org documentation defaulthtml cookbook March 10 2005 Simon Lembke Ant Das Apache Build Werkzeug f r Java http www antmake de January 01 2006 Matthias Meyer HowTo extend Fujaba4Eclipse http www se eecs uni kassel de 7Efujabawiki images c c5 HowToExtendFujaba4Eclipse pdf Pdf document fujaba de Octo ber 21 2005 R Meyer Model Checking von Phasen Event Automaten bez glich Dura tion Calculus Formeln mittels Testautomaten http csd informatik uni oldenburg de skript pub diplom meyer05 ps gz August 9 2005 Sun Microsystems Java code conventions 1997 http java sun com docs codeconv CodeConventions pdf OMGs MetaObject Facility http www omg org mof March 27 2006 M Moller E R Olderog H Rasch and H Wehrheim Linking CSP OZ with UML and Java A Case Study In E Boiten J Derrick and G Smith editors Integrated Formal Methods number 2999 in Lecture Notes in Computer Science pages 267 286 springer March 2004 M Moller E R Olderog H Rasch and H Wehrheim Integrating a Formal Method into a Software Engineering Process with UML and Java unpublished 2005 E R Olderog Kombination von Spezifikationstechniken Vorlesungsskript Sommersemester 2005 2005 Projektgruppe Syspect 235 12 Oktober 2006 Endbericht LITERATURVERZEICHNIS PBGO04 RHQ 05 Ros97 RWO3 Sch04
89. zeigen Wenn die durch assert Methoden kodierten Behauptungen einen Fehler verur sachen wird der Testfall sofort durch das Framework abgebrochen und eine AssertionFailedErrorException wird geworfen Neben den auftretenden Fehlern der aufgestellten Behauptungen Failure k nnen auch wie bei allen anderen Java Programmen Fehler in der Programmlogik Error des Tests auftreten Projektgruppe Syspect 85 12 Oktober 2006 Endbericht KAPITEL 10 SOFTWARE TESTEN TestCase Die Klasse TestCase muss erweitert werden um Testklassen mit dem JUnit Framework zu erstellen Diese Testklassen enthalten einzelne Testf lle in Form von Methoden Mit einem Testfall resp der Methode soll die entsprechende Methode der zu testenden Klas se berpr ft werden Die Testmethoden m ssen folgenden Konventionen entsprechen um ausgef hrt werden zu k nnen e Der Methodenname beginnt mit test e Die Methode ist public und nicht static e Die Methode besitzt keine Parameter und keinen R ckgabewert Das folgende Listing zeigt einen beispielhaften Aufbau einer Testklasse import junit framework public class IntTest extends TestCase public IntTest String name super name public void testAdd Int i new Int 4 Int expected new Int 7 Int result i add 3 assertEquals result expected Listing 1 Einfacher Testfall Neben den Testmethoden muss die Testklasse einen Konstruktor haben der als ber gabeparameter eine
90. 06 Endbericht KAPITEL 17 AUSBLICK Logdatei Weiterhin muss jeder aufgetretene Fehler auch in die Eclipse Logdatei geschrie ben werden Auch hierzu gibt es bereits einfach nutzbare Schnittstellen via Plu gin getLog log Die so geschriebene Nachricht wird von Eclipse in eine im Workspace im Unterverzeichnis metadata liegenden Logdatei geschrieben Dadurch erh lt der Nutzer die M glichkeit die Fehlermeldung sp ter wiederzufinden und zur Fehlerbehebung zu nutzen Projektgruppe Syspect 222 12 Oktober 2006 Endbericht ANHANG GLOSSAR Glossar Assoziation UML Fast alle Verbindungen bzw Beziehungen in UML hei en As soziationen Die konkreten Instanzen von Assoziationen also das was Objekte f r Klassen sind hei en Links Aggregation ist eine spezielle Assoziationen die eine Teil vom Ganzen Beziehung darstellt Die Teile des Ganzen k nnen auch einzeln bestehen im Vergleich zu einer Komposition Capsule ist ein Stereotyp f r eine Klasse im CSP OZ DC UML Profil Code Completion Autovervollst ndigung f r Anweisungen Befehle Objekte in Code Editoren Community Z Tools CZT ist eine Ansammlung von Werkzeugen f r die formale Spezifikationssprache Z Countertrace DC Countertraces sind spezielle DC Formeln CSP steht f r Communicating Sequential Processes und ist eine Spezifikationssprache zur Beschreibung kommunizierender Prozesse die von Tony Hoare entwickelt wurde Hoa04 CSP OZ DC Dies ist
91. 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION Kapitel 13 Anforderungsdefinition 13 1 Einleitung Dieses Dokument beschreibt die Anforderungen an das Werkzeug Syspect indem es die in der Produktskizze Kapitel 12 enthaltenen Beschreibungen pr zisiert Das Pro dukt soll eine grafische Entwicklungsumgebung f r ein UML Modell sein das durch ein UML Profil derart eingeschr nkt ist dass eine bersetzung in die formale Spezi fikationssprache CSP OZ DC HM05 m glich ist Hierdurch wird dem UML Modell auch eine eindeutige Semantik zugeordnet Das UML Profil wurde aus dem Seminar Ein UML Profil f r CSP OZ DC siehe Kapitel 9 S 77 bernommen Aus der UML Darstellung soll eine XML Darstellung der Spezifikationssprache CSP OZ DC erzeugt werden Daraus soll anschlie end ETRX Quellcode generiert werden k nnen Zus tzlich wird das Werkzeug die M glichkeit bieten die CSP OZ DC Spezifikation in Phasen Event Automaten PEA HMO5 zu transformieren Die Eigenschaften dieser PEA sollen sich daraufhin durch einen externen Model Checker verifizieren lassen 13 2 GUI Darstellung der UML Diagramme F r die Spezifikation des UML Modells werden Klassendiagramme Zustandsdiagram me und Strukturdiagramme verwendet Den Diagrammen liegt eine interne Struktur zugrunde die das gesamte spezifizierte Modell beinhaltet Die Gestaltung der Dia gramme ist einheitlich und durchg ngig gehalten Alle Funktionen die auf Diagram me angewendet w
92. 3 AN a e ee DE 44 58 AMD a a AAA 44 Net Se the Nee the Ne de O the Nie bd Sic 45 5 4 JEdit Plug ins a O ec EE 45 SAL KAA aS wea e A ts ars as Ma are 45 522 2 Car NA Sure Bier dar sa Bae we ca a aa ni 45 5 5 Benutzung des Quellcodes ca 2432 22 ces A AA 46 E DK EEN 46 5 5 2 Lesen Schreiben und Konvertieren von Z Darstellungen 47 50 e on a a A a at ele ee 48 De A AA E en aan AE RIA rte ee e 48 6 Einf hrung in UML und XMI 49 6 1 UML Unified Modeling Language 49 8 1 1 A A ee Ze re er 49 6 1 2 bersicht ber die einzelnen Diagrammtypen 50 6 1 3 Drei Diagrammtypen am Beispiel erl utert 51 6 1 4 Wesentliche Neuerungen in der UML 2 0 54 6 2 XMI XML Metadata Interchange 54 62 1 Eme ri e a a E 54 Projektgruppe Syspect ii 12 Oktober 2006 Endbericht INHALTSVERZEICHNIS 6 2 2 Ein berblick ber XML cua 22232 a at 54 zo e Beispiel va Gas te Wie ge Bey a par eee et rr ale 55 7 CSP OZ Kombination zweier Methoden 57 TA a a A ar IA A A A a d 57 7 2 Die Spevitikationssprache CSP va as e E see 2 var ie rar ia 57 P AA EE 57 MAD NA a dea daa daa daa der ide 58 7 2 3 Intormelle Semantik 4 dears e ds 4 a dete we ts A 58 7 2 4 CSP Semantiken 22 2 2 24 28 2 24 2 2 23 Aa 62 7 3 Die Spezifikstionsspr che Z 2 2 be eh 32 2 22 a 63 eer LACA ar rs tee are Gee Are Ar Ae Bee ar ie 64 T27 o a ee ee a aan 64 7 4 Die Spezifikationssprache CSP OZ
93. 40 5 269 276 1991 Projektgruppe Syspect 237 12 Oktober 2006
94. 5er Schreibweise verfasst sind sondern mit Indexvariablen sollte hier immer i verwendet werden Bei verschachtelten for Schleifen dann weiter j k usw Projektgruppe Syspect 203 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF Einschr nkung der Methodenl nge Die L nge einer Methode sollte nur im begr ndeten Ausnahmefall eine L nge von 30 Zeilen oder einem hnlichen Wert berschreiten In keinem Fall sollten Strings fest codiert im Code erscheinen sondern es sollte einerseits eine Lokalisierung stattfinden und andererseits Enums bzw Konstanten verwendet werden e Abschliessend l sst sich sagen dass Lesbarkeit definitiv vor K rze geht Klassennamen Abgesehen von den Namenskonventionen im Model siehe Abschnitt 15 3 6 S 167 gab es folgende Namenskonventionen e EditPolicies erhalten das Suffix EditPolicy z B MethodEditPolicy e Suffix Figure f r Figures z B MethodFigure e Suffix Command f r Commands z B DeleteCommand Projektgruppe Syspect 204 12 Oktober 2006 Teil III Zusammenfassende Bewertung und Ausblick 205 Endbericht KAPITEL 16 ZUSAMMENFASSENDE BEWERTUNG Kapitel 16 Zusammenfassende Bewertung In diesem Abschnitt soll die erstellte Syspect Applikation und seine Entwicklung zusammengefasst beschrieben und die Vor und Nachteile dargelegt werden ber eine Produktanalyse sollte die Plattform f r das Syspect Projekt gefunden wer
95. C im I alle Methoden von C die Interfaces zugeordnet sind alle Prozesse bzw Komponenten die in PI vorkommen a C 1 alle Methoden aus Interfaces von int 1 im C U acompa xEproc PlI a P Projektgruppe Syspect 199 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF Weiterhin werden noch einige Hilfsfunktionen ben tigt br alphabet alle Broadcast Methoden von alphabet nth A s 1 liefert die i te Komponente aus r A f r s r bzw p A f r s p der Tabellenzeile mit AssemblyConnector A Sei nun der Name des Interfaces der betrachteten Zeile Dann definieren wir uns zwei Prozesse PI m und Pl mn mit ny r L bzw no p T PI nth I s 1 mits E r p Pls i Plug nth I S i br a PIs i 1 Na nth I s i Dann ergibt sich PI wie folgt PI Pleni Pito im I Ubr a PIr n JUa Plr mz Sollte es mehrere Zeilen in der Tabelle geben die auf das gleiche Interface verweisen so muss bei der Ubersetzung der Zeile das Interface umbenannt werden PI PL rm PL pna H A im I Ubr a PIr n Ua PIr n Nach dem bersetzen einer Zeile werden in den verbleibenden Verbindungen die gerade instanziierten Komponenten durch die neue virtuelle Komponente ersetzt Hierzu definieren wir wieder eine Funktion subst die in der Menge X alle Vorkommen von Elementen aus Y durch das Element x ersetzt subst X Y 1 XA Y U XN VYAoGexr Fiir aus der Ubers
96. D h wenn Komponente A von Komponente B und andersherum abh ngig ist dann w re eine M glichkeit zu definieren A stellt Extension Points zur Verf gung die von B implementiert werden B beh lt seine Abh ngigkeit zu A Im Folgenden soll ein berblick ber das Zusammenwirken der Syspect Plug ins gege ben werden Der zentrale Einstiegspunkt ist dabei de syspect core Erl uterungen zu den einzelnen Plug ins sind im Kapitel Feinentwurf Abschnitt 15 3 S 157 zu finden de syspect core Das Core Plug in implementiert die Extension Points der Rich Cli ent Platform und stellt dar berhinaus die Verbindung zwischen bestimmten Plug ins her Es definiert eine Reihe eigener Extension Points z B f r das Model Die anderen Plug ins k nnen nun auf die bereitgestellten Funktionen des Core Plug ins zugreifen Aus Gr nden der bersichtlichkeit ist der Gro teil der weiteren Funktionalit t in an dere Plug ins ausgelagert Dabei unterscheiden wir zwei grunds tzliche Arten Projektgruppe Syspect 152 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF Library Plug ins Library Plug ins implementieren in der Regel keine vollst ndi ge Funktionalit t Sie dienen als Erg nzungen der anderen Plug ins So gibt es z B de syspect editorbundle das von den Editoren benutzt wird um gemeinsam ge nutzten Code geordnet zu verwalten In dem Editor Bundle befinden sich beispielweise eine Reihe abstrakter Commands Die Abh ngigkeiten von den Lib
97. Dabei werden die Datei en meist in eine andere Form gebracht Die Kompilierung der Java Dateien wird zum Beispiel durch einen solchen Builder bernommen Sha04 Markierungen sind abstrakte Entit ten zu einer Ressource Markierungen sind da bei Ressourcenobjekte die mit anderen Ressourcen verkn pft werden k nnen Es kann auch innerhalb einer Ressource verkn pft werden Die Verkn pfung zu einer Zeile in nerhalb einer Textressource ist so eine Markierung Sha04 2 2 3 Editoren und Ansichten Die Grundbausteine der Eclipse Benutzeroberfl che sind Editoren und Ansichten Hier bei k nnen Editoren und Ansichten von bereits vorhandenen abgeleitet bzw erweitert sowie neu erstellt werden Die Aufgabe von Editoren liegt in der Modifizierung von Dateien bzw Daten D h ein Editor ist nicht zwingend ein Texteditor und hat somit kein bestimmtes Erscheinungs bild Daher lassen sich in Eclipse auch jegliche Arten von Editoren einbetten Sha04 Das Editor Framework stellt einige allgemeine Verhaltensweisen von Editoren zur Ab leitung zur Verf gung In Bezug auf Texteditoren werden unter anderem Schnittstellen f r Syntax Highlighting Inhaltsformatierungen oder Inhaltsassistenten angeboten Die einzige Vorgabe die Eclipse in Bezug auf Editoren macht ist dass alle Editoren in ei nem Editorbereich dargestellt werden m ssen Aufgrund dessen werden Ansichten und Editoren auch nicht in ein und demselben Bereich angezeigt Unter Ansichten f r E
98. Die nderungen werden nach dem Beenden des Dialogs bernommen Nachbedingung Fehlschlag Eine aussagekr ftige Fehlermeldung wird ausgegeben Eingabedaten Zu bearbeitendes Element zu ndernde Daten m gliche Fehler Bei Eingabe von Kardinalit ten sind alle Werte kleiner 1 ung ltig Alternative Anstatt eines Dialogs und der Auswahl von Element bearbeiten kann die Darstellung auch direkt in der Oberfl che erfolgen Projektgruppe Syspect 130 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION Anwendungsfall Element l schen Akteure Nutzer Ziel Eine capsule ein Port eine Verbindung zwischen Ports oder ein Kommentar sollen gel scht werden Ausl sendes Ereignis Der Nutzer markiert ein Element und w hlt im Kontextmen oder in der Symbolleiste Element l schen Vorbedingung Mindestens ein Element ist im Diagramm vorhanden Nachbedingung Erfolg Das Element wird aus dem Strukturdiagramm gel scht Nachbedingung Fehlschlag Eine aussagekr ftige Fehlermeldung wird ausgegeben Eingabedaten Das zu l schende Element M glicherweise eine Sicherheitsabfrage m gliche Fehler Es ist kein Element ausgew hlt Anwendungsfall Kommentar hinzuf gen Akteure Nutzer Ziel Ein neuer Kommentar soll zu einer capsule einem Port oder einer Verbindung hinzugef gt werden Ausl sendes Ereignis Der Nutzer markiert ein Element im Diagramm und w hlt im Kontextmen oder in der Symbolleiste
99. Dies ist auch deswegen besonders vorteilhaft weil die Erweiterbar keit nicht durch die bereitgestellten Komponenten beeintr chtigt wird da gen gend Schnittstellen f r eigene Anpassungen und Erweiterungen zur Verf gung stehen Aufgrund dieser Kombination von bereitgestellter Funktionalit t und flexibler Er weiterbarkeit sowie der gro en Entwicklergemeinde und damit vorhandene Doku mentation Stabilit t und Erprobtheit haben wir uns daf r entschieden Syspect als Plug in f r Eclipse bzw als RCP Applikation zu entwickeln GEF und Draw2D F r die grafischen Editoren von Syspect wird das Grafik Framework und Eclipse Plug in GEF verwendet Dieses realisiert eine Model View Controller Architektur MVC eNo06 d h es trennt die Ansicht View von der Datenhaltung Model Die View wird bei GEF durch so genannte Figures gebildet welche die zu zeichnenden Elemente in einem Diagramm darstellen Figures werden aus dem GEF Framework bzw im Detail aus der Draw2D Komponente abgeleitet Die Draw2D Komponente baut auf SWT siehe Kapitel 2 S 17 auf wobei diese beiden Komponenten auch au erhalb von Eclipse als Grafik Bibliotheken verwendet werden k nnen Aufgrund dieser Bibliotheken werden die Figures von Syspect unabh ngig von anderen Kompo nenten und sogar unabh ngig von Eclipse sein Zudem stellt Draw2D m chtige Layout Algorithmen f r gerichtete Graphen zur Verf gung Das Framework stellt an das Model keine Anforderungen Al
100. EL 3 FUJABA welche auch auf FUJABA aufsetzen So beispielsweise die FUJABA Difference Tool Suite welche den Vergleich zwischen zwei UML Diagrammen erlaubt oder die Fujaba Real Time Tool Suite mit deren Hilfe die Spezifikation von eingebetteten Real Zeit Systemen mit Komponentendiagrammen und Echt Zeit Zustandsdiagrammen m glich ist Seit kurzem gibt es nun auch FUJABA f r Eclipse Dieses Plug in f r die Entwick lungsumgebung Eclipse ist bei weitem in der Entwicklung nicht so fortgeschritten wie die FUJABA Tool Suite Es bietet lediglich die M glichkeit Klassendiagramme und Storydiagramme zu erstellen Eine Codegenerierung ist derzeitig noch nicht m glich 3 2 Architektur von FUJABA An eine Applikation wie FUJABA und damit auch an die Architektur ergeben sich folgende Anforderungen e Die grafischen Diagramme sollen Instanzen von einem Modell wie zum Beispiel UML oder in unserem Falle einem eigenen UML Profil sein e Die Struktur und die Werte der Instanzen sollen durch den Benutzer ver ndert werden k nnen e Das Ver ndern dieser Instanzen soll wenig rechenintensiv sein e Die Darstellung und das Modell m ssen konsistent bleiben All diese Anforderungen erf llt das Modell View Controller Konzept welches in Abbildung 3 1 dargestellt ist Beim MVC Modell handelt es sich um ein Architektur Programm nderungen Controller Benutzer nderungen Abbildung 3 1 Das Model View Controller Konzept muster zur Trenn
101. ERUNGSDEFINITION Hier k nnen Metadaten A wie u a Kommentare eingegeben werden 3 transfer Anzahl instanziierter capsules S 1 acquire El os one gl status El transfer Mg W Out a ttransfer Verbindung OutStore protocol Abbildung 13 2 Diagrammelemente eines Strukturdiagramms Eigenschaften von Objekten 1 Ein Objekt ist eine Instanz einer Klasse mit dem Stereotyp capsule 2 Ein Objekt kann hinzugef gt bearbeitet oder gel scht werden Eigenschaften von Ports 1 Die Ports von Objekten entsprechen im Klassendiagramm einer Aggregations beziehung zwischen der zugeh rigen Klasse und einer Klasse des Stereotyp protocol 2 Ports sind Verbindungsstellen mit denen eine Kommunikationsverbindung un ter einzelnen Objekten m glich ist Ports sind in der Auspr gung base und conjugated verf gbar und k nnen den Objekten hinzugef gt oder aus diesen gel scht werden Der Benutzer muss einem neuen Port direkt eines der vorhan denen Protokolle zuordnen bzw ein Protokoll neu erstellen 3 Sollten Ports an denen Verbindungen bestehen gel scht werden so wird die entsprechende Verbindung auch gel scht Projektgruppe Syspect 117 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION Verbindungen 1 Es k nnen ausschlie lich Ports miteinander verbunden werden die dasselbe Pro tokoll sprechen 2 Verbindungen zwischen einem u eren und einem inneren Objekt k nnen nur zwisc
102. Ein Element ist vorhanden Nachbedingung Erfolg Das Element verschwindet aus dem Klassendiagramm und falls kein Klassen diagramm dieses Element mehr enth lt wird es aus dem UML Modell entfernt Zugeh rige Strukturdiagrammen werde auf Konsistenz mit Klassendiagramm berpr ft Nachbedingung Fehlschlag Eine aussagekraftige Fehlermeldung wird ausgegeben Eingabedaten Ein ausgew hltes Element Projektgruppe Syspect 131 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION Anwendungsfall Kommentar hinzuf gen Akteure Nutzer Ziel Kommentar zur Klasse oder Assoziation hinzuf gen Ausl sendes Ereignis Der Nutzer markiert eine Klasse oder Assoziation und w hlt im Kontextmen oder in der Symbolleiste Kommentar hinzuf gen Vorbedingung Mindestens eine Klasse oder Assoziation existiert Nachbedingung Erfolg Ein Dialog zur Bearbeitung des Kommentars erscheint Der Kommentar wird nach dem Best tigen des Dialogs bernommen Nachbedingung Fehlschlag Eine aussagekr ftige Fehlermeldung wird ausgegeben Eingabedaten Kommentartext Alternative Anstatt eines Dialogs und der Auswahl von Kommentar bearbeiten kann die Darstellung auch direkt in der Oberfl che erfolgen Anwendungsfall Element bearbeiten Akteure Nutzer Ziel Assoziation Kommentar oder Klasse bearbeiten Ausl sendes Ereignis Der Nutzer markiert ein Element und w hlt im Kontextmen oder in der Symbolleiste Element b
103. Jedes IZElement hat einen EZStatus Im folgenden werden die einzelnen Unterklassen von IZElement aufgelistet und be schrieben wo sie vorkommen e Ein IZType speichert in einem String einen Z Typ Jedes IAttribute und jede IZDeclaration haben einen IZType Au erdem leitet sich IData von IZType ab Dies hat folgenden Grund Wenn z B eine ICapsule durch eine IAggregation ein IData Objekt beinhaltet so bekommt sie dieses als Attribut Da IAttribute Objekte einen IZType brauchen ist IData ein IZType e Die schon erw hnte IZDeclaration findet in der IMethodSignature ihre An wendung Eine IMethodSignature hat jeweils mehrere IN OUT und SIM PLE IZDeclarations e Die Klasse IZPredicate wird zum einen als ENABLE und EFFECT in der IMethod verwendet und zum anderen als INIT und INVARIANT in IClass Projektgruppe Syspect 173 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF e Sowohl die ISystemDefinition als auch jede IClass haben die M glichkeit Z Definitionen in einem IZTypeDefinition Objekt zu definieren lt lt enumeration gt gt lt lt interface gt gt EZStatus IZElement lt lt interface gt gt IZPredicate lt lt interface gt gt IZTypeDefinition lt lt interface gt gt lt lt interface gt gt IZDeclaration IZType lt lt interface gt gt lt lt interface gt gt IData Attribute in out simple enable lt lt interface gt gt IZTypeElement i
104. KAPITEL 15 ENTWURF stellt ist org eclipse ui Die folgende Grafik 15 5 soll einen berblick geben welche Extension Points von welchen Plug ins genutzt werden El SI lt lt component gt gt E lt lt component gt gt lt lt component gt gt 2 lt lt component gt gt lt lt component gt gt de syspect consistency model de syspect navigator de syspect componenttable de syspect consistency diagram de syspect core lt lt component gt gt lt lt component gt gt de syspect export cspozde de syspect editor componentdiagram views perspectiveExtensions perspectives ek d Es lt lt component gt gt E org eclipse ui editors lt lt component gt gt de syspect classdiagrameditor lt lt component gt gt E de syspect export pea BS popupMenus DOO bindings actionSets commands ei lt lt component gt gt de syspect export image preferencePages lt lt component gt gt x de syspect statemachineeditor lt lt component gt gt de syspect persistence lt lt component gt gt lt lt component gt gt lt lt component gt gt de syspect ozdcutil de syspect utils de sys
105. Klasse gespeichert Solche Schablonen dienen zur Wiederverwendung von Klassen und unterst tzen so die Erstellung von Klassen diagrammen Falls diese Anforderung umgesetzt werden soll ist noch genauer zu definieren inwiefern sich Schablonen von normalen gespeicherten Klassen unterscheiden Klassen k nnen erstellt und gel scht werden Bei der Erstellung wird automatisch eine leere Klasse innerhalb eines Klassendiagramms grafisch dargestellt Die Bearbeitung einer Klasse ist an zwei Stellen m glich a innerhalb der grafischen Darstellung der Klasse selbst b und in einem Dialogfenster Die Bearbeitung wird dabei insofern unterst tzt dass vorhandene Methoden Attribute und Tags zur Auswahl stehen bzw die Auswahl auch auf den Stereotyp einer Klasse angepasst wird F r die Bearbeitung einer Methode einer Klasse ist eine spezielle Darstellung gegeben siehe Abschnitt 13 2 2 Weiter besteht die M glichkeit dass zu einer Klasse ein Zustandsdiagramm er stellt werden kann Existiert ein solches schon kann dieses in den Arbeitsbereich geladen werden Die Darstellung ist mit dem Zustandsdiagramm konsistent Diesbez glich f hren nderungen im Zustandsdiagramm automatisch zu nderungen im Klassendia gramm und Anderungen im Klassendiagramm automatisch zu Anderungen im Projektgruppe Syspect 113 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION Zustandsdiagramm Es ist jedoch zu beachten d
106. Klasse wird erst beim direkten Gebrauch von Eclipse geladen um Ressourcen einzusparen Somit kann ge w hrleistet werden dass auch bei einer gro en Menge an installierten Plug ins Eclipse noch lauff hig bleibt Die Referenzierung auf die Klasse welche die Schnittstelle des Projektgruppe Syspect 20 12 Oktober 2006 Endbericht KAPITEL 2 ECLIPSE PLUGINS UND GEF extension point implementiert befindet sich ebenfalls in der extension Definition in der Plugin xml Da Plug ins auch auf andere Plug ins aufbauen k nnen definieren Plug ins auch gegebenenfalls selbst extension points Workbench Plug In MyAction Plug In lt extension point id actionsets gt g L eWeitert lt extension point gt l l ActionDelegate a opomene MyActionDelegate g erzeugt ruft auf Abbildung 2 3 extension point und extension In der Abbildung 2 3 stellt das Workbench Plug in den extension point actionSets zur Verf gung durch diesen sich im Workbench Men eine neue Action hinzuf gen l sst Diese neue Action wird durch MyAction Plugin bzw durch die extension auf diesen extension point definiert Damit das Workbench Plug in auf Anfrage die neu hinzugef gte Aktion ausf hren bzw aufrufen kann muss MyActionPlugin die von dem Workbench Plug in vorgegebene Schnittstelle ActionDelegate implementieren Die folgende Abbildung 2 4 zeigt dieses Szenario in Verbindung mit der Plugin xml und der zu implementieren
107. Klassen zu finden e MethodParameterWizardPage Projektgruppe Syspect 211 12 Oktober 2006 Endbericht KAPITEL 17 AUSBLICK e OZEditorListener e OZPropertiesChangeKeyListener e ZTypeDefinitionsEditorListener e ZTypeDefinitionsPropertiesChangeKeyListener e ZTypeEditorListener e ZTypePropertiesChangeKeyListener e de syspect model core CapsuleImpl 17 6 Verschieben von Klassen Wenn eine Klasse verschoben werden soll und es ist eins ihrer Kinder also Attribu te oder Methoden selektiert so ist dies nur schwer m glich Eine M glichkeit ist die Klasse am Titel anzufassen Fast man stattdessen eins ihrer Kinder an so wird zwar angedeutet dass die Klasse verschoben werden soll jedoch erscheint immer der Verbots Cursor Um dies zu l sen m ssten der DelegateDragTracker angepasst wer den damit auch solches Bewegen m glich ist Das Selektieren von Attributen und Methoden signaturen kann nicht ausgeschaltet werden da sonst der Zugriff auf die Properties eben jener nur sehr umst ndlich m glich w re 17 7 Z Text Widget die getter und setter haben echte korrekte unicode Strings intern benutzt es aber Strings mit nur 16 bit Zeichen und dann kann es auch die unsichbaren Zeichen sichtbar machen 17 8 AssemblyConnector ConnectionAnchor Der AssemblyConnector ist ein Element dass die Elemente bereitgestellten und ben tigten Schnittstellen im Komponentendiagramm vereint Da diese jeweils durch eine Linie mit einer Ko
108. Kommentar hinzuf gen Akteure Nutzer Ziel Ein neuer Kommentar soll zu einem Zustand oder einer Transition hinzugef gt werden Ausl sendes Ereignis Der Nutzer markiert ein Element im Diagramm und w hlt im Kontextmen oder in der Symbolleiste Kommentar hinzuf gen aus Vorbedingung Es existiert ein Element Nachbedingung Erfolg Dem ausgew hlten Element wird ein Kommentar hinzugef gt Nachbedingung Fehlschlag Eine aussagekr ftige Fehlermeldung wird ausgegeben Eingabedaten Element zu dem der Kommentar hinzugef gt werden soll und der Komment artext m gliche Fehler Es ist kein Element ausgew hlt Projektgruppe Syspect 141 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION Projektgruppe Syspect 142 12 Oktober 2006 Endbericht KAPITEL 14 MODIFIZIERUNG DER ANFORDERUNGEN Kapitel 14 Modifizierung der Anforderungen 14 1 Einleitung In diesem Kapitel werden die nderungen beschrieben die sich im Laufe des Projektes in Bezug auf die Anforderungen ergeben haben Haupts chlich geht es dabei um nde rungen des UML Profils Aus diesem Grund werden die Anpassungen des UML Profil ausf hrlich im folgenden Abschnitt beschrieben Andere nderungen sind im Abschnitt 14 3 Sonstige nderungen S 145 aufgef hrt 14 2 Anpassung des UML Profils Da die Object Management Group vor Beginn des Projektes die Version 2 0 der UML verabschiedet hat das vorhandene Profil jedoch noch auf der V
109. L 6 EINF HRUNG IN UML UND XMI Port der die beiden Schnittstellen Anfrage und Report bereitstellt Werden die se Schnittstellen verwendet wird dies nach innen delegiert d h die Anfrage wird an den Logger und der Report an den Report Generator delegiert die jeweils eine entsprechende Schnittstelle bereitstellen Nach demselben Prinzip hat der Baustein Wetterstation einen Port der die Schnittstelle Temperatur ben tigt Hier k nnen also Temperatursensoren andocken um Tempe raturdaten zu bermitteln Diese werden wieder delegiert und zwar zum Part Data Collector Intern stellen der Logger und der Report Generator Schnittstellen f r den Data Collector bereit damit dieser ihnen Daten bermitteln kann Wetterstation a lt lt delegate gt gt lt lt delegate gt gt SSC et E d Report 0 LogDaten OH ReportDaten O lt lt delegate gt gt Abbildung 6 1 Ein Kompositionsstrukturdiagramm am Beispiel einer Wetterstation Klassendiagramm Ein einfaches Beispiel fiir ein Klassendiagramm ist das Interface T r welches die Schnittstelle f r eine T rsteuerung beschreiben kann interface Tur ffnef Schliesse Entriegele Yerriegele GibZustand Abbildung 6 2 Ein Klassendiagramm am Beispiel einer T rsteuerung Ein Interface in der UML ist ein vordefinierte Stereotyp f r das Klassendiagramm d h es wird die Definition
110. LBaseTypes h tte Jeder Klasse im Meta Modell geh rt ein Unparse Modul an Dieses wird im Falle einer Instanziierung der Klasse aktiv und erzeugt den zugeh rigen FUJABA Swing Adapter und einen Updater Der FSA bernimmt die Aufgabe des Controllers nderungen an der Darstellungs schicht oder der Meta Modell Instanzen werden ber ihn abgewickelt Realisiert wird dies ber das bekannte Observer Pattern Die Meta Modell Instanzen und die Swing Komponenten implementieren sogenannte PropertyChangeClients welche bei Ver nde rungen durch das Programm oder den Benutzer PropertyChangeEvents feuern Diese werden durch eine Implementierung des PropertyChangeListeners im FSA und Updater aufgenommen und entsprechende Ma nahmen werden eingeleitet Der Fujaba Swing Adapter selbst kapselt au erdem verschiedene Swing Elemente So kann die Instanz von FSACombobox welche unter anderem bei Attributen kennzeichnet ob es sich um ein ffentlich zug ngliches privates oder gesichertes Attribut handelt mehrere Auspr gungen haben N mlich das Icon f r public private secure oder packaged Projektgruppe Syspect 29 12 Oktober 2006 Endbericht KAPITEL 3 FUJABA ate name String name String Student name String name name String String visibility Int 0 Abbildung 3 3 Das FUJABA zugrunde liegende Meta Modell Tic05 Der bereits erw hnte Updater soll nun n her erl utert werden Dieser
111. NATION ZWEIER METHODEN Kapitel 7 CSP OZ Kombination zweier Methoden Janna Arnold 7 1 Einf hrung CSP OZ ist eine Kombination aus den beiden Spezifikationssprachen CSP Hoa04 und Object Z Smi00 Um CSP OZ verstehen zu k nnen werden zun chst die einzelnen Spezifikationssprachen vorgestellt CSP dient zur Beschreibung reaktiver Systeme Das sind Systeme die unabh ngig voneinander arbeiten und gelegentlich miteinander kom munizieren Z spezifiziert sequentielle Systeme die durch Zustandsr ume und deren Ver nderung gekennzeichnet sind CSP OZ kombiniert die Vorteile der beiden Sprachen nach Fis00 Dadurch k nnen reaktive Systeme mit einer Prozess und einer Datensicht spezifiziert werden 7 2 Die Spezifikationssprache CSP 7 2 1 Einleitung CSP wurde von C A R Hoare Universit t Oxford eingef hrt CSP steht f r Communi cating Sequential Processes Wie in Hoa04 und O1d05 zu lesen dient diese Spezifikati onssprache zur Beschreibung von Systemen die aus mehreren Komponenten bestehen die parallel arbeiten und gelegentlich miteinander kommunizieren Abbildung 7 1 zeigt ein reaktives System Beispielsweise sind ein Fahrstuhl und ein Nutzer eines Fahrstuhls Fahrgast einzelne sequentielle Prozesse die parallel arbeiteten und kommunizieren wenn der Fahrgast einen Knopf dr ckt und so ein Signal ber den Kanal knopfDruecken an den Prozess Fahrstuhl sendet Projektgruppe Syspect 57 12 Oktober 2006 Endberich
112. Projektgruppe Syspect 172 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF e Es gibt einen Ausnahmefall in dem IMethodSignature Instanzen IClass Instanzen als Elternelemente haben k nnen und zwar wenn sie Signaturen von lokalen Methoden sind Die Beziehungen von IAbstractClass Objekten zu Z Elementen wird in dem Ab schnitt ber Z Elemente S 173 behandelt lt lt enumeration gt gt lt lt interface gt gt EVisibility IFeature incoming lt lt interface gt gt S lt lt interface gt gt lt lt interface gt gt IClassConnection 2909 lAbstractCi IClassContent assConnection stractClass i parent P lassConten lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt IClass interface IMethodSignature IMethod lAttribute y y lt lt enumeration gt gt lt lt enumeration gt gt EMethodSignatureStereotype EMethodType lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt IData Capsule IStateMachine lt lt interface gt gt lt lt interface gt gt lt lt enumeration gt gt IDCTag IDCFormula EZStatus Abbildung 15 14 Klassen und Interfaces Kontext Z Elemente Alle Z Elemente leiten sich von IZElement ab
113. Referenzen der erstellten Objekte an das Modell bergeben werden Es darf al so auf einem erstellten Objekt beispielsweise setParent mit einem bestehenden Modell Objekt als Parameter aufgerufen werden jedoch ist ein addChild auf dem bestehenden Objekt verboten e canExecute Die canExecute Methode dient f r die Umgebung dazu herauszu finden ob das Command ausgef hrt werden darf oder nicht Sie greift in der Regel auf Consistency Checker Methoden zur ck um dies herauszufinden Projektgruppe Syspect 181 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF e execute Die execute Methode sollte nicht verwendet werden sie wird benutzt um das Command in den Undo Manager einzuf gen dar berhinaus ruft sie reproduce auf e reproduce Die reproduce Methode nimmt die eigentlichen nderungen am Mo dell vor Hier werden Namen mithilfe des NameAdministrators erstellt sowie nderungen an bestehenden Modell Elementen vorgenommen Ein Beispiel f r eine typische Anweisung die in reproduce geschehen sollte ist addChild um einen neuerstellten Teilbaum in das Modell einzuf gen Wichtig ist dass die reproduce Methode auf jeden Fall super reproduce aufruft denn sonst wird init nicht ausgef hrt e undo Die undo Methode macht nun genau das r ckg ngig was die reproduce Methode gemacht hat An dieser Definition ist auch zu sehen dass die reproduce Methode keine Objekte erstellen sollte denn dies ist in Java nicht explizit r ck g ngig z
114. Schnittstellen Dieses Plug in erweitert die zwei Extension Points org eclipse ui actionSets und org eclipse ui popupMenus sowie den Extension Point org eclipse help toc siehe Abschnitt 15 2 2 S 154 Desweiteren hat das Plug in Abh ngigkeiten zu folgenden Plug ins de syspect componenttable de syspect core de syspect ozdcutil de syspect persistence de syspect utils org eclipse core runtime und org eclipse ui views org eclipse ui Ubersetzung der Komponentendiagramme Die Ubersetzung der Komponentendiagramme geschieht in 6 Phasen 1 Tabelle erstellen Aufsammeln der bestehenden Verbindundungen Zusammenfassen Erkennen gemeinsamer Verbindungen Konflikt berpr fung Erkennen berlappender Verbindungen 2 3 4 Zweites Zusammenfassen Eliminieren enthaltener Verbindungen 5 Priorisierung 6 bersetzung nach CSP Im folgenden werden diese Phasen genauer beschrieben Tabelle erstellen Zuerst wird eine leere Tabelle angelegt die Spalten der Tabelle werden beschriftet mit AssemblyConnector Interface Provide Require F r jeden AssemblyConnector AC erstellen wir eine Zeile in dieser Tabelle wobei wir in die Interface Spalte das zugeh rige Interface in die Provide Spalte die bereitstellende n Komponente n und in die Require Spalte die ben tigende n Komponente n schrei ben Hierbei muss darauf geachtet werden dass die Komponenten Instanzen unter schieden werden Dies kann durch Indizierung gesc
115. Sichten In ArgoUML hat der Anwender die M glichkeit zwischen verschiedenen Ansichten eines Diagramms zu wechseln Hierdurch soll es dem Benutzer erm glicht werden verschiedene Detailstufen eines Diagramms zur Verf gung zu haben um die bersicht zu f rdern Alternative Design Repr sentation Die modellierten Diagramme k nnen in ver schiedenen Arten angezeigt werden So kann der Entwickler ebenfalls unterschiedliche Sichtweisen auf die Diagramme erhalten M glichkeiten sind eine grafische Darstellung eine Darstellung als Quellcode sowie eine tabellarische Anzeigeform aus denen gew hlt werden kann ToDo Listen ToDo Listen enthalten Aufgaben die f r den Designprozess wichtig sein k nnten Die Eintr ge k nnen entweder manuell vom Entwickler oder durch den Design Critics Agenten erzeugt werden und sind in drei unterschiedliche Priorit tsstu fen unterteilt Check Listen Check Listen stellen dem Anwender eine Liste zur Verf gung in der wesentliche Design Entscheidungen zur aktuellen Diagrammart enthalten sind Der An wender soll durch die Listen auf Konventionen und Besonderheiten aufmerksam ge macht werden um m glichst alle Design Entscheidungen g nstig zu treffen 4 2 4 Dokumentation von ArgoUML Im folgenden Kapitel wird kurz auf die vorhandene Dokumentation von ArgoUML eingegangen Handbuch Tutorial Tour FAQ Auf der Projekt Homepage steht dem Anwender neben einem Benutzerhandbuch zum Umgang mit ArgoUML auch eine
116. Stereotyps capsule beschreibt werden neue Zustandsdiagramme in der Klassendiagrammansicht an gelegt Soll ein Zustandsdiagramm angelegt werden muss zun chst eine entspre chende Klasse erstellt werden 2 Der Name eines Zustandsdiagramms leitet sich von dem Namen der zugeh rigen Klasse ab 3 Die Darstellung der Zustandsdiagramme wird jederzeit mit dem internen Modell konsistent gehalten 4 Es besteht die M glichkeit die Ansicht zwischen einem Zustandsdiagramm und dem zugeh rigen Klassendiagramm zu wechseln Projektgruppe Syspect 115 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION 5 Ein Zustandsdiagramm kann aus den Diagrammelementen bestehen die in Ab bildung 13 1 zu sehen sind Eine n here Beschreibung der Semantik kann aus MORW05 und MORW04 entnommen werden 6 Die verschiedenen Zust nde Start End Normal und Superzustand sowie Transitionen und Kommentare k nnen dem Diagramm hinzugef gt bzw wieder aus diesem gel scht werden 7 Zust nde k nnen einem Superzustand hinzugef gt bzw wieder aus diesen her ausgenommen werden 8 Superzust nde k nnen unterteilt werden so dass es m glich ist parallele Abl ufe im Sinne von CSP zu definieren Diese Unterteilung kann hinzugef gt bzw wieder gel scht werden 9 Die Entwicklungsumgebung gibt Hinweise auf m gliche Fehler Hierzu z hlen a ein fehlender Startzustand b eine fehlende Transition vom Startzustand c d Be
117. Sun Microsystems f r die Programmiersprache Java entwickelt SWT Das Standard Widget Toolkit ist eine Bibliothek f r die Erstellung grafischer Oberfl chen mit Java Syntax Highlighting Darstellung von W rtern und Zeichenkombinationen abh ngig von der Bedeutung in unterschiedlichen Farben Schriftarten und stilen Tagged Values sind Standard Metaattribute von UML Stereotypen Testformeln sind eine Teilklasse aller DC Formeln Hoc06 Eine Testformel ist die Negationen einer Formel die darauf getestet werden soll ob ein gegebener PEA sie erf llt TEX Textsatzsystem mit integrierter Makrosprache UML Unified Modeling Language eine standardisierte Beschreibungssprache um Strukturen und Abl ufe in objektorientierten Softwaresystemen darzustellen UML Diagramm grafische Notationsweise die eine bestimmte Sicht auf ein mit UML modelliertes System bietet UML Modell Wenn man ein Software System mit Hilfe von UML modelliert so ist die Gesamtheit dieser Diagramme das UML Modell dieses Software Systems Im Gegensatz zu einer CSP OZ DC Spezifikation kann ein UML Modell unvollst n dig sein bzw redundante Informationen enthalten da es sich um eine Samm lung von verschiedenen Sichten handelt Wenn wir bei Syspect eine CSP OZ DC Spezifikation mit Hilfe des UML Profils mit UML Diagrammen modellieren so Projektgruppe Syspect 225 12 Oktober 2006 Endbericht ANHANG GLOSSAR wollen wir die Gesamtheit dieser Diagramme die dies
118. System out PrintStream System arraycopy Object argQ int arg1 Object arg2 int arg3 int e currentTimeMillis long System exit int argQ void System act void System rer Javadoc Der os nn 4 che wll xe 22 10 2005 20 16 0 rf pest 07 0 B outline 23 ant o eave we B debugclass A bla String a blub String o main Strinal ethoden nd Variable der Klasse 30 Ausgabe Konsole writable smart insert 22 12 Abbildung 1 2 Java Perspektive Projektgruppe Syspec t 10 12 Oktober 2006 Endbericht KAPITEL 1 ECLIPSE 1 2 4 Quellcode editieren Unabh ngig von der Perspektive l sst sich jede Datei in Eclipse aus dem Dateikontext men mit verschiedenen Editoren ffnen Eine Ansicht auf die Dateien bieten dabei nicht nur die Editoren f r die verschiedenen Programmiersprachen mit unterschied lichem Syntax Highlighting sondern auch zum Beispiel der Webbrowser f r Html Dateien Eine weitere n tzliche Funktion von Eclipse ist das automatische Vervollst ndigen von Ausdr cken So wird der Java Ausdruck System out p zu System out println Wenn ein Benutzer im ANT Editor tar tippt l sst der Ausdruck sich zu lt target na me gt lt target gt vervollst ndigen Das Vervollst ndigen von Ausdr cken erfolgt ber einen durch Strg Space aufrufbaren Dialog der alle m glichen logischen Er weiterungen zum bereits getippten Ausd
119. TEL 15 ENTWURF werden kann Nat rlich muss es in regelm igen Abst nden Reengineering Phasen ge ben in denen untersucht wird inwieweit Funktionalit t thematisch zusammenpassend in ein separates Plug in in unserem Falle z B eine Wizard Bibliothek ausgelagert werden kann Ist dies aber der Fall ist ein solches utils Plug in ein wichtiges Hilfs mittel um die Flexibilit t w hrend der Entwurfs und Implementierungsiterationen zu erh hen Schnittstellen Das Plug in erweitert den Extension Point org eclipse help toc Weitere Abh n gigkeiten hat SyspectUtils nur von den Eclipse Plug ins org eclipse core runtime und org eclipse ui siehe Abschnitt 15 2 2 S 154 15 3 6 SyspectModel Plug in Dieses Plug in enth lt die Implementierung f r das Model und stellt somit die Struktur f r die Datenhaltung von Syspect Schnittstellen Dieses Plug in dockt an dem Extension Point de syspect core syspectmodel vom SyspectCore siehe Abschnitt 15 3 2 S 158 und dem Eclipse Extension Point org eclipse help toc siehe Abschnitt 15 2 2 S 154 an SyspectModel besitzt folgende weitere Abh ngigkeiten e org eclipse core runtime Plugin da die Eclipse Architektur fordert dass ein Plug in eine Klasse haben muss die das Interface BundleActivator imple mentiert e org eclipse draw2d weil Klassen wie Point und Rectangle verwendet werden um grafische Informationen zu speichern e Aus org eclipse ui views werden Elemente wie
120. UML2CSPOZDCJConverter erzeugt wobei die eigentliche bersetzung auf mehrere Hilfsklassen aufge teilt wurde Zustandsautomaten werden durch SyspectSM2CSPConverter in CSP Prozessysteme bersetzt und mit den durch den ComponentTable2CSPConverter erzeugten CSP Prozessen die die f r die Klasse relevanten Komponentendia gramme darstellen vereinigt Die Object Z tagged values der UML Klassen wer den von der Klasse UML20bjectZConverter in die entsprechenden Object Z Elemente bersetzt Schlie lich werden aus den DC Ausdr cken mittels der Klasse String2CountertraceConverter Syntaxb ume erzeugt Um aus dieser Datenstruktur CSP OZ DC XML und TEX zu erzeugen besitzen die entsprechenden Klassen toLaTeX und toXML Methoden die das gew nschte Format in eine bergebene Writer Instanz schreiben OZSchema OperationSchema State Init EnableSchema EffectSchema Operation lt lt interface gt gt CSPOZDCSpecification Classinterface lt lt interface gt gt getInheritance Set lt String gt IZTypeDefinition getVisibility List lt lAttribute gt OZClass CSPOZDCClass Interface ProcessEquationSystem DCCounterTrace ProcessEquation Abbildung 15 34 CSP OZ DC Spezifikation Projektgruppe Syspect 195 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF
121. Us Tara ia Bee Sr a ae 212 EE cutie donde De A IA ae re Dee 212 17 8 AssemblyConnector ConnectionAnchor 212 17 9 Ubersetzung nach PEA nee aa aa Babel 213 17 0 Und im DA Baldor cl er IS A DS ERS 213 17 11Optimierung der Nutzung von javacc e 213 17 12Clipped Connections Sa a2 a ale ea Er whe ee RES Ee SES 214 17 13Drag and Drop zwischen Projekten 00000048 214 17 14Effizienteres Event System 2 ira 2 a8 218 888 D e Der a 214 17 15 Verschieben von Regionen innerhalb von Zust nden 214 17 16Definition der Methodentypen in der Konvertierung zu PEA 214 17 17Performanz bei der Bendpoint Berechnung 215 La Test a she Bae a ne A NE O 215 17 18 1 Richtlinien f r Tests 2 2 2 42 2 kel ee Reg ee Roe ek BL 215 Anhang 219 Glossar 223 Index 226 Abbildungsverzeichnis 229 Literaturverzeichnis 232 Projektgruppe Syspect vi 12 Oktober 2006 Endbericht INHALTSVERZEICHNIS Einleitung Der vorliegende Endbericht beschreibt die Arbeit und Ergebnisse der Projektgruppe Syspect System Specification Tool der Abteilung Entwicklung korrekter Systeme an der Carl von Ossietzky Universit t Oldenburg Diese Einleitung gibt zun chst einen berblick dar ber was eine Projektgruppe ist anschlie end wird auf die Ziele der Projektgruppe Syspect eingegangen Es folgt ein berblick ber die Gliederung des gesamten Dokuments Projektgruppen Die Studienordnung f r den Diplom bzw M
122. Zeichenkette besitzt Dieser ruft den Konstruktor der Oberklasse auf Das Beispiel zeigt die Testmethode testAdd die zum Testen der entsprechenden Methode add der Klasse Int benutzt wird Das Ergebnis wird mit dem erwarteten Wert ber die Methode assertEquals verglichen Testmethoden sollen um Testob jekte gruppiert werden d h Testf lle die gegen die gleiche Menge von Testobjekten getestet werden werden unter dem Dach einer Testklasse zusammengefasst Diese Men ge von Objekten wird auch als Test Fixtures bezeichnet Wenn eine Testmethode die Test Fixtures nicht benutzt ist das ein Anzeichen daf r dass diese in einer anderen Testklasse implementiert werden sollte Aus diesem Grunde ist es m glich dass zu ei ner Klasse mehrere Testklassen existieren Damit einzelne Testf lle isoliert voneinander ablaufen k nnen werden die Test Fixtures f r jeden Testfall neu initialisiert Deswe gen werden die Objekte als Instanzvariablen der Testklasse dargestellt Zum Initiali sieren wird die Methode setUp der Klasse TestCase berschrieben Um nach Ablauf des Testfalls Ressourcen wie z B Datenbankverbindungen wieder freizugeben wird dementsprechend die Methode tearDown berschrieben Projektgruppe Syspect 86 12 Oktober 2006 Endbericht KAPITEL 10 SOFTWARE TESTEN Lebenszyklus von Testf llen Beim Ausf hren von jedem Testfall durch das JUnit Framework wird ein Zyklus durch laufen Vor diesem m ssen die einzelnen Testf lle ermittel
123. a Stadium und dadurch kaum nutzbar Projektgruppe Syspect 32 12 Oktober 2006 Endbericht KAPITEL 4 ARGOUML Kapitel 4 ArgoUML Patrick Kuballa 4 1 Einleitung Die Projektgruppe Syspect hat das Ziel eine grafische Entwicklungsumgebung zu entwerfen und zu implementieren welche eine Unterst tzung f r eine formale UML Teilsprache bietet In der Abteilung Entwicklung korrekter Systeme der Universit t Oldenburg wurde eine Spezifikationssprache namens CSP OZ DC entwickelt die die Aspekte Daten Zeit und Reaktion beschreiben kann Diese Spezifikationssprache soll bekannte UML Diagramme erg nzen um Wechselwirkungen unter den Diagrammen zu beschreiben In einem weiteren Schritt kann dann das modellierte System mittels einem Model Checker auf Korrektheit berpr ft werden ArgoUML ist ein grafisches Entwicklungswerkzeug mit dessen Hilfe sich UML Diagramme zeichnen lassen Diese Ausarbeitung gibt einen kurzen berblick ber das Open Source Projekt ArgoUML und dessen Funktionalit t Ziel ist die Pr fung der Software auf eine Erweiterbarkeit zur Umsetzung der Anforderungen die aus der Projektbeschreibung hervorgehen 4 2 Allgemeines zu ArgoUML In diesem Kapitel sind allgemeine Informationen zum Open Source Projekt ArgoUML enthalten Es soll dem Leser einen kurzen berblick ber das Projekt selbst dessen Funktionalit t besondere Eigenschaften und Hinweise zur Dokumentation geben Was bedeutet der Name ArgoUML Der Name
124. ablen zu f ttern und unterschiedliche Compiler Projektgruppe Syspect 11 12 Oktober 2006 Endbericht KAPITEL 1 ECLIPSE konfigurationen f r dasselbe Projekt zu erstellen Am Besten debuggen kann man in Eclipse in der daf r vorgesehenen Perspektive Abbildung 1 3 Breakpoints lassen sich allerdings berall durch einen Rechtsklick auf den linken Rand eines Editors setzen Setzt man einen einfachen Zeilen Breakpoint h lt der Debugger an wenn das Pro gramm in der Zeile ankommen ist An dieser Stelle kann der Benutzer mit einem Klick in die Shortcutleiste des Debug Fensters das Programm einfach fortsetzen es abbre chen oder im Variablen Fenster Werte ver ndern um so einen bestimmten Ablauf des Programms zu simulieren Neben Breakpoints gibt es in Eclipse noch so genannte Watchpoints die eine Anwendung immer dann stoppen wenn der Wert eines Aus drucks sich ver ndert unabh ngig davon wo dies passiert Watchpoints werden ber den Men punkt Run gt Toggle Watchpoint gesetzt wobei man zuerst die gew nschte Variable markieren muss 1 2 6 Dokumentation Das Erzeugen von Dokumentation f r Java Projekte unterst tzt Eclipse mit dem Men befehl Project gt Generate Javadoc Hier lassen sich eine Reihe Einstellungen ber das Aussehen der Dokumentation wie zum Beispiel die Ausgabe von Navigationsleisten oder die Beachtung einzelner Javadoc Tags z B author festlegen Alle diese Ein stellungen lassen sich auch
125. ach der vierten Datei ab setzt Subversion das ganze Repository auf den Stand vor dem bertragen zur ck CVS h tte die ersten vier Dateien eingecheckt und dann abgebrochen was dazu f hren kann dass unvollst ndige nderungen im Repository liegen Bei Subversion dagegen liegt das Problem darin dass wenn der Abbruch unbemerkt bleibt davon ausgegangen wird alle Daten seien bertragen dem aber nicht so ist Wird nun das Arbeitsverzeichnis gel scht sind potenziell s mtliche nderungen der Dateien irreparabel verschwunden Aus diesem Grund sollte immer nachgesehen wer den ob die nderungen im Repository gespeichert sind 11 2 3 Updaten e svn update Optionen Pfad e cvs update Optionen Pfad Der Befehl update ist dazu da sein Arbeitsverzeichnis auf den neuesten Stand zu brin gen hnlich wie checkout holt er die Dateien aus dem Repository und berschreibt die alten Versionen mit den neuen Kommt es zu Konflikten werden Dateien gemer ged wie sp ter in diesem Abschnitt beschrieben wird Dateien und Verzeichnisse die neu im Projekt sind werden auf diese Weise auch ins Arbeitsverzeichnis geholt um dann bearbeitet werden zu k nnen Es ist auch m glich ltere Versionen des Projektes zu bekommen indem man dies bei den Optionen angibt Projektgruppe Syspect 95 12 Oktober 2006 Endbericht KAPITEL 11 VERSIONSVERWALTUNG 11 2 4 Mergen Bei beiden Programmen werden Dateien die gleichzeitig ver ndert
126. arsers und dieser Projektgruppe Syspect 151 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF Werkzeuge wird das Umwandeln von ZML E TRX Ausdr cken und Unicode in Java Klassen und Interfaces sowie auch umgekehrt erm glicht e Ebenfalls im Projekt enthalten ist ein Type Checker zum berpr fen von Z Ausdr cken auf Typkorrektheit Das Verwenden des Speicherformats ZML sowie das Parsen und Konvertieren der ver schiedenen Formate konnte von uns gut weiterverwendet werden und reduzierte somit den Arbeitsaufwand Die Funktionalit ten die wir von CZT verwenden wollen sind in unserem Plug in OZ DC Util siehe Abschnitt 15 3 11 S 189 integriert 15 2 2 Plug in Struktur Aufbauend auf dem Plug in Konzept von Eclipse haben wir uns f r einen sehr mo dularen Ansatz entschieden unser Programm zu gliedern Ein Plug in ist hierbei eine Softwarekomponente deren Einsatzm glichkeiten von ihrer Schnittstellendefinition abh ngt Dort wird festgelegt wie das Plug in innerhalb einer Applikation verwendet werden kann von welchen anderen Plug ins es abh ngig ist bzw welche Funktionalit t es nach au en hin bereitstellt In Eclipse werden zwei Arten von Abh ngigkeiten unterschieden e Einfache Dependencies liegen dann vor wenn eine Komponente A von Kompo nente B abh ngt ohne das der gegenseitige Fall zutrifft e Bei einer wechselseitigen Abh ngigkeit m ssen im Gegensatz dazu sogenannte Extension Points eingesetzt werden
127. ass der normale Java Compiler sie als Kommentare behandelt und somit Kompatibilit t gew hrleistet ist Das Werkzeug jmlunit erm glicht es mit Hil fe von JML Spezifikationen JUnit Testklassen zu erzeugen Dieses entkr ftet das oben genannte Problem der Mehrarbeit Projektgruppe Syspect 92 12 Oktober 2006 Endbericht KAPITEL 11 VERSIONSVERWALTUNG Kapitel 11 Versionsverwaltung Dominik Denker 11 1 Einleitung Im Rahmen dieser Ausarbeitung wird darauf eingegangen was eigentlich Versionsver waltung ist z B was f r Ans tze es gibt und wie man die beiden Programme CVS FB05 und Subversion CSFP05 Doh03 benutzt bzw administriert Nachdem ich dann kurz auf verschiedene GUIs eingegangen bin werde ich die Versionsverwaltungs programme CVS und Subversion einem Vergleich unterziehen und ein Fazit bilden 11 1 1 Versionsverwaltung Unter einer Versionsverwaltung versteht man ein System welches typi scherweise in der Softwareentwicklung zur Versionierung und um den ge meinsamen Zugriff auf Quelltexte zu kontrollieren eingesetzt wird Hier zu werden alle laufenden nderungen erfasst und alle Versionsst nde der Dateien in einem Archiv mit Zeitstempel und Benutzerkennung gesichert Wik05a Ersteinmal ein paar Worterkl rungen Ein Repository ist eine Art Lager das lokal oder auch weit entfernt Daten lagert und im Falle des Versionsmanagements nderungen an Dateien speichert Mit Aus und Einchecken ist gemeint d
128. ass in verschiedenen Diagram men ein und dasselbe Element unterschiedliche Eigenschaften haben kann da jedes Diagramm nur eine eingeschr nkte Sicht auf das zugrunde liegende UML Modell bietet Assoziationen 1 Assoziationen werden innerhalb eines Klassendiagramms grafisch dargestellt Uber eine Assoziation werden genau zwei Klassen miteinander verbunden As soziationen k nnen frei oder automatisch ausgerichtet werden 2 Eine Assoziation verf gt ber eine Beschriftung Stereotypen und Kardinalit ten Ein Stereotyp kann composition aggregation oder generalization sein Zudem kann eine Assoziationen als base Sender oder conjugate Empf nger dienen Eine aggregation ist nur zwischen zwei Klassen der Stereotypen capsule und protocol erlaubt Eine composition ist zwischen zwei Klassen der Stereo typen capsule und data oder capsule und capsule m glich 3 Eine Assoziation kann erstellt bearbeitet und gel scht werden Die Bearbeitung soll an zwei Stellen m glich sein a innerhalb der grafischen Darstellung der Assoziation selbst und b in einem Dialogfenster Object Z Datentypen und Ausdr cke und DC Ausdr cke 1 Es gibt sowohl einen Editor f r die Eingabe von Object Z Datentypen und Ausdr cken als auch einen f r die Eingabe von DC Ausdr cken Die Einga be wird durch die Unterst tzung von Fehlermarkierungen und gegebenenfalls Syntax Highlighting sowie der Erzeugung von ausgew hlten Ausdr cken per GUI in den be
129. ass man Daten aus dem Repository in sein Arbeitsverzeichnis ausliest bzw von seinem Arbeitsverzeichnis in das Repository l dt Mergen bezeichnet das Zusammenf hren unterschiedlicher Dateiversionen Es existieren mindestens zwei Ans tze der Versionsverwaltung Das Copy Modify Merge Prinzip und das Lock Modify Write Prinzip wobei ersteres der Philosophie der Optimistic Revision Control folgt und zweiteres der der Pessimistic Revision Control Sowohl CVS als auch Subversion bedienen sich ersteren Konzepts Mit Copy Modify Merge ist gemeint dass man sich die Daten aus einem Repository Projektgruppe Syspect 93 12 Oktober 2006 Endbericht KAPITEL 11 VERSIONSVERWALTUNG ausliest diese ndert und dann wieder eincheckt Sollte es bei einem Update ein Problem geben werden beide Versionen der Datei so weit wie m glich zusammenge setzt Sind von den Benutzern nur unterschiedliche Zeilen ge ndert worden wird alles ohne Probleme zusammengef gt Gibt es einen Konflikt wird dies angemerkt und die Datei so modifiziert das beide nderungen vorhanden sind In diesem Fall m ssen die nderungen von Hand am Besten nach Kommunikation mit der anderen Person gemerged und dann eingecheckt werden Wie dies von CVS und Subversion gel st wird wird in 11 2 4 erkl rt Beim pessimistischen Ansatz werden Dateien die gerade bearbeitet werden gesperrt und sind somit f r niemand anderen zug nglich bis diese wieder freigeschaltet werden Das schlie
130. asterstudiengang Informatik an der Carl von Ossietzky Universit t Oldenburg sieht f r das vierte Studienjahr bzw erste Studienjahr f r Masterstudenten eine Projektgruppe vor Diese besteht in der Regel aus sechs bis zw lf Teilnehmern Syspect besteht aus elf Studenten Sie sollen gemeinsam eine substantielle Aufgabe im Umfang von 24 Kreditpunkten also 4 Mo dulen bearbeiten Neben der Entwicklung von Softwaresystemen Hardwaresystemen oder einer Kombination aus beiden geh rt zu einer Projektgruppe eine Seminarphase sowie die Anfertigung eines Endberichts Das Ziel einer Projektgruppe ist es eine umfangreiche Aufgabe in Teamarbeit zu l sen Dazu geh rt es M glichkeiten der Organisation von Gruppenarbeit kennenzulernen und geeignete Kommunikationswege zu finden Methoden des Software Engineering k nnen umgesetzt und somit Praxis Erfahrungen gesammelt werden Eine Projekt gruppe kann unter Umst nden auch Einblick in die aktuelle Forschungsarbeit der Universit t geben Kontakte zu Forschenden k nnen gekn pft und Erfahrungen k nnen ausgetauscht werden Die Projektgruppe beginnt mit einer Seminarphase die kompakt an wenigen Tagen oder auf w chentlichen Treffen stattfindet Syspect begann mit einer kompakten Se minarphase ber zwei Tage In dieser Phase werden erarbeitete Grundlagen von den einzelnen Teilnehmern vorgestellt F r die Arbeit im Verlauf des Jahres werden Sitzungstermine vereinbart meist ein bis zwe
131. bar sind Solche sind in Klassen gekapselt die das Interface IUndoable implementieren Die Gr e der History also die Anzahl der Aktionen die hintereinander wieder r ck g ngig gemacht werden k nnen ist ber die Preferences einstellbar NameAdministrator Der NameAdministrator sorgt f r die Eindeutigkeit von Namen von Modellelementen innerhalb eines Projektes D h bei der Erzeugung oder Umbenennung von Modellele menten muss der neue Name hier registriert und ggf der alte Name ausgetragen werden Ebenso stellt diese Klasse garantiert eindeutige default Namen zur Verf gung damit der Benutzer nicht gezwungen ist jedem neuen Element sofort einen eigenen Namen zu geben Da die hier gespeicherte Abbildung von Elementen auf Namen nicht Teil der persisten ten Datenhaltung ist wird es beim Laden eines Projektes neu erstellt SyspectUtil Eine besondere Klasse im Core Paket ist die Klasse SyspectUtil Hier sind allgemeine Hilfsmethoden angesiedelt die z B Programmlogik f r das Modell beinhalten Dies hat die Vorteile dass Datenhaltung und Logik getrennt sind und h ufig verwendete Methoden an einem zentralen Punkt von mehreren Komponenten gemeinsam benutzt werden k nnen Es ist aber zu beachten dass die hier definierten Methoden das Modell nicht ver ndern Dies darf in unserer Architektur nur ber Commands geschehen siehe 15 3 8 S 181 Projektgruppe Syspect 160 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF Acti
132. basiert auf EMF Innerhalb des UML2 Plug ins sind Klassen f r die f r Syspect erforderlichen in Klassen Komponenten und Zustandsdiagrammen enthaltenen Elemente vorhanden Die Ver bindung dieser Elemente geschieht ber Klassen die Assoziationen und Transitionen modellieren Das Plug in unterst tzt weiterhin die Erweiterung eines Modells ber Profile und Stereotypen was essentiell f r die Anwendung innerhalb Syspects ist Ein innerhalb des Plug ins entwickeltes Modell l sst sich direkt in das Austauschformat XMI exportieren Zum Erzeugen der einzelnen Elemente werden sowohl die Klasse UML2Factory wel che das Design Pattern Singleton GHJ95 implementiert als auch die Repr sentati onsklassen der konkreten UML 2 0 Elemente welche hierf r Factory Pattern GHJ95 bereitstellen benutzt Da die Entwickler gro en Wert auf die Konformit t des Plug ins zur UML 2 0 Spezifikation legen ist es unwahrscheinlich dass sich bei der Weiterentwicklung we sentliche Schnittstellen und Funktionalit ten ndern Das UML2 Plug in bietet sich auf den ersten Blick als eine gute Datenhaltung f r Dia gramme an da die Diagramme UML2 konform sein sollen Allerdings war die Einarbei tung in das UML2 Plug in und die Integration in Syspect so aufwendig dass schlie lich die fehlende Funktionalit t einer Undo und Redo Funktion in Verbindung mit GEF ausschlaggebend war eine eigenst ndige Datenhaltung zu entwerfen Da das UML2 Plug in aufbauend a
133. ben alle Elemente ein dazugeh riges Ele ment auf der reinen Model Ebene wie IVCapsule und ICapsule und in der anderen Gruppe haben alle Elemente so ein Element auf der reinen Model Ebene eben nicht wie IPort Alle Elemente die zur ersten Gruppe geh ren implementieren besagtes Interface lt lt interface gt gt IViewable lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt IViewableDiagram IViewableWithModel IViewableNode IViewableConnec tion IConneci tionLabel Abbildung 15 19 Abstrakte Oberstruktur der Viewable Ebene Kontext Diagramme und Diagramminhalt Damit ein Diagramm unabh ngig von seinem Typ mit getChildren nach seinem Inhalt gefragt werden kann erben alle Diagrammtypen von IViewableDiagram und die jeweiligen Hauptinhalte von ihnen aus sind ber weitere get Methoden alle weiteren Inhalte zugreifbar von IDiagramContent Kontext Diagramme und Verbindungen auf Viewable Ebene Passend zu den von Syspect unterst tzten Diagrammarten sind die drei erben den Interfaces von IViewableDiagram IComponentdiagram IClassdiagram und Projektgruppe Syspect 177 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF lt lt interface gt gt IDiagramContent lt lt interface gt gt IVStateContainer is_parent lt lt interface gt gt IVAbstractState
134. beseiten alle von bis e Vorschau des Ausdrucks mit folgender Funktionlit t Iterieren ber s mtliche Seiten des Ausdrucks Zoom Funktionen fit to page fit to width fit to height 17 4 Notizzettelkommentare Mit Notizzettelkommentaren sind hier die f r UML Modellierungswerkzeuge typi schen Kommentarfl chen gemeint die direkt in Diagramme eingezeichnet und mit ge strichelten Linien mit z B Klassen verbunden werden k nnen In der Sprache von Syspect gesprochen sind dies Viewable Kommentare im Gegensatz zu den bereits vorhandenen Model Kommentaren Wenn in der gegenw rtigen Version von Syspect eine Klasse im Tabbed Property View kommentiert wird so gilt dieser Kommentar f r alle Vorkommen dieser Klasse in verschiedenen Diagrammen es handelt sich also um Kommentare in Bezug auf das Model Mit den Notizzettelkom mentaren hingegen w re es m glich die verschiedenen Kontexte in denen eine Klasse in mehreren Diagrammen gezeigt wird separat voneinander zu kommentieren Voraussichtlich ist dieses Feature mit den bereits angewandten M glichkeiten von GEF Eclipse und unseren eigenen Bibliotheken ohne besondere Schwierigkeit zu l sen 17 5 TypeChecking Im Moment wird im Properties Plugin Z nur auf syntaktische Fehler gepriift Typfeh ler werden nicht gefunden Schl sselstellen die angepasst werden m ssten um diese Funktionalit t zu erreichen sind mit entsprechenden Kommentaren versehen und sind in folgenden
135. ble Abbildung 15 12 Superinterfaces Kontext Projektmanager und Projekte Die Schnittstelle ber die s mtliche Modelldaten erreicht werden k nnen hei t IProjectManager Sie verwaltet eine Liste von IProject Instanzen welche jeweils alle Modelldaten f r ein Projekt beinhalten Die Klasse IProject verwaltet die ihm unter geordneten Modellelemente wie folgt e In einer Liste von IAbstractClass Instanzen werden s mtliche Klassen und In terfaces gespeichert e In einer Liste von IViewableDiagram Instanzen werden s mtliche Diagramme gespeichert e In einer ISystemDefinition Instanz werden globale Z Definitionen gespeichert Projektgruppe Syspect 171 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF Zum besseren Zugriff auf diese Modellelemente implementieren sie alle das Interface ITopLevelElement so dass bei einem Aufruf von getChildren eines Projektes s mt liche dieser Modellelemente zur ckgegeben werden lt lt interface gt gt ITopLevelElement lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lAbstractClass IViewableDiagram ISystemDefinition lt lt interface gt gt ad lt lt interface gt gt IProjectManager is parent IProject is_parent Abbildung 15 13 Projektmanager und Projekte Kontext Klassen und Interfaces Das abstrakte Oberinterface f r die Model Repr sentationen von Capsule Data und In terface ist
136. bstverst ndlich den Men punkt Search for new features to install und tr gt dann im n chsten Dialogfenster unter Add new Remote Site die Quelle http subclipse tigris org update 1 4 Der Build Prozess mit ANT 1 4 1 Was ist ANT Der Name ANT Apa06 entstand durch die Kurzbeschreibung des Tools Another Neat Tool was bersetzt bedeutet ein weiteres h bsches Werkzeug Konkreter verbirgt sich hinter ANT ein Java basiertes Build Tool Das Ziel der Entwickler war eine Art Make FSF06a ohne die Make Sch nheitsfehler Die Build Files von ANT sind XML basiert und damit strukturiert aber gelegentlich auch umst ndlicher als Make Build Files ANT Build Files k nnen in Eclipse editiert mit einem daf r vorgesehenen Editor bearbeitet und als External Tool ausgef hrt werden 1 4 2 Syntax von ANT Drei wichtige syntaktische Bausteine von ANT kurz erl utert lt project name example default doc basedir gt lt project gt Im Attribut name wird der Name festgelegt auf den sich das Projekt bezieht Der Wert von default gibt das standardm ig auszuf hrende Target an Das basedir ist der Verzeichnispfad wo das Projekt im Verh ltnis zur Build Datei zu finden ist Projektgruppe Syspect 13 12 Oktober 2006 Endbericht KAPITEL 1 ECLIPSE lt property name build location bin bla blub gt Durch die Angabe einer property wird es m glich l ngere Verzeichnisangaben die fter in der Datei
137. but usefile erm glicht die Ausgabe in eine Datei Gefolgt von der Konfiguration k nnen beliebig viele Testf lle bzw suiten ber das Tag test hinzugef gt werden Bevor die einzelnen Tests ausgef hrt werden k nnen m ssen die Dateien kompiliert werden Dies wird mittels der Abh ngigkeiten depends von einzelnen Zielen erreicht JNT06 10 4 Java Modeling Language Die Java Modeling Language JML ist eine programmiernahe Spezifikationssprache f r Java Sie beschreibt das Laufzeitverhalten von Programmen in Form von Zusiche rungen Design by Contract Diese Vertr ge werden direkt im Quellcode definiert Ein spezieller Compiler mie kann diese Spezifikationen in ausf hrbaren Code bersetzen der zur Laufzeit die Bedingungen berpr ft Des Weiteren kann JML auch als Basis f r diverse Verifikationstools wie z B LOOP oder ESC Java benutzt werden JML06 10 4 1 Syntax JML Zusicherungen werden in Form von Kommentaren in den Quellcode eingebettet Diese speziellen Kommentare werden durch ein Zeichen am Anfang gekennzeichnet Der Java Compiler behandelt alle JML Spezifikationen als einfache Kommentare Diese Kompatibilit t erm glicht die Verwendung der JML Dateien auch als Java Dateien Im Folgenden werden wichtige Sprachelemente der Spezifikation zusammengefasst Verhaltensbeschreibung von Methoden Eine Verhaltensbeschreibung wird durch das Schl sselwort behavior eingeleitet und steht vor der zu beschreibenden Methode F r e
138. ch ebenfalls ein immenser Zeitaufwand und zus tzliche Probleme auf die Projektgruppe zu kommen k nnen Projektgruppe Syspect 41 12 Oktober 2006 Endbericht KAPITEL 4 ARGOUML Projektgruppe Syspect 42 12 Oktober 2006 Endbericht KAPITEL 5 COMMUNITY Z TOOLS Kapitel 5 Community Z Tools Henning Rohlfs 5 1 Einleitung Community Z Tools CZT05 ist ein Open Source Projekt das sich zur Aufgabe ge macht hat Werkzeuge f r den Umgang mit in Z geschriebenen formalen Definitionen zu entwickeln Au erdem sollen Object Z sowie Timed Communicating Object Z TCOZ unterst tzt werden Als Motivation f r die Entwicklung der Community Z Tools ist das Fehlen von miteinander zusammenarbeitenden Applikationen zu sehen die zusam men eine Entwicklungsumgebung f r Z darstellen k nnten Dementsprechend ist die Zielsetzung f r das Projekt die Entwicklung folgender Werkzeuge e XML Schema f r Z e Java Klassen f r einen Z annotated syntax tree AST also eine Darstellung von Z Ausdr cken in Java e Konvertierungswerkzeuge zwischen XML und dem Java AST e Grafische Editoren zum Eingeben von Z Ausdr cken e Finen Z Animator e Exportwerkzeuge zum bersetzen von Z Ausdr cken in andere Darstellungsfor men wie zum Beispiel TEX Weiterhin sollen diese Werkzeuge die oben genannten Erweiterungen Object Z sowie TCOZ unterst tzen Projektgruppe Syspect 43 12 Oktober 2006 Endbericht KAPITEL 5 COMMUNITY Z TOOLS 5 2
139. chen und bei Gleichheit p A p A die Requires Information vereinigt r A r A Ur A Durch dieses Verfahren werden AssembleyConnectoren entdeckt die semantisch qui valent durch einen einzigen Connector ausgedr ckt werden k nnten Die zusammenge fasste Tabelle 4 _ Ai i n Deleted beschreibt diese vereinfachten Verbin dungen Konflikt berpr fung In der Konflikt berpr fung wird nun sichergestellt dass die verbleibenden Verbindungen entweder konfliktfrei durch andere berdeckt werden oder aber dass sie v llig unabh ngig voneinander sind Ist beides nicht der Fall die Kom ponentenverbindungen liegen also schief zueinander dann kann keine bersetzung nach CSP erfolgen Zun chst definieren wir eine Funktion die uns die gemeinsamen Komponenten von zwei Verbindungen A und B heraussucht share A B comp A N comp B Komponenten k nnen nur schief zueinander liegen wenn diese Schnittmenge nicht leer ist In dem Fall gilt es zu berpr fen ob die gemeinsamen Komponenten vertr g lich zueinander in beiden Verbindungen benutzt werden Vertr glich k nnen sie zum einen sein wenn eine Verbindung die gemeinsamen Komponenten berdeckt Falls Ver bindung A eine Uberdeckung von B ist so schreiben wir A gt B mit A gt B share A B C r A V share A B C p A A gt B A gt BA B gt A A ist also eine berdeckung von B falls die gemeinsamen Komponenten komplett auf der Require oder Pr
140. chine lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt IVRealization IVDependency IVGeneralization IVAggregation IVComposition IVAssoziation Abbildung 15 21 Diagramme und Verbindungen auf Viewable Ebene Kontext Die Vererbungshierarchie von ViewableNode Ebenso wie bei IViewableConnection lassen sich die erbenden Interfaces von IViewableNode in zwei Gruppen einteilen e IVClassContent IVAbstractClass und IVAbstractState haben zugeh rige In terfaces auf der Model Ebene e IConnectorContainer und IAbstractConnector sind nur auf der Viewable Ebene angesiedelt Projektgruppe Syspect 178 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF Dementsprechend leiteten sich die Elemente der ersten Gruppe zus tzlich von IViewableWithModel ab die der zweiten Gruppe hingegen nicht Es sei darauf hingewiesen dass alles ein IViewableNode ist was in einem Diagramm gezeichnet werden kann und keine Verbindung ist Die Unterscheidung zwischen Ele menten die eine eigene Position und Gr e haben und solchen deren Position und Gr e direkt von anderen abh ngig ist wird erst auf View Ebene getroffen und ent sprechend im folgenden Abschnitt behandelt lt lt interface gt gt IViewableWithModel A lt lt interface gt gt IViewableNode ZA AN lt lt interface gt g
141. ck durchgef hrt werden Im Folgenden wird zuerst eine Klassifizierung der einzelnen Teststufen gegeben Insbesondere wird auf das Testen von Komponenten mit JUnit unter der Java Technologie eingegangen In die sem Zusammenhang wird auch das Entwicklungswerkzeug ANT erl utert Des Weiteren wird die Java Modeling Language JML die zur Spezifikation von Java Programmen dient vorgestellt 10 2 Teststufen In diesem Kapitel wird eine Einteilung der Softwaretests in verschiedene Stufen vorge stellt e Komponententests Bei Komponententests werden einzelne Einheiten Klassen bzw Methoden dieser individuell und unabh ngig von anderen Einheiten des Systems getesten Dies kann gegen den Programmcode White Box Test oder die Spezifikation Black Box Test erfolgen Projektgruppe Syspect 83 12 Oktober 2006 Endbericht KAPITEL 10 SOFTWARE TESTEN e Integrationstests Das Testen einzelner Komponenten garantiert das korrekte Zusammenwirken die ser nicht Einige Module k nnen nicht isoliert getestet werden Aus diesem Grun de sollten integrative Tests verschiedener Teilbereiche durchgef hrt werden e Systemtests Abschlie end wird die Funktionalit t die Zuverl ssigkeit die Effizienz und die Benutzbarkeit des gesamten Systems getestet In diesem Zusammenhang wird berpr ft ob alle funktionalen und nicht funktionalen Anforderungen erf llt sind e Abnahmetests Dieser Test ist eine besondere Art des Systemtests Der Auftraggeber
142. clipse wird alles gefasst was keine Editoren oder Dialogfelder sind So gibt es zum Beispiel Ansichten f r Ressourcen Markierungen oder Status meldungen Wie auch bei den Editoren stellt Eclipse ein Framework zur Verf gung welches die Entwicklung von Ansichten unterst tzt Dabei schl gt Eclipse folgendes Architekturmodel vor Es gibt eine strikte Trennung der Daten Model von der Ansicht View Die Ansicht ViewPart wird von dem Interface IViewPart abgeleitet und von der Workbench initia lisiert Die Ansicht enth lt Widgets wie eine Tabelle oder einen Baum die die Daten darstellen Der Widget kennt das Model welches die Daten enth lt Jedoch kennt das Model nicht den Widget Damit der Widget die Daten anzeigen kann bildet der Con tentProvider die Schnittstelle zwischen diesen d h dieser definiert wie der Inhalt aus dem Model f r die View erzeugt wird Durch den ContentProvider werden die Daten auf den Widget zwar zugeschnitten f r die korrekte Darstellung wird aber zus tzlich noch ein LabelProvider ben tigt der f r eine genaue Darstellung jedes Datums ver antwortlich ist Dieser gibt in der Regel eine Zeichenfolge oder Symboldarstellung f r das entsprechende Datum an den Widget zur ck Projektgruppe Syspect 23 12 Oktober 2006 Endbericht KAPITEL 2 ECLIPSE PLUGINS UND GEF WorkbenchPart lt lt interface gt gt S IViewPart createPartControl d ViewPart init
143. d ein XMI Schema ist immer auch ein XML Schema In einem XML Dokument werden Daten gespeichert in einem XML Schema wird fest gelegt wie diese Daten auszusehen haben Man kann also XML Dokumente gegen XML Schema laufen lassen um zu pr fen dass ihre Daten die korrekte Form das korrekte Format haben XMI ist eine Spezialisierung hiervon Bei XMI geht es nicht allgemein um Daten son dern um Objekte bzw um das was in der MOF unter dem Begriff verstanden wird denn dies ist das Metamodell f r XMI womit die Br cke zwischen UML und XMI geschlagen ist In einem XMI Dokument werden also Objekte gespeichert w hrend in einem XMI Schema festgelegt wird wie diese Objekte auszusehen haben Dies kann unter anderem beliebig konkret ausgedr ckt werden Zum Beispiel kann festgelegt werden dass alle Objekte keine Attribute haben d rfen oder dass sie generell welche haben d rfen Aber auch dass sie z B nur eine bestimmte Anzahl eines bestimmten Typs haben d rfen usw 6 2 2 Ein berblick ber XML Die allgemeine Form eines XML Elements ist lt Name Attribute gt Inhalt lt Name gt Projektgruppe Syspect 54 12 Oktober 2006 Endbericht KAPITEL 6 EINF HRUNG IN UML UND XMI Ein XML Element besteht mindestens aus einem sogenannten Tag lt Name gt Hat dieser Tag einen Inhalt wird er in zwei Tags aufgespalten einen 6ffnenden und einen schlie enden Tag lt Name gt Hallo Welt lt Name gt Attribute sind eine opt
144. d kann daher auch au erhalb von Eclipse benutzt werden Sha04 Projektgruppe Syspect 19 12 Oktober 2006 Endbericht KAPITEL 2 ECLIPSE PLUGINS UND GEF JFace ist ein Benutzeroberfl chen Framework f r allgemeine Benutzeroberfl chen aufgaben JFace setzt auf SWT auf bzw erweitert dieses Es enth lt sowohl Frame works f r Widgets Bild und Schriftregistrierungen Dialogfelder und Assistenten als auch f r Aktionen und Erweiterungen Sha04 Die Workbench repr sentiert die Benutzeroberfl che der Eclipse IDE Sie gibt so mit das Layout der Oberfl che vor und strukturiert bzw verwaltet Editoren und An sichten Die Workbench benutzt dabei SWT und JFace Sha04 Die Workspace API and Resources unterst tzen den Zugriff auf den von Eclipse verwendeten Workspacebereich bzw bildet diesen intern in Eclipse ab Team Support bietet die M glichkeit einer Versionierung und Konfiguration von Eclipse Projekten und Daten bzw unterst tzt die Integration von Repository Systemen Das Hilfesystem f r Eclipse schafft eine Basis f r die Dokumentation eines Plug ins Das Framework unterst tzt dabei sowohl die integrierte Hilfedokumentation die kontextabh ngige Hilfe die bersetzung von Hilfseinhalten in mehrere Sprachen die Suchfunktion als auch ein eigenst ndiges Hilfesystem welches au erhalb von Eclipse benutzt werden kann Zudem gibt es eine aktive Hilfe mit der bestimmte Aktionen f r einen Benutzer aufgef hrt werden k n
145. de deren Projekte sich auf das Bereitstellen einer erweiterbaren Entwicklungsplattform und eines Anwendungssystems f r Softwareent wicklung konzentrieren Eclipse bietet erweiterbare Werkzeuge und Systeme die sich ber den Lebenszyklus von Software inklusive der Unterst tzung f r die Modellierung Entwicklungsumgebungen f r Java C C und andere Sprachen Tests und Perfor manz Business Intelligence ergiebige Client Anwendungen und eingebettete Entwick lung erstrecken Mit Eclipse ist allerdings in den meisten Zusammenh ngen und so auch im folgenden Text das installierte Programm des Eclipse Projekts gemeint und nicht die Open Source Gemeinde 1 1 1 Geschichte von Eclipse Das Eclipse Projekt wurde 1999 von IBM und OTI Teams aus Nordamerika und Euro pa mit ber 40 Vollzeit Mitarbeitern gestartet Es dauerte dennoch mehr als zwei Jahre bis die Version 0 9 im Juni 2001 ver ffentlicht wurde der dann im Oktober desselben Jahres die Version 1 0 folgte Im darauf folgenden Monat beschloss IBM den Pro grammcode zu ver ffentlichen so dass Eclipse sich in ein Open Source Projekt verwan delte Au erdem startete IBM eine Webseite EFI05b um Open Source Entwicklern eine Anlaufstelle zu bieten 1 1 2 Grundlegende Eigenschaften von Eclipse Eclipse wird als Plattform f r Entwickler zun chst einmal dadurch attraktiv dass es ein Open Source Projekt ist und auf Grund der Java Architektur f r jedes Betriebs system zur Verf gung steht
146. den Diese Analyse beruhte zu meist auf Kenntnissen der Beteiligten aus den Semi naren Aufgrund der offensichtlichen Vorteile der Eclipse Plattform entschied sich die Projektgruppe daf r diese als Plattform f r die Syspect Applikation zu verwenden Ausschlaggeben war daf r vor allem das Eclipse Plug in Konzept das es erm glicht nicht nur die eigene Applikation auf einem hohen Level der Erweiterbarkeit Wart barkeit und Wiederverwendung zu halten sondern auch die Verwendung von schon bestehenden Plug ins Die Grundfunktionalit ten einer GUI wurden somit vom dem Eclipse Framework und die eines grafischen Editors von dem GEF Plugin zu Verf gung gestellt Zudem ist Eclipse Open Source und hat eine gro e Community bzw eine daraus resultierende gute Dokumentation und ist in der Anwendung getestet Daneben wird noch weitere Software z B Community Z Tools als Komponenten in das Projekt mit eingebettet Zus tzlich zur Integration in Eclipse besteht die M glichkeit das Projekt als Rich Client Application zu realisieren Somit entsteht ein eigenst ndiges Produkt auf Basis der Eclipse Plattform ber das Plug in Konzept k nnen komponentenbasierten Systeme entwickelt werden Dies erm glicht eine einfache Skalierung von Syspect obwohl es Grundkomponenten gibt wie das Syspect Core Plug in die in jedem Fall vorhanden sein m ssen Ein stellungen wie Abh ngigkeiten oder Extension Points der einzelnen Plug ins k nnen ber die Plug in Edito
147. den Klasse encoding UTF 8 eclipse lt plugin gt lt extension point org eclipse ui actionsets gt lt actionset id HelloWorld actionser label My Action Set visible true gt lt menu id MyMenu e label My Menu gt f lt menu gt lt action class helloWorld actions Myaction id helloWorld actions Myiction public class Myiction implements IWorkbenchWindowictionDelegate public void run IAction action label My Action menubarPath MyMenu gt lt actionset gt lt extension gt lt plugin gt Abbildung 2 4 Plugin xml und Implementierung Bevor die extensions des Plug ins definiert und implementiert werden k nnen muss das Plug in selbst definiert werden Dies geschieht durch ein Plug in Manifest in Form einer Datei mit dem Namen MANIFEST MF siehe Abbildung 2 5 Fine der wichtigsten Eigenschaften des Manifests ist die Definition der Abh ngigkeiten zu anderen Plug ins Eclipse kann beim Start anhand der Manifeste eine interne Plug in Registry erstellen und die Plug ins in Abh ngigkeiten laden Sha04 Aktiviert wird ein Plug in allerdings nur dann wenn es gebraucht wird es sei denn das Plug in erzwingt ein fr hes Akti vieren Zu diesem Manifest geh rt wie auch bei den extensions eine Java Klasse die durch das Manifest referenziert wird Diese Klasse wird von Eclipse bei der Aktivierung des Plug ins geladen und muss von AbstractUIPlugin abgeleitet sein Projektgrup
148. der Reiter wird ebenfalls durch eine ID gekennzeichnet und erh lt eine Beschriftung F r die Anordnung der Reiter in der View gibt es das Attribut afterTab das jedem Reiter mitteilt nach welchem er folgt Zus tzlich k nnen die Reiter gruppiert werden Projektgruppe Syspect 191 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF lt extension point org eclipse ui views properties tabbed propertyTabs gt lt propertyTabs contributorld syspectproperties ID gt lt propertyTab id syspectproperties General label General gt lt propertyTabs gt lt extension gt Abbildung 15 30 Property Tabs Extension Point Abbildung 15 30 zeigt einen Ausschnitt aus der Konfigurationsdatei eines Plug ins plugin xml das den Property Tabs Extension Point definiert Property Sections ber die Property Sections werden die Widgets f r die View definiert Diese enthal ten eine ID und werden einem Reiter zugeordnet Die Anordnung wird ber das Attri but afterSection geregelt Die Widgets werden in einer Klasse implementiert die der Section zugeordnet wird Diese Klasse wird von der Klasse AbstractPropertySection abgeleitet und implementiert die folgenden Methoden e createControls erzeugt das eigentliche Widget e ber setInput wird der Workbench und das selektierte Modelelement ber geben e refresh aktualisiert die sichtbaren Bedienelemente Die Aufrufreihenfolge durch das Framework entspricht der Reihenfolge der Auf
149. der capsule hinzugef gt Wurde ein neues Protokoll ausgew hlt so muss eine entsprechende neue Klasse mit Stereotyp protocol erstellt werden Nachbedingung Fehlschlag Eine aussagekraftige Fehlermeldung wird ausgegeben Eingabedaten Vorhandenes oder neues Protokoll Typ des Ports conjugated base die aus gew hlte capsule m gliche Fehler Ungiiltiger Protokollname Projektgruppe Syspect 134 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION Anwendungsfall Ports verbinden Akteure Nutzer Ziel Zwei Ports sollen miteinander verbunden werden Ausl sendes Ereignis Der Nutzer w hlt das entsprechende Symbol in der Symbolleiste Vorbedingung Strukturdiagramm ist ge ffnet Mindestens zwei Ports sind verf gbar Nachbedingung Erfolg Die angegebenen Ports sind miteinander verbunden Nachbedingung Fehlschlag Eine Warn bzw Fehlermeldung wird an entsprechender Stelle angezeigt Die Ports sind nicht miteinander verbunden Eingabedaten Die zwei zu verbindenen Ports m gliche Fehler Die ausgew hlten Ports stehen nicht ber ein gemeinsames Protokoll in Bezie hung Anwendungsfall Bearbeiten Akteure Nutzer Ziel capsule Port oder Kommentar bearbeiten Ausl sendes Ereignis Der Nutzer markiert ein Element und w hlt im Kontextmen oder in der Symbolleiste Element bearbeiten Vorbedingung Ein Element ist vorhanden Nachbedingung Erfolg Ein Dialog zur Bearbeitung des Elements erscheint
150. dern ihre Struktur soll in eine typische XML Schreibweise berf hrt werden 3 Object Z Datentypen sollen nicht nur als String verf gbar sein sondern struk turiert in XML definiert werden k nnen 4 Die Ausdr cke in Object Z sollen in diesem Format entweder identisch mit denen in der XML Darstellung der CSP OZ DC Spezifikation sein oder in einer Form dargestellt werden die sich an dem Format orientiert in das die PEA weiter konvertiert werden 5 Des Weiteren soll es m glich sein mehrere PEA zu einem Automatenverbund zusammenzufassen Beschreibung des XML Formats f r Phasen Event Automaten Das aktuell bereits vorhandene Format Mey05b f r die Darstellung von PEA soll ge nutzt werden und darf nur in Absprache mit dem Auftraggeber angepasst werden Die Struktur der XML Darstellung gliedert sich folgenderma en Auf der obersten Ebene wird ein PEANet definiert Dies ist ein Automatenverbund Innerhalb des PEANets gibt es ein oder mehrere PEA Ein PEA enth lt eine Varia blenliste eine Eventliste eine Uhrenliste eine Zustandsliste und eine Transitionsliste Transitionen enthalten auf jeden Fall eine Quelle und ein Ziel au erdem k nnen sie Guards als Formula und eine Menge von Uhren die zur ck auf null gesetzt werden sollen enthalten Zust nde haben den Typ PEAPhase und setzen sich aus Variablenin varianten und Uhreninvarianten beides als Formula sowie einem Namen und einem Boolean das angibt ob sie Startzustand sind
151. des Klassendiagramms modifiziert und eingeschr nkt In diesem Fall ist die wesentliche Beschr nkung das Verbieten von Attributen Zustandsdiagramm Es gibt zwei Arten von Zustandsdiagrammen Projektgruppe Syspect 52 12 Oktober 2006 Endbericht KAPITEL 6 EINF HRUNG IN UML UND XMI 1 Protokollzustandsdiagramm 2 Verhaltenszustandsdiagramm Das Verhaltenszustandsdiagramm stellt die Abfolge innerer Zust nde eines Objektes dar das Protokollzustandsdiagramm nur die einer Schnittstelle diesem steht des halb auch nur eine Untermenge der Notationsm glichkeiten des Verhaltenszustands diagramm zu Verf gung Abbildung 6 3 zeigt ein Protokollzustandsdiagramm f r die Schnittstelle einer T r steuerung Syntax f r Transition Vorbedingung Ereignis Aktion Nachbedingung T rNichtBlockiert schliesse ff 7700 TA za fine verriegele entriegele Abbildung 6 3 Protokollzustandsdiagramm am Beispiel einer T rsteuerung Abbildung 6 4 zeigt ein Verhaltenszustandsdiagramm f r eine Ampelsteuerung Im Wesentlichen ist hier auch einer der auff lligsten Unterschiede zu den Protokollzu standsdiagrammen dargestellt Die M glichkeit eine Art Unterautomaten darzustel len Beim Ereignis start geht das Objekt vom Zustand aus in den Zustand bereit bzw bereit rot weil rot der Initialzustand von bereit ist Ist das Objekt im Zustand bereit gleich in welchem Unterzustand und wird das Freignis stop a
152. die grafischen Elemente richtig anordnen zu k nnen e Mithilfe einer XYLayoutEditPolicy werden die Klassen und Interfaces innerhalb des Diagramms angeordnet Dieses Konzept wird immer dann angewendet wenn ein grafisches Element innerhalb eines anderen gr eren in X und Y Richtung frei verschiebbar sein soll e Den Effekt dass Attribute und Methoden als eine Art Liste innerhalb der Klasse erscheinen wird hingegen mit der FlowLayoutEditPolicy realisiert Um Klassen und Interfaces das UML typische Aussehen zu verleihen sind neben dem angezeigten Rechteck und der Attribut Methoden Liste der Name und separierende Projektgruppe Syspect 183 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF Linien notwendig Da hierf r einerseits keine eigene Datenhaltung notwendig ist die Klasse speichert ihren Namen selbst die Separatorpositionen werden vom Controller bei jedem Zeichnen neu berechnet aber andererseits das GEF Framework f r jedes zu zeichnende Element ein dahinterstehendes Model ben tigt haben wir uns f r einen Kompromiss entschieden In der Klasse SyspectNodeEditPart werden entsprechende Model Elemente als innere Klassen bereitgehalten Dies ist f r das GEF Framework ausreichend hat aber den Vorteil dass diese Klassen nicht in unserer Datenhaltung vorkommen Durch Vererbung stehen diese inneren Klassen allen betreffenden EditParts zur Verf gung siehe Abbildung 15 25 lt lt interface gt gt lt lt interface gt
153. dm ig das Plug in Plug in Develop ment Enviroment PDE auch zum Eclipse Project welches eine direkte Plug in Entwicklungsumgebung f r Eclipse Plug ins bietet Es k nnen somit auf komfortable Weise Eclipse Plug ins mit Eclipse selbst erstellt werden Die Entwicklung eines Plug ins f r Eclipse unterscheidet sich von dem Entwicklungs prozess von anderer Software Der Hauptpunkt dabei ist dass nicht von Grund auf nach einem Ansatz gesucht wird die Software zu realisieren sondern nach einem vor handenen Ansatz in Eclipse der erweitert werden kann Sha04 Mit Ansatz ist hier etwa ein Integrationspunkt f r ein Plug in bzw eine Erweiterung gemeint Das Plug in wird somit auf die Plattform von Eclipse aufgebaut integriert Damit solche Integrati onspunkte gefunden werden k nnen m ssen die zur Verf gung gestellten Funktionen bzw Schnittstellen Bibliotheken und Frameworks bekannt sein die solche Integrati onspunkte zur verf gung stellen Diese sollen an dieser Stelle kurz erl utert werden vergleiche Abbildung 2 1 auf Seite 18 SWT steht f r Standard Widget Toolkit und ist eine Bibliothek f r grafische Benut zeroberfl chen SWT greift auf die nativen Steuerelemente des Betriebssystems zur ck und bildet somit die unterste Schicht im Gesamt Framework der Benutzeroberfl che SWT wurde auf eine Vielzahl von Fenster und Betriebssystemen portiert und l uft auf allen nahezu quivalent Die Bibliothek ist nicht an Eclipse gebunden un
154. e CSP OZ DC Spezifikation abbilden UML Modell der CSP OZ DC Spezifikation nennen UML Spezifikation Das ist das Dokument was die UML bzw eine bestimmte Ver sion davon definiert Der Spezifikations Begriff wird hier anders verwendet als bei CSP OZ DC UML Profil ist eine konkrete Erweiterung der UML Wizard ist eine GUI die dem Benutzer meistens in Dialogform eine besondere Hilfestellung bei der Dateneingabe in Bezug auf ein bestimmtes Ziel gibt XMI XML Metadata Interchange Mitglied der XML Sprachfamilie Es ist ein Standard der OMG insbesondere f r Datenaustausch zwischen UML basierten Software IDEs Es kann aber alles ausgedr ckt werden was auf MOF basiert XML Extensible Markup Language bietet eine einfache Syntax mit der die Struktur von Daten beschrieben werden kann XML ist damit eine Metasprache mit der andere Sprachen beschrieben werden k nnen ZML XML Format f r die Spezifikationssprache Z Projektgruppe Syspect 226 12 Oktober 2006 Endbericht INDEX Index IXTFX 47 109 152 KTEX Quellcode 105 111 Actions 161 Aggregation 108 Assoziation 107 114 210 base 107 108 capsule 107 108 113 Code Completion 114 Commands 149 Community Z Tools 43 148 151 conjugated 107 108 Countertraces 114 CSP 57 69 199 CSP OZ DC 69 74 77 105 109 111 119 151 CSP OZ DC BTIEX 106 CSP OZ DC XML 106 CSP Prozess 58 105 data 107 Dateiformat 165 dc counterexample
155. e Plugins und GEF 17 De Ae Bine me gt e te aia ata ato aa 17 2 1 1 Please uma Eclipse rs en rs rs ders 17 2 1 2 Installation von Plug ins 22 1 aa 22 1 4a ba 18 2 2 Entwicklung eines Plugins 23 e dE eck ae ee 19 2 2 1 Grundbausteine eines Plug ins 2 20 2 22 Ressourcen Framework A zus as ar ar a 22 2 2 3 Editoren und Ansichten arpa rar Par rare E arr aie 23 2 2 4 Perspektiven 2 el cd ae dal did al de ed 24 Projektgruppe Syspect i 12 Oktober 2006 Endbericht INHALTSVERZEICHNIS 2 3 Features Plug ins verpacken 24 2 4 Erweiterung durch Plug ins GEF evitar tias ara 25 DO PAS A et E Se eh ee Ge PN es oe ed eee as SA ee 26 3 Fujaba 27 3 41 Einleitung ars a OSs els eat be 27 3 2 Architektur von FUJABA Tata a EE E 28 3 3 Architektur von FUJABA4Edclipse 30 3 4 Zusammenfassung mit Hinblick auf eine Weiterverwendung im Rahmen Ge ea rn en AN are 31 4 ArgoUML 33 4 1 AIN 33 4 2 Allgemeines zu ArgoUML 2 5 3 2 240 3 8 Sn ae a 33 4 2 1 Benutzeroberfliche o 34 4 2 2 Funktionen von ArgoUML aaa aaa 35 4 2 3 Kognitive Unterst tzung a are aan 36 4 2 4 Dokumentation von ArgoUML 37 4 3 Projektrelevante Themen ar et 37 4 3 1 Aufgaben der Projektgruppe Syspect 37 4 3 2 ArgoUML A A 38 4 4 Handlungsbedarf der Projektgruppe 39 EE ag GBs a A oe EN Se od aN Er A 40 5 Community Z Tools 43 al Einleitung ii EE E 4
156. e Setzen des Ports wurde in den ConnectorCreateCommand eingef gt da ein Port den Source des Connec tor bildet Aus diesem Command wird im Falle von inneren Komponenten der Command PortsCreateCommand aufgerufen der einen neuen Port erstellt SyspectStatemachineEditor Plug in Besondere Anforderungen an den Editor f r Zustandsautomaten waren e Die durch das UML Profil vorgesehene M glichkeit der Schachtelung von Zustandsautomaten mithilfe von Regionen in Zust nden e Die M glichkeit dass eine Transition denselben Zustand als Quelle und Ziel hat Dies wurde durch das Erstellen zweier zus tzlicher Bendpoints im TransitionCreateCommand gel st die in die View Repr sentation also in Projektgruppe Syspect 187 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF ihre IEdge Instanz eingeflochten werden so dass die Transition entsprechend umgebogen wird und wieder auf ihren Startzustand zeigt Schnittstellen Alle drei Diagrammeditor Plug ins sprechen dieselben Extension Points an Es werden vier Core Extension Points de syspect core preferenceinitializer de syspect core syspecteditpartfactory de syspect core syspectdeleteactionhook de syspect core syspectdiagram und zwei Navigator Extension Points de syspect navigator actioncontributor de syspect navigator toolbarcontributor erweitert Die Beschreibung dieser Ex tension Points k nnen im Abschnitt 15 3 2 S 158 und im Abschnitt 15 3 3 S 163 nachgelesen werd
157. e gezeichnet D h f r die Verbindungslinie ist der neue Target der AssemblyConnector wobei hier die Ausrichtung der Ver bindungslinie ebenfalls eine Schwierigkeit darstellt Die Verbindungslinie sollte an dem Teilbereich der AssemblyConnector Figure enden die das damit voher verbundene Interface darstellt Also sollte die Verbindungslinie des Provided In terfaces auch an der Stelle des AssemblyConnectors enden die das Provided In terface darstellt Sonst w re eine Unterscheidung ob eine Komponente ein Requi red oder Provided Interface hat nicht m glich da der AssemblyConnector keine Unterscheidung macht Dieses wurde versucht mit dem von GEF zur Verf gung gestellten Konzept der RotatableDecoration zu l sen Die RotatableDecoration dreht die Target Figure einer Linie mit wenn sich die Position der Verbindung ndert Dadurch kann die Verbindung einen festen Ankerpunkt am Target beibe halten Allerdings wurde das Problem nicht vollst ndig gel st Es lassen sich die Figuren im Editor so anordnen dass zum Beispiel eine Verbindung eines Provi ded Interfaces an dem Bereich der Figure des AssemblyConnetor endet der das Required Interfaces darstellt siehe Abbildung 15 28 Hier bedarf es wahrschein lich der Erstellung eines eigenen ConnectionAnchors f r den AssemblyConnector der diese Eigenschaft erf llt e Eine weitere Figure des Komponentendiagramms welche ebenfalls nicht trivial zu implementieren war ist der Port Ein Port hat die E
158. e liegt insofern auf der Hand als dass so die DiagramConsistencyChecker die Kontrolle ber die Projektgruppe Syspect 188 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF Ausf hrung der Commands haben und Model nderungen verhindern k nnen die zu Inkonsistenzen f hren w rden Der Zugriff erfolgt ber die im EditorBundle bereitgestellten Extension Points de syspect editorbundle classdiagramconsistency de syspect editorbundle componentdiagramconsistency und de syspect editorbundle statemachineconsistency siehe Abschnitt 15 3 8 S 182 Eclipse Extension Points werden ebenfalls erweitert org eclipse help toc org eclipse ui perspectiveExtensions und org eclipse ui views siehe Abschnitt 15 2 2 S 154 Das Plug in hat weitere Abh ngigkeiten zu folgenden Plug ins de syspect core org eclipse core runtime org eclipse draw2d und org eclipse ui views Prinzip anhand eines Beispiels Vor dem Hinzuf gen einer Dependency zwischen zwei Klassen soll gepr ft werden ob dies berhaupt m glich ist 1 In der canExecute Methode des Commands DependencyCreateCommand wird mit Hilfe der Klasse Activator die Referenz des aktuellen ClassDiagramConsis tencyCheckers geholt und auf diesem die Methode addDependency IConnected vsource IConnected vtarget aufgerufen 2 Die Methode berpr ft nun anhand der bergebenen Referenzen ob eine Depen dency zwischen den Klassen erlaubt ist Konkret werden hier zun chst die Re feren
159. earbeiten oder der Nutzer macht einen Doppelklick auf das Element Vorbedingung Ein Element ist vorhanden Nachbedingung Erfolg Ein Dialog zur Bearbeitung des Elements erscheint Die nderungen werden nach dem Beenden des Dialogs bernommen Nachbedingung Fehlschlag Eine aussagekr ftige Fehlermeldung wird ausgegeben Eingabedaten Ein ausgew hltes Element Alternative Anstatt eines Dialogs und der Auswahl von Element bearbeiten kann die Darstellung auch direkt in der Oberfl che erfolgen Projektgruppe Syspect 132 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION Anwendungsfall Methode erstellen Akteure Nutzer Ziel Eine neue Methode erstellen Ausl sendes Ereignis Der Nutzer markiert ein capsule oder ein protocol und w hlt im Kontext men oder in der Symbolleiste Methode erstellen Vorbedingung Mindestens eine capsule oder ein protocol ist vorhanden Nachbedingung Erfolg Handelt es sich bei der ausgew hlten Klasse um eine capsule wird die neue Methode zu dieser hinzugef gt Wenn es sich bei dem markiertem Element um ein protocol handelt wird in den mit dem protocol verbundenen capsules und dem protocol die neue Methode erstellt Nachbedingung Fehlschlag Eine aussagekraftige Fehlermeldung wird ausgegeben Eingabedaten Ein ausgew hltes Element und einen Methodennamen 13 5 3 Anwendungsf lle in der Strukturdiagrammansicht Strukturdiagramm bearbeiten Caps
160. ect 214 12 Oktober 2006 Endbericht KAPITEL 17 AUSBLICK 17 17 Performanz bei der Bendpoint Berechnung In BendpointEditPolicy for future work optimize so that handles aren t added con stantly 17 18 Test Wie bereits in vorangehenden Kapitel erw hnt wird konnte Syspect auf Grund des Mo del Redesigns kaum getestet werden Das Testen besteht bisher aus dem Durchf hren der Fallstudie MUA Testrichtlinien nach denen Tests geschrieben werden sollen wurden jedoch bereits vor her festgelegt und sollen hier erl utert werden 17 18 1 Richtlinien f r Tests Diese Richtlinien beziehen sich auf Modultests mit JUnit Weitere Teststufen wie z B Integrationstests oder Systemtests werden bisher nicht behandelt Ebenfalls treten auch keine Richtlininen bez glich GUI Tests auf Allgemeines e Die Ordnerstruktur der Testklassen wird parallel zur eigentlichen Programm struktur angelegt e Die Testklassen sollten relativ parallel zum eigentlichen Quellcode erstellt werden d h sie m ssen nicht vor der Implementierung und auch nicht parallel erzeugt werden Sp testens bei Abschluss eines Entwicklungsabschnitts nach Meinung des entsprechenden Entwicklers sollten vor dem weiteren Vorgehen die n tigen Tests erstellt werden Diese sollten nat rlich funktionsf hig sein bevor weiterge arbeitet wird e Testklassen bzw die Methoden sind entsprechende der Vorgaben der Quellcode Richtlinien zu erstellen und zu kommentieren Des Wei
161. ect core preferenceinitializer und de syspect core syspectexithook Beschreibung siehe Abschnitt 15 3 2 S 158 Zus tzlich erweitert es folgende Eclipse Extension Points org eclipse help toc org eclipse ui actionSets org eclipse ui bindings org eclipse ui commands org eclipse ui popupMenus und org eclipse ui preferencePages siehe Abschnitt 15 2 2 S 154 Das Syspect Persistence Plug in besitzt weitere Abh ngigkeiten zu folgenden Plug ins de syspect model de syspect utils org eclipse core runtime Projektgruppe Syspect 164 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF org eclipse draw2d und org eclipse ui views Die Klasse de syspect persistence PersistenceManager ist die Schnittstelle des Plugins nach au en Sie bietet sowohl Methoden zum Laden als auch zum Speichern eines Projektes Dateiformat Im Folgenden wird beschrieben in welchem Format Projektdaten gespeichert trans portiert und geladen werden k nnen Die Daten werden in einer Datei mit der Endung zsp gespeichert Hierbei handelt es sich um ein Zip Archiv Dadurch ist es f r eine sp tere Erweiterung von Syspect einfach eigene Daten abzuspeichern Es kann einfach eine weitere Datei in das Archiv eingef gt werden In dem Archiv liegt eine Datei die die tats chlichen Daten enth lt Diese Datei hei t view xml In dieser wird ein Projekt als XML gespeichert Hierzu wird der in Java eingebaute XMLEncoder verwendet Dieser erzeugt eine te
162. ehlschlag Eine aussagekraftige Fehlermeldung wird ausgegeben Eingabedaten Die CSP OZ DC XML Datei Anwendungsfall Bilder exportieren Akteure Nutzer Ziel Ein Bild der UML Darstellung generieren Zum Beispiel als EPS Ausl sendes Ereignis Der Nutzer hat entweder in der Symbolleiste oder im Men Exportieren als Bild ausgew hlt Vorbedingung UML Darstellung muss vorhanden sein Nachbedingung Erfolg Die UML Darstellung liegt in einem Bildformat vor Nachbedingung Fehlschlag Eine aussagekr ftige Fehlermeldung wird ausgegeben Eingabedaten Das aktuell im Arbeitsbereich angezeigte Diagramm Projektgruppe Syspect 125 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION Anwendungsfall Drucken Akteure Nutzer Ziel Ausdruck der vorhandenen ausgew hlten Daten Ausl sendes Ereignis Der Nutzer hat entweder in der Symbolleiste oder im Men Drucken ausge w hlt Vorbedingung Es m ssen Daten zum Drucken ausgew hlt sein Nachbedingung Erfolg Es liegt ein Ausdruck der ausgew hlten Daten vor Nachbedingung Fehlschlag Eine aussagekr ftige Fehlermeldung wird ausgegeben Eingabedaten Das aktuell im Arbeitsbereich angezeigte Diagramm Anwendungsfall Speichern in XMI Akteure Nutzer Ziel Datensicherung Ausl sendes Ereignis Der Nutzer hat entweder in der Symbolleiste oder im Men Speichern aus gew hlt Vorbedingung Daten zum Speichern m ssen vorhanden
163. eispiel readme oder log eintragen welche dann nicht mit eingecheckt werden au er man erzwingt dieses Bei Subversion wird das Ganze mit einem Property svn ignore gel st Properties sind Metadaten zu den Daten die man versioniert und werden ebenfalls mit versioniert Im Falle des gnore Properties umgeht man das Fehlen einer svnignore Datei Mit svn propset svn ignore log erreicht man dass f r das aktuelle Verzeichnis alle Dateien die auf log enden nicht mehr comittet werden au er man erzwingt dieses M chte man das Ganze als Datei bearbeiten kann man mit dem Befehl svn propedit das ganze in einem Editor bearbeiten Weitere Properties sind zum Beispiel svn executable svn mime type und svn keywords und noch einige mehr 11 4 GUIs GUIs gibt es als Standalone integriert ins System als Webinterface oder auch als Plug in in einer Entwicklungsumgebung Da der Rahmen dieser Arbeit doch sehr knapp bemessen ist wird dieser Teil nur sehr kurz behandelt Ein Beispiel f r ein integriertes System ist Tortoise Dies ist ein Programm f r Win dows das s mtliche Funktionen die man je nach Installation mit CVS oder Subversion nutzen kann in den Explorer einbaut Mit cervisia gibt es etwas hnliches f r KDE Es gibt noch weitere Programme f r Linux und Windows wie zum Beispiel rapidsvn JSubversion und CvsGui F r die Entwicklungsumgebung Eclipse gibt es f r beide Programme jeweils ein Plug in was jedoch
164. eit Plug ins auszuliefern und diese komfortabel iiber den Update Manager in Eclipse zu installieren Erst dann ist es Eclipse m glich die Plug ins nicht nur auszuf hren sondern auch zu verwalten Ein Feature liefert somit die Steuerung f r die Verteilung und Wartung des Plug in Codes Dabei k nnen Features mehrere Plug ins enthalten auf Plug ins referenzieren sowie auf anderen Features aufbauen vergleiche Abbildung 2 8 Aufgrund dessen kann beispielsweise sichergestellt werden dass Features als eine Gruppe installiert und konfi guriert werden Ein Feature wird durch ein Feature Manifest in Form einer XML Datei Projektgruppe Syspect 24 12 Oktober 2006 Endbericht KAPITEL 2 ECLIPSE PLUGINS UND GEF definiert Sha04 1 lt plugin gt l i U lt plugin gt lt requires gt lt feature gt lt includes gt referenziert l lt plugin gt lt plugin gt lt feature gt Abbildung 2 8 Features Sha04 2 4 Erweiterung durch Plug ins GEF GEF Graphical Editing Framework ist ein Plug in das ein Framework f r die Er stellung von grafischen Editoren liefert GEF wird als Feature ausgeliefert und umfasst viele Plug ins GEF setzt eine Model View Controller Architektur um und ist spezia lisiert auf die Bearbeitung von grafischen Objekten Die View Schicht der Architektur wird vollst ndig durch die Bibliothek Draw2d realisiert Drawd2d ist sowohl von GEF als auch v
165. ekt als ZML eingelesen e SectionManager Der SectionManager dient als Speicherort f r die Verwaltung beim Bearbeiten von Ausdr cken So cached er zum Beispiel beim Parsen h ufig genutzte Objek te und erh ht so die Performanz Er hat noch weitere Funktionen die von den Parsern und Konvertierungen genutzt werden Ein neuer SectionManager mit leerem Cache wird mit Hilfe des Standardkon struktors erzeugt Um den Cache zu erhalten gibt es die Methoden clone sowie reset clone kopiert den gesamten zum Zeitpunkt des Aufrufs vorhandenen Ca che reset leert den Cache gr tenteils und beh lt nur die Teile des Toolkits im Speicher e Markup Gibt an in welchem Format ein Z Ausdruck vorliegt Hierzu werden die statischen Attribute Markup UNICODE Markup LATEX und Markup ZML benutzt 5 5 1 Typecheck Mit Typecheck ist das berpr fen von Z Ausdr cken m glich Eine Object Z Version wird momentan entwickelt Ein Typecheck ist mit Hilfe der Klasse TypeCheckUtils einfach zu realisieren List TypeCheckUtils typecheck Term t SectionInfo si Markup markup Term ist der zu berpr fende Term Als SectionInfo kann ein SectionManager ein gesetzt werden wie zuvor beschrieben Das Markup gibt an in welcher Form man die Fehlerliste erhalten m chte Als R ckgabewert erh lt man eine Liste mit ErrorAnn Objekten die die Zeile die Spalte sowie den Text der aufgetretenen Fehler beinhalten Projektgruppe Syspect 46 12 Oktober 2006 Endbe
166. en Auf die Eclipse Extension Points die diese Plug ins erweitert wurde bereits eingegangen siehe Abschnitt 15 2 2 S 154 org eclipse help toc org eclipse ui actionSets org eclipse ui bindings org eclipse ui commands org eclipse ui editors org eclipse ui popupMenus und org eclipse ui preferencePages Die gemeinsamen Abh ngigkeiten der drei Editor Plug ins sind de syspect navigator de syspect core de syspect editorbundle de syspect utils org eclipse core runtime org eclipse gef org eclipse ui org eclipse ui views und org eclipse ui views porperties tabbed Zus tzlich ist das ClassdiagramEditor Plug in von org eclipse draw2d und de syspect ozdcutil abh ngig und das ComponentdiagramEditor Plug in von de syspect classdiagran 15 3 10 SyspectDiagramConsistencyChecker Plug in Das DiagramConsistencyChecker Plug in stellt Methoden zur Validierung von Benut zereingaben bereit Eine R ckmeldung bei falscher Eingabe bekommt der Benutzer umgehend durch die integrierte ErrorView mitgeteilt Der DiagramConsistencyChecker selbst ist in die drei Klassen ClassDiagramConsistencyChecker ComponentDiagramConsistencyChecker und StatemachineConsistencyChecker aufgeteilt welche die gemeinsame Oberklasse ConsistencyChecker besitzen und Design Pattern Singleton implementieren Schnittstellen Aufgerufen werden die DiagramConsistencyChecker blicherweise in den canExecute Methoden der das Model ndernden Commands Diese Vorgehensweis
167. en Das hei t dass Klassen die ber einen port verbunden sind ber die im dazugeh rigen protocol definierten Operationen synchronisiert werden m ssen Die Vereinigungsmenge aller Operationen der ports zwischen zwei Klassen ist die Synchronisationsmenge der Pro zesse Eine Besonderheit ergibt sich bei den Broadcast Operationen Aufgrund der Spezifikati on von CSP ist es n tig dass alle Prozesse die ber eine solche Operation angesprochen werden auch auf dieser synchronisiert werden m ssen Werden also drei Instanzen ei ner Klasse ber eine Broadcast Operation angesprochen m ssen sie auch auf dieser Projektgruppe Syspect 79 12 Oktober 2006 Endbericht KAPITEL 9 EIN UML PROFIL F R CSP OZ DC synchronisiert werden Alle Operationen die innerhalb des Strukturdiagramms also innerhalb der entspre chenden capsule oder des gesamten Systems genutzt werden m ssen als local_chan definiert werden Nur Operationen die ber einen port nach au en durchgeschleift wer den werden wie bei den Klassendiagrammen in die entsprechende CSP OZ DC Klasse eingetragen FOWOI 9 3 Beispiel Als Beispiel dient eine einfache Bankverwaltung entnommen aus MORW05 Die se besteht aus einer Bank und drei Geldautomaten den ATMs Automatic Teller Machine Auf eine exakte Erl uterung des Beispiels wird aufgrund Platzmangels ver zichtet Weiterhin werden bei der bersetzung des Beispiels die tags die im Diagramm nicht zu erkennen si
168. en die nicht mit der unmittelbaren Bearbeitung eines Diagramms zu tun haben sondern allgemeing ltige wichtige Funk tionen erf llen Projektgruppe Syspect 122 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION lt xml version 1 0 encoding UTF 8 gt lt peaNet xmlns xsi http www w3 org 2001 XMLSchema instance xsi noNamespaceSchemaLocation schemas PEA xsd gt lt pea name pea2 gt lt variables gt lt variable name hund type default_type gt lt variable name hun type default_type gt lt variables gt lt events gt lt event name S0 gt lt events gt lt phases gt lt phase initial true name st gt lt invariant gt lt booleanExpression expression true gt lt invariant gt lt phase gt lt phase initial true name st0 gt lt invariant gt lt formulaTree operator AND gt lt rangeExpression bound 5 operator lessequal variable hund gt lt booleanExpression expression a gt lt formulaTree gt lt invariant gt lt phase gt lt phases gt lt transitions gt lt transition source st0 target st gt lt guard gt lt formulaTree operator AND gt lt formulaTree operator NOT gt lt eventExpression name S0 gt lt formulaTree gt lt rangeExpression bound 5 operator lessequal variable hund gt lt formulaTree gt lt guard gt lt transition gt lt transtions gt lt
169. en durch ein Event das ak tuelle Projekt auf Inkonsistenzen Diese werden in der ProblemView angezeigt und sind in die zwei Problemarten Error und Warning unterteilt Als zus tzliche Besonderheit werden die Elemente welche ein Problem ausgel st haben farbig markiert Projektgruppe Syspect 179 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF Schnittstellen Ein Aufruf der Methode notifyChanged des ProjectChangedNotifiers im Core Plug in wirft das Event PROJECT_CHANGED Dieses f hrt neben dem zu berpr fenden Projekt auch ein Set von Elementen mit sich welche sich seit dem letzten Aufruf ver ndert haben Der ModelConsistencyChecker reagiert mit dem Start der Konsistenz berpr fung Der SyspectModelConsistencyChecker erweitert die Eclipse Extension Points org eclipse ui perspectiveExtensions org eclipse ui startup und org eclipse ui views welche im Abschnitt 15 2 2 S 154 beschrieben werden Weitere Abh ngigkeiten existieren zu den Plug ins de syspect componenttable de syspect core org eclipse core runtime und org eclipse ui views Ablauf der Konsistenz berpr fung Der gesamte Vorgang gliedert sich in drei Teile Als erstes werden Referenzen f r das aktuelle Projekt gesetzt und Container f r den schnellen Zugriff auf Components und Klassen erstellt Dies dient der Vorbereitung f r den zweiten Schritt in welchem die eigentlichen Konsistenzbedingungen berpr ft und betroffene Elemente zwei internen Listen
170. en einer Klasse Ausl sendes Ereignis Der Nutzer hat entweder in der Symbolleiste oder im Men Klasse bearbeiten ausgew hlt Alternativ dazu ist auch ein Doppelklick auf die Klasse m glich Vorbedingung Es muss eine Klasse vorhanden sein Nachbedingung Erfolg Dialog zur Bearbeitung der Klasse erscheint Die nderungen werden nach Best tigung des Dialogs bernommen Nachbedingung Fehlschlag Eine aussagekr ftige Fehlermeldung wird ausgegeben Eingabedaten Daten f r die Klasse Anwendungsfall Methode erstellen Akteure Nutzer Ziel Eine neue Methode erstellen Ausl sendes Ereignis Der Nutzer markiert ein capsule oder ein protocol und w hlt im Kontext men oder in der Symbolleiste Methode erstellen Vorbedingung Mindestens eine capsule oder ein protocol ist vorhanden Nachbedingung Erfolg Handelt es sich bei der ausgew hlten Klasse um eine capsule wird die neue Methode zu dieser hinzugef gt Wenn es sich bei dem markiertem Element um ein protocol handelt wird in den mit dem protocol verbundenen capsules und dem protocol die neue Methode erstellt Nachbedingung Fehlschlag Eine aussagekraftige Fehlermeldung wird ausgegeben Eingabedaten Ein ausgew hltes Element und ein Methodenname Projektgruppe Syspect 128 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION 13 5 2 Anwendungsf lle in der Klassendiagrammansicht Klassendiagramm bearbeiten Nutzer Elemen
171. ene 169 174 XMI 54 109 210 XML 54 109 119 151 209 XML Darstellung 105 111 ZML 44 151 152 Zustand 109 175 Zustandsautomat 175 Zustandsdiagramm 51 52 105 107 109 111 115 175 Projektgruppe Syspect 228 12 Oktober 2006 Endbericht ABBILDUNGSVERZEICHNIS Abbildungsverzeichnis Kl Project EE 1 2 Java Perspektive lt lt 22m le 1 3 Debug Perspektive alas key aw ey ae eg ae ey ae eg 2 1 Struktur von Eclipse Sha04 o 2 283 zes Ate ek ay Rs ak wh ay he 2 2 Screenshots des Update Managers o a 2 3 extension point und extension 2 4 Plugin xml und Implementierung a Jar ar IN Ne ann 2 5 Eine Manifest Datei eines Plug ins und dessen Java Klasse 2 6 Schnittstellen der Resourcen Sha04 2 7 Architektur einer Ansicht Sha04 EE 2 9 Beispiel f r einen grafischen Editor mit GEF 210 GEF Ar hitekt r o AC ar Fe 3 1 Das Model View Controller konzept 3 2 Die Implementierung des MVC Modells in FUJABA Tic05 3 3 Das FUJABA zugrunde liegende Meta Modell Tic05 3 4 Die FUJABA4Eclipse Struktur Mey05a 4 1 Benutzeroberfliche ArgoUML 6 1 Ein Kompositionsstrukturdiagramm am Beispiel einer Wetterstation 6 2 Ein Klassendiagramm am Beispiel einer Tiirsteuerung 6 3 Protokollzustandsdiagramm am Beispiel einer T rsteuerung 6 4 Verhaltenszustandsdiagramm am Beispiel
172. enentwickelung zu vermeiden Das Eclipse Technology Project unterteilt sich in Forschungsprojekte die sich mit Pro grammiersprachen und Entwicklungsumgebungen befassen Brutst tten die im klei nem Rahmen neue Funktionen f r Eclipse entwickeln und Bildungsprojekte die Lern hilfen und Fortbildungsmaterial zur Verf gung stellen 1 2 Projektverwaltung in Eclipse 1 2 1 Arbeitsbereich Der Arbeitsbereich von Eclipse kann unter der Men option File gt Switch Workspace festgelegt werden Grunds tzlich legt Eclipse alle Projekte die im Package Explorer er stellt werden auch in dem ausgew hlten Verzeichnis ab wobei die Verzeichnisstruktur beibehalten wird Im Arbeitsbereich erstellt Eclipse au erdem versteckte Dateien in denen sich Metadaten ber Plug ins ber die Projekte und den Arbeitsbereich insge samt befinden Mit der Men option File gt Import gt Existing Projects into Workspace ist es m glich Projekte aus anderen lokalen Verzeichnissen in den aktuell gew hlten Arbeitsbereich zu importieren 1 2 2 Projekte erzeugen Der Project Wizard Abbildung 1 1 kann in Eclipse abh ngig vom Installationsumfang Projekte erzeugen Wenn zum Beispiel die C Development Tools CDT installiert sind lassen sich neben den Java Projekten auch C C Projekte erzeugen Neben dem Erzeugen von neuen Projekten gibt es auch noch Funktionen die Projekte mit Projektgruppe Syspect 8 12 Oktober 2006 Endbericht KAPITEL 1 ECLIPSE
173. erden k nnen verf gen generell ber eine History Funktion Ebenso bedarf es f r die Diagramme einer Druckansicht und einer Druckfunktion Des Weite ren besteht die M glichkeit die Diagramme in die Formate Portable Network Graphics PNG und Encapsulated Postscript EPS zu exportieren Zur Unterst tzung des Ent wicklungsprozesses gibt es eine Hilfefunktion sowie eine Verbindung von Metadaten zu Diagrammen Eine weitere Unterst tzung wird durch aussagekr ftige Fehlermeldungen gegeben Diese Fehlermeldungen k nnen aufgrund von fehlerhaften Benutzereingaben oder Inkonsistenzen in verschiedenen zusammengeh renden Diagrammen auftreten Projektgruppe Syspect 111 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION 13 2 1 Metadaten 1 Um den Entwicklungsprozess und die Dokumentation zu unterst tzen ist es m g lich sowohl f r die Dokumentation als auch f r den Entwicklungsprozess Informa tionen zu erstellen Die Informationen werden allgemein als Metadaten bezeich net Metadaten enthalten Kommentare Beschreibungen sowie Arbeitsauftr ge Sie k nnen mit anderen Elementen bspw einer Klasse verbunden werden 2 Metadaten k nnen erstellt ver ndert und gel scht werden Die Bearbeitung ist an zwei Stellen m glich a innerhalb der grafischen Darstellung des Teilbereichs bspw einer Klasse b in einem Eingabebereich au erhalb der grafischen Darstellung des Teilbe reichs 13 2 2 Klassendiagramme E
174. ersion 1 5 basierte soll hier eine Anpassung auf die aktuelle Version erfolgen Hierbei wurde darauf geachtet dass sich das neue Profil in gro en Teilen wie das alte benutzen l sst Die nderungen beziehen sich gr tenteils auf die Strukturdiagramme die aus der UML RT bernommen wurden Diese konnten komplett durch die in der UML 2 0 berarbeiteten Komponentendiagramme ersetzt werden welche eine hnliche Bedeu tung besitzen Der Stereotyp capsule ist nun eine Erweiterung des in der UML definier ten Stereotyps component Die capsules kommunizieren ber festgelegte Schnittstellen interfaces miteinander Diese werden entweder von einer capsule ben tigt oder be reitgestellt Die genauen Unterschiede werden nun anhand des Fallbeispiels Bank das schon in Abschnitt 9 S 77 vorgestellt wurde dargestellt Die Abbildungen 14 1 14 2 und 14 3 stellen die Diagramme nach dem alten Profil denen des neuen Profils gegen ber Das Verhalten der Klassen wird weiterhin ber Zustands automaten spezifiziert an deren Notation sich nichts ge ndert hat Die st rksten Ver nderungen der Klassendiagrammnotation betrifft die Anbindung von capsules an Schnittstellen welche im alten Profil durch Klassen mit dem Stereotyp protocol dargestellt wurden Da im Laufe der Umstellung des Profils auf die UML 2 0 festgestellt wurde dass die gew nschte Sematik dieser Klassen mit der Semantik des UML Stereotyps interface bereinstimmt wird nun eine Schnittstelle
175. erspektive ist es im Unterschied zur normalen Java Perspektive eine bersicht ber die gesamte Struktur des Projektes zu schaffen Perspektiven zeigen also immer an den Kontext angepasste Blickwinkel auf ein Projekt Zu Perspektiven geh ren aber nicht nur unterschiedliche Ansichten auf Java Projekte Es gibt auch eine eigene Ansicht f r C C Projekte in der auf die Bed rfnisse von C Entwicklern eingegangen wird in dem ein zus tzliches Make Targets Fenster erscheint und die Shortcuts ver ndert werden So werden die Shortcuts die in der Java Perspektive zum Erstellen von Klassen und Paketen benutzt werden ersetzt durch Shortcuts die C C Klassen und Quelldateien erstellen Projektgruppe Syspect 9 12 Oktober 2006 Endbericht KAPITEL 1 ECLIPSE Java debugclass java Eclipse SDK File Edit Source Refactor Navigate Search 4 E5 0 gt eee les 93 HE Package Explorer 3 _ Hierarchy S D debugclass java bi Object class El anttestam REEL re Brava Si e as e 1 EB test D REI K i automatisch ig D 4 Gauthor random 5 zs JRE System sc rei 4 2_01 ve rvol Istand Igen anttest xml Package Explc public class debugclass String bla blub fer Gparam args K a public static void main Str TODO Auto generated int b 10 for int a 0 a lt 20 b 1 System out printlnib System 2 dass Class 2 err PrintStream System e in InputStream
176. erzustand erzeugen werden selektierte Zust nde von einem Superzustand eingefasst Eine andere M glich keit einen Superzustand zu erschaffen besteht darin Zust nde per Drag and Drop in einen anderen hineinzubewegen Um Parallelit t innerhalb eines Zustandes zu er zeugen muss dieser vorher ausgew hlt werden Die Aktionen Bearbeiten L schen und Kommentar hinzuf gen verlaufen wie in Abschnitt 12 2 1 beschrieben 12 3 Exportfunktionen der Entwicklungsumgebung Die Abbildung 12 2 veranschaulicht die Exportfunktionalit ten des Programms In nerhalb des Dateisystems wird die UML Darstellung nach dem XMI Standard gespei chert wodurch die Weiterverarbeitung durch XMJ unterstiitzende Programme erm g licht wird Wird die Funktion Export nach CSP OZ DC iiber die Meniileiste ausge wahlt so wird aus der internen UML Darstellung die CSP OZ DC Spezifikation er stellt Diese liegt anschlie end in einem XML Format vor Au erdem ist es m glich di rekt ETEX Quellcode oder eine XML Darstellung von Phasen Event Automaten PEA zu generieren Diese Darstellung von PEA kann daraufhin von einem Model Checker auf Korrektheit verifiziert werden Projektgruppe Syspect 109 12 Oktober 2006 Endbericht KAPITEL 12 PRODUKTSKIZZE Interne Darstellung a Export Laden Speichern CSP OZ DC XML XMI PEA XML CSP OZ DC LaTex Abbildung 12 2 Schematische bersicht ber die Exportfunktionen Projektgruppe Syspect 110 12 Oktober
177. es geschieht mit dem Befehl checkout Wie man sieht unterscheidet sich die Syntax in beiden Programmen nur wenig allerdings arbeiten sie unterschiedlich W hrend CVS einfach alle Dateien und Verzeichnisse des angegebenen Projektes aus dem Repository ausliest und die Verzeichnisstruktur im Arbeitsverzeichnis nachbildet Projektgruppe Syspect 94 12 Oktober 2006 Endbericht KAPITEL 11 VERSIONSVERWALTUNG legt Subversion unter svn noch eine Kopie des Projektes an Dies geschieht um zum Beispiel lokale Diffs eine Anzeige der Unterschiede zweier Dateiversionen durchf hren zu k nnen ohne eine Verbindung zum Repository zu haben Durch dieses doppelte lokale Abspeichern ben tigt Subversion etwa doppelt so vielen lokalen Speicherplatz f r ein Projekt wie CVS ben tigen w rde verzichtet daf r aber auf Netzwerkzugriffe bei Diffs 11 2 2 Einchecken e svn commit Optionen Pfad e cvs commit Optionen Pfad Hat man die Dateien ver ndert und m chte dass die nderungen auch den anderen zur Verf gung stehen m ssen diese nderungen auch wieder in das Repository einge checkt werden Dies geschieht mit dem Befehl commit Bei der Ausf hrung dieser Operation unterscheiden sich CVS und Subversion wieder deutlich Subversion benutzt das Konzept der atomaren commits was bedeutet dass es einen commit Vorgang als eine Transaktion sieht und diesen nur durchf hrt wenn alles bertragen werden kann Bricht die bertragung n
178. etzung hervorgegangene Prozesse k nnen wir dann definieren dass die Komponentenvorkommen comp PI durch die neue Komponente PI ersetzt werden substp X PI subst X comp PI PI Damit erhalten wir fiir die aktualisierte Tabelle Vi l n A ZI e r 4 substp r A PT A p A substp p A PI Auch unsere Menge zu instantiierender Komponenten aktualisieren wir entsprechend Inst substp Inst PI Anschlie end wird die Zeile J aus der Tabelle entfernt und die Zeilen neu priorisiert Hierzu kann die aktuelle bersetzte Zeile aus den Basismengen f r die Priorisierung einer jeden brigen Zeile entfernt werden um so effizient die neue Priorit t zu erhalten Projektgruppe Syspect 200 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF Nun wird mit aufsteigender Priorit t mit der bersetzung der n chsten Tabellenzeile fortgefahren Wurde das letze Interface bersetzt m ssen noch Interfaces zur ckbenannt werden und der entstehende Prozess parallel zum Prozess der Statemachine der Komponente erzeugt werden les PX p q p ist Instanz von q und umbenannt main maingy comp a mainsm Na comp comp 15 3 14 SyspectPEAExport Plug in Der PEA Export exportiert aufbauend auf dem CSP OZ DC Export unsere UML Spezifikation zu Phasen Event Automaten Mithilfe der PEA Tools kann er dar ber hinaus diese auch zu PEA XML exportieren Das Plugin besteht prim r aus 3 Convertern jeweils einem f r jede Sp
179. ezifikationskomponente Die Klasse pea modelchecking PEAJ2XMLConverter aus den PEA Tools wird benutzt um die XML Darstellung der Phasen Event Automaten zu erstellen Bislang ist es nicht m g lich den CSP Rename Operator zu bersetzen Daher k nnen Spezifikation die u a aus Komponentendiagrammen erstellt wurden nicht in PEA bersetzt werden Schnittstellen Dieses Plug in erweitert ebenfalls nur die Extension Points org eclipse ui actionSets und org eclipse ui popupMenus sowie org eclipse help toc siehe Abschnitt 15 2 2 S 154 Weitere Abh ngigkeiten bestehen zu folgenden Plug ins de syspect core de syspect export cspozdc de syspect ozdcutil de syspect persistence de syspect utils org eclipse core runtime org eclipse ui views und PEA Tool 15 3 15 SyspectImageExport Plug in Der ImageExport nutzt den EditPartFactory Extension Point des core s um die ver schiedenen Diagramme in die Formate BMP EPS JPEG und PDF zu exportieren Der Export geschieht ber Frameworkfunktionen von SWT Wir benutzen hierbei die Editpart Factories der Editoren um die Diagramme in die Bilder zu zeichnen F r den EPS Export im speziellen benutzen wir dar ber hinaus Funktionen von GMF Im Moment sind wir hierbei auf eine ltere Version von GMF angewiesen da bei der aktuellen die verwendeten Funktionen nicht mehr sichtbar sind Projektgruppe Syspect 201 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF Schnittstellen
180. fgebaut und struk turiert sind e M3 Ebene Meta Meta Modelle bzw MOF Ebene abstrakte Ebene die zur De finition der M2 Ebene herangezogen wird Projektgruppe Syspect 49 12 Oktober 2006 Endbericht KAPITEL 6 EINF HRUNG IN UML UND XMI 6 1 2 bersicht ber die einzelnen Diagrammtypen Strukturdiagramme Klassendiagramm engl class diagram Ein Klassendiagramm beschreibt soge nannte Klassen bzw Objekt Klassen also programmierte Vorbilder f r zur Lauf zeit aktive Software Einheiten die Objekte Eine Klasse wird als Rechteck dargestellt und sie wird beschrieben durch Anga ben ber ihren Zustand und m gliche auf ihr durchf hrbaren Operationen Den Zusammenhang zwischen mehreren Klassen kann man durch die Angabe von Re lationen zwischen ihnen darstellen welche durch verschiedene Pfeile und Linien ausgedr ckt werden Objektdiagramm engl object diagram Objekte sind konkrete Instanzen und Objektdiagramme stellen somit Objekte und Relationen zwischen Objekten dar Komponentendiagramm engl component diagram Komponentendiagram me stellen Software Komponenten und deren Schnittstellen dar Software Komponenten stellen in sich geschlossene Module auf einer h heren Abstraktions ebende als Klassen und Objekte dar Fine wesentliche Anforderung an Kompo nenten ist eine m glichst geringere Kopplung nach au en zu anderen Bausteinen des Systems und eine m glichst hohe Koh sion in ihrem Inneren Kompositions
181. fwendigen Logik die m glichst wenig Events nur an die Ele mente feuert die diese auch ben tigen und einer simplen Logik die aber so viele Events feuert dass die Performanz des Gesamtsystems ber Geb hr in Mitlei denschaft gezogen wird Kontext Hilfreiche Superinterfaces In Abbildung 15 12 sind einige verwendete Superinterfaces und ihre Vererbungs zusammenh nge skizziert Ihre Namen sind zum gro en Teil selbsterkl rend und funktionieren nach folgendem Prinzip Alle Klassen die INamedElement implemen tieren k nnen benannt werden alle Klassen die ICommented implementieren k nnen mit einem Kommentar versehen werden usw Eine Ausnahme bildet IPotentiallyProblematicElement denn in der gegenw rtigen Implementierung gibt es nur eine Klasse ProblemSupport die dieses Interface implementiert Diese ist per Komposition in alle betreffenden Klassen eingebunden Es sei aber darauf hingewiesen dass es m glich w re bei einer anderen Modelimple mentierung dies ebenfalls durch Vererbung zu l sen lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt IDeletable INamedElement ICommented IPotentiallyProblematicElement A A AA H L ProblemSupport lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt IView IViewable IModelElement lt lt interface gt gt ICSPOZDCExportable lt lt interface gt gt IPEAExporta
182. g ist in Kan le des Typs chan umgewandelt Da weiterhin eine Unterscheidung zwischen eins zu eins und viele zu viele Kommunikation n tig ist wurden die Stereotypen simple und broadcast hinzugef gt Um eine UML 2 0 konforme Modellierung der Instanziierung des zu spezifizierenden Systems zu erhalten wurden die Strukturdiagramme aus der UML RT durch Kom pontendiagramme ersetzt Abbildung 14 3 Diese wurden mit der Version 2 0 in die UML mit aufgenommen Die nderungen gegen ber der UML RT sind nicht gravie rend sondern beziehen sich weitestgehend auf die Notationselemente und nicht deren Projektgruppe Syspect 144 12 Oktober 2006 Endbericht KAPITEL 14 MODIFIZIERUNG DER ANFORDERUNGEN System component System d BankService delegate component 3 o component HO lt Use Bank ATM 2 gt 0 Feedback ATMCtrl mo delegate Bank ne ee k component ML_ATM gd u delegate Ho O Lang Abbildung 14 3 Strukturdiagramm Komponentendiagramm des Systems nach dem al ten neuen UML Profil Bedeutung So werden nun Verbindungen ber eine Schnittstelle nicht mehr anhand der Farbe des Ports sondern ber weitere Notationselemente der UML dargestellt Diese Elemente sind das implemented interface welches mittels eines Kreises der mit einer Li
183. g geeignet 10 3 1 JUnit Framework Zum Testen von Software werden eigene Testklassen erstellt Diese sind von der ab strakten Klasse TestCase aus dem Package junit framework abgeleitet Die Klasse TestCase erweitert wiederum die Klasse Assert In diesem Abschnitt werden die Bestandteile von JUnit n her vorgestellt die zur Ent wicklung von Komponententests ben tigt werden Assert Mit der Klasse Assert des Testframeworks stehen dem Entwickler Methoden zur Ver f gung um Werte oder Bedingungen zu testen Der Zugriff auf diese Methoden erfolgt Projektgruppe Syspect 84 12 Oktober 2006 Endbericht KAPITEL 10 SOFTWARE TESTEN junit framework Abbildung 10 1 Klassenstruktur unter JUnit ber Vererbung s o Die folgende Aufz hlung zeigt einen berblick ber die wichtigen Methoden e assertTrue boolean condition Diese Methode verifiziert ob eine Bedingung erf llt wurde e assertEquals Object ol Object 02 Diese Methode verifiziert ob zwei Objekte gleich sind Die Uberpriifung geschieht mittels der equals Methode Diese Methode ist auch fiir primitive Datentypen wie z B int double oder boolean definiert e assertNull Object o Diese Methode verifiziert ob die Objektreferenz null ist e assertNotNull Object o Diese Methode verifiziert ob die Objektreferenz nicht null ist e assertSame Object o1 Object 02 Diese Methode verifiziert ob die beiden Referenzen auf den gleichen Speicherbe reich
184. g der Statemachines F r die bersetzung der Statemachines wird eine Ubersetzungsabbildung y ben tigt Hierf r werden erst einige Definitionen getroffen Mit M wird im Folgenden eine State machine mit s einer ihrer Zust nde bezeichnet Die Menge aller CSP Prozesse wird als CSP definiert C ist die Menge aller direkten Nachfolger von s ohne Triggerevent und 7 ist die Menge aller Paare e t der direkten Nachfolger t von s mit Triggerevent e Weiterhin bezeichnet Zu die Menge der Initalzust nde einer Untermaschine M von SM Mittels dieser Definitionen wird nun die Abbildung y SM CSP definiert P SKIP wenn s Endzustand ist Po LJ et e P wenn s einfacher Zustand ist und C P qe P wenn s einfacher Zustand ist und C 4 9 p oder wenn s Initialzustand ist P 2 Pu ifC 4 then qa P else STOP wenn s zusammengesetzter Zustand ist mit Untermaschinen M 1 lt 7 lt n y M Pu 1 P fiir jede Untermaschine M von SM teTy Diese Abbildung wird auf die gesamte Statemachine und alle ihre Untermaschinen angesetzt und das Ergebnis als CSP Spezifikation in die zur Statemachine geh rige Klasse eingetragen RWO03 9 2 5 bersetzung der Strukturdiagramme Bei der bersetzung der Strukturdiagramme wird zun chst f r jede Instanz einer cap sule ein Prozess parallel erzeugt Damit die Kommunikation ber die ports m glich ist m ssen die Prozesse auf den m glichen Operationen synchronisiert lauf
185. g ins von Syspect vor Die Funktionalit t je des Syspect Plug ins wird erkl rt und die Schnittstellen zwischen ihnen werden genau er erl utert Gibt es besondere Konzepte die bei der Implementierung der einzelnen Komponenten umgesetzt wurden werden diese zugeh rig zu den Plug ins in denen sie umgesetzt wurden erl utert Im letzten Abschnitt dieses Kapitels wird auf die Quellcode Richtlinien eingegangen die vor der Implementierungsphase festgelegt wurden um die Lesbarkeit und Einheit lichkeit des Quellcodes zu erh hen 15 3 1 Gliederung der Plug ins Das Stammpaket jedes Plug ins tr gt die Bezeichnung desselben mit vorangestelltem de syspect Beispielsweise tr gt das Stammpaket des Plug ins Persistence den Namen de syspect persistence Plug ins mit Model View Controller Anteil liegt eine einheitliche Paketstruktur zugrunde Das Stammpaket selbst ist klar nach dem MVC Pattern strukturiert und enth lt wenn erforderlich die Pakete model view und controller Einzelne Klassen k nnen auch direkt in diesem Paket liegen Ein einzelnes Paket sollte nicht mehr als 30 Klassen beinhalten Bei gr eren Plug ins kann daher das Stammpaket weitere Unterpakete enthalten Diese unterteilen sich dann erneut in die Pakete model view und controller Plug ins welche die oben erw hnte Struktur nicht besitzen sind logisch nach ih rem Inhalt strukturiert Dies sind unter anderem die Plug ins SyspectModel und SyspectCSPOZDCExport In allen Plug
186. geViewer bezeichnet Der Mail User Agent kontrolliert die Kommunikation mit dem Nutzer w hrend die beiden Viewer die Anh nge der E Mails darstellen k nnen Da sich das UML Profil f r CSP OZ DC im Laufe des Projekts ge ndert hat wie in Abschnitt 14 2 S 143 beschrieben musste auch die Modellierung in Syspect angepasst werden Die Unterschiede und Besonderheiten die beachtet werden m ssen werden anhand des Zustandsautomaten des Mail User Agent dem Klassendiagramm in dem die Schnittstellen des Mail User Agent definiert werden und dem Komponentendia gramm das das System spezifiziert dargestellt Projektgruppe Syspect 208 12 Oktober 2006 Endbericht KAPITEL 17 AUSBLICK Kapitel 17 Ausblick In diesem abschlie enden Kapitel sollen Features und Konzepte vorgestellt werden die im Laufe unseres Projektes zwar diskutiert wurden aber nicht in die endg ltige Version unserer Software aufgenommen wurden Wenn es daf r andere Gr nde gab als die Knappheit der zur Verf gung stehenden Zeit so sind diese angegeben Ebenso werden konkrete Sch sselstellen im Quellcode genannt falls solche f r ein Feature gibt 17 1 EMF Die Idee des Eclipse Modeling Framework ist dass sich ein Datenmodell ob es nun in Java XML oder UML notiert ist auf gemeinsame Konzepte zur ckf hren l t Das theoretische Model ist das MOF von der OMG siehe Kapitel 6 S 49 bzw MOF06 Existiert eine Darstellung eines Datenmodells in Form von Java In
187. generell m glich um eine neue Diagrammart zu implementieren es besteht jedoch Grund zu der Annahme dass z B der Export in das Datenformat XMI nicht mehr anwendbar ist da f r verschiedene Diagrammarten dann gleiche Elemente benutzt w rden und eine Interpretierung nicht mehr m glich w re Eingabe von Daten der Spezifikationsprache Z Die Eingabe von Daten der Spezifikationssprache Z w rde die visuellen Elemente das Verhalten und die Eigen schaftsfenster eines Diagramms betreffen Diese m ssten um die entsprechende Funk tionalit t erweitert werden Eingabe der Zeitaspekte durch Formeln des Duration Calculus Hier ist dieselbe Erweiterung erforderlich die im vorhergehenden Absatz beschrieben wurde Speicherung der UML Modelle im Standardaustauschformat XMI Die Grundfunktionalit t zur Speicherung im Austauschformat XMI ist in ArgoUML be reits integriert Zu kl ren ist inwieweit eine Erweiterung Einfluss auf die Speicherung nehmen w rde Gegebenenfalls m sste dann die Implementierung der XMI Funktionen in ArgoUML angepasst werden Export als KTEX Quellcode Der Export in PTEX Quellcode k nnte durch einen in der Men leiste hinzugef gten Men eintrag geschehen Wie eine Konvertierung in die Zielsprache erfolgen k nnte bleibt zun chst ungekl rt Export in Phasen Event Automaten Hier ist dieselbe Erweiterung wie auch bei der Eingabe von Daten der Spezifikationsprache Z vorzusehen 4 5 Fazit Im Rahmen der Projektgruppe S
188. he die Interaktion mit dieser und ihre Erweiterung ben tigt Das Plug in org eclipse core runtime ist das Fundament der Plattform Projektgruppe Syspect 159 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF Dieses Plug in wird zum Starten und Laufen eines Programms sowie f r die Verwal tung der Plug ins ben tigt Damit sich Syspect Core als Anwendungs Plug in gegen ber der Eclipse Plattform registrieren kann muss es den Extension Point org eclipse core runtime applications erweitern Dies ist der zentrale Punkt der es dem Core Plug in erm glicht die RCP Anwendung zu konfigurieren Syspect Core erweitert noch zwei weitere Extension Points des Runtime Plug ins Die Erweiterung von org eclipse core runtime products erm glicht es aus der Anwendung ein Produkt zu machen Dieses beinhaltet die Anwendung inklusive aller Plug ins von denen es abh ngt Zus tzlich k nnen Icons Namen und About Infos f r das Produkt hinterlegt werden Das Produkt Syspect kann auf Grund dieser Erweiterung au erhalb von Eclipse gestartet werden Syspect Core erweitert den Extension Point org eclipse core runtime preferences um Default Werte f r die Preferences festzulegen Das Einstellen dieser kann dann ber Preference Pages erfolgen Diese k nnen hinzugef gt werden indem org eclipse ui preferencePages erweitert wird UndoManager Der UndoManager verwaltet s mtliche Aktionen des Benutzers die r ckg ngig zu ma chen bzw wiederherstell
189. hehen Eine Zeile in der Tabelle beschreibt jeweils eine Verbindung von Komponenten durch einen AssemblyConnector A F r die Informationen in den Spalten definieren wird die folgenden Abk rzungen int A das Interface zum AssemblyConnector A r A alle ben tigenden Komponenten am AssemblyConnector A p A alle bereitstellenden Komponenten am AssemblyConnector A comp A r A Up A Im Folgenden bezeichne A i 1 n die so erstellte Tabelle Projektgruppe Syspect 196 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF Zusammenfassen Nun werden paarweise alle Zeilen der Tabelle verglichen und so fern die Interfaces identisch sind sowie die Eintr ge in der Requirespalte oder die Ein tr ge in der Providespalte so wird eine der Zeilen gel scht Dieses Verfahren wird in zwei Durchl ufen durchgef hrt Zun chst werden von jeweils zwei Zeilen A A mit i j E 1 n Ai j A Ai Aj Deleted mit identischem Interface int A int A die Requirespalte verglichen Sind sie identische r A r A so handelt es sich um eine gemeinsame Verbindung In dem Fall werden die Komponenten der Providespalte vereinigt Eine der beiden Spalten wird gel scht Deleted DeletedU A und die jeweils andere erh lt die neue Provides Information p A p A U p A Im zweiten Durchlauf tauschen Requires und Providespalte die Rollen D h bei glei chem Interface int A int A werden die Providespalten verglei
190. hen Ports des gleichen Typs bestehen conjugated conjugated bzw base base 3 Eine Verbindung kann hinzugef gt bearbeitet oder gel scht werden 13 3 Nichtfunktionale Anforderungen 13 3 1 Performance In diesem Abschnitt spezifizieren wir Anforderungen an das zeitliche Verhalten des Werkzeugs Die zeitlichen Angaben beziehen sich auf einen Athlon XP 1700 512MB RAM SuSE Linux Java 5 0 Das Werkzeug Syspect soll so entwickelt werden dass die angegebenen Zeiten mit den Java Event Handlern eingehalten werden Das Laden von Dateien sollte innerhalb von maximal 3 Sekunden geschehen Das Si chern einer durchschnittlichen Spezifikation von Gr e der in Fab05 beschriebenen Fallstudie sollte nicht mehr als 3 Sekunden beanspruchen Falls es m glich ist w h rend des Vorgangs weiterzuarbeiten ohne Inkonsistenzen hervorzurufen kann diese Zeit berschritten werden Die angestrebte Umwandlung von UML in CSP OZ DC XML und weiter in MTX sollte auch nicht mehr als 10 Sekunden beanspruchen Die Re aktion der GUI dagegen sollte m glichst zeitnah zur Eingabe der Benutzers erfolgen Das bedeutet dass zwischen Nutzeraktion und Reaktion des Programms nicht mehr als 5 ms vergehen sollten Die Diagrammaktualisierung bzw die Syntax und Semantik berpr fung sollte nach jeder abgeschlossenen Eingabe also z B nach jedem Druck auf die Eingabetaste erfolgen um Fehler direkt sichtbar zu machen F r Texteingaben gilt dass jedes Zeichen eingeblendet
191. hinzugef gt werden Neben dem Element werden den Listen noch eine genaue Fehlerbeschreibung und der Typ des Problems Error oder Warning mitgeliefert Eine der Listen dient dazu die ProblemView zu aktualisieren S mtliche Elemente in der an deren Liste werden entsprechend des Problemtyps mit Hilfe der Methode addProblem als problematisch markiert und in vorkommenden Diagrammen eingef rbt Diese Syn chronisation mit der Anwendungsoberfl che ist als dritter Teil zu verstehen 15 3 8 SyspectDiagramEditorBundle Plug in Dieses Plug in ist daf r zust ndig gemeinsam genutzte Funktionalit t der Diagram meditoren zu verwalten Abbildung 15 24 macht an einem Beispiel deutlich wie das SyspectDiagramEditorBundle im Kontext von Syspect eingebettet ist Es wer den drei Commands betrachtet die f r die Erstellung jeweils eines Elements Method Association Interface im Klassendiagrammeditor zust ndig sind Die Klasse Command und das dazugeh rige Prinzip wird von GEF bereitgestellt Das im core Paket definierte SyspectCommand leitet sich davon ab und erweitert das GEF Konzept um ein Syspect spezifisches Konzept Das SyspectDiagramEditorBundle stellt nun die Klassen CreateConnectionCommand und CreateCommandWithConstraints bereit die von allen Diagrammeditoren benutzt werden k nnen Das Plug in das f r den Klassendiagrameditor zust ndig ist kann nun auf dieser Hierarchie aufbauen hier muss nur der Code implementiert werden Projektgru
192. hle in ein Target zu schreiben dennoch ist die Trennung solcher Befehle in verschiedene Targets oft geschickter In dem Fall dass das Verzeichnis nicht erzeugt werden kann w rde auch der Kom piliervorgang gar nicht erst starten Ebenso w rde eine Fehlermeldung des Compilers dazu f hren dass das letzte Target also das Erzeugen der Dokumentation nicht mehr gestartet wird Ob das in diesem Fall sinnvoll ist ist nicht unbedingt sicher Es liegt aber auf der Hand dass sich auf diese Weise klare logische Abh ngigkeiten definieren lassen wodurch sich gerade bei gr eren Projekten Fehler vermeiden lassen Projektgruppe Syspect 14 12 Oktober 2006 Endbericht KAPITEL 1 ECLIPSE 1 4 4 ANT in Eclipse Alle XML Dateien k nnen in Eclipse auch mit dem ANT Editor ge ffnet werden Uber die External Tools lassen sich ANT Build Dateien ausf hren und es l sst sich vor allem genau festlegen welche Targets ausgef hrt werden sollen Projektgruppe Syspect 15 12 Oktober 2006 Endbericht KAPITEL 1 ECLIPSE Projektgruppe Syspect 16 12 Oktober 2006 Endbericht KAPITEL 2 ECLIPSE PLUGINS UND GEF Kapitel 2 Eclipse Plugins und GEF Christian G nther 2 1 Einleitung Im Rahmen der Projektgruppe Syspect entstand an der Universit t Oldenburg diese Ausarbeitung die die Entwicklung von Plug ins f r Eclipse 3 1 sowie die Benutzung des Plug ins GEF beinhaltet Ziel der Projektgruppe ist der Entwurf und die Imple mentieru
193. ht KAPITEL 2 ECLIPSE PLUGINS UND GEF Help 3 welcome amp Sites to include in search Help Contents uti P1SlEclipse org update site New Remote Site Search utl New Local Site Dynamic Help labi AR New Archived Site Key Assist Ctrl Shift L Tips and Tricks Cheat Sheets Software Updates gt Find and Install About Eclipse SDK 3 Manage Configuration ee BX Search Results Java EMF Model 1 1 0 requires feature Java EMF a Model 2 1 0 or compatible Select the features to install E 4 Eclipse org update site Deselect All 3 on EMF SDK 2 1 0 Je ees _J w FTP and WebDAV 3 0 0 Ela EM u UML2 SDK 1 1 0 Select Required ee Jon VE O se Ju WTP 0 7 1 H Abbildung 2 2 Screenshots des Update Managers feature Verzeichnis befinden Das Verzeichnis configuration enth lt eclipse spezifische Einstellungen w hrend das Verzeichnis readme weiterf hrende Informationen zu Eclip se bereitstellt 2 2 Entwicklung eines Plug ins Da Eclipse in Java geschrieben ist wird auch f r Plug ins diese Programmierspra che verwendet Eclipse stellt durch das Java Development Plugin JDT einen sehr guten Java Editor zur Verf gung Aus diesem Grund bietet sich die Entwicklung von Plug ins mit Eclipse an Das JDT bietet allerdings keine Unterst tzung f r den Plug in Mechanismus Deswegen geh rt standar
194. i w chentlich Auf diesen Sitzungen wer den Ergebnisse der Arbeit zusammengetragen sowie die weitere Arbeit geplant Die Vorgehensweise wird gemeinsam von den Studenten und Betreuern geplant Eine Pro jektgruppe wird von einem oder mehreren Betreuern begleitet Abgeschlossen wird die Projektgruppe mit dem Vorstellen der Ergebnisse auf dem Projektgruppentag des Fachbereichs Informatik Ziel der Projektgruppe Ziel der einj hrigen Arbeit der Projektgruppe war der Entwurf und die Implementie rung einer grafischen Entwicklungsumgebung f r eine formale UML Teilsprache Es wurde ein UML Werkzeug entwickelt das die Modellierung entsprechend des UML Profils f r CSP OZ DC unterst tzt Die formale Methode CSP OZ DC kombiniert die Projektgruppe Syspect 1 12 Oktober 2006 Endbericht INHALTSVERZEICHNIS Prozessalgebra CSP Hoa04 f r die Spezifikation von Kommunikationsverhalten die Methode Object Z Smi00 zur Beschreibung von Daten und Operationen und den Du ration Calculus ZHR91 zur Beschreibung von zeitlichen Anforderungen Mit diesem Werkzeug k nnen Komponenten Klassen und Zustandsdiagramme gezeichnet wer den F r die Formalisierung der Daten ist die visuelle Eingabe der Spezifikationsspra che Z m glich Ebenso wird die Eingabe der Zeitaspekte durch Formeln des Duration Calculus DC unterst tzt Das Werkzeug bietet eine Speicherung der Modelle in einem eigenen Datenformat Neben einem Grafik und einem KTEX Export kann die
195. ichert welche Attribute und Metho den bzw welche bereitgestellten und ben tigten Interfaces in der jeweiligen Ansicht gezeigt werden sollen Schlie lich geht es in der View Ebene nur um die rein grafischen Elemente Das hei t dass dem Beispiel folgend sowohl f r jedes IVClass Objekt als auch f r jedes IComponent Objekt ein IConstrainedNode Objekt existiert dass speichert wo es wie gro in einem Diagramm auftaucht e Das Event System von Syspect Allgemein besteht der Sinn von Events darin dass Ver nderungen die an einer Stelle im Programm stattfinden an alle anderen Projektgruppe Syspect 169 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF Teile die Informationen ber diese Ver nderung ben tigen weitergeleitet werden Beispielsweise ndert ein Benutzer im Klassendiagrameditor den Namen einer Methode Dazu wird auf der Modelebene betrachtet die Methode setName in der Klasse CommentedNamedElement aufgerufen die nach nderung des Names den Event NAME_CHANGED feuert M chte eine Klasse ber Events in einer Modelklasse informiert werden kann sie sich ber die Methode addPropertyChangeListener als Listener f r dieses Modelelement eintragen Au erdem werden Events an den jeweiligen Parent einer Klasse weitergereicht Ein aufgetretener Event propagiert sich durch den ganzen Baum der Parent Child Hierarchie bis nach oben zum project manager hin durch Im Beispiel der Namens nderung w rde das
196. iden Editoren erleichtert Auf die Eingabe wird ebenfalls eine Typpr fung ausgef hrt die Typverletzungen aufzeigt 2 Die Eingabe von Countertraces und Testformeln wird durch einen DC Formeleditor erleichtert 3 Der Editor unterst tzt eine ETEX Eingabe f r Object Z und DC Ausdr cke Optional ist eine Code Completion f r diese Eingabe vorgesehen 4 Zur besseren Lesbarkeit des eingegebenen Codes gibt es eine quivalente Unicode Darstellung zu diesem Code Die Unicode Darstellung zeigt somit bestimmte Ein gabezeichen und ETRX Eingaben die nicht direkt ber die Tastatur eingegeben werden k nnen in ihrem Unicode Zeichen wie bspw gt Die Unicode Darstellung wird jederzeit mit der Eingabe synchronisiert Projektgruppe Syspect 114 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION 13 2 3 Zustandsdiagramme Zu jeder vorhandenen capsule soll ein Zustandsdiagramm UMLO5 erstellt werden k nnen Sie werden genutzt um das Verhalten einer capsule zu modellieren Neben dem Anlegen ndern und L schen von Zustandsdiagrammen ist eine Eingabe von Kommentaren vorgesehen Kommentare sind f r die Semantik irrelevant sie sollen lediglich den Entwickler bei seiner Arbeit unterst tzen Us Zustand Y I I Y O channel method method Zustand X A nn Abbildung 13 1 Elemente von Zustandsdiagrammen Allgemeine Eigenschaften 1 Da jedes Zustandsdiagramm das Verhalten einer Klasse des
197. ie CSP Prozesse Unterschiedliche Prozesse k nnen Trace quivalent sein und w ren so in der Trace Semantik nicht zu unterscheiden Der Unterschied zwischen der deterministischen und der nichtdeterministischen Auswahl ist in der Trace Semantik nicht erkennbar Die FD Semantik gibt zu jedem Prozess ein Paar aus der Menge aller Fehler und der Menge aller Divergenzpunkte an FD P F P D P Ein Fehler ist ein Paar aus einer Trace und der Menge der abgelehnten Aktionen Beispiel F a STOP O c gt b gt STOP c lt gt lt gt a lt a gt 2 lt a gt a lt a gt b lt a gt a b lt b gt lt b gt a lt b gt b lt b gt a b Ein Divergenzpunkt ist eine Trace nach der eine unendliche Folge von 7 Transitionen m glich ist Genauer soll hier jedoch auf die CSP Semantiken nicht eingegangen werden 7 3 Die Spezifikationssprache Z Die Spezifikationssprache Z spezifiziert Daten Sequentielle Systeme werden ber Zustandsr ume und Zustandstransitionen beschrieben In Z werden mathematische Ausdr cke verwendet Hierzu z hlen e Mengenausdr cke der Form Deklaration Praedikat e Ausdruck e Axiomatische Ausdr cke Projektgruppe Syspect 63 12 Oktober 2006 Endbericht KAPITEL 7 CSP OZ KOMBINATION ZWEIER METHODEN e Relationale Ausdr cke und Funktionen e Aussagenlogische und pr dikatenlogische Ausdr cke 7 3 1 Z Schema
198. ie jedem Term gegeben eine Belegung der Variablen V und ein Zeitinterval b e eine reelle Zahl zuordnet Zelt b el Vie TAV b e e t TIJ PIO b e ff Fair zing Al 8 e f ll Z 8 10 el Projektgruppe Syspect 70 12 Oktober 2006 Endbericht KAPITEL 8 CSP OZ DC UND PEA Formeln Formeln wird ber eine Funktion Z gegeben eine Belegung der Variablen H und einem Zeitintervall b e einen boolschen Wert zugeordnet T p 0 mes dru b e Rz DUT IA b e a T 9 Y b e T F Y ld e tt gdw ZIFIV b el ff TFL A Fa Im aye tt gdw T Fi Y b e tt und TF V b cl H Z vx FJO b e tt gdw f r alle d Rgilt TIF V a d b e tt lb Fo V b e tt gdw es ein m b e gibt so dass TAJO b m tt und TL Fo V Im cl tt Abkiirzungen Um Formeln k rzer und damit einfacher zu lesen aufschreiben zu k nnen Punktintervall 0 berall 7 2 gt 0Afa Irgendwann OF true F true Immer OF 9 F 8 2 3 Beispiele Im Folgenden werden einige Beispiele angef hrt um die Semantik des Duration Calcu lus verst ndlich zu machen Die Beispiele orientieren sich hierbei an den Operatoren die nicht bereits aus der Pr dikatenlogik erster Ordnung bekannt sind Die beiden neuen Operatoren sind f und Der Operator f wird verwendet um Be reiche in denen ein Term erf llt ist aufzusummieren und der Ope
199. ie CVS ganz klar genie t ist die Erprobtheit Ein Programm dass seid ber 20 Jahren benutzt wird hat einfach weniger Fehler Dazu kommt dass es keine Datenbank oder etwas Vergleichbares braucht und weniger Plattenplatz auf Cli entseite ben tigt Subversion dagegen ist zwar j nger und noch nicht so ausgereift hat aber das Potential weiterentwickelt zu werden welches CVS einfach fehlt Durch die Neuprogrammierung anstatt des Aufsetzens auf RCS ist es besser erweiterbar Durch die doppelte lokale Kopie die zugegebenerma en mehr Speicherplatz belegt ist es m glich ohne st ndi gen Internetzugang gut zu arbeiten Die atomaren Commits bergen zwar ein paar Probleme sind aber insgesamt gesehen vorteilhaft da sie Inkonsistenzen vermeiden Projektgruppe Syspect 98 12 Oktober 2006 Endbericht KAPITEL 11 VERSIONSVERWALTUNG Desweiteren ist das Umgehen mit Bin rdateien weitaus komfortabler Durch die Ope rationen wie Kopieren Verschieben usw ist das Ganze leichter wartbar Projektgruppe Syspect 99 12 Oktober 2006 Endbericht KAPITEL 11 VERSIONSVERWALTUNG Projektgruppe Syspect 100 12 Oktober 2006 Teil II Entwurfsdokumente 101 Endbericht Dieser Teil des Endberichts enthalt die Entwurfsdokumente von Syspect Die Produktskizze und die Anforderungsdefinition sind zwei Dokumente die die funktionalen und nichtfunktionalen Anforderungen an das Produkt enthalten ohne L sungsvorschl ge f r die
200. ieben werden k nnen Desweiteren soll es optional m glich sein Notizzettel direkt in Diagramme zu zeichnen und mit einer gestrichelten Linie mit anderen Diagrammelementen zu verbinden Projektgruppe Syspect 146 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF Kapitel 15 Entwurf 15 1 Einleitung Dieses Kapitel beschreibt den Entwurf von Syspect also die Modellierung eines Software Produkts zur Umsetzung der Anforderungsdefinition blicherweise werden dabei zwei Ebenen unterschiedlichen Abstraktionsgrades unterschieden Die Architek tur bzw der Grobentwurf beschreibt die wesentlichen Komponenten der Software sowie die Kommunikation dieser Komponenten ber Schnittstellen Hierauf baut dann der Feinentwurf auf der m glichst pr zise die einzelnen Komponenten modelliert und somit als Implementierungsgrundlage f r die Entwickler dienen kann W hrend in der Architektur wichtige Entwurfsentscheidungen erl utert werden wird im Feinentwurf aufgezeigt wie ihre positiven Konsequenzen genutzt und die vereinzelt auch auftretenden negativen Konsequenzen abgefangen werden k nnen Da wir uns entschieden haben auf der Eclipse Plattform aufzubauen bernehmen wir die hier vorliegende Architektur und das daf r wesentliche Plug in Konzept Die Eclipse Plattform selbst verwendete Plug ins so wie eigene als Plug ins entwickelte Komponenten werden in Abschnitt 15 2 beschrieben und ihr Zusammenwirken im Ge samtsystem Syspect grob e
201. ieses CVS Feature der Aliase zu sch tzen wissen eher unbefriedigend 11 5 3 Zugriffskontrolle In der Grundversion ist es bei beiden Programmen erst einmal nur m glich globale Rechte zu verteilen Das hei t jemand hat entweder gar keine Rechte nur Leserechte oder Lese und Schreibrechte f r ein Repository Mit ausgekl gelten Mechanismen ist zumindest unter Subversion eine feinere Rechte vergabe m glich da dies aber nicht zum Standard geh rt wird hier nicht n her darauf eingegangen 11 5 4 Systemvorraussetzungen Verzichtet man bei CVS auf die Webansicht ist f r die Benutzung nichts weiter n tig als das Programm selbst wobei der Client beliebig ist Man ben tigt also nur ein wenig Speicherplatz M chte man zum Beispiel die Webansicht von CVSview nutzen ben tigt man auf Serverseite einen Apache Subversion ist etwas anspruchsvoller Diese Versionsverwaltung ben tigt wie schon erw hnt mehr Festplattenplatz und dazu noch auf Serverseite eine BerkeleyDB oder ein FSFS welches nicht direkt eine Datenbank ist aber die gleiche Funktion erf llt Dies weiter zu erkl ren liegt nicht im Rahmen dieser Arbeit Zu sagen ist dazu nur dass die BerkeleyDB langsamer ist mehr Speicherplatz ben tigt und Probleme mit Netzwerk Dateisystemen hat und es sich deswegen meist anbietet FSFS zu benutzen F r eine Webansicht ben tigt auch Subversion auf der Serverseite einen Apache 11 6 Fazit Vergleich Einer der Vorteile d
202. igenschaft dass dieser sich nur auf der Kante einer Komponente befindet und somit innerhalb und au Berhalb der Komponente gezeichnet werden muss Hierbei tritt wie oben schon bei dem Required Provided Interfaces beschrieben wieder die Schwierigkeit der Projektgruppe Syspect 186 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF Interfaced InterfaceO aka Teer SSC BEE mmm Abbildung 15 28 Der AssemblyConnector macht keinen Unterschied zwischen Provided oder Required Interfaces Parent Child Beziehung zwischen Model und Diagramm auf Dieses wurde nach dem gleichen Prinzip gel st welches schon bei den Provided Required Interfaces beschrieben worden ist und wird deshalb nicht noch einmal erw hnt Allerdings kommt bei dem Port noch die Ausrichtung auf der Kante einer Kom ponente hinzu Wenn ein Port verschoben wird dann soll dieser sich automatisch wieder auf der ihm am n chsten liegenden Kante seiner Komponente ausrichten Das wurde dadurch realisiert dass in dem Command der den Port im Diagramm verschiebt PortChangeConstraintCommand die neue Position des Port durch Berechnungen so angepasst wird dass dieser auf einer Kante der Komponente liegt Da ein Port nur erzeugt werden soll wenn eine Komponente eine innere Kom ponenten hat wurde der Port als Zeichenelement aus der Palette des Editors entfernt Wenn ein Port im Diagramm ben tigt wird wird dieser automatisch gesetzt Die Implementierung f r das automatisch
203. ime org eclipse gef und org eclipse ui views properties tabbed Drag and Drop Das Navigator Plug In ist eine DragSource Das hei t dass per Drag and Drop Ele mente aus dem Navigator in andere Ansichten gezogen werden k nnen Insbesondere wird diese Funktionalit t genutzt um bereits existierende Modelelemente zu Editoren hinzuzuf gen Hierzu wird die von Eclipse bereitgestellt Funktionalit t org eclipse swt dnd ge nutzt Als Daten werden vom Navigator ausschlie lich Namen als Strings von Model Elementen bergeben Zieht der Benutzer ein Element der Viewable Ebene mit der Maus so wird falls das Element ein Model hat der Namen des entsprechenden Mo del Elements genutzt 15 3 4 SyspectPersistence Plug in Das Persistence Plug in ist f r das Laden und Speichern des Models zust ndig Die se Funktionalit t wird unter Benutzung des XMLEncoders java beans XMLEncoder bereitgestellt Da daf r die Kenntnis der Klassenstruktur des Models notwendig ist arbeitet dieses Plug in nicht auf der Interfacestruktur Daher ist es nur in der Lage Daten in Form von Instanzen der Klassen im SyspectModel Plug in zu speichern bezie hungsweise zu laden Zus tzlich zu der Grundfunktionalit t stellt das Plug in auch Wizards beziehungsweise Actions zum Speichern Laden und neue Projekte Erstellen bereit Schnittstellen Das Persistence Plug in erweitert drei Extension Points des Syspect Core Plug ins de syspect core persistence de sysp
204. in einem ANT Skript speichern das nur ein einziges Target enth lt in welchem der Befehl javadoc mit allen im grafischen Dialog festgelegten Optionen eingetragen ist 1 3 Versionsverwaltung in Eclipse CVS ist im Standardpaket von Eclipse enthalten F r Subversion kann das Plug in Subclipseltig einfach und kostenlos herunter geladen werden 1 3 1 CVS Befehle in Eclipse Zum Auschecken von Projekten stellt Eclipse die Funktion File gt Import gt Checkout Project from CVS zur Verfiigung Genau wie beim Kommandozeilenbefehl muss Host Pfadname Protokoll Login Passwort und der Name des Moduls angegeben werden Danach wird das Modul als Projekt im Eclipse Arbeitsbereich untergebracht Ist ein Projekt mit einem Repository verbunden stehen im Dateikontextmenii unter dem Punkt Team die Funktionen commit und update zur Verfiigung Markiert man im Package Explorer jetzt ein oder mehrere Dateien oder Verzeichnisse besteht die M g lichkeit die neueste Version der Dateien oder Verzeichnisse aus dem Repository mit dem update Befehl herunter zu laden Commit ladt unter Angabe eines Kommentars iiber die Anderungen die markierten Dateien ins Repository hoch Soll eine neue Datei dem Repository hinzugef gt werden kann man diese einfach im lokalen Arbeitsbereich mit dem Package Explorer erstellen und mit commit hochladen Zum L schen von Dateien sollte auf den Repository Explorer zur ckgegriffen werden da das L schen einer Datei mit dem Package
205. ine genauere Beschreibung des Ver haltens existieren die beiden Varianten normal_behavior f r ein normales Verhalten und exceptional_behavior f r die Beschreibung im Ausnahmefall Unterschiedliche Verhaltensbeschreibungen z B bei verschiedenen Vorbedingungen sind ebenfalls m glich Die korrespondierenden Beschreibungen sind in diesem Fall durch das Schl s selwort also zu verbinden Vor und Nachbedingungen von Methoden werden durch die Schl sselw rter requires bzw ensures eingeleitet Diesen Schl sselw rtern folgt ein logischer Ausdruck Wenn eine Methode eine exception als Ergebnis liefert wird das durch das Schl sselwort signals beschrieben Wenn Instanzattribute durch eine Methode ver ndert werden sollen m ssen sie in der Verhaltensbeschreibung angegeben werden Diese Angabe wird durch das Schl sselwort assignable gekennzeichnet JML erlaubt in Methoden sogenannte Checkpoints mittels assert zu definieren Projektgruppe Syspect 89 12 Oktober 2006 Endbericht KAPITEL 10 SOFTWARE TESTEN Invarianten Invarianten m ssen vor und nach jedem Methodenaufruf gelten d h sie gelten zu je dem stabilen Zeitpunkt Sie werden durch das Schl sselwort invariant gekennzeichnet Modellvariablen Modellvariablen sind eigens f r die Spezifikation eingef hrte Variablen Die Dekla ration wird durch das Schl sselwort ghost und die Initialisierung wird mit dem Schl sselwort set eingeleitet Des Weiteren gibt es Modellvariablen die mi
206. iner Java Klasse mit JML Spezifikationen werden zwei Testklassen generiert Zum einen die Datei _JML_TestData die von der Klasse TestCase abgeleitet ist Die Klasse _JML_Test ist von der Klasse _JML_TestData abgeleitet Sie enth lt die generierten Testmethoden aus der zu testenden Klasse Des Weiteren enth lt sie Stan dardtestwerte Die JML Spezifikation dient hier als so genanntes Test Orakel d h sie Projektgruppe Syspect 91 12 Oktober 2006 Endbericht KAPITEL 10 SOFTWARE TESTEN ist die Informationsquelle zur Ermittlung von Sollergebnissen der Testf lle Spezialf lle der Spezifikation Neben den generierten Testdaten kann man eigene Testdaten hinzu f gen Diese sollte man in die Datei _JML_TestData eintragen da diese nur einmal erzeugt wird Diese Testklassen werden schlie lich kompiliert und testen die durch den jmlc Compiler generierte Klasse Y C06 10 5 Zusammenfassung und Beurteilung Mit JUnit ist es schnell und einfach m glich Testszenarien f r ein gesamtes Java Projekt aufzubauen Dies wird vor allem dadurch gew hrleistet dass einzelne Test klassen sich zu verschiedenen Testsuiten kombinieren lassen um komplexe Testhierar chien entwickeln zu k nnen Nachteilig ist zu bemerken dass f r dieses Werkzeug die einzelnen Testklassen vom Entwickler geschrieben werden m ssen Dieses Problem er h ht den Aufwand erheblich Abhilfe k nnte die Spezifikation mit JML bringen Diese hat den Vorteil d
207. informationen Auch diese tags werden alle mit OZ Code definiert 9 2 3 bersetzung der Klassendiagramme Den gr ten Teil der bersetzung macht die Umwandlung der Klassendiagramme aus Hierbei werden normale Datenklassen in OZ Klassen capsules in CSP OZ DC Klassen bersetzt Die Attribute einer Klasse werden unmittelbar aus dem Diagramm ber nommen wobei bei einer Datenklasse alle Attribute in die Visibility Liste eingetragen werden Ist eine Datenklasse mit einer capsule assoziert so wird diese Datenklasse bei der entsprechenden capsule als Attribut eingetragen bei einer 1 zu n Beziehung als finite set F Alle tags einer Klasse werden entsprechend ihrer Bezeichnung in die Klasse eingef gt so wird zum Beispiel der Inhalt des init tags in den Init Block der Klasse kopiert Projektgruppe Syspect 78 12 Oktober 2006 Endbericht KAPITEL 9 EIN UML PROFIL F R CSP OZ DC Die Operationen eines Protocols werden in das Interface der assozierten capsules ein getragen Dabei ist die Rolle des ports f r die capsule entscheidend f r die berset zung der Operationen F r einen base port werden die in und in_S Operationen zu method Operationen out und out_S zu chan Operationen Bei der bersetzung der conjugated ports werden die Stereotypen der Operationen invertiert und anschlie end analog umgewandelt Auch die tags der Operationen werden entsprechend ihrer Be zeichnung in die Klasse eingetragen 9 2 4 bersetzun
208. ion durchgef hrt werden sollen Dazu muss das Interface de syspect controller eclipse actions ExitHookAction implementiert werden e syspectmodel Um Implementierungen passend zu den Interfaces im Paket modelinterface erstellen zu k nnen werden drei Fabriken ben tigt und zwar eine f r jede der drei Modelebenen siehe Abschnitt 15 3 6 S 168 Da IProjectManager siehe Abschnitt 15 3 6 S 171 keine dieser drei Ebenen zu zuordnen ist muss seine Implementierung extra zur Verf gung gestellt werden Dies sind die Anforderungen an ein Plug in das die Modelimplementierung ber nehmen soll Die genaue Struktur der Modelschnittstelle ist in das Kapitel ber das SyspectModel Plug in ausgelagert siehe Abschnitt 15 3 6 S 167 Projektgruppe Syspect 158 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF Das Core Plug in erweitert viele Eclipse Extension Points Abbildung 15 6 soll einen berblick dar ber geben lt lt component gt gt perspectiveExtensions lt lt component gt gt applications lt lt component gt gt 2 org eclipse ui perspectives de syspect core preferences org eclipse core runtime ES preferencePages products S popupMenus 7 actionSets A ene toc lt lt component gt gt org eclipse help Abbildung 15 6 Von Syspect Core erweiterte Extension Points Auf die Extension Points org eclipse core
209. ionale Lis te von Name Wert Paaren lt Name farbe rot gt Hallo Welt lt Name gt XML Elemente k nnen baumartig ineinander verschachtelt werden wobei der schlie ende Tag eines inneren Elements nie nach dem schlie enden Tag des dieses Element umschlie enden Tags kommen darf Au erdem ist nicht viel n tig um XML Dokumente verstehen zu k nnen Es gibt Namensr ume in denen Namen eindeutig sein m ssen Regeln die definieren was f r Zeichen in Namen vorkommen d rfen und eine M glichkeit Tag als plain text zu schreiben also uninterpretiert zu lassen XML Schemata jedoch haben viele weitere Syntaxelemente diese zu erkl ren ist nicht Ziel dieses Abschnitts Es sei nur soviel gesagt dass XML Schemata auch XML Dokumente in dem Sinne sind dass sie der grundlegenden XML Syntax die eben angedeutet beschrieben wurde folgt Jedoch gibt es hier viele definierte Element und Attributnamen mit einer festgelegten Semantik Schlie lich sei noch erw hnt dass die sogenannten Document Type Definitions DTDs eine veraltete M glichkeit sind die Struktur und das Format von XML Dokumenten festzulegen Sie haben eine eigene Syntax die nicht auf XML aufbaut 6 2 3 Ein Beispiel Um mit XMI sinnvoll arbeiten zu k nnen sind Grundkenntnisse der XML Schemadefinitionen notwendig Diese k nnen zum Beispiel unter SMT06 erworben und vertieft werden Nehmen wir an es soll eine Anwendung f r eine Autovermietung modelliert werden und in einem
210. kann in einen Zustand wechseln von dem aus er nicht mehr auf das Signal knopf2 eingehen kann FFS knopf1 fahreZul FFS NM knopf2 fahreZu2 FFS Ps FG FFS knopf1 knopf 2 Projektgruppe Syspect 60 12 Oktober 2006 Endbericht KAPITEL 7 CSP OZ KOMBINATION ZWEIER METHODEN fahreZu1 aussteigen T C einsteigen knopf2 FG knopf1 knopf2 gr aussteigen aussteigen 9 TSP 22F6 leng Dki gt f gt Fs FG K2S12 gt FS IN a gt FG f2 gt FS ae FG KZS 2 gt FS ESS IS FG f2 gt FS gt k2 gt a gt FG f2 gt FS K2 gt a gt FG K2 gt f2 gt FS GE K2 gt a gt FG 2 gt FS einsteigen Abbildung 7 7 Der CSP Prozess P4 aussteigen knopf1 knopf2 aussteigen q aR IRCH k2 gt a gt FG k1 gt f1 gt FS FG Urs WE k2 gt gt FG k2 gt f2 gt FS amp gt FG f2 gt FS k2 gt a gt FG K2 gt f2 gt FS_ T n a gt FG ZS2 gt FS KISSES STi IG FG l t EPK gt a2FG 2 gt FS K2 gt a gt FG f2 gt FS einsteigen Abbildung 7 8 Der CSP Prozess Ps Projektgruppe Syspect 61 12 Oktober 2006 Endbericht KAPITEL 7 CSP OZ KOMBINATION ZWEIER METHODEN 7 2 4 CSP Semantiken Um der Syntax von CSP Bedeutungen zuzuordnen k nnen verschiedene Semantiken verwendet werden Einige sollen im Folgenden vorgestellt werden Strukturierte
211. kassel de 7Efujabawiki images 0 0a FujabaDiagramVisualization pdf Pdf document fujaba de Octo ber 21 2005 tigris org Subclipse Das Eclipse Plug in f r Subversion http subclipse tigris org tigris org ArgoUML Homepage http argouml tigris org March 10 2005 Object Managment Group Unified Modelling Language October 04 2005 http www uml org Lothar Wendehals 10 Steps To Build a Fujaba Plug in http www se eecs uni kassel de 7Efujabawiki images 2 2c 10_Steps_To_Build_a_Fujaba_Plugin pdf Pdf document fujaba de October 21 2005 Projektgruppe Syspect 236 12 Oktober 2006 Endbericht LITERATURVERZEICHNIS Wes05 Wik05a Wik05b Wik05c Wik05d YC06 ZHR91 Frank Westphal Testgetriebene Entwicklung mit JUnit amp FIT Wie Soft ware nderbar bleibt dpunkt verlag 2005 Wikipedia http de wikipedia org wiki Versionsverwaltung Oc tober 2005 WikiPedia Unified modelling language http de wikipedia org wiki Unified_Modeling_Language No vember 01 2005 WikiPedia Bsd lizenz http de wikipedia org wiki BSD Lizenz November 04 2005 WikiPedia Kognition http de wikipedia org wiki Kognition October 29 2005 Gary T Leavens Yoonsik Cheon The jml and junit way of unit testing and its implementation http smv unige ch tiki download_file php fileld 533 January 01 2006 Zhou Chaochen C A R Hoare and A P Ravn A calculus of durations IPL
212. ktionen der Entwicklungsumgebung 109 Projektgruppe Syspect 12 Oktober 2006 Endbericht INHALTSVERZEICHNIS 13 Anforderungsdefinition 111 13 1 Binle me A neo Bate At ebe Ne A ebe rs 2 111 13 2 GUI Darstellung der UML Diagramme 111 E ENEE 112 13 2 2 Klassendiagramme Sis st Kr ae Mr eae Me ere HE AT 112 13 2 3 Zustandsdiagramme 2 zu a jw 2a aa a 115 13 2 4 Strukturdiagramme lea ii N E e A 116 13 3 Nichtfunktionale Anforderungen 118 13 31 Performance s ana ee ee PE So aE es 118 13 32 Sonst best era Kerr ir Re rw Re ee Ape ewe Abs lie 119 T34 Dateiformate u A ae oo tes ee ad te ate SE i 119 13 4 1 XML Darstellung der CSP OZ DC Spezifikationen 119 13 4 2 XML Darstellung von Phasen Event Automaten 120 13 5 Anwendungsf lle aa he erga Ee Ayr on Bade Seok Ad 122 13 5 1 Allgemeine Anwendungsfalle 124 13 5 2 Anwendungsf lle in der Klassendiagrammansicht 129 13 5 3 Anwendungsf lle in der Strukturdiagrammansicht 133 13 5 4 Anwendungsf lle in der Zustandsdiagrammansicht 138 14 Modifizierung der Anforderungen 143 o A EE 143 14 2 Anpassung des UML Profls sao 2 a on a an don a a 143 14 3 Sonstige nderungen ia near 145 15 Entwurf 147 19 1 IOV GINS we aa Po eae Ph eke Po el Po elegy 147 A EE e Ee ee BRS 147 15 2 1 Umgebung und Einbettung 7 22 44 A eh BR 1er Be 148 15 2 2 Plug in Struktur tea nette te 152 1 983 E sisa ap
213. ktive Systeme mit einer Prozess und einer Datensicht spezifiziert werden Da CSP eine pr zise formale Semantik hat kann es bei einem endlichen Datenbereich also einer endlichen Zustandsmenge in den Dialekt CSPy f r maschinenlesbares CSP bersetzt werden Dieser kann vom Modelchecker FDR f r CSP FDR gelesen wer den Damit ist es m glich CSP und unter Umst nden auch CSP OZ auf Deadlocks Livelocks und Determinismus zu berpr fen Projektgruppe Syspect 67 12 Oktober 2006 Endbericht KAPITEL 7 CSP OZ KOMBINATION ZWEIER METHODEN Projektgruppe Syspect 68 12 Oktober 2006 Endbericht KAPITEL 8 CSP OZ DC UND PEA Kapitel 8 CSP OZ DC und PEA Jan David Quesel 8 1 Einleitung Verifikation ist eine Thematik die in der heutigen Zeit immer mehr Gewicht bekommt Spezifikationssprachen sind meist jedoch nur f r einen Kontext entwickelt Um die Vorz ge mehrerer Spezifikationssprachen nutzen zu k nnen gibt es Ans tze diese zu kombinieren Ein Ansatz ist die Kombination der Sprachen CSP und Object Z ge nannt CSP OZ Es wird erm glicht Komunikationen und Zustands nderungen in CSP zu modellieren und zus tzlich die Vorz ge von Object Z in der Spezifikation von Da ten und Zustandsr umen zu verwenden Bislang fehlt dabei die M glichkeit zeitliche Eigenschaften von Systemen zu spezifizieren Hierf r bietet sich der Duration Calculus DC ZHR91 an Daraus ergibt sich die Spezifikationssprache CSP OZ DC HMO5 Um
214. lgemein wird es jedoch meist ein Model Objekt geben das ein Figure Objekt repr sentiert Der Controller wird bei GEF durch so genannte Editparts gebildet Die Editparts sind die Verbindungsst cke zwischen dem Model und der View wobei es hier in der Regel ein Editpart f r ein Model und ein Figure Objekt gibt Die Editparts sind an das Model nur lose gekoppelt was durch ein Factory Pattern GHJ95 und Obser ver Pattern GHJ95 realisiert wird Die Factory erstellt anhand eines Model Objekts den zugeh rigen Editpart und der Editpart erstellt die zugeh rige Figure Diese Zusammenh nge sind in Abbildung 15 2 mit den durchgezogenen Pfeilen dargestellt F r die Event Behandlung stellt GEF ebenfalls ein Entwurfsmuster bzw Schnittstellen zur Verf gung Events werden in so genannten Editpolicies gekapselt die einem Edit part zugeordnet werden Benutzereingaben von der GUI werden dann als Request zu den entsprechenden Editpolicies weitergeleitet Hier gibt es f r alle m glichen Events eine entsprechende Editpolicy F r die Verarbeitung der Events werden von den Editpo licies so genannte Commands erstellt die nderungen an dem Model durchf hren Ein Command bietet standardm ig Unterst tzung f r Undo und Redo Funktionalit ten Die nderungen an dem Model werden ber das Observer Pattern an den entspre chenden Editpart weitergeleitet der schlie lich die Figure entsprechend aktualisiert Diese Zusammenh nge sind in Abbildung 15 2 mit
215. listung Die einzelnen Sections werden f r bestimmte Eingabetypen des Models in die Reiter eingebunden Hierf r werden die Typen ber input Attribute f r die Sections defi niert Wenn f r einen bestimmten Modeltyp keine Section in einen Reiter eingebunden wird wird dieser ebenfalls nicht in die View eingebunden Abbildung 15 31 zeigt einen Ausschnitt der plugin xml Datei in der beispielhaft Property Sections Extension Point definiert wird F r das Syspect Projekt werden diverse Sections bzw Section Klassen erzeugt Das folgende Klassendiagramm Abbildung 15 32 soll einen berblick ber die Struktur dieser Klassen geben Die einzelnen Elemente der Oberfl che sollen einem einheitlichen Look and Feel ent sprechen Zu diesem Zweck gibt es die TabbedPropertySheetWidgetFactory die ber die Methode getWidgetFactory aufgerufen wird ber create Methoden k nnen Projektgruppe Syspect 192 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF lt extension point org eclipse ui views properties tabbed propertySections gt lt propertySections contributorld syspectproperties ID gt lt propertySection afterSection syspectproperties ElementNameSection class de syspect syspectproperties view MultiplicitySection id syspectproperties MultiplicitySection tab syspectproperties General gt lt input type de syspect modelinterface viewable IComponent gt lt input type de syspect componentdiagrameditor controller editpar
216. llung des Models wurde das gesamte Projekt auf dieses angepasst Komplexe Problemstellungen wurden vereinfacht Im Gegensatz dazu mussten bereits gel ste Probleme neu diskutiert werden Abschlie end soll die Test Methodik bzw die Evaluierung er rtert werden Das Tes ten des Systems sollte durch JUnit Tests erreicht werden Nach der Redesign Phase die eine komplexe Plug in Struktur hervorbrachte wurde aus zeitlichen Gr nden auf den Aufbau einer Testsuite verzichtet Im Kapitel Ausblick soll dieser Aufbau n her erl utert werden F r die Evaluierung des Softwareproduktes wurde eine Fallstudie durchgef hrt Diese befasst sich mit der Erstellung eines Mail User Agent MUA Sta06 Durch diesen Workflow wurden viele Funktionen von Syspect getestet Da sich die angegebene Fallstudie nur mit CSP OZ besch ftigt war es damit nicht m glich Funktionen zu testen die im Zusammenhang mit dem Duration Calculus stehen Diese mussten anhand anderer Beispiele getestet werden 16 1 Fallstudie E Mail Client Die Fallstudie E Mail Client Sta06 behandelt die Modellierung eines Softwaresys tems zum Lesen elektronischer Post mittels des UML Profils f r CSP OZ DC das in Abschnitt 9 S 77 vorgestellt wurde Das Softwaresystem soll E Mails anzeigen k nnen die im Anhang Text und Bildern enthalten k nnen Der Nutzer kann E Mails ausw hlen und deren Anh nge anzeigen lassen Die drei Komponenten des Systems werden als Mail User Agent TextViewer und Ima
217. logs m glich woraufhin die entsprechene Klas se mit dem Stereotyp protocol erzeugt wird Die Wahl des Symbols Ports verbinden erfordert das Ausw hlen zweier ports Sind diese nicht ber ein protocol in Bezie hung so wird eine Warnung im daf r vorgesehenen Bereich der Oberfl che ausgegeben Bearbeiten L schen und Kommentar hinzuf gen verlaufen analog zur Beschreibung in Abschnitt 12 2 1 Als zus tzliche Funktion ist es m glich innerhalb der Strukturdia grammansicht ein Strukturdiagramm f r das Innere einer capsule zu erzeugen Falls die capsule schon ein Strukturdiagramm besitzt wird dieses in den Arbeitsbereich geladen Projektgruppe Syspect 108 12 Oktober 2006 Endbericht KAPITEL 12 PRODUKTSKIZZE 12 2 3 Arbeiten mit Zustandsdiagrammen Auch beim Erzeugen eines Zustandsdiagramms ist das Verhalten des Programms ana log zum Erzeugen eines Klassendiagramms In der Symbolleiste sind die folgenden Funktionen verf gbar e Neuer Zustand Initital Zustand Normaler Zustand Endzustand Neue Transition Superzustand erzeugen Parallelitat erzeugen e Bearbeiten e L schen e Kommentar hinzuf gen Wird ein neuer Zustand erzeugt so muss zwischen einem Initialzustand einem norma len Zustand und einem Endzustand unterschieden werden Das Erstellen einer neuen Transition erfordert die Auswahl zweier zu verbindender Zust nde und optional die zur Transition zugeh rige Methode Durch Auswahl des Symbols Sup
218. lt interface gt gt lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lEdge IViewableConnection IClassConnection Transition lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt IRealization IDependency IGeneralization IConnectionWithCardinality lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lAggregation IComposition lAssoziation Abbildung 15 16 Verbindungen lt lt enumeration gt gt ECardinality Manche Verbindungen haben Kardinalit ten die durch das Enum ECardinality repr sentiert werden Dies sind im Einzelnen IAggregation IComposition und IAssociation Kontext Zustandsautomaten Die Zustandsdiagramme von Syspect weisen im Vergleich zum Klassendiagramm zwei Besonderheiten auf die sich auch in der Datenhaltung wiederspiegeln e Da es m glich ist eine Region eines Zustands in einem eigenen Diagramm zu betrachten gibt es zwei Arten von Zustandsdiagrammen Solche die einen voll st ndigen Zustandsautomaten enthalten und solche die nur eine Region eines bestimmten Zustands zeigen e W hrend ein Klassendiagramm eine reine View Angelegenheit ist Klassen k n nen in keinem einem einzigen oder mehreren Diagrammen angeordnet werden und jeweils in verschiedene Kontexte gestellt werden ist ein Zustandsautomat immer genau einer Klasse
219. m der Projektgruppe Syspect 107 12 Oktober 2006 Endbericht KAPITEL 12 PRODUKTSKIZZE entsprechende Kommentartext eingegeben werden kann Als zus tzliche Funktion ist es m glich innerhalb der Klassendiagrammansicht ein Zustandsdiagramm f r eine Klasse des Stereotyps capsule zu erzeugen Durch erneutes Ausw hlen der Funktion oder bei schon existierendem Zustandsdiagramm wird dieses in den Arbeitsbereich geladen und angezeigt 12 2 2 Arbeiten mit Strukturdiagrammen Das Verhalten des Programms beim Erzeugen eines Strukturdiagramms ist analog zum Erzeugen eines Klassendiagramms Die folgenden Funktionen sind ber die Symbolleis te erreichbar e Neue capsule e Neuer port base Port conjugated Port e ports verbinden Bearbeiten L schen e Kommentar hinzuf gen e Strukturdiagramm f r die capsule erzeugen Beim Erzeugen einer neuen capsule als Instanz einer Klasse des Stereotyps capsule wird ein Dialog ge ffnet in welchem die zu instanziierende Klasse ausgew hlt werden kann Eine capsule erscheint darauf im Arbeitsbereich Wurden im Klassendiagramm ports spezifiziert base conjugated Aggregationen so sind diese auch bei der er zeugten capsule vorhanden und k nnen beliebig auf dem Rand dieser angeordnet werden Durch Erzeugen eines neuen ports wird wiederum ein Dialog ge ffnet in wel chem das zu verwendene protocol ausgew hlt werden kann Das Erstellen eines neuen protocols ist auch innerhalb des Dia
220. mands 181 15 25Bereitstellung von ClassTitle und Separator 184 15 26Die Erstellung eines Provided Interfaces bestehend aus einer Figure und einer Verbindungslinie 2er Sack ee Ee oe ei 185 15 27Der Zeichenbereich einer Komponente rot hinterlegt 186 15 28Der AssemblyConnector macht keinen Unterschied zwischen Provided oder Required Interfaces 187 15 29 Tabbed Property View DA ae a A ah a ri 191 15 30 Property Tabs Extension Points ade 32 23 32 292584 84 R 192 15 31 Property Sections Extension Point os 4 ai seek Dre re 193 15 928echom Klassen AAA Are Bee are Moe Hepes 194 19 33 Wit Set EE a Au oh gg att eat here faite AR A A faite a 194 15 34CSP OZ DC Spezifikation us Ka sr a a ee EE eS rr 195 17 1 EMF vereint Java UML und XML ee Oe 08 E 209 Pea Assembly kiini rara ea ata inde ea hen 213 3 Beispiel eines Fehlerdialogs 221 Projektgruppe Syspect 231 12 Oktober 2006 Endbericht ABBILDUNGSVERZEICHNIS Projektgruppe Syspect 232 12 Oktober 2006 Endbericht LITERATURVERZEICHNIS Literaturverzeichnis Apa06 Apache Software Foundation The Apache ANT Project homepage http ant apache org January 01 2006 CGP99 Edmund M Clarke Orna Grumberg and Doron Peled Model Checking The MIT Press Cambridge Massachusetts 1999 CSFP05 Ben Collins Sussman Brian W Fitzpatrick and C Michael Pilato Ver sion Control with Subversion http svnbook red bean com en 1
221. mentation eine Erweiterung sicht lich Lediglich die Oberpakete sind mit Kommentaren versehen Einzelne Klassen Projektgruppe Syspect 31 12 Oktober 2006 Endbericht KAPITEL 3 FUJABA besitzen dagegen lediglich den durch Eclipse vergebenen Standardkommentar No comment provided by the developer please add a comment by yourself to improve documentation FDG05 Dieser Missstand ist den Entwicklern durchaus bekannt Verbesserungen existieren leider nur in neueren Projekten Die M glichkeit einer pers nlichen Einf hrung in die Entwicklung durch einen Besuch in Kassel bei Albert Z ndorf entsch digt daf r nur teilweise FUJABA und FUJABA4Eclipse bieten au erdem die M glichkeit der Erweiterung durch Plug ins Diese Alternative ist die einzige sinnvolle und m gliche Erweiterung F r beide Applikationen sind jeweils ein PDF Dokument eines Vortrages vorhanden Wen05 und Mey05a Bei der Erweiterung von FUJABA4Eclipse ist zu beachten dass dieses sehr instabil ist und derzeitig nur unter Eclipse 3 02 funktioniert Das Nutzen einzelner Klassen gestaltet sich durch oben genannten Missstand ebenso schwierig In Frage wiirden die Klassen des Meta Modells der Klassen zum Zeichnen der Diagramme kommen Abschlie end l sst sich also sagen dass eigentlich nur eine Erweiterung von FUJABA durch ein Plug in in Frage kommt Jede andere Erweiterung bringt einen zu gro en Einarbeitungsaufwand mit sich FUJABA4Eclipse ist derzeitig noch im Alph
222. mespace einsetzen gt lt class name test gt lt ancestors gt lt inherit gt Junit lt inherit gt lt ancestors gt lt interface gt lt method name dummy gt lt param type PAR gt par lt param gt lt method gt lt channel name output gt lt param type PAR gt out lt param gt lt param type TestRef gt adr lt param gt lt channel gt lt interface gt lt local gt lt channel name intern gt lt local gt lt csp gt lt csp gt lt oz gt siehe ZML lt oz gt lt dc gt siehe Darstellung von Roland Meyer lt dc gt lt class gt lt cod gt Abbildung 13 4 XML Beispiel einer CSP OZ DC Klasse 13 4 2 XML Darstellung von Phasen Event Automaten Im Folgenden werden die Anforderungen an ein XML Format zur Darstellung von Phasen Event Automaten PEA definiert Anforderungen an das XML Format 1 Es ist n tig den Zustandsraum Zustandsvariablen Events Uhren Invarianten pr dikate sowie Uhreninvarianten f r Zust nde in XML zu kodieren Die Tran Projektgruppe Syspect 120 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION sitionsrelation inklusive Guards Events und Uhrenr cksetzungen muss in XML ausgedr ckt werden Die Guards sind hierbei Z Pr dikate Es muss m glich sein Transitionen als Initialtransitionen zu definieren 2 Die Formeln die hierbei auftreten beispielsweise in den Invarianten sollen nicht nur als String gespeichert werden son
223. mit diesem Ste reotyp markiert Die Verbindung der capsules mit den Schnittstellen wurde im alten Profil ber Aggregationen mit den Stereotypen base und conjugated modelliert Durch Projektgruppe Syspect 143 12 Oktober 2006 Endbericht KAPITEL 14 MODIFIZIERUNG DER ANFORDERUNGEN protocol protocol Init_P Withdraw_P in ident out auth out_S setup out debit datar in_S ready in result Account wd A id bal base conjugated oP accounts tn data Interface component Interface capsule See Account BankService Bank ia ATMCtrl tn m use e a dent ka resula L 2 gt broadcast setup resultQ accounts Gei broadcast ready atms result atms pin auth debit Abbildung 14 1 Klassendiagramm fiir die Bank nach dem alten neuen UML Profil capsule protocol Interface Interface l conj S Zi lee pg d y H GEN conjugated ATM Use_P BankService lt SH DE Se ATMCtrl ni S 4 GR bi in insert 8 base in params in pin bank id in amount Interface params Interface protocol base pin out idle Feedback Le un
224. mplementieren e preferenceinitializer Der nitializer sorgt daf r dass die Standartwerte der Preferences gesetzt und benutzt werden Da von Eclipse nur genau ein Preferencelnitializer aufgerufen wird ha ben wir einen eigenen Extension Point hierf r eingef hrt der die verschie denen Initializer der Plug ins einbindet Er erwartet eine Klasse vom Typ AbstractPreferencelnitializer e syspectdeleteactionhook Diese Schnittstelle wird ben tigt um Editoren be nachrichtigen zu k nnen dass Elemente gel scht werden sollen Konkret hei t das dass wenn ein Element von Typ der unter modelclass angegeben ist gel scht werden soll wird der delete action hook aufgerufen der unter class definiert ist siehe auch Abschnitt 15 3 2 S 162 e syspectdiagram Dies ist ein Extension Point der die Erweiterbarkeit von Syspect gew hrleisten soll Er muss angesprochen werden wenn weitere Diagrammedito ren au er den drei bereits in Syspect integrierten eingebunden werden sollen e syspecteditpartfactory Jeder Diagrammeditor der in Syspect in tegriert werden soll muss eine Klasse haben die das Interface org eclipse gef EditPartFactory implementiert Desweiteren ist ein In terface anzugeben dass sich von IViewableDiagram ableitet welche die Diagrammart spezifiziert f r welche der Editor gedacht ist e syspectexithook ber diesen Extension Point ist es m g lich Operationen zu definieren die direkt vor Beenden der Ap plikat
225. mponente verbunden sind ist auch der AssemblyConnector mit dieser Linie verbunden Allerdings wird in der Logik des AssemblyConnectors nicht unterschieden zu welcher Schnittstelle eine Linie geh rt D h eine Linie die zu einer bereitgestellten Schnittstelle geh rt wird nicht an den Teil der AssemblyConnec tor Figure gesetzt die erstere repr sentiert Das gleiche gilt auch f r die Linie der ben tigten Schnittstelle Abbildung veranschaulicht dieses Problem Bei der Erstellung der Komponente Component_0 wurde angegeben sie ben tige die Schnittstelle Trotzdem ist es durch Projektgruppe Syspect 212 12 Oktober 2006 Endbericht KAPITEL 17 AUSBLICK Interfaced InterfaceO laa Ss Interfaceo Interface Tee Abbildung 17 2 Assembly einfaches Verschieben im Diagrammeditor ohne Anderung der dahinter stehenden Mo delldaten m glich es so aussehen zu lassen als stelle sie die Schnittstelle zur Verfii gung Ein L sungsansatz w re einen ConnectionAnchor f r den AssemblyConnector zu schreiben der diese Figenschaften erf llt Ansatzpunkt f r diese Erweiterung w re die Klasse AssemblyConnectorEditPart 17 9 bersetzung nach PEA Da im Moment keine bersetzung f r den CSP Rename Operator nach PEA existiert k nnen Spezifikationen die Komponentdiagramme enthalten nicht bersetzt werden Hier w re es n tig eine M glichkeit zu finden wie sich der Rename Operator in PEA ausdr cken l
226. n zum Nachschlagen zusammengetragen Die Grundlagen wurden von einzelnen Perso nen erarbeitet und in Seminarvortr gen vorgestellt In der ersten Seminararbeit wird Eclipse vorgestellt da dies eine weit verbreitete IDE zum Entwickeln von Applikationen ist deren Funktionen den Projektgruppenteilneh mern vorgestellt werden sollen Da mit dem Werkzeug Syspect UML Modelle grafisch entwickelt werden sollen stellen die n chsten drei Ausarbeitungen Werkzeuge vor und untersuchen sie auf Erweiterungsm glichkeiten und Wiederverwendbarkeit f r Syspect Die UML Modelle werden in die formale Spezifikationssprache CSP OZ DC bersetzt Die Community Z Tools werden daher in einer Seminararbeit vorgestellt da sie sich mit der Teilsprache Object Z von CSP OZ DC befassen Um in die UML 2 0 und das Speicherformat XMI einzuf hren folgt eine Arbeit zu diesen Themen Die UML Modelle werden durch ein UML Profil f r CSP OZ DC eingeschr nkt Drei Seminarausarbeitungen f hren in die Spezifikationssprache deren Darstellung als Phasen Event Automaten und das zugh rige UML Profil ein Anschlie end folgt eine Arbeit ber Testmethoden und eine Arbeit die sich mit der Versionsverwaltung mit CVS und SVN auseinandersetzt Projektgruppe Syspect 5 12 Oktober 2006 Endbericht Projektgruppe Syspect 6 12 Oktober 2006 Endbericht KAPITEL 1 ECLIPSE Kapitel 1 Eclipse J rgen Happe 1 1 Was ist Eclipse Eclipse ist eine Open Source Gemein
227. n dass keine Grenzen ge setzt werden Daf r spricht auch die F lle an verwendbaren Plug ins Das Plug in GEF welches zur Erstellung von grafischen Editoren dient kann an dieser Stelle als gutes Beispiel angef hrt werden GEF erm glicht durch eine m chtige grafische Komponen te fast jegliche Art der Figuren Erstellung und die Figuren k nnen mit fast jeglichen Datenmodell verbunden werden Es soll an dieser Stelle jedoch auch erw hnt werden dass f r den sicheren Umgang eine l ngere Einarbeitungszeit sowohl in Eclipse selbst als IDE als auch f r den Eclipse Plug in Mechanismus veranschlagt werden muss Als Hil festellung dient die gro e Eclipse Gemeinde bzw die dadurch resultierende ausf hrliche Dokumentation Bei Eclipse Plug ins die nicht aus dem Eclipse Projekt hervorgehen h ngt diese allerdings von der Popularit t des Plug ins ab Bez glich der Einarbei tungszeit ist Eclipse in Verbindung mit GEF einer Neuentwicklung eines grafischen Editors meines Erachtens trotzdem vorzuziehen Projektgruppe Syspect 26 12 Oktober 2006 Endbericht KAPITEL 3 FUJABA Kapitel 3 Fujaba Niels Hapke 3 1 Einleitung Im vorliegenden Dokument werden FUJABA und FUJABA f r Eclipse FU JABA4Eclipse vorgestellt die zugrunde liegende Architektur erl utert und die Verwertbarkeit f r Syspect gepr ft FUJABA ist ein Computerprogramm welches mit Hilfe der Unified Modeling Language UML den Entwurf von Software am Computer erlaubt
228. n erzeugten UML Diagramme anzeigen zu lassen Diese k nnen innerhalb der Baum struktur bearbeitet und per Drag and Drop in den Arbeitsbereich eingef gt werden Am Ende des Diagrammstrukturbereichs befinden sich drei spezielle Buttons CSP OZ DC XML PEA XML und CSP OZ DC F TX Wird einer dieser Buttons geklickt so wird die entsprechende Exportfunktion aufgerufen so dass der Nutzer immer die aktuelle bersetzung seines UML Modells erh lt Innerhalb des Arbeitsbereichs wird zu einem Zeitpunkt maximal ein Diagramm ange zeigt In diesem Bereich k nnen die Elemente des jeweiligen Diagramms angeordnet bearbeitet und erstellt werden Es existiert eine Symbolleiste mit h ufig benutzten Ak tionen wie z B L schen Neue Klasse Neue Transition usw Desweiteren ist es m g Projektgruppe Syspect 106 12 Oktober 2006 Endbericht KAPITEL 12 PRODUKTSKIZZE lich ber ein Symbol innerhalb dieser Leiste den Vergr erungsfaktor der Ansicht des Arbeitsbereiches zu ver ndern Der untere Bereich der Oberfl che repr sentiert einen Nachrichtenbereich in welchem Fehlermeldungen und Warnungen vor Inkonsistenzen zwischen den UML Diagrammen ausgegeben werden 12 2 1 Arbeiten mit Klassendiagrammen Wurde ein neues Klassendiagramm angelegt so beinhaltet dieses anf nglich keine Klas sen Sobald es ge ffnet wurde erscheint die Darstellung des Diagramms im Arbeitsbe reich Nun k nnen neue Klassen und Beziehungen ber die Symbolleiste per Drag
229. n Event Automaten Phasen Event Automaten PEA Hoe05 liefern einen Formalismus mit dem es m g lich ist eine kompositionelle Semantik f r CSP OZ DC zu formulieren Ein PEA ist ein 8 Tupel P V A C E s I Init Die einzelnen Komponenten sind e P Zustandsmenge e V Menge von Zustandsvariablen e A Menge von Events C Menge der Uhren ECPxL VUV UAUC x P C x P Transitionsrelation e s P L V Invarianten Pr dikat f r Zust nde e I P L C Uhreninvariante f r Zust nde Init C L V x P Initiale Transitionen Projektgruppe Syspect 219 12 Oktober 2006 Endbericht KAPITEL 17 AUSBLICK Lizenz Das Systemspezifizierungswerkzeug Syspect wird unter der GNU General Public Li cense FSFO6b kurz GPL ver ffentlicht werden Hierf r waren folgende Fakten ent scheidend e Die PEA Tools von Jochen Hoenicke und die Community Z Tools stehen unter der GPL Wird eine unter der GPL stehende Bibliothek verlinkt so muss das verlinkende Programm auch unter der GPL stehen Bei der Benutzung der oben genannten Bibliotheken muss Syspect also unter der GPL stehen e Syspect ist ein Eclipse Plug In und nutzt des Weiteren das Eclipse Plug in GEF EF 106c Diese und Eclipse selbst stehen unter der Eclipse Public License welche eine freie Lizenzwahl des verlinkenden Plug Ins erlaubt sofern sich dieses nicht aus Eclipse Public License lizensierten Applikationen ableitet Syspect selbst be steht nicht aus abgeleiteter
230. n Zustandsdiagramm gew hlt wird Nachbedingung Erfolg Zustandsdiagramms erscheint im Arbeitsbereich Nachbedingung Fehlschlag Fehlermeldung Fenster zur Bearbeitung erscheint nicht Eingabedaten Eine ausgew hlte Klasse Projektgruppe Syspect 130 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION Anwendungsfall Assoziation erstellen Akteure Nutzer Ziel Eine Assoziation vom Typ Aggregation Base Aggregation Conjugated Aggregation Komposition oder Generalisierung soll zwischen zwei Klassen erstellt werden Ausl sendes Ereignis Der Nutzer hat entweder in der Symbolleiste oder im Kontextmen Assozia tion erstellen ausgew hlt Eine Verbindung zwischen zwei Klassen wird per Mausklick gezogen Vorbedingung Mindestens zwei Klassen existieren zwischen denen eine Assoziation erstellt werden kann Nachbedingung Erfolg Eine Assoziation wird dem Klassendiagramm und wenn n tig den zugeh rigen Strukturdiagrammen hinzugef gt Nachbedingung Fehlschlag Eine aussagekr ftige Fehlermeldung wird ausgegeben Eingabedaten Der Typ der Assoziation und bei Auswahl von Aggregation kann zus tzlich der Stereotyp base oder conjugated gew hlt werden Anwendungsfall Element l schen Akteure Nutzer Ziel Assoziation Kommentar oder Klasse l schen Ausl sendes Ereignis Der Nutzer markiert ein Element und w hlt im Kontextmen oder in der Symbolleiste Element l schen Vorbedingung
231. nd nicht mit in die Klassen eingetragen um die bersichtlich keit zu erh hen Wie in Abbildung 9 1 zu sehen ist besitzt die Bank zwei ports im protocol protocol Init_P Withdraw_P in ident out auth out_S setup out debit in_S ready in result ini DER conjugated a data Bank In resultQ accounts id bal atms pin Abbildung 9 1 Klassendiagramm der Bank inklusive der ben tigten Protokolle aus MORWO5 Diagramm als Assoziationen zu erkennen die eine Kommunikation mit den ATMs erm glichen F hrt man eine bersetzung nach dem oben angegebenen Schema durch so erh lt man f r die Klasse Account Account id bal pin id bal pin Projektgruppe Syspect 80 12 Oktober 2006 Endbericht KAPITEL 9 EIN UML PROFIL F R CSP OZ DC Die Klasse Bank hingegen ist etwas komplexer Bank method ident method ready method auth method debit chan setup chan result Init accounts F Account resultQ atms Wie zu sehen ist besteht die Klasse nur aus dem Interface und den OZ Definitionen F r die CSP Spezifikation muss die Statemachine Abbildung 9 2 bersetzt werden Mittels der Ubersetzungsrelation y und einigen Vereinfachungen ergibt sich hieraus debit Abbildung 9 2 Statemachine der Bank aus MORW05
232. nd erzeugen Transition bearbeiten Zustand bearbeiten Kommentar bearbeiten Transition l schen Zustand l schen Kommentar l schen UseCase Zustandsdiagramm LS Neue Transition erzeugen Parallelitat erzeugen 2 Y Neuen Zustand erzeugen Nutzer Element bearbeiten Kommentar erstellen Anwendungsfall Neuen Zustand erzeugen Akteure Nutzer Ziel Ein neuer Initial Normal oder Endzustand soll erzeugt werden Ausl sendes Ereignis Der Nutzer w hlt den entsprechenden Eintrag im Kontextmen oder in der Symbolleiste aus Vorbedingung Zustandsdiagramm ist ge ffnet Nachbedingung Erfolg Der Zustand wird erzeugt Nachbedingung Fehlschlag Eine aussagekraftige Fehlermeldung wird ausgegeben Eingabedaten Typ des Zustands Projektgruppe Syspect 138 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION Anwendungsfall Neue Transition erzeugen Akteure Nutzer Ziel Eine neue Transition zwischen zwei Zust nden soll erzeugt werden Ausl sendes Ereignis Der Nutzer w hlt die entsprechende Funktion im Kontextmen oder der Sym bolleiste aus Vorbedingung Es existieren mindestens zwei Zust nde Nachbedingung Erfolg Eine neue Transition wird erzeugt Falls eine Methode ausgew hlt ist so muss diese an der Transition erscheinen Nachbedingung Fehlschlag Eine aussagekraftige Fehlermeldung wird ausgegeben Eingabedaten Zu verbindende Zust
233. ndelement sind m ssen das Inter face Child implementieren Abbildung 15 10 zeigt eine bersicht dieser Struktur Vererbungsbeziehungen sind dann mit eingezeichnet wenn dadurch das Verst ndnis erleichtert wird eine vollst ndige Darstellung der Vererbungsbeziehungen ist in den nachfolgen den Abschnitten enthalten Bei der Modellierung der Eltern Kind Beziehung wurden folgende Anforderungen ber cksichtigt Die Beziehungen sollten gegenseitig aufeinander abgestimmt sein d h genau dann wenn ein Element A Vater von einem Element B ist soll B Kind von A sein Die Beziehungen sollen sich daran orientieren was im Navigationsbaum an gezeigt werden soll damit dieser m glichst einfach zu implementieren ist Zu beachten ist jedoch dass nicht alle Klassen des Modells ber die Eltern Kind Beziehungen zu erreichen sind Das sind alle Verbindungen Connections alle Elemente der View Ebene alle Z Elemente und die DC Elemente e Die drei Ebenen im Syspect Model Es gibt drei Ebenen denen fast alle Modellelemente zugeteilt werden k nnen Die reine Model Ebene beinhaltet alle wesentlichen Elemente des UML Profils siehe Kapitel 9 S 77 und Kapitel 14 2 S 143 als Interfaces sowie sinnvolle abstrakte Superinterfaces So gibt es z B f r das Capsule Element das Interface Capsule Projektgruppe Syspect 168 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF lt lt interface gt
234. ndet Abbildung 15 1 stellt grob die Abh ngigkeiten dieser verschiedenen Softwarekomponenten dar Abbildung 15 1 Abh ngigkeiten des Syspect Werkzeuges Die Architektur von Syspect kann also keineswegs als allein stehend betrachtet wer den sondern muss im Kontext der bestehenden Software gesehen werden in die sie eingebettet ist Im folgenden Unterabschnitt wird deswegen zun chst dieser Kontext und seine wesent lichen Komponenten n her beschrieben 15 2 1 Umgebung und Einbettung Eclipse besteht zun chst aus der Eclipse Plattform welche ein Laufzeitmodul ist das Plug ins verwalten kann Alle weiteren Funktionalit ten werden durch Plug ins bereit gestellt Zus tzliche Flexibilit t wird dadurch erreicht dass Plug ins wie das weiter unten beschriebene GEF auch Schnittstellen f r andere Plug ins bereitstellen k nnen Die Verwendung als Entwicklungsumgebung ist die g ngigste M glichkeit Eclipse ein zusetzen Eclipse stellt weiterhin eine Rich Client Platform RCP zur Verf gung mit der es m glich ist ein eigenes Softwareprodukt auf der Basis des Eclipse Frameworks zu erstellen in dem dann nur die daf r ben tigten Plug ins enthalten sind Durch dieses Konzept l sst sich trotz der anfangs etwas l ngeren Einarbeitungszeit sehr viel Zeit bei der Implementierung h ufig genutzter Komponenten wie Wizards und Projektgruppe Syspect 148 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF Editoren einsparen
235. ne Operation implementiert wird wird jeder Operation ein weiterer stereo type zugeordnet Hierbei sind n out in_S und out_S erlaubt in und out bezeichnen Eingangs bzw Ausgangsoperationen in_S und out_S die entsprechenden Broadcast operationen IRT Real Time Projektgruppe Syspect Fe 12 Oktober 2006 Endbericht KAPITEL 9 EIN UML PROFIL F R CSP OZ DC Jede Klasse mit einem Stereotyp besitzt unterschiedliche tags in die f r die berset zung notwendige Spezifikationen eingetragen werden 9 2 1 Capsule Jede Klasse des Stereotyps capsule besitzt drei tags invariant definiert die Klasseninvariante init beinhaltet die Initialisierungswerte der Klasse dc counterexample enth lt die f r die Klasse geltenden DC Gegenbeispiel Formeln invariant und init werden unmittelbar als OZ Spezifikationen eingetragen dc coun tererample besteht wie aus dem Namen ersichtlich ist aus Gegenbeispielformeln des Duration Calculus Jede Operation der Klasse besitzt wiederum drei tags changes definiert die Attribute die durch die Operation ver ndert werden enable enthalt die Vorbedingung fiir die Ausfiihrung der Operation effect definiert die nderung der Attribute bei Ausf hrung der Operation Diese tags werden alle mit OZ Code gef llt 9 2 2 Protocol Jedes Operation eines protocols besitzt die folgenden tags input die Eingabeparameter output die Ausgabeparameter simple die zur Adressierung einer Instanz n tigen Adress
236. ne od Sele he a Del fen a dt za a ad Pe en OE 157 15 3 1 Gliederung der Plug ins px Veran Spe ee Spe Ges 157 15 3 2 Syspect Core Plug in 2 24 25 weak OG eek OS eh OS 157 15 3 3 SyspectNavigator Plugin eh eo 2884 ah eS Gx 163 15 3 4 SyspectPersistence Plug in nenn 164 15 3 5 SyspectUtils Plug in ao eal TREE TR ee 166 15 3 6 SyspectModel Plug in 0 000000 4 167 15 3 7 SyspectModelConsistencyChecker Plug in 179 15 3 8 SyspectDiagramEditorBundle Plug in 180 15 3 9 Die drei Diagrammeditoren 183 15 3 10 Syspect DiagramConsistencyChecker Plug in 188 15 3 11 Syspect OZ DC Util Plug in e en ea a a 189 15 3 12 Syspedt Properties Plug in 2 2 22x He bee Zara 190 15 3 13 SyspectCSPOZDCExport Dun 194 15 3 14 Syspect PEA Export Plug in sb Mw Baas ee 201 15 3 15 SyspectImageExport Plug in He e crys iow ate a 201 15 3 16 SyspectComponentTable Plug in 202 Projektgruppe Syspect v 12 Oktober 2006 Endbericht INHALTSVERZEICHNIS 15 3 17 Richtlinien f r den Quellcode e 202 III Zusammenfassende Bewertung und Ausblick 205 16 Zusammenfassende Bewertung 207 16 1 Fallstudie EN EI AA ER EEE 208 17 Ausblick 209 TEREME AO AO AO A e E A 209 das ANI a A Seah de doo de SAAS de BSS e dal y Md A 210 17 3 Druckfunktion A a 210 17 4 Notizzettelkomment re 2 2 22 ee ah eu 211 a Sn AA AAA 211 17 6 Verschieben von Klassen ra
237. nen Beispielhaft kann an dieser Stelle der Perspektivenwechsel genannt werden Sha04 2 2 1 Grundbausteine eines Plug ins Im Abschnitt 2 2 wurden so genannte Integrationspunkte angesprochen auf die Plug ins aufbauen k nnen Diese Integrationspunkte bilden den Grundbaustein des Eclipse Plug in Mechanismus Bei der Entwicklung eines Plug ins muss daher bekannt sein wo das Plug in in Eclipse von technischer Seite integriert bzw auf welche Grundfunktio nen es aufgebaut werden kann Dieses Prinzip wird durch so genannte extension points und extensions verwirklicht Extension points definieren die Integrationspunkte auf denen neue Plug ins durch eine extension auf diesen extension point aufbauen k nnen Die extension points beziehen sich dabei auf die in Abschnitt 2 2 zuvor beschriebenen unterschiedlichen Schnittstellen bzw die Schnittstellen bieten verschiedene extension points f r Plug ins an Die extensions eines Plug ins werden in einer XML Datei mit dem Dateinamen Plugin xml definiert siehe Abbildung 2 4 Allein die Definition einer extension in der XML Datei reicht f r Eclipse aus diese zu laden So wird beispiels weise ein Men eintrag ohne jegliche Implementierung bereits angezeigt Die eigentliche Implementierung zu einer extension welche das Plug in bzw die Erweiterung im Plug in eigentlich ausmacht wird durch eine Java Klasse repr sentiert die eine von dem extension point vorgegebene Schnittstelle implementiert Diese
238. nen Animator ZMLTP Dies ist ein Projekt mit dem Ziel HTML aus ZML zu generieren Viele der Tools sind noch in einer relativ fr hen Entwicklungsphase wie zum Beispiel ZMLTP 5 3 ZML ZML ist ein Datenaustauschformat fiir Z und soll dazu dienen Anwendungen verschie dener Entwickler zu integrieren um insgesamt eine Umgebung zu erhalten in der Z entwickelt werden kann Wie der Name schon andeutet ist ZML als XML realisiert Es basiert auf einem XML Schema das im ZML Unterprojekt entwickelt wird Dieses basiert auf dem ISO Standard fiir Z Projektgruppe Syspect 44 12 Oktober 2006 Endbericht KAPITEL 5 COMMUNITY Z TOOLS 5 3 1 Aufbau Ein Z Term x N wird als lt VarDecl gt lt DeclName gt lt Word gt x lt Word gt lt DeclName gt lt RefExpr Mixfix false gt lt RefName gt lt Word gt N lt Word gt lt RefName gt lt RefExpr gt lt VarDecl gt dargestellt Der ZML Ausdruck hat folgenden Aufbau Zun chst wird deklariert dass es sich um eine Variablendeklaration handelt Der Name der zu deklarierenden Variablen ist x Im zweiten Teil der Deklaration wird festgelegt dass X vom Typ N sein soll Andere Ausdr cke werden entsprechend umgeformt 5 4 JEdit Plug ins In diesem Unterprojekt des Community Z Tools Projekts ist eine Sammlung von Werk zeugen und Erweiterungen f r den in Java geschriebenen Texteditor JEdit zu finden 5 4 1 CZTSans Hierbei handelt es sich um eine Schriftart in der zus t
239. nente kann problemlos als Kind der u eren Komponen te gespeichert und gezeichnet werden Die Figure des Provided Interfaces liegt jedoch au erhalb wodurch sie nicht als Kind von ihrer zugeh rigen Komponen te gezeichnet werden kann Dieses musste im Editor so umgangen werden dass ein Parent von einer Komponente dessen Interfaces zeichnet d h im Detail der EditPart des Komponentendiagramms und der einer Komponente zeichnen ihre Komponenten Kinder und auch deren Interfaces e Ein Provided Interface und ein Required Interface k nnen miteinander verbunden werden wodurch sich ein AssemblyConnector ergibt Hierbei tritt die Schwierig keit auf dass zwei Figuren miteinander verbunden werden m ssen die keine Verbindungslinie haben und dass beide Figuren durch einen AssemblyConnector ersetzt werden m ssen Hierbei wurde eine Policy verwendet mit der man Figu ren zu Figuren hinzuf gen kann also ein Provided zu einem Required Interface Projektgruppe Syspect 185 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF Interface Abbildung 15 27 Der Zeichenbereich einer Komponente rot hinterlegt und umgekehrt ConnectorXYLayoutPolicy Der dadurch aufgerufene Command AssemblyConnectorCreateCommand f gt beiden Interfaces ein AssemblyConnec tor Modelelement hinzu Bei dem Zeichnen der Interfaces wird im entsprechenden EditPart darauf getestet ob ein Interface einen AssemblyConnector hat und die ser dann anstelle des Interfaces Figur
240. nenten die gleiche Rolle in beiden Verbindungen einnehmen also auf der gleichen Seite der Verbindung auftauchen p r A N r B V p A N p B 2 F r die neue Zeile erhalten wir dann die Vereinigung der Interfaces int A int A U int B Wenn die gemeinsamen Komponenten die gleiche Rolle einnehmen dann wer den Require und Providespalte direkt vereinigt p gt r A r A U r B A p 4 p A U p B sonst werden sie mit vertauschten Rollen bei einer der Verbindungen zusammengefasst r 4 r 4 U p B A p A p A Ur B Die urspr nglichen Zeile B wird dann gel scht Bei der jeweils n chsten berpr fung ist zu beachten dass sich die Priorit ten aller Verbindungen ggf durch die neue Zeile ge ndert haben kann bersetzung nach CSP Bei der bersetzung eines Komponentendiagramms m s sen nun alle Komponenten die in dem Diagramm auftauchen als Prozesse instantiiert werden Inst C C ist im Diagramm instantiierte Komponente Die Komponenten die hierbei mit anderen Komponenten verbunden sind finden wir in der erzeugten Tabelle 4 1 wieder U comp A Inst Wir beginnen mit der bersetzung der verbundenden Komponenten Dazu werden die Zeilen der Tabelle nun nach Priorit t geordnet abgearbeitet Begonnen wird mit einer Zeile mit der niedrigster Priorit t F r eine Komponente C eine Verbindung J und einen Prozess PI definieren wir uns induktiv eine Alphabetfunktion im
241. ng F r das UML Profil mussten einige Einschr nkungen getroffen werden So m ssen cap sules die von einer anderen capsule erben deren Statemachine implementieren Die einzige erlaubte Erweiterung ist die parallele Ausf hrung einer neuen Statemachine Weiterhin ist zu beachten dass ein base port nur mit einem conjugated port verbunden werden darf und nicht mit einem weitern base port Fine Ausnahme hiervon bildet das Delegieren einer Portfunktion von einer u eren capsule auf eine innere Mithilfe dieses UML Profils wurde gezeigt dass eine eindeutige bersetzung von UML in CSP OZ DC m glich ist Damit wurde gleichzeitig der UML eine definierte Semantik hinzugef gt Projektgruppe Syspect 82 12 Oktober 2006 Endbericht KAPITEL 10 SOFTWARE TESTEN Kapitel 10 Software testen Christian Wenzel 10 1 Einleitung Dieses Dokument ist im Rahmen der Projektgruppe Syspect an der Universit t Olden burg entstanden Es erl utert eine Vorgehensweise beim Testen von Software Durch das Testen von Software soll das tats chliche Verhalten dieser mittels Testobjekte und eines Testplans untersucht werden Der Begriff Testobjekt bezeichnet konkrete Instan zen von Klassen die zum Testen des Systemcodes verwendet werden Die Ergebnisse dieser Untersuchung werden mit den Soll Ergebnissen laut Anforderung verglichen und dokumentiert Das Testen sollte den gesamten Entwicklungsprozess begleiten und nicht am Ende des Projektes unter Zeitdru
242. ng einer grafischen Entwicklungsumgebung f r eine formale UML Teilsprache Eclipse und GEF bieten sich dabei als Plattform f r eine solche Entwicklungsumgebung an 2 1 1 Plug ins und Eclipse Ein Plug in engl to plug in einst pseln anschlie en ist eine Softwarekomponente welche die Funktionalit t einer anderen Software benutzt und oder erweitert Es kann daher auch als Erg nzungs oder Zusatzmodul beschrieben werden Der Vorgang der Erweiterung muss dabei ber festgelegte Schnittstellen der Software definiert werden die erweitert werden soll Diese Schnittstellen bilden in Eclipse den zentralen Mecha nismus um Funktionalit ten hinzuzuf gen Dementsprechend bildet ein Plug in auch die kleinste Funktionseinheit in Eclipse Eclipse selbst ist nur eine Allzweck IDE und eine Integrationsplattform f r Software Werkzeuge Die einzige Funktionalit t beruht auf einem Laufzeitmodul der Eclipse Plattform das Plug ins verwaltet und daher selbst kein Plug in ist Sha04 Die Plattform bietet f r Plug ins unter anderem die Vorteile einer einheitlichen Um gebung sowie einer einfachen Integrationsm glichkeit Weiter gibt es keine Inkompati bilit ten Damit die Vorteile gew hrleistet werden k nnen stellt Eclipse verschiedene Bibliotheken Schnittstellen und Frameworks zur Verf gung auf die sp ter genauer eingegangen werden soll Abbildung 2 1 verdeutlicht den Aufbau von Eclipse Die als Eclipse The Eclipse Pro ject bekann
243. nie mit der assozierten Komponente verbunden ist dargestellt wird beziehungswei se das required interface welches anstelle eines Kreises einen Halbkreis besitzt Die Kommunikation zweier Komponenten wird ber einen sogenannten assembly connector modelliert der einen Kreis darstellt der von einem Halbkreis umfasst wird Wie auch im alten Profil ist es m glich dass mehrere Komponenten ber dieselbe Schnittstelle miteinander kommunizieren und sich auf dieser Kommunikation synchronisieren also dass alle verbundenen Komponenten gleichzeitig die entsprechende Methode ausf hren Hierzu werden alle entsprechenden Komponenten ber denselben assembly connector verbunden 14 3 Sonstige nderungen Bei der folgenden Aufz hlung wird immer zu Beginn auf den Bezugspunkt in Pro duktskizze oder Anforderungsdefinition hingewiesen Wenn gew nschte Funktionalit t zwar bedacht aber nicht umgesetzt wurde so wird dies im Kapitel Ausblick S 209 besprochen e Produktskizze 12 2 Es gibt keine speziellen Buttons f r den Export Dieser ist stattdessen ber das Hauptmen bzw das Kontextmen erreichbar e Produktskizze 12 2 2 Es ist nicht m glich in einem Komponentendiagramm ein neues Komponentendiagramm f r das Spezifizieren des Inneren einer capsule anzulegen Das Innere eine capsule kann direkt in der capsule in genau einem der Komponentendiagramme spezifiziert werden in denen die capsule auftaucht e Produktskizze 12 2 3 Es gibt
244. nisation des Quellcode geben Auf die einzelnen Funktionen von Paketen wird hier nicht n her eingegangen Externe Bibliotheken die von ArgoUML verwendet werden Das Graphical Editing Framework GEF dient zur visuellen Darstellung der ein zelnen Diagramme sowie das Manipulieren dieser Elemente Die Extended JToolbar wird von ArgoUML benutzt um einige Funktionen in Form von Icons zugreifbar zu halten I18n Internationalization Dies ist ein Dienst zur Bereitstellung von verschie denen Sprachen wie Deutsch Englisch etc NSUML ist eine Implementierung der UML Metasprache 1 3 die als Grundlage f r die verschiedenen Diagrammarten verwendet wird Hierin sind alle Diagram marten und deren Beziehungen ausgedr ckt Xerces dient zum Parsen von XML Dokumenten die von ArgoUML eingelesen werden sollen Das UML Metamodel Interface JMI dient zum Zugriff auf das durch die NSUML Bibliothek bereitgestellte UML Metamodell Log4j Logging Framework stellt eine Funktionalit t zur Verf gung die es Ar goUML erlaubt interne Meldungen in einer Log Datei zu f hren ANTLR Translator Generator wird von ArgoUML ben tigt um Reverse Engi neering zu erm glichen Projektgruppe Syspect 38 12 Oktober 2006 Endbericht KAPITEL 4 ARGOUML Organisation der ArgoUML Bibliotheken Der Quellcode von ArgoUML ist in so genannte subsystems unterteilt Die Idee ist dass jedes subsystem nur fiir einen kleinen Funktionsbereich zust ndig ist
245. nteraktion abstrakt in einem Interaktions bersichtsdiagramm dargestellt werden Teilinter aktionen die sich aus diesem Diagramm ablesen lassen k nnen sind dann wieder als Sequenzdiagramm darstellbar e Kommunikationsdiagramm engl communication diagram Kommunikationsdia gramme stellen ebenso wie Sequenzdiagramme Interaktionen mit ihren versende ten Nachrichten dar doch liegt hier nicht der Schwerpunkt auf der Reihenfolge der versendeten Nachrichten sondern auf den Relationen der Auspr gungen die diese Nachrichten versenden zueinander eine Zeitachse ist hier also nicht ge geben daf r k nnen die Symbole f r die Auspr gungen so angeordnet werden dass sie f r die Darstellung am bersichtlichsten sind e Zeitverlaufsdiagramm engl timing diagram Zeitverlaufsdiagramme sind zweidi mensionale Diagramme bei denen die X Achse die Zeit und die Y Achse Objekte im weitesten Sinne und deren Zust nde darstellen Dieser Diagrammtyp hnelt damit der Anzeige eines Oszilloskops wird also seit langem in der Elektrotechnik verwendet 6 1 3 Drei Diagrammtypen am Beispiel erl utert Kompositionsstrukturdiagramm Abbildung 6 1 zeigt ein Kompositionsstrukturdiagramm f r einen Software Baustein Wetterstation Diese hat drei Parts also innere Bausteine einen Logger einen Report Generator und einen Data Collector Der Baustein besitzt au erdem einen komplexen Projektgruppe Syspect 51 12 Oktober 2006 Endbericht KAPITE
246. nterface gt gt IMethod invariant init lt lt interface gt gt ISystemDefinition lt lt interface gt gt lt lt interface gt gt IClass IMethodSignature Abbildung 15 15 Z Elemente Kontext Verbindungen Das Superinterface aller Verbindungselemente ist IConnection Folgende Interfaces sind ihr untergeordnet e Verbindungen der Model Ebene IClassConnection als Ober Interface f r alle Verbindungen die in Klassen diagrammen vorkommen k nnen Dies sind im Einzelnen IAggregation IAssociation IComposition IDependency IGeneralization und IRealization ITransition als einzige Verbindung auf Modelebene die nicht ins Klassen diagramm geh rt e Verbindungen der Viewable Ebene IViewableConnection als Oberklasse f r alle Verbindungen dieser Ebene Dazu geh ren zum einen die Viewable Elemente der Verbindungen auf Mo del Ebene und zum anderen die Verbindungen die keine Entsprechung im Model haben Letztere werden im Abschnitt Kontext Diagramme und Ver bindungen auf Viewable Ebene S 177 n her erl utert e Die einzige Verbindung der View Ebene Projektgruppe Syspect 174 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF IEdge Jede IViewableConnection Instanz hat eine 1 1 Beziehung zu einer IEdge Instanz N heres zur IEdge im Abschnitt Kontext Die View Ebene S 179 lt lt interface gt gt IConnection A lt
247. ohl eine Bandbreite an Editor Funktionalit t zur Ver f gung die von Syspect genutzt oder angepasst werden kann als auch eine solide modulare Architektur Projektgruppe Syspect 150 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF GMF GMF Das Graphical Modeling Framework ist ein Plug in f r das Generieren von gra fischen Editoren und basiert auf GEF und EMF siehe auch Kapitel 16 1 S 209 Da GMF jedoch ein sehr neues unerprobtes Produkt ist konnten wir es leider nicht f r die Generierung unserer grafischen Editoren nutzen Das einzige was wir von diesem Plug in f r uns verwendet haben ist einige Funktio nalit t f r den Image Export siehe auch Abschnitt 15 3 15 S 201 PEA Tool Das PEA Tool HMO5 ist ein Software Werkzeug von Jochen Hoenicke und Roland Meyer und dient dazu Phasen Event Automaten PEA in eine Java Repr sentation darzustellen Das Werkzeug bietet dar ber hinaus die M glichkeiten PEA nach XML zu konvertieren DC Countertrace Formeln in PEA umzuwandeln und das Parallel Produkt von PEAs zu berechnen Bislang fehlte eine M glichkeit die Transitionen in PEA mit Z Ausdr cken zu beschriften diese wurde im Laufe unseres Projektes hinzugef gt Die XML Darstellung die vom PEA Tool produziert wird kann als Eingabe f r einen Model Checker benutzt werden Intern gliedert sich das PEA Tool folgenderma en Die Klasse PhaseEventAutomata dient als Repr sentation von PEA Die Phasen werden durch Objek
248. oll zu sein da dieses Plug in sehr einfach aufgebaut ist aber dennoch wegen der JEdit Anbindung vergleichsweise viel unn tigen Quellcode enth lt Eine eigene Implementierung zur Eingabe von Z Ausdr cken wird vermutlich zu bessereren Resultaten f hren Die Nutzung von gewissen Werkzeugen aus den Community Z Tools scheint also durch aus sinnvoll Projektgruppe Syspect 48 12 Oktober 2006 Endbericht KAPITEL 6 EINF HRUNG IN UML UND XMI Kapitel 6 Einf hrung in UML und XMI Florian Marwede 6 1 UML Unified Modeling Language 6 1 1 Einleitung UML ist eine standardisierte Beschreibungssprache f r Strukturen und Abl ufe in ob jektorientierten Softwaresystemen und wurde ab Ende 1997 von der Object Manage ment Group OMG entwickelt Sie ist eine Sammlung grafischer Notationsweisen die in zwei Bereiche aufgeteilt ist 1 Strukturdiagramme um statische Aspekte darzustellen 2 Verhaltensdiagramme um dynamische Aspekte darzustellen Die einzelnen Diagrammtypen die sich den beiden Bereichen zuordnen lassen werden im n chsten Kapitel dargestellt UML wird durch ein Metamodel die Meta Object Facility MOF definiert diese wird im Wesentlichen durch vier Abstraktionsebenen beschrieben e MO Ebene konkrete ausgepr gte Daten e Il Ebene z B physikalische oder logische Daten Prozess oder UML bzw Objekt Modelle die die Daten der MO Ebene definieren e M2 Ebene Meta Modelle die definieren wie die Modelle au
249. omponenten gebildet die von der kleinsten zur gr ten bersetzt werden F r die Priorisierung z hlen wir einfach wie oft eine Verbindung A eine andere ber deckt prio A 4 A A A A gt A In der Implementierung wird die hier zur Bestimmung der Priorit t benutzte Menge f r jede Verbindung auch festgehalten um die Neuberechnung der Priorit t nach einem Ubersetzungsschritt s u effizient zu halten Zweites Zusammenfassen Wiederum werden paarweise alle Zeilen der Tabelle betrachtet Hierbei seien die AssemblyConnectoren mit A und B bezeichnet und share A B ist die Menge der gemeinsamen Komponenten von A und B Die beiden Zeilen werden genau dann zusammengefasst wenn share A B 8 A compatible A B A prio A prio B also wenn die beiden Verbindungen gemeinsame Komponenten haben sich nicht tiber decken und kompatibel sind also die gemeinsamen Komponenten jeweils auf der glei chen Seite der Verbindungen liegen ggf nach Vertauschung der Rollen bei einer Ver bindung Zusammengefasst werden die Zeilen indem die neue Zeile die Uberdeckung der einen Verbindung durch die andere ausdriickt Hierbei muss sichergestellt werden dass in der Projektgruppe Syspect 198 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF neuen Zeile die Require und Providespalten jeweils nur Elemente vereinigen die nicht schon in der jeweils anderen Spalte auftauchen Das Pr dikat y soll ausdr cken ob gemeinsame Kompo
250. on Eclipse unabh ngig und kann deshalb auch jenseits der Eclipse IDE verwen det werden Es baut lediglich auf SWT auf das ebenfalls au erhalb von Eclipse benutzt werden kann Draw2d ist eine m chtige Bibliothek zum Zeichnen von Diagrammen bzw von so genannten Figures die ein Diagramm ergeben und Connections welche die Verbindungen zwischen Figures darstellen Es beinhaltet beispielsweise einen m chti gen Layout Algorithmus f r gerichtete Graphen sowie einen Shortest Path Connecti on Router EF106c GEF Flow Example ly Select Marques een Connection Alarm Creation 2Compone Wake up Activity Sequential Hit snooze button Activity A Parallel Go back to sleep Activity Sm 1 Turn off alarm 16 Get out of bed Wake up Bathroom activities Abbildung 2 9 Beispiel f r einen grafischen Editor mit GEF Die GEF Architektur bildet eine MVC Architektur ab siehe Abbildung 2 10 Das Mo del ist unabh ngig von der View und der Controller verbindet View und Model mitein ander GEF l sst hier nahezu jegliche Modelle zu Die Daten aus dem Model werden von der View durch Figures dargestellt welche durch so genannte EditParts die den Con troller Teil bernehmen mit dem Model verbunden werden Wenn nderungen am Model auftreten werden die EditParts benachrichtigt und k nnen dementsprechend Projektgruppe Syspect 25 12 Oktober 2006 Endbericht KAPITEL 2 ECLIPSE PLUGINS UND GEF
251. ons Das Konzept der Actions ist ein von Eclipse bereitgestellter Mechanismus bei dem durch Auswahl z B eines Men punktes bestimmte Aktionen ausge f hrt werden Zu diesem Zweck muss die abstrakte Klasse Action des Paketes org eclipse jface action erweitert werden Diese stellt eine Standardimplemen tierung f r das Erstellen von konkreten Actions zur Verf gung Insbesondere muss die run Methode die das Verhalten der Action spezifiziert implementiert werden Ei ne M glichkeit diese Actions in eine GUI von Eclipse bzw der RCP einzubinden ist ber entsprechende Extension Points Diese werden in der plugin xml definiert U a gibt es die Extension Points editorActions viewActions oder popupMenus Abbil dung 15 7 zeigt eine solche Definition In diesem Beispiel wird eine Action f r ein Kontextmen in einer View definiert ber Attribute und Tags werden entsprechende Einstellungen f r eine Action durchgef hrt F r genauere Informationen sei auf die Eclipse Dokumentation verwiesen lt extension point org eclipse ui popupMenus gt lt viewerContribution id de syspect navigator view delete targetID de syspect navigator view diagram gt lt action class de syspect controller diagram actions DeleteAction icon images delete gif id de syspect navigator view delete entry label Delete menubarPath new menu gt lt enablement gt lt objectClass name de syspect modelinterface IDeletable gt lt enablement gt lt
252. ovideseite von A auftauchen A ist genau dann eine echte berde ckung von B wenn B dabei keine berdeckung von A ist Wir sagen die Verbindungen sind berdeckungskompatibel genau dann wenn eine der Komponenten die andere echt berdeckt cover A B A gt BVB gt A Zum anderen sind die Verbindungen vertraglich wenn ggf durch Vertauschung der Rollen bei einer Verbindung Require und Provide auf den gemeinsamen Komponenten Projektgruppe Syspect 197 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF bereinstimmen compatible A B r A N share A B r B N share A B p A N share A B p B N share A B V r A N share A B p B N share A B A p A N share A B r B A share A B Alternativ kann dieses auch wie folgt berpr ft werden compatible A B amp r AANr B U p A Np B v r A N p B U p A N r B Wieder gehen wir paarweise alle Zeilen der Tabelle durch Tests lt n n 1 Sei A die erste und B die zweite betrachtete Zeile Ein Konflikt zwischen den Zeilen besteht genau dann wenn GH 0 share A B 4 9 N cover A B A compatible A B In dem Fall sind also die Verbindungen der Komponenten share A B ber die Inter faces int A U int B nicht kompatibel miteinander Priorisierung Die Priosierung soll sicherstellen dass Verbindungen deren Kompo nenten Teil einer anderen Verbindung sind favorisiert bersetzt werden Es werden also quasi Subk
253. pe Syspect 21 12 Oktober 2006 Endbericht KAPITEL 2 ECLIPSE PLUGINS UND GEF Hanifest Version 1 0 Bundle ManifestVersion 2 Bundle Name HelloWorld Plug in Bundle SymbolicName HelloWorld singleton true Bundle Version 1 0 0 Bundle Activator helloWorld HelloWorldPlugin Bundle Vendor guen Bundle Localization plugin Require Bundle org eclipse ui org eclipse core runtime public class HelloWorldPlugin extends AbstractUIPlugin Eclipse AutoStart true public HelloWorldPlugin public void start BundleContext context throws Exception public void stop BundleContext context throws Exception Abbildung 2 5 Eine Manifest Datei eines Plug ins und dessen Java Klasse 2 2 2 Ressourcen Framework Das Ressourcen Framework bildet die Schnittstelle zu dem in Eclipse benutzten Workspace Dabei gibt es zwei Ansichten des Workspace Die physikalische Ansicht welche die Ordner und Dateien auf der Festplatte bezeichnet und die logische An sicht die die Abbildung des Workspaces in Eclipse durch das Ressourcen Framework darstellt Das Ressourcen Framework hat dabei einen viel gr eren Umfang und ei ne gr ere Funktionalit t als die physikalische Sicht Neben dem Erzeugen Verwalten oder L schen von Ressourcen unterst tzt dieses Framework auch die Ressourcenereig nisverarbeitung sowie Ressourceneigenschaften Natures Builder und Markierungen Aufgrund dieser zwei Ansichten spielt die Synchronisation beider eine
254. pect editorbundle Abbildung 15 5 Extension Points des Plug ins org eclipse ui Das Plug in org eclipse ui unterst tzt die Interaktion mit und die Erweiterung von der Benutzerschnittstelle GUI Wir verwenden daf r folgende Extension Points e org eclipse ui actionSets wird zum Hinzuf gen von Men s Men Items und Toolbar Buttons an den daf r vorgesehenen Stellen der Arbeitsf che verwendet e org eclipse ui commands wird benutzt um Actions in einem bestimmten Sco pe Bereich an ein Command zu binden Diese Commands werden sowohl ver wendet um Men Eintr ge mit Funktionalit t zu belegen als auch Tastaturk r zel zu erm glichen Die Idee von Commands ist hierbei dass ein Command z B delete in einem Fditor anders auszuf hren ist als beispielsweise im Navigator Dies kann dar ber realisiert werden dass man im Editor Kontext eine andere Action an das Delete Command bindet als beispielweise im Navigator Kontext In Syspect werden die Commands bislang stehts mit der gleichen Action belegt und sind somit nur daf r da Tastaturk rzel zu erm glichen Es sei darauf hingewiesen dass in diesem Zusammenhang der Begriff Command eine andere Bedeutung hat als bei den GEF Editoren siehe Abschnitt 15 2 1 S 149 und Abschnitt 15 3 8 und S 181 org eclipse ui editors dient zum Hinzuf gen von Editoren Es wird sowohl die Erstellung interner Editoren die fest integrier
255. ppe Syspect 180 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF der Klassendiagramm spezifisch ist SyspectCommand SyspectCore CreateCommandWithConstraints N CreateConnectionCommand Meth ri mm lethodCreateCommand SyspectEditorBundle CreateClassConnectionCommand AbstractClassCreateCommand ClassDiagramEditor 1 A CreateAssociationCommand InterfaceCreateCommand Abbildung 15 24 Vererbungshierarchie bei den CreateCommands Nach demselben Prinzip sind in diesem Plug in auch Klassenhierarchien anderer GEF Grundtypen wie EditPart EditPolicy und Figure siehe Abschnitt 15 2 1 S 149 bereitgestellt um das Implementieren von Diagrameditoren zu erleichtern Da es wie oben schon erw hnt ein Syspect eigenes Command Konzept gibt soll im folgenden Abschnitt n her darauf eingegangen werden Commands Eine elementare Rolle spielt in Syspect das Command Pattern denn jede nderung am Model wird durch Commands ausgef hrt Die von uns verwendeten Commands bestehen aus folgenden Methoden deren Inhalte im Folgenden beschrieben werden e In den Konstruktoren sollen nur die bergebenen Felder gespeichert werden da der Konstruktor potentiell sehr oft aufgerufen wird e init Hier soll das Erstellen von Objekten z B eines Teilbaums mit einem View able und einem View Modelelement geschehen Wichtig ist hierbei dass keine
256. r Tools komfortabel im Men oder direkt in der plugin xml editiert werden Beim Feinentwurf werden die einzelnen Komponenten definiert d h die Plug in Struktur f r Syspect erstellt Beispielhaft dargestellt sei die Ausgliederung der Views und Editoren in einzelne Plug ins Diese umfassen die Diagramm Editoren sowie den Navigator Die Editoren besitzen Abh ngigkeiten zum Navigator und zum SyspectDiagramEditorBundle Plug in Dieses stellt allgemeine Funktionalit ten f r die Editoren zur Verf gung Die Editoren benutzen zur Darstellung von Objekten GEF Dieses bedient sich der MVC Architektur so dass eine strukturierte Klassen Projektgruppe Syspect 207 12 Oktober 2006 Endbericht KAPITEL 16 ZUSAMMENFASSENDE BEWERTUNG hierarchie innerhalb der Editor Plug ins garantiert wird Diese Architektur liegt auch den meisten anderen Komponenten zu Grunde Folglich ist die Paketstruktur der Plug ins einheitlich Als Stammpaket wurde entsprechend der Konvention de syspect gew hlt F r eine Bewertung sei hier auf die Strukturierung des Models eingegangen In einer Redesign Phase wurde ein Model das f r die L sung komplexer Probleme nicht mehr ausreichte durch ein neu entworfenes Model ersetzt Das neue Model basiert auf einer Interface Struktur die den Austausch der Modelimplementierung erlaubt Die Interface Struktur befindet sich im Syspect Core Plug in und das konkrete Model wurde in das SyspectModel Plug in ausgelagert Nach der Umste
257. rary Plug ins sind in Abbildung 15 3 zu sehen lt lt component gt gt lt lt component gt gt de syspect editorbundle de syspect componenttable l T T Sak o dE oa ain Sa ty ef a et bech d lan teh l l l l l Vv lt lt component gt gt lt lt component gt gt lt lt component gt gt de syspect consistency diagram de syspect core de syspect consistency model I zo 5 ES l 1 T l l i l l lt lt component gt gt lt lt component gt gt i de syspect properties de syspect export cspozdc 1 Bar eS aS n ege aA l es Sie l l l D s A i E A Vv 2 lt lt component gt gt lt lt component gt gt lt lt component gt gt de syspect statemachineeditor de syspect utils de syspect export pea 7 A A A x H 1 1 ES Y D H l lt lt component gt gt z e 1 N lt lt component gt gt de syspect classdiagrameditor de syspect ozdcutil 177 1 1 x 1 e 1 N H H dr Y N i Y y N H l L lt lt component gt gt lt lt component gt gt lt lt component gt gt z de syspect editor componentdiagram de syspect persistence de syspect export image Abbildung 15 3 Abh ngigkeiten von Library Plug ins Aktive Plug ins Auf der anderen Seite gibt es aktive Plug ins Diese implemen
258. rator dient zum Modellieren von nacheinander stattfindenden Ereignissen Die Formel f X beispielsweise ist so zu verstehen Auf dem gesamten Beobach tungsintervall ist die Observable X wahr Es kann nur punktuelle Ausnahmen geben diese k nnen vom DC nicht eingeschr nkt werden da ber Variablen nur mithilfe des Integraloperators geredet werden kann Die Formel P Q besagt dass es einen Zeitpunkt in unserem Beobachtungsintervall gibt so dass vom Anfang unserer Beobachtung bis zu diesem Zeitpunkt fast berall P wahr ist und ab diesem Zeitpunkt Q fast berall wahr ist Hierbei wird nicht ausge schlossen dass Q beispielweise dauerhaft wahr ist Ebenso wird von P nicht verlangt dass sich der Zustand der Observablen in dem sogenannten chop Punkt ndert Zur Veranschaulichung dieser Formel ist eine erf llende Interpretation in Abbildung 8 1 zu sehen Hierbei sind an den Stellen wo keine Werte f r die Observablen angegeben sind diese beliebig Projektgruppe Syspect 71 12 Oktober 2006 Endbericht KAPITEL 8 CSP OZ DC UND PEA P1 Abbildung 8 1 Erf llende Interpretation f r P Q 8 3 Phase Event Automata Phaseneventautomaten PEA liefern einen Formalismus mit dem es m glich ist ei ne gemeinsame Semantik f r CSP OZ DC zu formulieren Ein PEA ist ein 8 Tupel P V A C E s I Po Die einzelnen Komponenten sind e P Zustandsmenge e V Menge von Zustandsvariablen e A Menge von Events
259. rbindung durch den Command ProvidedCreateCommand gesetzt wird Hierzu ruft der CreateProvide RequireWithWizardCommand den Command ProvidedCreateCommand auf Die Abbildung 15 26 zeigt diesen Vorgang anhand von Screenshots des Editors 4 Palette Select Compone ST Component Line In Interface12 Figure Is ES Require Q Provide Delegate Abbildung 15 26 Die Erstellung eines Provided Interfaces bestehend aus einer Figure und einer Verbindungslinie Eine weitere Schwierigkeit bestand darin einem Provided Required Interface ein Modelelement zuzuweisen da hier auch schon bestehende Modelelemente verwendet werden k nnen und nicht immer ein neues erzeugt werden soll Zu diesem Zweck wurde in den CreateConnectorWithWizardCommand ein komplet ter Wizard eingebaut der bei der Ausf hrung des Commands aufgerufen wird und eine Auswahl an m glichen Modelelementen zur Verf gung stellt Des Weiteren geh rt zwar ein Provided Required Interface zu einer Komponente allerdings wird die Figure au erhalb der Komponente gezeichnet Dadurch ergibt sich der Konflikt dass im Model ein Interface als Child einer Komponente ge speichert werden muss im Editor aber nicht als Child gezeichnet werden kann da die Figure au erhalb des Zeichenbereichs der Komponente liegt In Abbildung 15 27 ist der Zeichenbereich eine Komponente durch ein rotes Gitter gekennzeich net Die innere Kompo
260. rg argouml model uml finden sich die so genannten Factory und Helper Klassen zum jeweiligen Diagramm wieder Die Factories beinhalten Funktionen zum Generie ren bzw L schen von Diagrammelementen die Helper Klassen Methoden zum Mani pulieren einzelner Elemente 4 4 Handlungsbedarf der Projektgruppe Die einzelnen Anforderungen die umgesetzt werden sollen werden hier auf Umsetz barkeit durch eine Erweiterung von ArgoUML untersucht Unterst tzung f r Klassendiagramme und State Machines Beide Diagram marten sind bereits in ArgoUML implementiert Da es eine Eingabe von verschiedenen Zeit und Abh ngigkeitswerten geben soll m ssten diese Diagramme um diese Funk tionalit t erweitert werden Eine Erweiterung w rde die visuellen Elemente sowie das zugeh rige Eigenschaftsfenster beinhalten die es erm glicht gerade diese Werte einzu geben und darzustellen Unterst tzung von Kompositstrukturdiagrammen Da diese Diagrammart durch ArgoUML selbst nicht unterst tzt wird m sste sie neu implementiert werden Das Problem besteht darin dass durch das zur Verf gung gestellte Modell durch die Projektgruppe Syspect 39 12 Oktober 2006 Endbericht KAPITEL 4 ARGOUML NSUML Bibliothek die Spezifikation von UML 1 3 verwendet wird in der manche Ele mente nicht enthalten sind die f r das zu entwickelnde Diagramm ben tigt werden Eine Verfremdung von bereits zur Verf gung gestellten Elementen aus der Spezifikation von UML 1 3 ist
261. richt KAPITEL 5 COMMUNITY Z TOOLS 5 5 2 Lesen Schreiben und Konvertieren von Z Darstellungen ZML Das Lesen eines Terms der im ZML Format gespeichert ist ist mit folgendem Aufruf m glich Term JaxbXmlReader read InputStream is Der Term wird aus dem InputStream gelesen Das Schreiben eines Terms als ZML in einen Writer ist ebenso einfach JaxbXmlWriter write Term t Writer w Unicode und BTEX Unicode und KTEX Ausdr cke werden mit Hilfe des Parsers eingelesen Zun chst er stellt man ein Source Objekt das als Quelle f r den einzulesenden Ausdruck dient Hierzu kann entweder FileSource UrlSource oder StringSource verwendet werden welche aus einer Datei von einer URL beziehungsweise einem String lesen Alternativ kann von der abstrakten Klasse Source abgeleitet werden Dadurch erh lt man die M glichkeit einen beliebigen Stream als Quelle anzugeben Anschlie end muss noch eingestellt werden um was f r eine Art von Text es sich handelt Unicode oder BIEX Source setMarkup Markup m Als Markup muss Markup LATEX oder Markup UNICODE verwendet werden Jetzt kann der Term bereits eingelesen werden Term t ParseUtils parse Source source SectionInfo si SectionInfo ist dabei wie oben beschrieben zu verwenden Sollten sich Fehler im Text befinden wird eine ParseException geworfen welche eine Liste von ErrorAnn Objekten enth lt wie bereits im Abschnitt Typecheck Kapitel 5 5 1 S 46 beschrieben PrintUtils p
262. rintUnicode Term t Writer w SectionInfo si Hiermit wird das Schreiben eines Terms in Unicode in einen Writer realisiert SectionInfo ist wie in der Beschreibung von SectionManager dargestellt zu verwen den Soll die Ausgabe in TX erfolgen muss entsprechend PrintUtils printLatex Term t Writer w SectionInfo si aufgerufen werden Projektgruppe Syspect 47 12 Oktober 2006 Endbericht KAPITEL 5 COMMUNITY Z TOOLS 5 6 Lizenzen Der gesamte Quellcode des Community Z Projekts steht unter der GPL Die Schrift CZT Sans steht unter dem Bitstream Vera Fonts Copyright das aussagt dass die Schrift frei verwendet und ver ndert werden darf solange beim Ver ndern nicht der Name Vera oder Bitstream verwendet wird Die Verwendung ist erlaubt solange nicht die Schrift als allein stehendes Produkt verkauft wird Es handelt sich also um eine sehr offene Lizenz Einige externe Abh ngigkeiten stehen zwar nicht unter Open Source Lizenzen k nnen aber dennoch problemlos verwendet werden 5 7 Fazit Das Community Z Tools Projekt bietet einige durchaus brauchbare Werkzeuge Dazu geh ren die Corejava Klassen ebenso wie der Parser und die ZML Darstellung Auch der Typechecker scheint einfach verwendbar zu sein Es ist ratsam diese bereits existie rende Funktionalit t soweit m glich zu nutzen Die Benutzung der Schriftart CZT Sans bietet sich auf Grund der freiz gigen Lizenz auch an Die Verwendung von ZCharMap scheint weniger sinnv
263. rl utert Im Abschnitt 15 3 hingegen wird die Funktionsweise jedes einzelnen Plug ins sowie seine bereitgestellten und ben tigten Schnittstellen und spezielle verwendete Prinzipien erkl rt Schlie lich ist ein weiteres Ziel dieses Kapitels die Wiederverwendung und Weiterent wicklung von Syspect zu erm glichen und zu erleichtern Deswegen wurde Wert darauf gelegt die Schnittstellen so einfach wie m glich zu halten und so das Austauschen vorhandener Komponenten sowie das Hinzuf gen neuer Komponenten komfortabel zu gestalten 15 2 Architektur Da viele der funktionalen Anforderungen bereits in freier Software umgesetzt worden sind wurde beschlossen keine Applikation von Grund auf neu zu entwerfen sondern Projektgruppe Syspect 147 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF vorhandene Software zu nutzen Nach kurzer Produktanalyse siehe Kapitel 1 S 7 Kapitel 2 S 17 Kapitel 3 S 27 und Kapitel 4 S 33 wurde die Eclipse Plattform EFIO5b zusammen mit einigen Eclipse Plugins gew hlt e Das Graphical Editing Framework GEF wird f r die Erstellung grafischer Edi toren verwendet e Das Graphical Modeling Framework GMF wird f r den Image Export verwen det Weiterhin werden von Syspect das PEA Tool von Jochen Hoenicke und Roland Meyer f r den Export von PEA XML und die Community Z Tools f r die Eingabe Verar beitung und Datenhaltung von Z Ausdr cken Siehe Kapitel 8 S 69 und Kapitel 5 S 43 verwe
264. ruck angibt Eclipse berpr ft au erdem noch w hrend der laufenden Eingabe den Programmcode auf Korrektheit Der Nutzer kann also ohne die Datei abzuspeichern und auszuf hren durch die von Eclipse markierten Zeilen Fehler finden 1 2 5 Kompilieren und Debuggen Debug debugclass java Eclipse SDK E Ape Fie Edit Source Refactor Navigate Search Project Run Window Help LS 1 0 4 8 7 EAS RGD ES 50Debug j Java 5 Debug D G P a 2 57 EI apen 5 Eye Ol 21 5 debugclass Java Application args String 0 id 11 S debuaclass at localhost 1039 o Ely Thread main Suspended bre debugclass main String lit 1 po C Programme Javalj2re1 4 2_01 nie t at fine 19 in debuaclass O ao xe 22 10 2005 19 39 04 EN A CDU B outline 23 N_ N ag BR ee E debugclass o main Stringf P debugclass java EN E Au Object class Gparam args D public static void main String args TODO Auto generated method stub b CHE Variablen for int a 0 a lt 20 a P IA Resume Terminate H i Breakpoint A P E console 3 Tasks rear To debugclass Java Application C ProgrammelJavaljzrei 4 2_01 bin javaw exe 22 10 2005 19 39 04 Abbildung 1 3 Debug Perspektive Unter den Shortcuts Run und Debug verbirgt sich die M glichkeit den Compiler mit verschiedenen Parametern und Vari
265. s besteht die M glichkeit Klassendiagramme zu erstellen zu bearbeiten und anzu zeigen Ein Klassendiagramm stellt einen Teil der Sprache CSP OZ DC dar F r die grafische Darstellung wird das aus der UML stammende Klassendiagramm UML05 an CSP OZ DC entsprechend dem UML Profil angepasst Ein Klassendiagramm kann Klassen Assoziationen und Metadaten enthalten Klassendiagramm 1 Klassendiagramme werden in einem festgelegten Anzeigebereich des Syspect Werkzeugs dargestellt Zwischen verschiedenen ge ffneten Klassendiagrammen kann mit Hilfe von Reitern gewechselt werden 2 Ein Klassendiagramm besitzt einen Namen und kann Metadaten integrieren Die Bearbeitung ist an zwei Stellen m glich a innerhalb der grafischen Darstellung der Klasse selbst b in einem Eingabebereich au erhalb der grafischen Darstellung Ein Klassendiagramm kann gel scht werden 3 Die Darstellung der Klassendiagramme ist mit den Strukturdiagrammen kon sistent Diesbez glich f hren nderungen in Strukturdiagrammen automatisch zu nderungen in Klassendiagrammen und nderungen in Klassendiagrammen automatisch zu nderungen in Strukturdiagrammen 4 Ein Klassendiagramm gibt lediglich eine eingeschr nkte Sicht auf das zugrunde liegende UML Modell wieder Das L schen von Klassen oder Assoziationen f hrt nicht zwangsl ufig zur Ver nderung des zugrunde liegenden UML Modells wenn andere Klassendiagramme diese Klassen und Assoziationen immer noch anzeigen
266. schriftungen von Transitionen mit Operationen die in den zugeh rigen Klassen nicht definiert sind Zust nde auf die keine Transitionen zeigen und 13 2 4 Strukturdiagramme In Erg nzung zum erw hnten Klassendiagramm sollen die Strukturdiagramme unter st tzt werden Strukturdiagramme dienen in diesem Projekt zur Modellierung der Kom munikationsstruktur instanziierter capsule Klassen Neben dem Anlegen Bearbeiten und L schen soll diese Diagrammart ebenfalls die Eingabe von Metadaten unterst t zen Eine bersicht ber die grafischen Elemente dieser Diagrammart zeigt Abbildung 13 2 Allgemeine Eigenschaften 1 Die Erstellung eines Strukturdiagramms kann aus der Klassendiagramm Ansicht heraus erfolgen Hierf r wird dort eine vorhandene Klasse zur Instanziierung aus gew hlt Das instanziierte Objekt stellt nun das u ere Objekt dar Objekte die durch eine Komposition an das instanziierte Objekt gebunden sind werden im Inneren dieses Objekts angezeigt Ebenfalls werden die Ports der Objekte ange zeigt 2 Der Name eines Strukturdiagramms wird von dem Namen der zugeh rigen Klasse abgeleitet Die Bearbeitung kann sowohl ber die grafische Darstellung als auch ber externe Eingabebereiche erfolgen Zudem sollte eine Auswahlliste mit allen Strukturdiagrammen vorhanden sein 3 Die Darstellung wird jederzeit mit dem Gesamtmodell konsistent gehalten Projektgruppe Syspect 116 12 Oktober 2006 Endbericht KAPITEL 13 ANFORD
267. strukturdiagramm engl composite structure diagram Mit einem Kompositiobsstrukturdiagramm lassen sich die inneren Zusammenh nge inner halb bestimmter Elemente der UML darstellen Wesentliche innere Bestandteile in einem Kompositionsdiagramm sind die sogenannten Parts die definierte Rol len bernehmen Welcher konkrete Software Baustein diese Rolle dann tats chlich bernimmt wird hier nicht betrachtet Verteilungsdiagramm engl deployment diagram In einem Verteilungsdiagramm werden typischerweise die Zusammenh nge zwischen Hard und Software eines Systems dargestellt also z B welche Teile der Software auf welchen Servern un tergebracht werden Paketdiagramm engl package diagram Wenn in der Software Klassen zu Pa keten zusammengefasst sind lassen sich diese und die Zusammenh nge zwischen ihnen in einem Paketdiagramm darstellen Obwohl dies der naheliegenste An wendungsfall f r diesen Diagrammtyp ist l sst er sich viel allgemeiner einsetzen z B k nnen auch Aktivit ten siehe Aktivit tsdiagramm in Paketen zusam mengefasst werden und entsprechend auch mit dem Paketdiagramm dargestellt werden Verhaltensdiagramme Anwendungsfalldiagramm engl use case diagram Es zeigt eine bestimmte Sicht auf das erwartete Verhalten eines Systems und wird deshalb f r die Spezifikation der Anforderungen an ein System eingesetzt In einem Anwendungsfalldiagramm Projektgruppe Syspect 50 12 Oktober 2006 Endbericht KAPITEL 6
268. t IConnectorContainer lt lt interface gt gt lAbstractConnector lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt IVClassContent IVAbstractClass IVAbstractState Abbildung 15 22 Die Vererbungshierarchie von ViewableNode Kontext Die View Ebene Die Vie Ebene ist f r die rein grafische Notation verantwortlich Alle Interfaces dieser Ebene erben von IView Mit IDiagram INode und IEdge ergibt sich zun cht eine korrespondierende Struktur zu den abstrakten Viewable Elementen siehe Abschnitt 15 3 6 Seite 177 Mit IConstrainedNode liegt eine Spezialisierung von INode vor die eine Position und Gr e in einem Diagramm beinhaltet lt lt interface gt gt lt lt interface gt gt IViewable View lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt IConnectionLabel IViewableConnection IViewableNode IViewableDiagram IDiagram INode lEdge IViewLabel lt lt interface gt gt IConstrainedNode Abbildung 15 23 Die View Ebene 15 3 7 SyspectModelConsistencyChecker Plug in Das ModelConsistencyChecker Plug in berpr ft angesto
269. t KAPITEL 7 CSP OZ KOMBINATION ZWEIER METHODEN Fahrstuhl knopfDruecken Fahrgast Sequentieller Prozess _ Sequentieller Prozess Kommunikation Parallele Komposition Abbildung 7 1 Beispiel f r ein reaktives System 7 2 2 Syntax Um die Sprache zu verstehen muss zun chst die Syntax festgelegt werden Dazu werden hier einige Symbole und Mengen vorgestellt a b Events Ereignisse c v Events ist eine Kommunikation wobei der Wert v ber den Kanal c gesendet wird A B C Events Alphabete T E Events Symbol f r die interne Aktion y E Events Symbol f r die Terminierung a PB Act Events U r y Alle Aktionen R Events Events Relation zur Umbenennung von Ereignissen X Y Idf Prozessidentifikatoren P Q Proc CSP Prozess Mit Hilfe dieser Symbole l sst sich nun die Syntax eines CSP Prozesses in Backus Naur Form aufschreiben P STOP SKIP a gt Q P Q P Ql Pinlig 4 P Q PNQ POQ P A P R x Die Bedeutung dieser Syntax wird im folgenden Kapitel mit Hilfe der informellen Se mantik erklart 7 2 3 Informelle Semantik Die informelle Semantik gibt der CSP Syntax eine Bedeutung mit Hilfe von Zu standsgraphen Einige Graphen sollen hier als Beispiel dienen um die grundlegende Bedeutung der Syntax zu geben Abbildung 7 2 zeigt den CSP Prozess STOP Projektgruppe Syspect 58 12 Oktober 2006 Endbericht KAPITEL 7 CSP OZ KOMBINATION ZWEIER METHODEN
270. t dem Schl sselwort model eingeleitet werden Die Verbindung zum Programmcode wird mit Hilfe einer Abstraktionsfunktion Schl sselwort represents hergestellt Quantoren F r pr dikatenlogische Ausdr cke k nnen die Quantoren forall und exists benutzt werden Diese haben folgende Form lt Quantor gt lt VariablenDeklarationen gt lt Variablenbeschreibungen gt lt Quantorenbedingung gt Pr dikate Unter der JML Spezifikation existieren verschiedene Pr dikate Die beiden wichtigsten sind old und result ber old ist es m glich auf Werte einer Variablen zu Beginn der Methode zu zugreifen result bezieht sich auf den R ckgabewert der Methode Beispiel public class MathOps private int a 0 private invariant a gt 2 MathOps int a this a a public normal_behavior requires y gt 0 ensures result lt y also public exceptional_behavior requires y lt 0 signals Exception e Ox public static int getSqrt int y if y lt 0 throw new Exception return int Math sqrt y Listing 4 Einfaches JML Beispiel Projektgruppe Syspect 90 12 Oktober 2006 Endbericht KAPITEL 10 SOFTWARE TESTEN Das obere Beispiel zeigt eine Klasse MathOps mit einer Methode getSqrt die die Wurzel des bergabeparameters zur ckgibt F r die Instanzvariable wird mit Hilfe der JML Spezifikation eine Invariante definiert Die Methode besitzt Spezifikationen f r das normale Verhalten und das
271. t l schen L VA Element aus Diagrammstruktur hinzuf gen Kommentar hinzuf gen Element bearbeiten CA XK Kommentar bearbeiten Klasse hinzuf gen Capsule erstellen Protocol erstellen Data erstellen Assoziation l schen t Klasse l schen Kommentar l schen Klasse bearbeiten Methode erstellen Assoziation bearbeiten Projektgruppe Syspect 129 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION Anwendungsfall Klasse erstellen Akteure Nutzer Ziel Eine neue Klasse soll erstellt werden Ausl sendes Ereignis Der Nutzer hat entweder in der Symbolleiste oder im Kontextmen Klasse erstellen ausgew hlt Vorbedingung Nachbedingung Erfolg Eine neue Klasse wird erzeugt und wenn sie ber die Symbolleiste erstellt wurde dem Klassendiagramm hinzugef gt Nachbedingung Fehlschlag Eine aussagekraftige Fehlermeldung wird ausgegeben Eingabedaten Es muss der Name der Klasse und einer der folgenden drei Stereotypen gew hlt werden capsule protocol und data Anwendungsfall Zustandsdiagramm der Klasse bearbeiten Akteure Nutzer Ziel F r den CSP Teil der Klasse wird ein zugeh riges Zustandsdiagramm zur Be arbeitung zur Verfiigung gestellt Ausl sendes Ereignis Der Benutzer w hlt eine Klasse aus und klickt auf Zustandsdiagramm der Klasse bearbeiten Vorbedingung Es muss mindestens eine Klasse vorhanden sein zu der ei
272. t sind als auch die Erstellung externer Editoren die in einem seperaten Fenster ge ffnet werden unterst tzt org eclipse ui perspectiveExtensions wird ben tigt damit Plug ins eine existierende Perspective erweitern k nnen Eine Perspective definiert den in Projektgruppe Syspect 158 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF itialen Inhalt von Men und Toolbar sowie die initialen Views und deren Anord nung innerhalb der Seite e org eclipse ui perspectives muss erweitert werden um eine eigene Perspec tive zu definieren e org eclipse ui popupMenus wird implementiert um zum Kontextmenu weitere Aktionen hinzuzuf gen die zu anderen Plug ins geh ren e org eclipse ui preferencePages dient zum Hinzuf gen von Preference Pages von Plug ins in den von Eclipse vorgesehenen Bereich Die Preferences sind ein allgemeines Konzept in Eclipse welches einen Dialog f r Einstellungen und Konfigurationen bietet Es wird ausf hrlicher in Abschnitt 15 3 2 S 162 erl utert e org eclipse ui startup Ein Plug in das diesen Extension Point erweitert re gistriert sich damit und ist aktiviert wenn das Programm gestartet wird e org eclipse ui views wird zum Definieren zus tzlicher Views also visueller Komponenten innerhalb der Rich Client Application verwendet Projektgruppe Syspect 156 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF 15 3 Feinentwurf Dieser Abschnitt stellt die einzelnen Plu
273. t werden Dies erfolgt durch die Reflection API von Java Diese erm glicht es Klassen bzw Objekten die zur Lauf zeit von der Java Virtual Machine im Speicher gehalten werden auf Merkmale zu un tersuchen Die einzelnen Testmethoden werden durch die Zeichenkette test s o am Anfang identifiziert Die einzelnen Testf lle werden unsortiert gesammelt und nachein ander ausgef hrt Der Lebenszyklus eines Testfalls sieht dann wie folgt aus Um Seiteneffekte zu vermei den wird f r jeden Testfall eine neue Instanz der Testklasse durch JUnit erzeugt Vor dem Ablauf der Testmethode wird die setUp Methode aufgerufen um die Test Fixtures zu initialisieren Danach wird die test Methode ausgef hrt und abschlie end die tearDown Methode Die Methoden setUp bzw tearDown werden nur aufgerufen wenn sie in den Testklassen berschrieben worden sind Testsuiten Um das Testen des Programmcodes zu automatisieren k nnen die einzelnen Testklas sen zu einer Testsuite zusammengefasst werden Dies soll das Ausf hren aller Testf lle in einem Rutsch erm glichen um unn tigen Testaufwand zu vermeiden Das folgende Listing zeigt den programmtechnischen Aufbau einer Testsuite import junit framework public class AllTests public static Test suite TestSuite suite new TestSuite suite addTestSuite IntTest class return suite Listing 2 Testsuite erstellen Zum Erzeugen einer Testsuite wird eine Klasse implementiert die die s
274. tScript und Encapsulated PS Internationalisierung In ArgoUML besteht die M glichkeit s mtliche Bedienele mente wie u a Men eintr ge in verschiedenen Sprachen wie Deutsch Englisch etc darzustellen Kognitive Unterst tzung Der Entwickler wird beim Modellieren seines Systems in ArgoUML durch verschiedene Funktionen unterst tzt Hierauf wird in Kapitel 4 2 3 n her eingegangen 4 2 3 Kognitive Unterst tzung Design Critics Design Critics sind Agenten die im Hintergrund von ArgoUML ab laufen und f r den Anwender nicht sichtbar sind da sie den T tigkeitsablauf des Ent wicklers nicht unterbrechen sollen Der Sinn der Agenten besteht darin den Verlauf der Modellierung sowie Design Aspekte des Modells w hrend der Entwicklung zu berwa chen und ggf den Anwender in Form von Anmerkungen bzw Verbesserungsvorschl gen zu informieren Dieses geschieht durch Eintr ge des Agenten in die so genannten ToDo Listen auf die sp ter noch eingegangen wird Zu den Anmerkungen des Agenten geh ren Designentscheidungen wie z B die geeignete Wahl f r Bezeichner von Klassen sowie Hinweise zu inkonsistenten Diagrammen Corrective Automations Dieses bezeichnet eine Funktion mit dem der Anwen der aus einem Element der To Do Liste einen automatischen Verbesserungsvorschlag durchf hren kann Hierzu z hlen z B die Umbenennung von Bezeichnern Projektgruppe Syspect 36 12 Oktober 2006 Endbericht KAPITEL 4 ARGOUML Verschiedene
275. tatische Methode suite besitzt Die eigentliche Testsuite wird durch eine Instanz der Klasse TestSuite dargestellt Dieser werden die einzelnen Testklassen hinzugef gt Die Klasse TestSuite implementiert wie auch die Klasse TestCase das Interface Test Dieses Entwurfmus ter das unter dem Namen Komposition bekannt ist GHJ95 erm glicht beliebig viele Testklassen und Testsuiten zu einer gesamten Testsuite zusammenzufassen Test Runner In den bisherigen Abschnitten dieses Kapitels wurde dar ber gesprochen wie Testf lle erzeugt und zu Testsuiten zusammengefasst werden k nnen Dieser Abschnitt stellt Projektgruppe Syspect 87 12 Oktober 2006 Endbericht KAPITEL 10 SOFTWARE TESTEN junit framework lt lt interface gt gt Abbildung 10 2 Klassenstruktur unter JUnit kurz die Ausf hrung der Testf lle bzw suiten dar JUnit bietet die M glichkeit die Tests ber eine main Methode in einer Klasse auszuf hren oder allgemein ber einen Kommandozeilenaufruf Weiterhin k nnen die Ergebnisse der Tests ebenfalls in einem Kommandozeilenfenster ausgegeben oder in einem grafischen Dialog pr sentiert wer den Zus tzlich zu der einfachen Ausf hrung der Tests k nnen diese automatisch wie derholt werden Diese Option kann beispielsweise benutzt werden um Testparameter aus einer Datei zu lesen Wes05 10 3 2 ANT JUnit Task Dieser Abschnitt stellt eine alternative M glichkeit vor Testsuiten mit dem Entwick
276. te IDE setzt sich aus der Eclipse Plattform deren Komponenten sowie Projektgruppe Syspect 17 12 Oktober 2006 Endbericht KAPITEL 2 ECLIPSE PLUGINS UND GEF Eclipse Plattform Workbench JFace SWT P Workspace Platform Runtime a Plug in Development Environment PDE AN Tool von Drittanbietern Abbildung 2 1 Struktur von Eclipse Sha04 dem JDT und PDE zusammen Das Plug in JDT zeigt die Entwicklungsumgebung f r Java auf PDE stellt ein Plug in f r die Plug in Entwicklung dar Aufbauend auf der Plattform k nnen weitere Plug ins erstellt werden sowie Plug ins auf Plug ins aufbauen bzw untereinander abh ngig sein Der Plug in Mechanismus von Eclipse hat bei vielen Entwicklern und Anwendern Zu spruch gefunden Entwickelt wurde Eclipse im Hause IBM jedoch gibt es eine Reihe an bekannten Firmen die mit bzw f r Eclipse entwickeln Beispielhaft k nnen an dieser Stelle HP Borland SAP und Oracle genannt werden EFI05b Aufgrund der Tatsa che dass Plug ins auf Plug ins aufbauen k nnen erstreckt sich die Funktionalit t von Plug ins ber etliche Bereiche Plug ins lassen sich beispielsweise zu den Kategorien Editoren Grafik Datenbanken Rich Client Platform Netzwerke und Unterhaltung ber zahlreiche Portale finden z B EFI06a EFI06b EFI05b Obwohl Eclipse selbst Open Source ist gibt es neben Open Source Plug ins auch kommerzielle Plug
277. te der Klasse Phase beschrieben und die Transitionen durch Objekte der Klasse Transition Formeln die f r Invarianten oder Guards verwendet werden werden als Constraint Decision Diagram CDD durch die gleichnamige Klasse dargestellt Die CDDs lassen sich durch verschiedene Decision Klassen einfach generieren Formeln des Duration Calculus lassen sich mit Hilfe der Klasse CounterTrace in PEA umwandeln Ein weiterer Teil des PEA Tools ist das Package modelchecking Hier finden sich verschiedene Compiler und Konverter zur Umwandlung von Formeln in bestimmte Darstellungen wie z B DNF oder zur Konvertierung in eine XML Darstellung Die wichtigste Klasse f r uns stellt hier die Klasse PEA2XMLConverterFast dar Sie wandelt PhaseEventAutomata Objekte in eine XML Darstellung um und produziert direkt den XML Output Das PEA Tool wurde als Eclipse Plug in in unsere Architektur integriert Community Z Community Z Tools CZT ist ein Projekt das eine Sammlung von Werkzeugen f r die Spezifikationssprache Z und teilweise auch Object Z bereitstellt Folgende Funktionalit ten von CZT werden von uns verwendet e Die Entwicklung des XML Schemas ZML erm glicht eine strukturierte Speiche rung von Z Spezifikationen Dieses Schema kann von uns verwendet und erweitert werden um CSP OZ DC Spezifikationen als XML zu speichern e CZT bietet mit den Werkzeugen CoreJava und GnAST die M glichkeit Z Ausdr cke als Java Klassen zu speichern Mit Hilfe des CZT P
278. technische Umsetzung zu machen Sie unterscheiden sich insofern als dass die Produktskizze grob das Wunschprodukt der Kunden beschreibt ohne dass hier aus Entwicklersicht technische Grenzen gesetzt werden Nach der Re flexion ber diesen ersten Schritt sowohl von den Kunden als auch den Entwicklern ist die Anforderungsdefinition das Ergebnis der Verhandlungen beider Seiten bei denen es einerseits um m glichst konkret formulierte Forderungen und m glichst pr zise abgesch tzte technische Machbarkeit geht Die hier getroffenen Vereinbarungen sind aber nicht absolut verbindlich da sich Anfor derungen w hrend des gesamten Entwicklungsprozesses ndern k nnen und auch die technische Umsetzung mancher Funktionalit t schwieriger sein kann als urspr nglich angenommen Aus diesem Grund beinhaltet das n chste Kapitel die nderungen die im Laufe des Projektes in Bezug auf Produktskizze und Anforderungsdefinition vorgenommen wurden Der Entwurf schlie lich beschreibt die Umsetzung von Syspect Er enth lt aufgeteilt in die zwei Unterkapitel Architektur und Feinentwurf die Dokumentation der wichtigsten Schritte die w hrend der Erstellung von Syspect durchgef hrt wurden Projektgruppe Syspect 103 12 Oktober 2006 Endbericht Projektgruppe Syspect 104 12 Oktober 2006 Endbericht KAPITEL 12 PRODUKTSKIZZE Kapitel 12 Produktskizze 12 1 Einleitung Das vorliegende Kapitel soll als erste Beschreibung des
279. teren sollten die Names konventionen von JUnit bernommen werden Modultests mit JUnit e Testf lle werden f r Methoden aufgestellt die folgende Kriterien erf llen sie sollten eine Parameterliste und einen R ckgabewert haben die Methode sollte min eigene einfache Operationen z B mathematische Op oder Op auf Strings haben weiter sind Methoden die R ckgabewerte von Bibliotheksfunktionen liefern bzw deren R ckgabewerte wieder Eingabewerte f r weitere Funktionen sind in jedem Fall zu testen also Methoden die diverse Bibliothksmethoden intern benutzen Projektgruppe Syspect 215 12 Oktober 2006 Endbericht KAPITEL 17 AUSBLICK e Um im Programmcode Methoden nicht zu verwenden die nur f r Testzwecke be n tigt werden sollten die assert Methoden auf primitive Datentypen angewandt werden Dies betrifft insbesondere die equals Methode die man sonst immer ber schreiben m sste e Testf lle sollten wenn m glich um Testobjekte gruppiert werden Testsuiten e Jeder Entwickler sollte seine aufgestellten Testklassen zu einer Testsuite zusam menfassen bzw mehrere Testsuiten aufstellen e Zentral werden die Testsuiten von jedem einzelnen zu einer gesamten Testsuite zusammengefasst Neu hinzugekommene Testklassen bzw suiten werden dieser gesamten Testsuite selbstst ndig hinzugef gt Projektgruppe Syspect 216 12 Oktober 2006 Anhang 217 Endbericht KAPITEL 17 AUSBLICK Phase
280. terfaces l t sich mit Hilfe von EMF daraus eine Darstellung als UML Diagramm oder als XML Schema erzeugen vgl Abbildung 17 1 Unabh ngig davon welche Darstellung benutzt wird um das EMF Modell zu erzeugen erm glicht es EMF daraus die anderen Darstellungen und sogar die zugeh rigen Implementierungsklassen zu generieren Das zentrale Modell das benutzt wird um Modelle in EMF selbst zu repr sentieren nennt sich ECore und l t sich am besten als kleine vereinfachte Menge der gesamten UML beschreiben XML UML EMF Model Java Abbildung 17 1 EMF vereint Java UML und XML Projektgruppe Syspect 209 12 Oktober 2006 Endbericht KAPITEL 17 AUSBLICK Zus tzlich zu der bisher beschriebenen Funktionalit t kann EMF ein ECore Modell auch als XMI serialisieren Das w re f r Syspect vor allem deswegen von Bedeutung da fast jedes UML Werkzeug sein eigenes persistentes UML Format benutzt XMI ist als Standard zur bertragung von UML Daten vorgesehen Es wird jedoch an dieser Stelle darauf hingewiesen dass bisher kaum ein UML Modellierungswerkzeug in der Lage ist das XMI Format eines anderen Werkzeugs voll st ndig und korrekt zu lesen vgl RHQ 05 S 35f Es w re also im absch tzbaren Aufwand m glich eine XMI Schnittstelle zu realisieren aber ob sie sinnvoll nutzbar ist ist zumindest als fraglich zu bezeichnen 17 2 UML2 Das UML2 Plug in f r Eclipse ist eine Implementierung der UML 2 0 in Java Das Plug in
281. thodSignatureOZSection A AbstractOZSection MethodOZSection OZSchemaSection Abbildung 15 32 Section Klassen AbstractComboBoxSection A HFG TabbedPropertySheetWidgetFactory A SyspectTabbedPropertySheetWidgetFactory SyspectAbstractPropertySection Abbildung 15 33 Widget Factory org eclipse core runtime org eclipse gef und org eclipse ui 15 3 13 SyspectCSPOZDCExport Plug in Der CSP OZ DC Export stellt zum einen die Funktionalit t bereit unser UML Modell nach CSP OZ DC zu exportieren Dieses wird beispielweise vom PEA Export benutzt um den Export vorzubereiten Desweiteren beinhaltet er auch die Funktionalit t die CSP OZ DC Spezifikation nach CSP OZ DC XML als auch nach KTEX zu exportie ren Die Datenstruktur die eine CSP OZ DC Spezifikation repr sentiert ist in Abbildung 15 34 zu sehen Innerhalb dieser Datenstruktur wird der Zugriff auf den Object Z Teil einer Klasse ber das Interface ClassInterface realisiert da die bersetzung Projektgruppe Syspect 194 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF aus der UML Datenstruktur in Object Z f r IData und ICapsule Klassen analog ver l uft Eine CSP OZ DC Klasse enth lt zus tzlich noch ein ProcessEquationSystem welches die CSP Prozesse darstellt und eine Menge an DCCounterTraces welche die DC Gegenbeispiel Formeln enthalten Instanzen dieser Datenstruktur werden von der Klasse
282. tie ren Extension Points um sich in das Programm einzugliedern Es gibt hierbei zwei Arten von Extension Points zum einen sind da jene die von uns selbst angelegt wur den zum anderen gibt es eine Reihe Extension Points die wir durch die Rich Client Platform von Eclipse erben So ist es durch letztere m glich beispielweise sogenannte view contributions zu erstellen um Men eintr ge zu generieren und hnliches Die aktiven Plug ins bilden eine baumartige Struktur mit dem Haupt Plug in de syspect core als Wurzel Die Beschreibung der von Syspect definierten Extension Projektgruppe Syspect 153 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF Points folgt im Kapitel Feinentwurf Die Abh ngigkeiten zwischen den Plug ins ber Extension Points sind in Abbildung 15 4 zu sehen und sollen einen berblick ber die Struktur schaffen lt lt component gt gt 2 lt lt component gt gt de syspect persistence de syspect model 1 syspectexithook persistence syspectmodel lt lt component gt gt de syspect core preferenceinitializer syspectdeleteactionhook syspecteditpartfactory syspectdiagram lt lt component gt gt E lt lt component gt gt lt lt component gt gt 2 de syspect editor componentdiagram de syspect classdiagrameditor de syspect statemachineeditor toolbarcontributor actioncontributor
283. ts ComponentEditPart gt lt propertySection gt lt propertySections gt lt extension gt Abbildung 15 31 Property Sections Extension Point dann die einzelnen Elemente erzeugt werden Im Syspect Projekt werden die Klassen AbstractPropertySection und TabbedPropertySheetWidgetFactory erweitert um ein StyledText Element erzeugen zu k nnen Dieses wurde fiir interne Zwecke bevor zugt Um auf Aktualisierungen des Models reagieren zu k nnen muss man die Section als Listener PropertyChangeListener beim Model registrieren vgl Abbildung 15 30 Dies erm glicht immer die aktuelle Darstellung des Models in der Tabbed Property View Um andererseits Eingaben in der Tabbed Property View ins Model zu propagieren wird ein SimplePropertyChangeCommand aufgerufen dass mithilfe des Java Beans Property Konzeptes und des Enums EPropertyConstants die Attribute des Models neu setzt Zum Einbinden von Hilfe Seiten in Syspect erweitert dieses Plug in ebenfalls org eclipse help toc Dependencies Das SyspectProperties Plug in ist weiterhin von folgenden Plug ins abh ngig de syspect core de syspect editorbundle de syspect navigator de syspect ozdcutil de sypsect utils Projektgruppe Syspect 193 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF lt lt interface gt gt PropertyChangeListener a BE A SyspectAbstractPropertySection 1 AbstractPropertySection Me
284. u machen e toString Als letztes gibt es noch die toString Methode die einen Text liefern soll der bei den Undo Redo Buttons und Men eintr gen angezeigt wird Zum Command Stacking also dem Benutzen von Commands innerhalb von Commands ist zu bemerken dass die Commands dann nur erzeugt und redo beziehungsweise undo delegiert werden muss Die execute Methode darf nicht aufgerufen werden weil andernfalls die Commands alle in den Undo Manager eingetragen w rden was ein atomares Undo verhindern w rde Schnittstellen Extension Points e componentdiagramconsistency Das Plug in welches die Benutzerein gaben in Komponentendiagrammen pr fen soll muss das Interface IComponentDiagramConsistencyChecker implementieren e statemachineconsistency Das Plug in welches die Benutzerein gaben in Zustandsautomaten pr fen soll muss das Interface ICStatemachineConsistencyChecker implementieren e classdiagramconsistency Das Plug in welches die Benutzerein gaben in Klassendiagrammen pr fen soll muss das Interface IClassDiagramConsistencyChecker implementieren Extensions e de syspect preferenceinitializer siehe Abschnitt 15 3 2 S 158 e org eclipse help toc siehe Abschnitt 15 2 2 S 154 e org eclipse ui preferencePages siehe Abschnitt 15 2 2 S 154 Projektgruppe Syspect 182 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF Dieses Plug in hat folgende weitere Abh ngigkeiten e org eclipse core runtime e org
285. uf dem EMF Plug in aber genau die XMI Export Funktion zur Verf gung stellt die Syspect ben tigen w rde bleibt das UML2 Plug in als Export komponente interessant Eine Alternative ist die Datenhaltung von Argo UML welches jedoch noch problematischer dadurch ist dass es nur die UML 1 5 Spezifikation imple mentiert 17 3 Druckfunktion Momentan existiert keine funktionsf hige Druckfunktion um die erzeugten Diagram me direkt aus Syspect heraus auf einem Drucker auszugeben In einer fr heren Ent wicklungsphase des Programms wurde die Druckfunktion bereits implementiert besa Projektgruppe Syspect 210 12 Oktober 2006 Endbericht KAPITEL 17 AUSBLICK jedoch die Einschr nkung dass es nur auf einer Microsoft Windows Plattform einwand frei lauff hig war Aufgrunddessen sowie dem Grund dass die Kunden die erzeugten Diagramme haupts chlich in Dokumente einbetten n chten um Sachverhalte zus tz lich dokumentieren zu k nnen wurde diese Funktion vorerst nicht in die vorliegende Version des Programms aufgenommen da ein Export des Diagramms in PDF und verschiedene Bildformate m glich ist Im Folgenden wird eine bersicht dar ber gegeben welche Funktionalit ten die Druck funktion haben k nnte e Druckfunktion aufrufbar ber Kontextmen im Navigator durch selektieren ein zelner oder mehrerer Diagramme oder durch einen Men eintrag in der Men leis te e Selektieren des Ausgabeger ts e Selektieren der Ausga
286. ule erstellen Port erstellen Ports verdbinden Ee Bearbeiten Ei Base Port erstellen Conjugated Port erstellen Capsule bearbeiten Port bearbeiten Capsule l schen Port l schen Verbindung l schen Kommentar bearbeiten Kommentar hinzuf gen Kommentar l schen Strukturdiagramm zu Capsule ffnen Projektgruppe Syspect 133 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION Anwendungsfall capsule erstellen Akteure Nutzer Ziel Eine neue capsule soll erstellt werden Ausl sendes Ereignis Der Nutzer hat entweder in der Symbolleiste oder im Kontextmen capsule erstellen ausgew hlt Vorbedingung Ein Strukturdiagramm ist ge ffnet Nachbedingung Erfolg Eine neue capsule wird in dem Strukturdiagramm hinzugef gt Die neue capsule besitzt die zur ausgew hlten Klasse geh renden Ports Nachbedingung Fehlschlag Eine aussagekraftige Fehlermeldung wird ausgegeben Eingabedaten Zu der capsule geh rende Klasse Optional Eine bereits ausgew hlte capsule Anwendungsfall Port erstellen Akteure Nutzer Ziel Eine neuer Port zu einer capsule soll erstellt werden Ausl sendes Ereignis Der Nutzer hat entweder in der Symbolleiste oder im Kontextmen Port er stellen ausgew hlt Vorbedingung Ein Strukturdiagramm ist ge ffnet Eine capsule ist ausgew hlt Nachbedingung Erfolg Eine neuer Port vom ausgew hlten Typ wird
287. ung einer Applikation in die drei Sektionen Datenmodell Model Darstellung View und Programmsteuerung Controller nderungen im Model oder der View werden ber den Controller an die jeweilige andere Einheit weitergeleitet Ziel der Architektur ist die einfache Wiederverwendung einer Sektion beispielsweise des Modells Projektgruppe Syspect 28 12 Oktober 2006 Endbericht KAPITEL 3 FUJABA Die Fujaba Developer Group verfeinert dieses Modell und f gt dem Modell noch ein sogenanntes Unparse Modul hinzu Dieses Unparse Modul ergibt mit den Meta Modell Instanzen das Model Der Updater und der Fujaba Swing Adapter FSA erf llen die Aufgaben des Controllers Mit Swing wird die Darstellungssektion implementiert Zu sehen ist dies in Abbildung 3 2 Bei der erstmaligen Erstellung einer Klasse wird diese lt lt create gt gt Wi lt lt create gt gt N SCH N Za af N j te By e af Updater Events Attributveranderungen sek KEE RENE ER ee en Sa gt gt m Abbildung 3 2 Die Implementierung des MVC Modells in FUJABA Tic05 in einem entsprechenden Meta Modell abgebildet welches in Abbildung 3 3 als Beispiel zu sehen ist Jedes Element in der oben abgebildeten UML Klasse Klasse Attribut Attributtyp hat eine eigene Instanz Beim Erzeugen eines weiteren Attributes w rde eine weitere Instanz von der Klasse UMLAttr erzeugt werden welche eine Assoziation zur bestehenden u0 UMLCLass und zu einer weiteren Instanz von UM
288. ur automatischen Verifikation von Systembeschreibungen Modellen gegen eine Spezifikation MOF Meta Object Facility ist die Metadaten Architektur der OMG Object Z Dies ist eine objektbasierte Spezifikationssprache Smi00 zur Beschreibung von Daten Zust nden und deren Transformationen Projektgruppe Syspect 224 12 Oktober 2006 Endbericht ANHANG GLOSSAR OMG Object Management Group ein Konsortium f r die Entwicklung von Stan dards f r die herstellerunabh ngige system bergreifende objektorientierte Pro grammierung Mitglieder sind unter anderen IBM Apple und Sun Die bekann testen Entwicklungen sind CORBA und UML PEA Phasen Event Automat Ein spezielles Timed Automata Modell das als opera tionelle Semantik f r CSP OZ DC definiert wurde Hoe06 PEA Tool Tool von Jochen H nicke und Roland Meyer zur Darstellung von Phasen Event Automaten als Java Repr sentationen Plug in ist ein Zusatz Modul das ber vordefinierte Schnittstellen an ein Software Produkt angeschlossen werden kann und dessen Funktionalit t erweitert RCP Die Eclipse Rich Client Platform ist ein Sammlung von Plug ins zur Entwick lung einer Rich Client Anwendung Region ist eine UML Region in Zustandsautomaten Stereotype ist in der UML 2 0 eine Metaklasse die verwendet wird um die Semantik von UML Basiselementen wie z B Klassen genauer zu spezifizieren Swing API zum Programmieren von grafischen Benutzeroberfl chen Swing wurde von
289. ure Nutzer Ziel Zustand Transition oder Kommentar bearbeiten Ausl sendes Ereignis Der Nutzer markiert ein Element und w hlt im Kontextmen oder in der Symbolleiste Element bearbeiten Vorbedingung Ein Element ist vorhanden Nachbedingung Erfolg Ein Dialog zur Bearbeitung des Elements erscheint Die nderungen werden nach dem Beenden des Dialogs bernommen Nachbedingung Fehlschlag Eine aussagekr ftige Fehlermeldung wird ausgegeben Eingabedaten Zu bearbeitendes Element zu ndernde Daten M gliche Fehler Ung ltige Daten werden eingegeben Alternative Anstatt eines Dialogs und der Auswahl von Element bearbeiten kann die Darstellung auch direkt in der Oberfl che erfolgen Projektgruppe Syspect 140 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION Anwendungsfall Element l schen Akteure Nutzer Ziel Ein Zustand eine Transition oder ein Kommentar soll gel scht werden Ausl sendes Ereignis Der Nutzer markiert ein Element und w hlt im Kontextmen oder in der Symbolleiste Element l schen Vorbedingung Mindestens ein Element ist im Diagramm vorhanden Nachbedingung Erfolg Das Element wird aus dem Strukturdiagramm gel scht Falls n tig werden alle abh ngigen Elemente gel scht Nachbedingung Fehlschlag Eine aussagekraftige Fehlermeldung wird ausgegeben Eingabedaten Das zu l schende Element M gliche Fehler Es ist kein Element ausgew hlt Anwendungsfall
290. usgel st geht das Objekt wieder in den Zustand aus sm Ampel bereit Abbildung 6 4 Verhaltenszustandsdiagramm am Beispiel einer Ampelsteuerung Die Beispiele f r die Erl uterung der UML Diagramme wurden entnommen aus PBG04 Projektgruppe Syspect 53 12 Oktober 2006 Endbericht KAPITEL 6 EINF HRUNG IN UML UND XMI 6 1 4 Wesentliche Neuerungen in der UML 2 0 e Konsolidierung des Metamodels MOF und UML waren vorher unabh ngig von einander Dadurch dass es nun ein durchg ngiges Metamodell f r die UML gibt soll es m glich sein individuelle Anpassungen an der UML vorzunehmen um z B Codegenerierung f r bestimmte Anwendungsgebiete zu erleichtern e Neue Konzepte Parts Ports Konnektoren Interaktion Aufgrund der Erfah rungen die mit vorherigren UML Versionen gemacht wurden sind einige neue Aspekte hinzugef gt worden um das Modellieren anwendungsn her gestalten zu k nnen e Neue Notationen Composite Part Interaktions bersicht Zeitverlauf Demselben Gedanken geschuldet sind neue Diagrammtypen die gerade im Darstellen dyna mischer Abl ufe das Sequenzdiagramm entlasten sollen welches nicht f r alle Anwendungen optimal ausgelegt ist vgl z B Einf hrung des Interaktionsdia gramms Abschnitt 6 1 2 S 51 6 2 XMI XML Metadata Interchange 6 2 1 Einleitung XMI geh rt zur Sprachfamilie der eXtensible Markup Language XML d h ein XMI Dokument ist immer auch ein XML Dokument un
291. werden sollte bevor das n chste getippt wurde Zur berpr fung dieser Angaben wird von einer Tippgeschwindigkeit von 300 Zeichen pro Minute ausgegangen Bei der Darstellung von Sonderzeichen also beispielsweise der Ersetzung von Eingaben in entsprechende Z Symbole darf diese Zeit berschritten werden und zwar so dass minimal eineTippgeschwindigkeit von 100 Zeichen pro Mi nute m glich ist Der Start des Programms darf den Start des Basis Programms nicht um mehr als 3 Se kunden verl ngern Das Werkzeug sollte nicht nur beim Speichern und Laden sondern auch bei kritischen Programmfehlern konsistente Zust nde im Dateisystem hinterlas sen Das Programm darf dar ber hinaus maximal einmal pro Arbeitstag 8 Stunden abst rzen Bei einem Absturz darf maximal die Arbeit der letzten 10 Minuten verloren gehen Projektgruppe Syspect 118 12 Oktober 2006 Endbericht KAPITEL 13 ANFORDERUNGSDEFINITION 13 3 2 Sonstiges 1 Das Programm sollte unter die General Public License GPL oder eine freiere Lizenz gestellt werden 2 Die Konventionen zur Quellcodeformatierung und Kommentierung muss mit den Kunden abgesprochen sein um einfache Erweiterungen zu erm glichen 13 4 Dateiformate Dieser Abschnitt erg nzt und erweitert Kapitel 3 der Produktskizze Kapitel 12 Ex portfunktionen der Entwicklungsumgebung 13 4 1 XML Darstellung der CSP OZ DC Spezifikationen Name Ancestors Interface CSP Object Z DC
292. wichtige Rolle Wenn sich in der physikalischen Ansicht au erhalb der Benutzung von Eclipse etwas ver ndert zum Beispiel das L schen einer Datei bekommt das Ressourcen Framework ohne Synchronisation die Ver nderung nicht mitgeteilt Arbeitsbereich IResource BS Y WorkspaceRoo Resource Metadaten y container Projekt 9 Container di 0 Folder Project WorkspaceRoot Datei ZS z IWorkspaceRoo 0 Fi Datei s Y Ordner y Abbildung 2 6 Schnittstellen der Resourcen Sha04 Die Abbildung 2 6 zeigt eine logische Ansicht links sowie eine Schnittstellenhierarchie rechts Die logische Ansicht wird anhand der physikalischen Ansicht erstellt Durch verschiedene Schnittstellen des Ressourcen Frameworks wird ein Zugriff auf diese ge w hrleistet So gibt es zum Beispiel eine Schnittstelle IFile f r den Zugriff auf Dateien oder die verallgemeinerte Schnittstelle IResource f r alle Dateisystemressourcen Projektgruppe Syspect 22 12 Oktober 2006 Endbericht KAPITEL 2 ECLIPSE PLUGINS UND GEF Nature ist ein Konzept mit dem das Verhalten und die Funktionen von Eclipse Projekten festgelegt werden k nnen Es gibt beispielsweise eine Java Nature die be stimmte Projektkonfigurationen festlegt wobei ein Projekt auch mehrere Natures ha ben kann Sha04 Builder sind Mechanismen die vom Arbeitsbereich verwendet werden um automa tisch Dateien zu der Plug in spezifischen Logik zu verarbeiten
293. wie im Kommuni kationsschema angegeben beschr nkt Wiederum muss f r die sp tere parallele Kom position eine Schleife ohne Events oder Variablen nderungen hinzugef gt werden 8 4 3 DC Teil Im Duration Calculus Teil m ssen wir uns deutlich einschr nken was die Formeln betrifft Zugelassen sind nur sogenannte counterexample Formeln Sie haben stets folgende Struktur 0 phase phase Sie werden benutzt um ein bestimmtes zeitliches Verhalten zu verbieten Die Idee der bersetzung orientiert sich daran den abgebildeten Trace zu verbieten indem ein Automat konstruiert wird der in einem Zustand startet der mit einer true Phase korrespondiert Diese kommt aus der Aufl sung des Operators Die Konstruktion eines PEAs aus einer DC Formel ist eine Potenzmengenkonstruktion Jeder Zustand des PEAs wird mit einer Menge von Phasen beschriftet Die Idee ist dass der Zustand genau dann erreicht wird wenn die in der Mengen enthaltenen Phasen gesehen wurden Wir ben tigen f r jede Phase die ber Zeit redet eine Uhr Diese Uhr wird nach folgendem Prinzip zur ck auf null gesetzt Falls sie eine obere Schranke misst dann so oft wie m glich und falls sie eine untere Schranke misst nur beim Neubetreten der Phase Events d rfen nur auftreten wenn in der Formel erw hnt Das hei t sie werden verboten falls sie nicht gefordert werden Transitionen f hren wir so ein dass wir von einer Phase in die n chste gelangen
294. xtuelle Darstellung einer Java Bean Zum Speichern des Models werden f r mehrere Klassen spezielle Persistence Delegates verwendet e Rectangle Da die Eclipse Implementation von Rectangle im Model verwendet wird wurde ein Persistence Delegate definiert der den Konstruktor Rectan gle int int int int benutzt e AbsoluteBendpoint Ein Persistence Delegate zur Benutzung des Konstruk tors AbsoluteBendpoint int int wurde erstellt e Point Es wird der Konstruktor Point int int verwendet e Enums F r die Klassen EVisibility IConnectionLabel EPosition EMethodType EProblemStatus und EZStatus wurde ein gemeinsamer Persistence Delegate implementiert welcher die Methode value0f String verwendet Zudem wurden die Attribute fileName path und dirty aus ProjectImpl sowie label aus ConnectionLabelImpl auf transient gesetzt da diese zur Laufzeit gene riert werden Das Attribut parent aus ProjectImpl wurde ebenfalls auf transient gesetzt damit nicht alle offenen Projekte gespeichert werden Ein leeres Projekt das nur die System Definitionen enth lt sieht dementsprechend folgenderma en als XML aus lt xml version 1 0 encoding UTF 8 gt lt java version 1 5 0_07 class java beans XMLDecoder gt lt object id ProjectImp10 class de syspect model ProjectImpl gt lt void id HashSet0 property children gt Projektgruppe Syspect 165 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF lt void method clear
295. yspect wurde eine Vortragsserie der einzelnen Teilnehmer gehalten in denen projektrelevante Themen wie auch ArgoUML erl utert wurden Anschlie end an jeden Vortrag wurde ber Fragestellungen diskutiert um m gliche Probleme oder Bedenken zu u ern Das UML Modellierungstool ArgoUML bietet meiner Meinung nach eine gute Basis f r eine Erweiterung zur Umsetzung der gesetzten Anforderungen Viele Funktionen die das zu entwickelnde Werkzeug bieten soll sind bereits in ArgoUML implementiert so dass wichtige Implementierungszeit eingespart werden k nnte ArgoUML selbst steht unter st ndiger Entwicklung bietet eine umfassende Do kumentation und ist von Grund auf daf r ausgelegt f r Erweiterungen offen zu sein Desweiteren besteht die M glichkeit bei aufkommenden Problemen bei der Projektgruppe Syspect 40 12 Oktober 2006 Endbericht KAPITEL 4 ARGOUML Erweiterung des Systems durch unsere Projektgruppe die aktiven Entwickler von ArgoUML zu kontaktieren um Hilfe bei Problemstellungen zu erhalten Das ArgoUML die Grundlage f r ein verwendbares Produkt darstellen kann zeigt insbesondere dass es von dem Unternehmen Gentleware mit Ihrem Produkt Poseidon ebenfalls verwendet wurde und kommerziell vermarktet wird Die Einarbeitungszeit in die Struktur von ArgoUML und die Anpassung an un sere Bed rfnisse darf nicht untersch tzt werden Im Gegensatz dazu steht jedoch eine v llige Neuentwicklung eines solchen Systems wodur
296. zen auf Gleichheit mit null gepr ft Sind die Referenzen vorhanden wird validiert dass eine Capsule als Quelle und ein Interface als Ziel vorliegt und noch keine Dependency zwischen beiden vorhanden ist Weiterhin wird kontrolliert ob Generalisierungsbeziehungen zu einer Inkonsistenz f hren k nnen 3 Bei jedem der oben durchgef hrten Tests wird sofort mit return false abge brochen sobald eine Konsistenzbedingung verletzt wurde Au erdem wird der ErrorView mit addErrorMessage eine Beschreibung des Problems und eine Ur sache hinzugef gt 4 Wenn jedoch alle Tests bestanden werden wird dem Command mit return true signalisiert dass es ausgef hrt werden darf 15 3 11 Syspect OZ DC Util Plug in Das OZ DC Util stellt diverse Funktionen in Bezug auf Object Z und den Duration Calculus zur Verf gung Es kapselt die Community Z Tools mithilfe des CZTWrappers Projektgruppe Syspect 189 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF stellt einen Editor zum komfortablen Editieren von Formeln diverse Listener die zum Ersetzen von PTEX Eingaben des Benutzers in Unicodezeichen verwendet werden so wie einen DC Parser zum Umwandeln der eingegebenen DC Formeln in eine Java Darstellung bereit Letzter ist mithilfe von javacc generiert Dieses Plugin ist aufgrund der vielf ltigen Formel Funktionalit ten ein zentraler Bestandteil unseres Tools und wird beispielsweise von dem Property Plug in dem CSP OZ DC sowie dem PEA Export benut
297. zliche Symbole f r Z eingearbeitet wurden Somit erm glicht sie die Darstellung von Z Termen als Unicode Text 5 4 2 ZCharMap ZCharMap ist eines der JEdit Plug ins des Community Z Projekts Es stellt ein Inter face zur Eingabe von Z Ausdr cken in IX sowie Unicode dar Au erdem hat sie die Funktion mit Hilfe des Typecheckers die Ausdr cke zu berpr fen und sie in alle drei bisher implementierten Darstellungen ZML Unicode XTX zu konvertieren Technisches Das JEdit Plug in ZCharMap stellt wenig mehr dar als eine JTable die auf Klicks des Benutzers vorher definierte Texte in ein Textfeld eingibt Dazu kommen noch die Buttons zur Auswahl einer auszuf hrenden Aktion Typecheck Konvertieren Diese Funktionen sind durch Aufrufe der Funktionen der entsprechenden Projekte realisiert Projektgruppe Syspect 45 12 Oktober 2006 Endbericht KAPITEL 5 COMMUNITY Z TOOLS 5 5 Benutzung des Quellcodes Die Benutzung des Quellcodes kann in folgende Unterbereiche und die dazugeh rigen wichtigsten Klassen unterteilt werden allgemein Term SectionManager Markup Typecheck TypeCheckUtils ZML lesen schreiben JaxbXmlReader und JaxbXmlWriter TeX und Unicode lesen schreiben Source und PrintUtils Im Folgenden wird kurz auf diese Bereiche und die Klassen eingegangen e Term Ein Term ist ein Z Ausdruck der als Annotated Syntax Tree repr sentiert ist Er wird entweder mit Hilfe des Parsers aus Unicode oder EITEX gewonnen oder dir
298. zt Schnittstellen Extensions de syspect navigator actioncontributor org eclipse help toc org eclipse core runtime preferences und org eclipse ui preferencePages Weitere Abhangigkeiten de syspect core de syspect utils org eclipse draw2d und org eclipse ui views 15 3 12 SyspectProperties Plug in Dieses Plug in wird zur Erstellung des Tabbed Property Views ben tigt die f r die Eigenschaftsseite des Syspect Projektes verwendet wird Die Tabbed Property View wurde von IBM fiir verschiedene Produkte die auf Eclipse basieren auf Open Source Basis entwickelt Zuerst geh rte sie zur so genannten Eclipse Web Tools Platform und ab der Eclipse Version 3 2 zur Core Platform Implementiert ist sie im org eclipse ui views properties tabbed Plug In Schnittstellen Extensions Die Tabbed Property View wird ber drei Extension Points konfiguriert s plugin xml e Property Contributor org eclipse ui views properties tabbed PropertyConributor e Property Tabs org eclipse ui views properties tabbed PropertyTabs e Property Sections org eclipse ui views properties tabbed property Sections Projektgruppe Syspect 190 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF Error View Problem View Properties amp nm General Element Name Person Comment Attributes ee Methods Z Type Definitions Init Edit Duration Calculus Invariant Edit Abbildung 15 29 Tabbed Property View Die einzelnen Extension Points
299. zu entwickelnden Softwarewerk zeuges Syspect dienen um die Kommunikation zwischen Entwicklern und Kunden zu erleichtern Es hat nicht den verpflichtenden Charakter der auf diesem Kapitel aufbau enden Anforderungsdefinition und geht insbesondere nicht auf die technische Umset zung ein Das Produkt der gleichnamigen Projektgruppe soll eine grafische Entwicklungsum gebung f r ein UML Modell sein das durch ein UML Profil derart eingeschr nkt ist dass eine bersetzung in die formale Spezifikationssprache CSP OZ DC m glich ist Die dazu n tigen Klassendiagramme Strukturdiagramme und Zustandsdiagram me sollen ber eine grafische Oberfl che bearbeitet werden k nnen Klassendiagram me geben Klassen und ihre Beziehungen zueinander wieder In Klassendiagrammen k nnen Operationen und Attribute der Klassen angegeben werden Die Klassen be sitzen sogenannte tagged values die f r die bersetzung des UML Modells in eine CSP OZ DC Spezifikation n tigen Object Z und Duration Calculus Formeln enthal ten Zustandsdiagramme beschreiben das Verhalten einer einzelnen Klasse und sollen in CSP Prozesse umgewandelt werden Die Strukturdiagramme stellen die Beziehun gen der einzelnen Instanzen der Klassen dar MORW05 Aus dieser UML Darstellung wird es m glich sein eine XML Darstellung der Spezifikationssprache CSP OZ DC zu erzeugen Daraus kann anschlie end ETRX Quellcode generiert werden Zus tzlich soll das Werkzeug die M glichkeit bieten die CSP
300. zugeh rig und eine Klasse kann nicht mehrere davon haben IStateMachine ist das Modelelement f r die Diagrammart Zustandsdiagramm Hier ist zu beachten dass dies die einzige Diagrammart ist bei der auch das Dia gramm selbst ein Modelelement hat IStateMachine und IRegion erben beide von IStateContainer welche IAbstractStates enthalten Es gibt drei Arten von Zust nden die sich alle von IAbstractState ableiten e IState ist der normale Zustand Ein Zustand kann IRegions enthalten Projektgruppe Syspect 175 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF e IInitState ist der Startzustand e IFinalState ist der Endzustand TAbstractState Objekte k nnen ITransitions als ankommende oder abgehende Ver bindungen haben Eine ITransition kann eine MethodSignature als trigger besitzen lt lt interface gt gt is parent lt lt interface gt gt lt lt interface gt gt IStateContainer lAbstractState QuigoIng ITransition A A incoming trigger lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt lt lt interface gt gt IStateMachine IRegion IState lInitState IFinalState IMethodSignature is_parent lt lt interface gt gt ICapsule Abbildung 15 17 Zustandsautomaten Kontext Komponentendiagramme
301. zungen oder hnliches enthalten e Es soll unterschieden werden zwischen Dokumentationskommentaren die be schreiben was eine Methode tut und Implementierungskommentaren die bei Projektgruppe Syspect 202 12 Oktober 2006 Endbericht KAPITEL 15 ENTWURF besonders komplexen Quellcode eingesetzt werden welcher Gefahr l uft nicht selbsterkl rend zu sein Implementierungskommentare beschreiben wie eine Me thode arbeitet e F r Dokumentationskommentare ist javadoc einzusetzen Jede Klasse und jede Methode sollte mit javadoc kommentiert sein Dokumentationskommentare soll ten insbesondere zwei Ziele verfolgen 1 Sie sollen es einem Programmierer erm glichen die Klasse als Blackbox zu benutzen ohne den Quellcode zu kennen 2 Sie sollen es einem Testprogrammierer erm glichen sinnvolle Testf lle ab zuleiten e Bevor man Implementierungskommentare verwendet sollte versucht werden den Code so umzuschreiben dass die Implementierungskommentare nicht mehr n tig sind Durch selbsterkl rende Bezeichnernamen kurze Methoden zur Orientie rung nur in Ausnahmef llen ber 30 Zeilen und Implementierungskommentare muss ein Programmierer der eine Methode nicht selbst verfasst hat m glichst schnell und dabei pr zise erfassen k nnen wie sie arbeitet e Wichtige Entscheidungen sollten ebenfalls dokumentiert werden Beispiel Wenn ich drei M glichkeiten sehe die Funktionalit t einer Methode zu realisieren und mich aus

Download Pdf Manuals

image

Related Search

Related Contents

mode d`emploi important safeguards save these instructions  Eliminación - Downloaded from DishWasher  Traceability user manual - Irish Blood Transfusion Service    SLSA Family Groups – Existing Member's User Guide v1  Sistema INTUITY™ CONVERSANT® Versão 6.0  T-Sinus 711 Komfort Das schnurlose Komforttelefon  Makita UB1103  ATTIX 30-40-50-he  Preguntas Frecuentes Cursos EOS  

Copyright © All rights reserved.
Failed to retrieve file