Home
Abschlussdokumentation - Universität Paderborn
Contents
1. 4 config DerivedMeasureLinks 1 config 4 OCLExpression Evalue String MeasureLink 1 name String acronym String K _ 1 a config el IndicatorLinks config cr BaseMeasureLinks mesures 1 IndicatorLink DerivedMeasureLink A nes als ha kia BaseMeasureLink 1 config calculation 6 String OCLExpression String AuxiliaryFunctions l ObjectiveBaseMeasureLink 1 FOCLExpression String i T 1 MeasurementModel config Indicator gt ealeulation 5 String n 1 calculationValue 6 String Y 1 j mme config ScaleTypes 1 7 input SSS Se E config Measure config Sri DerivedMeasure TR name Sa 1 acronym String OCLExprassion String informalDefinition String unitOfMeasurement String 4
2. Person surname String forename String gt ArtefactAuthor phone String isResponsible Boolean office String 1 creates Rol Q Q D 2 1 1 1 4 determines set of name String description String 0 1 0 1 dest 1 2 Moderat loderator ModelQualityPlanAuthor SoftwareDevelopmentArtefact name String 4 moderiert id String 2 status String 1 14 version Double 1 1 1 4 erstellt 8 A A Top Package ModelQualityPlan SoftwareModel il name String 0 1 creationDate Date SA SoftwareProcessModel changeDate Date 1 1 2 value 1 1 i 0 1 determines set Of fetermings set of Produced in PurposeOfDiagram ModellingLanguagd ModelCategory Methodologyl value value value value 42 DevelopmentPhase 1 value Y Y ContextElement SoftwareRequirementsSpecification SoftwareCode DA 1 1 ConsistencyRelation consistencyLevel Strin oe A dependeneyTypes String SpecificationLanguagd ProgrammingLanguage value value formalisationLevel consistency defined by Abbildung 6 20 Klassendiagramm Meta Kontextmodell 164 6 Architekturdokumentation RefaSo amp ModelCockpit
3. ee 239 Grammatik Abschnitt Parameter der Ouere 239 Grammatik Liste der Typen von Decisions 2 2 22 2 241 19 dl UNIVERSITAT PADERBORN Abschlussbericht BME Die Universit t der Informationsgesellschaft 20 RefaSo amp ModelCockpit Teil I Konzeptionelle Sicht 21 1 Einleitung Wie Du liest das alles Hendrik zu Thomas 1 1 Motivation Modelle werden heute in vielf ltiger Weise genutzt um beispielsweise Prozesse aus dem realen Leben auf einer abstrakten Ebene zu entwerfen und zu untersuchen Insbesondere gilt dies f r Softwaremodelle deren Bedeutung stetig zunimmt Aus diesem Grund steigen die Anforderungen an die Softwaremodelle immer weiter und die erstellten Modelle m ssen bestimmte Kriterien erf llen Ein wichtiger Aspekt ist hierbei die Qualit t des vorhandenen Modells Die Ziele der Projektgruppe ModelCockpit waren der Entwurf und die Implementierung eines ad quaten Messinstruments mit dem ein eigenes Verst ndnis von Qualit t model liert werden kann Dieses Qualit tsmodell sollte dann als Basis f r eine Untersuchung eines gegebenem Softwaremodells dienen Verschiedene Qualit tsmodelle sind deshalb notwen dig weil verschiedene Rollen eine unterschiedliche Ansicht von Qualit t haben und dabei auf verschiedene Aspekte Wert legen Ein weiterer Punkt der bei Qualit tsmodellen zu beachten ist ist der dass je nach Anwendungsbereich unterschiedliche Anforderungen an ein Qualit tsmo
4. Abbildung 5 14 Tutorial Eigenschaften des Datentyps Hour Wi Resource RMC Tutorial default umlz_class_diagram RMC Elolx File Edit Navigate Project Window Help a EE ARS TE ES Ly Resource Pa ves a Properties Ei A op 7 Client Dependency sl Is Abstract E false al Is Leaf E False GEI Name EZ Fachgebiet Powertype Extent Redefined Classifier Representation Template Parameter Use Case visibility public Abbildung 5 15 Tutorial Eigenschaften des Datentyps Fachgebiet 100 5 Tutorial RefaSo amp ModelCockpit Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Refaso Modelcoc Wi Resource RMC Tutorial default umlz_class_diagram RMC BEES File Edit Navigate Project Window Help le mela a 2 Hfi rescue Properties D EE CH SE El Pr y e Client Dependency E Is Abstract E false a Is Leaf A False of Name Text Powertype Extent Redefined Classifier Representation Template Parameter Use Case Visibilty public Abbildung 5 16 Tutorial Eigenschaften des Datentyps Text Ml Resource RMC Tutorial default umlz_class_diagram RMC Elle Edit Navigate Project Window Help r ETE Ae eo E Resource D Properties 23 Be GC GC Ji Z Client Dependency S Is Abstract Ek false Is Leaf 5 false ES Name Powertype Extent Redefined Cl
5. Enumeration Legt einen neuen Aufz hlungstyp an Sobald dieser auf dem Canvas erscheint ist das Feld f r den Namen selektiert und dieser kann eingegeben werden amp Association Class Legt eine neue Assoziationsklasse an Der Klassenname ist selektiert und kann direkt ein gegeben werden Interface Legt eine neue Schnittstelle an Der Name kann direkt eingegeben werden Die erf llenden und anbietenden Klassen k nnen mit Provided Interface und Requiered Interface zu geordnet werden 9 Constraint Legt einen Constraint an Der Constraintname muss ber die Properties eingegeben werden E Attribute F gt einer Klasse ein Attribut hinzu Name und Datentypen werden ber die Properties konfiguriert Operation Fiigt einer Klasse eine Operation hinzu Name und Datentypen werden ber die Properties konfiguriert Enum Literal F gt einer Enumeration ein neues EnumerationLiteral hinzu Association Legt eine neue Assoziation an Durch Auswahl des kleinen Pfeilsymboles erscheint folgende Unterauswahl mit der weitere Elemente angelegt werden k nnen Shared Aggregation Legt eine neue Aggregation an Composite Aggregation Legt eine neue Komposition an Navigable Association Legt eine navigierbare Assoziation an RefaSo amp ModelCockpit 4 Benutzerdokumentation 43 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Dependency Legt eine neue Abh ngigkeitsbeziehung
6. 183 Klassendiagramm von CalculationTemplate abgeleitete Klassen 184 Klassendiagramm Decisions 2 2 oao a 186 Klassendiagramm Variablenmanagement in Refactorings 187 Klassendiagramm Klassen der Refactoring GUI 188 Klassendiagramm Fortschrittsangaben bei Ausf hrung von Refactorings 189 Sequenzdiagramm Finden von Refactorings zu Modellelementen 190 Sequenzdiagramm Ausf hren eines Refactorings 191 Sequenzdiagramm Ausf hren eines komplexen Refactorings 192 Klassendiagramm OCLWrapper Komponente 193 Klassendiagramm CZTWrapper Komponente 2 22220 195 Installation Plugins aus Liste Enabling Features 199 Modell Hinzuf gen einer Operation 206 Modell Hinzuf gen einer BAnnotation 2 2 2 2 nennen 206 Modell Source Attribut der EAnnotation 207 Modell Hinzuf gen eines Details Entre 207 Modell Attribute des Details Ent 208 Modell Generieren des UML Z Modell Java Codes 210 Editor GMF Generierung 211 Editor GMF Mapping Modell o o e 212 7 10 Editor GMF Genmodel 213 7 11 Editor GMF Quelltext generieren 213 RefaSo amp ModelCockpit dl UNIVERSITAT PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft _Refaso Modelcoc 7 12 Editor Tab f r GMF Genmodell 219 7 13 Editor Tab f r GMF Genmodell 2 222
7. 7 2 2 2 Durchgef hrte Erweiterungen F r die speziellen Anforderungen an den UML Z Editor waren einige Anpassungen und Implementierungen notwendig Das folgende Kapitel geht auf diese Erweiterungen ein und erl utert die durchgef hrten Anderungen Klassendiagrammeditor Parser Im Bereich der Parser sind zwei wesentliche Bereiche zu betrachten Es m ssen die per Hand implementierten Parser mit dem generierten Quelltext kombiniert werden Dazu ist es not wendig den Editor ber die entsprechenden Klassen zu informieren Dies geschieht ber die Klasse UMLZParserProvider im Paket de upb pg rmc umlz diagram classeditor providers Hier finden sich die Elemente des UML Z Modells die ber den Editor ange legt werden k nnen F r Elemente die spezialisierte Parser nutzen m ssen die Methoden 214 7 Entwicklerdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft WS Ai UNIVERSIT T PADERBORN Abschlussbericht minin createElementParser und getElementParser implementiert werden Die Zuordnung ist nach Neugenerierung des Quelltextes zu berpr fen und gegebenenfalls zu korrigieren Weiterhin erfolgte folgende nderung an den Parsern Im erzeugten Editor erhalten Methoden und Attribute die mit public gekennzeichnet sind kein als Symbol Dies wurde ge ndert so dass auch ffentlich sichtbare Elemente explizit gekennzeichnet werden Diese Implementierungen finden sich in AbstractToString im Paket de
8. An diesem Punkt im Kreislauf kann der Nutzer be liebig viele der angebotenen Vorschl ge ausf hren ohne nochmals zum Messen der Qualit t oder der Diagnose zur ckkehren zu m ssen 30 2 Konzepte RefaSo amp ModelCockpit Teil Il Anwenderorientierte Sicht 3l 3 Installationsanleitung I will start cooking coffee in case I find the Thermoskanne Christian zu Ping Damit das Tool RMC verwendet werden kann stellt die Projektgruppe RMC dem Benutzer f r die beiden Betriebssysteme Microsoft Windows und GNU Linux auf ihrer Internetseite im Downloadbereich jeweils ein Paket f r das entsprechende Betriebssystem zum Down load bereit Nach der Auswahl und dem Herunterladen des entsprechenden Installationspa kets muss das Paket nur noch mit einem Packprogramm wie beispielsweise 7zip oder unzip entpackt werden Nachdem Entpacken des Installationspakets ist die Datei rmc exe unter Windows bzw rmc unter Linux im erstellten Verzeichnis zu finden Durch Klicken auf diese Dateien startet das Tool RMC Hinweis Erforderlich f r das Nutzen des Tools RMC ist ein Java Runti me Environment JRE oder Java Development Kit JDK Beide Pakete sind auf den Downloadseiten von SUN kostenlos erh ltlich http www cs uni paderborn de fachgebiete fg engels lehre ws0708 pg rmec teil2 download html 33 dl UNIVERSITAT PADERBORN Abschlussbericht EE Die Universit t der Informationsgesellschaft RefaSo ModelCoc 3
9. Question Gibt es Klassen mit zu vielen Methoden gt Question Sind alle Operationen vollst ndig spezi Question Wird Yererbung richtig eingesetzt Abbildung 5 58 Qualit tsmodell Zuordnung von Fragen Resource RMC Tutorial RMC_MQP_Tutorial mqp RMC Elle Edit Diagram Navigate Project Window Help EA me A EE EE EE 5 E RMC_MQP_Tutoria map ES H gt Palette d set Modellqualit t Zoom 5 Note DH ES gt Implementierbarkeit Designqualit t Semantische Qualit t x S oe Connection Weartbarkeit Verst ndlichkeit Semantische Vollst ndigkeit Gro e Klassen Vererbungstiefe L nge der Klassennamen Verf gbarkeit von Vor und Nachbedingung EI 3 Quality Model Question General information about this model quality plan gt Goal Implementierbarkeit bestimmen i Question Wird Mehrfachvererbung eingesetzt E gt Goal Semantische Vollst ndigkeit Question Sind alle Operationen vollst ndig spezifiziert Eh Goal Design Qualitat bestimmen 4 Question Wird Vererbung richtig eingesetzt de Question Giht es Klaccen mit 211 wielen Methnden zl 1 Context Model 2 Information Need Model 3 Quality Model 4 Measurement Model 5 Presentation Model Selection Parent List Tree Table Tree with Columns ocn a REESE Model Quality Attribute Mehrfachvererbung Definition Model Quality
10. Best tigen Sie erneut die Installation der Plugins mit Install All Es erscheint erneut der Dialog Update Manager Eclipse installiert nun die Plugins Warten Sie bis dieser Vorgang abgeschlossen ist Sie sehen nun den Dialog Install Update 7 Entwicklerdokumentation RefaSo amp ModelCockpit N UNIVERSIT T PADERBORN Abschlussbericht u Die Universit t der Informationsgesellschaft _Refaso Modelcockpit Updates olx Search Results d Select features to install from the search result lst Select the features to install 2 Deselect Al DIS Batik 1 6 0 v20061222 1222 0842283444 3444 O Eclipse Project Equinox bundle feature 3 3 1 R33x_r20070918 n LECIEIdwb bbP_2 EYAO Muss US Apache Derby Core Feature 10 1 2 1 E 1G Lowagie Text Feature 1 5 4 r22x_v20080220 043 s33yAw31191337 DIS Apache Commons Codec Feature 1 3 0 20070907 02 w311817222849 DIS Mozila Rhino Feature 1 6 7 r22x_v20071217 056 s33yAWS1 191325 DIS W3C Sac Feature 1 3 0 v20070406 02 w31181821 2 EMF Model Query 1 1 1 v200711281714 1007w311822392825 Vi EMF Model Query OCL Integration 1 1 0 v200706071712 10 7w311817182823 G EMF Validation Framework 1 1 1 v200708161445 318Z90A55PSO6OBIC_ DI EMF validation Framework OCL Integration 1 1 0 v200706071520 10 7w311817182631 EZ EMF Model Transaction 1 1 2 v200710151610 208a85739G4A3FSH88 3 EMF Model Transaction Workbench Integration 1 1 2 v200711281719 20828 733G4A3FSH88 G Object Constraint Lan
11. disjoint partition disjoint ds E L 2 B ee partition Disjointness Partitions Tabelle 4 6 Z Referenz Sequence Toolkit min max seq seq_1 Number range Iteration Set cardinality Minimum Maximum Finite sequences Non empty finite se quences iseq langle rangle cat rev head last tail front squash extract filter prefix suffix infix dcat iseq 27E8 27E9 2040 head last tail front squash 21BF 21BE prefix suffix infix Injective sequences Sequence left bracket Sequence right bracket Sequence concatenation Reverse a Squashing Extracting Filtering Infix relation Head of sequence Last of sequence Tail of sequence Front of sequence Prefix relation Suffix relation Distributed concatenati on 4 Benutzerdokumentation RefaSo amp ModelCockpit dl UNIVERSITAT PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft W Resource RMC Tutorial default umlz_state_diagram RMC MEE Ele Edit Diagram Navigate Project Window Help ri E Ae ex 3 H 100 Y ES Resource gt Project Explorer 23 7 8 1d defauit umie_state diagram ES ae E WE RMC Tutorial A Palette gt E D default umlz Ty Select d default umlz_class_diagram Zoom o Vi default umiz_state_diagram E Note gt
12. private final ModelQualityPlan map private final PersonData data public CreateMQPAuthorCommand ModelQualityPlan map PersonData data super new ChangeRecorder map this mqp map this data data setLabel add map author Override protected void doExecute if data Person person person person person person getSelectedPerson null person MQPFactory eINSTANCE createPerson set Context Model map getContextModel setForename data getForename setSurname data getSurname setOffice data getOffice setPhone data getPhone MQPAuthor author MQPFactory eINSTANCE createMQPAuthor author author person setPerson person set Modelqualityplan map setMQPAuthor author map getAuthor add author else MQPAuthor author MQPFactory eINSTANCE createMQPAuthor author author setPerson data getSelectedPerson set Modelqualityplan map data getSelectedPerson setMQPAuthor author map getAuthor add author http help eclipse org help32 index jsp topic org eclipse emf doc references javadoc org eclipse emf edit command package summary html RefaSo amp ModelCockpit 7 Entwicklerdokumentation 229 Die Universit t der Informationsgesellschaft WS dl UNIVERSITAT PADERBORN Abschlussbericht Listing 7 10 MQP Create MQPAuthorCommand Listing 7 10 zeigt ein Beispiel f
13. 7 Predicate Pre Post Condition base C derived scale bes unt of measurement modes Zaang enter OCL measure OCL Functions context Model def ZPPPC Set Boolean Operation allinstancest lacv c Class allClasses jasSet lascendants baseClasses exists boolean expression 4 gt informal definition Boolean value for each Operation True if Z specification set for prec Fr Abbildung 5 61 Eingabe einer neuen Messung 130 5 Tutorial RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft D UNIVERSIT T PADERBORN Abschlussbericht Zun chst wird der Name der neu anzulegenden Messung eingeben Dieser Name sollte so gew hlt werden dass er eine grobe Beschreibung der Messung beinhaltet Im n chsten Schritt wird definiert ob die Messung eine base measure oder eine Deri ved Measure darstellt Base measures verwenden nur Hilfsfunktionen und Standard OCL Ausdr cke w hrend derived measures auch bereits definierte base und derived measu res wiederverwenden ber die Auswahlbox scale wird die Skala angegeben die auf den Ergebniswert der Messung anzuwenden ist Weiter wird in unit of measurement ein Modellelement Typ angegeben auf den sich die Messung bezieht Dieser entspricht der Kontext Angabe im OCL Ausdruck In das Eingabefeld acronym wird ein noch nicht vorhandenes K rzel eingetragen Dieses K rzel wird sp ter genutzt um die Messung in weiter
14. Der StumblingBlock ist Bestandteil eines Refactoringtyps RefactoringType und wird damit im Ablauf eines angesto Benen Refactorings nur einmal durchlaufen Dieser Teil eines RefactoringType ist vergleichbar mit einem BeforeTemplate in einem AbstractRefactoring parsed Calculation parsed create Calculation queries Collection lt IContextQ uery gt parsed AfterTemplate create parsed AfterTemplate queries Collection lt IContextQuery gt CalculationTemplate interface IContextQuery cakulate boolean lt gt parsed parsed BeforeTemplate create BeforeTemplate queries Collection lt IContextQuery gt parsed StumblingBlock parsed create StumblingBlock queries Collection lt IContextQuery gt Abbildung 6 37 Klassendiagramm von CalculationTemplate abgeleitete Klassen Decision Objekte entsprechen notwendigen Entscheidungen die innerhalb der Durchf h rung eines Refactorings auftreten k nnen und vom Anwender aufgel st werden m ssen Die Datenstruktur die einer Decision entspricht ist der Abbildung 6 38 zu entnehmen Alle notwendigen Entscheidungen werden aus der Konfigurationsdatei eingelesen Die Ent 184 6 Architekturdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft Ai UNIVERSIT T PADERBORN Abschlussbericht minin scheidungen sind in einem Refa
15. Modell Hinzuf gen einer EAnnotation RefaSo amp ModelCockpit NI UNIVERSIT T PADERBORN Abschlussbericht RME Die Universit t der Informationsgesellschaft Java de upb pg rmc umlz model UML ecore Eclipse SDK File Edit Navigate Search Project Model Sample Ecore Editor Run Window Help Ir 0 Q EEG OFP eis GE EI a Data Modeling 5 Plug in Devel Debug Java HE Package Explorer 23 0 ds uerge ES CDI ES outline amp u Se D Behavior gt Class A An outline is not available D D Class gt EncapsulatedClassifier BehavioredClassifier I IS de upb pg rmc cztwrapper amp EE la GenModel E de upb pg rmc diagnostics E E de upb pg rmc map E Goes Ks E E de upb pg rmc map confmodel Eed e y BehavioredClassifier gt de upb pg rme map diagnosticsinterfac A e A A Fe ioc A E D 4 passive_class EDiagnosticChain EMap lt ElavaObject EJavaObject gt EBoolean getExtensions Extension 3 createOwnedOperation String String Type Type Operation HE isMetaclass Boolean Te cl de upb pg rmc mgp diagram quality e de upb pg rmc map edit EHE de upb pg rmc map editor Of 8 8 Ip cl de upb pg rme mgp measurement E Keen EN i ee is Se gt Determines whether this class is a metaclass Tei cl de upb pg rme map ul 5 42 de upb pg tmc refactoring 122 de upb pg rmc refactoring commoninte 42 de upb pg rmc refactoring diagnosticsi Te cl de upb pg rmc re
16. Time Powertype Extent Redefined Classifier Representation Template Parameter Use Case Visibility public Abbildung 5 7 Tutorial Eigenschaften des Datentyps Time Mi Resource RMC Tutorial default umlz_class_diagram RMC BEES File Edit Navigate Project Window Help i E EE ARSS TE ES Resource e ee a SE e Di Hour x Minute u Abbildung 5 8 Tutorial Eigenschaften der ZExpression Specification f r Time 96 5 Tutorial RefaSo amp ModelCockpit Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft ZExpression Editor xi TEX Hour cross Minute Abbildung 5 9 Tutorial Z Editor ZExpression f r Time Type Declaration Minute Als n chstes Element wird eine Type Declaration mit dem Namen Minute angelegt Abbildung 5 10 zeigt die Eigenschaften dieses Elementes Wieder wird f r das neue Element mit Hilfe des Kontextmen s ein Kind vom Typ ZExpression Specification erstellt Der Z Editor wird gestartet und nat einge geben Abbildung 5 11 zeigt diese Eingabe im Editor Analog wird nun noch ein Element vom Typ Constraint auf der Type Declaration angelegt Abbildung 5 12 zeigt dessen Eigenschaften Dieser Constraint erh lt eine ZPredicate Specification mit folgendem Z Ausdruck Minute 0 59 Dies ist in Abbildung 5 13 dargestellt Type Declaration Hour Als n chster Datentyp wird Hour angelegt Dieser wird wie be reits zuvor
17. Type Upper 51 Visibility ES public Abbildung 5 34 Tutorial Eigenschaften der Methode mitarbeiterMotivieren 112 5 Tutorial RefaSo amp ModelCockpit dl UNIVERSITAT PADERBORN Abschlussbericht hed sas Die Universitat der Informationsgesellschaft __Refaso Modelcockpit miz_class_diagram RMC Ele Edit Navigate Project Window Help a gt 45 Oe gt ES Resource iprpertes 23 gt Ral Body Condition Client Dependency wal al Concurrency sequential Detta List Is Abstract i False Is Leaf ie false Is Ordered E false Is Query i false Is Static i false Is Unique 5 true Lower Di Method Name pr ft Postcondition Precondition Raised Exception Redefined Operation Template Parameter Type Upper 1 Visibility public Abbildung 5 35 Tutorial Eigenschaften der Methode priift ration Hinzufiigen durch Klick auf die Klasse Professor und setzen des Namens publiziertDokument Abbildung 5 36 zeigt das Resultat Die Operation h ltZentral bung wird erstellt Auswahl des Werkzeuges Operati on Hinzuf gen durch Klick auf die Klasse Professor und setzen des Namens h lt Zentral bung Abbildung 5 37 zeigt das Resultat Die Operation h lt bung wird erstellt Auswahl des Werkzeuges Operation Hin zuf gen durch Klick auf die Klasse Professor und setzen des Namens haeltUebung Abbildung 5 38 zeigt das Resultat Die Klasse Vorlesung Durch erneute Wa
18. e B RER C State Machine E a default3 umiz EX LO mDef mgp Sais State E VI PG umiz_class_diagram E Region e LO RMC_MQP_Tutorial mqp Final State Initial Shallow History 41 Deep History Fork 3 Join A Junction Choice X Terminate Entry Point BE Outine 23 Ars Ext Pont Transition Lal Bi J E Properties 53 Amen E lt Class gt StateMachine J Propert Value ei El E UMLZ Classifier Behavior Core Rulers amp Grid Appearance Client Dependency Init Is Abstract Me false e Les a Abbildung 4 14 bersicht ber Zustandsdiagrammeditor 4 2 2 3 Zustandsdiagramme Zweiter von uns unterst tzter Diagrammtyp ist das Zustandsdiagramm Abbildung 4 14 zeigt den UML Z Editor mit einem ge ffneten Zustandsdiagramm Wird der Editor mit einem Zustandsdiagramm ge ffnet zeigen sich folgende Bereiche Canvas Der Canvas ist die Zeichenfl che auf dem die Elemente des Diagrammes als Gra fiken erscheinen Palette Die Palette am rechten Rand des Canvas ist das Werkzeug um Elemente anzule gen Properties In den Properties werden Informationen ber das Element dargestellt das gerade selektiert ist Wenn das Fenster mit den Properties nicht sichtbar ist kann es mit Window gt Show View Properties ge ffnet werden Outline Die Outline bietet eine verkleinerte grafische bersicht ber das aktuelle Dia gramm Wenn die Oulineview nicht sichtbar ist
19. options Listing 7 18 Grammatik Abschnitt Optionen von JavaCC 2 Die Hauptklasse RefactoringParser wird aus der Grammatik generiert Diese Klas se f hrt das Parsen aus Java heraus durch Hier findet man nur reinen Javacode inklusive Import Anweisungen und der eigentlichen Klassendefinition siehe Listing 7 19 Dieser l sst sich in zwei Bereiche aufteilen Erstens wird der Parser selbst als Klasse definiert inklusive der parse Methode die das Parsen anst t Zweitens sind hier mehrere kurze Methoden definiert die im n chsten Teil der Grammatik genutzt werden PARSER_BEGIN RefactoringParser PARSEREND RefactoringParser Listing 7 19 Grammatik Abschnitt Definition der Klasse RefactoringParser 3 Nun beginnt die Definition der Inhalte der Grammatik Listing 7 20 Es wird defi niert welche Zeichen als Whitespace anzusehen sind und wie Kommentare formatiert sein m ssen 19Zu finden auf der Abgabe CD https javacc dev java net doc docindex html RefaSo amp ModelCockpit 7 Entwicklerdokumentation 235 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft WHITE SPACE x t V r f COMMENTS x MORE INSINGLE_LINE_ COMMENT x INMULTLLINE COMMENT lt IN_SINGLE_LINE_COMMENT IN FORMAL_COMMENT IN_MULTILLINE_COMMENT gt MORE RESERVED WORDS AND LITERALS x
20. 5 2 2 1 Einen neuen Modellqualit tsplan anlegen Als erstes wird ein neues allgemeines Projekt ben tigt File New General Im er scheinenden Dialog Abbildung 5 48 wird der Name des Projektes RMC Tutorial einge geben und mit Next best tigt Nachdem das neue Projekt angelegt wurde kann ein neuer Modellqualit tsplan an gelegt werden File New Other RMC Model Quality Plan siehe Abbildung 5 49 Nachdem der Anwender Model Quality Plan ausgew hlt und mit Next best tigt hat erscheint ein weiterer Dialog in dem der Name des Modellqualit tsplans eingegeben wer den muss Abbildung 5 50 zeigt diesen Dialog Der Anwender gibt RMC_MQP_Tutorial als Dateinamen ein w hlt den Ordner des zuvor angelegten allgemeinen Projektes RMC Tutorial und best tigt mit Next Es wird daraufhin eine neuer Modellqualit tsplan mit dem Namen RMC_MQP_Tutorial angelegt In dem sich daraufhin ffnenden Dialog gibt der Anwender den Modellqualit tsplan Namen model quality plan name und die Version version ein Anschlie end w hlt er das RefaSo amp ModelCockpit 5 Tutorial 121 dl UNIVERSITAT PADERBORN Die Universit t der Informationsgesellschaft Abschlussbericht el Mi New Lol x Select a wizard gt Create a new Model Quality Plan d Wizards type filter text E gt General File i 3 Folder f 1 Project Untitled Text File 2 Example EMF Model Creation Wizards E RMC f Model Qua
21. 92 5 2 Tutorial Projekt anlegen cen a 22 2 SRY ee ee Bra sis 93 5 3 Tutorial Prejektiname gt 2 644 2s an ee dw de eke ne 93 5 4 Tutorial Diagrammtyp so cranio caa sa Es ae an 94 5 5 Tutorial Dateiname f r das Diagramm 2 2 2 nn nn 94 5 6 Tutorial Elemente in der Outline 2 2 LE a a 95 5 7 Tutorial Eigenschaften des Datentyps Time 96 5 8 Tutorial Eigenschaften der ZExpression Specification f r Time 96 5 9 Tutorial Z Editor ZExpression f r Time 97 5 10 Tutorial Eigenschaften des Datentyps Minute 98 5 11 Tutorial Z Editor ZExpression f r Minute 98 5 12 Tutorial Constraint f r Minute 99 5 13 Tutorial Z Editor ZPredicate f r Minute 20 99 5 14 Tutorial Eigenschaften des Datentyps Hour 100 5 15 Tutorial Eigenschaften des Datentyps Fachgebiet 100 5 16 Tutorial Eigenschaften des Datentyps Text o 101 5 17 Tutorial Eigenschaften des Datentyps Ne 101 5 18 Tutorial Eigenschaften des Datentyps Studiengang 102 5 19 Tutorial Eigenschaften des Datentyps Test xN 20 20 102 5 20 Tutorial Die Zeichenfl che des Editors 2 2 2 2 2 2er nennen 103 5 21 Tutorial Eigenschaften der Klasse Person 104 5 22 Tutorial Eigenschaften des Attributes name 104 5 23 Tutorial Eigenschaften des Attributes vorname 20 4 105 5 24 Tutorial Eigensch
22. ContextQuery Context Query Beschreibung einer OCL Anfrage Variable gibt entweder eine Boolsche Varia Parameter ble oder eine Variable die im Typ Query angegeben ist zur ck Parameter Parameter Variablen die in einer OCL Anfrage VariableT ype verwendet werden VariableName Query E Eine OCL Anfrage StringLiteral Refactoringldentifier lt IDENTIFIER gt Eine Referenz auf das Refactoring ber den Refactoringnamen RefactoringType Type Eindeutiger Name eines Refacto Identifier lt IDENTIFIER gt ringtyps Variableldentifier lt IDENTIFIER gt Name einer Variablen Propertyldentifier lt IDENTIFIER gt Name einer Eigenschaft Typeldentifier lt IDENTIFIER gt Gibt vollqualifizierte Na lt IDENTIFIER gt men der Type wieder z B de upb rmc umlz NamedElement StringLiteral lt STRING_LITERAL gt Eine Zeichenfolge 88 4 Benutzerdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft Retasol Ai UNIVERSIT T PADERBORN Abschlussbericht minin 4 3 FAQ 4 3 1 Allgemeine Probleme Frage Antwort Welche Java Version wird ben tigt Es wird Sun Java 6 ben tigt 4 3 2 Projekte Frage Antwort 4 3 3 Editor Frage Antwort Frage Antwort Frage Antwort Frage Antwort RMC wurde neu installiert Sind die alten Projekte weiter nutzbar Bestehende Projekte k
23. DecisionValidationDescription StringLiteral DecisionReturnVariable Variableldentifier Variable VariableType VariableName DecisionReturn Variable Variable Eine Bedingung deren Validierung angibt ob das Refactoring mit der vom Anwender getroffenen Entschei dung durchf hrbar ist Nach jeder nderung im Entscheidungsdialog wird diese neu ausgef hrt Hierin wird der Grund f r das Misslingen der Validierung der DecisionValidation angegeben die auch im Wizard angezeigt wird In dieser Variable wird das Ergebnis der Entscheidung gespeichert Die Definition einer Variablen VariableName lt IDENTIFIER gt Name der Variablen SimpleRefactoring SimpleRefactoring RefactoringBase AfterTemplate 86 4 Benutzerdokumentation SimpleRefacoring beschreibt die Definition eines einfachen Refacto rings RefaSo amp ModelCockpit D UNIVERSIT T PADERBORN Die Universit t der Informationsgesellschaft Abschlussbericht so NICHTTERMINAL PRODUKTIONEN BESCHREIBUNG ComplexRefactoring RefactoringBase SubRefactorings ComplexRefactoring RefactoringBase RefactoringName RefactoringParameter Before Template Precondition EnforcedRefactorings Calculation Refactoring Parameter Parameter VariableType VariableName ComplexRefacoring beschreibt die Definition eines komplexen Refactorings RefactoringBase besch
24. Die Universit t der Informationsgesellschaft Die Zusammenh nge der CZTWrapper Klassen sind dem Klassendiagramm der Abbildung 6 46 zu entnehmen Dabei werden von der Klasse CZTUtil Funktionalit ten zur Verf gung gestellt die das Parsen von Zeichenketten erlauben Die Klassen ZNameCollector und ZNameExchanger implementieren beide das Interface ZNameVisitor das von den CZ Tools bereitgestellt wird Beide Klassen werden von CZTU til genutzt um geparste Datenstrukturen zu durchlaufen Variablennamen zu finden und entsprechend Klassenfunktion zu verarbeiten e ZNameExchanger Die Klasse durchl uft den AST um gegebene Variablennamen durch entsprechende Objekte der Klasse NamedElementWrapper zu ersetzen In einem Objekt der Klasse NamedElementWrapper werden Modellelemente des dazugeh rigen UML Z Modells verpackt Bei der nderung des Namens dieser Elemente ndert sich dieser im verwendenden Z Ausdruck ebenfalls e ZNameCollector Es k nnen alle verwendeten Elemente des dazugeh rigen UML Z Diagramms gesammelt und als Collection angefordert werden 194 6 Architekturdokumentation RefaSo amp ModelCockpit N UNIVERSIT T PADERBORN Abschlussbericht me Mo Die Universit t der Informationsgesellschaft ICZTUti Cru DEFAULT SECTIONNAME String CZTUtiIDummySection PARSING ERROR String Parsing errors occured while parsing given string createExpr IExprWrapper createTerm ITermWrapper getInstance O CZ
25. E E de upb pg rme mgp diagnosticsinterfac g PS RA Parametecableriement E E de upb pg rmc map diagnosticsprovide d E N i cl de upb pg rmc map diagram qualty g E rectedRelationship EE de upb pa rmc map edit 5 3 E EE de upb pg rmc map editor ag R cl de upb pg rmc map measurement ag E E de upb pg rmc map tests 1 de upb pg rme mqp agr Ia cl de upb pg rme map ui 56 42 de upb pg rme refactoring Il de upb pg rmc refactoring commoninte Ep Typedelerient E32 de upb pg rmc refactoring diagnosticsi Il de upb pg rmc refactoring editorinterf i de upb pg rmc refactoring refactoringr EME de upb pg rmc umlz Ba E E D a E E D pr a D a ment Type TemplateableElement ES src ER Compare With gt gt BA JRE System Library JavaSE 1 6 g En SCH 5 Si Plug in Dependencies es SC sm BT Team amp META INF BT Replace with H EC model EP evaluate fae 20 D eer Se Bi K EE Show Properties View E a Seas Kess 21 Problems s E Properties 23 EE Console 3 Search 3 Call Hierarchy BE o E UML genmodel Propert EI schema Interface B classpath Metadata B project Presentation ditor presentation Jo build properties Provider dit providers Tests tests lugin tie mace E Tests Bi 55 de upb pg rme umlz diagram classedite SE wise E 15 de upb pg rme umiz diagram stateeditc SI 13 123 de upb pa rmc umiz edit ef ee PE x MESES of Sele
26. INameWrapper ZNamelmpl NamedElementWrapper create arg0 Object ZNameImpl equals ob Object boolean getId String getName String getOperatorName OperatorName getString enc Encoding String getStrokeList StrokeList getUsedNamedElements Collection lt NamedEkment gt getWordO String getZStrokeList ZStrokeList hashCode int create NamedElementWrapper elem NamedElement old ZName create NamedElementWrapper element NamedElement setld argo String void setName name String void setStrokeList argO StrokeList void setWord arg0 String void Abbildung 6 46 Klassendiagramm CZTWrapper Komponente RefaSo amp ModelCockpit 6 Architekturdokumentation 195 dl UNIVERSITAT PADERBORN Abschlussbericht EE Die Universit t der Informationsgesellschaft RefaSo ModelCoc 196 6 Architekturdokumentation RefaSo amp ModelCockpit 7 Entwicklerdokumentation Das Meta Huhn Peter auf die Frage Was war zuerst da Henne oder Ei und der Nachfrage Wer hat denn das erste Ei gelegt 7 1 Installation der Entwicklungsumgebung 7 1 1 Voraussetzungen Zur Weiterentwicklung von RMC ben tigen Sie folgende Software e Java SDK ab Version 1 6 e Eclipse for RCP Plug in Developers ab Version 3 3 2 e RMC Quellcode e Eine funktionierende Internetverbindung w hrend der Installation 7 1 2 Installation von Eclipse und der Plugins Um RMC kompilieren zu k nnen ben
27. Im weiteren Verlauf der Arbeit mit RMC k nnen Schritte gegebenenfalls teilweise oder im Ganzen bersprungen werden Mehr zum Thema Qualit ts kreislauf findet der interessierte Leser in Kapitel 2 2 5 2 1 Editor Zun chst wird ein UML Z Modell ben tigt Die zur Erstellung des Modells notwendigen Schritte lassen sich wie folgt aufz hlen e Neues Projekt anlegen e Ben tigte Datentypen erstellen 91 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft RefaSo ModelCoc Mi Resource RMC Tutorial default umlz_class_diagram RMC ME File Edit Diagram Navigate Project Refactoring Window Help Cie Fi O ahora WE Laser tr gt af xX H 100 ES Resource Project Explorer 2 7 E ld defouttsumte cass diagram 3 me El Le RMC Tutorial Palette gt E A default umiz Select 63 ld defauit umiz_class_disgram E Person N FA Loi default2 umlz E Note DH attributes Teen WI PG umlz_class_diagram BE dass vorname Text Package emailadresse Text EE Enumeration operations DataType 4 Association Class 2 Interface 2 Constraint Stereotype A Professor E Attribute E vortesung attributes 1 Operation SE semesterWochenStunden N E student Enum Literal zeit Time h lt gehalteneVortr ge N attributes Association Hachgebjet Fachgebiet operations
28. Is Abstract LA false Is Active E false Is Leaf LA false Name Student Owned Port Powertype Extent Redefined Classifier Representation Template Parameter Use Case Visibility T public Abbildung 5 25 Tutorial Eigenschaften der Klasse Student 106 5 Tutorial RefaSo amp ModelCockpit dl UNIVERSITAT PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft etaso ModelCockpi miz_class_diagram RMC Ele Edit Navigate Project Window Help ls A ee E T Resource e sop ert a popis Ex El e Propert Value 5 D Aggregation composite Association m SE Class H lt Class gt Student ps Client Dependency i Is Derived 5 false Is Derived Union i false Is Leaf i false Is Ordered r false Is Read Only i False Is Static E False 1s Unique ra true Lower St Name matrikelnummer Redefined Property Subsetted Property Template Parameter Type Type Declaration 8 Upper oi Visibility private Abbildung 5 26 Tutorial Eigenschaften des Attributes Matrikelnummer fiir das Feld Typ N gewahlt wird Abbildung 5 26 zeigt das Resultat Um das zweite Attribut zu erstellen wird wieder aus der Palette das Werkzeug At tribute ausgew hlt und anschlie end in der Zeichenfl che auf die Klasse Student geklickt Um den Namen des Attributs anzugeben wird das Attribut in der Zei chenfl che angeklickt und in der Properties View f r das Feld Nam
29. Y classpath 1553 16 10 07 18 01 b tions 1553 16 10 07 18 01 be gi RIE 4 Mapping 1 8 platform fresource de upb pg rmc umlz diagram classeditor model UML ecore Wide W Beda platform fresource de upb pg rme umlz diagram classeditor model umlz gmfgrap ar Cirta Cul Validate Run As Debug As Profile As Validate Migrate to GMF 2 0 Selection Parent List Tree Table Tree with Columns E Problems Javadoc Declaration E Progress ES Properties 22 BB platform resource de upb pc sog Propert oe Selected Object platform resource de upb pg tme umlz diagram classeditor model umlz amfmap Java de upb jagram state Abbildung 7 10 Editor Eile Edit Refactor Navigate Search Project Run GMFGenEditor Window Help wo GMF Genmodel erstellen ES Data Modeling Debug a Java 8 Package Explorer 53 o 0 Q BHC 87 99 2 JS de upb pg rmc map ui Il de upb pg rmc refactoring Il de upb pg rmc refactoring commoninte 1 22 de upb pg rmc refactoring diagnosticsi I de upb pg rmc refactoring editorinterf de upb pg rmc refactoring refactoringr e el de upb pg rmc umlz Tei 5 de upb pg rme umle diagram classedite cl de upb pg rmc umlz diagram stateeditc E G sre E custom sre FA JRE System Library JavaSE 1 6 BA Plug in Dependencies amp icons Gy META INF EX Ey model Gy codegen Ex gmf graph Gy templates 8
30. activityDiagram_controlNodes 48 propsheet ecore 3947 02 03 C E propsheet genmodel 3947 02 1 EN statemachineDiagram gmfgen F ateMachineDiagram gmfgrapt f 2 stateMachineDiagram gmfmap stateMachineDiagram gmftool 3 B stateMachineDiagram trace 39 UML ecore 3947 02 03 08 00 UML genmodel 3947 02 03 08 umlz_state gmfgen 3947 02 0 BN umlz_state gmfgraph 3947 02 ER umlz_state gmfmap 3947 02 0 umlz_state gmftool 3947 02 0 6 umnle_state2 amfgen 3947 02 0 BY umiz_state2 gmfgraph 3947 0 E umie_state2 gmfmap 3947 02 lasspath 3947 02 03 08 00 12 Y alog zl resource de upb pg rmc umlz diagram stateeditor model UML genmodel 4 platform resource de upb pg rmc umlz diagram stateeditor model UML ecore o E platform pluginforg eclipse emf ecore model Ecore genmodel ds platform plugintorg eclipse emf ecore model Ecore ecore DE outline 53 al 8 platform resource de upb pt Undo W pedo Calz Cl of Cut Copy BB poste Delete Validate Controlle Run As Debug As Profile As Validate Generate UML2Tools Diagrams Migrate to GMF 2 0 Add extension model Generate diagram Team Compare With Replace With Load Resource E platform fresource de upb pt 7 7 platform fresource de upb pt o E platform pluginfora ecl pse e platform pluginforg eclipse e E conso problems Javadoc 2 Dedaration E progress
31. classpath E Plug in Dependencies _ antinns Es icons El Ey META INF GC model gt E a ee ao 25 01 00 19 _ hl Problems 28 ra pro E ross E Properties El conse See Ey UML genmodel 3319 25 01 08 errors 3 921 warnings 0 infos umlz gmfgen 3098 15 01 08 1 Description Resource E 8 umiz gmfaraph 2200 19 11 07 El E Warnings 100 of 3921 items E umiz gmfmap 2392 27 11 07 1 Abstractvisitor is a raw type References to generic type AbstractVisitor lt T C O P EL PM S COA 55A CT gt should be parameterized UMLZOCLFactory java A umiz gmftool 3319 25 01 08 15 amp Abstractvisitor is a raw type References to generic type Abstractvisitor lt T C O P EL PM 5 COA 55A CT gt should be parameterized UMLZOCLFactory java 82 umiz2 gmfgen 3319 25 01 08 Abstractvisitor is a raw type References to generic type AbstractVisitor lt T C O P EL PM 5 COA 55A CT gt should be parameterized UMLZOCLFactory java BN umiz2 gmfgraph 3098 15 01 0 5 Abstractvisitor is a raw type References to generic type Abstractvisitor lt T C O P EL PM S COA 554 CT gt should be parameterized UMLZOCLFactory java A umiz2 gmfmap 3098 15 01 08 amp ArrayList is a raw type References to generic type Arraylist lt E gt should be parameterized ModelQualityAttributeNameEdirPart jar EX dasspath 1553 16 10 07 18 01 b Arraylistis a raw type References to generic type ArrayList lt E gt should be parameterized ModelQualityCharacteristicNameEditPa options 1553 16 10 07
32. component El ModelQualityPlan component mp out Lu delegate sid delegate IMQP Vv E delegate component O Ld de upb pg rmc mgp measurement IModel delegate Da IOCL LI m O IMQPInternalModel component sl de upb pg rmc mgp Abbildung 6 18 Komponentendiagramm MQP 6 3 3 2 Metamodell Das Metamodell des Modellqualit tsplans kurz MQP Metamodell wurde von Hendrik Voigt entwickelt Das im Weiteren beschriebene Meta MQP Modell wurde verfeinert und mit dem Eclipse Modelling Framework EMF EMF modelliert Das Meta MQP Modell 162 6 Architekturdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft Ai UNIVERSIT T PADERBORN Abschlussbericht minin enth lt f nf Teilmodelle Kontextmodell engl ContextModel Informationsbed rf nismodell engl Information Need Model Qualit tsmodell engl Quality Model Mess modell engl Measurement Model und Pr sentationsmodell engl Persentation Mo del Folgendes Paketdiagramm 6 19 stellt Zusammenh nge zwischen einzelnen Modellen dar lt lt import gt gt ContextElement Meta Information Need Model Meta Context Model gt gt lt lt import gt gt Role lt lt import gt gt Question lt lt import gt gt Goal VV Meta Quality
33. getScale IMQPScale Abbildung 6 27 Klassendiagramm MQP Measurement RefaSo amp ModelCockpit 6 Architekturdokumentation 171 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Das Messergebnis in der Klasse MeasurementResults wird am Ende durch die Klasse Mea surementResultsWriter serialisiert als XML Datei gespeichert Abbildung 6 27 zeigt das Klassendiagramm der Komponente MQP Measurement Die Klasse Measurement ist ei ne zentrale Kontrollklasse der Komponente Die Klasse Measurement fragt ber die Schnitt stelle IMQPInternalModel der Komponente MQP Metamodel de upb gp rmc mqp die genutzten bzw gew hlten Messungen an Weiterhin bergibt Measurement der Kom ponente OCLWrapper den OCL Ausdruck der Messungen der Typen ObjectiveBase Measure und DerivedMeasure und das zu messende UML Z Modell ber die Schnittstelle IOCL Die Messungen werden im OCLWrapper auf dem UML Z Modell durchgef hrt und die Ergebnisse der Messungen werden der Klasse Measurement zur ckgeliefert Die Klasse Measurement schreibt die Ergebnisse der ObjectiveBaseMeasures und Derived Measures und speichert die Messungen in der Klasse MeasurementResult Die Referenz der MeasurementResults und der zu messenden Indicators wird der Klasse Calcula teIndicators bermittelt Die Klasse CalculateIndicators berechnet die Ergebnisse der Indikatoren auf Basis der Ergebnisse der ObjectiveBaseMeasures und DerivedMeasu res D
34. glich und auch gewollt Der gezeigte Kreislauf wird nicht explizit von RMC unterst tzt es existieren also keine Sichten die die einzelnen Schritte von diesem Ablauf wiedergeben Es gibt zwei verschiedene Datenhierarchien auf denen RMC arbeitet die im Folgenden beschrieben werden UML Z Modell Messung Das UML Z Modell beinhaltet die Daten auf de nen Verbesserungen und Messungen durchgef hrt ESAS werden sollen Dieses Modell wird innerhalb von RMC mittels des Modelleditors erstellt Als Aus gangspunkt f r einen Durchlauf des Qualit tskreis laufs muss ein solches Modell existieren RefaSo amp ModelCockpit 2 Konzepte 27 Software modellierung F r die beiden Sichten von UML Z Klassen und Zustandsdiagramme gibt es jeweils einen Editor Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Modellqualit t Die Modellqualit t wird im Modellqualit tsplan erstellt und bearbeitet Dies geschieht unabh ngig vom Modell auf dem gemessen werden soll und ist daher losgel st vom eigentlichen Modellinhalt des UML Z Modells 2 2 1 Modellieren der Qualit t Um die Qualit t eines konkreten Softwaremodells zu ermitteln muss man zuvor die Vorstellungen von Qualit t modellieren Dieser Prozess wird im Folgenden beschrieben indem auf die f nf Teilm odelle der Modellqualit t eingegangen wird Qualit ts modellierung F r einen Durchlauf
35. hrt werden Ein SubRefactoring _ definiert Ausf hrungsbedingungen und Zu weisungen eines durchzuf hrenden Subrefactorings 87 Die Universit t der Informationsgesellschaft Refasollmodelcockpi Ai UNIVERSIT T PADERBORN Abschlussbericht CG NICHTTERMINAL PRODUKTIONEN BESCHREIBUNG SubRefactoring SubRefactoringCondition Bedingung f r ein SubRefacto Condition ContextQuery List ring Solange die hier definierte Bedingung erf llt ist wird ein in SubRefactoring angegebenes Re factoring wiederholt ausgef hrt EnforcedRefactorings EnforcedRefactorings Gibt eine Menge zu erzwingen EnforcedRefactoring der Refactorings an die vor der Ausf hrung des AfterTemplates bzw der SubRefactorings aus gef hrt werden k nnten falls die Precondition nicht erfolgreich va lidiert wird EnforcedRefactoring EnforcedRefactoring Die Beschreibung eines zu erzwin RefactoringName genden Refactorings Refactoringldentifier VariableAssignments EnforcedQueries ContextQueryList VariableAssignments VariableAssignments Enth lt eine Liste von Variablenzu VariableAssignment weisungen VariableAssignment Variableldentifier Beschreibt eine Variablenzuweisung Variableldentifier wobei der linke Eintrag von einem Unterrefactoring stammt und der rechte Eintrag von einem Oberrefac toring ContextQuery List ContextQuery Beschreibt eine Liste von OCL Ausdriicken
36. in the body of this License 9 The Free Software Foundation may publish revised and or new versions of the General Public License from time to time Such new versions will be similar in spirit to the present version but may differ in detail to address new problems or concerns Each version is given a distinguishing version number If the Program specifies a version number of this License which applies to it and any later version you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation If the Program does not specify a version number of this License you may choose any version ever published by the Free Software Foundation 10 If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different write to the author to ask for permission For software which is copyrighted by the Free Software Foundation write to the Free Software Foundation we sometimes make exceptions for this Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally No WARRANTY 11 BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE THERE IS NO WARRANTY FOR THE PROGRAM TO THE EXTENT PERMITTED BY APPLICABLE LAW EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND OR OTHER PARTIES PROVIDE THE PROGRAM
37. mit dem RMC Men angelegt und erh lt Hour als Name Abbildung 5 14 zeigt die Figenschaften des Elementes Type Declaration Fachgebiet Als weiterer Datentyp wird Fachgebiet erzeugt Analog zu den vorherigen Schritten wird dieser ber das RMC Men angelegt und erh lt Fachgebiet als Name Abbildung 5 15 zeigt die zugeh rigen Eigenschaften Type Declaration Text Die gleiche Vorgehensweise wird f r den Datentyp Text ange wendet Die Erstellung geschieht wieder ber das RMC Men als Name wird Text angegeben Abbildung 5 16 zeigt die Eigenschaften Type Declaration N Als n chster Datentyp wird N mit Hilfe des RMC Menii erstellt wo bei als Name N wie in Abbildung 5 17 gezeigt eingeben wird Type Declaration Studiengang Die Vorgehensweise zur Erstellung des Datentyps Stu diengang geschieht analog unter Angabe des Namens Studiengang 5 18 zeigt das Ergebnis Type Declaration Text x N Als letzter Datentyp wird Text x N erstellt Die Erstellung gleicht den vorherigen Schritten unter Angabe des Namens Text x N mit dem Ergebnis in Abbildung 5 19 RefaSo amp ModelCockpit 5 Tutorial 97 Die Universit t der Informationsgesellschaft Ai UNIVERSIT T PADERBORN Abschlussbericht MS Wi Resource RMC Tutorial default umlz_class_diagram RMC Eile Edit Navigate Project Window Help ABI ARSS E Resource 5 E Properties 3 Tes Ral Client Dependency Is Abstract E False Is Leaf ve fals
38. o Delta List E Is Abstract ve False Is Leaf ik False Is Ordered E false Is Query j False Is Static E false 15 Unique T true Lower 51 Method Name T h ltUbung Postcondition Precondition Raised Exception Redefined Operation Template Parameter Type Upper 51 Visibility public Abbildung 5 38 Tutorial Eigenschaften der Methode h lt bung Ill Resource RMC Tutorial default umiz_class_diagram RMC File Edit Navigate Project Window Help com cepa Sr a Properties 23 Se Classifier Behavior Client Dependency Init of Is Abstract Is Active LA False Is Leaf E false Name Vorlesung Owned Port Powertype Extent Redefined Classifier Representation Template Parameter Use Case Visibilty a false public Abbildung 5 39 Tutorial Eigenschaften der Klasse Vorlesung RefaSo amp ModelCockpit 5 Tutorial Rall 115 d i UNIVERSIT T PADERBORN Die Universit t der Informationsgesellschaft Abschlussbericht Cul RefaSo ModelCoci Wi Resource RMC Tutorial default umlz_class_diagram RMC Mee Ele Edit Navigate Project Window Help Its A e eo ES Resource men A Es B d a Pri i Z Aggregation composite Association S class H lt Class gt Vorlesung EE Client Dependency Default End Is Derived 54 false Is Derived Union ve false Is Leaf 54 false Is Ordered D
39. ol x Refactoring Split class Type naming decision Please supply the name of the new class new Name Mitarbeiter Abbildung 4 40 Refactoringassistent Entscheidungsseite zur Angabe einer Zeichenfolge W Refactoring Wizard ol x Refactoring Split class Type selection decision Pleas choose the operations to move to the new class class O forschen class de upb pg rmc umlz internal impl OperationImpl O vortragHalten class de upb pg rmc umiz internal impl OperationImpl O mitarbeiter class de upb pg rmc umiz internal impl OperationImpl O pr ft class de upb pg rmc umiz internal impl OperationImpl O publziertok class de upb pg rmc umlz internal impl OperationImpl h ltzentral class de upb pg rmc umiz internal impl OperationImpl haltUbung class de upb pg rmc umlz internal impl OperationImpl Abbildung 4 41 Refactoringassistent Entscheidungsseite zur Auswahl eines oder mehrerer Elemente aus einer Elementenmenge beim Ausfiihren eines Refactorings Die Art der Entscheidung der Name des ausgew hlten Refactorings sowie eine Beschrei bung der aktuellen Entscheidung werden jeweils im oberen Teil der Wizard Seiten einge blendet 4 42 Entsprechen Angaben des Anwenders nicht definierten Bedingungen aus der Konfigurationsdatei so erscheint eine Fehlermeldung im oberen Teil des Refactoringassis tenten die eine Fortf hrung des Refactorings verhindert Abbildung 4 41 Der Status der Durchf hrung ist de
40. r ein Command Der CreateMQPAuthorCommand wird ver wendet um Autoren f r den MQP anzulegen Die Klasse CreateMQPAuthorCommand erbt von der Klasse ChangeCommand Sie wird verwendet um nderungen am Modell vorzuneh men Durch ihre Verwendung ist es notwendig die Methode doExecute zu berschreiben Override Nur innerhalb der doExecute Methode des Commands ist ein Schreibzugriff auf das Modell ber set Methoden erlaubt Um einen Autor zu speichern muss zuerst eine Person angelegt werden Daher wird in der Methode als erstes ein Objekt Person erzeugt Objekte des MQPs sollten immer ber die MQPFactory erzeugt werden Sie besitzt f r jedes Element eine create Methode Beim Personen Objekt k nnen dann direkt die Eigen schaften wie Name Vorname usw gesetzt werden Als n chstes wird ber die MQPFactory ein Autor erzeugt dem die Person zugewiesen wird Anschlie end muss der Autor dem Mo dell hinzugef gt werden Dies geschieht ber mqp get Author add author Der Autor wird im Modell gespeichert wenn das Command ausgef hrt wird ChangeCommand cmd new CreateMQP AuthorCommand mqp data getMqpForm getMQPEditor getEditingDomain getCommandStack execute cmd Listing 7 11 MQP Verwendung CreateMQPAuthorCommand Listing 7 11 zeigt wie das Create MQPAuthorCommand verwendet wird Das Beispiel ist der AuthorsSection entnommen ber new wird ein neues Objekt des Commands erzeugt und anschlie end ber die Methode exe
41. t reagieren k nnen In diesem Punkt gab es unterschiedliche Meinungen in der Projektgruppe so dass das Verfahren trotz der selten eingehaltenen Ziele bis zum Ende der Projektgruppe beibehalten wurde A 4 2 Kein Projektleiter Wir hatten bei der Aufteilung der Rollen auf einen Projektleiter verzichtet Dies hatte allerdings den Nachteil dass f r viele Entscheidungen sehr lange Diskussionen erforderlich waren bis die Gruppe gemeinsam eine Entscheidung treffen konnte Manchmal war es auch nicht m glich sich auf eine Entscheidung zu einigen ein Projektleiter h tte in so einem Fall eine Entscheidung treffen k nnen RefaSo amp ModelCockpit A Unsere Vorgehensweise 261 Die Universit t der Informationsgesellschaft WS D UNIVERSIT T PADERBORN Abschlussbericht A 4 3 Zusammenarbeit vor Ort Vor allem ab ca der Mitte der Projektgruppe haben wir verst rkt vor Ort also im Pro jektgruppenpoolraum zusammen gearbeitet Dadurch waren wir oft produktiver als wenn jeder f r sich allein zu Hause gearbeitet hat Etwas problematisch war dabei allerdings gemeinsame Arbeitszeiten zu finden da einige Projektgruppenmitglieder bevorzugt nachts andere morgens gearbeitet haben Das hat teilweise zu Problemen gef hrt wenn z B machts nderungen durchgef hrt wurden durch die morgens dann Fragen und Probleme entstan den sind A 4 4 Entscheidungsfindung mit Hilfe eines Kriterienkatalogs Am Anfang der Projektgruppe kam es bei Entscheidungsfind
42. tigen Sie den RMC Quellcode und Eclipse mit ei nigen zus tzlichen Plugins F r die Installation dieser Plugins und die Einrichtung Ihrer Arbeitsumgebung gehen Sie folgenderma en vor 1 Installieren Sie das Java SDK ab Version 1 6 und Eclipse for RCP Plug in Devel opers ab Version 3 3 2 2 Starten Sie Eclipse Sie sehen nun den Dialog Select a Workspace 3 W hlen Sie als Workspace ein leeres Verzeichnis aus und best tigen Sie Ihre Auswahl mit OK Sie sehen nun die Eclipse Welcome Seite Thttp java sun com http www eclipse org downloads http www cs uni paderborn de fachgebiete fg engels lehre ws0708 pg rmc teil2 download html http java sun com 5http www eclipse org downloads 197 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft 4 Schlie en Sie die Welcome Seite Sie sehen nun eine leere Eclipse Arbeitsumgebung 10 11 12 13 14 15 198 Klicken Sie im Men auf Help Software Updates Find and Install Sie sehen nun den Dialog Feature Updates W hlen Sie die Option Search for New Features to Install und best tigen Sie Ihre Auswahl mit Next Sie sehen nun den Dialog Update Sites to Visit Markieren Sie die Update Site Europa Discovery Site und best tigen Sie Ihre Aus wahl mit Finish Es erscheint der Dialog Update Manager und einige Sekunden sp ter der Dialog Update Site Mirrors Best tigen
43. 1 1 consumer_toulput I 1 I odelQualityattributd f 1 ordered value file MeasureValue value ScaleType e modelElementName String input_4 input 3 an has scontignOblectiveRasoMensure BaseMeasure SubjectiveBaseMeasure OCLExpression String fidence Stri F z typeOfMeasurement String Objective GH ER ring typeOfMeasurement String Subjective S consumer Checklist 1 input FapplicableToModelElementType kappliedToModelElement i ContextModel SoftwareDevelopmentArtefac name String id String status String 42 version Double d 1 4 derived from 4 has ScaleType A name String 1 getValue Object clone ein vaue Object ScaleType AA A Checker Cid Integer applicationCondition Boolean question String BooleanScaleType cer SE value ScaleType a pvalues1 string value Boolean valuelndex 1 Integer getvalus Boolean gelValue String clone ein value Object BooleanScaleType clone in value Object StringScaleType d BasicChecker Perivedchecker IntegerScaleType DoubleScaleType calculation String comment String value Inte H f BE Integer Evalue Double improvementSugestion String interval Integer interval Double upperBound Integer upperBound Double lowerBound Integer lowerBound Double getValue Integer getValue Double clone in value Object IntegerScaleType clone in value Object DoubleScaleTy
44. 166 e Pr sentationsmodell siehe Seite 168 RMC erlaubt die Eingabe der einzelnen Teilmodelle ber eine grafische Benutzeroberfl che Die so erstellten Modellqualit tspl ne k nnen anschlie end auf verschiedene Modelle ange wendet werden um die Qualit t dieser Modelle zu messen Neben einer ganzen Reihe vordefinierter Messungen besteht die M glichkeit eigene Mes sungen auf Basis von OCL zu definieren OCL Abfragen werden verwendet um bestimmte Eigenschaften einzelner Modellelemente zu messen wie z B Anzahl der Attribute einer Klasse oder L nge des Namens einer Klasse Die Definition solcher Messungen erfolgt ber eine grafische Benutzeroberfl che und ist somit einfach m glich ohne dass nderungen am Quellcode erforderlich sind Die Ergebnisse der Messungen werden dem Benutzer anschlie end in Form eines interakti ven Graphen pr sentiert Sie dienen au erdem als Eingabe f r die Diagnose die aus den Ergebnissen weitere Ma nahmen ableiten kann 9 3 3 Diagnose der Messergebnisse Nachdem ein UML Z Modell mit Hilfe eines Modellqualit tsplanes gemessen wurde kann auf Wunsch des Benutzers eine Diagnose dieser Ergebnisse durchgef hrt werden Dem Be nutzer werden auf Basis dieser Diagnose verschiedene Verbesserungsvorschl ge in Form von Diagnosen und dazugeh rigen Therapien pr sentiert Die Diagnose ist vollst ndig kon figurierbar Die Regeln auf deren Grundlage die Diagnose erfolgt werden dabei ber ein
45. 18 01 e ArrayList is a raw type References to generic type ArrayList lt E gt should be parameterized rer 4 D H D DS Selected Object platform resource de upb pg rme umlz diagram classeditor model umlz gmfmap Abbildung 7 9 Editor GMF Mappingmodel um Ressourcen erweitern Aus den Modellen f r die grafischen Elemente die Toolbar und dem Metamodell wird zun chst ein Modell f r das Mapping dieser Modelle erstellt Abbildung 7 9 zeigt den Dialog mit dem Ressourcen zu einem Modell hinzugef gt werden Bei der Neuerstellung eines Mappings werden diese Informationen direkt durch den Wizard abgefragt Aus diesem Mapping wird das Modell f r die Generierung erstellt Der Anwender w hlt auf der gmfmap Ressource im Kontextmen Create Generator Model dargestellt in Abbildung 7 10 Dieses erzeugt das Genmodel Das Genmodel enth lt die Informationen die GMF f r die Generierung des Quelltextes der Editoren ben tigt Erstellt werden diese durch Auswahl von Generate Diagram Code auf dem Wurzelelement des Genmodels dargestellt in Abbildung 7 11 Weitere Informationen zu diesem Thema finden sich auch der GMF Webseite Der erzeugte Quelltext ist nur zusammen mit dem generierten Modell nutzbar Ben tigt werden folgende Pakete e de upb pg rmc umlz e de upb pg rmc umlz edit e de upb pg rmc umlz editor 212 7 Entwicklerdokumentation RefaSo amp ModelCockpit NI UNIVERSIT T PADERBORN Die Universit t der Informationsgesel
46. 2 A 3 Erik Hatcher and Steve Loughran JAVA Development with Ant Manning Publications Co Greenwich CT USA 2003 6 3 1 Jochen Hoenicke and Ernst Riidiger Olderog Combining Specification Techni ques for Processes Data and Time In IFM 02 Proceedings of the Third Inter national Conference on Integrated Formal Methods pages 245 266 London UK 2002 Springer Verlag 9 2 C A R Hoare Communicating Sequential Processes Prentice Hall Internatio nal 2004 9 2 253 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft JAV MUO5 MVV OMGOS PRO RWO07 Smi00 UML VE08 WD96 Weh00 wsos 254 Java Compiler Compiler JavaCC https javacc dev java net 7 2 5 1 A 3 Petra Malik and Mark Utting CZT A Framework for Z Tools In ZB 2005 Formal Specification and Development in Z and B 4th International Conference of B and Z Users Guildford UK April 13 15 2005 Proceedings pages 65 84 2005 6 1 6 2 6 6 3 7 7 2 1 2 Model View Controller MVC reloaded as Model View View Model mvvm http www codecomplete de blogs xamlblog archive 2007 09 20 mvc model view controller reloaded as mvvm model view viewmodel aspx 7 2 3 3 OMG Object Constraint Language OMG Available Specification Version 2 0 formal 06 05 01 OMG Mai 2006 6 3 6 9 2 GMF Propsheet Customization http wiki eclipse org GMF_Propsheet_Custo mization 7 2 2
47. 6 Das Pr sentationsmodell verwenden Im Pr sentationsmodell werden die Elemente des MQPs und die Messergebnisse angezeigt Abbildung 5 64 zeigt das Pr sentationsmodell f r dieses Beispiel RefaSo amp ModelCockpit 5 Tutorial 131 d i UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Resource RMC Tutorial IC_MQP_Tutorial mqp RMC lor Ele Edit Navigate Project MQPEdtor Window Help ern E Resource y Hier noch sch ne berschrift General information about this model quality plan Model Quality Attribute Mehrfachvererbung 4 Ascendants Number SCHT El Model Quality Attribute Gro e Klassen Large Classes ILC ON E 4 Model Quality Attribute Vererbungstiefe Depth of Inheritance of a Class DITO E Model Quality Attribute Lange der Klassennamen 4 Short class names SCH 4 Protected Attributes Number PROAN 4 Public Attributes Number PUBAN Leaf class predicate IsLeaf add indicator A Abstract Class Predicate IsAbstract Private Operations Number PRION Protected Operations Number PROON ae 4 Public Operations Number PUBON Children Number CHINO 4 Direct Descendants Number DDESN A Descendants Number DESNO Parents Number PARN lt lt Ascendants Number ASCNO Total Classes Number DCH gt Z Predicate Pre Post Condition ZPPPC i 4 Z Predicate in Class Number ZPRCN Derived Me
48. 69 Tutorial Auswahl der Klasse e 137 5 70 Tutorial Methodenauswahl o e e e 138 5 71 Tutorial Selektion auszugliedernder Methoden 138 5 72 Tutorial Benennung neuer Klasse 2 2 m nn nn 139 5 73 Tutorial Beginn der Assoziation angeben 139 5 74 Tutorial Ende der Assoziation angeben 139 5 75 Tutorial Refactoring durchgef hrt 0 o 140 6 1 Komponentendiagramm Architektur bersicht 144 6 2 Klassendiagramm IRefactoringEditor Interface 148 6 3 Klassendiagramm IRefactoringDiagnostics Interface 149 6 4 Klassendiagramm IOCL Interface ee 150 6 5 Klassendiagramm IMQP Interface 2 22 2 nn nn nennen 151 6 6 Klassendiagramm IZParser Interface 151 6 7 Paketdiagramm UML Z Model u os cons AEN E EE EN AE 154 6 8 Paketdiagramm UML Z Model Edit o o 155 6 9 Paketdiagramm UML Z Model Editor 2 o oo 156 6 10 Klassendiagramm Realisierung von enable und effect Bedingungen 156 6 11 Klassendiagramm Realisierung der Delta Liste in Operationen 157 RefaSo amp ModelCockpit 13 D UNIVERSIT T PADERBORN Die Universit t der Informationsgesellschaft 14 6 12 6 13 6 14 6 15 6 16 6 17 6 18 6 19 6 20 6 21 6 22 6 23 6 24 6 25 6 26 6 27 6 28 6 29 6 30 6 31 6 32 6 33 6 34 6 35 6 36 6 37 6 38 6 39 6 40 6 41 6 42 6 43 6 44 6 45 6 4
49. AS IS WITHOUT WARRANTY OF ANY KIND EIT HER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE IMPLIED WAR RANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU SHOULD THE PROGRAM PROVE DEFECTIVE YOU ASSUME THE COST OF ALL NECESSARY SERVICING REPAIR OR CORRECTION 12 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER OR ANY OTHER PARTY WHO MAY MODIFY AND OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE BE LIABLE TO YOU FOR DA MAGES INCLUDING ANY GENERAL SPECIAL INCIDENTAL OR CONSEQUENTIAL DA MAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES END OF TERMS AND CONDITIONS RefaSo amp ModelCockpit C Lizenz 301 Die Universit t der Informationsgesellschaft WS D UNIVERSIT T PADERBORN Abschlussbericht Appendix How to Apply These Terms to Your New Programs If you develop a new program and you want it to be of the greatest possible use to the public the best way to achieve this is to make it free software which everyone can redistribute and change under these terms To do so attach the following notices to the
50. ApplicabilityCondition Objekte dieser Klasse stellen Bedingungen f r die Ausf hrung ei nes Refactorings bei gegebener Modellelementmenge dar Ist der R ckgabewert false so werden keine weiteren Schritte des Refactoringablaufs durchgef hrt Die Bedingung wird bereits im Refactoringtyp berpr ft und gilt damit f r den ganzen Ablauf der aus mehreren einzelnen AbstractRefactoring Objekten bestehen kann Eine App licabilityCondition besteht in den meisten F llen aus genau einer Instanz von IContextQuery so dass diese m glichst schnell validiert werden kann DecisionValidation Mit Hilfe der DecisionValidation werden Entscheidungen des An wenders vergleiche Beschreibung zu Abbildung 6 38 auf bestimmte Bedingungen hin berpr ft K nnen diese Bedingungen die mittels OCLQuerys definiert sind nicht va lidiert werden erh lt der Anwender eine Beschreibung die die Bedingung beschreibt und den Fehler der Entscheidungsangabe ausweist Precondition Im Gegensatz zu ApplicabilityCondition definiert eine Precondition ei ne Vorbedingung f r die Ausf hrung eines AbstractRefactorings Wird die Bedin gung nicht erf llt so wird der ganze Refactoringablauf abgebrochen Eine Definition der Precondition findet sich auch in theoretischen Ausarbeitungen von Thomas Ruhroth RW07 SubRefactoringCondition Instanzen von SubRefactoringCondition geben eine Bedin gung f r die Ausf hrung eines Subrefactorings aus einem ComplexRefactoring an Das en
51. CE m En m nn 219 9 1 Qualit tskraslanf 2 4 Nd E EI a a ae ae 247 RefaSo amp ModelCockpit 15 dl UNIVERSITAT PADERBORN Abschlussbericht BME Die Universit t der Informationsgesellschaft 16 RefaSo amp ModelCockpit Tabellenverzeichnis 4 1 4 2 4 3 4 4 4 5 4 6 ALT 7 1 7 2 7 3 F Reterena Prelude ex iia do ware Sr a k 48 Z Reterenz Number Toolkit cos cc 87 a en te ihr OS 50 Z Referenz Set Toolkit e ss sc oa re ce a d e e o 51 Z Referenz Relation Toolkit 2 22 22 Common 51 Z Referenz Function Toolkit 2 22 2 2 Common 52 Z Referenz Sequence Toolkit 2 222 2 Common 52 Refactoring Nichtterminale der Grammatik 2 2 222 nun nennen 84 Entwicklung bersicht der Schnittstellen 202 Entwicklung bersicht der Komponenten 203 Refactoring Implementierte Decisiontypen 240 17 dl UNIVERSITAT PADERBORN Abschlussbericht BME Die Universit t der Informationsgesellschaft 18 RefaSo amp ModelCockpit Listings 4 1 4 2 4 3 4 4 4 5 5 1 6 1 7 1 tse 7 3 7 4 7 5 7 6 7 7 7 8 7 9 7 10 a 7 12 7 13 7 14 7 15 7 16 Tr 1 18 1 19 7 20 Tal 7 22 7 23 7 24 7 25 7 26 1 21 Diagnoseknoten lt universalParameter gt 2 2 2 2 nn nennen 77 Diagnoseknoten lt symptom gt 2 nn En En 78 Diagnoseknoten lt diagnosis gt e 78 Diagnoseln ten lt therapy gt o ca ses ae a rer hen 78 Diagnoseknoten lt normalisation gt e 79 Tu
52. Characteristic Model Quality Characteristic Implementierbarkeit Name 12 Mehrfachvererbung del The Question of the Model Quality Attribute Abbildung 5 59 Qualit tsmodell RefaSo amp ModelCockpit 5 Tutorial 129 d i UNIVERSIT T PADERBORN Die Universit t der Informationsgesellschaft Abschlussbericht MQP_Tutorial mqp RMC Ele Edit Navigate Project MQPEdtor Window Help le melu arcto Efi rescue y Hier noch sch ne berschrift General information about this model quality plan Model Quality Attribute Mehrfachvererbung Base Measure Links Ascendants Number ASCNO Derived Measure Links El Model Quality Attribute Gro e Klassen 4 Indicator Links add indicator 4 Large Classes ft LC 0 Model Qualty Attribute Vererbungstiefe er 4 Depth of Inheritance of a Class DITO ae Model Quality Attribute Lange der Klassennamen Short class names SCH Model Quality Attribute Verf gbarkeit von Vor und Nachbedingung v Execute measures General information about the execution of measures UML Z Model Measurement Results Output Test al do Measurement 1 Context Model 2 Information Need Model 3 Quality Model 4 Measurement Model 5 Presentation Model Selection Parent List Tree Table Tree with Columns Abbildung 5 60 Zuordnung der Qualit tsattribute im Messmodell enter measure name of measure
53. ES Properties 23 Refresh Show Properties View Selected Object platform resource de upb pg rmc umiz diagram stateeditor model umlz_state gmfgen Abbildung 7 11 Editor GMF Quelltext f r Diagramme generieren RefaSo amp ModelCockpit 7 Entwicklerdokumentation 213 Die Universit t der Informationsgesellschaft WS di UNIVERSIT T PADERBORN Abschlussbericht een Zus tzliches Der so entstandene Quelltext ist lauff hig jedoch sind viele Funktionen nicht vollst ndig implementiert oder UML Z konform Die UML2 Tools bieten einen umfangreichen Edi tor f r UML2 Modelle Trotz der Unterschiede von UML2 und UML Z lie en sich viele Implementierungen bernehmen So sind die Parser vollst ndig bernommen worden Die vorgenommenen nderungen sowohl am generierten Quelltext als auch an den UML2 Tools Quelltext finden sich in Kapitel 7 2 2 2 Hinweis Methoden und Klassen mit nderungen werden vor dem ber schreiben durch Generierung gesch tzt mit e ANOT GENERATED e GENERATED NOT e GENERATED NOT Gleichzeitig ist dies eine M glichkeit die per Hand implementierten Me thoden im umfangreichen Quelltext zu finden Die verwendeten Grafiken stammen ebenfalls aus den UML2 Tools Weiterhin werden Gra fiken des Modelles genutzt In den Projekten liegen sie unter e de upb pg rmc umlz diagram classeditor icons e de upb pg rmc umlz diagram stateeditor icons e de upb pg rmc umlz edit icons
54. IS Listing 7 20 Grammatik Abschnitt Whitespace 4 Es folgt die Definition von Tokens Listing 7 21 Dies sind Schl sselw rter die als feste Zeichenkette einzelne Bereiche oder Elemente der Grammatik kennzeichnen Ein Token besteht aus einem Tupel Als Erstes wird ein eindeutiger String zur Identifika tion des Tokens angegeben Als Zweites folgt die Zeichenfolge die die Grammatik erkennen soll Um ein neues Token hinzuzuf gen wird lediglich eine weitere Zeile hingef gt und damit eine ungenutzte ID gew hlt TOKEN lt HEAD Refactoring grammar file of gt lt VER Version 0 1 gt lt SREFAC SimpleRefactorings gt lt SUBREFNAME SubRefactoringName gt lt SUBCALC SubCalculation gt 21Da diese Identifikation an keiner anderen Stelle in der Grammatik auftaucht muss sie nur eine einzige Bedingung erf llen sie muss sich von allen anderen in der Tokenliste unterscheiden 236 7 Entwicklerdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft Refaso Modelcockpi Ai UNIVERSIT T PADERBORN Abschlussbericht G Listing 7 21 Grammatik Abschnitt Tokenliste 5 Neben den Tokens f r Schl sselw rter gibt es eine Reihe von Tokens die Dinge de finieren wie z B Stringliterale Hier wird beispielsweise festgelegt ob und welche Zeichenketten mehrzeilig sein d rfen und welche Zeichen als Buchstaben definiert sind Listing 7 22 zei
55. Komponente werden Instanzen der Schnittstelle refe renziert und im Ecore Modell definierte Operationen mit Hilfe der OCLWrapper Komponente vergleiche 6 3 5 und 6 3 6 angesto en CZTWrapper Der CZTWrapper stellt Beziehungen zwischen Elementen analysierter Z Ausdr cke und verf gbaren Elementen aus dem entsprechenden UML Z Modell unter Verwendung des IModel Interfaces her Auf diese Weise erzeugte Relationen zwischen Modellelementen und Variablen eines Z Ausdrucks unterst tzen die Kom ponente UML Z Model bei der Wahrung der Konsistenz OCLWrapper Der OCLWrapper stellt einen Sonderfall beim Zugriff auf das Modell dar da die OCL Implementation f r EMF nicht ber das Interface des UML Z Modells auf das Modell zugreift sondern nur auf im Ecore definierte Methoden zugreifen kann Der Zugriff aus dem OCL Plugin f r EMF erfolgt dann ber die Java Reflection API Die Methoden und Attribute die f r den Zugriff mit OCL auf das Modell zur Verf gung stehen sind in der API beschrieben siehe Kapitel 8 6 2 2 IRefactoringEditor In Abbildung 6 2 ist die Schnittstelle IRefactoringEditor dargestellt Die Refactoring Komponente bietet dem UML Z Editor die Funktionalit t an eine Liste m glicher Re factorings auf gegebenen Modellelementen zu erhalten Es ist vorgesehen dass der Editor auch ohne die Refactoring Komponente funktioniert Die Integration dieser Funktion in die GUI bernimmt der UML Z Editor Ihttp java sun com javase 6 doc
56. List Is Abstract To false Is Leaf a False Is Ordered a false Is Query ve False Is Static A false Is Unique E true Lower Gi Method Name publiziertDokument Postcondition Precondition Raised Exception Redefined Operation Template Parameter Type Upper 1 Visibility public Abbildung 5 36 Tutorial Eigenschaften der Methode publiziert Dokument W Resource RMC Tutorial default umlz_class_diagram RMC Eile Edit Navigate Project Window Help gt LE EAS ES Ly Resource B ES SSS sl pros 2 a Si E Body Condition Client Dependency ad Concurrency E sequential ES Delta List Is Abstract E false Is Leaf a false Is Ordered E False Is Query i false Is Static E false Is Unique E true Lower 51 Method Name EE hakZentralabung Postcondition Precondition Raised Exception Redefined Operation Template Parameter Type Upper 51 Visibility ES public Abbildung 5 37 Tutorial Eigenschaften der Methode h ltZentral bung 114 5 Tutorial RefaSo amp ModelCockpit E d i UNIVERSIT T PADERBORN Die Universit t der Informationsgesellschaft Abschlussbericht Ml Resource RMC Tutorial default umlz_class_diagram RMC Eile Edit Navigate Project Window Help RefaSo ModelCock 101 E E ES Resource N EI 5 Properties SSES Pri Ve ai Lei Body Condition Client Dependency SE Concurrency sequential
57. MQP Kontextmodell Artefakt hinzufiigen 63 4 24 MQP Neues Artefact Neues Diagram hinzufiigen 64 4 25 MQP Neues Artefact Neue Spezifikation hinzuf gen 65 4 26 MQP Neues Artefact Neue Beziehung anlegen 65 4 27 MQP Editor ausgef lltes Kontextmodell 2 2 22 2 nn 66 4 28 MQP Editor Informationsbed rfnissmodell 67 4 29 MQP Informationsbediirfnissmodell Neues Ziel anlegen 67 4 30 MQP Editor Qualit tsmodell 69 4 31 MQP Qualit tsmodell Palette der Zeichenfl che 69 4 32 MQP Editor Messmodell 71 4 33 MQP Messmodell Neue Basismessung eingeben 2 222 2 72 4 34 MQP Messmodell Neuen Indikator eingeben 74 4 35 MQP Pr sentationsmodell 75 4 36 Diagnose SUL 2 cosetes 4 am An ine ar ana Beta 77 4 37 Klassendiagrammeditor Refactoringmen 80 11 N De ea nA Abschlussbericht a 4 38 Klassendiagrammeditor Fehlermeldung beim Aufruf des Refactoringmeniis 81 4 39 Refactoringassistent Startseite ee 81 4 40 Refactoringassistent Entscheidungsseite zur Angabe einer Zeichenfolge 82 4 41 Refactoringassistent Entscheidungsseite zur Auswahl von Elementen 82 4 42 Refactoringassistent Entscheidungsseite zur Auswahl von Teilpr dikaten 83 4 43 Refactoringassistent Erfolgreicher Abschluss eines Refactorings 83 5 1 Tutorial Fertiges UML Z Modell o
58. Model lt lt import gt gt Role lt lt import gt gt SoftwareModel lt lt import gt gt ModelQualityAttribute Vv lt lt import gt gt SoftwareDevelopmentArtefact Meta Presentation Model Meta Measurement Model Abbildung 6 19 Paketdiagramm Metamodell des Modellqualit tsplans Kontextmodell Das Kontextmodell beschreibt das Umfeld in dem ein Software Modell betrachtet wird Eine detaillierte Beschreibung ist in VE08 angegeben Abbildung 6 20 stellt das Klassen diagramm des Kontextmodells dar Informationsbediirfnismodell Das Informationsbed rfnismodell soll gew hrleisten dass ausschlie lich Aspekte eines Soft waremodells betrachtet werden die in dem vom Kontextmodell gegebenen Umfeld wichtig erscheinen V E08 Abbidlung 6 21 stellt das Klassendiagramm des Informationsbed rfnis modells dar Qualit tsmodell Das Qualit tsmodell stellt einen weit verbreiten Ansatz dar Qualit t nach dem Divide and Conquer Prinzip in mehrere Bestandteile zu gliedern und auf diese Weise zu pr zisieren VEOs Abbildung 6 22 stellt das Klassendiagramm des Qualit tsmodells dar RefaSo amp ModelCockpit 6 Architekturdokumentation 163 d i UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft
59. Modelldefekte in Form von Diagnosen und ggf passenden Therapien dem Benutzer angezeigt werden Setzt der Benutzer den Grenzwert h her an so werden mit steigendem Grenzwert nur noch schwerwiegendere Modellm ngel in Form von Diagnosen und Therapien angezeigt In Abbildung 5 65 kann der Benutzer bei einem Grenzwert von 0 1 nach Aufklappen der gesamten Baumstruktur im Abschnitt Diagnosis beispielsweise sehen dass f r die Klassen Vorraussetzung f r die Anzeige von Modelldefekten ist dass der Modelldefekt der Diagnosekomponente bekannt ist 134 5 Tutorial RefaSo amp ModelCockpit Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Vorlesung Person Professor und Student Therapien angeboten werden Betrachtet der Benutzer Abbildung 5 65 etwas genauer so ist zu erkennen dass f r die Diagnose Short class names vier Therapien jeweils f r jede Klasse eine angeboten werden Bei diesen Therapien handelt es sich um Texttherapien f r die bei Anklicken auf den Namen z B auf den Ausdruck Short class names Therapie for Vorlesung im Description Abschnitt eine textuelle Beschreibung einer Verbesserung gegeben wird Klickt der Benutzer z B auf den String Short class names Therapie wie in Abbildung 5 65 zu sehen ist werden im Description Abschnitt dem Benutzer n here Informationen zu den Therapien gegeben F r die gerade beschriebene Diagnose Short class names Therapie ist auf gleicher Ebene
60. Person ER lt Property gt matrikelnummer H L lt Property gt studiengang Studie lt Operation gt lernen vorlesung lt Class gt Professor FA lt Generalization gt Person EL lt Property gt semesterWochenstu ER lt Property gt gehalteneVortrage 4 lt Operation gt forschen Z lt Operation gt vortragHalten 2 lt Oneratinn gt mitarh po 4 G Jm 5 Association End nimmt teil 7 Realization Abbildung 4 9 bersicht ber einen Klassendiagrammeditor RefaSo amp ModelCockpit 4 Benutzerdokumentation 41 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Mire ource RMC Tutorial default umlz_class_diagram RMC Eile Edit Navigate Project Window Help MAILS SR ES T Resource te ei SE pato x a CG E lt Package gt on A ZExpression Specification Hour x Minute Type Declaration Minute ZExpression Specification H 2 lt Constraint gt ZPredicate Specification Type Declaration Hour Type Declaration Fachgebiet Type Declaration Text 4 Type Declaration 8 ZExpression Specification M Type Declaration Studiengang Type Declaration Text x ZExpression Specification Text x M Abbildung 4 10 Die Outline des Klassendiagrammeditors Palette Die Palette am rechten Rand des Canvas ist das Werkzeug um Elemente anzule gen Properties In den Properties
61. Project angelegt Der erscheinende Dialog Abbildung 5 2 wird mit Next best tigt Im n chsten Schritt wird ein Name f r das neue Projekt festgelegt Abbildung 5 3 zeigt die Eingabemaske zu diesem Vorgang Der Anwender gibt RMC Tutorial ein und best tigt mit Finish Nun k nnen dem Projekt Diagramme hinzugef gt werden ber die Men punkte File New gt Other gt UMLZ Classdiagramm wird ein neues Klassendiagramm angelegt Ab bildung 5 4 zeigt diesen Schritt Best tigt der Anwender mit Next so wird die Eingabemaske aus Abbildung 5 5 ange zeigt Hier wird ein Name f r das neue Klassendiagramm definiert wobei die Vorauswahl beibe halten werden kann Das Anlegen wird schlie lich mit Finish abgeschlossen 92 5 Tutorial RefaSo amp ModelCockpit Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft IM New Select a wizard Create a new project resource Abbildung 5 2 Tutorial Projekt anlegen New Project RMC Tutorial M Location Abbildung 5 3 Tutorial Projektname RefaSo amp ModelCockpit 5 Tutorial Project Create a new project resource 93 dl UNIVERSITAT PADERBORN Die Universit t der Informationsgesellschaft Abschlussbericht ae Mi New Jol x Select a wizard lt gt Creates UMLZ Classdiagram Wizards type filter text E gt General File i C3 Folder f Project i
62. Refactoring beschrieben RefactoringTypes RefactoringTypes Refacto In RefactoringTypes werden die ringType angebotenen Refactoringtypen Re factoringType beschrieben RMC Plugin for Eclipse Name des entwickelten Tools GlobalOcl GlobalOCL Hierin werden globale OCL lt Funktionen definiert STRING_LITERAL_BESSER gt RefactoringType RefactoringType Die Definition eines Refactoringty RefactoringTypeName pen Refactoring Typeldentifier Refactoring Properties TypeDescription Applicability Condition StumblingBlock Decisions Refactoring Refactoring Dies ist der eindeutige Name lt IDENTIFIER gt eines Refactorings das in ei nem der Abschnitte SimpleRefac torings bzw ComplexRefacto rings definiert ist RefactoringType Name Name des Refactoringtypen der u a Name StringLiteral im Refactoringmen eingeblendet wird TypeDescription Description Dies ist die Beschreibung des Refac StringLiteral toringtypen wird im Refactoring Wizard angezeigt Properties Properties Hier sind die Auswirkungen eines PropertyIdentifier Refactorings beschrieben Applicability ApplicabilityCondition Die ApplicabilityCondition ist Condition ContextQuery eine Pr fung welche Refactorings auf den selektierten Modellelemen ten ausf hrbar sind StumblingBlock StumblingBlock Beschreibt erste Zuweisungen f r ContextQuery das Ausfiihre
63. SDK 1 6 Von unseren Betreuern wurde uns vorgegeben unsere Software auf Basis von Java zu entwickeln Wir haben das aktuelle Java SDK 1 6 von Sun einge setzt Eclipse 3 3 x Als Entwicklungsumgebung hatten wir uns f r Eclipse entschieden da Eclip se eine sehr gute und kostenlose Java IDE ist und wir Eclipse nicht nur als IDE sondern auch als Plattform f r unsere Software nutzen wollten Eclipse UML2 Tools Unser UML Editor basiert auf den Eclipse UML2 Tools UML Al le nicht ben tigten UML Diagrammtypen wurden aus den UML2 Tools entfernt an schlie end wurden unsere Erweiterungen Z in das Metamodell und die Editoren integriert Eclipse UML2 Model Development Tools Eclipse UML2 ist eine Implementierung des UML2 Metamodells Wir haben diese Implementierung als Grundlage f r das UML Z Metamodell verwendet Eclipse Modeling Framework EMF Das Eclipse Modeling Framework EMF ist ein Fra mework zur Erzeugung von Modellen Wir haben EMF f r das UML Z Metamodell und das MQP Metamodell verwendet Aus den EMF Modellen wird der Code unserer Modelle generiert Graphical Modeling Framework GMF Um grafische Editoren f r EMF Modelle zu er halten gibt es das Eclipse Graphical Modeling Framework GMF Wir verwenden es f r die UML Z Editoren sowie den grafischen Editor im Qualit tsmodell des Modell qualit tsplans KTEX Zum Erstellen von Dokumenten wie Architektur Pflichtenheft Abschlussdokumen tation usw haben wir KTEX
64. Sie nun zun chst setenv cmd auf anschlie end ant z B mit ant jar Unter Linux rufen Sie das Build Script z B mit setenv sh ant jar auf Shttp tortoisesvn tigris org http subclipse tigris org 200 7 Entwicklerdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft Retasol Ai UNIVERSIT T PADERBORN Abschlussbericht minin 7 1 5 Voraussetzungen e Ein Subversion Client z B Tortoise SVN e Ein Verzeichnis mit einer Eclipse Installation die wie in der Installationsanleitung f r die Entwicklungsumgebung beschrieben installiert wurde Wichtig ist dass auch das Subclipse Plugin installiert wurde e Grundkenntnisse ber die Verwendung von Apache Ant oder gen gend Zeit und die Bereitschaft sich diese anzueignen RMC kann sowohl in Eclipse als auch ber ein Build Script erstellt werden Das Build Script kann z B von einem Build Server verwendet werden um automatisiert regelm ig Builds zu erstellen Das Build Script kompiliert alle Projekte und erstellt jar Dateien mit den kompilierten RMC Eclipse Plugins es erstellt JavaDoc Dokumentation zu den Projekten und es kann ein Setup Archiv erzeugen Das Build Script besteht aus mehreren Ant Dateien Die Hauptdatei befindet sich im RMC Repository unter src build xml 7 1 6 Build Tasks Das Ant Script enth lt folgende Ant Targets compile Dieser Task ruft das clean Target auf kompiliert alle Dateien im srcBase Ordner und
65. Therapie mit text f r eine Textthe rapie und refactoring f r eine Refactoringtherapie gekennzeichnet Weiter haben Therapien eine Referenz auf eine Diagnose und einen Beschreibungstext Refactoring therapien haben neben einer Referenz und einer Beschreibung zus tzlich noch eine Eigenschaft siehe Eintrag PropertyIdentifierList in Tabelle 4 7 auf Seite 84 wel che f r das Erfragen nach eigentlichen Refactorings an die Refactoringkomponente genutzt werden lt therapy name type gt lt property name gt nur bei Refaktoring Therapie lt reference name gt lt description description gt lt therapy gt Listing 4 4 Diagnoseknoten lt therapy gt e lt normalizations gt F r Normalisierungen m ssen ein Typ sowie ein Name angegeben werden Abh ngig vom Normalisierungstyp kann die Normalisierung beliebig viele Parameter enthalten Diese bestehen aus einem Namen und einem Wert 78 4 Benutzerdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft dl UNIVERSITAT PADERBORN Abschlussbericht pete name gt value gt lt normalisation type lt parameter name lt normalisation gt Listing 4 5 Diagnoseknoten lt normalisation gt Hinweis Namen einzelner Teile innerhalb der Konfigurationsdatei wer den h ufig als Referenzen auf anderen Stellen verwendet Dabei ist auf das Einhalten glei
66. Universit t der Informationsgesellschaft de UNIVERSITAT PADERBORN Abschlussbericht miaz OCLDEFINITION context Model def TNAN Integer allClasses iterate elem Class acc Integer 0 acc elem NAN en OSS S da New Attributes Number NAN adi eA OCLDEFINITION context Model def TDAN Integer allClasses gt iterate elem Class acc Integer 0 acc elem DAN en OSS EE Defined Attributes Number DAN eal BoA RefaSo amp ModelCockpit B OCL Messungen 287 Die Universit t der Informationsgesellschaft WS Ai UNIVERSIT T PADERBORN Abschlussbericht See OCLDEFINITION context Model def TIAN Integer allClasses gt iterate elem Class acc Integer 0 acc elem IAN een OS EEN Inherited Attributes Number IAN ADI Mann OCLDEFINITION context Model def TOAN Integer allClasses gt iterate elem Class acc Integer 0 acc elem OAN en OSS EEN Overridden Attributes Number OAN Got 288 B OCL Messungen RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft de UNIVERSITAT PADERBORN Abschlussbericht miaz OCLDEFINITION context Model def TAAN Integer allClasses iterate elem Class acc Integer 0 acc elem AAN EE EE Available Attributes Number AAN PAD eA OCLDEFINITION context Model def TNON Integer allClasses gt iterate elem Class acc Integer 0 a
67. __Refaso Modelcockpit miz_class_diagram RMC Ele Edit Navigate Project Window Help s aa ESSE ES lo Resource m e Tas 5 Properties 3 E A Propert Value et Classifier Behavior 5 Client Dependency Ss Init E Is Abstract a false I Is Active r false IsLeaf a False Name I Professor Owned Port Powertype Extent Redefined Classifier Representation Template Parameter Use Case Visibility public Abbildung 5 29 Tutorial Eigenschaften der Klasse Professor Die Klasse Professor Nun wird die Klasse Professor angelegt In der Palette wird das Werkzeug Class gew hlt und durch einen Klick in die Zeichenfl che eingef gt In den Eigenschaften der Klasse wird der Name Professor eingegeben Abbildung 5 29 zeigt die zugeh rigen Eigenschaften Nun werden dieser Klasse noch 2 Attribute hinzugef gt Hierzu wird aus der Palette das Werkzeug Attribute ausgew hlt und anschlie end in der Zeichenfl che auf die Klasse Professor geklickt Um den Namen des Attributs anzugeben wird das Attribut in der Zeichenfl che angeklickt und in der Properties View f r das Feld Name semes terWochenStunden eingetragen Nun muss noch der Typ des Attributs angegeben werden Dies geschieht ebenfalls in der Properties View indem aus der Auswahlbox f r das Feld Typ N gew hlt wird Abbildung 5 30 zeigt das Resultat Um das zweite Attribut zu erstellen wird wieder aus der Palette das Werkzeug At tribu
68. al S Ne 2 EAnnotation 3 de upb pa rme diagnostics Aena T ac anne 68 fa duplicates New Sibling EType Parameter J E de upb pg rmc map confmodel a SCC Hondo chez 122 de upb pg rme mqp diagnosticsinterfac 5 sper SI IR RER Wei un c7 EAttribute EE de upb pg rmc map diagnosticsprovide e apa s r EMap lt EJava0b NN EEE ES E de upb pg rmc mqp disgram quality Es aap ahah eae EGeneric Super T D Lil de upb pg rmc map edit 8 createOwnedOperation String String Type Typ Y ype dei x a isMetaclass Boolean E gt de upb pg rmc mqp editor ses a addattribute Property D Ae de upb pg rmc mgp measurement i 0 88 8 apt TE removeAttribute Property a addOperation Operation es 4 12 de upb pg rme mgp ui Ei omero 4 removeOperation Operation Validate E42 de upb pg rmc refactoring commoninte 4 ee Control J removeGeneral Classifier ATA AT E32 de upb pg rmc refactoring diagnosticsi Le mPa pk Sac H a setInit ZPredicate gt Show OCL Console H 4 de upb pg rme refactoring editorinterf F 2 de upb pg rmc refactoring refactoring i createZPredicateAsInit String Create Dynamic Instance Get St nestedClassifier Classifier Compare with SHE de upb pg rmc umiz Ge SS src E 5 ownedOperation Operation Run As ks y GBA JRE System Library JavaSE 1 6 i superclass Class Debug As y 1 S Plug in Dependencies D er en N Hm l 22 ownedReception Reception gt Gira oH E E extension Extension Es META INF s Es model E Init C
69. an Durch Auswahl des kleinen Pfeilsymboles er scheint folgende Unterauswahl mit der weitere Elemente angelegt werden k nnen Abstraction Legt eine neue Abstraktionsbeziehung an Usage Legt eine neue Use Beziehung an Substitution Legt eine neue Substitute Beziehung an Generalization Legt eine neue Vererbungsbeziehung an Die Vererbung wird durch Ziehen einer Verbin dung von der erbenden Klasse zur Oberklasse angelegt 4 Provided Interface Bietet ein Interface an Angelegt wird dieses durch Ziehen einer Verbindung von einer Klas se zu einem Interface Dieses muss vorher mit dem Interface Werkzeug angelegt werden Required Interface Ein Interface nutzen Angelegt wird dieses durch Ziehen einer Verbindung von einer Klasse zu einem Interface Dieses muss vorher mit dem Interface Werkzeug angelegt werden Constrained Element Einem Element einen Constraint zuordnen Der Constraint muss vorher mit dem Con straint Werkzeug angelegt werden Association End Verbindet eine Association Class mit einer Assoziation oder einer Klasse Z Realization Legt eine neue Realisierung an Die Realisierung wird in Richtung der realisierenden Klasse gezogen Der Name der Realisierung kann direkt eingegeben werden Warnung Die Elemente Package DataType Stereotype und NAry Dependency k nnen nicht ber die Palette angelegt werden Die ent sprechenden Werkzeuge sind ausgegraut F r das Anlegen von Package DataType und Stereotype ist
70. an der Konfigurationsdatei vorgenommen so kann diese mit Reload neu geladen werden Beim n chsten Men aufruf werden die Refactoring Men eintr ge aktualisiert RefaSo amp ModelCockpit 4 Benutzerdokumentation 79 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Ml Resource RMC Tutorial default umlz_class_diagram RMC Mi E Ele Edit Diagram Navigate Project Refa io VE ld default umiz_class_diagram 3 Iwwel x E tE Resource ze Aj Palette gt Ty Select Zoom E Note D Gel H Person attributes nare Text EH dass vorname Text Package emailadresse Text E Enumeration operations DataType e Association Class Interface 2 Constraint Stereotype E Professor E Attribute E vorlesung attributes Operation semesterWochenStunden N Student Enum Literal halt gehalteneVortrage N attributes wal attributes zeit Time fachgebiet Fachgebiet operations matrikelnummer N name Text a forschen H studiengang Studiengang A Generalization 7 vortragHalten D raum Text x N operations es mitarbeiterMotivieren lernen vorlesung Vorlesung EEE pr ft student Student a Required Interface 0 10 publiziertDokument Da Nary Dependency h ltZentral bung Target h lt bung erer ource 2 Constrained Element 7 Association S Dependency e operations E Association En
71. anderen Artefakt anlegen Beim letzten Artefakttyp Code software code kann der Anwender die Programmierspra che Programming Language angegeben Dabei stehen dem Benutzer einige Program miersprachen wie C oder Java zur Auswahl Als letzten Schritt kann der Benutzer noch Beziehungen consistency relations zu ande ren Artefakten anlegen add relation bearbeiten edit relation oder l schen delete relati on Um eine Beziehung anzulegen siehe Abbildung 4 26 muss der Benutzer ein Artefakt auf das sich das neu anzulegende Artefakt beziehen soll einen Beziehungslevel consisten cy level und einen Beziehungstyp dependency type ausw hlen Das Beziehungslevel gibt an ob die Beziehung zum Beispiel innerhalb einer Entwicklungsphase horizontal oder zwischen den verschiedenen Phasen vertikal ist Der Beziehungstyp gibt zum Beispiel an ob das Dokument ein anderes verfeinert oder davon abstrahiert ber Save Changes kann der Anwender die Beziehung speichern Abschlie end speichert der Anwender das Artefakt ber Save Changes Das angelegte Artefakt erscheint jetzt im Kontextmodell in der Artefakttabelle Ein Beispiel f r ein aus gef lltes Kontextmodell zeigt die Abbildung 4 27 4 2 3 4 MQP Informationsbediirfnismodell Um vom Kontextmodell ins Informationsbed rfnismodell zu gelangen muss der Benut zer den Reiter Information Need Model ausw hlen Das Informationsbed rfnismodell siehe Abbildung 4 28 besteht aus zwei Bere
72. associative Right associative List of arguments Operator argument Power set Cross product Any number Natural numbers alpha beta gamma delta 4 Benutzerdokumentation 49 dl UNIVERSITAT PADERBORN Die Universit t der Informationsgesellschaft Abschlussbericht sc epsilon zeta eta iota kappa nu xi pi rho sigma tau upsilon phi chi psi omega Gamma Theta Lambda Pi Sigma Upsilon Phi Psi Omega ee GCA oe m e RSE SHA De rd HD GO E epsilon zeta eta iota kappa sigma tau upsilon phi chi psi omega Gamma Theta Lambda Pi Sigma Upsilon Psi Omega Tabelle 4 2 Z Referenz Number Toolkit succ 2124 002D Meg 2264 lt een geq 2265 gt san nat_1 EN div mod succ num negate div mod 50 VIVO AIA 2 4 Benutzerdokumentation Successor function Integers Arithmetic negation Subtraction Less than or equal Less than Greater than or equal Greater than Strictly positive N Multiplication Division Modulus RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft de UNIVERSITAT PADERBORN Abschlussbericht miaz Tabelle 4 3 Z Referenz Set Toolkit rel 2194 gt o Relations fun 2192 neq 2260 notin 2209 emptyset 2205 subseteq 2286 subset 2282 Xpower_1 cup 222A cap 2229 setminus 005C symdiff 2296 bigcup 2203 bigcap 2202 finset 000
73. auch zu sehen dass es hier keine Refactoringtherapie gibt W rde es eine Refacto ringtherapie geben so w re hinter dem String Refactoring Therapy in Gro buchstaben wie f r die Diagnose Classes to large ein Refactoring wie beispielsweise CLASS_RE DUCTION angezeigt Wenn der Benutzer die Checkbox vor der Refactoringtherapie ausw hlen w rde so k nnte er durch Bet tigung des Buttons Refactoring das Refacto ring starten Ab jetzt w rde der Benutzer durch einen Wizard mit genaueren Informationen zur Durchf hrung des Refactorings versorgt und k nnte dieses ausf hren 5 2 4 Refactoring Auf den folgenden Seiten wird die Durchf hrung eines Refactorings gezeigt Das Ziel ist die Klasse Professor um einige Funktionen zu erleichtern Dazu wird die Klasse Professor selektiert und Refactoring ausgew hlt Nach der Auswahl von Refactoring werden die in der Konfigurationsdatei definierten Refactorings angezeigt Alle nicht m glichen Re factorings sind dabei ausgegraut so dass in diesem Fall nur das gew nschte SplitClass Refactoring zur Auswahl steht siehe Abbildung 5 66 Nach der Auswahl von SplitClass ffnet sich der Refactoring Wizard Dort sind einige In formationen des durchzuf hrenden Refactorings zu finden So steht in der Titelzeile der Startseite des Wizards das ausgew hlte Refactoring SplitClass In der Mitte der Startsei te ist die Beschreibung des Refactorings angegeben in der die Eigenschaften des Refacto rings nach
74. aus Qualit tsattributen und Qualit tscharakteristiken gezeichnet werden Da die Darstellungen von Graphen mit herk mmlichen Formelelementen schwer realisierbar ist wurde hier das GMF Framework GMF verwendet GMF wurde schon zum Erstellen des Klassen und Zustandsdiagrammeditors verwendet Wie die Zusammenf hrung von EMF und GMF Editoren in Eclipse funktioniert wird im Artikel WS08 beschrieben Besonderheiten des Pr sentationsmodells Im Pr sentationsmodell wird zur grafischen Darstellung der Eingaben der vorherigen Model le und der Beziehungen untereinander ein spezielles Toolkit prefuse visualization toolkit verwendet Von diesem Toolkit wurde die graphview benutzt Die graphview stellt die Elemente in einem Graphen dar Um die Elemente aus den Modellen und die Messergbnise an den Graphen bergeben zu k nnen wurde ein Parser entwickelt der die Informationen aus dem MQP Modell ausliest Der Parser befindet sich im Paket de upb pg rmc mqp ui in der Datei PMParser java Der Parser liest das Ecore Modell aus und schreibt die Kno ten und Kanten in ein byteArray und bergibt dieses dem Graphen Um die Messergeb nisse aus dem Messmodell anzuzeigen wurde eine zus tzliche Propertiesview entwickelt l4nttp prefuse org 5http www prefuse org gallery graphview RefaSo amp ModelCockpit 7 Entwicklerdokumentation 227 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft efaso ModelCo
75. chst unsere Zielsetzung mit den M glichkeiten dieser bereits existierenden Werkzeuge und Methoden Syspect ist ein Projekt der Universit t Oldenburg Syspect ist ein UML Modellierungs werkzeug und wie bei uns wurde auch dort die UML mit weiteren formalen Spezifika tionssprachen kombiniert Neben Object Z Smi00 unterst tzt es CSP Hoa04 und den Duration Calculus CHR91 die in der Methode CSP OZ DC HO02 zusammengefasst werden Syspect Modelle k nnen mit einem Model Checker verifiziert werden Allerdings ist Syspect ein reines Modellierungswerkzeug Refactorings werden nicht unterst tzt und die Modellierung von Qualit t wird in diesem Projekt nicht betrachtet 3http syspect informatik uni oldenburg de index de html RefaSo amp ModelCockpit 9 Res mee 247 Die Universit t der Informationsgesellschaft WS D UNIVERSIT T PADERBORN Abschlussbericht Together ist ein kommerzielles UML Modellierungswerkzeug der Firma Borland Together wird hier stellvertretend f r die meisten typischen UML Editoren betrachtet Es un terst tzt die Modellierung von UML 2 0 Zus tzlich k nnen Gesch ftsprozesse mit BPEL AWS modelliert werden Together kann verschiedene Qualit tsmetriken von Modellen mes sen Auf Basis der OCL 2 0 OMG06 k nnen Metriken definiert und gemessen werden Refactorings von Modellen werden nicht unterst tzt Wir haben also nun gesehen dass es bereits Werkzeuge gibt die UML Modellierung mit formalen Sprach
76. chsten beide Schritte sind f r das Festlegen des Anfangs und des Endes der neuen Assoziation die die neu angelegte Klasse mit der Klasse Professor verbindet notwendig Daher gibt man den Namen der Quelle und des Ziels f r die Assoziation an siehe Abbildung 5 73 und Abbildung 5 74 Die letzte Seite des Dialogs zeigt den Fortschritt der Durchf hrung des Refactorings an dazu dient der Fortschrittsbalken Die Anderungen sind komplett durchgef hrt worden 138 5 Tutorial RefaSo amp ModelCockpit dl UNIVERSITAT PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Mi Refactoring Wizard Refactoring Split class Type naming decision Please supply the name of the new class Abbildung 5 72 Benennung neuer Klasse W Refactoring Wizard Refactoring Split class Type naming decision Give a name for the association source Ml Refactoring Wizard Refactoring Split class Type naming decision Give a name for the association source Abbildung 5 74 Ende der Assoziation angeben RefaSo amp ModelCockpit 5 Tutorial 139 Die Universit t der Informationsgesellschaft Ai UNIVERSIT T PADERBORN Abschlussbericht BME W Refactoring Wizard ol x Refactoring Execution Page successfully carried out Model modifications successfully executed LITT II III 77 Abbildung 5 75 Refactoring durchgef hrt wenn der Fortschrittsbalken vollst ndig i
77. das Kontextmen der Outline zust ndig NAry Dependency werden noch nicht unterst tzt 44 4 Benutzerdokumentation RefaSo amp ModelCockpit dl UNIVERSITAT PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft RMC Tutorial default umlz_class_diagram RMC File Edit Diagram Navigate Project Refactoring Window Help Jr BS 1 900 am cr H 100 z Ei lis Resource ld defauk umlz_class_diagram xa a Palette gt Ty Select Zoom Note H class Package Enumeration DataType wal al cy Association Class ES Interface 12 Constraint Stereotype Attribute Operation EeBe2 29 E Association Dependenc eege 4 Provided Interface a Required Interface NAry Dependency Target Nary Dependency Source 2 Constrained Element E Association End 7 Realization Abbildung 4 11 Popupmen ber dem Canvas des Klassendiagrammeditors Anlegen von Elementen iiber den Canvas Eine weitere M glichkeit Elemente anzulegen besteht iiber den Canvas Bewegt der An wender den Mauszeiger auf den Canvas oder tiber ein Element auf diesem erscheint nach einigen Sekunden ohne Bewegung ein Menii Abbildung 4 11 zeigt dieses Popup Die Auswahl an Elementen die erstellt werden k nnen ist Kontextsensitiv Der Anwender bekommt nur m gliche Auswahlen pr sentiert Die dargestellten Icons sind analog zu der Beschreibung d
78. depicted on diagram Select diagram root element EI lt Package gt Abbildung 4 8 Projekt Wizard Wurzelelement des Diagrammes ausw hlen source RMC Tutorial default umlz_class_diagram RMC x Elle Edit Diagram Navigate Project Refactoring Window Help Mr E Zen A Be pe Br Br La a E 100 ES i Resource D Project Explorer 3 BSrTO m El 2 RMC Tutorial default umiz default umiz_class_diagram E A default2 umiz VI PG umlz_class_diagram A Person attributes name Text vorname Text emailadresse Text operations E Professor rlesung es EES semesterWochenStunden N E student sadit Time gehalteneVortr ge N attributes PE fachgebiet Fachgebiet I operations matrikelnummer N Sec name Text forschen studiengang Studiengang A Generalization Sage Sl EE raum Text x N vortragHalten SE ee E E lt Package gt z operations 7 mitarbeiterMotivieren lernen vorlesung Vorlesung aan 6 H lt class gt Vorlesung Se pr ft student Student a Required Interface izi WI EZ lt Property gt zeit Time publizierDokumenx al Nary Dependency e Seed h ltZentral bung Target PSE ore fachos net Faction h lt bungt Nary Dependency ER lt Property gt name Text t Source EL lt Property gt raum Text x M Constrained Element S E lt class gt Student 7 lt Generalization gt
79. des Qualit tskreislaufs muss zun chst eine Qualit tsdefinition geschaffen wer den indem man die Qualit t modelliert Software modellierung Dabei existieren folgende Probleme e Es gibt kein allgemeing ltiges Rahmenwerk f r Modellqualit t e Unterschiedliche Anwendungsf lle erfordern unterschiedliche Rahmenwerke e Bereits definierte Qualit tsvorstellungen m s sen f r neue Anwendungen angepasst wer den Diese Anforderungen an Qualit tsdefinitionen zeigen deutlich die Nachteile f r eine stati sche Beschreibung von Qualit t auf Eine flexible Modellierung bietet jedoch einen guten L sungsansatz Modellqualit tspl ne MQP bieten eine solche L sung um Modellqualit t zu beschreiben zu messen und aufzubereiten Wie ist nun ein Modellqualit tsplan aufgebaut Ein MQP besteht aus 5 Teilmodellen die den Prozess der Modellierung und Messung von Qualit t widerspiegeln Kontextmodell In welchem Kontext soll die Qualit t bestimmt werden Ein Modell kann in unterschiedlichen Modellierungssprachen verfasst sein unterschiedliche Rollen sind an der Erstellung beteiligt Ebenso ist der Anwendungszweck des Modelles zu ber ck sichtigen Das Kontextmodell realisiert die Modellierung dieser Parameter Informationsbed rfnismodell Welches Interesse an Informationen ber die Qualit t be steht Verschiedene Rollen haben nicht die gleichen Anforderungen an Qualit t Un terschiedliche Interessen ben tigen jedoch auc
80. e Eclipse Modelling Framework EMF als Dom nenmodell EMF e Graphical Editing Framework GEF f r die grafische Darstellung GMF Die GMF Anwendung kombiniert das EMF Modell mit einem Notationsmodell f r die Darstellung Der generierte Editor nutzt sowohl EMF und GEF direkt als auch die GMF Runtime Tiefergehende Informationen ber den Aufbau von GMF bietet die GMF Doku mentation GMF Die Realisierung der Editoren basiert in den Grundlagen auf der Implementierung der UML2 Tools UML Abbildung 6 15 stellt den Zusammenhang eines GMF basierten Edi tors dar Die Komponente Graphical Editor ist der generierte Editor F r die beiden unterst tzten Diagrammtypen gibt es je einen eigenen Editor Die beiden folgenden Kapi tel gehen auf dessen grundlegenden Aufbau und ihre Pakete ein Einen berblick ber die benutzten Modelle und die Generierung des Quelltextes bietet Kapitel 7 2 2 1 der Entwick lerdokumentation 158 6 Architekturdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft Retasol de UNIVERSITAT PADERBORN Abschlussbericht miaz de upb pg rmc umiz internal impl ZExpressionSpecificationimp de upb pg rmc umlz types ZExpression Q Ser de upb pg rmc umlz types ZPredicate zmlValue String toString String ZPredicate in value String Q interface de upb pg rmc umiz izparser INameWrapper interface de upb pg rmc umiz izparser IP
81. editor Standard Property Tab Appearance E S de upb pg rme mgp measurement I Standard Property Tab Rulers amp Grid T de upb pg rmc map tests f Custom Property Tab Core Te cl de upb pg rme map ui Custom Property Tab Core 3 de upb pa rme refactoring 1 2 Custom Property Tab Core 2 de upb pg rmc refactoring commoninte D 4 Custom Property Tab Extra 42 de upb pg rmc refactoring diagnosticsi Io cl de upb pg rmc refactoring editorinterf Gen Expression Provider Container de upb pg rmc umlz diagram stateeditor expressions 5 52 de upb pg rmc refactoring refactoringp 4 Property Section Container 122 de upb pg rme umlz IS platform fresource de upb pg rmc umlz diagram stateeditor model UML genmadel Es de upb pg rmc umlz diagram classedite de platform resource de upb pg rmc umiz diagram stateeditor model UML ecore cl de upb pg rmc umiz diagram stateeditt platform pluginforg eclpse emf ecore model Ecore genmodel ER src 4 platform pluginforg eclipse emf ecore model Ecore ecore E E custom sre E JRE System Library JavaSE 1 6 E Plug in Dependencies ES Ey icons Selection Parent List Tree Table Tree with Columns 4 DI Gy META INF a mia 2 Problems Javadoc Declaration E Progress Properties 23 El Console 9 Search gt Cal Hierarchy BE Sur E Ey codegen Proper Value Ey amf graph Generated Types Gy templates Types in selection de upb pg rmc umlz Transition de upb
82. ee ee 294 B 5 1 Unit of measure is Class oaoa aa 294 B 5 2 Unit of measure is Model aoaaa o e 295 C Lizenz 297 10 RefaSo amp ModelCockpit Abbildungsverzeichnis 21 Misht tskreisiauf e ua OR We 27 4 1 Projekt Wizard Startseite 22 25 au was Re a 36 4 2 Projekt Wizard 2 Seite 0 4 37 4 3 Projekt Wizard Diagrammtyp 38 4 4 Projekt Wizard Diagrammname o 38 4 5 Projekt Wizard Modell festlegen 39 4 6 Editor Diagramm auf Modell anlegen 2 2 2 22m nennen 39 4 7 Projekt Wizard Diagrammname 2 2 2 En nn 40 4 8 Projekt Wizard Elemtent f r Diagramm w hlen 41 4 9 Klassendiagrammeditor bersicht 41 4 10 Klassendiagrammeditor Outline o nn 42 4 11 Klassendiagrammeditor Popup des Canvas 2 22 nme 45 4 12 Klassendiagrammeditor PropertyView 47 4 13 Klassendiagrammeditor Z Editor 2 22 2 o nen 48 4 14 Zustandsdiagrammeditor bersicht 53 4 15 Zustandsdiagrammeditor Popup des Canvas o 56 4 16 Zustandsdiagrammeditor Transitionen 57 4 17 MQP Wizard MQP ausw hlen o e a a 58 4 18 MQP Wizard MQP Name nn 59 4 19 MQP Wizard MQP Informationen 59 4 20 MQP Editor Kontextmodell o o e 60 4 21 MQP Kontextmodell Autor hinzuf gen 61 4 22 MQP Kontextmodell Rolle hinzuf gen o 62 4 23
83. eingelesen und f r die sp tere Verwendung gespeichert Die Diagnose wird durch den Anwender im Pr senta tionsmodell der ModelQualityPlan Komponente aufgerufen Abschnitt 6 3 3 172 6 Architekturdokumentation RefaSo amp ModelCockpit N UNIVERSIT T PADERBORN Abschlussbericht me Mo Die Universit t der Informationsgesellschaft DefaultHandler ConfigurationParser characters buf char offset int len int void endElement namespaceURI String localName String qName String void startDocument void startEle ment na mespaceURI String localNa me String qName String attrs Attributes void x x singelton S DiagnosticComponent x getFile resource Resource IFile L Symptom Manager i connectSy mptom a Indicator IMQPIndicator void getAllSy mptoms Collection lt Symptom gt ViewPart view d DiagnosticGUI createPartControl parent Composite 0 create DiagnosticGUI setFocus void data 1 Symptom D getNormalizedVa lues Collection lt SubSy mptomValue gt getServity double hasIndicator boolean 0 1 initialize void toString String data 0 1 Diagnosis e 0 equals ob Object boolean Se hashCode int 1 0 l singleton ConfigurationFile Therapy 0 1 A createCandidatesFor subDiagnostics Collection lt SubDiagnosisValue gt
84. else Abfrage ermittelt welche Normalisierung aufgerufen werden muss Es muss also so etwas wie in Listing 7 17 hinzugef gt werden else if type toLowerCase equals name of normalization class normalizations put name new name of normalization class params Listing 7 17 Bekanntmachen der neuen Normalisierung 18 abh ngig von der jeweiligen Normalisierung RefaSo amp ModelCockpit 7 Entwicklerdokumentation 233 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Vorraussetzung daf r dass die Normalisierung auch genutzt wird ist dass im MQP auch eine passende Skala existiert Gegebenenfalls muss diese neu angelegt siehe Abschnitt 7 2 4 2 einem Indikator zugewiesen und auch bewertet bzw in einer Messung verwendet wurde 7 2 4 4 M gliche Erweiterungen In diesem Abschnitt soll es darum gehen welche Erweiterungs bzw Ver nderungsm glich keiten f r die Diagnose von Interesse sein k nnten Zum einen ist dem Benutzer bereits beim Lesen der Abschnitte welche die Diagnose beschreiben sicherlich aufgefallen dass die Dia gnose derzeit keinerlei Intelligenz besitzt Indikatoren werden vorgegebenen Symptomen Symptome vorgegebenen Diagnosen und Diagnosen vorgegebenen Therapien zugeordnet Sobald ein Indikator der Diagnose bergeben wurde der nicht verarbeitet werden kann also der Diagnose nicht bekannt ist wird dieser nicht weiter betrachtet An dieser Stelle ist n
85. equals feature return false Listing 7 4 Implementierung der isAffectingEvent Methode im Parser f r Transitionen Transitionen Um Transitionen Operationen zuzuordnen wurde die stateMachineDiagram gmfgen um die M glichkeit erweitert das PropertySheet von GMF anzupassen Dazu ist es notwendig die Modelle propsheet genmodel und propsheet ecore in das Genmodell zu laden Dies geschieht wie in Kapitel 7 2 2 1 beschrieben Weitere Informationen zu diesem Thema finden sich in diesem Artikel PRO Mit dieser Vorbereitung wird zun chst im Genmodell unter de upb pg rmc umlz dia gram stateeditor sheet ein neuer Eintrag f r einen Custom Property Tab angelegt Diesem werden ber einen Typed selection filter die Transitionen zugeordnet Abbildung 7 12 zeigt die Zuordnung im Modell Dies hat den Effekt dass bei der Selektion einer Transition im Canvas der zus tzliche Tab in den Properties angezeigt wird Nun muss diese Seite noch mit Inhalt gef llt werden Dazu wird ein neues Wurzelelement vom Typ Property Section Container angelegt Dieses erh lt die notwendigen Kinder um die Seite f r die Properties zu generieren Diese enth lt dann schon alle notwendigen Texte und die Combobox f r die Auswahl der Operationen Abbildung 7 13 zeigt die entsprechenden Eintr ge im Modell Der generierte Quellcode muss noch f r den Zugriff auf das UML Z Modell erweitert wer den Dies geschieht in der Klasse UMLZTransitionPropertySectionim Paket UM
86. f r eine formale Modellie rungssprache erstellt werden Dieses Werkzeug sollte dabei sicher stellen dass sich das modellierte Verhalten durch die Refactorings nicht ver ndert Auf der Web Seite der Pro jektgruppe RefaSo wurde das Projekt so vorgestellt Aufgabenstellung ist Entwurf Konzeption und Implementierung eines graphischen Werkzeuges das Refactorings auf Modellen der Spezifikati onssprache durchf hrt Dabei soll dem Aspekt des Erhaltens der Funk tionalit t besonderer Augenmerk geschenkt werden Dies soll durch den Einsatz eines Verifikationswerkzeuges eines sogenannten Modelcheckers gepr ft werden ein Verfahren das herk mmliche Refactoring Werkzeuge f r objekt orientierte Programmiersprachen auf Grund der fehlenden Se mantik der Programme nicht leisten k nnen Aufgabe der Projektgruppe wird es auch sein geeignete Modelchecker auszusuchen und entsprechend der gew nschten Eigenschaft Erhaltung der Funktionalit t einzuset Di zen Homepage PG RefaSo Noch vor Beginn der Projektgruppen erkannten unsere Betreuer Hendrik Voigt und Tho mas Ruhroth dass sich beide Themen wunderbar erg nzen Durch die Kombination der beiden Themen ergibt sich ein Kreislauf wie in Abbildung 9 1 dargestellt zun chst wird die Modellqualit t gemessen und so Fehler im Modell erkannt Zur Korrektur dieser Feh ler k nnen dann Refactorings durchgef hrt werden Anschlie end wird die Qualit t erneut gemessen um zu berp
87. hrend der Vorbereitung und der Durchf hrung des Refactorings ber nimmt ausnahmslos die Refactoring Komponente Daher st t die Diagnose diesen Pro zess nur an und erh lt nach Abschluss Informationen ob das Refactoring korrekt durch gef hrt wurde Die Struktur der Schnittstelle ist der Abbildung 6 3 zu entnehmen interface boundary IRefactoringDiagnostics getRefactoringsFor properties Collection lt RefactoringProperty gt namedElements Collection lt NamedElement gt Collection lt IRefactoringElement gt create Y IRefactoringElementWrapper interface boundary IRefactoringElement addProgressListener progressListener IProgressListener voia doRefactoring void removeProgressListener progressListener IProgressListenet voia setModelElements elements Collection lt NamedElement gt voio Abbildung 6 3 Klassendiagramm IRefactoringDiagnostics Interface 6 2 4 IOCL Die Schnittstelle IOCLParser aus Abbildung 6 4 dient als Einstiegspunkt f r andere Kom ponenten um an eine OCL Umgebung zu gelangen Instanzen von IOCLParseEnvironment verwalten Variablen die in OCL Anfragen IOCLQuery verwendet werden k nnen Mittels execute wird die eigentliche IOCLQuery durchgef hrt Falls diese einen Wert zur ck liefert der nicht kompatibel zum angeforderten Typ ist wird eine OCLTypeMismatchExcep tion geworfen Die Schnittstelle ist in Abbildung 6 4 dargestellt 6 2 5
88. i l l I d I i cztutilprovider i i i i i i if i j it ji I a umiz K umiz resource ________ internal resource Abbildung 6 7 Paketdiagramm UML Z Model Das Hilfsprojekt zum Bearbeiten des Modells Paket de upb pg rmc um1z edit Das Hilfsprojekt zum Bearbeiten des Modells stellt im Paket umlz edit providers Hilfs methoden wie Icon und Label Provider bereit welche die Entwicklung eines Editors fiir das Modell vereinfachen Abbildung 6 8 zeigt das entsprechende Paketdiagramm Abh ngig keiten zu Paketen der Modellimplementierung sind grau dargestellt Der generierte Baumeditor Paket de upb pg rmc umlz editor Dieses Projekt stellt einen von EMF generierten Baumeditor f r das Modell zur Verf gung Erg nzt wurde es um das Paket umlz editor z welches das Parsen der Z Ausdr cke ber den CZTWrapper anst t Abbildung 6 9 zeigt das entsprechende Paketdiagramm 154 6 Architekturdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft Retasol Ai UNIVERSIT T PADERBORN Abschlussbericht minin umiz edit providers Abbildung 6 8 Paketdiagramm UML Z Model Edit Abh ngigkeiten zu Paketen der Modellimplementierung und dem Hilfsprojekt umlz edit sind grau dargestellt 6 3 1 1 Erg nzung der UML2 zu UML Z Im Folgenden sind Erweiterungen und Erg nzungen dokumentiert die an der UML2 vor genommen wurde
89. in der derzeitigen Version der Dia gnose auch Refactoringkandidaten RefactoringCandidate f r die in der Refactoring Komponente nach passenden Refactoringtherapien gesucht wird Bei erfolgreicher Suche werden Therapien RefactoringTherapy zur ck an die Diagnose zur Auswahl durch den Benutzer bergeben Texttherapiekandidaten sind einfache textuelle Beschreibungen wel che in der GUI dem Benutzer Modellverbesserungen vorschlagen die er selbst am Modell durchf hren kann INormalisation data gt Normalization data e r executeNormalization void getNormilzedValue object Object double initializeNormalization void isIgnored boolean data IgnoreNormalisation data data SchulnotenNormalization LinearNormalization getNormilizedValue object Object double Le isIgnored boolean getNormilizedValue object Object double getNormilizedValue object Object double PiecewiseLinearNormalization getNormilizedValue object Object double 0 Cormparabk lt Piecewise LinearNormalizationData gt PiecewiseLinearNormalizationData compareTo data PiecewiseLinearNormalizationData int Abbildung 6 29 Klassendiagramm Normalisierung Das Klassendiagramm in Abbildung 6 29 zeigt die Klasse Normalization und die von dieser Klasse erbenden Klassen IgnoreNormalization SchulnotenNormalization Pie cewiseLinearNormalization und LinearNormalization Jedem In
90. iog ee rr en 103 5 2 1 4 Beziehungen der Klassen modellieren 117 5 2 2 Modellqualit tsplan 119 5 2 2 1 Einen neuen Modellqualit tsplan anlegen 121 5 2 2 2 Ein neues Kontextmodell erstellen 123 5 2 2 3 Ein neues Informationsbediirfnismodell erstellen 124 5 2 2 4 Ein neues Qualit tsmodell erstellen 128 5 2 2 5 Ein neues Messmodell erstellen 128 5 2 2 6 Das Pr sentationsmodell verwenden 131 023 e A re 134 A u 2 kaw oe EE eee eR Ke ee 135 II Entwicklerorientierte Sicht 141 6 Architekturdokumentation 143 6 1 Komponentem bersicht s o s s saec bey es wa hr a au ee nd 143 0 2 Behnibistellem o eci nn sra en ee 147 6 2 1 IMsdel s 2 24 caca Sah See ec Reo a a aa Be ee ed 147 6 2 2 IRefactovingEditor 2 2 2 rar uns nun anne 147 6 2 3 IRefactoringDiagnostics 148 DEL TO oe i nd eke he A RG REED ae EO 149 6 25 IMOP 2 24 peed aS bee Ge be ee eee ee ee eRe bs 149 0 2 0 TAPAE oo os ca cb es A ee dee e k 150 De Komponente oos a sok fee e de ee Auen Sue bee we E 153 031 IA po a ee a Se ferne BEY 153 6 3 1 1 Erg nzung der UML2 zu UML Z 155 6 3 1 2 Anbindung des Z Parsers an das Modell 158 6 32 MMe ici ee BREE RSE EER REE EE ES 158 6 3 2 1 Klassendiagrammeditor 04 160 6 3 2 2 Zustandsdiagrammeditor 2 o o 160 RefaSo amp ModelCockpit Ai UNIVERSIT T PADERBORN Absc
91. is diagidiagnostis 2 AS getTherapies 1 2 getSubDiagnostics retval 1 2 1 reste gt Synptom ymisymptoms E ii SubSymptomvalue symiv4l sym getNormalizedValues lt anonymous gt SubDisgnoss Value e D 1 3 createCandidatesFor diag getSubDiagnostics Abbildung 6 34 Sequenzdiagramm Berechnung von Diagnosen und passender Therapien Bei der Beschreibung des Sequenzdiagramms welches in Abbildung 6 32 dargestellt ist wurde bereits kurz auf die Methode recalculateTherapies Bezug genommen Abbildung 6 34 zeigt nun den groben Ablauf dieser Methode auf welche eine der wichtigsten Methoden der Diagnostics Komponente darstellt Diese Methode wird einmal bei Ausf hrung der Diagnose aufgerufen und errechnet f r den Grenzwert threshold aus der Konfigurationsdatei alle Diagnosen und zugeh rigen The rapien f r die Anzeige in der GUI Jedes Mal wenn der Grenzwert durch den Benutzer ver ndert wird wird diese Methode erneut ausgef hrt und die Berechnungen neu angesto Ben Abbildung 6 34 verdeutlicht dass nach Ausf hrung der Methode getAllActiveDiags der DiagnosticsManager abh ngig vom aktuellen Grenzwert eine Menge mit den aktuell passenden Diagnosen erstellt wird F r jede dieser Diagnosen werden dann SubDiagnoseValues erstellt da einem Indikator mehrere Modellelemente mit eigenen gemessenen Indikatorwe
92. kopiert die erzeugten class Dateien nach destBase jar Wie compile zus tzlich werden f r alle Plugins jar Archive erstellt und nach dist Base kopiert install Beginnt mit dem jar Target Die Plugins werden anschlie end ins Eclipse Plugin Verzeichnis eclipseBase Plugins kopiert installwin Kopiert eine leere Eclipse Version f r Windows aus envBase Windows eclipsebase nach envBase windows testbuild svn Revision und in stalliert dort die RMC Plugins createsetup Erzeugt ein zip Archiv mit allen vom jar Target erstellten RMC Plugins postsetup Dieser Task wird vom Build Server ben tigt clean L scht die Verzeichnisse destBase und distBase javadoc Erzeugt die Javadoc Dokumentation im Verzeichnis docBase all model javadoc Erzeugt die Javadoc Dokumentation nur f r das Modell checkout Checkout des aktuellen Repository Quellcodes nach srcBase 7 1 7 Konfiguration des Build Scripts Das Build Script wird ber mehrere Dateien konfiguriert my properties setenv cmd Windows und setenv sh Linux Bei allen Dateien sollten als Verzeichnistrenner die jeweils gleichen Zeichen wie in den Beispielen bzw verwendet werden RefaSo amp ModelCockpit 7 Entwicklerdokumentation 201 Die Universit t der Informationsgesellschaft Refasollmodelcockpi Ai UNIVERSIT T PADERBORN Abschlussbericht G my properties Hier werden verschiedene Verzeichnisse konfiguriert Die Einstellungen sind
93. matrikelnummer N Dependency S name Text Horschen studiengang Studiengang A Generalization BE Outline 3 D a E vortragHalten TS raum Text x N P 2 Provided Interface E DI Package gt Z operations EmmakgeiterMotivieren lernen vorlesung Vorlesung RE SW ae pr ft student Student a Required Interface KEN de Io 10 publiziertDokument lala Nary Dependency EZ lt Property gt zeit Time Target e h ltZentral bungt arget EL lt Property gt Fachgebiet Fachget h lt bung NAry Dependency EL lt Property gt name Text Source HIER lt Property gt raum Text x fl 2 Constrained 3 8 lt class gt Student a lt Generalization gt Person a poaa End EL lt Property gt matrikelnummer nimmt teil 7 Realization EL lt Property gt studiengang Studie mp Z lt Operation gt lernen vorlesung DI lt class gt Professor Z lt Generalization gt Person EL lt Property gt semesterWochenStu EL lt Property gt gehaltenevortr ge 4 lt Operation gt forschen lt Operation gt vortragHalten 3 lt Oneration gt mitarheiterMotivier at 4 12 E H Joe Abbildung 5 1 Tutorial Fertiges UML Z Modell e Klassen mit ihren Attributen und Operationen anlegen e Beziehungen der Klassen modellieren Resultat wird schlie lich das in Abbildung 5 1 dargestellte Modell sein 5 2 1 1 Projekt anlegen Als Erstes wird ein Projekt ber File New
94. model 6 E og Enter or select the parent folder rme 12 rme Abbildung 4 4 Projekt Wizard Name und Pfad des Diagrammes festlegen 38 4 Benutzerdokumentation RefaSo amp ModelCockpit N UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft _Refaso Modelcoc W New UMLZ Classdiagram _ Ol x Create UMLZ Classdiagram Select file that will contain domain model ES Enter or select the parent folder TC 13 rme Abbildung 4 5 Projekt Wizard Modell f r das neue Diagramm bestimmen W Resource rmc default umlz_class_diagram RMC BME Eile Edit Diagram Navigate Project Refactoring Window Help fir ETE 2 frahoma ae zj u dr Ae ae z ES Resource Vi default umiz_class_diagram 23 a Proiect papa H ES 778 ES mc Der EN mu er a Select 12 Gl dern o o Zoom E Note e Corley X Delete Delete agram Association Diagram Properties Alt Enter Ini Initialize Class BE Outline 23 EI lt Package gt Joe LS rme default umlz Abbildung 4 6 Anlegen eines Diagrammes auf einem bestehenden Modell RefaSo amp ModelCockpit 4 Benutzerdokumentation 39 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft W Initialize new UMLZ diagram file olx Diagram file Create new diagram based
95. nnen in RMC importiert werden File Import Existing Projects into Workspace Die so ausgew hl ten Projekte erscheinen nun in RMC Wie lege ich ein neues Diagram mit einem dazugeh rigen neuen Modell 7 an Das Anlegen eines Diagrammes inklusive eines neuen Modells ist in Ka pitel 4 2 2 1 auf Seite 37 beschrieben Wie lege ich ein Diagram zu einem bestehenden Modell an Das Anlegen eines Diagrammes auf einem bereits bestehenden Modell ist in Kapitel 4 2 2 1 auf Seite 37 beschrieben Wie k nnen Kardinalit ten von Assoziationen eingegeben werden Das Bearbeiten von Kardinalit ten ist in Kapitel 4 2 2 2 auf Seite 46 erl utert Welche Default Kardinalit ten werden im Klassendiagramm angenom men F r Kardinalit ten die nicht explizit angelegt bzw nicht im Diagramm angezeigt werden gilt der Wert 1 RefaSo amp ModelCockpit 4 Benutzerdokumentation 89 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft 4 3 4 Modellqualit tsplan Frage Antwort Wie k nnen Verbindungen Connections im Qualit tsmodell gel scht werden Die Zuordnung in den Eigenschaften des Qualit tsattributs oder der Qua lit tscharakteristik muss gel scht werden Um die Diagrammdarstellung zu aktualisieren muss der MQP anschlie end erst gespeichert werden 4 3 5 Diagnose Frage Antwort Im Diagnosis Abschnitt werden keine Diagnosen angezeigt Zwei M gli
96. on UMLZ model content Enter or select the parent folder rme Do gt El km File name TAM ESE EN Advanced gt gt coca Abbildung 4 7 Projekt Wizard Name und Pfad f r das Diagramm festlegen Der Benutzer w hlt nun Initialize Class Diagram oder Initialize State Diagram um ein Diagramm zu erstellen Es erscheint ein Dialog Abbildung 4 7 in dem der Da teiname f r das neue Diagramm festgelegt wird Mit Next wird der n chste Dialog geladen In diesem w hlt der Benutzer das Element im Modell aus welches als oberstes grafisches Element die Zeichenfl che darstellen soll Abbildung 4 8 stellt diese Elementauswahl dar Zul ssige Auswahlen sind e Klassendiagramm Package e Zustandsdiagramm Class Hinweis Mit Window gt Reset Perspective k nnen der Zustand und die Position der Fenster in ihren urspr nglichen Zustand versetzt werden 4 2 2 2 Klassendiagramme Erster unterst tzter Diagrammtyp ist das Klassendiagramm Abbildung 4 9 zeigt den UML Z Editor mit einem ge ffneten Klassendiagramm Der Editor umfasst folgende Bereiche Canvas Der Canvas ist die Zeichenfl che auf dem die Elemente des Diagrammes als Gra fiken erscheinen 40 4 Benutzerdokumentation RefaSo amp ModelCockpit N UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft __Refaso Modelcoc Bigs Diagram root element Select semantic model element to be
97. program It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty and each file should have at least the copyright line and a pointer to where the full notice is found one line to give the program s name and a brief idea of what it does Copyright C yyyy name of author This program is free software you can redistribute it and or modify it under the terms ofthe GNU General Public License as published by the Free Software Foundation either version 2 of the License or at your option any later version This program is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABI LITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public License for more details You should have received a copy of the GNU General Public License along with this program if not write to the Free Software Foundation Inc 51 Franklin Street Fifth Floor Boston MA 02110 1301 USA Also add information on how to contact you by electronic and paper mail If the program is interactive make it output a short notice like this when it starts in an interactive mode Gnomovision version 69 Copyright C yyyy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY for details type show w This is free software and you are welcome to redistribute it under certain con ditions type show c for details T
98. the tree OCLDEFINITION context Class def DIT Integer if self IsRoot then 0 else 1 self parents gt iterate elem Class acc Integer 0 if elem DIT gt acc then elem DIT else acc endif endif ooms SSS S OE Root class predicate IsRoot Gs RefaSo amp ModelCockpit B OCL Messungen 283 Die Universit t der Informationsgesellschaft WS D UNIVERSIT T PADERBORN Abschlussbericht INFORMALDEFINITION lass Hierarchy is unnecessary if class is abstract and only one direct subclass available OCLDEFINITION context Class def UnHy Boolean self IsAbstract and self DDESN 1 om le USINGMEASURES Abstract Class Predicate isAbstract Direct Descendants Number DDESN LITERATURS INFORMALDEFINITION A class is a small class if the total number of its operati ons and its attributes is lower than one to fourth than the average for all Classes OCLDEFINITION context Class def SmallC Boolean if self DAN self DON self getModel TDAN self getModel TDON self getModel TCN lt 0 33 then true else false endif CET A USINGMEASURES Defined Operations Number DON Defined Attributes Number DAN Total Defined Attributes Number TDAN Total Defined Operations Number TDON Total Classes Number TCN 284 B OCL Messungen RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft de UNIVERSITAT PADERBOR
99. upb pg rmc umlz diagram classeditor parser F r die Beschriftung von Attributen an Assoziationen folgt daraus direkt die Notwendigkeit einer berpr fung auf leere Labels damit Sichtbarkeitsattribute nicht angezeigt werden falls ein Label leer ist Zu finden ist dies in der Klasse AssociationEndToStringim Paket de upb pg rmc umlz diagram classeditor parser association end Zustandsdiagramme auf Klassen erzeugen Es soll m glich sein Zustandsdiagramme ber das Kontextmen von Klassen auf dem Canvas zu erstellen Dazu wurde die plugin xml Datei des de upb pg rmc umlz diagram stateeditor Projekts um folgenden Eintrag erweitert lt extension point org eclipse ui popupMenus gt lt gmfgen generated false gt lt objectContribution id de upb pg rmc umlz diagram classeditor InitDiagram objectClass de upb pg rmc umlz diagram classeditor edit parts ClassEditPart gt lt action label init DiagramActionLabel class de upb pg rmc umlz diagram stateeditor part UMLZInitStateDiagramFileAction menubarPath additions enablesFor 1 id de upb pg rmc umlz diagram classeditor InitDiagramAction gt lt action gt lt objectContribution gt lt extension gt Listing 7 1 Kontextmenii von Klassen auf dem Canvas um Eintrag fiir Zustandsdiagramme erweitern Das Anlegen des neuen Diagrammes geschieht dann in der Klasse UMLZInitStateDiagram FileAction Diese stellt eine Modifikation der Kl
100. voia equals ob Object boolean hashCode int ICandidate data RefactoringThera Candidate e equals ob Object boolean createCandidatesFor subDiagnostics Collection lt SubDiagnosisValue gt void getDescription String getElement NamedElement getName String hashCode int data data data data TextCandidate RefactoringCandidate a es getName String create tgetName String TextCandidate aNElement NamedElement therapy Therapy Abbildung 6 28 Klassendiagramm Diagnostics Komponente RefaSo amp ModelCockpit 6 Architekturdokumentation 173 Die Universit t der Informationsgesellschaft WS dl UNIVERSITAT PADERBORN Abschlussbericht Die Klasse DiagnosticGUI beinhaltet alle Informationen zur Darstellung der Diagnose Bevor eine Diagnose angezeigt werden kann wird f r jeden Indikator bzw jedes Modell element welches immer zu einem Indikator geh rt das Messergebnis aus dem MQP durch Aufruf des Normalisierungsmanagers durch den Symptommanager SymptomManager nor malisiert siehe Seite 174 Ist der jeweilige normalisierte Wert gr er oder gleich dem Grenzwert so wird f r diese Symptome eine passende Diagnose ermittelt abh ngig von den Informationen in der Konfigurationsdatei Wurde eine Diagnose ermittelt so wird nach passenden Therapiekandidaten Candidate gesucht Neben Textkandidaten TextCandidate gibt es
101. 0 42 293 Zustandediapramme lt aos O A a a a 53 4 2 3 Modellqualit tsplan 58 423 1 MOP amegen cocidos sa ae 58 4232 Der MQP Editor ocres eh eee pee ds 60 4 2 3 3 MQP Kontextmodell 2 2 2 nn nennen 61 4 2 3 4 MQP Informationsbedirfnismodell 65 423 0 MQP Qualit tsmode ll o sos spei wos aa pe Her 28 68 4 2 3 6 MQP Messmodell naaa e 70 4 2 3 7 MQP Prasentationsmodell 73 4 24 MMIAEDOSS eses me ek ote wade 2 Ye eke a ca 76 4 2 4 1 Benutzung der Diagnose 76 4 2 4 2 Konfigurationsdatei o o 77 425 Faute A aa g EE E arig a 79 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft 4 2 5 1 Ausf hren von Refactorings aooaa 79 4 2 5 2 Konfigurationsdatei 82 BO FOO ee ook ah he he oe uk Haine es e ee ee ee ae 89 4 3 1 Allgemeine Probleme 89 ASD Projekte cs saue paa wu EER a ee en 89 E AM ea a ae a ee a ae a ee RE Ee 89 4 3 4 Modellqualit tsplan lt soa awda an agiep asa t iera a 90 41355 Diagnose s c sk eee EE eR EE ke 90 ASG Refactoring csa 4224 8845 be a eee aan 90 5 Tutorial 91 Geol erer coro ee a EA Ak EN G 91 5 2 Durchgehendes Beispiel ces cos oca we p ee ea de ee 91 BEL EALO e e la e A A aS wes 91 5 2 1 1 Projekt anl gen o oo cona eea 2 d pa a a Be ee eS 92 5 2 1 2 Datentypen erstellen 95 5 2 1 3 Klassen anlegen a s 2 coea
102. 1D53D finset_1 Total functions Inequality Non membership Empty set Subset relation Proper subset Non empty subsets Set union Set intersection Set difference Set symmetric difference Generalised union Generalised intersection ADCO C mom nm Finite subsets Non empty finite subsets d Tabelle 4 4 Z Referenz Relation Toolkit first first first Tuple projection second second second Tuple projection mapsto 21A6 Maplets dom dom Domain DI ran ran Range id id i Identity relation comp 2A3E Relational composition circ 2218 Functional composition dres 25C1 Domain restriction rres 25B7 Range restriction ndres 2A64 Domain subtraction nrres 2A65 Range subtraction inv 223C Relational inversion limg 2987 Rel image left bracket rimg 2988 Rel image right bracket oplus 2295 Overriding Xplus se Transitive closure vk Reflexive transitive clos ure star RefaSo amp ModelCockpit 4 Benutzerdokumentation 51 dl UNIVERSITAT PADERBORN Die Universit t der Informationsgesellschaft 52 pfun pinj inj psurj surj bij ffun finj Tabelle 4 5 Z Referenz Function Toolkit 21F8 2914 21A3 2900 21A0 2916 21F8 2915 Abschlussbericht ee EN Bijections sc BEDEUTUNG Partial functions Partial injections Total injections Partial surjections Total surjections Finite functions Finite injections
103. 2 Thomas Ruhroth and Heike Wehrheim Refactoring Object Oriented Specifica tions with Data and Processes In Formal Methods for Open Object Based Dis tributed Systems 9th IFIP WG 6 1 International Conference FMOODS 2007 Paphos Cyprus June 6 8 2007 Proceedings pages 236 251 2007 4 7 6 3 5 6 3 5 1 6 3 5 1 Graeme Smith The Object Z Specification Language Kluwer Academic Publis hers Norwell MA USA 2000 9 2 UML 2 Tools http www eclipse org uml2 6 3 1 6 3 2 A 3 Hendrik Voigt and Gregor Engels Kontextsensitive Qualit tsplanung f r Software Modelle Thomas K hne Wolfgang Reisig Friedrich Steimann eds Modellierung 2008 12 14 M rz 2008 Berlin GI Edition Lecture Notes in In formatics LNI 127 165 180 2008 2 1 6 3 3 2 6 3 3 2 6 3 3 2 6 3 3 2 Jim Woodcock and Jim Davies Using Z Specification Refinement and Proof Prentice Hall 1996 2 1 6 2 6 6 3 1 1 A 2 Heike Wehrheim Specification of an Automatic Manufacturing System A Case Study in Using Integrated Formal Methods In FASE 00 Proceedings of the Third Internationsl Conference on Fundamental Approaches to Software Engi neering pages 334 348 London UK 2000 Springer Verlag 2 1 Volker Wegert and Alex Shatalin Integrating EMF and GMF Generated Edi tors http www eclipse org articles article php file Article Integrating EMF GMF Editors index html 2008 7 2 3 2 9 Resiimee RefaSo amp ModelCockpit Index Abgeleitete Messun
104. 211 d i UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Java de upb pg rmc umiz diagram classeditor model umlz gmfmap Eclipse SDK Elle Edit Navigate Search Project Model Run GMFMap Editor Window Help LS 50 4 SHO y fee eg ES 1 Data Modeling Debug ZU Java d Been S ISS outine SC p a HS 7 Resource Set BA platform resource de upb pc j de upb pg rmc cztwrapper 9 platform resource de upb pg rmc umiz diagram classeditor modelfumlz gmfmap E J de upb pg rmc diagnostics 1 A Mapping EE de upb pg rme mgp E E de upb pg rmc map confmodel E de upb pg rmc map diagnosticsinterfac E File Selection cl de upb pg rmc map diagnosticsprovide e cl de upb pg rmc mgp diagram quality 122 de upb pg rmc mgp edit H META INF IL de upb pg rmc mp editor E model ES de upb pg rmc map measurement templates El de upb pg rme map tests de UML ecore Io cl de upb pg rmc map ui E toad Resource iof x Ej UML genmodel Il de upb pg rmc refactoring laa Barmen Z umiz gmfgen 3 32 de upb pg rmc refactoring commoninte BA umiz gmfgraph E32 de upb pg rmc refactoring diagnosticsi A E umiz gmfmap Il de upb pg rmc refactoring editorinterf 2 umlz gmftool 9 42 de upb pg rmc refactoring refactoringr FH de upb pg rmc umlz E de upb pg rme umle disgram classedite E umiz2 gmfmap o OR sre mae EB JRE System Library JavaSE 1 6 i B
105. 249 9 3 4 Konfigurierbare Refactorings sso cecs s top ebb ee eee 250 9 4 Vergleich des Ergebnisses mit der Zielsetzung 250 Odo eebe ii a e a ee a e Bai 250 A Unsere Vorgehensweise 257 A l Projektorganisation 2 2 22 Como nennen 257 A 2 Themen der Seminarphase nn 258 A 3 Verwendete Werkzeuge o sos so i c oc a ro ca aiok oTa RREO nea 260 A 4 Hinweise f r zuk nftige Projektgruppen 261 AAI Zeitmanagement cs ec re eer mied paai E e ee 261 AAZ Kein Projektleiter e a a a ee 261 A 4 3 Zusammenarbeit vor Ort eee ee 262 A 4 4 Entscheidungsfindung mit Hilfe eines Kriterienkatalogs 262 A 4 5 Zwei Betreuer oaoa a a a 262 A 4 6 Spezialisten f r einzelne Themen vermeiden 262 AAT Freizeitaktivit ten 262 B OCL Messungen 263 BI Scale of measure results 263 B 2 Auxiliary Functions s se cos soe e moon 264 B 2 1 Property level functions 264 B 2 2 Class level functions 264 B 2 3 Model level function 270 B 2 4 StateMachine level functions o a 271 B 3 Base Measures 0 0 eee 272 B 3 1 Unit of measure is ClaSS o ec os cowair edea kadang iaa enai 272 B 3 2 Unit of measure is Model o o 281 B 3 3 Unit of measure is StateMachine o o 282 B 4 Derived Measures 283 B 4 1 Unit of measure is Claes 283 BA2 Unit of measures Model 2 ea occur e re ape tuona 286 Eo ACORDE u son a Sow e a etica Soe
106. 4 3 Installationsanleitung RefaSo amp ModelCockpit 4 Benutzerdokumentation Deine Freundin kann doch mithelfen Kann die Tippen Bernhard zu Martin 4 1 Einleitung Dieses Kapitel soll dem Benutzer des RMC Tools als Dokumentation dienen Dabei werden dem Benutzer Informationen an die Hand gegeben die notwendig sind um das RMC Tool nutzen zu k nnen Anschlie end werden viele hier erw hnte bzw beschriebene Bereiche in einem Tutorial Kapitel 5 noch einmal aufgegriffen und praktisch angewendet 4 2 Komponenten F r die Benutzung des RMC Tools wird immer ein Projekt ben tigt Hat der Benutzer noch kein Projekt angelegt so wird in Abschnitt 4 2 1 darauf kurz n her eingegangen Abschnitt 4 2 2 beschreibt die einzelnen Elemente der ersten gro en Komponente dem Editor Hier wird zuerst darauf Bezug genommen wie ein neues Diagramm einem Projekt zugeordnet bzw hinzugef gt wird und was beim Anlegen zu beachten ist Hat man ein Projekt und die gew nschten Diagramme angelegt werden in Abschnitt 4 2 2 2 und 4 2 2 3 die einzelnen Elemente der Editoren Klassen und Zustandseditor und deren Bedienung beschrieben In Abschnitt 4 2 3 wird die zweite gro e Komponente des RMC Tools n her beschrieben Die ser Abschnitt befasst sich mit den einzelnen Modellen Abschnitt 4 2 3 1 bis 4 2 3 7 eines Modellqualit tsplanes und den darin enthaltenen Bereichen Mit Hilfe von Messergebnissen aus dem Modellqualit tsplan kann dann die Diagn
107. 49 0 5251 6 E4 301 Architekt Edit Author Entwickler Edit Role Professor Delete Author Delete Role y Artefacts Enter a list of artefacts for this model quality plan The first artefact in this list must be your main artefact the artefact you want to analyze ID Name Source Version Status Author T Add Artefact Arz 1 0 Fertig Max Mustermann model Edit Artefact Delete Artefact Set Main Artefact 1 Context Model 2 Information Need Model 3 Quality Model 4 Measurement Model 5 Presentation Model Selection Parent List Tree Table Tree with Columns Far ls a Abbildung 4 27 MQP Editor ausgef lltes Kontextmodell Artefaktbereich Artefacts Im Artefaktbereich werden als Unterst tzung f r den Benut zer die Artefakte aufgelistet die bereits im Kontextmodell angelegt wurden Im Fragenbereich Question kann der Benutzer Fragegruppen Questiongroup Fragen Question und Ziele Goal anlegen oder l schen Durch Klicken auf add Goal erscheint ein Eingabefenster siehe Abbildung 4 29 in dem der Benutzer das Ziel und ein Goal Purpose ausw hlen kann Bei einer Fragegruppe wird nur der Name angegeben bei einer Frage die Frage Die Elemente werden dann als Baum im Question Bereich angezeigt In dem Baum kann der Benutzer die Elemente verschieben bzw zuordnen Dabei k nnen einem Ziel Fragen und Fragegruppen per Drag and Drop zugeordnet werden wobe
108. 6 7 1 7 2 7 3 7 4 7 9 7 6 fel 7 8 CR Abschlussbericht Klassendiagramm Z Konstruktor 22 2 2 Comm nn 157 Klassendiagramm Globale Z Definitionen e 158 Klassendiagramm Anbindung des Z Parsers an das Modell 159 Komponentendiagramm GMF Editor oo o cosco sepeda taeraa 160 Paketdiagramm Klassendiagrammeditor 161 Paketdiagramm Zustandsdiagrammeditor o oo oe o 161 Komponentendiagramm MQP e 162 Paketdiagramm Metamodell des Modellqualit tsplans 163 Klassendiagramm Meta Kontextmodell e 164 Klassendiagramm Meta Informationsbediirfnismodell 165 Klassendiagramm Meta Qualit tsmodell e 166 Klassendiagramm Meta Messmodell 167 Klassendiagramm Meta Pr sentationsmodell 168 Komponentendiagramm MQP GUI e 169 Kompositionsstrukturdiagramm MQP Measurement 170 Klassendiagramm MQP Measurement 000002 eee 171 Klassendiagramm Diagnostics Komponente 173 Klassendiagramm Normalisierung 174 Diagnose Beispiel lineare Normalisierung 176 Diagnose Beispiel st ckweise lineare Normalisierung 176 Sequenzdiagramm Verarbeitung der Indikatoren 177 Sequenzdiagramm Anzeige m glicher Normalisierungen 178 Sequenzdiagramm Berechnung von Diagnosen und passender Therapien 179 Klassendiagramm Refactoring Komponente 181 Klassendiagramm von Condition abgeleitete Klassen
109. A False Is Read Only DA false Is Static 54 false Is Unique E true Lower 11 Name zeit Redefined Property Subsetted Property Template Parameter Type Type Declaration Time Upper Gt Visibility private Abbildung 5 40 Tutorial Eigenschaften des Attributes Zeit W Resource RMC Tutorial default umlz_class_diagram RMC File Edit Navigate Project Window Help ra a A Biles E Resource Properties 3 Aggregation Association Class Client Dependency Default End Is Derived Is Derived Union Is Leaf Is Ordered Is Read Only Is Static Is Unique Lower Name Redefined Property Subsetted Property Template Parameter Type Upper Visibility composite H lt class gt vorlesung fi a false E false E false E false false Ta false E true Di 1S fachgebiet Type Declaration Fachgebiet 51 private Abbildung 5 41 116 so Ral Tutorial Eigenschaften des Attributes Fachgebiet 5 Tutorial RefaSo amp ModelCockpit dl UNIVERSITAT PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft miz_class_diagram RMC IE MAA ES Resource W i i zas 5 Properties ES z Les Value P Aggregation composite Association n o H lt Class gt Vorlesung E Client Dependency End Is Derived DA false Is Derived Union 1 false Is Leaf LA False Is Ordered DA false Is Read On
110. Abschlussdokumentation Abschlussdokumentation der Projektgruppe RefaSo amp ModelCockpit 21 April 2008 me RefaSo ModelCockpit Universit t Paderborn Fachgruppen Prof Dr Heike Wehrheim und Prof Dr Gregor Engels Mitglieder der Projektgruppe Andr Kemena Bernhard Dietrich Christoph Oberhokamp Martin Kleine Mathias Raacke Meik Piepmeyer Peter Winkelhane Rudolf Braun Steffen Dohle Tobias Friedrich Yi Tan Universit t Paderborn Erste Auflage 6 Exemplare Diese Dokumentation wurde mit Hilfe von ATRX gesetzt der Semantik die uns stets viel Freud und Leid beschert hat Inhaltsverzeichnis I Konzeptionelle Sicht 21 1 Einleitung 23 LL Meolwasen iu a ae ok wok 2G a BR 23 L Inhaltliche Ubersicht EEN NEEN EN a ar ra uo 4s 24 2 Konzepte 25 21 Die Spteche UML Z 2 34 woe ee u Vs e aa in 25 2 2 Quaht tskreislauf 2 40 0 2 08 82885 ara aa aa a we 26 2 2 1 Modellieren der Qualit t 22 2 CE mann 28 2 2 2 Messen der Qualit t o eee eee 29 2 2 3 Verbessern der Qualit t 30 Il Anwenderorientierte Sicht 31 3 Installationsanleitung 33 4 Benutzerdokumentation 35 4 1 Eimlatung s sacci codra rpd aa ae aaa die 35 4 2 KOmponehlen cogs na e dee E A a ta a oS 35 ARI poste cco ea o ad a ees Gs Ya ee A 2 E a 36 Boe Enter e e Heth a ei ee ee A eG Ba SE 36 4 2 2 1 Diagramme anlegen o o 36 4 2 2 2 Klassendiagramme e e e 4
111. An wender den Mauszeiger auf den Canvas oder ber ein Element auf diesem erscheint nach einigen Sekunden ohne Bewegung ein Men Abbildung 4 15 zeigt dieses Popupmenii Die Auswahl an Elementen die erstellt werden k nnen ist kontextsensitiv Der Anwender bekommt nur die jeweils m glichen Auswahlen pr sentiert Die dargestellten Icons sind analog zu der Beschreibung der Palette auf Seite 54 Bearbeiten von Elementen Dieser Abschnitt erl utert die grundlegenden M glichkeiten der Bearbeitung von Elemen ten Es existieren verschiedene M glichkeiten die Eigenschaften von Elementen zu editieren Diese Optionen werden hier vorgestellt auf die inhaltlichen Eigenschaften der Elemente wird nicht weiter eingegangen Eigenschaften von Elementen W hlt der Benutzer im Canvas ein Element aus erscheinen in der Property View die Attribute des ausgew hlten Elementes Abbildung 4 12 auf Seite 47 in der Beschreibung 56 4 Benutzerdokumentation RefaSo amp ModelCockpit d BMG d erer paDersonn Abschleisheiikhi En ll Die Universit t der Informationsgesellschaft RefaSo ModelCoc EE Resource RMC Tutorial default umlz_state_diagram RMC oj xj Bile Edit Diagram Navigate Project Window Help e Ge oe u u hE A ee eB E Blan Project Explorer 2 E 5 Y Al ld defaut umiz_state_diagram 5 zur El e RMC Tutorial Palette gt EA default umlz y Select E VI defauk umiz_class_diagr
112. BORN Abschlussbericht een besch ftigt sich daher sowohl mit dem Aufbau der Grammatik als auch mit dem Aufbau der Konfigurationsdatei Von RMC einzulesende Refactorings k nnen in einer der folgenden Dateien definiert sein 1 im Eclipse Workspace im Unterverzeichnis metadata plugins de upb pg rmc refactoring refactoring conf 2 im Eclipse Installationsverzeichnis im Unterverzeichnis plugins de upb pg rmc refactoring refactoring conf 3 von RMC mitgelieferte Konfigurationsdatei Es wird in der oben aufgef hrten Reihenfolge nach einer Konfigurationsdatei gesucht So bald die Verf gbarkeit einer Datei gegeben ist wird das Vorhandensein weiterer Dateien nicht berpr ft Mit der Definition von Refactorings in 1 k nnen diese abh ngig vom Ar beitsverzeichnis des Anwenders definiert und konfiguriert werden Falls die Dateien 1 und 2 nicht vorhanden sind bietet RMC bei Bedarf vordefinierte Refactorings an Die Grundlage f r das Beschreiben von Refactorings stellt die in diesem Kapitel vorge stellte Grammatik dar In der folgenden Tabelle sind alle Nichtterminale der Grammatik aufgef hrt die wichtigsten Eintr ge werden danach n her erl utert Tabelle 4 7 Refactoring Nichtterminale der Grammatik NICHTTERMINAL PRODUKTIONEN BESCHREIBUNG CompilationUnit Header Eine CompilationUnit ist das PropertyldentifierList Startelement der Grammatik GlobalOcl TypeldentifierList SimpleRefactorings ComplexRefactorings RefactoringT
113. CZT Wrapper Modellelemente einzel nen Variablen im Z Ausdruck hinterlegt werden siehe dazu MU05 und die Beschreibung der Architektur in Kapitel 6 Um alle Z Ausdr cke beim Einlesen des Modells erst zu sam meln und anschlie end nach erfolgreichem Einlesen des ganzen Modells zu parsen wurden das Paket de upb pg rmc umlz editor z und die enthaltenen Klassen ZPredicateSpe cificationContainer und ZPredicateSpecificationContainerProvider erzeugt Die Klasse ZPredicateSpecificationContainerProvider implementiert dabei das In terface IZPredicateSpecificationContainer im Paket de upb pg rmc umlz util der Komponente de upb pg rmc umlz welches als Erweiterungspunkt de upb pg rmc umlz ZPredicateSpecificationContainer der Komponente de upb pg rmc umlz angeboten wird In der Klasse ZPredicateSpecificationContainer werden alle Z Ausdr cke gesam melt und nach dem Einlesen des kompletten Modells mit dem Aufruf der Funktion parse All geparst Eingabe von Z Ausdriicken Der Eingabedialog f r die Z Ausdr cke ist im Projekt de upb pg rmc uml1z editor reali siert Im Unterpaket presentation befindet sich dazu zum Einen die Klasse ZEditorCompo site welche die grafische Benutzeroberfl che f r den Eingabedialog enth lt Zum Anderen behinhaltet die Klasse UMLZEditor die statische Klasse UMLPropertyDescriptor Von dort aus wird der entsprechende Button zum Anzeigen des Eingabe Dialogs f r ZExpression Siehe dazu die Hilfe zu Extension Points von eclip
114. Die Universit t der Informationsgesellschaft Retasol dl UNIVERSITAT PADERBORN Abschlussbericht malz ContextModel Role name String description String viewpoint 12 indicates ContextModel ContextElement hag gt InformationNeedModel lt gt lt gt aa QuestionGroup 4 chardcterises 0 1 Abbildung 6 21 Klassendiagramm Meta Informationsbed rfnismodell RefaSo amp ModelCockpit 6 Architekturdokumentation 165 Die Universit t der Informationsgesellschaft WS di UNIVERSIT T PADERBORN Abschlussbericht een 1 defines quality understanding of 1 ModelQuality ContextModel SoftwareModel 4 4 4 analyses categorises categorises 1 subCharakteristik IW superiorCharakteristik DefinedQuality InformationNeedModet Goal ModelQualityCharacteristid QualityModel purpose String 1 with respect to oe lt A y 1 1 A 4 characterises categorises gt 1 13 InformationNeedModel Question 1 addresses 1 ModelQualityAttributd value String definedQuality Abbildung 6 22 Klassendiagramm Meta Qualit tsmodell Messmodell Das Messmodell beschreibt alle notwendigen Messungen und Analysen die in der Qua lit tspr f
115. Edit Diagram Navigate Project Refactoring Window Help Le KEE AA A rer El Lee Cl 100 E ES Resource a LO default umiz class diagram 23 us ES Palette gt T Select Zoom Person ee A attributes EE name Text H Class vorname Text Package emailadresse Text E Enumeration operations DataType e Association Class 2 Interface 2 Constraint Stereotype E Professor E Attribute E vorlesung attributes Operation semesterWochenStunden N E Student Enum Literal zeit Time hal Ligehaltenevoru ge N attributes Association S fachgebiet Fachgebiet gt aii matrikelnummer N Dependency D sname Text forschen studiengang Studiengang A Generalization raum Text x N tvoryagHakent operations 4 Provided Interface mitarbeiterMotivieren lernen vorlesung Vorlesung a g Vorlesung Tag operations Re dl Required Interface 0 10 publiziertDokument D Nary Dependency h ltZentral bung Target h lt bung Nary Dependency Source 17 Constrained Element SE wal attributes E Association End nimmt teil _ Realization Abbildung 5 20 Tutorial Die Zeichenfl che des Editors 5 2 1 3 Klassen anlegen In diesem Kapitel wird die Erzeugung von Elementen die ber die Zeichenfl che angelegt werden demonstriert Abbildung 5 20 zeigt die resultierende Zeichenfl che des Editors mit allen Elementen die im Folg
116. Eintrag f r category auf rmc gesetzt Der neue Diagrammtyp kann nun in der Anwendung ausgew hlt und genutzt werden 7 2 3 Modellqualit tsplan 7 2 3 1 nderungen am Modell Generierung des Modell Quelltexts Grundlage f r die Generierung des MQP Modells ist das EMF Modell aus dem der Java Code generiert wird Das Eclipse Modeling Framework EMF EMF ist ein Open Source Java Framework zur automatisierten Erzeugung von Quellcode anhand von strukturierten Modellen Das Modell befindet sich im model Ordner des de upb pg rmc mqp Projekts Ben tigt werden dazu folgende Dateien e MQP ecore MQP Modell e MQP genmodel Generierungsmodell f r das MQP Modell Die automatische Code Generierung erzeugt die folgenden Pakete e de upb pg rmc mqp e de upb pg rmc mqp edit e de upb pg rmc mqp editor e de upb pg rmc mqp tests Erweitern des Metamodells Um nderungen am MQP Metamodell realisieren zu k nnen m ssen die entsprechenden nderungen in der Ecore Datei des MQP MQP ecore vorgenommen werden Das Vorge hen entspricht dabei dem generellen Vorgehen beim ndern Erstellen von EMF Modellen zu dem es zahlreiche Tutorials gibt Das Eclipse EMF Framework ist nicht in der Lage die durchgef hrten nderungen auto matisch im Genmodel zu bernehmen Hier gibt es zwei M glichkeiten 1 Das Genmodel neu zu generieren Hierbei m ssen anschlie end die Code Gene rierungseigenschaften im Genmodel Properties der oberen
117. IMQP Die Schnittstelle aus Abbildung 6 5 wird vom der ModelQualityPlan Komponente ge nutzt um der Diagnostics Komponente die Ergebnisse einer Messung zu bergeben Die MQP Komponente f hrt eine Messung durch und stellt die Ergebnisse ber IMQP der Diagnostics Komponente als Menge von IMQPIndicator Objekten zur Verf gung Die Diagnostics Komponente erstellt auf Basis einer Eingabe Verbesserungsvorschl ge und bietet diese in einer eigenen GUI an Das Erstellen und die Durchf hrung der Verbesse rungsvorschl ge findet vollst ndig auf Seiten der Diagnose statt RefaSo amp ModelCockpit 6 Architekturdokumentation 149 Die Universit t der Informationsgesellschaft WS dl UNIVERSITAT PADERBORN Abschlussbericht interface IOCLParser createNewParseEnvironment resource Resource 10CLParseEnvironment create java lang Exception throw interface OCLParseException IOCLParseEnvironment create OCLParseException message String cause Throwable create OCLParseException message String removeVariable name String voia replaceVariable Value name String newValue Object voia addVariable name String value Object boolean addVariable name String clazz Class lt gt boolean addVariable name String dataType OCLDataType boolean addVariable name String type EClassifier bookan define Operations functions Map lt String String gt bookan defineOperations opps Strin
118. IOCL IMQP o TRefactoringDiagnostics Abbildung 6 1 Komponentendiagramm Architektur bersicht Innerhalb von RMC verwendete Schnittstellen sind in Kapitel 6 2 detailliert dokumentiert Nachstehend sind Zusammenfassungen der definierten Schnittstellen sowie deren Aufga ben gem f Abbildung 6 1 angegeben Schnittstellen werden jeweils von der Komponente angeboten welche Klassen enth lt die die Schnittstellen implementieren IModel Diese Schnittstelle stellt anderen Komponente Funktionalit ten zur Verfiigung auf Modellelemente zuzugreifen und so Zusammenh nge zwischen einzelnen Modell bestandteilen zu erfahren Modifikationen des Modells k nnen ber eine Reihe defi nierter Operationen vorgenommen werden siehe Unterkapitel 6 2 1 IRefactoringEditor ber diese Schnittstelle werden Refactorings zu einer Menge von Mo dellelementen angefordert siehe Unterkapitel 6 2 2 IRefactoringDiagnostics ber diese Schnittstelle werden Refactorings zu einer Menge von Modellelementen und einer Menge vorgegebener Effekte die ein Refactoring herleiten sollte angefordert siehe Unterkapitel 6 2 3 IOCL Diese Komponente berpr ft gegebene OCL Ausdr cke auf syntaktische Korrekt heit So erzeugte OCL Anfragen k nnen auf ein UML Z Modell angewandt werden um Informationen zu bestimmten Modellelementen ausfi
119. ITAT PADERBORN Abschlussbericht miaz Die Universit t der Informationsgesellschaft Fe OCLDEFINITION context Class def descendants Set Class children gt iterate elem Class acc Set Class children acc union elem descendants COMMENTS This operation is recursive Notice that even with multiple inhe ritance the result is a set no repeated classes em emeas SSCS OCLDEFINITION predefined in UML Z Meta Model KOT Eu KA INFORMALDEFINITION Set of classes from which the current class derives directly or indirectly OCLDEFINITION context Class def ascendants Set Class parents gt iterate elem Class acc Set Class parents acc union elem ascendants COMMENTS This operation is recursive Notice that even with common ance stors due to multiple inheritance the result is a set no repeated classes Eu RefaSo amp ModelCockpit B OCL Messungen 265 Ai UNIVERSIT T PADERBORN Abschlussbericht See Die Universit t der Informationsgesellschaft WS A OOOO INFORMALDEFINITION Set of classes to which the current class is coupled excluding inheritance OCLDEFINITION context Class def coupledClasses Set Classifier self getAllAttributes type oclAsType Classifier gt asSet union self ownedOperation getType oclAsType Classifier gt asSet gt union self ownedOperation ownedParameter type oclAsType Classifier
120. Javadoc G Runas 22 E console 3 Search 3 Call Hierarchy le SO EB UML genmodel Property Debug As K Value IL schema References Team El classpath Source Replace With ls http www eclipse orgfemf 2002 GenModel B project Evaluate sil buld properties ER plugin properties ne 40 plugin xml Refresh cl de upb pg rmc umlz diagram classeditc Show Properties View 17 de upb pg rmc umilz diagram stateedit Es TE de upb pa rme umiz edit S ele Ir Selected Object GenModel Abbildung 7 5 Modell Hinzuf gen eines Details Entry RefaSo amp ModelCockpit 7 Entwicklerdokumentation 207 d i UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft RefaSo ModelCoc Java de upb pg rmc umlz model UML ecore Eclipse SDK BEE File Edit Navigate Search Project Model Sample Ecore Editor Run Window Help rie O Q PG ai ce ER E 1 Data Modeling gt Plug in Devel 5 Debug Java HE Package Explorer Si Sy CDe um ege RN CDU Ee outine 3 ECH ales h E Behavior gt Class An outline is not available D E Class gt EncapsulatedClassifier BehavioredClassifier E i GenModel Ip fla duplicates 4 EncapsulatedClassifier BehavioredClassifier ME passive_class EDiagnosticChain EMap lt EJavaObject EJavaObject gt EBoolean dd getExtensions Extension EB createOwnedOperation String String Type Type Operation 4 isMetacla
121. LZTransi tionPropertySection Der generierte Quelltext enth lt bereits Methoden f r den korrek ten Zugriff auf das Modell mittels Commands Zu implementieren sind die getter und 218 7 Entwicklerdokumentation RefaSo amp ModelCockpit en J UNIVERSITAT PADERBORN ss Die Universit t der Informationsgesellschaft Abschlussbericht Retaso Modelcockpit Ele Edit Navigate Search Project Model GMFGen Editor Run Window Help D 0 Q EEG EC FY 3 Data modeling Debug ZU Java HE Package Explorer 23 D statemachi e BE Outline 23 0 EA platform Jresourcejde upb pa 12 de upb pg rmc cztwrapper 2 platform resource de upb pg rme umlz diagram stateeditor model stateMachineDiagram gmfgen platform resource de upb pc cl de upb pa rme diagnostics El Gen Editor Generator de upb pg rmc umiz diagram stateeditor P EI platform jresource de upb pe E E de upb pg rmc mqp Gen Diagram StateMachineEdtPart platform Jpluginorg eclpse e E E de upb pg rme mqp confmodel Gen Plugin UNLZ StateEditor Plugin P EI platform Jpluginjorg eclpse e EE de upb pg rmc map diagnosticsinterfac Gen Editor View de upb pg rmc umlz diagram stateeditor part EHE de upb pg rmc map diagnosticsprovide i 4 Gen Navigator UMLZNavigatorContentProvider Te cl de upb pg rmc map diagram quality dr Gen Diagram Updater UMLZDisgramUipdater EH de upb pg rmc mgp edit Property Sheet de upb pg rmc umlz diagram stateeditor sheet EHE de upb pg rme mgp
122. N Abschlussbericht miaz OCLDEFINITION context Class def RPubA Real PUBAN AAN inv AAN 0 K le USINGMEASURES Public Attributes Number PUBAN Available Attributes Number AAN INFORMALDEFINITION Number of the new operations and the overridden operati ons of a Class OCLDEFINITION context Class def DON Integer definedOperations gt size en SSS S definedOperations E PSS Ban RefaSo amp ModelCockpit B OCL Messungen 285 Die Universit t der Informationsgesellschaft WS D UNIVERSIT T PADERBORN Abschlussbericht OCLDEFINITION context Class def SIZE2 Integer self DON self DANI KEN le USINGMEASURES Defined Operations Number DON Defined Attributes Number DAN B 4 2 Unit of measure is Model INFORMALDEFINITION Total number of Large Classes in the model A class is a Large Class if the total number of its operations and its attributes is more than three times higher than the average for all Classes OCLDEFINITION context Model def LCN Integer allClasses gt iterate elem Class acc Integer 0 if elem DON elem DAN self TDAN self TDON gt 3 then acc 1 else acc 0 endif commas CS USINGMEASURES Defined Operations Number DON Defined Attributes Number DAN Total Defined Attributes Number TDAN Total Defined Operations Number TDON 286 B OCL Messungen RefaSo amp ModelCockpit Die
123. NIVERSITAT PADERBORN Die Universit t der Informationsgesellschaft Abschlussb ericht __Reraso Modeicockpit Resource RMC Tutorial RMC_MQP_Tutorial mqp RMC File Edit Diagram Navigate Project Window Help le dela are a EE A Ee a Lo RMC_MQP_Tutoriamap D Loix SUE 2 Palette H Modellqualit t IR Select Pal Zoom Note wal Implementierbarkeit Designqualitat QA Semantische Qualit t Ka Connection Wartbarkeit gt Verst ndlichkeit Semantische Vollst ndigkeit Mehrfachvererbung Gro e Klassen Vererbungstiefe L nge der Klassennamen Verf gbarkeit von Vor und Nachbedingung la Eu 3 Quality Model Question General information about this model quality plan 7 Goal Implementierbarkeit bestimmen gt Question Wird Mehrfachvererbung eingesetzt E gt Goal Semantische Vollst ndigkeit gt Question Sind alle Operationen vollst ndig spezifiziert El Goal Design Qualit t bestimmen 4 Question Wird Vererbung richtig eingesetzt Question Gibt es Klassen mit zu vielen Methoden gt Question Gibt es Klassen mit zu kurzem Namen 1 Context Model 2 Information Need Model 3 Quality Model 4 Measurement Model 5 Presentation Model Selection Parent List Tree Table Tree with Columns 0 Abbildung 5 57 Qualit tsmodell 5 2 2 4 Ein neues Qualit tsmodell erstellen Im Qualit tsmodell legt der Anw
124. Need Model 3 Quality Model 4 Measurement Model 5 Presentation Model Selection Parent List Tree Table Tree with Columns Jg Selected Nothing lea Abbildung 4 28 MQP Editor Informationsbed rfnismodell add new goal group ES Goal Modellqualit t Goal Purpose Evaluation y add new goal group Abbildung 4 29 MQP Informationsbed rfnismodell Neues Ziel anlegen RefaSo amp ModelCockpit 4 Benutzerdokumentation 67 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Fragegruppen haben folgende Eigenschaften e Name Name der Gruppe Ziele haben folgende Eigenschaften e Context Element Der Kontext des Ziels e Name Das Ziel e Object Of Study Bezieht sich immer das Hauptartefakt wird automatisch gesetzt e Purpose Absicht des Ziels e Quality Focus Ziele k nnen Qualit tscharakteristiken zugeordnet werden diese wer den aber erst im Qualit tsmodell angelegt e View Point Einem Ziel k nnen Rollen aus dem Kontextmodell zugeordnet werden 4 2 3 5 MQP Qualit tsmodell Als n chstes sollte vom Benutzer das Qualit tsmodell Quality Model ausgef llt werden Um vom Informationsbed rfnismodell ins Qualit tsmodell zu gelangen muss der Benutzer den Reiter Quality Model ausw hlen Die Abbildung 4 30 zeigt ein beispielhaft ausgef ll tes Qualit tsmodell Das Qualit tsmodell besteht aus zwei Bereichen einer Zeichenfl che oben indem ein Gr
125. Neue Basismessung eingeben 72 4 Benutzerdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft Ai UNIVERSIT T PADERBORN Abschlussbericht minin letzten Then Feld auch eine Bewertung eingef gt werden bevor der Anwender den Indi kator ber Save Changes abspeichern kann Der Indikator wird dann wie die Messungen in der Konfigurationsdatei abgespeichert und im Messmodell im rechten Baum dargestellt Der Indikator kann jetzt wie alle anderen Messungen und Indikatoren auch einem QA per Drag and Drop zugewiesen werden Nachdem der Benutzer den QA Messungen und Indikatoren zugewiesen hat kann er diese Messungen auf einem UML Z Modell ausf hren Daf r gibt es im Messmodell unten den Bereich execute measures Hier muss der Benutzer ein UML Z Modell ausw hlen Daf r muss der Anwender neben dem Textfeld UML Z Model auf dr cken und ein neues Fenster zur Auswahl der UML Z Modell Datei ffnet sich Hinweis Das Modell muss sich daf r im Projektverzeichnis befinden Der Benutzer kann das passende Modell ausw hlen und ber Ok best tigen Um dann die Messung auf dem Modell zu starten muss der Anwender auf do Measurement dr cken 4 2 3 7 MQP Pr sentationsmodell Das noch nicht vorgestellte Modell ist das Pr sentationsmodell Presentation Model In diesem Modell werden dem Benutzer die Daten der vorherigen Modelle angezeigt siehe Abbildung 4 35 unter anderem auch die Ergebnis
126. QP Interface interface ITermWrapper getString enc Encoding String tUsedNamedElements Collection lt NamedElement gt interface interface IPredWrapper IExprWrapper equals obj Object boolean equals obj Object boolean getRoot ITermWrapper getDefinition String tSubpreds Collection lt IPredWrappe tName String f create create interface ICZTUtil createExpr IExprWrapper createTerm ITermWrapoer getLastParsingErrors Collection lt IParsingError gt get Terms element NamedElement removelnvalid boolean Collection lt ITermWrapper gt isNamedElementRerovable element NamedElement boolean parse term String TTermWrapper parseExpressionm pred String model Mode 1ExprWrapper parsePredicate pred String element NamedElement p PredKind IPredWrapper registerNamedElement namedElement NamedElement voia Abbildung 6 6 Klassendiagramm IZParser Interface RefaSo amp ModelCockpit 6 Architekturdokumentation 151 dl UNIVERSITAT PADERBORN Abschlussbericht EE Die Universit t der Informationsgesellschaft RefaSo ModelCoc 152 6 Architekturdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft Retasol Ai UNIVERSIT T PADERBORN Abschlussbericht minin 6 3 Komponenten 6 3 1 UML Z Model Die Implementierung des UML Z Modells basiert auf der UML2 Implementierung von eclip se org UML
127. Quality Attribute Gro e Klassen Leaf class predicate IsLeaf add indicator Large Classes ILC ON Abstract Class Predicate IsAbstract 7 4 Model Quality Attribute Vererbungstiefe Private Operations Number PRION Depth of Inheritance of a Class DIT Protected Operations Number PROON EEE edit E gt Model Quality Attribute Lange der Klassennamen Public Operations Number PUBON 4 Short class names 1_SCN Children Number CHING E lit barkeit von Vor und Nachbedingung 4 Direct Descendants Number DDESN 2 ion ZPPPC Descendants Number DESN Parents Number PARNO Ascendants Number ASCN Total Classes Number TCN Z Predicate Pre Post Condition ZPPPC f 4 Z Predicate in Class Number ZPRCN Derived Measure Links gt Indicator Links Execute measures General information about the execution of measures UML Z Model ji 1 Context Model 2 Information Need Model 3 Quality Model 4 Measurement Model Presentation Model Selection Parent List Tree Table Tree with Columns E properties 23 TI Presentationmodel properties Le ASEO Z Predicate Pre Post Condition ZPPPCQ Core Lee Value Acronym ZPPPC Informal Definition Boolean value for each Operation True if Z specification set for precondition and postcondition else false Name 7 Predicate Pre Post Condition OCL Expression conte
128. RN Abschlussbericht a Die Universit t der Informationsgesellschaft enter indicator RefaSo ModelCoci name Unnamed Associatic acronym 1_UnAssocs scale HighLow informal definition El Al P unit of measurement model r defined measures Abstract Class Predicate Ascendants Number Available Attributes Number Available Operations Number Children Number Class Name Length Defined Attributes Number Defined Operations Number Depth of Inheritance of a Class Descendants Number Direct Descendants Number x m operations lo E ES E ARAE r calculations I Unassocn Nassoc gt 0 5 THEN very High IF unassoci Nassoc gt 0 3 THEN fhig IF unassoci Nassoc gt 0 1 THEN midde IF undssocnQ NAssoc gt 0 05 THEN kow IF THEN fo ELSE THEN Very Low 2 en Abbildung 4 34 MQP Messmodell Neuen Indikator eingeben 4 Benutzerdokumentation RefaSo amp ModelCockpit N UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft __Refaso Modelcoc Resource RMC Tutorial RMC_MQP_Tutorial mqp RMC Bme Ele Edit Navigate Project MQP Editor Window Help tS d NBodyForce GravitationalCons Distance m 1 0 e Gibt es Kassen mit zu vielen Methoden Sind alle Operationen vollst ndig spezifiziert BarnesHutTheta 0 899 Wird Vererbung richtig eingesetzt DragForce Des
129. RSIT T PADERBORN Abschlussbericht minin Delta Liste Zur Spezifikation der Delta Liste einer Operation wurde dieser eine zus tzliche Assoziation zu Property hinzugef gt mit der die Delta Attribute einer Klasse gem Z Spezifikation WD96 angegeben werden k nnen siehe Abbildung 6 11 z deltaList 1 Q Property ownedAttribute ownedOperation Abbildung 6 11 Klassendiagramm Realisierung der Delta Liste in Operationen Z Konstruktor Fiir den Z Konstruktor Init wurde der Klasse Class eine neue Assoziation Init hin zugefiigt die auf einen Constraint verweist welches wiederum eine ZPredicateSpeci fication besitzt In dieser kann wie bei der effect und enable ein Z Pr dikat fiir den Z Konstruktor angegeben werden siehe Abbildung 6 12 Class 1 1 Constraint 1 1 ValueSpecification ZPredicateSpecification KO KI zPredicate ZPredicate init Abbildung 6 12 Klassendiagramm Z Konstruktor Globale Z Defintionen und Z Typen Z Typen k nnen mit Hilfe der Klasse TypeDeclaration angelegt werden hnlich wie bei enable und effect bzw dem Z Konstruktor wird der TypeDeclaration eine ZExpressi onSpecification zugeordnet die in einer ZExpression den Z Ausdruck enth lt Z Typen die in einem Package angelegt wurden sind jeweils nur innerhalb dieses Packages definiert Entsprechend der TypeDeclaration k nnen mit der VariableDeclaration Variablen und mit der FunctionDecla
130. Selection instanceof ZPredicateSpecificationImpl MenuManager zEditorMenu new MenuManager UMLZDiagramEditorPlugin getInstance getString customFilteredContextMenuLabel zEditorMenu add new Action Z Editor Override public void run final Object object StructuredSelection UMLZDiagramEditor this HNur Elemente die sich bereits in den beiden erw hnten Men s befinden lassen sich auf diese Art erg nzen F r weitere Elemente ist eine Anpassung des UML Z Modells notwendig 220 7 Entwicklerdokumentation RefaSo amp ModelCockpit Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft getContentOutlinePage getSelection getFirstElement if object instanceof de upb pg rme umlz internal impl ZPredicateSpecificationImpl final ZEditorComposite zec new ZEditorComposite l Dialog d new Dialog UMLZDiagramEditor this getSite getShell TODO Override protected Control createDialogArea Composite parent zec 0 new ZEditorComposite parent 0 zec 0 setZPredicateSpecification ZPredicateSpecification object return zec 0 protected void okPressed ZPredicateSpecification ze ZPredicateSpecification object IPredWrapper result ze tryParse zec 0 getZ if result null zec 0 setPredWrapper result super okPressed j D d create d getShell setText ZPredicate Editor d s
131. Sie die Auswahl eines Mirrors mit OK Es erscheint wieder der Dialog Update Manager Eclipse ben tigt nun einige Sekunden zum Ermitteln der verf gbaren Updates War ten Sie bis dieser Vorgang abgeschlossen ist und der Dialog Search Results er scheint Markieren Sie nun folgende Plugins aus der Liste Enabling Features wie in Abbil dung 7 1 zu sehen e EMF Model Query 1 1 e EMF Model Query OCL Integration 1 1 e EMF Validation Framework 1 1 e EMF Model Transaction 1 1 e EMF Model Transaction Workbench Integration 1 1 e Object Constraint Language OCL 2 0 1 1 e OCL 2 0 Binding For UML 1 1 e Object Constraint Language OCL 2 0 Compatibility 1 1 Markieren Sie au erdem folgende Plugins aus der Liste Models and Model Deve lopment e Eclipse Modeling Framework EMF Runtime End User Tools e Graphical Modeling Framework Europa Edition 2 0 e UML 2 End User Features 2 1 Nachdem Sie alle Plugins markiert haben best tigen Sie Ihre Auswahl mit Next Sie sehen nun den Dialog Feature License Best tigen Sie die Lizenzen der zu installierenden Plugins durch Auswahl der Opti on I accept the terms in the license agreements und klick auf Next Sie sehen nun den Dialog Installation Best tigen Sie die Installation der Plugins mit Finish Es erscheint der Dialog Up date Manager Eclipse l dt nun die Plugins herunter Warten Sie bis dieser Vorgang abgeschlossen ist Sie sehen nun den Dialog Feature Verification
132. T PADERBORN Abschlussbericht CALCULATION IF CNL lt 2 THEN VERY HIGH IF CNL gt 2 amp amp CNL lt 3 THEN HIGH IF CNL gt 3 amp amp CNL lt 5 THEN MIDDLE IF CNL gt 5 amp amp CNL lt 8 THEN LOW ELSE VERY LOW Class Name Length OND CN 296 B OCL Messungen RefaSo amp ModelCockpit C Lizenz Version 2 June 1991 Copyright 1989 1991 Free Software Foundation Inc 51 Franklin Street Fifth Floor Boston MA 02110 1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document but changing it is not allowed Preamble The licenses for most software are designed to take away your freedom to share and change it By contrast the GNU General Public License is intended to guarantee your freedom to share and change free software to make sure the software is free for all its users This General Public License applies to most of the Free Software Foundation s software and to any other program whose authors commit to using it Some other Free Software Foundation software is covered by the GNU Library General Public License instead You can apply it to your programs too When we speak of free software we are referring to freedom not price Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software and charge for this service if you wish that you receive source code or can get it if you want it that yo
133. TUtil getLastParsingErrors Collection lt IParsingError gt getTerms element NamedElement removelnvalid boolean Collection lt ITermWrapper gt isNamedElementRemovabk element NamedElement boolean parse term String ITermWrapper parseExpression stringTerm String model Model IExprWrapper parsePredicate pred String namedElement NamedElement kind PredKind IPredWrapper registerNa medElement namedElement NamedEle ment void toLatex term Term String toUnicode term Term opp Operation String toUnicode term Term String toZML term Term String instance use use V V TermVisitor TermVviitor ZNameCollector ZNameExchanger getNamedElements Collection lt NamedElement gt visitTerm term Term Object visitTerm term Term Object visitZName name ZName Object visitZName name ZName Object create ZNameExchanger element NamedElement kind PredKind V R extends java lang Object net sourceforge czt util Visitor interface lt a teste Stee ZNamevVisitor VBitZName argO net sourceforge czt z ast ZName R Y UMLZFactory createZNameInExpr pack age de upb pg rmc umlz Package name ZName ZName createZNameInlnit element de upb pg rmc umlz Class name ZName ZName createZNameInPredicate op Operation oldName ZName kind PredKind ZName create v
134. Termin an dem sich die ganze Projektgruppe getroffen hat um den aktuellen Status des Projekts zu besprechen und Entscheidungen zu treffen Im Abstand von ca sechs Wochen haben wir unsere Ergebnisse unseren Professoren in Form eines Lenkungskreises vorgestellt Ein Lenkungskreis bestand aus drei Mitgliedern der Projektgruppe unseren Betreuern und unseren Professoren Der Projektverlauf l sst sich grob in f nf Phasen unterteilen Seminarphase Entwurf Im plementierung Test und Dokumentation 257 Die Universit t der Informationsgesellschaft WS di UNIVERSIT T PADERBORN Abschlussbericht een In der Seminarphase hat jedes Projektgruppenmitglied ein f r die Projektgruppe relevantes Thema aufgearbeitet und den anderen Projektgruppenmitgliedern in einer Pr sentation sowie einer schriftlichen Ausarbeitung vorgestellt Oft waren diese Pr sentationen auch mit einer Entscheidungsfindung verbunden z B die Auswahl eins Versionskontrollsystems oder Wahl zwischen Word und Latex f r die Projektdokumentation In der Entwurfsphase wurde zun chst ein Pflichtenheft erstellt Anschlie end wurde ein Grob und danach ein Feinentwurf f r alle Teile unserer Software entwickelt Mit der Implementierung der Software haben wir im Oktober 2007 begonnen Die Pro jektgruppe wurde in Teilgruppen f r die einzelnen Komponenten aufgeteilt Editoren Re factoring Diagnose OCL MQP die ihre jeweiligen Komponenten relativ unabh ngig voneinander entwickel
135. Text forschen studiengang Studiengang A Generalzation vortragHalten ti raum Text x N d phetarions 4 Provided Interface pa Ud cu lernen vorlesung Vorlesung ES pr ft student Student A Required Interface publiziertDokument NAry Dependency h ltZentral bung Target h lt bung Navy Dependency ource 2 Constrained Element wal Dependency S operations E Association End _ Realization Abbildung 5 45 Tutorial Generalisierung Professor Assoziation halt Um eine Assoziation halt zwischen den Klassen Professor und Vorlesung zu modellieren w hlt der Anwender aus der Palette das Werkzeug Association aus Dann wird in der Zeichenfl che nacheinander auf die Klassen Professor und Vorlesung geklickt Abbildung 5 46 zeigt das Resultat Assoziation nimmt teil Um eine Assoziation nimmt teil zwischen den Klassen Student und Vorlesung zu modellieren w hlt der Anwender aus der Palette das Werkzeug As sociation aus Dann wird in der Zeichenfl che nacheinander auf die Klassen Student und Vorlesung geklickt Abbildung 5 47 zeigt das Resultat Das UML Z Modell ist nun vollst ndig und entspricht dem dargestellten Modell aus Ab bildung 5 1 5 2 2 Modellqualit tsplan Nachdem ein UML Z Modell angelegt wurde kann mit der Erstellung eines Modellqua lit tsplans MQP begonnen werden Dieses Kapitel f hrt den Benutzer Schritt f r Schritt durch das Anlegen der ein
136. Untitled Text File 23 Example EMF Model Creation Wizards E RMC e Model Quality Plan Muniz Classdiagram UMLZ Model VI umLz Statediagram lt Back Finish Cancel Abbildung 5 4 Tutorial Diagrammtyp MM New UMLZ Classdiagram lel ES Create UMLZ Classdiagram X Select file that will contain diagram model 6 E 2 Enter or select the parent folder rme ti 12 rme Abbildung 5 5 Tutorial Dateiname fiir das Diagramm 5 Tutorial RefaSo amp ModelCockpit dl UNIVERSITAT PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft RMC Tutorial default umiz_class_diagram RMC Ele Edit Navigate Project Window Help Ree A SE E ES li Resource e Come 3 e A E E lt Package gt Type Dedaration Time ZExpression Specification Hour x Minute Type Declaration Minute ZExpression Specification H E42 lt Constraint gt ZPredicate Specification Type Declaration Hour Type Declaration Fachgebiet Type Declaration Text E Type Declaration W ZExpression Specification W Type Declaration Studiengang Type Declaration Text x M ZExpression Specification Text x 8 Ne Abbildung 5 6 Tutorial Elemente in der Outline 5 2 1 2 Datentypen erstellen Bei der Erstellung von Datentypen in Diagrammen wird im UML Z Editor zwischen zwei Typen von Elementen unterschieden e Elemente die ber die Outline angelegt werden e Elemente die auf de
137. VERSIT T PADERBORN Abschlussbericht minin Auf der folgenden Seite wird das Ecore Modell ausgew hlt welches zu diesem Zweck in das neue Projekt kopiert wurde Nach einem Klick auf Next wird nun zun chst im unteren Bereich des Dialogs Ecore als referenziertes Generator Modell ausgew hlt und anschlie end oben umlz als Root Packa ge Nach Abschluss des Assistenten erh lt man ein neues Genmodel Anpassen des Original Genmodels Die Zeilen im so generierten Ecore die sich auf die neu angelegten Operations beziehen m ssen nun an die entsprechenden Stellen des Original Genmodels kopiert werden Hierzu sollte man beide Genmodel Dateien in einem XML bzw Text Editor ffnen Anschlie end sollten noch type Attribute aus dem XSI Namespace gesetzt werden die im generierten Ecore fehlen Also z B xsi type genmodel GenOperation f r Operatio nen oder xsi type genmodel GenParameter f r die Parameter Generieren des Modells Nachdem das Original Genmodel modifiziert wurde kann wie blich das UML Z Modell ber das Kontextmen des UML Z Elementes in der zweiten Baumhierarchieebene im Gen model mit Generate All neu generiert werden Abbildung 7 7 Korrigieren von Fehlern im Modell Durch das Hinzuf gen von zus tzlichen Methoden im Modell kann es zu doppelten Metho den kommen Das Modell enth lt z B bereits teilweise die blichen Java Setter Methoden Diese k nnen aber mit OCL nicht aufgerufen werden weil sie nic
138. Varable lt gt gt hokds datatype VariableToElementMap add item Variable lt gt void addAll map Variable ToEle mentMap void contains var Variabe lt gt bookan getByName name String Variable lt gt iterator Iterator lt Variable lt gt gt remove item Variable lt gt void size int create Variable ToElementMap Abbildung 6 39 Klassendiagramm Variablenmanagement in Refactorings RefaSo amp ModelCockpit 6 Architekturdokumentation 187 Die Universit t der Informationsgesellschaft WS dl UNIVERSITAT PADERBORN Abschlussbericht Decision lt String String gt Decision lt Collection lt gt Collection lt gt gt Decision lt Collection lt gt String gt parsed parsed parsed StringInputDecision ListQueryDecision PredicateSplittingDecision getType Strin StringInputPage createControl parent Composite void create StringInputPage refElem RefactoringElement decision StringInputDecision updateData void ListQueryDecisionPage createControl parent Composite void create ListQueryDecisionPage refElem RefactoringEkement decision ListQueryDecision updateData void PredicateSplittingDecisionPage createControl parent Composite void create PredicateSplittingDecisionPage refElem RefactoringElement decision PredicateSplittingDecision updateData void V V RefactoringD
139. Yiewpoint Goal Implementierbarkeit bestimmen Feature Add Role Architekt Role Entwickler Abbildung 5 55 Zuordnung Ziele zu Rollen Resource RMC Tutorial RMC_MQP_Tutorial mqp RMC Eile Edit Navigate Project MOP Editor Window Help eg re ee SG Ca RMELMOP_Tutorialmap 3 a 2 Information Need Model Pa y Question General information about this model quality plan aa E Goal Implementierbarkeit bestimmen add QuestionGroup Question Wird Mehrfachvererbung eingesetzt El Goal Semantische Vollst ndigkeit delete Question Group y Question Sind alle Operationen vollst ndig spezifiziert E gt Goal Design Qualit t bestimmen gt Question Wird Vererbung richtig eingesetzt delete Question 4 Question Gibt es Klassen mit zu vielen Methoden Question Gibt es Klassen mit zu kurzem Namen add Question add Goal Artefacts Enter a list of artefacts For this model quality plan The first artefact in this list must be your main artefact the artefact you want to analyze ID Name Source Version Status Author T ei 1 0 Fertig Max Mustermann model 1 Context Model 2 Information Need Model 3 Quality Model 4 Measurement Model 5 Presentation Model Selection Parent List Tree Table Tree with Columns Jee Selected Nothing Abbildung 5 56 Informationsbed rfnismodell RefaSo amp ModelCockpit 5 Tutorial 127 dl U
140. Z Editor Komponente und der Diagnostics Komponente aufgerufen Dabei werden jeweils zu einer Menge von Modellelementen Refactorings gesucht Theoretische Ausarbeitungen zu Refactorings auf objekteorientierten Spezifikationsforma Damen unterst tzt von einer verhaltensbeschreibenden Prozessalgebra sind RW07 zu ent nehmen Wie in Kapitel 2 beschrieben entsprechen im Fall der Spezifikationssprache UM L Z Klassendiagramme unterst tzt von Z Annotationen objekteorientierten Spezifikations formalismen Zustandsdiagramme bernehmen die Rolle von Prozessalgebren In Abschnitt 6 3 5 1 beschriebene Strukturen stimmen im Wesentlichen mit in RW07 definierten Be standteilen eines Refactorings berein Abschnitt 6 3 5 2 geht auf interne Abl ufe der Re factoring Komponente ein 6 3 5 1 Struktur Zentrale Elemente des Klassendiagramms aus Abbildung 6 35 sind RefactoringType und AbstractRefactoring RefactoringType Objekte stellen einen Refactoringtyp dar der unabh ngig von konkreten Modellelementen spezifiziert ist Dieser enth lt sowohl die Be dingung ApplicabilityCondition bei der ein RefactoringType abh ngig von einer Eingabemenge von Modellelementen ausf hrbar ist als auch Decisions Refactoringtypen werden beim Einlesen einer Konfigurationsdatei Parser erzeugt RefactoringElement Objekte nach au en durch das IRefactoringElement repr sentiert stellen ausf hrbare Strukturen auf bestimmte Modellelementmengen dar Beim Ansto en ei
141. aSo amp ModelCockpit Die Universit t der Informationsgesellschaft de UNIVERSITAT PADERBORN Abschlussbericht miaz OCLDEFINITION context Class def PUBON Integer self getAllOperations select a la visibility VisibilityKind public gt size CO Ge OCLDEFINITION context Class def CHIN Integer children size Commas SiS ehren A0 BEAT Number of all derived classes either directly or indirectly OCLDEFINITION context Class def DESN Integer descendants gt size oam le GL bo RefaSo amp ModelCockpit B OCL Messungen 279 Die Universit t der Informationsgesellschaft WS D UNIVERSIT T PADERBORN Abschlussbericht INFORMALDEFINITION Number of classes from which the current class derives di rectly OCLDEFINITION context Class def PARN Integer parents gt size CO AI BEATE INFORMALDEFINITION Number of classes from which the current class derives di rectly or indirectly OCLDEFINITION context Class def ASCN Integer ascendants size TT A ERC OCLDEFINITION context Class def CNL Integer self name size CI 280 B OCL Messungen RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft Retasol dl UNIVERSITAT PADERBORN Abschlussbericht miaz B 3 2 Unit of measure is Model OCLDEFINITION context Model def UnAssocN Integer Association alllnstances gt itera
142. able under any particular circumstance the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices Many people have made generous contri butions to the wide range of software distributed through that system in reliance on consistent application of that system it is up to the author donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License If the distribution and or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces the original copyright holder who places the C Lizenz RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft Ai UNIVERSIT T PADERBORN Abschlussbericht minin Program under this License may add an explicit geographical distribution limitation excluding those countries so that distribution is permitted only in or among countries not thus excluded In such case this License incorporates the limitation as if written
143. actoringCondition true liefert 6 3 6 OCLWrapper Um OCL Anfragen sowie Anderungsanweisungen an UML Z Modelle zu erm glichen wur de die OCL Bibliothek von eclipse org eingebunden Die Komponente wird nicht nur zur 5http www eclipse org modeling mdt project 0cl RefaSo amp ModelCockpit 6 Architekturdokumentation 189 d i UNIVERSIT T PADERBORN Die Universit t der Informationsgesellschaft Abschlussbericht sc sd getRefactoringsFor self selection Collection RefactorngsFor selection type RefactoringType i refactoringElemests refactoringElements TreeSet H Lan MEC gt 1 2 validSelection size ing Types nul 1 3 getWrapper selection 1 4 add type getWrapper selecti lionException e 1 5 add type 1 6 getDisabledWrapper type 1 7 add type getDisabledWrapper J _ lt anonymous gt RefactoringElement lement selection this a 190 Abbildung 6 42 Sequenzdiagramm 6 Architekturdokumentation Finden von Refactorings zu Modellelementen RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft de UNIVERSITAT PADERBORN Abschlussbericht ld sd doRefactoring ser refactoring EnforcedRefactoring vi VariableAssignment h lVariableHoker v2 Varlable lt static gt Variable m lVariableManager r Abstra
144. aften des Attributes email 106 5 25 Tutorial Eigenschaften der Klasse Student 106 5 26 Tutorial Eigenschaften des Attributes Matrikelnummer 107 5 27 Tutorial Eigenschaften des Attributes Studiengang 108 5 28 Tutorial Eigenschaften der Methode lernen 2 2 2 2 22 nennen 108 5 29 Tutorial Eigenschaften der Klasse Professor 22 222222 109 5 30 Tutorial Eigenschaften des Attributes semesterWochenStunden 110 5 31 Tutorial Eigenschaften des Attributes gehalteneVortrige 110 5 32 Tutorial Eigenschaften der Methode forschen 111 5 33 Tutorial Eigenschaften der Methode vortragHalten 112 5 34 Tutorial Eigenschaften der Methode mitarbeiterMotivieren 112 5 35 Tutorial Eigenschaften der Methode pr ft 2 2 2 222er 113 5 36 Tutorial Eigenschaften der Methode publiziertDokument 114 5 37 Tutorial Eigenschaften der Methode h ltZentral bung 114 5 38 Tutorial Eigenschaften der Methode h lt bung 2 222 22 2 115 5 39 Tutorial Eigenschaften der Klasse Vorlesung 115 5 40 Tutorial Eigenschaften des Attributes Zeit 116 12 RefaSo amp ModelCockpit A Aer acte es Abschlussbericht mal 5 41 Tutorial Eigenschaften des Attributes Fachgebiet 116 5 42 Tutorial Eigenschaften des Attributes Name 200 4 117 5 43 Tutorial Eigenschaften des Attributes Raum 00 4 118 5 44 Tutorial Generalisierun
145. alisierung und genau einen zugewiesenen Indikator RefaSo amp ModelCockpit 4 Benutzerdokumentation 77 Die Universit t der Informationsgesellschaft WS dl UNIVERSITAT PADERBORN Abschlussbericht lt symptom name normalization gt lt indicator name gt lt symptom gt Listing 4 2 Diagnoseknoten lt symptom gt Hinweis Der Name des Indikators wird zur Identifikation der Indika toren verwendet welche durch die Modelqualit tsplankomponente ber geben werden Es ist also darauf zu achten dass die Namen gleich sind e lt diagnostics gt Umfasst alle der Diagnosekomponente bekannten Diagnosen Die Na men der Symptome werden als Schl ssel verwendet und sind den Diagnosen als Re ferenzen lt reference name gt zugewiesen Jede Diagnose besteht zus tzlich zur Referenz aus einem Namen und aus einer Beschreibung Der Name wird wiederum als Schl ssel f r im Folgenden definierte Therapien verwendet Die Beschreibung wird dem Benutzer bei Selektion einer Diagnose als Beschreibung der Diagnose angezeigt lt diagnosis name description gt gt lt reference name gt lt diagnosis gt Listing 4 3 Diagnoseknoten lt diagnosis gt e lt therapies gt Es werden zwei Arten von Therapien von RMC unterst tzt zum einen die Texttherapie und zum anderen Refactoringtherapien Je nachdem um welche Therapie es sich handelt wird der Typ einer
146. allClasses gt iterate elem Class acc Integer 0 acc elem PARN CO 292 B OCL Messungen RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft Refaso Modelcockpi D UNIVERSIT T PADERBORN Abschlussbericht E Mo INFORMALDEFINITION The Attribute Inheritance Factor is defined as a quotient between the sum of inherited attributes in all classes of the system under consideration and the total number of availa ble attributes locally defined plus inherited for all classes OCLDEFINITION context Model def MAIF Real self TIAN self TAAN inv self TAAN gt 0 UsINGAUXILARYFUNCTIONS en e Total Inherited Attributes Number a IAN Total Available Attributes Number TAAN INFORMALDEFINITION The Operations Inheritance Factor is defined as a quotient between the sum of inherited operations in all classes of the system under consideration and the total number of availa ble operations locally defined plus inherited for all classes OCLDEFINITION context Model def MOIF Real self TION self TAON inv self TAON gt 0 USINGMEASURES Total Inherited Operations Number TION Total Availa ble Operations Number TAON RefaSo amp ModelCockpit B OCL Messungen 293 Die Universit t der Informationsgesellschaft WS Ai UNIVERSIT T PADERBORN Abschlussbericht See INFORMALDEFINITION Quotient between the actual number of possible different po lymorphic sit
147. alog dar Mit Next geht es weiter Abbildung 4 4 zeigt den Dialog f r den Diagrammnamen und das Projekt in welchem das neue Diagramm gespeichert werden soll Der Editor speichert die Inhalte des Modells in einem zweiten Modell getrennt von den grafischen Inhalten Im folgenden Schritt wird dieses Modell f r das erstellte Diagramm angelegt wie in Abbildung 4 5 veranschaulicht Mit Finish startet die Erzeugung der Dateien f r das Modell und das Diagramm Es ffnet sich der Editor mit dem gerade angelegten Diagramm Diagramm auf einem bestehenden Modell erzeugen Wenn ein UML Z Modell bereits vorhanden ist k nnen auf diesem auch Diagramme er zeugt werden Abbildung 4 6 zeigt wie im Project Explorer durch einen Klick mit der rechten Maustaste das Kontextmen ge ffnet wurde RefaSo amp ModelCockpit 4 Benutzerdokumentation 37 dl UNIVERSITAT PADERBORN Die Universit t der Informationsgesellschaft Abschlussbericht ae Mi New Jol x Select a wizard lt gt Creates UMLZ Classdiagram Wizards type filter text E gt General File i C3 Folder f i Project Untitled Text File 2 Example EMF Model Creation Wizards EE RMC e Model Quality Plan MEUMLZ Classdiagram UMLZ Model VI umLz Statediagram lt Back Finish Cancel Abbildung 4 3 Projekt Wizard Diagrammtyp ausw hlen MM New UMLZ Classdiagram lel ES Create UMLZ Classdiagram X Select file that will contain diagram
148. alysiert und in geeigneter Form zur Verf gung gestellt MQPs k nnen in der Komponente ModelQualityPlan bearbeitet und auf UML Z Model len ausgef hrt werden Nach einer Messung k nnen deren Ergebnisse an die Diagnostics Komponente geleitet werden um diese zu analysieren und m gliche Verbesserungsvor schl ge anzubringen Dabei k nnen Verbesserungsvorschl ge auch Refactorings sein die mit der Komponente Refactoring nicht nur ausgef hrt sondern auch definiert werden k nnen Eine zentrale f r den Endanwender jedoch kaum erkennbare Rolle spielt in RMC die Kom ponente OCLWrapper Damit lassen sich OCL Anfragen auf UML Z Modellelementen ausf hren so dass Definitionen nicht nur von Messungen sondern auch von Refactorings ber diese Komponente erm glicht werden 143 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Der Abbildung 6 1 ist eine bersicht zum grundlegenden Aufbau von RMC zu entneh men Das gew hlte Design gew hrleistet einen flexiblen Gebrauch und Austausch einzelner Komponenten component m E IZParser component a O CZTWrapper A WJ component a UML Z Model 2 component UML Z Editor a TRefactoringEditor component a component a component a component OCLWrapper ModelQualityPlan Diagnostics O Refactoring
149. am Zoom d defauk umiz_state_diagram State Machine E Note S aces E E Lo default3 umlz DI wt mp war gt PG umlz_class_diagram Sn E RMC_MQP_Tutorial Final State BB Rc MOP Ka e State 1 e Initial 5 Shallow History 41 Deep History Fork 3 Join A Junction Choice x Terminate Entry Point ER S gt Exit Point E Outline 53 gl B State2 E ler ae Transition lt Transition gt Operation getGender Abbildung 4 16 Zuordnung von Operationen auf Transitionen im Zustandsdiagrammeditor des Klasseneditors zeigt dieses Fenster In diesem kann der Anwender die Eigenschaften des Elementes betrachten und bearbeiten Es gibt drei unterschiedliche Typen von Einga befeldern e eine Texteingabe e eine Auswahl ber ein Dropdownmen e einen Button der einen externen Editor startet Transitionen Operationen zuweisen Um einer Transition eine Operation zuzuorden w hlt der Anwender die entsprechende Transition auf dem Canvas aus In den Properties wird der Extra Tab gew hlt Dieses ist in Abbildung 4 16 dargestellt Zugeordnet werden k nnen die entsprechenden Methoden der Klasse in der die Statema chine enthalten ist und die Methoden der Superklassen dieser Klasse Transitionen von Initial States k nnen keine Operationen zugeordnet werden RefaSo amp ModelCockpit 4 Benutzerdokumentation 57 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesel
150. amit wird die syntaktische Korrektheit der Angaben in Zeichenfolgen berpr ft Au erdem k nnen auf diese Weise Teile des ana lysierten Ausdrucks der anschlie end als Abstract Syntax Trees AST vorliegt unter Referenzierung von Modellelementen ersetzt werden so dass bei Eigenschafts nderungen der Modellelemente diese auch im Z Ausdruck ber cksichtigt werden Syntaktisch korrekte Z Ausdr cke werden als Instanzen von ITermWrapper referenziert Dabei stellen IPredWrapper Pr dikate von Operationen einer UML Z Klasse dar Sowohl enable als auch effect Pr dikate k nnen auf diese Weise angegeben werden IExprWrap per beziehen sich auf Z Ausdr cke die Mengen und Beziehungen zwischen diesen veran schaulichen und werden verwendet um beispielsweise neue Typen zu definieren WD96 MU05 Uber die Schnittstelle ICZTUtil werden sowohl IPredWrapper als auch IExprWrapper er zeugt 150 6 Architekturdokumentation RefaSo amp ModelCockpit d i UNIVERSIT T PADERBORN S EAR Die Universit t der Informationsgesellschaft Abschlussbericht nr 1 ll interface IMQP setModelDefectList indicators Collection lt IMQPIndicator gt resource Resource vola use Y interface IMQPIndicator getAcronym String getMeasureValues Map lt NamedElement Object gt getName String Scale IMQPScale pes V interface IMQPScale getName String Abbildung 6 5 Klassendiagramm IM
151. any medium provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty keep intact all the notices that refer to this License and to the absence of any warranty and give any other recipients of the Program a copy of this License along with the Program You may charge a fee for the physical act of transferring a copy and you may at your option offer warranty protection in exchange for a fee You may modify your copy or copies of the Program or any portion of it thus forming a work based on the Program and copy and distribute such modifications or work under the terms of Section 1 above provided that you also meet all of these conditions a You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change b You must cause any work that you distribute or publish that in whole or in part contains or is derived from the Program or any part thereof to be licensed as a whole at no charge to all third parties under the terms of this License c If the modified program normally reads commands interactively when run you must cause it when started running for such interactive use in the most ordinary way to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty or else saying that you provide a C Lizenz RefaSo amp ModelCockpit Die Universit t der In
152. aph aus Qualit tsattributen QA und Qualit tscharakteristi ken QC aufgebaut werden kann und einem Fragenbereich Im Fragenbereich Question werden nur die Ziele Fragegruppen und Fragen dem Benut zer zur Unterst tzung angezeigt Im oberen Bereich steht dem Benutzer ein Canvas zur Verf gung Rechts von der Canvas befindet sich eine Palette siehe Abbildung 4 31 mit Ele menten die auf dem Canvas angezeigt werden k nnen Zur Verf gung stehen Qualit tsat tribute QA Qualit tscharakteristiken QC und Verbindungen Connections In die Elemente kann direkt der Name geschrieben werden Aus den beiden Elementen l sst sich ein Graph aufbauen Daf r gibt es das Verbindungsobjekt Verbindungen kann der Benutzer zwischen Qualit tscharakteristiken untereinander und zwischen Qualit tscharak teristiken und Qualit tsattributen ziehen Hinweis Hier Reihenfolge beachten Es ist nur m glich eine Verbindung von QC zu QA zu ziehen nicht umgekehrt QA und QC haben neben dem Namen noch weitere Eigenschaften Zum Beispiel sollte der Benutzer dem QA Fragen und dem QC Ziele zuordnen Dies kann ber das Property Fenster geschehen Dort werden alle Eigenschaften der QA und QC angezeigt und k nnen editiert werden QC haben folgende Eigenschaften e Definition e Goal e Model Quality 68 4 Benutzerdokumentation RefaSo amp ModelCockpit D UNIVERSIT T PADERBORN Die Universit t der Informationsgesellschaft Abschlussbericht l
153. as Messergebnis in der Klasse MeasurementResults wird am Ende durch die Klasse MeasurementResultsWriter serialisiert als XML Datei gespeichert 6 3 4 Diagnostics Im folgenden Abschnitt wird auf die Architektur der Diagnostics Komponente eingegan gen Hierbei handelt es sich um eine Komponente von RMC die eine Menge von Indikatoren entsprechend der Definition aus Abschnitt 6 3 3 analysiert Nach einer vorgegebenen Kon figuration ermittelt die Diagnose also Verbesserungsvorschl ge im Hinblick auf gegebene Modellm ngel Die Diagnose stellt dabei eine Verbindung der ModelQualityPlan Komponente Ab schnitt 6 3 3 und der Refactoring Komponente Abschnitt 6 3 5 dar Dabei erh lt die Diagnose aus der ModelQualityPlan Komponente Messergebnisse als Indikatoren und wertet diese dann in Form von Diagnosen und Therapien aus Mit den gefundenen The rapien Therapiekandidaten kann der Anwender wenn es sich um eine Texttherapie handelt einer angezeigten Anleitung zur Modellverbesserung folgen Eine weitere Option ist eine Modellverbesserung mit Hilfe der Refactoringkomponente durchzuf hren Im Folgenden wird nun auf die Struktur der Diagnose wie auch auf ausgew hlte Verhal tensabl ufe n her eingegangen 6 3 4 1 Struktur Abbildung 6 28 zeigt die wichtigsten Klassen der Diagnostics Komponente Mit Hilfe der Klassen ConfigurationParser und ConfigurationFile werden alle f r die Diagnose ben tigten Informationen aus der XML Konfigurationsdatei
154. aseMeasures und DerivedMeasures 170 6 Architekturdokumentation RefaSo amp ModelCockpit d i UNIVERSIT T PADERBORN Die Universit t der Informationsgesellschaft interface IModel CalculateIndicators calculateIndicators Indicator calculateIndicator Indicator setNullResult void x Abschlussbericht interface IMQPInternalModel interface IOCLInterface Measurement create KH Measurement doMeasurement MeasurementResults getMeasurementResults MeasurementResults xx RefaSo ModelCockpit MeasurementResultsWriter write void read MeasurementResults Objective BaseMeasure de create gt Measure ObjectiveBaseMeasure MeasurementResults o create create ObjectiveBaseMeasure Measure create create Measure P MeasurementResults L getResult HashMap lt String Scale Type gt DerivedMeasure getResultNa medElement HashMap lt NamedElement ScaleType gt addResult void de create DerivedMeasure JEP create CalculateParser DerivedMeasure create Vv CalculateParser IMQPindicator calculate Object Indicator parseExpAndGetValue Double setMeasureValue void create Indicator create Indicator getMeasureValues Map lt NamedElement Object gt getName String
155. asse UMLZInitDiagramFileAction dar mit der Diagramme ber den Project Explorer auf Modelldateien erzeugt werden Outline Folgende Elemente des UML Z Modells sind nicht direkt auf dem Canvas sichtbar RefaSo amp ModelCockpit 7 Entwicklerdokumentation 215 Die Universit t der Informationsgesellschaft WS D UNIVERSIT T PADERBORN Abschlussbericht e Type Declaration e 7Z Expression Specification e ZPredicate Specification Folglich wird eine M glichkeit ben tigt solche Elemente anlegen und bearbeiten zu k nnen Dies wurde durch einen zus tzlichen Baumeditor analog zu dem in EMF enthaltenen rea lisiert Zu finden ist dieser Editor in der Outline des UML Z Editors Die Umsetzung des Baumes und die darauf realisierten Funktionen erl utert dieser Abschnitt Informationen ber die daraus resultierenden notwendigen weiteren nderungen liefern die beiden folgen den Abschnitte Die Umsetzung f r den Baumeditor findet sich in der Klasse UMLZDiagramEditor im Paket de upb pg rmc umlz diagram classeditor part siehe Diagramm 6 16 der Architektur dokumentation Zu erw hnen sind folgende Bereiche EMF Tree Der dargestellte Baum des Modelles ist eine Implementierung analog zu dem Treeeditors des UML Z Modells Die Elemente k nnen mit der Maus verschoben wer den Besonderheit dieses Baumes ist das selektive Wurzelelement Bei der Initialisie rung der Outline wird ein Listener auf das grafische Modell gesetzt und Selektio nen von E
156. assifier Representation Template Parameter Use Case Visibilty Abbildung 5 17 Tutorial Eigenschaften des Datentyps N RefaSo amp ModelCockpit 5 Tutorial 101 dl UNIVERSITAT PADERBORN Die Universit t der Informationsgesellschaft Resource RMC Tutorial default umlz_class_diagram RMC Ele Edit Navigate Project Window Help Abschlussbericht RefaSo ModelCoci Beles Its ES ES Resource ves e asis zi Ge _ ES SE Pri Value fe mtm Client Dependency DN Is Abstract E false Is Leaf a False BE Name E Studiengang Powertype Extent Redefined Classifier Representation Template Parameter Use Case Visibility public Abbildung 5 18 Resource RMC Tutorial default umlz_class_diagram RMC Ele Edit Navigate Project Window Help ta a A e Tutorial Eigenschaften des Datentyps Studiengang B ES Resource Client Dependency Is Abstract Is Leaf Name Powertype Extent Redefined Classifier Representation Template Parameter Use Case Visibility ves DA false a False Text x M public Abbildung 5 19 102 Tutorial Eigenschaften des Datentyps Text x N 5 Tutorial RefaSo amp ModelCockpit de UNIVERSITAT PADERBORN Abschlussbericht Si kuchen Die Universit t der Informationsgesellschaft __Refaso Modelcockpit E Resource RMC Tutorial default umlz_class_diagram RMC Me E File
157. asure Links EH Indicator Links v Execute measures General information about the execution of measures UML Z Model E Properties 23 E Presentationmodel properties Z Predicate Pre Post Condition ZPPPCQ E a Core Z Acronym ZPRPC Informal Definition Boolean value for each Operation True if Z specification set for precondition and postcondition else false Name Z Predicate Pre Post Condition OCL Expression context Model def ZPPPC Set Boolean Operation allinstances zprc gt asSet Unit OF Measurement Model EN Selected Object Z Predicate Pre Post Condition ZPPPC Abbildung 5 62 Messmodell Select UML Z model file Select the UML 2 model file you want to run the measurement on ER Abbildung 5 63 Auswahl des Modells 132 5 Tutorial RefaSo amp ModelCockpit N UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft __Refaso Modelcoc Resource RMC Tutorial RMC_MQP_Tutorial mqp RMC Bme Ele Edit Navigate Project MQP Editor Window Help Jei Ja acte E l Resource i m f 5 Presentation Model d NBodyForce GravitationalCons Distance m 1 0 e Gibt es Kassen mit zu vielen Methoden Sind alle Operationen vollst ndig spezifiziert BarnesHutTheta 0 899 Wird Vererbung richtig eingesetzt Dra
158. ation d E Professor B vorlesung attributes attributes zeit Time fachgebiet Fachgebiet m name Text mamm Text x N operations halteneVortr ge N operations forschen vortragHalten mitarbeiterMotivieren pr ft student Student publiziertDokument h ltZentral bung h lt bung nimmt teil semesterWochenStunden N Person attributes name Text vorname Text operations attributes matrikelnummer N studiengang Studiengang operations lernen vorlesung Vorlesung Dat Abbildung 5 47 Tutorial Assoziation nimmt teil 120 5 Tutorial Required Interface NAry Dependency Target Mar Dependency Source 2 Constrained Element 5 Association End _ amp Realization RefaSo amp ModelCockpit D UNIVERSIT T PADERBORN Abschlussbericht PRI man Die Universit t der Informationsgesellschaft __Refaso Modelcockpit E New Project olx Project Create a new project resource Ka Project name RMC Tutorial IV Use default location Abbildung 5 48 Neues allgemeines Projekt anlegen e Einen neuen Modellqualit tsplan anlegen Ein neues Kontextmodell erstellen Ein neues Informationsbed rfnismodell erstellen e Ein neues Qualit tsmodell erstellen e Ein neues Messmodell erstellen e Das Pr sentationsmodell verwenden
159. ation RefaSo amp ModelCockpit D UNIVERSIT T PADERBORN Die Universit t der Informationsgesellschaft Abschlussbericht E SES ModelCockpit Ss mu ldata rdata lblot rblot vdash land lor implies iff lnot forall exists in spot Q hide project semi pipe IF THEN ELSE LET pre function generic relation leftassoc rightassoc listarg varg power cross arithmos nat alpha beta gamma delta RefaSo amp ModelCockpit 03B8 03BC 27EA 27EB 2989 298A 22A2 2227 2228 21D2 21D4 00AC 2200 2203 2208 2981 2981 29F9 2A21 2A1F 2A20 Ip THEN ELSE LET pre function generic relation leftassoc rightassoc 1 9 wm 2119 00D7 0001D538 2115 03B1 03B2 03B3 03B4 t Y lt gt Tee Ge e e UI lt y Mm function generic relation leftassoc rightassoc SRDS Z PX Binding expression Definite description Freetype left bracket Freetype right bracket Binding left bracket Binding right bracket Conjecture Conjunction Disjunction Implication Equivalence Negation Universal quantifier Existential quantifier Set membership Expression separator Expression separator Schema hiding Schema projection Schema composition Schema piping Conditional Let expression Schema precondition Functional operators Generic operators Relational operators Left
160. ationsgesellschaft WS INFORMALDEFINITION Number of operations defined in the class that are not over riding inherited ones OCLDEFINITION context Class def NON Integer new perations size comme N ADT eA INFORMALDEFINITION Number of operations defined in the class that are not over riding inherited ones OCLDEFINITION context Class def NON Integer newOperations gt size om POSS GE 276 B OCL Messungen RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft de UNIVERSITAT PADERBORN Abschlussbericht miaz OCLDEFINITION context Class def PROAN Integer self getAllAttributes gt select a a visibility VisibilityKind protected gt size CO 3 OCLDEFINITION context Class def PUBAN Integer self getAllAttributes gt select a a visibility VisibilityKind public size Ke Ges RefaSo amp ModelCockpit B OCL Messungen 277 Die Universit t der Informationsgesellschaft WS Ai UNIVERSIT T PADERBORN Abschlussbericht See OCLDEFINITION context Class def PRION Integer self getAllOperations select a a visibility VisibilityKind private gt size CI le GE OCLDEFINITION context Class def PROON Integer self getAllOperations select a a visibility VisibilityKind protected gt size commas oOo SoS Ges 278 B OCL Messungen Ref
161. automatische Code Generierung erzeugt die folgenden Pakete e de upb pg rmc umlz e de upb pg rmc umlz edit e de upb pg rmc umlz editor e de upb pg rmc umlz tests RefaSo amp ModelCockpit 7 Entwicklerdokumentation 203 Die Universit t der Informationsgesellschaft WS D UNIVERSIT T PADERBORN Abschlussbericht 7 2 1 2 Durchgef hrte Erweiterungen Das UML Z Modell basiert wie in vorhergehenden Kapiteln bereits erw hnt auf der UML2 Implementierung der Eclipse Foundation Aufgrund der Komplexit t der UML2 um fasst die UML2 Implementierung bereits einige manuelle Anpassungen gegen ber dem ge nerierten Modell Code Auf diese nderungen soll im Folgenden nicht eingegangen werden weil sie bereits so aus der Eclipse UML2 Implementierung bernommen worden sind Hinweis Beim Generieren des Modells sollte man sich aber dar ber im klaren sein dass das Generieren auf Basis des bestehenden Codes gesche hen muss Einem Modell welches komplett neu ausschlie lich aus Ecore und Genmodel erstellt wird fehlen etliche f r die Grundfunktionalit t des Modells erforderliche manuelle Code Anpassungen Anbindung an den Z Parser Um Z Ausdr cke beim Einlesen einer Modelldatei parsen zu k nnen m ssen komplette Strukturen des Modells unter bestimmten Umst nden bereits feststehen also bereits ein gelesen worden sein und als Objekte vorliegen Begr ndet ist dies durch die Tatsache dass beim Parsen der Z Ausdr cke in der Komponente
162. beiden Baumelemente des Genmodels aus dem urspr nglichen Genmodel wieder bernommen werden 12Neu generierte Editoren erscheinen im Normalfall unter einem Example Eintrag 13http www eclipse org modeling emf docs RefaSo amp ModelCockpit 7 Entwicklerdokumentation 223 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft 2 Das bestehende Genmodel ndern Dies ist im Allgemeinen einfacher Zun chst generiert man ebenfalls ein neues Genmodel in ein separates Projekt und f gt dann mit Hilfe eines Diff Tools die nderungen in das Original Genmodel ein ohne dabei die Code Generierungseigenschaften im oberen Bereich der Datei zu bernehmen Das unter Punkt 2 beschriebene Vorgehen hnelt dem in Kapitel 7 2 1 3 f r UML Z be schriebenen 7 2 3 2 GUI des Editors RMC wurde als Ecplise Plugin entwickelt Daher wurde die GUI des MQP Editor mit Hilfe des SWT Frameworks entwickelt F r einige Elemente wurde zus tzlich das Framework JFace und Eclipse Forms verwendet In diesem Kapitel wird der genaue Aufbau der grafischen Oberfl chen des MQP Editors erkl rt und wie man die Oberfl che erweitern kann Der Quellcode daf r befindet sich im Paket de upb pg rmc mqp ui im Ordner src de upb pg rmc mqp ui Aufbau der GUI Ein MQP besteht aus f nf Modellen Daher wurden im MQP Editor f nf Reiter eingef hrt Jeder Reiter repr sentiert ein Modell F r jeden Reiter gibt es eine ModelEditorPart K
163. bericht EE Die Universit t der Informationsgesellschaft RefaSo ModelCoc 146 6 Architekturdokumentation RefaSo amp ModelCockpit Ai UNIVERSIT T PADERBORN Abschlussbericht minin Die Universit t der Informationsgesellschaft 6 2 Schnittstellen 6 2 1 IModel Die Schnittstelle des UML Z Modells wird von allen Komponenten genutzt Sie stellt Schnittstellen f r s mtliche Klassen des UML Z Metamodells bereit Die Schnittstelle bil det hierbei die Struktur Vererbungshierarchie des Modells ab Diese entspricht den Struk turen der OMG UML2 Aufgrund ihres Umfangs sollen diese hier nicht erneut dokumentiert werden Die Erg nzungen die den Unterschied zwischen UML2 und UML Z ausmachen sind im Kapitel 6 3 1 beschrieben UML Z Editor Der UML Z Editor welcher durch Generierung mit dem Eclipse Graphi cal Modeling Framework GMF entstanden ist baut direkt auf die Nutzung von EMF als Modellschicht auf Dieser Zusammenhang der Komponenten ist in Abbil dung 6 15 dargestellt Die Kommunikation mit dem Modell geschieht sowohl direkt zwischen Editor und Modell als auch ber die GMF Runtime Weitere Informationen bietet die Modelldokumentation Kapitel 6 3 1 und die GMF Hilfe GMF ModelQualityPlan Der MQP greift bei der Messung auf das Modell zu W hrend die Messung an sich ber den OCLWrapper abl uft werden die von diesem zur ckge gebenen Messergebnisse einzelnen Modellelementen zugeordnet Refactoring In der Refactoring
164. bliotheken f r Benutzeroberfl chen SWT Eclipse Forms und JFace Lediglich f r die Pr sentation der Ergebnisse wurde eine Swing Komponente verwendet da daf r keine geeignete SWT Komponente verf gbar war Details dazu stehen in der Entwicklerdokumentation auf Seite 197 Die Formulare sind aufgeteilt auf die Pakete mqp ui mqp ui viewmodel und mqp ui commands Diese Unter teilung folgt aus der Verwendung des Model View ViewModel Patterns welches in der Entwicklerdokumentation auf Seite 197 n her beschrieben wird Das Paket mqp edit enth lt Hilfsklassen LabelProvider und ItemProvider f r die Dar stellung von Objekten aus dem MQP Metamodell z B in Tabellen und Baumeditoren Im Qualit tsmodell wurde zus tzlich ein mit GMF erstellter Diagrammeditor in den Editor integriert dieser befindet sich im Paket mqp diagram quality Daf r waren umfangreiche nderungen am Editor erforderlich die in der Entwicklerdokumentation auf Seite 197 be schrieben werden 168 6 Architekturdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft Ai UNIVERSIT T PADERBORN Abschlussbericht pate Das Komponentendiagramm in Abbildung 6 25 zeigt den Zusammenhang zwischen den Paketen der MQP Benutzeroberfl che component mgp_gui El delegate lt component s component Q de upb pg rmc mqp ui de upb pg rmc mqp editor IMQP dele
165. capsulatedClassifier BehavioredClassifier ee a GenModel E J de upb pg rmc diagnostics ee TE de upb pg rmc map 12 de upb pg rmc map confmodel 12 de upb pg rmc mqp diagnosticsinterfac El de upb pg rmc map diagnosticsprovide Te cl de upb pg rmc map diagram quality le de upb pg rmc mgp edit E E de upb pg rmc map editor J de upb pg rmc map measurement 1 de upb pg rmc map tests EHE de upb pg rmc map ui 42 de upb pg rmc refactoring E S de upb pg rmc refactoring commoninte E32 de upb pg rmc refactoring diagnosticsi Io cl de upb pg rmc refactoring editorinterf Iech de upb pg rmc refactoring refactoringe EH de upb pg rmc umlz ES sre ABA JRE System Library JavaSE 1 6 BA Plug in Dependencies 4 EncapsulatedClassifier Di BehavioredClassifier 8 passive_class EDiagnosticChain EMap lt EJavaObject EJavaObject gt EBoolean getExtensions Extension EB createOwnedOperation String String Type Type Operation 7 HE isMetaclass Boolean jew Child E docur Boolean New Sibling addattribute t Undi 8 ween 427 en EE ZB removeOperal of Cut CH W addGeneralfcl SZ removeGener MF setInit ZPredic Mes SZ createZPredic EX nestedClassifi 5 ownedOperati Validate SAA EA eee ee eee E sm E META INF 5 superClass C Control By model F isActive Bool Ea evi 12 ownedRecepti E Show OCL Console DG xst e COREL el UML ecore 1 Problems
166. cc elem NON en OSS Tore New Operations Number NON PO BoA RefaSo amp ModelCockpit B OCL Messungen 289 Die Universit t der Informationsgesellschaft WS Ai UNIVERSIT T PADERBORN Abschlussbericht See OCLDEFINITION context Model def TDON Integer allClasses iterate elem Class acc Integer 0 acc elem DON sn iD EEN Defined Operations Number DON AO PAD OCLDEFINITION context Model def TION Integer allClasses gt iterate elem Class acc Integer 0 acc elem ION en I EEN Inherited Operations Number ION Goar 290 B OCL Messungen RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft de UNIVERSITAT PADERBORN Abschlussbericht miaz OCLDEFINITION context Model def TOON Integer allClasses gt iterate elem Class acc Integer 0 acc elem OON COTO A oC Overridden Operations Number OON PAD BAs RefaSo amp ModelCockpit B OCL Messungen 291 Die Universit t der Informationsgesellschaft WS Ai UNIVERSIT T PADERBORN Abschlussbericht See UNITOFMEASUREMENT Model Total number of available operations in the model OCLDEFINITION Total Available Operations Number context Model def TAON Integer allClasses iterate elem Class acc Integer 0 acc elem AON CO Total number of inheritance relations in the model OCLDEFINITION context Model def TILN Integer
167. ch einer Zusammenfassung unserer Ergebnisse bietet das Fazit einen Aus blick auf m gliche Erweiterungen unserer Software Erg nzend zum Fazit beschreiben wir im Anhang A was in der Projektgruppe gut und was weniger gut gelaufen ist Die Projektgruppe ModelCockpit hatte urspr nglich das Ziel die Qualit t von UML Modellen zu ermitteln und zu interpretieren Dazu sollte zun chst als theoretische Grund lage ein Modell aufgestellt werden mit dem es m glich ist Qualit t zu beschreiben An schlie end sollte dann eine Software entwickelt werden die Qualit tsmodelle erstellen und auf UML Modelle anwenden kann Das Projekt wurde zu Beginn auf der Projektgruppen Webseite folgenderma en beschrieben 245 dl UNIVERSITAT PADERBORN Abschlussbericht m DES Die Universit t der Informationsgesellschaft __Refaso Modelcockpit Modellbasierte Vorgehensmodelle spielen f r die berf hrung der Soft wareentwicklung in ein ingenieurm iges Vorgehen eine herausragende Rolle In Folge dieses Trends stellen Modelle zentrale Entwicklungsar tefakte dar Um Projektrisiken beherrschen zu k nnen muss die Qua lit t dieser Modelle erfasst und interpretiert werden Daf r muss Modell qualit t beschrieben gemessen und adressatengerecht aufbereitet werden Die Projektgruppe Model Cockpit soll hierbei den Modellnutzer mit ei nem Werkzeug unterst tzen Homepage PG ModelCockpit In der Projektgruppe Refaso sollte ein Refactoring Werkzeug
168. cher Namen zu achten 4 2 5 Refactoring In den folgenden beiden Abschnitten wird beschrieben wie Refactorings gestartet und mit Unterst tzung von Benutzereingaben durchgef hrt werden k nnen Au erdem geht der Abschnitt 4 2 5 2 auf Optionen bei der Konfiguration von Refactorings ein 4 2 5 1 Ausf hren von Refactorings Es besteht die M glichkeit Refactorings aus den folgenden Umgebungen zu starten e Klasseneditor e Modelleditor e Diagnose View Dieser Abschnitt geht ausschlie lich auf die ersten beiden Optionen ein Das Starten eines Refactorings aus der Diagnose wird im Abschnitt 4 2 4 1 im Detail beschrieben Das kontextsensitive Refactoring Men befindet sich im Hauptmen Abh ngig von den selektierten Elementen in der Modell bzw Klassendiagrammansicht werden ausf hrbare Refactorings angeboten Refactorings die nicht ausgef hrt werden k nnen weil die An wendbarkeitsbedingung siehe Abschnitt 4 2 5 2 Seite 82 auf selektierten Elementen nicht erf llt ist werden ausgegraut dargestellt Einzelne Refactorings lassen sich konfigurieren Darauf geht der Abschnitt 4 2 5 2 ab Seite 82 im Detail ein Den einzigen Eintrag der fest ins Men integriert ist findet man unterhalb der Trennlinie des Refactoringmen s Abbildung 4 37 Reload Wird eine Konfigurati onsdatei nicht erfolgreich geparst bzw sind keine Refactorings definiert so wird nur der Reload Men eintrag zur Auswahl angeboten Wurden nderungen
169. chkeiten sind vorhanden Bei der ersten sind die Indikato ren der Diagnose noch nicht bekannt Siehe Erweitern der Diagnose Konfigurationsdatei Siehe Abschnitt 4 2 4 2 Bei der zweiten ist der Grenzwert Point of View wie in Abbildung 4 36 so hoch eingestellt dass keine Modelldefekte angezeigt werden 4 3 6 Refactoring Frage Antwort Frage Antwort Frage Antwort 90 Warum stehen im Refactoring Men keine Refactorings Au er einem Eintrag zum erneuten Laden der Konfigurationsdatei ist das Men leer Entweder enth lt die Konfigurationsdatei keine Refactoringtypen oder die Konfigurationsdatei ist defekt Nach einem erneuten Laden der Kon figurationsdatei sollte eine Fehlermeldung erscheinen die ber die fehler hafte Stelle in der Konfigurationsdatei informiert Erscheint sie nicht ist die Datei korrekt formuliert und es sind keine Refactoringtypen definiert Warum sind alle Refactorings im Refactoring Men ausgegraut Sind diese falsch definiert Einzelne Refactorings lassen sich nur ausf hren wenn bestimmte Model lelemente markiert sind Zum Umbenennen einer Klasse verlangt die aus gelieferte Standardkonfiguration dass genau eine Klasse markiert wurde Warum ist der Button Next im Refactoring Wizard ausgegraut Die Auswahl bzw Angabe des Anwenders entspricht nicht der definierten Bedingung aus der Konfigurationsdatei zur Fortf hrung des Refactorings In der Konfigurationsdatei soll
170. chreibt die Zustandsdiagramme Daraus ergeben sich folgende nderungen von UML Z gegen ber der UML OZ Typen In UML Z werden statt UML Typen nur in Z definierte Typen verwendet Dies gew hrleistet dass durch die mathematischen Definitionen der Typen pr zise Sachverhalte darstellbar sind Pre und Postconditions Mittels dieser Conditions lassen sich Einschr nkungen f r das Modell spezifizieren Sie werden mittels Z Notation beschrieben Konstruktoren Es muss genau ein Konstruktor pro Klasse existieren damit die initialen Werte der Attribute festgelegt werden k nnen Klasseninvarianten In UML Z gibt es analog zu UML auch Klasseninvarianten Diese Klasseninvarianten werden mittels OZ Ausdr cken beschrieben UML wird spezifiziert von der Object Management Group OMG Communicating Sequential Processes 25 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Parameter Neben den Parameterarten input und output die auch in UML definiert sind gibt es den Parameter simple Dieser Parameter nimmt die Variablen auf die innerhalb einer Methode genutzt werden und die keine input und output Parameter sind Delta Listen Die Delta Listen geben f r jede Methode an welche Klassenattribute von dieser Methode ge ndert werden Globale Z Definitionen Um Redundanzen in den Z Ausdr cken zu verhindern lassen sich globale Definitionen in Z definieren und nutzen Transitionen Einer Tra
171. ckpi Die Repr sentation der Ergebnisse w re zu un bersichtlich geworden wenn die Ergebnis se in einem Graphen angezeigt w rden F r die Propertiesview gibt es in dem Paket de upb pg rmc mqp ui die Klasse PMProperties Wird ein Knoten eines Messergebnisses ausgew hlt werden dazu die Ergebnisse in der Propertiesview angezeigt Daf r ruft die Propertiesview die passende Methode im Parser auf zum Beispiel wenn eine Basismes sung ausgew hlt wird wird die Methode ReadMeasureresultsBasemeasure aufgerufen welche die Ergebnisse an die Propertiesview zur ckliefert 7 2 3 3 Zugriff auf das Modell In diesem Teilkapitel wird beschrieben wie man Lese oder Schreibzugriff auf das Modell mittels Java erlangen kann Im Quellcode des MQP Editors wird h ufig auf das Modell zugegriffen Diese Zugriffe sind notwendig wenn der MQP Editor zum Beispiel um weitere Modelle oder Elemente erweitert werden soll Lesezugriff auf das Modell M chte man auf die Objekte im Modell zugreifen ben tigt man daf r das Objekt Mo delQualityPlan ber dieses Objekt hat man Zugriff auf alle im Modell gespeicherten Objekte An den ModelQualityPlan gelangt man ber das implementierte Interface IM QPSource welches eine Methode getModelQualityPlan besitzt die ein Objekt Mo delQualityPlan zur ckliefert ber die Methoden e getContextModel e getInformationNeedModel e getQualityModel e getMeasurementModel e getPresentationModel kann man auf die Modelle z
172. ctRefactoring d Refactorng recelver IProgressParent evaluateBeforeTeriplateAndPrecondition J EnforcedRefactoring refactpring this enforcedRefactorings 1 3 success execute this false gt o gt for VariableAssignment Vvarithb varAssignments 1 3 1 doAssignmentg i 1 3 1 1 oldVar ggiVarlable tis varFram 1 3 1 2 newVar getType 1 3 1 3 newVar creats okdVar getTypef khis varTo 1 3 1 4 getValueQ 1 3 1 5 setValue oldvar getvalueQ 1 3 1 6 addvarlable n wvar Tor ContextQuery qu ry this queries gt 9 iquery expcute 1 3 2 doRefactoring recever Abbildung 6 43 Sequenzdiagramm Ausf hren eines Refactorings Definition von Messungen eines MQP sondern auch zur Konfiguration von Refactorings verwendet Es werden Klassen zum Parsen und f r die Auswertung von OCL Ausdr cken zur Verf gung gestellt F r Komponenten die OCL Ausdr cke auf UML Z Modellen ver wenden werden die ben tigten Methoden und Funktionen zur Erzeugung und Auswertung von OCL Ausdr cken sowie Methoden zur Erzeugung von Variablen in der OCL Umgebung OCL bereitgestellt Die Zusammenh nge der OCLWrapper Klassen sind in Abbildung 6 45 veranschaulicht Mit Hilfe der Klasse OCLParser wird zun chst eine Umgebung vom Typ OCLParseEnvi ron
173. cted object UMLZ Abbildung 7 7 Modell Generieren des UML Z Modell Java Codes 7 2 2 Editor 7 2 2 1 Allgemeines Generierung der Editoren Grundlage fiir den Klassendiagrammeditor und den Zustandsdiagrammeditor sind die Mo delle mit denen GMF den Quelltext generiert Die Modelle befinden sich im model Ver zeichnis in den beiden Projekten de upb pg rmc umlz diagram classeditor und de upb pg rmc umlz diagram stateeditor Basis f r diese Modelle stellen die UML2 Tools dar Da diese jedoch auf einem UML Metamodell arbeiten waren Anpassungen an das UML Z Modell notwendig Jedoch sind die verwendeten Grafiken und gro e Teile des zus tzlich notwendigen Quelltextes bernommen F r grundlegende nderungen ist oft ein Editieren der Modelle n tig ebenso bei gr eren nderungen am UML Z Modell Ben tigt werden dazu folgende Modelle und Template Dateien e Klassendiagrammeditor UML ecore UML Z Metamodell 10Wenn im UML Z Modell neue Operationen f r den Zugriff mit OCL erstellt wurden ist ein Generieren nicht notwendig 210 7 Entwicklerdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft Ai UNIVERSIT T PADERBORN Abschlussbericht minin UML genmodel Generierungsmodell f r das UML Z Modell umlz2 gmfgraph die grafischen Elemente des Editors umlz gmftool die Palette des Editors umlz2 gmfmap das Mapping der vorherigen Modelle umlz2 gmfgen resultierendes Modell f r die Generi
174. ctoringType definiert Einzelne Decision Typen sind ge nerisch ausgelegt so dass z B eine ListQueryDecision auf beliebige Elementen ausf hrbar ist Im Folgenden sind die drei Decision Typen n her aufgeschl sselt SplitPredicateDecision Erfragt eine Teilung eines Pr dikats und berpr ft die G ltigkeit der Aufteilung ListQueryDecision Bietet dem Anwender eine Auswahl von Elementen an und definiert erlaubte Selektionen StringInputDecision Erlaubt eine Texteingabe und pr ft diese auf G ltigkeit Variablen welche unter anderem R ckgabewerte von OCL Anfragen enthalten k nnen sind ein wesentlicher Bestandteil der Refactorings Name und Typ einer Variable werden aus einer Konfigurationsdatei eingelesen Die Verwaltung der Variablen bernimmt ein IVa riableHolder bzw ein IVariableManager ber den IVariableHolder lassen sich Varia ble Objekte erfragen ber den IVariableManager k nnen Variable Objekte dem verwal tenden Objekte hinzugef gt werden Jede ContextQueryImpl hat genau einen IVariab leHolder und kann auch eine Referenz auf maximal einen IVariableManager enthalten Wie der Abbildung 6 39 zu entnehmen ist werden die Interfaces IVarialbeHolder und IVariableManager von der Klasse AbstractRefactoring implementiert In der Klasse VariableToElementMap werden Instanzen der Variablen in AbstractRefactorings vorge halten Au er durch eine ContextQueryImpl kann eine Variable auch ber eine Instanz von Varia bleAssignme
175. cute ausgef hrt Dem Konstruktor des Commands muss der MQP bergeben werden damit der Command wei in welchem Mo dell der Autor gespeichert werden soll Zus tzlich werden noch die Personendaten ben tigt F r die Personendaten gibt es eine eigene Klasse PersonData Allgemein befinden sich die Klassen f r die Daten die den Commands im Konstruktor bergeben werden im Packet de upb pg rmc mqp ui viewmodel 7 2 4 Diagnose Da die Diagnose dem Benutzer f r gemessene Modelldefekte Diagnosen und dazu passende Therapien anzeigt ist es evtl notwendig neue Diagnosen und Therapien sowie Normalisie rungen anzulegen Daf r bietet die Diagnosekomponente mehrere M glichkeiten Zum einen kann die Diagnose um neue Normalisierungstypen erweitert werden Zum anderen k nnen innerhalb einer Konfigurationsdatei neue Symptome Diagnosen Therapien und Normali sierungen passend zu neuen Normalisierungstypen angelegt werden Die Erweiterung der Diagnose um neue Symptome Diagnosen und Therapien wird im folgenden Abschnitt Ab schnitt 7 2 4 1 betrachtet Danach befasst sich Abschnitt 7 2 4 2 mit dem Anlegen einer neuen Normalisierung in der Konfigurationsdatei und Abschnitt 7 2 4 3 beschreibt das Er stellen eines v llig neuen Normalisierungstypen Der letzte Abschnitt Abschnitt 7 2 4 4 230 7 Entwicklerdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft D UNIVERSIT T PADERBORN Abschlussbericht gibt einen ku
176. d nimmt teil 7 Realization Abbildung 4 37 Klassendiagrammeditor Refactoringmen Kann eine Konfigurationsdatei nicht eingelesen werden erscheint eine Fehlermeldung die die Fehlerposition in der zugrundeliegenden Datei angibt Abbildung 4 38 Sobald der Fehler behoben ist kann mit Reload die Konfigurationsdatei neu eingelesen werden Wird ein ausf hrbares Refactoring im Men angew hlt erscheint der Refactoringassistent Abbildung 4 39 Die Startseite des Wizards beschreibt die nderungen die das dazu geh rige Refactoring im Modell bewirkt Mit der Bet tigung des Next Buttons von der Startseite des Wizards leitet man das Re factoring ein Bevor nderungen am Modell vom Refactoringablauf vorgenommen werden k nnen m ssen in einigen Refactorings entsprechend der Definition aus der Konfigurati onsdatei Entscheidungen getroffen werden Drei Entscheidungsarten sind definiert e Namensgebung Der Benutzer wird aufgefordert eine Zeichenfolge vorzugeben Ab bildung 4 40 e Es wird eine Auswahl eines oder mehrerer Elemente aus einer Elementenmenge getrof fen Der Anwender selektiert eine Elementenmenge die f r das weitere Vorgehen eines Refactorings ben tigt wird indem die Checkboxen einzelner Zeilen der vorgegebenen Tabelle markiert werden Abbildung 4 41 e Trennung von einem Pr dikat in zwei Teilpr dikate Der Anwender bestimmt zwei Teilpr dikate deren Konjunktion semantisch mit dem vorgegebe
177. d die Operation in der Zeichenfl che angeklickt und in der Properties View fiir das Feld Name forschen eingetragen Ab bildung 5 32 zeigt das Resultat Die Operation vortragHalten wird erstellt Auswahl des Werkzeuges Operation Hinzufiigen durch Klick auf die Klasse Professor und setzen des Namens vortrag Halten Abbildung 5 33 zeigt das Resultat Die Operation mitarbeiterMotivieren wird erstellt Auswahl des Werkzeuges Ope ration Hinzufiigen durch Klick auf die Klasse Professor und setzen des Namens mitarbeiterMotivieren Abbildung 5 34 zeigt das Resultat Die Operation priift wird erstellt Auswahl des Werkzeuges Operation Hinzufiigen durch Klick auf die Klasse Professor und setzen des Namens priift Nun muss noch der Parameter student angegeben werden Dies geschieht mit Hilfe der Outline Zun chst ist die Operation in der Zeichenfl che durch Klick auszuw hlen In der Outline er scheint nun die Operation Hier wird durch Rechtsklick auf die Operation das Kon textmen ge ffnet und ber Create child Parameter der Parameter fiir die Operation erstellt Durch Klick auf den neu erstellten Parameter in der Outline wird die zugeh rige Properties View ge ffnet und dort f r das Feld name student einge tragen Weiter muss der Typ des Parameters hier Student angegeben werden Durch Auswahl des Typs Vorlesung in der Property View des gerade erzeugten Parameters wird dies umgesetzt Abbildung 5 35 zeigt das Resultat Die Operation
178. d ggf auch ein R ckgabetyp f r die Operation eingestellt werden Dokumentieren der neu angelegten Operationen und Parameter Um ein Element zu dokumentieren muss f r dieses Zun chst eine EAnnotation angelegt werden Abbildung 7 3 Diese erh lt dann als Source Attribut gem Abbildung 7 4 fol genden Wert http www eclipse org emf 2002 GenModel F r die so erstellte EAnnotation muss nun ein Details Entry angelegt werden Abbil dung 7 5 Dieser Details Entry erh lt als Key den Wert documentation und als Value den Dokumentationstext Abbildung 7 6 http wiki eclipse org EMF Recipes Recipe _Create_your_own_property_editor_in_a_generated_appli cation RefaSo amp ModelCockpit 7 Entwicklerdokumentation 205 iN UNIVERSITAT PADERBORN Die Universitat der Informationsgesellschaft Abschlussbericht RME RefaSo ModelCockpit Java de upb pg rmc umlz model UML ecore Eclipse SDK LI File Edit Navigate Search Project Model Sample Ecore Editor Run Window Help Dis 50 4 Bee SF st gt gt ES 3 Data Modeling 4p Plug in Devel Debug Java HE Package Explorer 2 ie Alf outline amp N m les a Ar outline is not available were deb po mecano sen
179. definierte Eintr ge zum Beispiel in Abbildung 4 23 bei Modellsprache Unified Modeling Language UML ausgew hlt oder Werte eingetragen werden Die Softwa remodelle k nnen verschiedene Arten von Diagrammen zum Beispiel Klassendiagramm Class Diagram enthalten welche optional von Benutzer hinzugef gt add diagram siehe Abbildung 4 24 bearbeitet edit diagram oder gel scht delete diagram werden k nnen Die hinzugef gten Diagrammarten werden in einer Tabelle angezeigt Wird als Artefakttyp Spezifikation software requirements specification gew hlt kann der Benutzer dort die Spezifikationssprache specification language und ein Formalisie rungslevel formalization level angeben ber add language edit language und delete language kann der Anwender Spezifikationen anlegen siehe Abbildung 4 25 bearbeiten oder l schen Die angelegten Spezifikationen werden in einer Tabelle angezeigt 64 4 Benutzerdokumentation RefaSo amp ModelCockpit D UNIVERSIT T PADERBORN Abschlussbericht FR 8 Die Universit t der Informationsgesellschaft Refaso ModelCockpit Add new specification language specification language UML Z v Formalization level 1 v Abbildung 4 25 MQP Neues Artefact Neue Spezifikation hinzuf gen Add new consistency relation AR consistency level Vertical d dependency type ne ei Save Changes Cancel Abbildung 4 26 MQP Neues Artefact Neue Beziehung zu einem
180. dell Die anderen Pakete stammen aus der Eclipse UML2 und wurden nur entsprechend erg nzt Das Paket umlz enth lt neben den restlichen Unterpaketen Interfaces f r s mtliche Klassen des Modells Dies ist in erster Linie erforderlich um Mehrfachvererbungen realisieren zu k nnen Im Paket internal impl sind diese Interfaces dann implementiert W hrend dieses Paket s mtliche automatisch generierte Modellstrukturen wie Collections und Getter und Setter Methoden enth lt befinden sich alle im Ecore Modell definierten Operationen im Paket internal operations F r die Methoden in diesem Paket generiert EMF nur Stubs die dann manuell implementiert werden m ssen Hilfe zu weiteren EMF spezifischen Hilfspaketen bietet EMF Im Paket umlz types befinden sich die beiden primitiven Typen ZExpression und ZPre dicate die die Z Ausdr cke aufnehmen welche vom CZTWrapper ausgewertet werden Auch in diesem Paket befinden sich einige manuelle Anpassungen RefaSo amp ModelCockpit 6 Architekturdokumentation 153 Die Universit t der Informationsgesellschaft WS D UNIVERSIT T PADERBORN Abschlussbericht Der Zugriff auf den CZTWrapper erfolgt mit Hilfe des Paketes umlz cztutilprovider Das Paket umlz izparser enth lt in Abschnitt 6 2 6 beschriebene Interfaces umlz 2 izparser gt aa umlz internal operations A E E O de EN I I i i
181. dell gestellt werden So verf gt eine Anwendung im Hochsicherheitsbereich ber ganz andere Standards als eine Anwendung die an einer Hochschule eingesetzt wird Daher muss die Aufarbeitung der Messergebnisse so ausgelegt sein dass jeder Adressat die f r ihn vorgesehenen Messergebnisse verwenden kann Die Ziele der Projektgruppe RefaSo waren der Entwurf und die Implementierung eines Werkzeugs mit dem nderungen an einem gegebenen Modell vorgenommen werden k nnen welches in einer formalen Sprache spezifiziert ist Die nderung eines Modells respektive Programms wird auch als Refactoring bezeichnet Refactorings verbessern durch eine ver haltenserhaltende nderung der vorhandenen Struktur die Lesbarkeit Wartbarkeit und Adaptierbarkeit Genauer beschreibt es Martin Fowler in seinem Buch Refactoring Im proving the Design of Existing Code Fowler bezieht sich in seinem Buch auf Quelltext Das Verst ndnis von Refactorings kann jedoch auch auf Softwaremodelle bertragen werden 23 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code yet improves its internal structure It is a disciplined way to clean up code that minimizes the changes of introducing bugs In essence when you refactor you are improving the design of the code after it has been written Fo
182. der grafischen Notation umlz_state_diagram oder umlz_class_diagram 4 2 2 1 Diagramme anlegen Es gibt zwei Wege ein Diagramm zu erstellen Der Benutzer kann entweder ein neues Modell anlegen oder alternativ ein bereits vorhandenes Modell nutzen Das Anlegen eines Diagramms inklusive eines neuen Modells stellt die bliche Vorgehensweise dar Informationen ber das Konzepept von UML Z sind im Kapitel 2 1 verf gbar Details ber die Architektur finden sich in Kapitel 6 3 1 36 4 Benutzerdokumentation RefaSo amp ModelCockpit dl UNIVERSITAT PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft E New Project olx Project Create a new project resource Ka Project name RMC Tutorial IV Use default location Abbildung 4 2 Projekt Wizard Projektname und Pfad festlegen Diagramm samt neuem Modell erzeugen Um ein neues Diagramm anzulegen wird ein Project ben tigt Es kann ein vorhandenes genutzt oder ein neues angelegt werden Das Anlegen eines Projektes ist in Kapitel 4 2 1 beschrieben Alternativ kann ein bereits existierendes Projekt genutzt werden Dieses Projekt dient nun f r die Aufnahme des neuen Diagramms Dazu w hlt der Anwen der im Hauptmen File New Other und w hlt dort die Kategorie RMC Um ein neues Klassendiagramm anzulegen wird der Eintrag UMLZ Classdiagram selektiert f r ein Zustandsdiagramm wird UMLZ Statediagram gew hlt Abbildung 4 3 stellt diesen Di
183. dieser Symptome Informationen aus dem Interface IMQPIndicator angefragt wel che im n chsten Schritt in der Normalisierung der bergebenen Messwerte aus dem MQP ben tigt werden Nachdem die Informationen erfolgreich geholt wurden wird die Norma lisierung NormalizationManager eingeleitet Wurden f r alle angegebenen Indikatoren Symptome gefunden bzw zugeordnet und die zugeh rigen Normalisierungen erfolgreich durchgef hrt so k nnen mit Hilfe von recalculateTherapies Methode die gewonnenen Daten weiter verarbeitet werden d h es wird nach passenden Diagnosen und zugeh rigen Therapien gesucht sd NormalizationManager createNormaiization J ser normalzations Map eli steateNormatzation type string name String params HashMap lt String String gt type toLowerCase equals fuzzy lt anonymous gt SchulnotenNorma ization 1 2 put name new SchulnotenNormalization p rams type toLowerCase equals ordinal lt anonymous gt LinearNormalization 1 3 LinearNormalization params 1 4 put name new LinearNorma kzation params type toLowerCase equk ty lt anonymous gt PlecewiselinearNormalzation 1 6 put name new PlecewiseLinearNormalization params OutOfRangeEkception e lt anonymous gt IgnoreNormalisation 1 7 IgnoreNormalsation
184. dikator wird im MQP eine Skala zugewiesen Einige dieser im MQP bereits vordefinierten Skalen existieren in 174 6 Architekturdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft Ai UNIVERSIT T PADERBORN Abschlussbericht minin der derzeitigen Version der Diagnose in Form von Normalisierungsklassen Wird eine neue Skala im MQP erstellt so muss diese sofern der damit gemessene und bewertete Indikator in der Diagnose bearbeitet werden soll der Diagnose durch Hinzuf gen einer neuen Normalisierungsklasse bekannt gemacht werden siehe Kapitel II Bei der Normalisierung geht es darum die einzelnen gemessenen und bewerteten Indika toren f r Modelm ngel gegeneinander vergleichbar bzw darstellbar zu machen Dieses Ziel wird innerhalb der einzelnen Normalisierungstypklassen dadurch erreicht dass Ergebnisse der Normalisierungen immer im Wertebereich zwischen 1 und 1 liegen m ssen Ist ein Wert nach der Normalisierung au erhalb dieses Bereiches so wird ein Fehler aus gel st Gr nde hierf r k nnen entweder falsche Hilfsvariablen und Werte aus der Konfigu rationsdatei sein oder die verwendete Normalisierung liefert ein nicht g ltiges Ergebnis Die zu normalisierenden Ergebnisse werden an die entsprechenden Normalisierungsklassen bermittelt Je nach Normalisierungsart ist dieses Objekt dann in ein entsprechendes For mat der jeweiligen Normalisierungsklasse umzuwandeln K nnen Werte nicht normalis
185. directSimpleStates Set State self region iterate region Region acc Set State Set acc gt union region subvertex select a a oclisTypeOf State gt select a State a isSimple oclAsType State gt asSet CI le Eu RefaSo amp ModelCockpit B OCL Messungen 271 Die Universit t der Informationsgesellschaft WS D UNIVERSIT T PADERBORN Abschlussbericht B 3 Base Measures B 3 1 Unit of measure is Class Root class predicate indicates that it has no ascendants OCLDEFINITION context Class def IsRoot Boolean parents isEmpty Ke parent An OCLDEFINITION context Class def IsLeaf Boolean children gt isEmpty KOT ehren Em OCLDEFINITION context Class def IsAbstract Boolean self isAbstract EE Le USINGAUXILARYFUNCTIONS children 272 B OCL Messungen RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft de UNIVERSITAT PADERBORN Abschlussbericht miaz OCLDEFINITION Available Attributes Number context Class def AAN Integer self getAllAttributes gt size commas SiS Ges Number of the new attributes and the overridden attributes of a Class OCLDEFINITION context Class def DAN Integer definedAttributes gt size CO A New Attributes Number INFORMALDEFINITION Number of Attributes defined in the class that are not over riding inherited ones OCLDEFINITION context C
186. direkt in der Datei beschrieben Das RMC Repository enth lt eine Beispielkonfigura tion unter src my properties sample setenv cmd Hier werden verschiedene Verzeichnisse und Umgebungsvariablen f r die Aus f hrung des Build Scripts unter Windows konfiguriert Die Einstellungen sind direkt in der Datei beschrieben Das RMC Repository enth lt eine Beispielkonfiguration unter src setenv cmd sample setenv sh Hier werden verschiedene Verzeichnisse und Umgebungsvariablen f r die Aus f hrung des Build Scripts unter Linux konfiguriert Die Einstellungen sind direkt in der Datei beschrieben Das RMC Repository enth lt eine Beispielkonfiguration unter src setenv sh 7 2 Komponenten Die in diesem Kapitel vorgestellten Komponenten wurden ensprechend Architektur siehe Kapitel 6 bernommen Teilweise wurde bei der Implementierung auf schon vorhandene Projekte zur ckgegriffen Um dem Entwickler einen schnellen Einstieg zu erm glichen folgt nun eine Auflistung in der die Archtitekturkomponenten den Implementationen zugeordnet sind Tabelle 7 1 listet alle Schnittstellen von RMC auf die die einzelnen Komponenten nutzen Diese Komponenten sind in Tabelle 7 2 dargestellt Tabelle 7 1 Entwicklung bersicht der Schnittstellen ARCHITEKTUR PROJEKTNAME PAKET SCHNITTSTELLEN IModel de upb pg rmc umlz de upb pg rmc umlz IRefactoringEditor de upb pg rmc refactoring de upb pg rmc refactoring editorinterface editorinterface IRefactoringDiagnostic
187. dokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft Ai UNIVERSIT T PADERBORN Abschlussbericht minin Eine Klasse MQPBaseSection wurde eingef hrt damit eine Verbindung zur Form in der die Section liegt hergestellt werden konnte Dies ist ber Methode getMgpForm m glich ber die Form kann der Entwickler dann auf das Modell ber die Methode getMQPEdi tor zugreifen Ist keine Anbindung an das Modell notwendig muss die Section nicht von MQPBaseSection erben Im Konstruktor wird nur der Konstruktor der MQPBaseSection aufgerufen Der Konstruk tor der MQPBaseSection ruft die Methode initGUI auf Erbt man nicht von MQPBaseSec tion muss man die Methode selber im Konstruktor aufrufen In der Methode initGUI werden die grafischen Elemente wie Buttons und Labels und dessen Layout angelegt Um eine eigene Section zu schreiben sind folgende Schritte notwendig 1 Anlegen einer neuer Klasse in de upb pg rmc mqp ui Dem Namen sollte ein Sec tion angeh ngt werden 2 Die Klasse sollte von MQPBaseSection erben 3 Der Konstruktor sollte den Konstruktor von MQPBaseSection aufrufen oder die Methode initGUI 4 Die Klasse sollte eine Methode initGUI mit einer Annotation Override enthalten Besonderheiten des Qualit tsmodells Das Qualit tsmodell beinhaltet eine Besonderheit im Gegensatz zu den anderen Modellen Im oberen Bereich des Modells befindet sich eine Canvas Auf ihr k nnen Graphen
188. e Table Tree with Columns te Abbildung 4 20 MQP Editor Kontextmodell Mit Finish wird ein MQP angelegt und eine Konfigurationsdatei mit bereits vordefinierten Messungen in das Projekt kopiert Der MQP ffnet sich automatisch und der erste Reiter das Kontextmodell siehe Abbildung 4 20 wird angezeigt 4 2 3 2 Der MQP Editor Um einen MQP anzulegen gibt es einen eigenen Editor Ein MQP besteht dabei aus f nf Modellen e Kontextmodell Context Model e Informationsbed rfnismodell Information Need Model e Qualit tsmodell Quality Model e Messmodell Measurement Model e Pr sentationsmodell Presentation Model F r jedes Model gibt es im MQP einen Reiter die sich unterhalb des Modells befinden Die Reihenfolge der Tabs entspricht auch der Reihenfolge in der der Benutzer die Informationen eingeben sollte da sich die Modelle aufeinander beziehen Es ist dem Anwender jedoch m glich jederzeit zwischen den einzelnen Modellen hin und her zu springen und Eingaben zu korrigieren oder zus tzlich zu t tigen 60 4 Benutzerdokumentation RefaSo amp ModelCockpit Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Add new MQP Author forename Max surename Mustermann phone 49 0 5251 60 3317 office E 4 301 Save Changes Cancel Abbildung 4 21 MQP Kontextmodell Neuen MQP Autor hinzuf gen 4 2 3 3 MQP Kontextmodell Das Kon
189. e DE Name Minute Powertype Extent Redefined Classifier Representation Template Parameter Use Case Visibility Abbildung 5 10 Tutorial Eigenschaften des Datentyps Minute ZExpression Editor E TEX ynat E Abbildung 5 11 Tutorial Z Editor ZExpression f r Minute 98 5 Tutorial RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft D UNIVERSIT T PADERBORN Abschlussbericht RMG Ml Resource RMC Tutorial default umlz_class_diagram RMC 101 File Edit Navigate Project Window Help ee Kee ES Resource Properties 23 Tos Pri Value Dal Client Dependency Constrained Element Name Template Parameter Visibilty public mala Abbildung 5 12 Tutorial Constraint f r Minute TEX Minute ldata O upto 59 rdatal Al Abbildung 5 13 Tutorial Z Editor ZPredicate fiir Minute RefaSo amp ModelCockpit 5 Tutorial 99 dl UNIVERSITAT PADERBORN Die Universit t der Informationsgesellschaft Abschlussb ericht __Refaso Modelcoc Resource RMC Tutorial default umlz_class_diagram RMC Mee Ele Edit Navigate Project Window Help ri LE Er ES Resource ves e asis zi Ge _ ES SE Pr Value a EEE pe a Client Dependency el Is Abstract E false Is Leaf Ek false oe Name E Hour Powertype Extent Redefined Classifier Representation Template Parameter Use Case Visibility public
190. e XML Konfigurationsdatei definiert Die Besonderheit unserer Software ist hier dass die Diagnose bereits auf Modellebene er folgt Fehler bzw Verbesserungsm glichkeiten werden also schon w hrend der Modellierung in den UML Z Diagrammen gefunden Andere Werkzeuge analysieren den Quellcode ei ner Software nachdem dieser aus den Modellen erzeugt oder manuell geschrieben wurde Fehler oder Verbesserungsm glichkeiten die erst in der Implementierung gefunden werden sind wesentlich aufwendiger zu korrigieren Bei uns erfolgt die Diagnose bereits w hrend der Modellierung Somit k nnen viele Probleme bereits vor der Implementierung erkannt und beseitigt werden Shttp www uml org Links Tools RefaSo amp ModelCockpit 9 Res mee 249 Die Universit t der Informationsgesellschaft WS D UNIVERSIT T PADERBORN Abschlussbericht een 9 3 4 Konfigurierbare Refactorings Refactorings Fow99 sind nderungen eines Programmes die die Struktur des Programmes verbessern sollen ohne dabei das Verhalten des Programmes zu ndern Klassischerweise werden Refactorings auf dem Quellcode eines Programmes durchgef hrt Unsere Softwa re bietet Refactorings bereits auf Modellebene Die Struktur der Software kann so schon w hrend der Entwurfsphase verbessert werden Refactorings k nnen sowohl manuell aus gel st werden als auch durch die Ergebnisse einer Messung mit einem Modelqualit tsplan Das Besondere an unserer L sung ist dabei nicht nur di
191. e coco L 1 8 put name new IgnoreNormalisation e 1 11 put name new IgnoreNormalisation new IllegalArgumentException Ur jer Normallsierungstyp tye Abbildung 6 33 Sequenzdiagramm Anzeige m glicher Normalisierungen Die gerade angesprochene Normalisierung wird durch den Normalisierungsmanager Nor malizationManager durchgefiihrt Je nachdem welche Skala einem Indikator bzw einem Symptom zugewiesen wurde wird die passende Normalisierung angesto en Im Sequenz diagramm Abbildung 6 33 sind die drei derzeit unterstiitzten Normalisierungen und de ren zugeh rige Normalisierungsklassen abgebildet Ist einem Symptom eine nicht bekannte 3abhingig davon ob die Indikatoren in der Konfigurationsdatei der Diagnose bekannt waren 178 6 Architekturdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft de UNIVERSITAT PADERBORN Abschlussbericht miaz Normalisierung zugeordnet so wird diese Normalisierung nicht durchgef hrt und eine Ex ception ausgel st dagnosticManager DiagnosticsManager dag Dignosis ter Therapy desst bereet la 1 diagnostis get lhctveDiags th threshok djs Diagnosis diag diagnostics opt diag isActive 88 Math abs S 98 A getServky0 gt threshold 1 1 2 add daag
192. e 7Z Expression Specification e ZPredicate Specification e Stereotype Bearbeiten von Elementen Dieser Abschnitt erl utert die grundlegenden M glichkeiten der Bearbeitung von Elemen ten Es existieren verschiedene M glichkeiten die Eigenschaften von Elementen zu editieren Diese Optionen werden hier vorgestellt auf die inhaltlichen Eigenschaften der Elemente wird nicht weiter eingegangen Eigenschaften von Elementen W hlt der Benutzer in der Outline oder im Canvas ein Element aus erscheinen in der Property View die Attribute des Elementes Abbildung 4 12 zeigt diese Attribute In diesen kann der Anwender die Figenschaften des Elementes betrachten und ndern Es gibt 3 unterschiedliche Typen von Eingabefeldern e eine Texteingabe e eine Auswahl ber ein Dropdownmen e einen Button der einen externen Editor startet Z Ausdr cke und Assoziationen lassen sich wie folgt bearbeiten 46 4 Benutzerdokumentation RefaSo amp ModelCockpit de neet moersona Abschlussbericht ie Die Universit t der Informationsgesellschaft _Refaso Modelcockpit E Resource RMC Tutorial default umlz_class_diagram RMC Me E Ele Edit Navigate Project Window Help Jr s L Fie ee ES E gt Resource Eis ei e ame a e A H lt Package gt w ee et Type Declaration Time ZExpression Specification Hour x Minute Type Declaration Minute ZExpression Specification H El lt Constraint gt ZPredicate Specificat
193. e Durchf hrung der Refactorings auf Modellebene sondern auch dass die Refactorings nicht fest in unsere Software ein programmiert sind Stattdessen wurde ein Framework f r Refactorings entwickelt durch das neue Refactorings einfach ber eine Konfigurationsdatei definiert werden k nnen Uns ist keine vergleichbare Software bekannt in der Refactorings auf Modellebene so flexibel definiert werden k nnen 9 4 Vergleich des Ergebnisses mit der Zielsetzung Wie in den meisten Softwareprojekten gibt es auch bei unserem keine hundertprozentige bereinstimmung zwischen den vorher festgelegten Zielen und dem Ergebnis Im Wesent lichen haben wir die uns gesetzten Ziele erreicht In einigen Bereichen haben wir sogar deutlich mehr geliefert als von uns verlangt wurde So wird z B nirgendwo im Pflich tenheft gefordert das Refactorings oder Diagnosen konfigurierbar sein m ssen Was die Flexibilit t und Anpassbarkeit unserer Software betrifft haben wir die Anforderungen also deutlich bertroffen Eine Anforderung die leider nicht erf llt wurde sind konfigurierbare Qualit tsreports und alle damit verbundenen Anforderungen im Pflichtenheft Es gibt lediglich eine Darstellung des Modellqualit tsplans mit allen Messergebnissen als interaktiven Graph Im Pflichtenheft wurde die Umsetzung von zehn Refactorings gefordert Die zehn gefor derten Refactorings wurden aus Zeitgr nden nicht mehr vollst ndig implementiert Daf r wurde aber ein sehr fl
194. e haben nun Eclipse und alle f r die Weiterentwicklung von RMC ben tigten Plugins installiert und einen leeren Workspace erstellt Als n chstes m ssen Sie den RMC Quellcode in diesen Workspace importieren 1 Entpacken Sie den RMC Quellcode in ein leeres Verzeichnis 2 Klicken Sie in Eclipse auf das Men File Import Sie sehen nun den Dialog Select 3 Markieren Sie den Eintrag General Existing Projects into Workspace und best tigen Sie Ihre Auswahl mit Next Sie sehen nun den Dialog Import Projects 4 Klicken Sie auf den Button Browse Sie sehen nun den Dialog Select root direc tory RefaSo amp ModelCockpit 7 Entwicklerdokumentation 199 Ai UNIVERSIT T PADERBORN Abschlussbericht 5 Die Universitat der Informationsgesellschaft Wahlen Sie das Verzeichnis aus in das Sie den RMC Quellcode entpackt haben und best tigen Sie Ihre Auswahl mit OK Sie sehen nun erneut den Dialog Import Pro jects und in der Projects Liste sollten mehrere Projekte aufgelistet und markiert sein Best tigen Sie die Auswahl mit Finish Eclipse importiert nun alle Projekte in Ihren Workspace Sie haben nun alle Projekte importiert Eclipse kompiliert diese automatisch W hrend Eclipse alle Projekte kompiliert erscheint der Hinweis Building Workspace unten rechts im Eclipse Fenster in der Statusleiste Warten Sie bis dieser Vorgang abge schlossen ist Ihre Arbeitsumgebung ist jetzt f r die Weiterentwicklung v
195. e mgp editor ilc gt cl de upb pg rme mp measurement Sees New Sibi gt SC mp de upb pg rme maptests bedreet xed d Boolean Undo z EType Parameter a cl de upb pg rme mgp ui i y 5 48 de upb pg rmc refactoring 3 addAttribute Property R cog EParameter 32 de upb pg rmc refactoring commoninte 4 ee dle _ jf EGeneric Exception Type 122 de upb pg rmc refactoring diagnosticsi a addOperation Operatio of Cut cl de upb pg rmc refactoring editorinterf FemoveOperation ees ad addGeneral Classifier J5 de upb pg rmc refactoring refactoring d de eb painea dk removeGeneral Classifie EES src setInit ZPredicate X Delete fA JRE System Library JavaSE 1 6 E had esche Ada SS Plug in Dependencies E St nestedClassifier Classi Walidate S sm amp ownedOperation Oper Jr i e Ge superClass Class gt META INF po ES sie isActive Boolean ar 5 Co ER compare BG em 2 ownedReception Rece S EE xslt N de UMLecore x sole 3 9 Search Z Call Hierarchy 80 14 08 E UML genmodel No consoles to display at this time e 1 5 schema Se W i B dasspath E et E project Load Resource lor build properties El plugin properties eal y gt plugin xml Show Properties view G de upb pg rmc umlz diagram classeditc 3 44 de upb pg rmc umiz diagram stateedit E E de upb pa rmc umiz ecit A lo Selected Object isMetaclass Boolean 206 Abbildung 7 3 T Entwicklerdokumentation
196. e studiengang eingetragen Nun muss noch der Typ des Attributs angegeben werden Dies geschieht ebenfalls in der Properties View indem aus der Auswahlbox f r das Feld Typ Stu diengang gew hlt wird Abbildung 5 27 zeigt das Resultat Nun muss eine Operation zur Klasse Student hinzugef gt werden Hierzu wird aus der Palette das Werkzeug Operation gew hlt und durch Klick auf die Klasse Student dieser eine Operation hinzugef gt Um den Namen der Operation anzugeben wird die Operation in der Zeichenfl che angeklickt und in der Properties View f r das Feld Name lernen eingetragen Nun muss noch der Parameter vorlesung angegeben werden Dies geschieht mit Hilfe der Outline Zun chst wird die Operation in der Zeichenfl che durch Klick ausgew hlt In der Outline erscheint nun die Operation Hier wird durch Rechtsklick auf die Operation das Kontextmen ge ffnet und ber Create child Parameter der Parameter f r die Operation erstellt Durch Klick auf den neu erstellten Parameter in der Outline wird die zugeh rige Properties View ge ffnet und dort f r das Feld name vorlesung eingetragen Weiter muss der Typ des Parameters hier Vorlesung angegeben werden Durch Auswahl des Typs Vorlesung in der Property View des gerade erzeugen Parameters wird dies umgesetzt Abbildung 5 28 zeigt das Resultat RefaSo amp ModelCockpit 5 Tutorial 107 d i UNIVERSIT T PADERBORN Die Universit t der Informationsgesellschaft Abs chlussb ericht __R
197. e upb pg rmc umlz diagram stateeditor Pro jekts um folgenden Eintrag erweitert lt extension point org eclipse ui popupMenus gt lt gmfgen generated false gt lt objectContribution id de upb pg rmc umlz diagram classeditor InitDiagram 216 7 Entwicklerdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft Ai UNIVERSIT T PADERBORN Abschlussbericht minin objectClass de upb pg rmc umlz internal impl ClassImpl gt lt action label initDiagramActionLabel class de upb pg rmc umlz diagram stateeditor part UMLZInitStateDiagramFileAction menubarPath additions enablesFor 1 id de upb pg rmc umlz diagram classeditor Init DiagramAction gt lt action gt lt objectContribution gt lt extension gt Listing 7 2 Kontextmenii von Klassen in der Outline um Eintrag fiir Zustandsdiagramme erweitern Das Anlegen des neuen Diagrammes geschieht dann in der Klasse UMLZInitState DiagramFileAction Diese stellt eine Modifikation der Klasse UMLZInitDiagramFi leAction dar mit der Diagramme iiber den Project Explorer auf Modelldateien erzeugt werden Properties Durch die Nutzung des EMF basierten Treeeditors im GMF Editor existieren zwei Typen von Elementen EMF Elemente und GMF Elemente wobei die Dom nenelemente des GMF Teiles eine Untermenge der EMF Dom nenelemente darstellen Aus diesem Grund war es notwendig die PropertyView zu modifizieren Genut
198. ebiet Fachgebiet name Text raum Textx No operations Abbildung 5 44 Tutorial Generalisierung Student 118 5 Tutorial EF aj Palette I Select Zoom E Note gt class Package E Enumeration DataType g Association Class 2 Interface 2 Constraint Stereotype E Attribute Zi Operation Enum Literal Z Association Dependency gt A Generalization 4 Provided Interface a Required Interface M rz Dependency Target NAry Dependency Source 7 Constrained Element 5 Association End 7 Realization RefaSo amp ModelCockpit D UNIVERSIT T PADERBORN Die Universit t der Informationsgesellschaft Abschlus sb ericht __Retaso Modeicockpit ll Resource RMC Tutorial default umlz_class_diagram RMC Me E Ele Edit Diagram Navigate Project Refactoring Window Help Fen eE te oe A gt Be 22 ES Blom E ld default umiz_class diagram 3 SE A Palette gt T Select Zoom E Note Pa E Person attributes name Text H Class vorname Text Package Sernailadresse Takt E Enumeration operations DataType ch Association Class E Interface 17 Constraint Stereotype E Professor Ey Attribute E Vorlesung attributes Operation semesterWochenStunden N Student Enum Literal attributes zeit Time gehalteneVortr ge N attributes ETA fachgebiet Fachgebiet operations matrikelnummer N name
199. ecisionPage WizardPage RefactoringStartPage createControl parent Composite void create create RefactoringDecisionPage refElem RefactoringElement RefactoringStartPage refElem RefactoringElement updateData void updateData void IProgressListener Wizard RefactoringWizard addPages void canFinish boolean performFinish bookan a ee a progressEnd e IProgressEndEvent void o progressStart e IProgressEvent void RefactoringElement progressStatus e IProgressEvent void create RefactoringWizard refElem RefactoringElement Abbildung 6 40 Klassendiagramm Klassen der Refactoring GUI 188 6 Architekturdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft Ai UNIVERSIT T PADERBORN Abschlussbericht minin interface datatype boundary datatype ProgressEvent IProgressEvent E getProgressVa lue double getDescription String getProgress Value double boundary datatype interface datatype boundary ProgressEndEvent IProgressEndEvent SP latatype isAborted boolean amp Aborted bookan isSuccessfull boolean amp Successful boolean Abbildung 6 41 Klassendiagramm Fortschrittsangaben bei Ausfiihrung von Refactorings 1 Die ApplicabilityConditions eines Refactoringtypen ist erfolgreich validiert wor den In diesem Fall wird
200. ecute boolean getReturnType Class lt gt getReturnVarName String hasReturnVal boolean Abbildung 6 36 Klassendiagramm von Condition abgeleitete Klassen RefaSo amp ModelCockpit 6 Architekturdokumentation 183 Die Universit t der Informationsgesellschaft WS dl UNIVERSITAT PADERBORN Abschlussbericht Calculation Die Klasse Calculation entspricht der Definition von Calculations nach theo retischen Ausarbeitungen von Thomas Ruhroth RW07 Darin werden nicht nur Zu weisungen von Modellelementen sondern im Wesentlichen Berechnungen auf Model lelementen und Mengen von Modellelementen durchgef hrt Dieser Bestandteil eines AbstractRefactoring unterscheidet sich strukturell nicht von einem BeforeTempla te da beiden IContextQuerys zugeordnet sind die nacheinander ausgef hrt werden In OCL Anfragen der Calculations werden die Modellmengen und elemente er rechnet die in einem weiteren Schritt in AfterTemplates bzw SubRefactorings im zugrundeliegende Modell umgesetzt werden Eine Calculation wird nach der ber pr fung der Precondition durchgef hrt StumblingBlock Eine Instanz der Klasse StumblingBlock ist der erste Bestandteil eines Refactorings der beim Ansto en des Rechenablaufs durchgef hrt wird Damit wird eine initiale Variablenmenge vor dem Ausf hren eines Refactorings belegt Auf den hier belegten Variablen werden Entscheidungen vom Benutzer getroffen vergleiche Beschreibung zu Decision und Abbildung 6 38
201. ed Sim i JVariableHokler pleRefactoring S AfterTemplate O parsed JVarableManager EE AbstractRefactoring 1 Y refactoringFlow CakulationTemplate CakulationTemplate Condition parsed parsed parsed BeforeTemplate Calculation Precondition CakulationTenplate TRefactoringFlement Wrapper PS 1 parsed parsed n StumblingBlock erste variables RefactoringType 1 1 IVariableHolder JVariableManager u Condition a Se 1 0 condition parsed refactoringType _refactoringType ApplicabilityCondition conforms to aT 1 IRefactoringElement TRefactoringDiagnostics RefactoringParserConstants IProgressParent JRefactoringEditor 1 1 parsed RefactoringElement singleton parser RefactoringParser RefactoringManager pal Abbildung 6 35 Klassendiagramm Refactoring Komponente Die Klasse Condition in Abbildung 6 36 ist die Superklasse von Klassen die eine Bedin gung f r beliebige Teilabl ufe eines Refactorings ausdr cken Das berpr fen derartiger Bedingungen wird mit true oder false beantwortet und entscheidet ber den weiteren RefaSo amp ModelCockpit 6 Architekturdokumentation 181 Die Universit t der Informationsgesellschaft WS di UNIVERSIT T PADERBORN Abschlussbericht een Verlauf eines Refactorings vergleiche Abschnitt 6 3 5 2 Von Condition erbende Klassen erf llen folgende Funktionalit t
202. ee a a ee E 210 7 2 2 1 Allgemelines e 210 7 2 2 2 Durchgefi hrte Erweiterungen o 214 7 2 2 3 Implementierung neuer Funktionen 220 7 2 3 Modellqualit tsplan 223 231 nderungen am Modell 524 x AEN ENEE EN d 223 72 32 GUI des Editors o sc c fa Fee dicas te 224 7 2 3 3 Zugriff auf das Modell 228 Gee Ee co be td Vie Bae Pe eo be E ra le 230 7 2 4 1 Erweiterung der Konfigurationsdatei 231 7 2 4 2 Anlegen einer neuen Normalisierung 233 7 2 4 3 Anlegen eines neuen Normalisierungstypes 233 7 2 4 4 M gliche Erweiterungen 2 2 2 234 125 Relationen a sos a ah Boe a ek re ee ee a A 234 7 2 5 1 Aufbau der Grammatik 234 7 2 5 2 Abh ngigkeiten der Grammatik 238 7 2 5 3 Decisions anlegen o o eee 240 8 API Dokumentation 243 RefaSo amp ModelCockpit 9 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Ol Javad ee a BI gta ee E 243 8 2 UML Z Dokumentation f r den Zugriff mit OCL 243 9 Res mee 245 9 1 Entstehung und Ziele der Projektgruppe 245 9 2 Vergleich von anderen Werkzeugen 2 2 2 2 o e e e 247 9 3 Besonderheiten unserer L sung 248 9 3 1 UML hnliche Modellierung mit UML Z 248 9 3 2 Modellierung und Messung von Qualit t 249 9 3 3 Diagnose der Messergebnisse 2 2 22 nme
203. eed not include anything that is normally distributed in either source or binary form with the major components compiler kernel and so on of the operating system on which the executable runs unless that component itself accompanies the executable If distribution of executable or object code is made by offering access to copy from a designated place then offering equivalent access to copy the source code from the RefaSo amp ModelCockpit C Lizenz 299 Ai UNIVERSIT T PADERBORN Abschlussbericht 300 Die Universit t der Informationsgesellschaft same place counts as distribution of the source code even though third parties are not compelled to copy the source along with the object code You may not copy modify sublicense or distribute the Program except as expressly provided under this License Any attempt otherwise to copy modify sublicense or distribute the Program is void and will automatically terminate your rights under this License However parties who have received copies or rights from you under this License will not have their licenses terminated so long as such parties remain in full compliance You are not required to accept this License since you have not signed it However nothing else grants you permission to modify or distribute the Program or its deri vative works These actions are prohibited by law if you do not accept this License Therefore by modifying or distributing the Program or any
204. efaso Modelcoc Wi Resource RMC Tutorial default umlz_class_diagram RMC Mee Ele Edit Navigate Project Window Help le mela a eos Efi resore m ea e asis Es a ES d Pr Value ei Aggregation composite ei Association a Class E lt class gt Student BE Client Dependency Default End Is Derived A false Is Derived Union a False Is Leaf ve False Is Ordered To false Is Read Only DA false Is Static A false Is Unique o true Lower G1 Name 12 studiengang Redefined Property Subsetted Property Template Parameter Type Type Declaration Studiengang Upper 1 Visibility 13 private Abbildung 5 27 Tutorial Eigenschaften des Attributes Studiengang Wi Resource RMC Tutorial default umlz_class_diagram RMC BME Ele Edit Navigate Project Window Help Ie A EAS Resource ves e Dei 2 Z Body Condition Si Client Dependency aa Concurrency E sequential oe Delta List Is Abstract E false Is Leaf a false Is Ordered E False Is Query i false Is Static E false Is Unique Ek true Lower 51 Method Name EZ lernen Postcondition Precondition Raised Exception Redefined Operation Template Parameter Type Upper 51 Visibility ES public Abbildung 5 28 Tutorial Eigenschaften der Methode lernen 108 5 Tutorial RefaSo amp ModelCockpit ih UNIVERSITAT PADERBORN Abschlussbericht male Die Universit t der Informationsgesellschaft
205. ein IRefactoringElement Objekt erzeugt und der Menge zur ckzuliefernder IRefactoringElementWrapper beigef gt 2 Es ist ein Fehler bei der berpr fung der ApplicabilityConditions aufgetreten Dabei wird der Refactoringtyp selbst RefactoringType der Menge der IRefacto ringElementWrapper hinzugef gt Abbildung 6 35 entsprechend existieren zwei Arten von Refactorings SimpleRefactoring und ComplexRefactoring Beide erben von der Klasse AbstractRefactoring die die ge meinsamen Funktionalit ten der beiden Refactoringarten abbildet Das Sequenzdiagramm der Abbildung 6 43 zeigt den gemeinsamen Ablauf Falls die Precondition und die Calculation in der Operation evaluatePrecondition AndCalculation nicht true liefern so wird die Menge der zu erzwingenden Refactorings EnforcedRefactoring vollst ndig durchgef hrt Damit wird beabsichtigt die Precon dition und damit auch die Calculation abschlie end erfolgreich durchf hren und zu Abl ufen die von der Refactoringart abh ngig sind vordringen zu k nnen Falls das AbstractRefactoring ein SimpleRefactoring ist so wird nach der erfolgreichen Validierung der Precondition und der anschlie enden Durchf hrung der Calculation das AfterTemplate abgearbeitet Hierbei werden Anderungen im Modell realisiert Ist das AbstractRefactoring ein ComplexRefactoring so entspricht der anschlie ende Ablauf der Abbildung 6 44 Hierbei werden alle SubRefactoring Objekte durchgef hrt solange die SubRef
206. eine Decision vom gerade erstellten Typ in die Konfigurationsdatei einfiigen Diese sollte ohne Fehler geparst werden und dabei intern ein Objekt der neu erstellten Decision Klasse erzeugen Wenn der Nutzer das Refactoring ber das Refactoring Men wie in Kapitel 4 2 5 1 auf Seite 79 beschrieben startet sollte die vorhin erstellte GUI angezeigt werden 23Das neue Terminal sollte der neuen Decision entsprechend benannt werden RefaSo amp ModelCockpit 7 Entwicklerdokumentation 241 dl UNIVERSITAT PADERBORN Abschlussbericht EE Die Universit t der Informationsgesellschaft RefaSo ModelCoc 242 7 Entwicklerdokumentation RefaSo amp ModelCockpit 8 API Dokumentation Was guckt dein Gesicht so komisch Thomas Die API Dokumentation befindet sich aufgrund ihres Umfangs auf der beiliegenden CD ROM Im Folgenden werden die einzelnen Bestandteile der API Dokumentation kurz erl u tert 8 1 Javadoc Bei der Javadoc API Dokumentation handelt sich um eine Dokumentation aller ffentlicher public und gesch tzter protected Methoden und Attribute entsprechend dem Sun Standard f r Javadoc API Dokumentationen im HTML Format Sie umfasst den gesamten innerhalb der Projektgruppe erstellten Java Code d h den ge samten Code im Paket de upb pg rmc 8 2 UML Z Dokumentation f r den Zugriff mit OCL F r den Zugriff auf das Modell sind die im Ecore definierten Attribute und Operationen ausschlaggebend da mit OCL nur au
207. ellen bzw Modellelementen zu ermitteln Subjektive Messungen Reviews Ein wichtiger Faktor in der Softwareentwicklung ist die Qualit t der implementierten Produkte und der zugrundeliegenden Entw rfe und Mo delle Je fr her Fehler M ngel und Schwachstellen entdeckt werden umso einfacher und g nstiger lassen sich diese M ngel beheben Jedoch lassen sich nicht alle Fehler durch automatisiertes berpr fen der Dokumente und des Quellcodes auffinden Es sind zus tzliche berpr fungen durch Menschen n tig Mit diesem Gebiet besch fti gen sich die subjektiven Messung die ein Teilgebiet der analytischen Qualit tsma nahmen darstellt Kennzahlen f r Modelle Um die Qualit t eines Modells zu messen ist es zun chst n tig Kriterien festzulegen die als Indikatoren f r ein gutes oder schlechtes Modell angese hen werden k nnen Dies kann z B die syntaktische Korrektheit des Modells bez glich seiner Modellierungssprache sein ob das Modell in sich konsistent ist ob das Modell vollst ndig bez glich einer Spezifikation ist oder ob einzelne Teile des Modells unter einander vollst ndig sind RefaSo amp ModelCockpit A Unsere Vorgehensweise 259 D UNIVERSIT T PADERBORN Abschlussbericht een Die Universit t der Informationsgesellschaft WS A 3 Verwendete Werkzeuge In der Projektgruppe haben wir nur Software verwendet die entweder frei verf gbar oder f r Studenten kostenlos ber die MSDN AA verf gbar ist Sun Java
208. en Zu einem Artefakt k nnen einer oder mehrere Autoren geh ren Diese k nnen unter den Artefaktinformationen im Bereich artefact author ber add author edit author und delete author angelegt editiert und gel scht werden Dies erfolgt analog zum Anlegen Editieren und L schen eines Autors im Kontextmodell Beim Anlegen eines Autors kann der Benutzer eine neue Person hinzuf gen oder einen bereits im MQP angelegte Person ausw hlen siehe Abbildung 4 21 Die hinzugef gten Autoren werden in einer Tabelle angezeigt Die Reihenfolge hat keine Bedeutung Ein Artefakt kann vom Typ Softwaremodell software model Spezifikation software requirements specification oder Code software code sein Dies kann unter den Autoren im Bereich Artefakttyp artefact type ausgew hlt werden Wurde noch kein Artefakt im MQP angelegt ist automatisch der Typ Softwaremodell ausgew hlt und kann auch nicht ge ndert werden Wurde bereits ein Artefakt vom Typ Softwaremodell angelegt k nnen auch die anderen Typen ausgew hlt werden Abh ngig vom Typ kann der Benutzer noch optionale Informationen eingeben Diese zus tz lichen Informationen werden im Bereich unter der Auswahl des Typs abgefragt Beim Typ Softwaremodell kann der Anwender die Modellsprache Modelling Language die Mo dellabsicht Model Purpose die Modellkategorie Model Category und die Modell methodik Model Methodology ausw hlen Je nach Konfiguration des MQPs k nnen bereits vor
209. en Um vom Qualit tsmodell ins Messmodell zu gelangen muss der Benutzer den Reiter Measurement Model ausw hlen Die Abbildung 4 32 zeigt ein beispielhaft ausgef lltes Messmodell Das Messmodell besteht aus zwei Bereichen Im oberen Bereich k nnen vom Benutzer den Qualit tsattributen links die zuvor im Qualit tsmodell angelegten wurden vordefinerte Messungen rechts zugeordnet werden Im unteren Bereich kann der Anwender ein Diagramm ausw hlen auf dem dann die ausgew hlten Messungen ausgef hrt werden Eine detaillierte Definition der im System vordefinierten Messungen mit ihrem jeweiligen OCL Queries befindet sich im Anhang unter B Im oberen Bereich stehen dem Benutzer zwei B ume zur Verf gung Der linke Baum enth lt die im Qualit tsmodell angelegten Qualit tsattribute Der rechte Baum enth lt bereits vor definierte Messungen und Indikatoren die in einer Konfigurationsdatei mdef mqp im Projektordner gespeichert sind Die Messungen werden unterschieden nach Basismessun gen Base Measures und abgeleitete Messungen Derived Measures Basismessungen sind Messungen die nur aus OCL und deren Funktionen bestehen Abgeleitete Messungen k nnen aus OCL und deren Funktionen sowie anderen Basis oder abgeleiteten Messun gen bestehen Indikatoren Indicators bewerten bestimmte Eigenschaften anhand von Messergebnissen In der mit RMC ausgelieferten Konfigurationsdatei befinden sich schon einige vordefinierte Messungen und Indikatore
210. en Messungen referenzieren und durchf hren zu k nnen Im Textfeld enter ocl measure wird der OCL Ausdruck f r die Messung angegeben Dieser Ausdruck ist eine Operationsdefinition in OCL Diese allgemeine Struktur wird in Listing 5 1 dargestellt context Classifier def Operationsname Ergebnistyp Ausdruck Listing 5 1 Allgemeine OCL Struktur f r Messungen Werden in der anzulegenden Messung OCL Funktionen oder Messungen aus den Listen auf der rechten Seite verwendet so ist zu beachten dass diese nicht direkt im Feld enter OCL measure eingetippt sondern per Drag and Drop hinzugef gt werden m ssen Hierdurch wird sichergestellt dass entsprechende Messungen verwendbar sind Abschlie end kann in dem Feld informal definition eine detaillierte Beschreibung zur Messung angegeben werden Nachdem der Anwender die Messung eingegeben und den Dialog mit Save Changes best tigt hat muss er die neu angelegte Messung dem f nften Qualit tsattribut per Drag and Drop zuordnen Das fertig ausgef llte Messmodell ist in Abbildung 5 62 abgebildet Das Messmodell ist somit fertiggestellt und die Messung des Modells kann beginnen Um eine Messung durchzuf hren w hlt der Anwender das UML Z Modell aus Abbildung 5 63 zeigt den zugeh rigen Auswahldialog Sobald der Anwender das Modell gew hlt und einen Speicherort f r die Messergebnisse gew hlt hat measurement results output kann er die Messung mit do Measurement durchf hren 5 2 2
211. en kombinieren oder Kennzahlen in Modellen messen k nnen Als n chstes betrachten wir was unser Werkzeug zus tzlich leisten kann und wie wir uns von anderen Werkzeugen abgrenzen 9 3 Besonderheiten unserer L sung Unsere Software RMC versetzt den Anwender in die Lage Qualit t zu modellieren zu messen und die Ergebnisse dieser Messung sofort automatisiert oder manuell mit Hilfe von Refactorings umzusetzen Diese Funktionen haben wir in ein einziges Werkzeug integriert Dadurch bekommt der Anwender die M glichkeit seine Modelle in einem Qualit tskreislauf Messung Diagnose Refactoring erneute Messung schrittweise zu verbessern Durch die sen Qualit tskreislauf und die Integration der einzelnen Schritte in ein einziges Werkzeug hebt sich unsere L sung von anderen L sungen ab die jeweils nur einzelne Aspekte wie z B Modellierung anbieten Die einzelnen Teile unserer Software k nnen auch unabh ngig voneinander und unabh ngig vom Qualit tskreislauf verwendet werden Unsere L sung ist au erdem extrem flexibel da sowohl Messungen als auch die Diagnose und die Refactorings durch Konfigurationsdateien definiert werden Dadurch ist unsere Software ohne Anderungen am Programmcode erweiterbar 9 3 1 UML hnliche Modellierung mit UML Z UML Z besteht aus den aus der UML 2 0 bekannten Klassen und Zustandsdiagrammen Dabei wurden die Klassendiagramme um die M glichkeit erweitert das Verhalten von Ope rationen mit Z zu modellieren Z
212. enden erstellt werden Es werden vier Klassen ihre Attribute und Operationen angelegt Die Klasse Person Um die erste Klasse anzulegen wird in der Palette rechts neben der Zeichenfl che das Werkzeug Class ausgew hlt Mit einem Klick in die Zeichenfl che wird eine neue Klasse angelegt In den Eigenschaften wird f r sie der Name Person eingegeben Abbildung 5 21 zeigt die Eigenschaften der Klasse Nun werden dieser Klasse noch drei Attribute hinzugef gt Hierzu wird aus der Palette das Werkzeug Attribute ausgew hlt und anschlie end in der Zeichenfl che auf die Klasse Person geklickt Hierdurch wird der Klasse das Attribut hinzugef gt Um den Namen des Attributs anzugeben wird das Attribut in der Zeichenfl che angeklickt und in der Properties View f r das Feld Name name eingetragen Nun muss noch der Typ des Attributs angegeben werden Dies geschieht ebenfalls in der Properties View indem aus der Auswahlbox f r das Feld Typ Text gew hlt wird Abbildung 5 22 zeigt das Resultat Um das zweite Attribut zu erstellen wird wieder aus der Palette das Werkzeug Attri bute ausgew hlt und anschlie end in der Zeichenfl che auf die Klasse Person geklickt RefaSo amp ModelCockpit 5 Tutorial 103 d i UNIVERSIT T PADERBORN Die Universit t der Informationsgesellschaft Abschlussb ericht __Refaso Modelcoc Wi Resource RMC Tutorial default umlz_class_diagram RMC Elle Edit Navigate Project Window Help le meslu areton Efi
213. ender zun chst im oberen Bereich die Qualit tscharak teristiken und Qualit tsattribute fest siehe Abbildung 5 57 Dabei ordnet er jeder Qua lit tscharakteristik ein Ziel ber die Properties zu Das Qualit tsmodell f r dieses Beispiel ist in Abbildung 5 57 abgebildet Nachdem das Qualit tsmodell aufgebaut wurde ordnet der Anwender jedem Qualit tsat tribut eine Frage ebenfalls ber die Properties zu siehe Abbildung 5 58 Das fertige Qualit tsmodell ist in Abbildung 5 59 abgebildet 5 2 2 5 Ein neues Messmodell erstellen Um nun eine Messung durchf hren zu k nnen wechselt der Anwender in das Messmodell Dort ordnet er den aufgelisteten Qualit tsattributen Messungen per Drag and Drop zu Abbildung 5 60 zeigt das Messmodell und die Zuordnung der ersten vier Qualit tsattribu te Bei diesen ersten vier Qualit tsattributen ist die Zuordnung leicht m glich wohingegen f r das f nfte Qualit tsattribut keine geeignete Messung existiert Also muss der Anwender zun chst eine geeignete Messung mit add measure eingeben Abbildung 5 61 zeigt den Dialog und die eingegebenen Messung 128 5 Tutorial RefaSo amp ModelCockpit N UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft RefaSo ModelCock Question Model Quality Attribute Mehrfachvererbung ME Choices Feature Question Gibt es Klassen mit zu kurzem Namen Add Question Wird Mehrfachvererbung eingesetzt
214. er Informationsgesellschaft WS di UNIVERSIT T PADERBORN Abschlussbericht een Parameter type VariableType name VariableName env add Variable create type name bn return env String Query String query Query query StringLiteral return query Listing 7 26 Grammatik Abschnitt Parameter der Query So erh lt eine ContextQuery alle notwendigen Java Objekte und Parameter der Sprache um w hrend des Parsens als Java Objekt erstellt werden zu k nnen 7 2 5 3 Decisions anlegen H ufig ist eine Eingabe des Nutzers notwendig um ein Refactoring durchf hren zu k nnen Beispielsweise ben tigt das Refactoring Element umbenennen den neuen Namen des Ele ments Eine solche Entscheidung die der Nutzer mittels der GUI trifft wird als Decision bezeichnet Jeder Refactoringtyp enth lt alle Decisions die zu treffen sind Diese Liste von Decisions wird dem Benutzer angezeigt bevor das Refactoring durchgef hrt wird Daher gibt es ab dem Beginn des Refactorings keine unentschiedenen Decisions mehr und das Refactoring kann ohne Benutzerinteraktion ausgef hrt werden Die notwendigen Entscheidungen werden dem Nutzer gem Kapitel 4 2 5 1 auf Seite 80 dargestellt F r jede der drei dort erw hnten Decisiontypen gibt es eine GUI Klasse die dort als eine Seite des Wizards integriert wird Tabelle 7 3 zeigt die derzeit vorhandenen Klassen die jeweils eine der drei Decisio
215. er Informationsgesellschaft WS di UNIVERSIT T PADERBORN Abschlussbericht miaz IContextQue ContextQuery Impl create ContextQueryImpl var Variable lt R gt env Collection lt Variable lt gt gt oclQuery String holder IVariable Holder manager IVariableManager execute bookan getReturnType Class lt gt getReturnVarName String hasReturnVal boolean VariableAssignment create VariableAssignment to String from String holder IVariable Holder manager IVariableManager sets adds results gets variables adds variables interface interface IVariableHolder IVariableManager getVariabk name String Variable lt gt addVariable variable Varable lt gt voio a n A result parsed Variable compareTo other Variable lt gt int create type Class lt T gt name String Variable lt T gt equals obj Object boolean IProgressParent hashCode int AbstractRefactoring toString String create Variable name String addVariable variable Variable lt gt void doRefactoring receiver IProgressParent boolean getVariable name String Variable lt gt newProgressEndEvent e IProgressEndEvent void newProgressEvent e ProgressEvent void contains newProgressStartEvent e IProgressEvent void setEnforced enfs Collection lt EnforcedRefactoring gt void Iterable lt
216. er Palette auf Seite 42 Anlegen von Elementen ber die Outline Die Outline stellt die dritte M glichkeit dar Elemente zu erstellen Der Wurzelknoten des Baumes ist mit dem selektierten Element auf dem Canvas identisch Wenn kein Element ausgew hlt wurde ist das Package die Wurzel des Baumes Das Kontextmen der Outline bietet folgende Unterpunkte RMC Auswahl wichtiger Elemente die als Kinder des selektierten Elementes angelegt wer den k nnen Dieser Men punkt bietet die einfachste M glichkeit Elemente anzulegen Create child Bietet die M glichkeit alle Kindelemente des selektierten Elementes anzule gen RefaSo amp ModelCockpit 4 Benutzerdokumentation 45 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Create sibling Bietet die M glichkeit alle Geschwisterelemente des selektierten Elementes anzulegen delete L scht das ausgew hlte Element Initialize State Diagram Legt ein neues Zustandsdiagramm in einer Klasse an Hinweis Der Anwender sollte bevorzugt das RMC Men nutzen Die beiden Men punkte Create child und Create sibling sind nur der Vollst ndigkeit halber vorhanden Durch ihre gro e Anzahl an Elementen bieten sie jedoch wenig Komfort Je nach ausgew hltem Element in der Outline sind nicht alle der oben erl uterten Men ein tr ge m glich bzw sichtbar Einige Elemente k nnen nur ber die Outline angelegt wer den e Type Declaration
217. er Status status abgefragt In allen drei F llen hat der Anwender eine Auswahl zur Verf gung 58 4 Benutzerdokumentation RefaSo amp ModelCockpit D UNIVERSIT T PADERBORN Die Universit t der Informationsgesellschaft Abschlussbericht Sal Se MM New 15 x Model Quality Plan Create a new Model Quality Plan Le Enter or select the parent Folder RMC Tutorial fi gt RMC Tutorial File name RMC_MQP_Tutorial mqp Advanced gt gt mh cm Abbildung 4 18 MQP Wizard Name und Pfad des MQPs festlegen Mi New Jol x MQP general settings Please provide some general information about your model quality plan KZ model quality plan name RMC_MQP_Tutoriall version ES software development model Wasserfalmodel development phase u status Abbildung 4 19 MQP Wizard Generelle MQP Informationen RefaSo amp ModelCockpit 4 Benutzerdokumentation 59 dl UNIVERSITAT PADERBORN Die Universit t der Informationsgesellschaft Abs chluss b ericht __Refaso Modelcoc Ml Resource RMC Tutorial RMC_MQP_Tutorial mqp RMC El ES File Edit Navigate Project MOP Editor Window Help ES lb Resource a i Er e L Eeer 5 1 Context Model The quality of a model is measured in a context This context is defined by the context model Use this Form to e
218. er Wizard Seite aufgerufen und zwar zu einem Zeitpunkt zu dem noch keine Daten der Decision vorliegen Erst in updateData werden die initialen Daten der Decision in die GUI bernommen 3 Hiernach bindet man die GUI Klasse in die Methode addPages im RefactoringWi zard ein welche die einzelnen Seiten des Wizards erstellt Dort f gt der Anwender eine entsprechende Behandlung der neuen Decision ein damit diese von der eben erstellten GUI Klasse repr sentiert wird Nun kann die Grammatik um die neue Decision erg nzt werden Dazu f hrt der Nutzer folgendes zur Konfigurationsdatei hinzu 1 Der Name der Decision wird nun als Token in der Grammatik definiert damit dieser auch als Token erkannt wird N heres beschreibt der Abschnitt ber Tokens auf Seite 236 2 Listing 7 27 zeigt die Definition des Nicht Terminals DecisionsTypeElement bei der jeder Decisiontyp aufgelistet ist Anhand dieser Liste kann beim Parsen ent schieden werden ob nur korrekte Decisiontypen in der Konfigurationsdatei benutzt werden Daher muss hier eine neue Zeile mit dem neuen Typen eingef gt werden String DecisionTypeElement StringInputDecision return StringInputDecision ListQueryDecision return ListQueryDecision PredicateSplitDecision return PredicateSplitDecision Listing 7 27 Grammatik Liste der Typen von Decisions Nun kann man den Parser durch JavaCC generieren lassen und testweise
219. er preferences navigator sheet Abbildung 6 16 Pakete des Klassendiagrammeditors navigator EE expressions M lI II Il preferences RefaSo amp ModelCockpit providers IA Es ze Vv Ba ey parser parsers Abbildung 6 17 Pakete des Zustandsdiagrammeditors 6 Architekturdokumentation 161 Die Universit t der Informationsgesellschaft WS di UNIVERSIT T PADERBORN Abschlussbericht ser 6 3 3 1 Struktur Die Komponente besteht aus drei Teilkomponenten MQP Metamodell MQP GUI und MQP Measurement siehe Abbildung 6 18 MQP Metamodell de upb pg rmc mqp Dies ist eine Realisierung des MQP Metamo dells Die Teilkomponente stellt anderen Teilkomponenten das Interface IMQPInter nalModel zur Verf gung Detail ist unter 6 3 3 2 aufgef hrt MQP GUI Dieser Bestandteil von ModelQualityPlan umfasst weitere vier Teilkompo nenten die die Benutzeroberfl che zur Erzeugung und Pflege von MQPs zur Verf gung stellt Die einzelnen Teilkomponenten sind unter 6 3 3 3 aufgef hrt MQP Measurement de upb pg rmc measurement Die Komponente MQP Measure ment ist f r die Durchf hrung von Messungen des MQP auf einem UMLZ Modell zust ndig Details sind unter 6 3 3 4 aufgef hrt
220. ermines whether this class is a metaclass E project sil buld properties E plugin properties A plugin xml 433 de upb pg rmc umlz diagram classedite e cl de upb pg rmc umiz diagram stateeditc gt de upb pa rmc umiz edit y 4 gt Lo The Key of the Details Entry j Abbildung 7 6 Modell Attribute des Details Entry Anpassen des Genmodels Das UML Z Modell basiert auf dem Eclipse UML2 Modell Da EMF im Funktionsumfang sehr eingeschr nkt ist wurden von den Entwicklern diverse Modifikationen und Erweiterun gen angewandt um das UML2 Modell mit EMF erstellen zu k nnen Da diese gr tenteils nicht dokumentiert sind f hrt dies dazu dass aus dem UML Z Modell kein neues Genmo del erzeugt werden kann Stattdessen muss das alte Genmodel angepasst werden Erstellen eines neuen Genmodels Hierzu sollte man den modifizierten Ecore zun chst in ein separates Projekt kopieren und dort das Genmodel erstellen Dazu wird der Ecore zun chst in ein neues leeres Projekt kopiert und dort ein neues EMF Modell erstellt Dazu wird im New Dialog in der Kategorie Eclipse Modeling Framework der Punkt EMF Model gew hlt Auf der folgenden Seite des Assistenten wird als Dateiname UML genmodel angegeben Anschlie end wird auf der n chsten Seite Ecore Model als Typ des zu importierenden Modells gew hlt 208 7 Entwicklerdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft WS Ai UNI
221. erung templates Verzeichnis Templates f r die Generierung e Zustandsdiagrammeditor UML ecore UML Z Metamodell UML genmodel Generierungsmodell fiir das UML Z Modell propsheet ecore Modell f r die Erweiterung der Eclipse Tabbed Properties View propsheet genmodel Modell f r die Erweiterung der Eclipse Tabbed Properties View stateMachineDiagram gmfgraph die grafischen Elemente des Editors activityDiagram_controlNodes gmfgraph die grafischen Elemente des Editors stateMachineDiagram gmftool die Palette des Editors stateMachineDiagram gmfmap das Mapping der vorherigen Modelle stateMachineDiagram gmfgen resultierendes Modell f r die Generierung templates Verzeichnis Templates f r die Generierung gmf graph Verzeichnis Templates f r die Generierung codegen Verzeichnis Templates f r die Generierung Abbildung 7 8 zeigt den Ablauf der Erzeugung des Quelltextes Die oben erw hnten Modelle dienen als Eingabe f r das GMF Framework Generate diagram Develop p SS Domain Model gt x N ecore N Develo Create GMF m E gt 8 Graphical Develop Project ni Definition Mapping Model gmfmap x gt L Develop Tsai Create Generator foolin Ce Model Definition s D ss Generate Plugin _ 0 Abbildung 7 8 Schematischer Ablauf der Generierung des Editors RefaSo amp ModelCockpit 7 Entwicklerdokumentation
222. escription description Refactoring Therapy Bad Class name using property CLASS BADNAME gt lt therapy gt Listing 7 15 Beispiel Anlegen einer neuen Refactoringtherapie Nachdem nun wie in den Listings 7 12 bis 7 15 die Daten eingegeben wurden ist der Dia gnose nun der Indikator Short class names bekannt und wiirde bei entsprechenden Ergeb nissen zu Verf gung stehen und in der GUI der Diagnose m gliche Modelldefekte anzeigen Wie eine f r die Anzeige von Diagnosen und Therapien notwendige Normalisierung in der Konfigurationsdatei angelegt wird beschreibt der folgende Abschnitt 232 7 Entwicklerdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft Retasol D UNIVERSIT T PADERBORN Abschlussbericht 7 2 4 2 Anlegen einer neuen Normalisierung Im vorherigen Abschnitt wurde anhand eines Beispiels gezeigt wie die Konfigurationsdatei um neue Symptome Diagnosen und Therapien erweitert werden kann In diesem Abschnitt geht es darum wie die Diagnose um eine Normalisierung erweitert wird Um eine neue Normalisierung nutzen zu k nnen muss der Benutzer soweit diese noch nicht implementiert ist wie in Abschnitt 7 2 4 3 beschrieben eine neue Normalisierungsklasse anlegen und ggf vorhandene Klassen anpassen Wurde dies getan kann die Normalisierung in der Konfigurationsdatei eingetragen werden M chte man die Werte f r eine vorhandene Normalisierung an seine eigenen Bed rfnisse anpassen
223. etBlockOnOpen true d open if d getReturnCode Dialog OK TODO use command for change ZPredicateSpecification object setZPredicate new ZPredicate zec 0 getPredWrapper if object instanceof de upb pg rmc umlz internal impl ZExpressionSpecificationImpl final ZEditorComposite zec new ZEditorComposite 1 Dialog d new Dialog UMLZDiagramEditor this getSite getShell Override protected Control createDialogArea Composite parent zec 0 new ZEditorComposite parent 0 zec 0 setZExpressionSpecification ZExpressionSpecification object return zec 0 RefaSo amp ModelCockpit 7 Entwicklerdokumentation 221 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft protected void okPressed ZExpressionSpecification ze ZExpressionSpecification object IExprWrapper result ze tryParse zec 0 getZ if result null zec 0 setExprWrapper result super okPressed y d create d getShell setText ZExpression Editor d setBlockOnOpen true d open if d getReturnCode Dialog OK TODO use command for change ZExpressionSpecification object setZExpression new ZExpression zec 0 getExprWrapper H mgr add zEditorMenu J Listing 7 5 M gliche Implementierung f r den Aufruf des Z Editors aus dem RMC Men Diese Implementierung in Listing 7 5 stellt nur ei
224. exibeles erweiterbares Refactoring Framework entwickelt das wesent lich mehr bietet als im Pflichtenheft gefordert wurde Durch diese Erweiterbarkeit bietet unsere Software einen gr eren Mehrwert als wenn wir zehn Refactorings erreicht aber fest eingebaut h tten Unsere Software ist durch die Aufteilung in viele einzelne Plugins leicht wartbar und er weiterbar Sollten sich sp ter neue Entwickler in das Projekt einarbeiten m ssen k nnen sie sich auf das f r sie relevante Plugin konzentrieren ohne dass sie sich mit den Implemen tierungsdetails der anderen Plugins besch ftigen m ssen 9 5 Ausblick Dieses Fazit hat gezeigt wie unsere Software die Qualit t von Modellen messbar macht wie sie ber die eingebaute Diagnose Fehler und Verbesserungsm glichkeiten findet und wie sie 250 9 Res mee RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft WS Ai UNIVERSIT T PADERBORN Abschlussbericht minin die Qualit t des Modells anschlie end durch Refactorings erh hen kann Zum Abschluss bietet das Fazit noch einen Ausblick darauf welche Anforderungen an unsere Software nicht mehr umgesetzt werden konnten und wie unsere Software weiter entwickelt werden k nnte Teilweise wurden einzelne Anforderungen nicht so umgesetzt wie gefordert Diese k nnten durch nachfolgende Projektgruppen oder im Rahmen von Bachelor und Masterarbeiten erg nzt werden Au erdem ist RMC in vielen Bereichen von vornherein auf Erwei
225. f diese zugegriffen werden kann Auf Attribute kann nur lesend zugegriffen werden so dass nderungen an UML Z Modellen ausschlie lich mit Hilfe von im Ecore definierten Operationen durchgef hrt werden k nnen die diese nderungen dann vornehmen Wie neue Operationen und auch Attribute zum Ecore hinzugef gt werden k nnen ist in Kapitel 7 2 1 3 beschrieben Die bestehenden Atttribute und Methoden sind in diesem Teil der API Dokumentation beschrieben 243 dl UNIVERSITAT PADERBORN Abschlussbericht EE Die Universit t der Informationsgesellschaft RefaSo ModelCoc 244 8 API Dokumentation RefaSo amp ModelCockpit 9 Res mee Na super Peter Gro artig Tobias 9 1 Entstehung und Ziele der Projektgruppe Im April 2007 trafen sich die Mitglieder der Projektgruppen RefaSo R und ModelCockpit MC zum ersten Mal Schon vor Beginn des ersten Treffens war klar dass beide Projekt gruppen zusammen gelegt werden sollten Jeder der Teilnehmer hatte seine eigenen Vor stellungen des Ablaufes einer Projektgruppe sei es nun aus Horrorgeschichten vorheriger Projektgruppen oder eigenen Erfahrungen aus bisherigen Projekten Wir hatten unter schiedliche Ziele und unterschiedliche Vorstellungen davon wie wir unsere Ziele erreichen sollten Nach genau einem Jahr haben wir als eine Projektgruppe RMC unser Projekt beendet Dieses Fazit fasst nun zusammen was wir die Projektgruppe RMC in einem Jahr erreicht haben Na
226. faSo amp ModelCockpit A Unsere Vorgehensweise Dieser Abschnitt beschreibt die Organisation unserer Projektgruppe und unsere Vorgehens weise die von uns daf r verwendete Software und die Erfahrungen die w hrend der Pro jektgruppe gemacht haben Wir m chten so unsere Erfahrungen und Tipps an zuk nftige Projektgruppen weiter geben die m glicherweise RMC weiter entwickeln werden A 1 Projektorganisation Unsere Projektgruppe bestand aus elf Studenten und wegen der Zusammenlegung von urspr nglich zwei Gruppen zu einer aus zwei Betreuern Innerhalb der Gruppe wurden verschiedene organisatorische Aufgaben verteilt die jedes Mitglied zus tzlich zur normalen Projektgruppenarbeit bernehmen musste Bei der Verteilung der Aufgaben haben wir dar auf verzichtet einen Projektleiter zu benennen Alle Entscheidungen wurden demokratisch durch Mehrheitsbeschluss durchgef hrt Die Aufgabenbereiche waren e Code Administration Buildmanagement Mathias Coding Conventions Martin e IT Administration Tobias e Dokumentation Rudolf Integrator Peter e Ressourcen Management Christoph Qualit ts Management Steffen Entwicklung Bernhard Die Projektgruppe begann im April 2007 und dauerte bis April 2008 In dieser Zeit wurde das Projekt durchgehend bearbeitet auch in der vorlesungsfreien Zeit Es gab lediglich f r einzelne Projektmitglieder Urlaub oder Klausurfrei In dieser Zeit gab es jeden Donnerstag einen festen
227. faSo amp ModelCockpit Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Ml Refactoring Wizard ol x Refactoring Split class Type selection decision Please choose only one class O Professor class de upb pg rmc umiz internal impl ClassImpl 2 Next gt Abbildung 5 68 Seite mit dem Refactoring Ml Refactoring Wizard ol x Refactoring Split class Type selection decision Select a class to split E Professor class de upb pg rmc umiz internal impl ClassImpl Abbildung 5 69 Auswahl der Klasse RefaSo ModelCock 137 RefaSo amp ModelCockpit 5 Tutorial Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft __Refaso Modelcockpit Ml Refactoring Wizard ol x Refactoring Split class Type selection decision Pleas choose the operations to move to the new class DO forschen class de upb pg rmc umlz internal impl OperationImpl O vortragHalten dess de upb pg rmc umiz internal impl Operationimpl O nitarbeiterM dess de upb pg rmc umiz internal impl Operationimpl pr ft class de upb pg rmc umiz internal impl OperationImpl O publiziertok class de upb pg rmc umlz internal impl OperationImpl O h ttzentral dess de upb pg rmc umlz internal impl OperationImpl O h tt bung class de upb pg rmc umlz internal impl OperationImpl Abbildung 5 70 Methodenauswahl W Refactor
228. factoring void getIRefactoringElement IRefactoringElement removeProgressListener progressListener IProgresslistener voia getTypeDescription String setModelElements elements Collection lt NamedElement gt voia getTypeName String hasProperties properties Collection lt RefactoringProperty gt boolean isExecutable boolean create en V DA interface interface interface boundary boundary boundary boundary IProgressEndEvent IProgressEvent IProgressListener isAborted boolean getDescription String progressEnd progEndltertIProgressEndEvent voia isSuccessful boolean getPri double progressStart progStart IProgressEvent voia progressStatus progltem IProgressEvent voio Abbildung 6 2 Klassendiagramm IRefactoringEditor Interface 6 2 3 IRefactoringDiagnostics ber die IRefactoringDiagnostics Schnittstelle werden Refactorings als Verbesserungs vorschl ge von der Diagnostics Komponente an die Refactoring Komponente angefor dert Die Diagnostics Komponente bergibt in getRefactoringsFor Modellelemente so wie Auswirkungen die ein Refactoring haben sollte um eine Verbesserung des Modells zu bewirken Als Ergebnis bekommt die Diagnostics Komponente eine Menge von IRefac toringElement Objekten 148 6 Architekturdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft D UNIVERSIT T PADERBORN Abschlussbericht Die Interaktion w
229. factoring editorinterf Te de upb pg rmc refactoring refactoringr EHE de upb pg rmc umlz E src TBA JRE System Library JavaSE 1 6 1 Se Plug in Dependencies 8 addattribute Property ME removeAttribute Property SZ addOperation Operation 3 removeOperation Operation ZS addGeneral Classifier dk removeGeneral Classifier 48 setinit ZPredicate 4 createZPredicateAsInit String EX nestedClassifier Classifier 7 ownedOperation Operation E mmm EE eum E META INF ox superClass Class DC model 7 isActive Boolean D am fs 32 ownedReception Reception RR er _ Umt ecore E Problems 7 Javadoc TS Declaration Progress SCHEIDEN a E UML genmodel schema References B dasspath Source B project ei build properties plugin properties plugin xml 1 453 de upb pg rme umlz diagram classedite 15 de upb pg rmc umlz diagram stateedit de upb pa rmc umiz edit The Source of the EAnnotation Abbildung 7 4 Modell Source Attribut der EAnnotation Java de upb pg rmc umlz mo File Edit Navigate Search Project Model Sample Ecore Editor Run Window Help fir 0 Q LEG SH eis Sm EI i Data Modeling lt p Plug in Devel 3 Debug GJ Java HE Package Explorer 4 m Sn BE Outline 3 N So Fs E E z H Behavior gt Class An outline is not available EAD de upb pOT CANEDA z E E Class gt En
230. formationsgesellschaft Ai UNIVERSIT T PADERBORN Abschlussbericht minin warranty and that users may redistribute the program under these conditions and telling the user how to view a copy of this License Exception if the Program itself is interactive but does not normally print such an announcement your work based on the Program is not required to print an announcement These requirements apply to the modified work as a whole If identifiable sections of that work are not derived from the Program and can be reasonably considered independent and separate works in themselves then this License and its terms do not apply to those sections when you distribute them as separate works But when you distribute the same sections as part of a whole which is a work based on the Program the distribution of the whole must be on the terms of this License whose permissions for other licensees extend to the entire whole and thus to each and every part regardless of who wrote it Thus it is not the intent of this section to claim rights or contest your rights to work written entirely by you rather the intent is to exercise the right to control the distribution of derivative or collective works based on the Program In addition mere aggregation of another work not based on the Program with the Pro gram or with a work based on the Program on a volume of a storage or distribution medium does not bring the other work under the scope of this Licen
231. ft Project 2003 Unser Projektplan wurde mit Microsoft Project erstellt eGroupware Zur Planung von Terminen Urlaub usw wurde die Software eGroupware eingesetzt Mediawiki F r den Austausch von verschiedenen Informationen haben wir ein Wiki ein gesetzt A 4 Hinweise f r zuk nftige Projektgruppen Diese Dokumentation m chten wir auch nutzen um unsere Erfahrungen an zuk nftige Projektgruppen weiter zu geben Deshalb stellen wir in diesem Abschnitt einige Punkte vor die gut gelaufen sind sowie Dinge die wir beim n chsten Mal anders machen w rden A 4 1 Zeitmanagement Bei unseren w chentlichen Gruppentreffen wurden jedem Mitglied der Projektgruppe Auf gaben zugewiesen und in einem mit Microsoft Project erstellten Projektplan festgehalten Die Planung erfolgte dabei im Detail f r die n chsten 1 2 Wochen und grob f r die n chsten 2 3 Monate Um die Dauer der einzelnen Aufgaben zu bestimmen wurde die bis zu einer Deadline verf gbare Zeit auf die einzelnen Aufgaben verteilt Leider wurden die vorgegebenen Zeiten in den meisten F llen nicht eingehalten und Dead lines immer wieder verschoben M glicherweise w re es sinnvoller gewesen zuerst den Auf wand f r die zu erledigenden Aufgaben zu sch tzen und daraus dann einen Zeitplan zu erstellen Auf nicht erreichbare Lenkungskreisziele oder feste Deadlines die dadurch ber schritten worden w ren h tte man dann z B durch Streichung von Funktionen mit niedri ger Priorit
232. g boolean executeOperation acronym String Map lt Object Object gt isVariabkeDefined string String boolean parse query String String context EClassifler IOCLQuery lt C R gt ParseAndEvaluate querySring String object Object Map lt gt ParseAndEvaluate querySring String Map lt gt parseContextFree querySring String classifier EClassifier TOCLContextFreeQuery Set Variabk Value variableName String object Object voia create java lang Exception y en en e OCLTypeMismatchException C extends Classifier R create throw interface AE IOCLQuery OCLTypeMismatchException message String cause Throwable create OCLTypeMismatchException message String execute context C resultingVariableNarre String clazz Class lt R gt R Abbildung 6 4 Klassendiagramm IOCL Interface Die Skala eines IMQPIndicators die den Rahmen angibt in dem das Me ergebnis einzu ordnen ist wurde in Form der Schnittstelle IMQPScale ausgegliedert damit sie unabh ngig vom restlichen Interface angepasst werden kann Die Methode getTypeOfScale liefert den Typ einer Skala N here Informationen zu m glichen Skalen sind in Kapiteln 6 3 3 und 6 3 4 zu finden 6 2 6 IZParser IZParser beschreibt die Schnittstelle zwischen der UML Z Model Komponente und dem CZTWrapper Die Schnittstelle sieht vor dass Zeichenfolgen unter Zuhilfenahme des ICZTUtil zu Z Ausdr cken geparst werden D
233. g Student o e nroa 118 5 45 Tutorial Generalisierung Professor 119 5 46 Tutorial Assoziation balt 22 0 2 ce aa a a 120 5 47 Tutorial Assoziation nimmt teil oaoa 120 5 48 Tutorial Neues allgemeines Projekt anlegen 121 5 49 Tutorial Neuen Modellqualit tsplan anlegen 122 5 50 Tutorial Modellqualit tsplan anlegen 122 5 51 Tutorial Modellqualit tsplan grundlegende Einstellungen 123 5 52 Tutorial Kontextmodell anlegen 124 5 53 Tutorial Artefakt hinzuf gen e 125 5 54 Tutorial Informationsbed rfnismodell Ziele 126 5 55 Tutorial Zuordnung Ziele zu Rollen o 127 5 56 Tutorial Informationsbed rfnismodell os ao eac srra securo ca 127 5 57 Tutorial Qualit tsmodell oaoa e 128 5 58 Tutorial Qualit tsmodell Zuordnung von Fragen 129 5 59 Tutorial Qualit tsmodell o 22 se ediad ma a wee ee 129 5 60 Tutorial Zuordnung der Qualit tsattribute im Messmodell 130 5 61 Tutorial Eingabe einer neuen Messung 2 e e 02005 130 5 62 Tutorial Messmodell 132 5 63 Tutorial Auswahl des Modells e 132 5 64 Tutorial Pr sentationsmodell 00000002 eee ee 133 5 65 Tutorial Benutzung der Diagnose 2 Cm nn nn e o 134 5 66 Tutorial Auswahl des Refactorings 136 5 67 Tutorial Startseite Wizard i ossa sa o tadaa tanen ud 136 5 68 Tutorial Seite mit dem Refactoring o 137 5
234. gForce Design Datt bestimmen Semantische Vollst ndigkeit DragCoefficient Kl mg 0 009 Architekt SpringForce Gibt es Klassen mit zu kurzem Namen deng EN SpringCoefficient 9 99E 5 DefauitSpringLength _ Implementierbarkeit bestimmen i i Connectivity Fiter Wird Mehrfachvererbung eingeset2 MD Distance jo Mehrfachvererbung L nge der Massennamen Implementierbarkeit Quality hodel Verst ndlichkeit Designqualt t Wartbarkeit Se tische Vollst ndigkeit jemantisohe igkeit Presentationmodell options Grobe Klassen Verf gbarkeit von Vor und Nachbedingung pn A Y Contextmodell rerbungstiete ea I Informationneedmodel am e F Qualitymodel a F directed 1 Context Model 2 Information Need Model 3 Quality Model 4 Measurement Model 5 Presentation Model Selection Parent List Tree Table Tree with Columns Abbildung 5 64 Tutorial Pr sentationsmodell RefaSo amp ModelCockpit 5 Tutorial 133 Ai UNIVERSIT T PADERBORN Abschlussbericht i l Die Universit t der Informationsgesellschaft __Refaso Modelcockpit li Resource RMC Tutorial RMC_MQP_Tutorial mqp RMC ME Eile Edit Navigate Project Window Help ata a A io E lf Resource sie Properties I Presentationmodel properties RMC Diagnostic el a Welcome to the diagnosis et Diagnosis Point of view Select for each founded Diagnosis the Therapies you like to iniciate Select Value E Sho
235. gate K O 5 IModel l Y y component delegate de upb pg rmc mgp edit component de upb pg rmc mqp diagram quality E Ed deg J R delegate IMQPInternalModel Abbildung 6 25 Komponentendiagramm MQP GUI 6 3 3 4 Teilkomponente MQP Measurement Die Teilkomponente MQP Measurement ist f r Durchf hrungen von Messungen auf UML Z Modellen zust ndig Das Vorgehen beim Messen unterliegt nachstehender Reihen folge e MQP GUI startet einer Messung engl Measurement und bergibt der Teilkompo nente MQP Measurement das zu messende UML Z Modell e Die genutzten bzw ausgew hlten Messungen werden ber die Schnittstelle IMQPIn ternalModel ermittelt e Die Messungen der Typen ObjectiveBaseMeasure und DerivedMeasure werden mit darin definierten OCL Ausdr cken engl OCL Expression ber die Schnittstelle IO CL Kapitel 6 2 4 in der Komponente OCLWrapper durchgef hrt vergleiche Ka pitel 6 3 6 RefaSo amp ModelCockpit 6 Architekturdokumentation 169 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft e Die Messungen vom Typ Indicator werden basierend auf den Ergebnissen der 0b jectiveBaseMeasure und DerivedMeasure berechnet e Die Messergebnisse werden f r die Pr sentation in MQP GUI und f r die Durch f hrung der Diagnose in der Komponente Diagnostics aufbereitet e Au erdem werden die Messergebnisse seria
236. gelesen werden k nnen Um das Refactoring auszuf hren ist der Next Button anzuw hlen der den Dialog weiterf hrt siehe Abbildung 5 67 Auf der zweiten Seite steht in der Titelzeile neben dem Refactoring auch der Typ in diesem Fall eine selection decision In diesem Beispiel ist zwar nur die Klasse Professor ausw hlbar sollten aber mehrere Klassen in der Tabelle aufgelistet sein darf nur eine Klasse f r die weiteren Schritte angew hlt sein siehe Abbildung 5 68 Die Klasse Professor ist ausgew hlt und der Dialog kann fortgef hrt werden siehe Abbil dung 5 69 Auf der n chsten Dialogseite sind alle Methoden der Klasse Professor aufgelistet und dem Nutzer obliegt es hier die Methoden auszuw hlen die aus der Klasse Professor in eine neue Klasse verschoben werden sollen Hier ist eine Besonderheit zu beachten Wenn eine Methode verschoben wird werden auch die Attribute dieser Methode mit verschoben In Checkboxen haben nur f r Refactoringtherapien eine Bedeutung RefaSo amp ModelCockpit 5 Tutorial 135 d i UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft RefaSo ModelCoci Ml Resource RMC Tutorial default umlz_class_diagram RMC Eile Edit Diagram Navigate Project Refactoring Window Help G x Move up attribute w IR e 2 Predicate splitting test BEES PE 100 ES amp Resource e Palette F ser e Zoom Person E Note si att
237. gen 70 AfterTemplate 182 API 243 ApplicabilityCondition 85 182 Architektur 143 202 Architekturkomponenten 153 Artefakt 62 Autor 61 Basismessungen 70 BeforeTemplate 182 Calculation 182 Calculation Template 182 Canvas 45 56 Commands 229 ComplexRefactoring 87 Comunity Z Tools 193 CZT 193 CZTWrapper Komponente 145 193 203 Decision 86 184 240 Decision TypeElement 86 Decision Validation 86 182 Diagnose 76 Diagnose Skala 174 Diagnostics Komponente 172 203 Diagramm anlegen 36 Eclipse Modelling Framework 153 158 223 Ecore 223 EMF 153 158 223 EnforcedRefactoring 88 Form 225 Frage 65 Fragegruppe 66 Generierung 210 Genmodel 223 GMF 158 Grammatik 234 Graphical Modelling Framework 158 Grenzwert 76 179 IModel Schnittstelle 147 202 IMQP Schnittstelle 149 202 IMQPInternalModel Schnittstelle 202 Informationsbediirfnismodell 65 IOCL Schnittstelle 202 IOCLParser Schnittstelle 149 IRefactoringDiagnostics Schnittstelle 148 202 IRefactoringEditor Schnittstelle 202 IZParser Schnittstelle 150 202 JavaCC 234 Javadoc 243 Klassendiagramm 40 Klassendiagrammeditor 160 Komponenten 35 143 202 Konfigurationsdatei 60 79 Konfigurationsdatei einlesen 79 Kontextmodell 61 Lesezugriff 228 ListQueryDecision 185 Messmodell 70 Messung 29 ModelCockpit 23 245 Modelldefekt 134 ModelQualityPlan Komponente 145 160 203 Modelqualit t
238. gen wie sie in Kapi tel 2 2 2 auf Seite 29 beschrieben wurden eignen sich dazu das gemessene Modell zu verbessern da bei einer Messung auch M ngel des Modells aufgedeckt werden Diese M ngel m chte man in der Regel beseitigen um das Modell zu verbessern Die Bedingung daf r ist dass der Nutzer ber die M ngel in einer Form informiert wird so dass er die M ngel leicht nachvollziehen und daraus Schl sse ziehen kann Dies ist die Zielsetzung der Diagnose Aufgabe dieser Komponente ist es aus den einzelnen Messungen auf konkrete M ngel zu schlie en und Verbesserungen anzubieten Die M ngel werden also dem Nutzer pr sentiert sie basieren auf dem Stand des Modells zum Zeitpunkt der Messung und schenken daher den nachtr glichen nderungen keine Beachtung Es gibt verschiedene Arten von Verbesserungen die von der Diagnose angeboten werden Qualit ts modellierung Software modellierung Refactoring Eine Art von Vorschlag ist ein Refactoring dies bezeichnet die nderung eines Modells bei der die nach au en sichtbare Struktur und das Verhalten des Modells gleich bleiben Ein Refactoring stellt also eine Art Umstrukturierung des Modells dar Der Anwender kann frei entscheiden ob er das Modell mittels der angebotenen Vorschl ge ndert oder eigenst ndige Verbesserungen durchf hrt Dadurch kann jeder Nutzer gem seiner bevorzug ten Arbeitsweise handeln und wird vom Programm nicht eingeschr nkt
239. gt asSet COMMENTS Shortened according to UMLZ model This function includes the coupled classes corresponding to return type of class operations and type of class parameters Eu newOperations A SY Operations defined in the class that are not overriding inherited ones OCLDEFINITION context Class def newOperations Set Operation definedOperations inheritedOperations COMMENTS The definition excludes inherited Operations and consequently it excludes overridden Operations Eu 266 B OCL Messungen RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft de UNIVERSITAT PADERBORN Abschlussbericht miaz definedOperations EN OOO Set Operation Set of operations defined not inherited in the class OCLDEFINITION context Class def definedOperations Set Operation getOperations KT Eu overriddenOperations CN OOOO Set Operation INFORMALDEFINITION Set of operations defined in the class that override inherited ones set of inherited operations that are overridden by locally defi ned ones OCLDEFINITION context Class def overriddenOperations Set Operation if definedOperations gt size gt 0 and inheritedOperations gt size gt 0 then definedOperations inheritedOperations else Set endif o Eu get AllOperations CN OOOO Set Operation INFORMALDEFINITION Set of all the Operations of this class includi
240. gt diesen Bereich LITERALS TOKEN lt STRING _LITERAL N CPAP RN UA E is por por y por gt 3 gt 07 o7 igo Wald gt TOKEN lt LB gt lt RB gt lt SEP gt ELEMENTS OF THE GRAMMAR x Listing 7 22 Grammatik Abschnitt interne Tokenliste Warnung Anderungen in diesem Bereich wirken sich grundlegend auf weite Teile der Grammatik aus Deshalb sollte man diese Art von Ande rungen nur wohlbedacht durchfiihren 6 Zuletzt folgen Terminale und Nichtterminale der Grammatik die grob den einzelnen Klassen entsprechen Hier sind daher Bereiche fiir Refactoringtypen komplexe Refac torings abstrakte Refactorings usw zu finden Die Bedeutung der einzelnen Elemente findet sich im Kapitel 4 2 5 2 auf Seite 82 Der Aufbau der Elemente wird anhand der Definition des Nichtterminals Variable aus Listing 7 23 erkl rt Die erste Zeile enth lt den R ckgabetyp und den Namen des RefaSo amp ModelCockpit 7 Entwicklerdokumentation 237 Die Universit t der Informationsgesellschaft WS di UNIVERSIT T PADERBORN Abschlussbericht een Nichtterminals Dann folgen zwei Bl cke Der erste nimmt Definitionen von Varia blen auf die im zweiten Teil genutzt werden Dieser nimmt die eigentliche Definition auf welche einerseits aus Zeichen besteht die als Schl sselw rter in der Sprache dienen hier Variable und Zuweisungen wie name VariableNa
241. guage OCL 2 0 1 1 2 v200711262212 32190ASSPEHBISHDE BIS OCL 2 0 Binding for UML 1 1 1 200707131415 1007w311818242526 G Object Constraint Language OCL 2 0 Compatibilty 1 1 1 v200709121956 1007w31181_232_67 Data Tools Platform Connectivity 1 5 2 200802201 Data Tools Platform Open Data Access Designer 1 5 2 200802201 DIS Data Tools Platform Open Data Access Runtime 1 5 2 200802201 E Data Tools Platform Enablement For Apache Derby 1 5 2 200802201 11 Data Tools Platform Enablement for HSQLDB 1 5 2 200802201 IS Data Tools Platform Enablement for IBM 1 5 2 200802201 F Data Tools Platform Enablement for JDBC 1 5 2 200802201 E Data Tools Platform JOT Enablement 1 5 2 200802201 E These features provide functionality required by one or more projects but do not provide end user Functionality by themselves Select Required Error Details 11 of 102 selected I Show the latest version of a feature only N Filter features included in other features on the list e cm Abbildung 7 1 Installation Plugins aus Liste Enabling Features 16 Best tigen Sie mit Yes dass Eclipse neu gestartet werden soll Eclipse startet nun neu Nach dem Neustart erscheint der Dialog Select a Workspace 17 Als Workspace sollte der von Ihnen unter 3 erstellte Workspace eingetragen sein Best tigen Sie diese Auswahl mit OK Sie sehen nun erneut eine leere Eclipse Ar beitsumgebung 7 1 3 Importieren des RMC Quellcodes Si
242. h unterschiedliche Messungen der Qua lit t Es ist also notwendig Anforderungen an die Qualit t zu modellieren Dies wird im Informationsbed rfnismodel dargestellt 28 2 Konzepte RefaSo amp ModelCockpit dl UNIVERSITAT PADERBORN Abschlussbericht E MS Die Universit t der Informationsgesellschaft Qualit tsmodell Was soll gemessen werden Modelle haben Figenschaften Welche dieser Attribute gemessen werden sollen um Qualit ten des Modelles zu bestimmen wird durch das Qualit tsmodell definiert Messmodell Wie wird gemessen Das Messmodell repr sentiert die Messungen die auf dem Modell durchgef hrt werden Die Messungen sind ausf hrlicher in Kapitel 2 2 2 beschrieben Pr sentationsmodell Wie werden die Messergebnisse dargestellt Die Modellierung von Qualit t und das Ausf hren von Messungen liefert Ergebnisse und Aussagen ber die Modellqualit t Die in den vorherigen Modellen definierten Bed rfnisse an Qua lit t und die Kontexte der Messungen f hren zu unterschiedlichen Anforderungen an die Darstellung und Auswertung der Modellqualit t Diesem Anspruch soll das Pr sentationsmodell Rechnung tragen Mit einem so definierten Modellqualit tsplan kann nun der n chste Schritt im Qualit ts kreislauf durchgef hrt werden die Messung der Qualit t 2 2 2 Messen der Qualit t Nach der Modellierung der Qualit t l sst sich die Qualit t eines Softwaremodells feststellen Dies wird durch das Ausf hren von Messu
243. he hypothetical commands show w and show c should show the appropriate parts of the General Public License Of course the commands you use may be called something other than show w and show c they could even be mouse clicks or menu items whatever suits your program You should also get your employer if you work as a programmer or your school if any to sign a copyright disclaimer for the program if necessary Here is a sample alter the names Yoyodyne Inc hereby disclaims all copyright interest in the program Gnomovision which makes passes at compilers written by James Hacker signature of Ty Coon 1 April 1989 Ty Coon President of Vice 302 C Lizenz RefaSo amp ModelCockpit dl UNIVERSITAT PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft This General Public License does not permit incorporating your program into proprietary programs If your program is a subroutine library you may consider it more useful to permit linking proprietary applications with the library If this is what you want to do use the GNU Library General Public License instead of this License RefaSo amp ModelCockpit C Lizenz 303
244. hl des Werkzeug Class und anschlie endem Klick in die Zeichenfl che erscheint eine neue Klasse in deren Eigenschaften der Name Vorlesung eingegeben wird Abbildung 5 39 zeigt die resultierenden Figenschaften Nun werden dieser Klasse noch vier Attribute hinzugef gt Hierzu wird aus der Pa lette das Werkzeug Attribute ausgew hlt und anschlie end in der Zeichenfl che auf die Klasse Vorlesung geklickt Im erscheinenden Eingabefeld wird der Name des At tributes in diesem Fall zeit eingegeben Abbildung 5 40 zeigt das Resultat Um das zweite Attribut zu erstellen wird wieder aus der Palette das Werkzeug At tribute ausgew hlt und anschlie end in der Zeichenfl che auf die Klasse Vorlesung geklickt Im erscheinenden Eingabefeld wird der Name des Attributes jetzt fachge biet eingegeben Abbildung 5 41 zeigt das Resultat Das dritte Attribut wird erstellt indem wieder aus der Palette das Werkzeug At tribute ausgew hlt und anschlie end in der Zeichenfl che auf die Klasse Vorlesung RefaSo amp ModelCockpit 5 Tutorial 113 d i UNIVERSIT T PADERBORN Die Universit t der Informationsgesellschaft Abschlussb ericht __Refaso Modelcoc Wi Resource RMC Tutorial default umlz_class_diagram RMC File Edit Navigate Project Window Help ta EEE Se ec e EI Resource E Properties 3 E G 8 ETT sf Body Condition Beles 4 0 E al Client Dependency Concurrency sequential o Detta
245. hlussbericht Die Universit t der Informationsgesellschaft RME RefaSo ModelCockpit 633 ModelQuahtyPlan saaug ak aa neh ren a 160 Dod DURUP oi ech aoka A a ic a a 162 030 2 Metamodel 2 cos 4 ua ae e Sy Soe ae ds 162 6 3 3 3 Teilkomponente MQP GUI 168 6 3 3 4 Teilkomponente MQP Measurement 169 6 34 Diagnosis 2 se a Peed a Ge a E OEE ee e 172 a beten awk toy Yl Rade de He AO A AC 172 634 2 Verhalten 42262565 a sc 044 a eR Ee eS 176 63 5 REACTIONS i 3 444 y 04 6h w ee Ewe aS A Ee a 180 0 3 51 SMUKE 44 46548 fae aan 180 63 5 2 Verhalten 22 45 poc eet e dR dadas asa ES 185 636 OCLWappEE oe neo sieaa a Ae a Bo ae a A 189 03r CODWrapper ec cuan ee a Roe oe Se ere ee he 193 7 Entwicklerdokumentation 197 7 1 Installation der Entwicklungsumgebung 197 7 1 1 Voraussetzungen lt c caac eacad a a A 197 7 1 2 Installation von Eclipse und der Plugins 197 7 1 3 Importieren des RMC Quellcodes 199 7 1 4 Erstellen von RMC ber das Ant Script 200 7 1 5 Voraussetzungen lt o lt lt eher ee 201 GLO BualkbTasks o ss roca a ar re eS 201 7 1 7 Konfiguration des Build Scripts 22 2 a a 201 1 2 Komponenten ios aeda oe Karen 202 Terol Mode i e Ee a A A o aS 203 7 2 1 1 Allgemelnes Coon 203 7 2 1 2 Durchgef hrte Erweiterungen 204 7 2 1 3 Implementierung neuer Funktionen 205 Wage EdWOP E EE
246. ht im Ecore definiert sind Wenn man nun im Ecore eine solche Methode anlegt und neu generiert erh lt man doppel te Methoden im Java Code Die selbst angelegte leere Methode kann dann einfach gel scht werden Die Aufrufe ber OCL verwenden dann die schon vorhandene Implementieren der neu angelegten Methoden Wird nicht nur ein Ecore Eintrag f r eine bereits schon bestehende Methode erstellt muss die neu angelegte Methode nach dem Generieren des Modells noch angepasst werden Die entsprechende Platzhaltermethode daf r befindet sich im Package de upb pg rmc umlz internal operations in der entsprechenden Klasse zu der die Methode hinzugef gt wurde also z B f r die Klasse NamedElement in NamedElementOperations java RefaSo amp ModelCockpit 7 Entwicklerdokumentation 209 d i UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft RefaSo ModelCoc Java de upb pg rmc umlz model UML genmodel Eclipse SDK olx Eile Edit Navigate Search Project Model Generator Run Window Help Fr 0 Q EEO 82 ES ics E 3 Data Modeling lt gt Plug in Devel S Debug 8 Java 2 san SH D Package Explorer H N 8 um genmodet 5 DI DS outine R e aog ve 8 umz 2 An outine is not available E EI dup pa rme cetwrapper ZS Ka SE 5 439 de upb pa rme diagnosties E ee E E de upb pg rme map SBE Den Hp Generate Editor Code ment Templateable lement
247. i ned ones OCLDEFINITION context Class def overriddenAttributes Set Property if definedAttributes gt size gt 0 and inheritedAttributes gt size gt 0 then definedAttributes inheritedAttributes else Set endif KOT zu ropas INFORMALDEFINITION Set of all the attributes of this class including those inherited from its parents OCLDEFINITION The OCL Query is predefined in the UML Z Meta model oe zu RefaSo amp ModelCockpit B OCL Messungen 269 Die Universit t der Informationsgesellschaft WS dl UNIVERSITAT PADERBORN Abschlussbericht B 2 3 Model level functions SEN A OOOO Cl OCLDEFINITION context Model def allClasses Set Class Class alllnstances asSet gt iterate c Class acc Set Class Set if c oclIsKindOf Behavior then acc else acc gt including c endif comme RS En baseClasses rn N SE OCLDEFINITION context Model def baseClasses Set Class allClasses parents oclAsType Class gt asSet CI CG 270 B OCL Messungen RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft Retasol D UNIVERSIT T PADERBORN Abschlussbericht B 2 4 StateMachine level functions directSimpleStates eea OOOO O INFORMALDEFINITION Set of all simple states of a StateMachine not considering the simple states within the composites states OCLDEFINITION context StateMachine def
248. i einer Fragegruppe nur Fragen zugeordnet werden k nnen Ziele Fragegruppen und Fragen besitzen weitere Eigenschaften die ber das Properties Fenster in Eclipse ver ndert werden k nnen Sollte das Properties Fenster nicht angezeigt werden kann sich der Benutzer mit Rechtsklick auf eines der Elemente das Kontext men zum ausgew hlten Element ffnen und ber Show Properties View die Properties View anzeigen lassen Fragen haben folgende Eigenschaften e Defined Quality Fragen k nnen Qualit tsattribute zugeordnet werden diese werden aber erst im Qualit tsmodell angelegt e Value Die Frage selber 66 4 Benutzerdokumentation RefaSo amp ModelCockpit D UNIVERSIT T PADERBORN Die Universit t der Informationsgesellschaft Abschlussbericht __Refaso Modelcoc Resource RMC Tutorial RMC_MQP_Tutorial mqp RMC lol File Edit Navigate Project MQP Editor Window Help a RE re ES l Resource E BE 3 5 ZN E 15 f 2 Information Need Model 5 Question BE General information about this model quality plan er add QuestionGroup delete Question Group add question delete Question add Goal Y Artefacts Enter a list of artefacts for this model quality plan The First artefact in this list must be your main artefact the artefact you want to analyze 1D Name Source Version Status T Are 1 0 Fertig Max Mustermann model 1 Context Model 2 Information
249. i mehrere Dateien mit Java Quellcode die die spezifizierte Grammatik parsen k nnen Um die Generierung zu starten wird JavaCC mit dem Dateinamen als Parameter aufgerufen Die von der Grammatik definierte Sprache kommt zum Einsatz wenn die Konfigurations datei geparst wird Die Konfigurationsdatei wird in dieser Sprache formuliert und w hrend 234 7 Entwicklerdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft Ai UNIVERSIT T PADERBORN Abschlussbericht minin des Parsens wird der dynamische Teil der Objekthierarchie der Refactoringkomponente auf gebaut Diese Klassen die w hrend des Parsens erzeugt werden sind in den Diagrammen im Kapitel 6 3 5 1 mit dem Stereotypen parsed gekennzeichnet Generell wurden einfache kurze Codest cke direkt in die Grammatik geschrieben Dagegen liegt die komplexe Logik die ber das Initialisieren der Objekthierarchie hinaus geht in den Java Klassen unter de upb pg rmc refactoring Die Grammatik selbst liegt im src Ordner unter refactoring trunk grammar als rmcrefactoring jj Hinweis Weiterf hrende Informationen zur generellen Funktionweise von JavaCC finden Sie auch in der Dokumentation zu JavaCC Die Grammatik Datei besteht aus folgenden Teilen 1 Einem kurzen Block von Optionen die das grundlegende Verhalten von JavaCC steu ern wie z B das Encoding der Datei selbst Die Optionen stehen in einem Block wie er in Listing 7 18 zu sehen ist
250. iagramm wird diese mit dem blichen Symbol x dargestellt RefaSo amp ModelCockpit 4 Benutzerdokumentation 47 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft ZExpression Editor xi TEX Hour cross Minute Abbildung 4 13 Eingabe von Z Ausdr cken im Klassendiagrammeditor L schen von Elementen Der Anwender kann Elemente ber den Canvas l schen Dazu werden ein oder mehrere Ele mente selektiert das Kontextmen ge ffnet und Delete from Model gew hlt Alternativ k nnen Elemente in der Outline gel scht werden indem dort delete aus dem Kontext men gew hlt wird Die Eingabe von Z Ausdr cken In UML Z sind folgende Elemente definiert die ber den Z Editor bearbeitet werden ZPre dicate Specification und ZExpression Specification Diese werden ber die Ouline an gelegt Um sie zu bearbeiten selektiert der Benutzer das gew nschte Element in der Outline In der Property View wird die Bearbeitung durch einen Klick auf den Button gest artet Abbildung 4 13 zeigt den ge ffneten Editor f r die Eingabe und die Bearbeitung von Z Ausdr cken Die Eingabe der Z Ausdr cke geschieht in ATEX Syntax Die Eingabe wird mit OK been det Folgende Befehle werden von RMC unterst tzt Tabelle 4 1 Z Referenz Prelude O cons scans pome Open bracket e Close bracket where Box separator Delta Schema name prefix Xi Schema name prefix 48 4 Benutzerdokument
251. ichen Einen Fragen Question und einen RefaSo amp ModelCockpit 4 Benutzerdokumentation 65 dl UNIVERSITAT PADERBORN Die Universit t der Informationsgesellschaft Abschlussb ericht RefaSo ModelCockpit Ml Resource RMC Tutorial RMC_MQP_Tutorial mqp RMC PIES File Edit Navigate Project MOP Editor Window Help Kr _ E E T Resource ER ES 5 1 Context Model The quality of a model is measured in a context This context is defined by the context model Use this Form to enter information about your context model Start by entering the moderator of this model quality plan a list of authors a list of roles used in this model quality plan and a list of artefacts After you have completed these tasks continue with the information need model v Overview General information about this model quality plan wal Moderator Enter the moderator for this model quality plan Model Quality Plan Name RMC_MOQP_Tutorial Version 10 Forename Max Software Development Model Wasserfallmodel gt Development Phase Entwurf Surname Mustermann Created Mon Apr 07 23 51 31 CEST 2008 Modified Tue Apr 08 01 54 33 CEST 2008 Phone 49 0 5251 60 3317 Status In Bearbeitung Y Office E4 301 Authors Roles Enter a list of authors for this model quality plan Enter the roles for this model quality plan Forename Surname Phone Office Add Author Name Description Add Role Max Mustermann
252. ieben per Drag and Drop in die Berechnungsfelder gezogen werden k nnen Sie befinden sich ganz unten im Dialog Durch die Berechnungs felder kann der Benutzer bestimmte Eigenschaften bewerten zum Beispiel die Anzahl von Methoden in einer Klasse Auf der linken Seite befinden sich die mit IF bezeichneten Felder auf der rechten Seite die dazugeh rigen THEN Felder Gibt der Benutzer eine Bedingung in ein IF Feld ein Anzahl Methoden kleiner drei muss auch eine Bewertung in das dazugeh rige THEN Feld eingetragen werden zum Beispiel eine Schulnote wie zwei F r den ELSE Fall der nicht ber die IF Bedingungen abgedeckt ist muss im RefaSo amp ModelCockpit 4 Benutzerdokumentation 71 dl UNIVERSITAT PADERBORN Abschlussbericht m Die Universit t der Informationsgesellschaft Refaso ModelCod enter measure name of measure 2 Predicate Pre Post Condition base C derived scale Boolean 7 unit of measurement Model acronym zeerco enter OCL measure OCL functions context Model def ZPPPC Set Boolean Operation alllnstancest EJ acv c Class allClasses asSet ascendants baseClasses children definedAttributes definedOperations descendants exists boolean expression gt e informal definition Boolean value for each Operation True if Z specification set For prec El cm Abbildung 4 33 MQP Messmodell
253. iert werden wird eine Fehlermeldung ausgegeben Im Folgenden werden die derzeitig unterst tzten Normalisierungen kurz beschrieben SchulnotenNormalization Hierbei handelt es sich um eine direkte Zuordnung eines Strings zu einem Wert zwischen 1 und 1 welcher zur Weiterverarbeitung ohne jegliche wei tere Berechnung zur ckgegeben wird Listing 6 1 zeigt die Skala mit dem Namen HighLow vom Typ Fuzzy Hier sind insgesammt f nf Strings jeweils genau einem Wert zugewiesen lt normalization type Fuzzy name HighLow gt lt parameter name Very Low value 0 1 gt lt parameter name Low value 0 2 gt lt parameter name Middle value 0 3 gt lt parameter name High value 0 5 gt lt parameter name Very High value 0 8 gt lt normalization gt Listing 6 1 Beispiel f r eine Schulnotennormalisation LinearNormalization Diese Klasse berechnet einen Wert mit Hilfe der Steigungsgleichung einer Geraden Die Gerade kann sowohl monoton steigend als auch monoton fallend sein siehe Abbildung 6 30 F r die Berechnung ben tigte Hilfsvariablen in Abbil dung 6 30 mit a und b bezeichnet werden aus der Konfigurationsdatei eingelesen bzw in der Klasse selbst berechnet PiecewiseLinearNormalization Bei der PiecewiseLinearNormalization handelt es sich um eine Normalisierung die aus mehreren monoton steigenden und oder monoton fallenden Streckenz gen bestehen ka
254. ign Qualt t bestimmen Semantische Vollst ndigkeit DragCoefficient 1 0 009 Architekt SpringForce Gibt es Klassen mit zu kurzem Namen dem BMC ME Tutorial rewickler SpringCoefficient mmm 9 99E 5 DefaultSpringLength L 70 0 Implementierbarkeit bestimmen i e mat Connectivity Filter Wird Mehrfachvererbung eingeset 0 Distance jo Overview Mehrfachvererbung L nge der Massennamen Implementierbarkeit Quality Model Verst ndlichkeit 3 Designqualt t e run E Wartbarkeit jemantisohe Vollst ndigkeit Presentationmodell options Grobe Klassen Verf gbarkeit von Vor und Nachbedingung pn A Y Contextmodell rerbungstiete ea I Informationneedmodel am e F Qualitymodel a F directed 1 Context Model 2 Information Need Model 3 Quality Model 4 Measurement Model 5 Presentation Model Selection Parent List Tree Table Tree with Columns Abbildung 4 35 MQP Pr sentationsmodell RefaSo amp ModelCockpit 4 Benutzerdokumentation 75 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft ausw hlen und die zu dem ausgew hlten Element geh rigen Eigenschaften werden in der Properties View von Eclipse angezeigt Hier kann sich der Benutzer auch die Ergebnisse der Messungen aus dem Messmodell ansehen Um die Messergebnisse an die Diagnose zu bermitteln muss der Benutzer Start Diagno stics dr cken 4 2 4 Diagnose Im folgenden Kapitel w
255. ing Wizard ol x Refactoring Split class Type selection decision Pleas choose the operations to move to the new class D forschen class de upb pg rmc umlz internal impl OperationImpl O vortragHalten dess de upb pg rmc umlz internal impl Operationimpl O nitarbeiterM dess de upb pg rmc umiz internal impl Operationimpl pr ft class de upb pg rmc umiz internal impl Operationimpl O publiziertDok class de upb pg rmc umiz internal impl OperationImpl h ltzentral class de upb pg rmc umiz internal impl OperationImpl haltUbung class de upb pg rmc umlz internal impl OperationImpl lt Back Einish Cancel Abbildung 5 71 Selektion auszugliedernder Methoden der Klasse darf kein Attribut verbleiben welches sich in der Delta Liste einer noch nicht selektierten Methode befindet Erst wenn dies gew hrleistet ist kann der n chste Schritt ausgef hrt werden siehe Abbildung 5 70 In diesem Beispiel werden die beiden Methoden h lt bung und h ltZentral bung f r das weitere Vorgehen ausgew hlt der n chste Schritt des Dialogs kann nun angew hlt werden siehe Abbildung 5 71 Die im letzten Schritt ausgew hlten Funktionen werden in eine neue Klasse ausgelagert die in diesem Dialogschritt angelegt wird Aus diesem Grund ist der Typ der Entscheidung diesmal eine naming decision und keine selection decision mehr Wichtig ist einen sinnvollen Namen f r die neue Klasse auszuw hlen siehe Abbildung 5 72 Die n
256. ion Type Declaration Hour Type Declaration Fachgebiet Type Declaration Text El Type Declaration H ZExpression Specification M Type Declaration Studiengang Type Declaration Text x M ZExpression Specification Text x M Ena J Abbildung 4 12 Properties eines Elementes im Klassendiagrammeditor Kardinalit ten an Assoziationen Kardinalit ten werden ber die Outline und die Proper ties bearbeitet Ungerichtete Assoziationen haben zwei Kindelemente vom Typ Pro perty In diesen werden tiber Literal Elemente die untere und obere Grenze definiert Unbeschr nktheit wird durch 1 eingegeben Gerichtete Assoziationen werden hn lich bearbeitet Jedoch findet sich hier das Property Element fiir den Ursprung in der Klasse und nicht an der Assoziation selber Z Ausdriicke ZExpression Specifications und ZPredicate Specifications werden ber den Z Editor eingegeben Dieser ist in Kapitel 4 2 2 2 beschrieben Grafisches Editieren Die Endpunkte aller Verbindungen im Diagramm lassen sich mit der Maus verschieben Dazu selektiert der Anwender das Ende der Verbindung und schiebt es auf das neue Element Ebenso ist es m glich den Typ einer Assoziation nachtr glich zu ndern Dies geschieht ber das Kontextmen der Assoziation Association type Hinweis Bei vielen Elementen ist es oft auch m glich Texte direkt zu editieren indem der Benutzer auf das entsprechende Textfeld im Canvas klickt Im D
257. ion Management Es wurden verschiedene Versionskontrollsysteme verglichen um f r die Projektgruppe ein geeignetes System auszuw hlen Nach dem Vortrag wurde Subversion als Versionskontrollsystem ausgew hlt Z Notation Mit Z und Object Z lassen sich pr zise Umschreibungen von Systemen und ihre Komponenten mit Hilfe mathematischer Definitionen angeben Die Ausarbeitung bezieht sich zum gr ten Teil auf das Buch von Jim Woodcock und Jim Davies Using Z WD96 Z ist ein Teil der Modellierungssprache UML Z und insofern bedeutend f r das Verst ndis von UML Z und die Einsatzm glichkeiten innerhalb von Modell strukturen Smells und Refactoring Smells sind Indikatoren f r schlechte Strukturen von Quelltext Daher kann man mittels Smells die Stellen im Code lokalisieren die M ngel aufweisen Diese k nnen mittels Refactorings behoben werden Refactoring von statischer und dynamischer Sicht Das Thema stellt die Konzept f r die Refactorings auf der Spezifikation CSP OZ dar Es dient als Grundkonzept f r die Refactorings auf UML Z Modellen OCL als Anfragesprache OCL ist eine Spezifikationssprache die von der Object Manage ment Group OMG parallel zur Unified Modeling Language UML entwickelt wird Zun chst als Hilfsmittel zur textuellen Spezifikation von Bedingungen wie Invarian ten Vor und Nachbedingungen mit Hilfe von Constraints entwickelt ist es dar ber hinaus m glich OCL als Anfragesprache zu nutzen und Eigenschaften von Mod
258. ird die Bedienung der Diagnose beschrieben Im Anschluss daran wird ein berblick ber die von der Diagnosekomponente verwendete Konfigurationsdatei und deren Struktur gegeben N here Informationen ber die Aufbau und die Erweiterung der Konfigurationsdatei kann unter Kapitel 7 2 4 1 nachgelesen werden 4 2 4 1 Benutzung der Diagnose Die Diagnose wird durch Anklicken des Start Diagnostics Buttons im Pr sentations modell gestartet Voraussetzung f r die Nutzung der Diagnose ist dass eine Messung im Messmodell des MQPs durchgef hrt wurde Innerhalb der Diagnose k nnen nur aus der Konfigurationsdatei siehe Abschnitt 4 2 4 2 bekannte Indikatoren weiter verarbeitet werden unbekannte werden nicht ber cksichtigt In Abh ngigkeit zum Grenzwert zu sehen im Point of view Abschnitt unter Selected Valuein Abbildung 4 36 werden die Diagnosen und dazu passende Therapien dem Benut zer im Abschnitt Diagnosis angezeigt Dieser Grenzwert kann im Abschnitt Point of View herauf bzw herabgesetzt werden Erh hen des Wertes bedeutet dass nur noch schwerwiegendere Modelldefekte bzw Dia gnosen und zugeh rige Therapien angezeigt werden Ein Herabsetzen des Wertes bedeutet auch f r nicht so gravierende Modelldefekte werden Diagnosen und passende Therapien anzeigt Ist der Grenzwert null so werden f r alle der Diagnose bekannten Indikatoren Diagnosen und Therapien angezeigt Im Abschnitt Diagnosis siehe Abbildung 4 36 werden in einer Baumstru
259. ispiel aus dem die Section entnommen wurde auch in zwei Spalten geteilt wurde W rde man colspan auf eins setzten k nnte man noch eine weitere Section daneben setzten Bei zwei w rde eine weitere Section unterhalb der Question Section angezeigt werden ber setLay outData wird das Layout der Section zugewiesen Die Methode getForm liefert die Form selber zur ck Die Methode getMQPEditor liefert die Implementierung des IMQPEditor zur ck ber diese Implementierung kommt man an das Modell und die darin gespeicherten Elemente um zum Beispiel weitere Elemente im Modell zu speichern oder darauf zu zugreifen Dazu sp ter im Kapitel 7 2 3 3 mehr Um eine eigene Form Klasse zu schreiben um zum Beispiel einen neuen Reiter f r ein neues Modell zu erstellen ist es am einfachsten eine vorhandene Java Datei zu kopieren und den Namen und die Methoden initGUI anzupassen D h dass der Name der Klasse und des Konstruktors ge ndert werden muss und in der Methode initGUI andere oder neue Sections aufgerufen werden m ssen Die restlichen Methoden sollten nicht ver ndert werden Wie eine Section aufgebaut ist und wie man eine neue schreibt folgt im n chsten Abschnitt Section Klasse Die Section Klassen Name Section java z B QuestionSection erben von der Klas se MQPBaseSection aus dem Paket de upb pg rmc mqp ui Jede Section Klasse hat mindestens folgende Methoden e Konstruktor e initGUI 226 7 Entwickler
260. kann sie mit Window gt Show View Outline ge ffnet werden Project Explorer Der Project Explorer bietet einen berblick ber die Projekte Die ein zelnen Modelle und Diagramme sind aufgelistet RefaSo amp ModelCockpit 4 Benutzerdokumentation 53 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Hinweis Falls ein Fenster in Eclipse Terminologie eine View fehlen sollte Mit Window Show View k nnen Fenster neu ge ffnet werden Anlegen von Elementen ber die Palette Die Elemente eines Zustandsdiagrammes werden mit Hilfe der Palette angelegt Dazu se lektiert der Anwender das gew nschte Element in der Palette und klickt auf den Canvas Elemente die zwei Knoten verbinden werden durch Ziehen einer Verbindung zwischen Ele menten auf dem Canvas erstellt Folgende Symbole finden sich in der Palette Statemachine Legt eine neue Statemachine an Eine Statemachine braucht immer eine Region als Inhalt Der Name der Statemachine kann direkt nach dem Anlegen eingegeben werden Simple State Legt einen neuen Zustand an Durch Auswahl des kleinen Pfeilsymboles erscheint folgende Unterauswahl mit der weitere Elemente angelegt werden k nnen Composite State Legt einen komplexen Zustand an Submachine State F gt der Region eine weitere Statemachine als Submachine hinzu Die eingebettete Statemachine wird ber einen Dialog erfragt Region Legt eine
261. ktur Diagnosen und eine Ebene tiefer die dazugeh rigen Therapien angezeigt Klickt man auf eine Diagnose oder Therapie gemeint ist hier der Name und nicht eine Checkbox so wird falls vorhanden im Abschnitt Description ein Beschreibungstext angezeigt Handelt es sich bei einer The rapie um eine Texttherapie so werden dem Benutzer in Textform Verbesserungsvorschl ge mitgeteilt In der unteren rechten Ecke der Diagnose befindet sich ein Button mit der Bezeichnung Refactoring W hlt man aus den vorgeschlagenen Therapien Refactoringtherapien aus durch Anklicken und Aktivieren der Checkboxen so wird die Refactoringkomponente angesprochen und f r das Durchf hren eines Refactorings werden alle notwendigen Daten bergeben 76 4 Benutzerdokumentation RefaSo amp ModelCockpit D UNIVERSIT T PADERBORN Die Universit t der Informationsgesellschaft Abschlus sb ericht __Retaso Modeicockpit W Resource RMC Tutorial RMC_MQP_Tutorial mqp RMC MEE Ele Edit Navigate Project Window Help ER Re ee ES Resource E Properties Presentatiormodel properties RMC Diagnostic 23 Ne s Ce Welcome to the diagnosis Diagnosis Point of view Select for each founded Diagnosis the Therapies you like to iniciate Select Value E O Short class n HE short class Sa SN Description Li Short class names Therapie for Vorlesung z O short class names Therapie for Person Li short class names Therapie for P
262. kumentation 61 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Add New Role Enter the name and description of the new role name Professor description Be Save Changes Cancel Abbildung 4 22 MQP Kontextmodell Neue Rolle Eingaben editieren und ber Save Changes speichern Um einen Autor zu l schen muss der Anwender den Autor in der Tabelle ausw hlen und ber Delete Author l schen Rollen Bereich Ein MQP kann f r verschiedene Personen interessant sein Daf r gibt es im MQP die Rollen Im Rollen Bereich kann der Anwender Rollen anlegen Add Role Rollen editieren Edit Role und Rollen l schen Delete Role Um eine Rolle anzulegen Abbildung 4 22 muss der Benutzer einen Namen sowie optional eine Beschreibung eingeben ber Save Changes speichert man die Rolle Die gespeicherten Rollen werden in einer Tabelle angezeigt Artefakt Bereich Im Artefakt Bereich k nnen Artefakte zum MQP hinzugef gt werden Die hinzugef gten Artefakte werden wie bei den Autoren und Rollen in einer Tabelle aufgelistet ber Add Artefact Edit Artefact oder Delete Artefact kann der Benutzer Artefakte anlegen edi tieren oder l schen Ein MQP hat immer ein Hauptartefakt vom Typ Softwaremodell auf das sich der MQP bezieht Dieses erscheint immer als Erstes in der Liste Daher ist es zu erst auch nur m glich ein Artefakt vom Typ Softwaremodell anzulegen bev
263. l utert und im Tutorial wird der Leser durch ein durchgehendes Anwendungsbeispiel geleitet Die letzten Kapitel besch ftigen sich mit der Architektur S 143 des entwickelten Tools und enthalten eine Dokumentation f r Entwickler S 243 sowie eine API Dokumentation S 243 Diese sind besonders f r Entwickler interessant und auch bewusst f r jene kon zipiert worden Hier sind Einstiegspunkte zu finden um die Weiterentwicklung des Tools voranzutreiben 24 1 Einleitung RefaSo amp ModelCockpit 2 Konzepte Nichts ist immer gleich true Thomas 2 1 Die Sprache UML Z Die Realisierung von RMC hat gewisse Anforderungen welche im Kapitel 1 1 beschrieben wurden Um sie zusammenzuf hren musste eine geeignete Sprache zur Softwaremodellie rung gefunden werden Da keine bekannte Sprache alle Anforderungen erf llen konnte wur den Teile von bestehenden Sprachen zu UML Z kombiniert Die genaue Zusammensetzung erkl rt der n chste Abschnitt UML Z ist eine Abwandlung der Modellierungssprache UML Die Elemente von UML Z sind derart ver ndert dass sie f r diese beiden Sichten CSP OZ als Semantik verwenden k nnen CSP OZ ist eine Kombination der Prozessalgebra CSP und der formalen Sprache Object Z OZ Dieses wiederum ist aus Z hervorgegangen indem Z um Objektorientierung erg nzt wurde Eine grundlegende Einf hrung in Z wird in WD96 gegeben Hierbei wird CSP genutzt um Klassendiagramme zu beschrieben Object Z hingegen bes
264. l Resource RMC Tutorial RMC_MQP_Tutorial mqp RMC MEE Elle Edit Diagram Navigate Project Window Help AA Ge TO SB A aaa Ser E T Resource Qualtstscharakteristie Qualit tsattribut 1 4 Qualit tsattribut 24 3 Quality Model Question General information about this model quality plan El Goal Modellqualit t lt gt Question Group Gruppe gt Question Frage 2 information Need Medel 3 Qulty Mode 4 Measurement Model 5 Presentation Model Selection Parent Lst Tree Table Tre wth Columns E Properties 53 Model Quality Attribute Qualit tsattribut 2 Core property A E E Definition E Appearance Model Quality Characteristic Model Quality Characteristic Qualit tscharakteristik Name Qualit tsattribut 2 Question Abbildung 4 30 MQP Editor Qualit tsmodell Palette gt Rae Zoom B Note r QC QA Connection Abbildung 4 31 MQP Qualit tsmodell Palette der Zeichenfl che RefaSo amp ModelCockpit 4 Benutzerdokumentation 69 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft e Model Quality Attribute e Name e Sub Characteristic e Superior Characteristic QA haben folgende Eigenschaften e Definition e Model Quality Characteristic e Name e Question 4 2 3 6 MQP Messmodell Als n chstes sollte vom Benutzer das Messmodell Measurement Model eingegeben wer d
265. lass def NAN Integer newAttributes gt size KOT GES RefaSo amp ModelCockpit B OCL Messungen 273 Die Universit t der Informationsgesellschaft WS D UNIVERSIT T PADERBORN Abschlussbericht OCLDEFINITION context Class def IAN Integer inheritedAttributes il size CI le An OCLDEFINITION context Class def OAN Integer self overriddenAttributes gt size CI le An OCLDEFINITION context Class def AON Integer self getAllOperations gt size commas OSS SoS AFC 274 B OCL Messungen RefaSo amp ModelCockpit de UNIVERSITAT PADERBORN Abschlussbericht miaz Die Universit t der Informationsgesellschaft NAME ACRONYM DON INFORMALDEFINITION Number of the new operations and the overridden operati ons of a Class OCLDEFINITION context Class def DON Integer definedOperations gt size USINGAUXILARYFUNCTIONS definedOperations LITERATURS BeA03b ACRONYM ION OCLDEFINITION context Class def ION Integer inheritedOperations size USINGAUXILARYFUNCTIONS inheritedOperations LITERATURS BeA03a ACRONYM OON OCLDEFINITION context Class def OON Integer overriddenOperations size USINGAUXILARYFUNCTIONS overriddenOperations LITERATURS BeA03a RefaSo amp ModelCockpit B OCL Messungen 275 dl UNIVERSITAT PADERBORN Abschlussbericht Die Universit t der Inform
266. lass names Diagnose gt lt reference name Short class names Symptom gt lt diagnosis gt Listing 7 13 Beispiel Anlegen einer neuen Diagnose Nachdem nun eine Diagnose erstellt wurde k nnen der Diagnose derzeit zwei Arten von Therapien zugewiesen werden Zum einen eine einfache Texttherapie und zum anderen eine Refactoringtherapie Als erstes soll nun n her auf das Erstellen einer Texttherapie eingegangen werden lt therapy name Short class names Therapie type text gt lt reference name Short class names Diagnose gt lt description description Text Therapy Give your classes longer names gt lt therapy gt Listing 7 14 Beispiel Anlegen einer neuen Texttherapie Eine Texttherapie besteht aus einem Namen einem Typen welcher in diesem Fall text ist einer Referenz auf eine Diagnose in diesem Beispiel Short class names Diagnose und einer Beschreibung siehe Listing 7 14 Das Anlegen einer passenden Refactoringtherapie ist sehr hnlich Sie besteht aus einem Namen einem Typen in diesem Fall refactoring dem Namen einer Eigenschaft sie he Eintrag PropertyldentifierList in Tabelle 4 7 auf Seite 84 einer Referenz auf eine Diagnose und einer Beschreibung f r die Anzeige in der GUI siehe Listing 7 15 lt therapy name Refactoring Therapy type refactoring gt lt property name CLASSBADNAME gt lt reference name Short class names Diagnose gt lt d
267. lasse Name des Modells ModelEditorPart java z B InformationNeedModelEdi torPart java Soll ein neuer Reiter hinzugef gt oder ein bestehender gel scht werden ge schieht dies in der Klasse MQPEditor im Paket de upb pg rmc mqp editor presentation in der Methode createPages Hier werden die Reiter ber folgenden Beispielcode ange legt informationNeedModelEditorPart new InformationNeedModelEditorPart this pagelndex addPage informationNeedModelEditorPart getEditorInput setPageText pagelndex getString _UI_2InformationNeedModel Listing 7 6 MQP EditorPart Dieser Beispielcode legt den Reiter f r das Informationsbed rfnismodell an Die Klasse informationNeedModelEditorPart ist die Grundlage f r den Reiter Information Need Model In ihr wird die Form Klasse f r das Modell mit den grafischen Elementen einge bunden ber addpage werden die Reiter hinzugef gt Die Reihenfolge in der die Reiter hinzugef gt werden entspricht dabei auch der Reihenfolge in der die Reiter sp ter in Eclipse erscheinen Soll f r ein neues Modell ein neuer Reiter erstellt werden kann man die Datei informationNeedModelEditorPart java kopieren und muss sie an vier Stellen anpassen 1 Klassenname 2 Konstruktorname 224 7 Entwicklerdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft Ai UNIVERSIT T PADERBORN Abschlussbericht minin 3 In der Methode setInput muss der Befehl viewer setI
268. lementen auf den Canvas werden direkt als Wurzel des Baumes gew hlt Dies wird durch den Aufruf von contentOutlineViewer setSelection new Struc turedSelection selectedDomainElement in der Methode getContentOutline Page umgesetzt Die Provider f r den Tree finden sich in den Klassen UMLProper tySource UMLPropertyDescriptor und UMLAdapterFactoryContentProvider F r dessen genauere Funktionsweise und Implementierung sei auf das UML Z Modell und die UML2 Dokumentation verwiesen RMC Men punkt In einem normalen EMF Baumeditor sind die Kontexmen eintr ge Create child und Create sibling vorhanden Diese sind jedoch sehr un ber sichtlich und unkomfortabel Aus diesem Grund wurde das Kontextmen um das RMC Men erg nzt In diesem finden sich nur die wichtigsten Elemente des Model les Dieses Men stellt eine gefilterte Sicht auf die beiden Men s Create child und Create sibling dar Die angezeigten Elemente finden sich in der Collection my Ac tionList delete Men punkt Das Men zum L schen von Elementen des Baumes wurde auch neu implementiert Das Entfernen von Elementen wird durch den Aufruf eines Delete Command ber eine Action durchgef hrt Details zu diesen Techniken finden sich in den Dokumentationen ber Eclipse und EMF Initialize Statemachine Men punkt Auf Klassen soll es m glich sein Zustandsdiagram me zu erzeugen Der Kontextmen wurde um einen solchen Eintrag erweitert Dazu wurde die plugin xml Datei des d
269. lisiert als XML Datei gespeichert Dadurch ist es m glich die Ergebnisse mehrerer Messungen zu speichern Das Kompositionsstrukturdiagramm aus Abbildung 6 26 zeigt die Relationen zwischen re levanten Klassen und Schnittstellen der Komponente IMQPInternalModel IMadel e CalculateParser IOCL Indicator DerivedMeasure Abbildung 6 26 Kompositionsstrukturdiagramm MQP Measurement Abbildung 6 27 zeigt das Klassendiagramm der Komponente MQP Measurement Die Klasse Measurement ist eine zentrale Kontrollklasse der Komponente Die Klasse Mea surement fragt ber die Schnittstelle IMQPInternalModel der Komponente MQP Metamodel de upb gp rmc mqp die genutzten bzw gew hlten Messungen an bergibt der Komponente OCLWrapper den OCL Ausdruck der Messungen der Typen Objective BaseMeasure und DerivedMeasure und das zu messende UML Z Modell ber die Schnitt stelle IOCL Die Messungen werden im OCLWrapper auf dem UML Z Modell durch gef hrt und die Ergebnisse der Messungen werden der Klasse Measurement zur ckgeliefert Die Klasse Measurement schreibt die Ergebnisse der ObjectiveBaseMeasures und Deri vedMeasures und speichert die Messungen in der Klasse MeasurementResult Die Referenz der MeasurementResults und der zu messenden Indicators wird der Klasse CalculateIn dicators bermittelt Die Klasse CalculateIndicators berechnet die Ergebnisse der In dikatoren auf Basis der Ergebnisse der ObjectiveB
270. lity Plan i UMLZ Classdiagram 7 UMLZ Model VI UMLZ Statediagram lt Back Einish Cancel Abbildung 5 49 Neuen Modellqualit tsplan anlegen Mi New olx Model Quality Plan Create a new Model Quality Plan KA Enter or select the parent folder RMC Tutorial fs gt RMC Tutorial File name RMC_MQP_Tutorial map Advanced gt gt coat Abbildung 5 50 Modellqualit tsplan anlegen 5 Tutorial RefaSo amp ModelCockpit dl UNIVERSITAT PADERBORN moa H paa Die Universit t der Informationsgesellschaft Abschlus sb er icht Refaso ModelCockpit MM New olx MQP general settings A Please provide some general information about your model quality plan lt gt model quality plan name RMC_MOP_Tutoriall version Ju software development model wasserfallmodell hd development phase ETT status In Bearbeitung A Abbildung 5 51 Modellqualit tsplan grundlegende Einstellungen verwendete Vorgehensmodell software development model und die aktuelle Entwick lungsphase development phase aus In unserem Beispiel ist der Name MQP Tutorial die Version 1 0 das Vorgehensmodell Wasserfallmodell und die Entwicklungsphase Ent wurf Im letzten Schritt dieses Dialoges gibt der Anwender den Status status hier In Bearbeitung des Modellqualit tsplans ein und best tigt mit Next Abbildung 5 50 zeigt den ausgef llten Dialog Das Modelqualit tsplan Projekt ist nun e
271. lschaft E Java de upb p Ele Edit Refactor Navigate Search Project mc umlz diagram classeditor model umiz gmfmap Eclipse SDK Run GMFMap Editor Window Help Abschlussbericht RME ir 0 286 387 Y Sen 2 E ES E Data Modeling Jr Debug Java H Package Explorer 22 0 un BE Outline 23 u lp A platform resource de upb pc J de upb pg rmc cztwrapper a i upb pg rmc umlz 8 platform resource de upb pc Il de upb pg rmc diagnostics E E de upb pg rmc mgp EHE de upb pg rme map confmodel EHE de upb pg rmc map diagnosticsinterfsc EHE de upb pg rmc map diagnosticsprovide 5 52 de upb pg rmc mgp diagram quality EHE de upb pg rmc mgp edit EHE de upb pg rmc map editor Ip cl de upb pg rmc map measurement de upb pg rmc map tests Tei cl de upb pg rme map ul 3 42 de upb pg rmc refactoring 32 de upb pg rmc refactoring commoninte 42 de upb pg rmc refactoring diagnosticsi gt de upb pg rmc refactoring editorinterf 5 52 de upb pg rmc refactoring refactoringe 122 de upb pg tme umlz EEY de upb pg rmc umiz diagram classeditc se E JRE System Library JavaSE 1 6 E Plug in Dependencies Ey icons Gy META INF D model Gy templates UML ecore 3319 25 01 08 19 UML genmodel 3319 25 01 08 EN umiz gmfgen 3098 15 01 08 1 BR umlz gmfgraph 2200 19 11 07 Ri umiz gmfmap 2392 27 11 07 1 umlz gmftool 3319 25 01 08 1 GB umlz2 gmfgen 3319 25 01 08 BR umlz2 gmfgraph 3098 15 01 0 E umiz2 gmfmap 3098 15 01 08
272. lschaft Mi New Jol x Select a wizard gt Create a new Model Quality Plan Wizards type Filter text E gt General X File C Folder Project Untitled Text File H Example EMF Model Creation Wizards HE RMC a Model Quality Plan UMLZ Classdiagram LO UMLZ Model ld umLz Statediagram Abbildung 4 17 MQP Wizard MQP ausw hlen L schen von Elementen Der Anwender kann Elemente ber den Canvas l schen Dazu werden ein oder mehrere Ele mente selektiert mittels rechter Maustaste das Kontextmen ge ffnet und Delete from Model gew hlt 4 2 3 Modellqualit tsplan Der Editor des Modellqualit tsplans MQP erm glicht die Eingabe eines MQPs Um ein MQP anlegen zu k nnen muss vorher ein Projekt in Eclipse vorhanden sein siehe Kapitel 4 2 1 4 2 3 1 MQP anlegen Abbildung 4 18 zeigt den Dialog f r den Dateinamen des MQPs und das Projekt in welchem der neue MQP gespeichert werden soll Hat man dieses ausgew hlt geht es mit Next zum n chsten Schritt In Abbildung 4 19 werden die allgemeinen Informationen ber den MQP eingegeben Als erstes muss daf r ein Name f r den MQP model quality plan name und eine Version version eingetragen werden Der Name ist dabei frei w hlbar Die Versionsnummer muss in der Form x y sein wobei x und y f r Zahlen stehen Des Weiteren werden das Software entwicklungsmodell software development model die Entwicklungsphase develop ment phase sowie d
273. ly DA False Is Static E false Ts Unique G true Lower Sp Name I name Redefined Property Subsetted Property Template Parameter Type 7 Type Declaration Text Upper 1 Visibility private Abbildung 5 42 Tutorial Eigenschaften des Attributes Name geklickt Im erscheinenden Eingabefeld wird der Name des Attributes nun name eingegeben Abbildung 5 42 zeigt das Resultat Das letzte Attribut wird analog erstellt indem mit dem Werkzeug Attribute auf die Klasse Vorlesung geklickt und als Name raum angegeben wird Abbildung 5 43 zeigt das Resultat 5 2 1 4 Beziehungen der Klassen modellieren Im letzen Schritt werden die Beziehungen der Klassen modelliert Dazu werden die Ver erbungsbeziehungen und Assoziationen der Klassen angelegt Abbildung 5 20 zeigt das Diagramm im Editor Vererbung Student Um eine Vererbung von der Klasse Person auf die Klasse Student zu modellieren w hlt der Anwender aus der Palette das Werkzeug Generalization aus Dann wird in der Zeichenfl che zun chst auf die Klasse Person und schlie lich auf die Klasse Student geklickt Abbildung 5 44 zeigt das Resultat Vererbung Professor Um eine Vererbung von der Klasse Person auf die Klasse Professor zu modellieren w hlt der Anwender aus der Palette das Werkzeug Generalization aus Dann wird in der Zeichenfl che zun chst auf die Klasse Person und schlie lich auf die Klasse Professor geklickt Abbildung 5 45 zeigt das Resultat RefaSo a
274. me erf llen den gleichen Zweck wie Variablenzuweisungen in Java nur dass man den Va riablen ein Terminal bzw Nichtterminal zuweist Innerhalb dieses Blocks steht in dem Block return Variable create type name der R ckgabewert von Variable Auf diese Art und Weise wurden alle Elemente der Sprache definiert Eine detaillierte re Beschreibung der M glichkeiten von JavaCC findet sich unter der URL im Hinweis auf Seite 235 Variable lt gt Variable String name Class lt gt type Variable type VariableType name VariableName return Variable create type name Listing 7 23 Grammatik Abschnitt interne Tokenliste 7 2 5 2 Abh ngigkeiten der Grammatik Wie man dem Kapitel 4 2 5 2 Seite 82 entnehmen kann h ngt die Grammatik und da mit der Inhalt der Konfigurationsdatei von der Abfragesprache ab in der die Abfragen Queries ausgedr ckt werden Diese Sprache ist derzeit OCL Sie erlaubt au er reinen Abfragen auch das Ausf hren von Java Methoden die im UML Z Modell definiert sind Hierdurch werden die Queries flexibler da Abfragen und nderungen beliebig kombiniert werden k nnen Allerdings ergibt sich daraus auch dass das UML Z Modell nicht losgel st von der Grammatik ver ndert werden kann Denn falls beim ndern eine der Methoden betroffen sind die aus OCL heraus genutzt werden k nnen ndert sich ebenfalls das Verhalten der Queries OCL erf llt hier also eine Doppelr
275. ment erzeugt Die Klasse OCLParseEnvironment stellt mit den Operationen defineOperations parse parseContextFree sowie parseAndEvaluate die zum Parsen und Auswerten von OCL Ausdr cken notwendigen Funktionalit ten bereit Geparste OCL Ausdr cke werden dabei in der Klasse OCLQuery bzw OCLContextFreeQuerygekapselt Ber cksichtigt wurden hierbei sowohl kontextfreie als auch kontextbezogene OCL Ausdr cke gem OMGO6 Kontextfreie Ausdr cke werden mit Hilfe der Klasse OCLHelper kontext bezogene Ausdr cke mit der Klasse OCL erzeugt Ein Kontext ist in diesem Zusammenhang eine Beschreibung von Elementen bzw Element typen auf die sich die OCL Ausdr cke beziehen Das Charakteristikum kontextfreier Aus dr cke ist dass der Kontext nicht wie bei OCL blich textuell angegeben werden muss und RefaSo amp ModelCockpit 6 Architekturdokumentation 191 Die Universit t der Informationsgesellschaft WS D UNIVERSIT T PADERBORN Abschlussbericht sd Complex_doRefactoring J self ref SubRefactoring refactoring AbstractRef actoring doRefactoring receiver IProgressParent tru 0 4 SubRefactoring ref this subRefactorings 1 1 result execute this true e condition condition validate T H 1 T H 1 A 1 H 1 H 1 H 1 H H H 1 H 1 H 1 1 H 1 1 H 1 1 H H Abbildung 6 44 Sequenzdiagramm Ausf hren eines komplexen Refactorings 192 6 Architekturdokume
276. mp ModelCockpit 5 Tutorial 117 d i UNIVERSIT T PADERBORN Die Universit t der Informationsgesellschaft Abschlussbericht Wi Resource RMC Tutorial umiz_class_diagram RMC Ele Edit Navigate Project Window Help LE Er RefaSo ModelCoci Beles El Resource Aggregation Association Class Client Dependency Default End Is Derived Is Derived Union Is Leaf Is Ordered Is Read Only Is Static Is Unique Lower Name Redefined Property Subsetted Property Template Parameter Type Type Declaration Text x Rl Upper Visibility composite E lt class gt Vorlesung Abbildung 5 43 Tutorial Eigenschaften des Attributes Raum esource RMC Tutorial default umlz_class_diagram RMC Ele Edit Diagram Navigate Project Refactoring Window Help Ve ee cs EEE af X H 10 ES Resource Mi defaut umiz dass dagram D H Person D a u attributes sl name Text vorname Text emailadresse Text operations E Professor attributes semesterWochenStunden N gehalteneVortr ge N operations forschen vortragHalten mitarbeiterMotivieren pr ft student Student publiziertDokument h ltZentral bung haltUbung E Vorlesung attributes H Student attributes matrikelnummer N studiengang Studiengang _ operations lernen vorlesung Vorlesung zeit Time fachg
277. n Auf diesen Praxistest mussten wir aus Zeitgr nden leider verzichten Neben den fehlenden Funktionen sind auch viele weitere Erweiterungen unserer Software denkbar Die Diagnose kann ber eine Konfigurationsdatei um neue Symptome Diagnosen und The rapien erweitert werden Zus tzliche Normalisierungstypen k nnen ber Erweiterungen des Quellcodes erg nzt werden Des weiteren k nnte die Diagnose um zus tzliche Intelligenz bei der Zuordnung von Indikatoren erg nzt werden Erweiterungsm glichkeiten f r die Dia gnose werden im Kapitel 7 2 4 4 ausf hrlich beschrieben In unserer Software wurden viele neue Konzepte wie die Modellierung von Qualit t mit Modellqualit tspl nen oder die Bearbeitung von UML Z Modellen erstmals implementiert Wir haben somit gezeigt dass diese Konzepte auch implementierbar sind Durch den mo dularen Aufbau unserer Software und die vielen Erweiterungsm glichkeiten haben wir eine solide Basis geschaffen die auch in Zukunft weiter genutzt und verbessert werden kann RefaSo amp ModelCockpit 9 Res mee 251 dl UNIVERSITAT PADERBORN Abschlussbericht E Die Universit t der Informationsgesellschaft RefaSo ModelCoc 252 9 Resiimee RefaSo amp ModelCockpit Literaturverzeichnis BeA03a BeA03b BPC05 CHR91 eA01 EMF Fow99 GMF HLO3 Ho Hoa04 Aline L cia Baroni and Fernando Brito e Abreu A Formal Library for Aiding Me trics Extraction 4th Inte
278. n Das Augenmerk bei der Durchf hrung der Erg nzungen lag darauf m glichst viele bereits bestehende Strukturen der UML2 weiterzuverwenden Operationen bzw Operationsschemata Enable und effect Die Figenschaften enable und effect einer Operation in Z entspre chen den Assoziationen pre und postcondition in UML In der UML ist es bereits vorgesehen hier neben nat rlichsprachlichen Bedingungen mit Hilfe der OCL auch formale Bedingungen zu definieren ber die neu eingef hrte Klasse ZPredicateSpe cification kann hier jetzt ein Z Pr dikat angegeben werden siehe Abbildung 6 10 input simple output Die Enumeration ParameterDirectionKind wurde um den Wert simple erg nzt F r input und output aus Z werden die bestehenden Werte in und out aus der UML verwendet RefaSo amp ModelCockpit 6 Architekturdokumentation 155 de UNIVERSITAT PADERBORN zm Die Universit t der Informationsgesellschaft Abschlussb ericht umiz editor presentation umlz editor z umlz umlz editor actions editor dialogs Abbildung 6 9 Paketdiagramm UML Z Model Editor 1 1 Operation K gt Constraint 1 1 postcondition ValueSpecification ZPredicateSpecification zPredicate ZPredicate precondition Abbildung 6 10 Klassendiagramm Realisierung von enable und effect Bedingungen 156 6 Architekturdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft Ai UNIVE
279. n Der Anwender kann zus tzlich noch weitere Messungen und Indikatoren ber add measure und add indicator anlegen In Abbildung 4 33 ist der Dialog zum Eingeben einer Messung dargestellt Der Benutzer muss hier den Namen und das Akronym der Messung eingeben sowie die Skala die Einheit der Messung und ob die Messung eine Basis oder eine abgeleitete Messung ist ausw hlen F r die Messung selbst steht dem Benutzer ein mehrzeiliges Textfeld zur Verf gung In diesem Feld kann der Benutzer die Messungen in OCL eingeben Zur Unterst tzung stehen dem Anwender einige OCL Funktionen rechts in der Liste zur Verf gung Diese Funktionen kann er per Drag and Drop in das Textfeld ziehen Hat der Benutzer derived ausgew hlt werden ihm zus tzlich noch alle anderen bereits definierten Messungen in einer Liste angezeigt Diese k nnen auch 70 4 Benutzerdokumentation RefaSo amp ModelCockpit Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft __Refaso Modelcockpit Ml Resource RMC Tutorial RMC_MQP_Tutorial mqp RMC Me E File Edit Navigate project MQPEdtor Window Help o a AAA ES Resource E RMC MOP Tutorial D SE 4 Measurement Model Hier noch sch ne berschrift General information about this model quality plan E Model Quality Attribute Mehrfachvererbung 4 Protected Attributes Number PROAN 2 a 4 Ascendants Number ASCN Public Attributes Number PUBAN El Model
280. n M Upper 51 Visibility private Abbildung 5 30 Tutorial Eigenschaften des Attributes semester WochenStunden Wi Resource RMC Tutorial default umlz_class_diagram RMC BME Eile Edit Navigate Project Window Help ls ma lu as SESCH Properties 3 EE GE Aggregation composite Association Class E lt Class gt Professor Client Dependency Default He End Is Derived Is Derived Union Is Leaf Is Ordered Is Read Only Is Static Is Unique Lower Name gehalteneVortr ge Redefined Property Subsetted Property Template Parameter Type Type Declaration 8 Upper G1 Visibility private Abbildung 5 31 Tutorial Eigenschaften des Attributes gehalteneVortr ge 110 5 Tutorial RefaSo amp ModelCockpit dl UNIVERSITAT PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft miz_class_diagram RMC ri 7 45 Gs gt ES Resource iprpertes 23 gt Ral Body Condition Client Dependency Concurrency sequential Detta List Is Abstract ie false Is Leaf ik false Is Ordered r false Is Query i false Is Static i false Is Unique E true Lower Di Method Name I forschen Postcondition Precondition Raised Exception Redefined Operation Template Parameter Type Upper 1 Visibility public Abbildung 5 32 Tutorial Eigenschaften der Methode forschen Um den Namen der Operation anzugeben wir
281. n eines Refactorings RefaSo amp ModelCockpit 4 Benutzerdokumentation 85 dl UNIVERSITAT PADERBORN Die Universit t der Informationsgesellschaft Abschlussbericht RME NICHTTERMINAL PRODUKTIONEN BESCHREIBUNG oe Decision Decisions VariableType lt Sm gt lt IDENTIFIER gt Decision Decision DecisionType ContextQuery DecisionDescription DecisionReturnVariable DecisionValidation DecisionType Type Decision TypeElement DecisionType Element StringInputDeeision ListQueryDecision PredicateSplitDecision Die Definition von Entscheidungen Gibt vollqualifizierte men der Typen wieder de upb rmc umlz NamedElement Beschreibt eine Entscheidung die vom Anwender zu treffen ist Der Typ einer Entscheidung Ein DecisionTypeElement ist entweder eine StringInputDecisi on oder ListQueryDecision oder PredicateSplitDecision Eine StringInputDecision ist eine Entscheidung die eine Eingabe einer Zeichenfolge zur Folge hat Bei einer ListQueryDecision wird ein Element aus einer Liste ausgew hlt und bei einer Predica teSplitDecision wird ein Pr dikat in zwei Bestandteile aufgeteilt DecisionDescription Description Die Beschreibung einer Entschei StringLiteral dung DecisionValidation DecisionValidation DecisionValidationDescription DecisionValidationQueries ContextQueryList DecisionValidation Description
282. ndig zu machen siehe Un terkapitel 6 2 4 144 6 Architekturdokumentation RefaSo amp ModelCockpit Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft IMQP Hier ber meldet sich die Diagnostics Komponente an der ModelQualityPlan Komponente an um Indikatoren durchgef hrter Messungen zu erhalten Daraufhin bietet Diagnostics entsprechende Verbesserungen in einer eigenen GUI an siehe Unterkapitel 6 2 5 IZParser Das UML Z Modell nutzt diese Schnittstelle um Syntaxfehler in Z Ausdr cken zu finden Platzhalter in fehlerfreien Ausdr cken k nnen dabei durch Elemente aus dem Modell ausgetauscht werden siehe Unterkapitel 6 2 6 In Unterkapitel 6 3 werden die Komponenten ModelQualityPlan MQP Refactoring UML Z Model UML Z Editor sowie die Komponenten CZTWrapper und OCL Wrapper vorgestellt Bestandteil dieses Kapitels sind Klassendiagramme die Strukturele mente und Zusammenh nge zwischen diesen visualisieren sowie Sequenzdiagramme die die Kommunikation innerhalb der Komponenten beschreiben Im Detail erf llen die Kom ponenten jeweils folgende Aufgaben UML Z Model Die Komponente UML Z Model beinhaltet das Metamodell der Spra che UML Z Des Weiteren bietet die Komponente Funktionalit ten zum Speichern eines UML Z Modells und Einlesen eines gespeicherten UML Z Modells an UML Z Editor Der UML Z Editor ist das zentrale Element um nderungen an den vor liegenden Diagrammen vorzu
283. ne rudiment re L sung dar Die Z Ausdr c ke werden hierbei nicht ber Commands im Modell gespeichert sondern direkt gesetzt Dieses Vorgehen erm glicht jedoch keine Undo Redo Aktionen und kann zu Komplikatio nen f hren Der Quelltext sollte an den mit TODO gekennzeichneten Stellen entsprechend erweitert werden Neue Diagrammtypen UML Z besteht aus Diagrammen vom Typ Klassendiagramm und Zustandsdiagramm Falls hier eine Erweiterung des Modells um einen neuen Typ stattfinden sollte muss der UML Z Editor um die entsprechenden Funktionen erg nzt werden Dazu sind folgende Schritte notwendig e ein Modell f r die Notation des neuen Diagrammes erstellen gmfgraph e die Toolbar f r dieses Diagramm modellieren gmftool e aus UML Z Modell Graph Modell und Tool Modell ein Mapping erstellen e gmfmap e aus diesem Mapping das Modell f r die Generierung erstellen gmfgen e den Quelltext generieren und notwendige Anpassungen vornehmen Diese Schritte verlaufen analog zu der Beschreibung der Erstellung des aktuellen UML Z Editors in Kapitel 7 2 2 1 Um den neu erstellten Editor in der passenden RMC Gruppe im 222 7 Entwicklerdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft WS Ai UNIVERSIT T PADERBORN Abschlussbericht minin Eclipse Wizard erscheinen zu lassen ist es notwendig die plugin xml anzupassen Im ExtensionPoint lt extension point org eclipse ui newWizards gt wird der
284. nehmen Zudem ist auch ein Anlegen neuer Diagramme m glich ModelQualityPlan In der Komponente ModelQualityPlan kann man eigene Ma st be f r Qualit t erstellen und auf Basis der aufgestellten Ma st be die Qualit t von Klassen und Zustandsdiagrammen messen Refactoring Mit der Komponente Refactoring ist es m glich das zu bearbeitende Dia gramm mittels vordefinierter Regeln verhaltenserhaltend zu ver ndern Diagnostics Die Komponente Diagnostics erh lt Eingaben von der Komponente Model QualityPlan Auf Basis des Inputs erstellt diese eine Diagnose und schl gt geeignete Therapien vor CZTWrapper Mit dem CZTWrapper werden Z Ausdr cke analysiert und auf Konsis tenz bezogen auf das dazugeh rige UML Z Modell gepr ft OCLWrapper Der OCLWrapper bietet eine M glichkeit an um Anfragen zu Eigenschaf ten ber Modellelemente bzw Modellelementmengen an das Modell zu stellen Eine weitere Aufgabe besteht darin durch OCL Anfragen das Modell zu ndern Einzelne Beschreibungen zu Komponenten von RMC ber cksichtigen Abh ngigkeiten ex terner Frameworks und Bibliotheken die zum Zeitpunkt des Entwurfs feststanden Dazu z hlen die Komponenten UML Z Model abh ngig von Eclipse Modeling Framework EMF UML Z Editor abh ngig von Graphical Modeling Framework GMF CZT Wrapper abh ngig von Community Z Tools MU05 und OCLWrapper RefaSo amp ModelCockpit 6 Architekturdokumentation 145 dl UNIVERSITAT PADERBORN Abschluss
285. nen alten Pr dikat bereinstimmt Um die bereinstimmung zu gew hrleisten wird intern ein Model checker verwendet Abbildung 4 42 80 4 Benutzerdokumentation RefaSo amp ModelCockpit di UNIVERSIT T PADERBORN Die Universit t der Informationsgesellschaft Abschlussbericht ame RefaSo ModelCoct IM Multiple Errors have Occurred cx Q Multiple operations have reported errors Select an error to view its details Error while parsing the configuration file refactoring conf in line 36 Time of error Refactoring Parse Error Time of error 10 April 2008 22 31 14 MESZ Error while parsing the configuration file refactoring conf in line 36 Encountered ContextQuery at line 38 column 25 Was expecting one of SimpleRefactoring 2 Abbildung 4 38 Klassendiagrammeditor Fehlermeldung beim Aufruf des Refactoring men s Ml Refactoring Wizard ol x Split class Refactoring to split a class selected operations will be transfered to the new class so the selected one will be reduced All attributes on which the selected operations depend on from delta list or used in owned predicates will be transfered as well Abbildung 4 39 Refactoringassistent Startseite f r Refactoring Split Class RefaSo amp ModelCockpit 4 Benutzerdokumentation 81 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Refaso ModelCockpit Ml Refactoring Wizard
286. nes IRefactoringElement Objektes von au en Ausf hren eines Refacto rings auf bestimmte Modellelemente wird mit Hilfe der verf gbaren Modellelemente eine VariableToElementMap erstellt Diese beinhaltet Variable Objekte die durch beliebige Objekte belegbar sind 180 6 Architekturdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft WS dl UNIVERSITAT PADERBORN Abschlussbericht See Ist die ApplicabilityCondition validiert und alle Decisions getroffen so kann mit der resultierenden Belegung von Variablen die Refactoringberechnung AbstractRefactring angesto en werden Hier werden in weiteren Bestandteilen des AbstractRefactoring Pre condition BeforeTemplate Calculation AfterTemplate mit Hilfe von OCL Abfra gen in Form von IOCLQuery Objekten auf dem Modell ausgef hrt Diese Queries k nnen Objekte als Ergebnis zur ckliefern Der RefactoringManager implementiert sowohl das Interface IRefactoringEditor siehe Abschnitt 6 2 2 als auch IRefactoringDiagnostics siehe Abschnitt 6 2 3 Detaillierte Informationen zu einzelnen Klassen sind in folgenden Abschnitten gegeben le Condition SubRefactoring parsed parsed parsed A A EnforcedRefactoring ComplexRefactoring SubRefactoringCondition gt gt 1 S S 0 VariableAssignment executes parsed 1 1 CakulationTemplate parsed IProgressParent pars
287. neue Region an Eine Region nimmt Zust nde und Transitionen auf Final State Legt den Endzustand an Dieser liegt immer in einer Region Initial Legt den Startzustand an Dieser liegt immer in einer Region Shallow History Legt eine flache Historie an um den letzen aktiven Zustand des umschlie enden States zu speichern Deep History Legt eine Historie an um den letzen aktiven Zustand des umschlie enden States aber nicht der Unterzust nde zu speichern 54 4 Benutzerdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft Retasol Ai UNIVERSIT T PADERBORN Abschlussbericht Fork Legt eine Gabelung von Transitionen an sh Join Legt eine Zusammenf hrung mehrer Transitionen an y amp Junction Legt eine neue Verzweigung von Transitionen an Choice Legt eine neue Entscheidung von Transitionen an X Terminate Legt einen Endzustand von Transitionen an Entry Point Legt den Eintrittspunkt der Statemachine an e Exit Point Legt den Austrittspunkt der Statemachine an Y Transition Legt eine neue Transition an Die Zuordnung von Methoden zu Transitionen ist auf Seite 57 erl utert Hinweis Um einer Statemachine Zust nde hinzuzuf gen wird eine Re gion ben tigt Warnung Der Canvas stellt genau eine Statemachine dar Bei nderung der Gr e dieser Statemachine kann es zu unvorhersehbaren Effekten kommen In diesen Fall hilft es das Diag
288. ng those inherited from its parents OCLDEFINITION The OCL Query is predefined in the UML Z Meta model Keo GE RefaSo amp ModelCockpit B OCL Messungen 267 Die Universit t der Informationsgesellschaft WS dl UNIVERSITAT PADERBORN Abschlussbericht eop Attributes defined in the class that are not overriding inherited ones OCLDEFINITION context Class def newAttributes Set Property definedAttributes inheritedAttributes COMMENTS The definition excludes inherited Attributes and consequently it excludes overridden Attributes Eu OUPTVALUETYPE Set Property INFORMALDEFINITION Set of inherited attributes that are not overridden by locally de fined ones NAME inheritedAttributes OCLDEFINITION context Class def inheritedAttributes Set Property self getInheritedMembers gt select f Member f oclIsKindOf Property gt collect f f oclAsType Property gt asSet CA Eu 268 B OCL Messungen RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft de UNIVERSITAT PADERBORN Abschlussbericht miaz EN OO Set of attributes defined not inherited in the class OCLDEFINITION context Class def definedAttributes Set Property self attribute gt asSet Keo zu Ee INFORMALDEFINITION Set of attributes defined in the class that override inherited ones Set of inherited attributes that are overridden by locally def
289. ngen rea lisiert welche im Qualit tsmodell definiert wur den Messung Qualit ts modellierung Um die Qualit t des Modells zu erhalten werden Messungen durchgef hrt Ein Durchlauf von Mes sungen besteht aus vielen Teilmessungen die teil weise aufeinander aufbauen Die duchzuf hrenden Messungen k nnen un Software Di modellierung SS abh ngig von dem Modell erstellt und bearbeitet werden Der Anwender kann daher die Arbeiten am Modell und das Modellieren der Qualit t parallel durchf hren Die Messungen werden durch folgende verschiedene Messungstypen abgebildet Basismessungen sind die grundlegenden Bausteine der Messungen die keine anderen Mes sungen nutzen Abgeleitete Messungen werden aus Basismessungen und anderen abgeleiteten Messungen zusammengesetzt Indikatoren bewerten eine oder mehrere Messungen anhand von Regeln die der Benutzer definiert hat Sie geben eine Interpretation des Messergebnisses zur ck RefaSo amp ModelCockpit 2 Konzepte 29 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft 2 2 3 Verbessern der Qualit t Qualit ts modellierung Software i Diagnose modellierung 8 Die Ergebnisse der Messung werden nun zur Ver besserung des Softwaremodells verwendet da aus den Messungen m gliche M ngel des Modells fest gestellt werden k nnen Diese M ngel lassen sich dann beseitigen Die Ergebnisse von Messun
290. nn Beispiel in Abbildung 6 31 welche sich an hand von Koordinaten aus der Konfigurationdatei zusammensetzen l sst Abbildung 6 31 zeigt beispielsweise die Hilfsvariablen a b c und d Hierbei k nnen einzelne St cke zwischen zwei Koordinaten unterschiedliche Steigungen haben Es wird be rechnet zwischen welchen zwei x Werten bzw in welchem Streckenabschnitt der zu RefaSo amp ModelCockpit 6 Architekturdokumentation 175 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft gt lt gt lt Abbildung 6 30 Beispiel lineare Normalisierung normalisierende Wert sich befindet und dann wie bereits in der LinearNormaliza tion weiter verfahren gt lt Abbildung 6 31 Beispiel stiickweise lineare Normalisierung IgnoreNormalisation Mit Hilfe dieser Klasse werden alle Normalisierungen bzw Indikato ren mit der Diagnose derzeit nicht bekannten Skalen abgefangen 6 3 4 2 Verhalten Im Folgenden Abschnitt wird fiir die eben beschriebene Struktur der Diagnostics Kom ponente anhand von drei Sequenzdiagrammen n her auf das Verhalten der Komponente eingegangen Der bersichtlichkeit halber handelt es sich bei diesen Diagrammen um stark abstrahierte Sequenzdiagramme welche nur die wesentlichen Ideen vermitteln sollen 176 6 Architekturdokumentation RefaSo amp ModelCockpit N UNIVERSIT T PADERBORN Abschlussbericht miaz Die Universit t der Informationsge
291. nput ModelQualityPlan Re sourceSet input getResources get 0 getContents get 0 getInformationNeedModel angepasst werden getInformationNeedModel muss in getModelName ge ndert werden 4 In der Methode createPartControl muss der Befehl InformationNeedModelForm c new InformationNeedModelForm parentEditor parent 0 angepasst werden F r das neue Modell muss eine neue Form Klasse angelegt werden Wie das funktioniert wird im Folgenden n her beschrieben Form Klasse Die Form Klassen erben von der Klasse Composite aus dem Paket org eclipse swt widgets und implementieren das Interface IMQPForm aus dem Paket de upb pg rmc mqp ui Jede Form Klasse hat mindestens folgende Methoden e Konstruktor e initGUI e createForm e createBaseLayout e getForm e getMQPEditor Die Konstruktoren sehen alle wie folgt aus public Kontruktorname IMQPEditor mqpEditor Composite parent int style super parent style this mqpEditor mqpEditor initGUI Listing 7 7 MQP Form Konstruktor Als Parameter bekommt der Konstruktor eine Implementierung des Interfaces IMQPEditor bergeben Dieses ist notwendig um auf das Modell und die Elemente zugreifen zu k nnen Wie der Zugriff genau funktioniert wird im Kapitel 7 2 3 3 beschrieben Des Weiteren bekommt der Konstruktor ein Composite tibergeben in dem die Form angezeigt werden soll sowie einen Style Im Konstruktor wird der Konstruktor
292. ns anzeigen StringInputDecision Eingabe eines Strings StringInputPage ListQueryDecision Auswahl von Elementen aus ListQueryDecisionPage einer Liste PredicateSplitting Teilt ein Pr dikat in zwei Tei PredicateSplitting Decision le auf Decisi onPage Tabelle 7 3 Refactoring Implementierte Decisiontypen Um eine neue Decision zu erg nzen sind zun chst die folgenden Schritte notwendig 1 Der Nutzer legt eine Klasse im Paket de upb pg rmc refactoringan die alle Daten dieser Decision aufnimmt und von Decision im gleichen Paket erbt 240 7 Entwicklerdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft Ai UNIVERSIT T PADERBORN Abschlussbericht minin Diese Klasse ben tigt zwei generische Parameter Den Typ der Eingabe und den der Ausgabe Bei der StringInputDecision wird klar warum diese Typen verschieden sein k nnen Das eine vorhandene Pr dikat ist die Eingabe und die Ausgabe besteht aus den zwei Teilen der Eingabe 2 Weiter wird eine GUI Klasse in de upb pg rmc refactoring gui erstellt Sie erbt von RefactoringDecisionPage und stellt sowohl die GUI an sich zur Verf gung als auch die berpr fung ob die aktuelle Eingabe von der Decision akzeptiert wird Dementsprechend zeigt die GUI Hinweise an an welcher Stelle der Nutzer die Eingabe berpr fen sollte Am Beispiel der Klasse StringInputPage wird die Funktionsweise deutlich Die Me thode createControl wird zum Erstellen d
293. nsition darf lediglich eine Methode zugeordnet werden Guards und Trigger wie aus UML bekannt sind in UML Z nicht definiert Details ber die Realisieung dieser Eigenschaften von UML Z finden sich in Kapitel 6 3 1 1 auf Seite 155 Die Semantik von UML Z wird in CSP OZ definiert Aufgrund dieser Eigenschaften k nnen in CSP OZ bewiesene Refactorings auch in UML Z definiert und ausgef hrt werden Die Modelle selbst k nnen jeweils von der einen in die andere Sprache bertragen werden Mittels UML Z beschreibt der Anwender von RMC sowohl die Struktur als auch das Ver halten eines Modells hnlich wie UML bietet auch UML Z daf r verschiedene Sichten auf das Modell die jeweils nur einen Ausschnitt liefern Angelehnt an UML gibt es zwei Sichten e Die Sicht Klassendiagramm zeigt die Struktur die aus Klassen besteht die mittels Assoziationen verbunden sind Klassen enthalten Methoden und Attribute e Ein Zustandsdiagramm zeigt hingegen den Ablauf genau einer Klasse Die Tran sitionen spiegeln Methodenaufrufe wieder und verbinden einzelne Zust nde unterein ander Superstates und andere bekannte Konzepte sind auch m glich Weiterf hrende Literatur zum Themenkomplex Refactorings findet sich unter Weh00 von Prof Dr Heike Wehrheim Informationen ber Modellqualit tspl ne bieten die Arbeiten von Hendrik Voigt V E08 2 2 Qualit tskreislauf Ein Softwaremodell soll vor allen Dingen eine Eigenschaft erf llen es muss den Qualit t
294. nt aus einem AbstractRefactoring fungiert als IVariableHolder in ein anderes AbstractRefactoring fungiert als IVariableManager bertragen werden Um den Fortschritt eines Refactorings bei der Ausf hrung dem Anwender anzeigen und Eingaben des Anwenders engegennehmen zu k nnen ist die GUI f r Refactorings wie in Abbildung 6 40 dargestellt entworfen worden Dabei existiert zu jeder Decision vergleiche Abbildung 6 38 eine RefactoringDecisionPage die die Entscheidung dem Anwender anzeigt Ein RefactoringWizard besteht dabei nicht nur aus einer RefactoringStartPage sondern aus einer Menge von WizardPages gem der Superklasse Wizard Fortschrittsereignisse werden ber die Interfaces gem Abbildung 6 41 an die IProgress Listener weitergereicht werden Dabei k nnen aus einem IProgressEndEvent neben einer Beschreibung getDescription und einem Fortschrittswert getProgressValue Erfolgs angaben abgefragt werden 6 3 5 2 Verhalten Folgende drei Sequenzdiagramme Abbildungen 6 42 6 43 und 6 44 stellen die wichtigsten Abl ufe beim Finden und Durchf hren von Refactorings vor Abbildung 6 42 beschreibt den Ablauf beim Aufruf der Methode getRefactoringsFor der Klasse RefactoringManager Hierbei werden zwei F lle unterschieden RefaSo amp ModelCockpit 6 Architekturdokumentation 185 N UNIVERSIT T PADERBORN EV Die Universit t der Informationsgesellschaft Abschlussb ericht JRefactoringElementWrapper parsed Refac
295. ntation RefaSo amp ModelCockpit d i UNIVERSIT T PADERBORN PMI Die Universit t der Informationsgesellschaft Abschlussbericht m 1 ll somit unterschiedliche Auspr gungen annehmen kann Vielmehr werden zur Laufzeit Mo dellelemente EClassifier als sogenannte Klassifizierer bergeben Dies ist z B hilfreich um f r alle Klassifizierer die ein Attribut name haben einen OCL Ausdruck auswerten zu k nnen ohne diesen speziell f r jeden einzelnen Klassifizierer separat anzulegen PK C O P EL PM S COA SSA CT CLS E C O P CT java lang Object 77777777T interface T DCL OCLHelper JOCLParseEnvironment OCLParseEnvironment addVariable name String clazz Class lt gt boolean addVariable name String ty pe EClassifier boolean addVariable name String dataType OCLDataType boolean addVariable vamame String value Object boolean defineOperations functionsMap Map lt String String gt boolean defineOperations operation String bookan executeOperation acronym String Map lt Object Object gt getOclType ckssifier EClassifier EClassifier isVariableDefined string String boolean create OCLParseEnvironment resource Resource parse queryString String classifier EClassifier IOCLQuery lt C R gt parseAndEvaluate queryString String object Object Map lt Object Object gt parseAndEvaluate queryString String Map lt Object Object gt parseContextFree querySring String clas
296. nter information about your context model Start by entering the moderator of this model quality plan a list of authors a list of roles used in this model quality plan and a list of artefacts After you have completed these tasks continue with the information need model Ee Overview Y Moderator General information about this model quality plan Enter the moderator for this model quality plan Model Quality Plan Name RMC mr So Version ra Forename Max Software Development Model Wasserfalmodel zl Development Phase Entwurf Suname Mustermann Created Mon Apr 07 23 51 31 CEST 2008 Modified Wed Apr 09 16 07 23 CEST 2008 Phone 49 0 5251 123456 Status infearbetung Office E4 301 Authors y Roles Enter a list of authors for this model quality plan Enter the roles for this model quality plan Forename Surname Phone Office Add Author Name Description Add Role Max Mustermann 49 5251 1 E4 301 Architekt Verantwortlich F Edit Author Entwickler Verantwortlich f Edit Role Delete Author Delete Role Artefacts Enter a list of artefacts for this model quality plan The first artefact in this list must be your main artefact the artefact you want to analyze ID Name Source Version Status Author T Add Artefact a 10 af Max Mustermann model i Edit Artefact Delete Artefact Set Main Artefact 1 Context Model 2 Information Need Model 3 Quality Model 4 Measurement Model 5 Presentation Model Selection Parent List Tre
297. olle die die Struktur der Grammatik vereinfacht Es ist nicht relevant ob eine Query lediglich eine Abfrage darstellt oder auch nderungen durchf hrt Hinweis N heres ber die nutzbaren Methoden findet sich in Kapitel 8 2 auf Seite 243 Falls die Abfragesprache ge ndert werden soll betrifft dies indirekt zwar alle Teile die Queries enthalten Allerdings nutzen diese lediglich die Konstrukte die direkt die Abfragen 22H er ist ein Javablock gemeint der in geschweifte Klammern eingefasst ist 238 7 Entwicklerdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft Ai UNIVERSIT T PADERBORN Abschlussbericht minin kapseln und daher muss man bei diesen wenigen Konstrukten ansetzen um die Anfrage sprache zu ndern Die erste relevante Stelle zeigt Listing 7 24 Dort sehen man die Definition von GlobalOcl welches Kurzschreibweisen aufnimmt die in allen OCL Queries verwendet werden k nnen Dies ist deshalb sinnvoll da nicht triviale Queries schnell un bersichtlich werden Durch die Abk rzungen kann man die eigentlichen Queries besser lesen GlobalOcl ist ohne direkten Bezug zu OCL implementiert obwohl implizit davon ausgegangen wird dass die Implementierung der Abfragesprache mit dieser Liste von Abk rzungen arbeiten kann void GlobalOcl RefactoringManager manager Token string GlobalOCL string lt STRING_LITERAL_BESSER gt manager setGlobalOCL string image s
298. on RMC vorbereitet 7 1 4 Erstellen von RMC ber das Ant Script Neben dem Kompilieren von RMC in Eclipse k nnen Sie RMC auch ber ein Ant Script kompilieren Dieses finden Sie im RMC Quellcode Archiv unter dem Namen src build xml Das Ant Script kann z B f r die automatisierte Erstellung von RMC durch einen Buildserver verwendet werden f r die meisten Anwendungsf lle sollten sie RMC aber ohne Ant Script direkt in Eclipse bearbeiten k nnen Deshalb wird die Verwendung und Konfiguration des Ant Scripts hier auch nur grob beschrieben 1 1 Das Build Script ben tigt einen SVN Client unter Windows z B TortoiseSVN In stallieren Sie einen SVN Client Das Build Script ben tigt ein Eclipse welches wie oben beschrieben installiert wurde Zus tzlich muss in diesem Eclipse das Plugin Subclipse installiert werden Sie m ssen nun das Build Script konfigurieren Daf r m ssen Sie zun chst die Datei src my properties anpassen Hinweise zu den einzelnen Konfigurationsm glichkeiten fin den Sie als Kommentare in der Datei Als n chstes m ssen Sie abh ngig von ihrem Betriebssystem entweder die Datei src setenv cmd Windows oder sre setenv sh Linux erstellen und anpassen Vorlagen fiir diese Dateien finden Sie unter src setenv cmd sample bzw src setenv sh sample Sie k nnen nun das Build Script starten ffnen Sie daf r eine Konsole und wechseln Sie in das src Verzeichnis Unter Windows rufen
299. onstraint D m H E Behavioredclassifier gt Classifier Load Resource o ae A Dach ZS GE 5 a Refresh o a Ines 2 Problems Javadoc E Declaration Progress I Prom zen properties view Call Hierarchy ts E UML genmodel No 1 schema B dasspath E project ad build properties plugin properties plugin xml 433 de upb pg rme umlz diagram classeditc E 15 de upb pg rmc umlz diagram stateeditc gt de upb pa rmc umiz ecit g 4 gt be Selected Object Class gt EncapsulatedClassifier BehavioredClassifier Abbildung 7 2 Modell Hinzufiigen einer Operation Java de upb pg rmc umlz BEES File Edit Navigate Search Project Model Sample Ecore Editor Run Window Help fir 0 Q gt H E 1 Data Modeling Plug in Devel Debug 83 Java D Package Explorer 22 D S outine 23 o le Behavior gt Class an outline is not available EB do inh noire anos Class gt EncapsulatedClassifier Behavioredclassifier Fal GenModel D 45 de upb pg rmc diagnostics E fell duplicates E de upb pg rmc map i 12 de upb pg rmc map confmodel EncapsulatedClassifier es a BehavioredClassifier W de upb pg rme mgp diagnosticsinterfac S 2 de upb pg tme map dlagnosticsprovide it passive_class EDiagnosticChain EMap lt EJavaObject ElavaObject gt EBoolean BB de pb pg mem degen aen SZ getExtensions Extension eo mane P createOwnedOperation String String Type Type Operation dei EE de upb pg rm
300. or der Benutzer andere Arten von Artefakte hinzuf gen kann Sollte sich das Hauptartefakt ndern kann ein anderes Artefakt aber auch nur vom Typ Softwaremodell in der Tabelle ausgew hlt und ber Set Main Artefact zum neuen Hauptartefakt gemacht werden Dadurch wird das ausgew hlte Artefakt automatisch an die erste Stelle in der Tabelle ger ckt Um ein Artefakt anlegen zu k nnen siehe Abbildung 4 23 werden verschiedene Informa tionen ben tigt Im oberen Teil des Dialogs werden die Artefaktinformationen arefact information eingegeben Dazu geh rt eine ID eine Phase eine Versionsnummer und ein Status Der Name und die Quelle Source sind ausgegraut da sie sp ter automatisch vom Tool nach den Messungen im Messmodell eingetragen werden Falls sich der Benutzer die 62 4 Benutzerdokumentation RefaSo amp ModelCockpit Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Add new Artefact adddiagram RE en Abbildung 4 23 MQP Kontextmodell Neues Artefakt hinzuf gen RefaSo amp ModelCockpit 4 Benutzerdokumentation 63 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Add New Diagram ei Save Changes Cancel Abbildung 4 24 MQP Neues Artefact Neues Diagram hinzuf gen Artefakte nach den Messungen nochmals ansehen will w rde hier der Name und die Quelle steh
301. ose aus dem Pr sentationsmodell siehe Kapitel 4 2 3 7 gestartet werden welche in Abschnitt 4 2 4 1 beschrieben wird Als letzte gro e Komponente wird in Abschnitt 4 2 5 auf die Refactoringkomponente n her eingegan gen Der letzte Abschnitt Abschnitt 4 3 befasst sich in Form einer FAQ dann noch mit bekannten Problemen und dazu geh rigen L sungen die w hrend der Nutzung des Tools auftreten k nnen 35 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Mi New Jol x Select a wizard lt gt Create a new project resource Wizards type filter text Untitled Text File gt Example EMF Model Creation Wizards RE RMC Abbildung 4 1 Projekt Wizard Startseite um ein neues Projekt anzulegen 4 2 1 Projekte Es wird immer ein Projekt ben tigt Es kann ein schon vorhandenes Projekt genutzt oder ein neues angelegt werden Dazu w hlt der Anwender File New Project im Haupt men aus Es erscheint ein Dialog in dem Project selektiert und mit Next best tigt wird Dies ist in Abbildung 4 1 dargestellt Auf der nun folgenden Dialogseite Abbildung 4 2 wird der Name des Projektes eingege ben Optional ist eine nderung des Pfades m glich Mit Finish wird das Erstellen des Projektes beendet 4 2 2 Editor Der grafische Editor erm glicht das Anlegen von UML Z Modellen Ein Diagramm besteht immer aus zwei Dateien e dem eigentlichen Modell umlz e
302. pe Abbildung 6 23 Klassendiagramm Meta Messmodell RefaSo amp ModelCockpit 6 Architekturdokumentation 167 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Pr sentationsmodell Das Pr sentationsmodell bereitet Information zur Vorstellung der Ergebnisse auf Abbil dung 6 24 stellt das Klassendiagramm des Pr sentationsmodells dar PresentationModel 1 ContextModel Role name Strin description String InformationProduct satisfies information need of value String Abbildung 6 24 Klassendiagramm Meta Pr sentationsmodell 6 3 3 3 Teilkomponente MQP GUI Die Teilkomponente MQP GUI erf llt folgende Aufgaben e stufenweises Anlegen eines Modellqualit tsplans e Ansto en einer Messung auf einem UML Z Modell Ansto en der Diagnose vergleiche Beschreibung der Komponente Diagnostics in Kapitel 6 3 2 e Pr sentation der Messergebnisse Durch die Festlegung auf die Eclipse Plattform im UML Z Modell und im UML Z Editor folgt dass auch die MQP GUI Komponente auf Eclipse basiert Der von EMF f r das MQP Metamodell generierte Baumeditor aus dem Paket mqp editor wurde als Grundla ge f r die MQP Benutzeroberfl che verwendet und um weitere Reiter erg nzt F r jedes MQP Teilmodell wurde ein Reiter mit einem Formular zum Bearbeiten dieses Teilmodells erstellt Die Formulare basieren auf den blichen Eclipse Bi
303. pg rmc umlz diagram stateeditor edit parts TransitionEditPart BR activityDiagram_controlNodes c 3 propsheet ecore 3947 02 03 C f P propsheet genmodel 3947 02 1 DB statemachineDiagram gmfgen AN stateMachineDiagram amfgrapt E stateMachineDiagram gmfmap R Gieres neg 4 oe Selected Object Typed selection filter Abbildung 7 12 GMF Genmodel Tab erweitern fir 0 Q EEG SH gt gt Gee EX 1 iData Modeling Debug ZU Java HE Package Explorer ES a tateMachine ont d BE Outline amp et AS EQ platform resourcejde upb pe gt de upb pg rmc cztwrapper 2 5 82 platform jresource de upb pg rme umlz diagram stateeditor model stateMachineDiagram omfgen Bs a eege 52 de upb pg rmc diagnostics D A Gen Editor Generator de upb pg rmc umiz diagram stateeditor Z Ge ae pc 122 de upb pg rmc map 7 4 gt Property Section Container S a Se eegene 122 de upb pg rmc map confmodel Ein Ciston Property Section iran op platform pluginorg ecipseie 12 de upb pg rmc mqp diagnosticsinterfac E Group Operations El de upb pg rmc map diagnosticsprovide 4 Text Operation Te cl de upb pg rmc map diagram quality Fl Custom Combo Operation E ea Bl on este valo E E de upb pg rmc mqp edior E platform resource de upb pg rmc umiz diagram stateeditor model UML genmodel 52 de upb pg rmc map measurement 48 platform resourcefde upb pg rmc umiz diagram stateeditorjmodel UML ecore TE de upb pa rme map tests E platform pl
304. ptom sieht wie in Label 7 12 abgebildet folgenderma en aus lt symptom name Short class names Symptom normalization Fuzzy gt lt indicator name Short class names gt lt symptom gt Listing 7 12 Beispiel Anlegen eines neuen Symptomes Ein Symptom besteht aus einem Namen einer zugeh rigen Normalisierung und einem Indikatornamen Der Indikatorname muss eindeutig sein und hei t in diesem Beispiel Short class names wie er auch im Modellqualit tsplan bzw genauer im Messmodell hei en muss Nachdem dem Indikator Short class names dem Symptom mit dem Namen Short class names Symptom zugeordnet wurde muss diesem Symptom eine passende Diagnose zugewiesen werden Eine Diagnose besteht dabei aus einem Namen einer Beschreibung die in der Diagnose GUI die Diagnose beschreibt und einer Referenz auf das eben erstellte Symptom Listing 7 13 zeigt die fertige Eingabe Zu beachten ist auch hier dass der Name der Referenz auf das Symptom und der Name des oben angelegten Symtomes gleich sein m ssen Im vorliegenden Beispiel Short class names Symptom Eingabe derzeit nicht relevant aber notwendig Ist f r eventuelle sp tere Erweiterungen vorgesehen RefaSo amp ModelCockpit 7 Entwicklerdokumentation 231 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft lt diagnosis name Short class names Diagnose description Missing description of Diagnosis Short c
305. publiziertDokument wird erstellt Auswahl des Werkzeuges Ope RefaSo amp ModelCockpit 5 Tutorial 111 d i UNIVERSIT T PADERBORN Die Universit t der Informationsgesellschaft Abs chlussb ericht __Refaso Modelcoc Resource RMC Tutorial default umlz_class_diagram RMC Ele Edit Navigate Project Window Help ta A ee e EI Resource E Properties 3 E G 8 IK a Body Condition Beles 4 0 E EN Client Dependency Concurrency sequential o Detta List EL lt Property gt gehalteneVortr ge M Is Abstract 1 False Is Leaf E False Is Ordered LA false Is Query T False Is Static E false Is Unique E true Lower Gg Method Name 12 vortragHalten Postcondition Precondition Raised Exception Redefined Operation Template Parameter Type Upper 5 Visibility 15 public Abbildung 5 33 Tutorial Eigenschaften der Methode vortragHalten Resource RMC Tutorial default umlz_class_diagram RMC Eile Edit Navigate Project Window Help gt LE EAS Resource Biles SSS sl pros 2 a Si E Body Condition Client Dependency ad Concurrency E sequential ES Delta List Is Abstract E false Is Leaf a false Is Ordered ve False Is Query i false Is Static E false Is Unique E true Lower 51 Method Name mitarbeiterMotivieren Postcondition Precondition Raised Exception Redefined Operation Template Parameter
306. r fen ob und inwiefern die Refactorings die Qualit t des Modells verbessern konnten So beschlossen Hendrik und Thomas also Ihre Projektgruppen zu einer gemeinsamen Gruppe zu verbinden Ehrlicherweise m ssen wir zugeben dass die f r zwei eigenst ndige Projektgruppen zu geringe Teilnehmerzahl m glicherweise auch zur Entste hung dieser Idee beigetragen hatte Ihttp wwwes uni paderborn de cs ag engels ModelCockpit html http www cs uni paderborn de index php id 36948L 0 246 9 Res mee RefaSo amp ModelCockpit dl UNIVERSITAT PADERBORN Abschlussbericht BME Die Universit t der Informationsgesellschaft _Refaso Modelcockpit Messung Qualit ts modellierung Softwaremodellierung Diagnose Refactoring Abbildung 9 1 Qualit tskreislauf Durch die Zusammenlegung der Projektgruppen ist ein Bindeglied n tig gewesen die Qua lit t von Modellen sollte nicht einfach nur gemessen werden es sollten auch automatisch Verbesserungsvorschl ge erstellt werden Diese Verbesserungsvorschl ge sollten auch die Durchf hrung von Refactorings beinhalten k nnen Die Diagnose Komponente ist die in der Projektgruppe realisierte L sung daf r 9 2 Vergleich von anderen Werkzeugen Es gibt viele Werkzeuge zum Modellieren und Messen von Qualit t und zur Durchf hrung von Refactorings Bevor n her darauf eingegangen wird was wir erreicht haben und wie vergleicht dieser Abschnitt des Fazits zun
307. r Personen auskennen A 4 7 Freizeitaktivit ten Neben unserer Projektgruppenarbeit haben wir einige gemeinsame Veranstaltungen organi siert z B eine Kanu Tour Grillen und einen Bowling Abend Diese Veranstaltungen haben sich sehr positiv auf die Teambildung ausgewirkt 262 A Unsere Vorgehensweise RefaSo amp ModelCockpit B Vordefinierte Messungen mit OCL B 1 Scale of measure results A scale is a instance of a ScaleType The ScaleTypes are found in the meta measurement model of the MQP in the section 6 3 3 2 Schulnoten als Zahlen UPPERBOUND 1 0 LOWERBOUND sehr gut gut befriedigend ausreichend mangelhaft ungen gend Very High High Middle Low Very Low 263 Die Universit t der Informationsgesellschaft WS Ai UNIVERSIT T PADERBORN Abschlussbericht See B 2 Auxiliary Functions B 2 1 Property level functions o roma Demos S OCLDEFINITION context Property def acv c Class Boolean self class oclAsType Class oclIsKindOf OclInvalid false and self class c or self visibility VisibilityKind public or self visibility VisibilityKind protected and self class descendants gt includes c Eu eme B 2 2 Class level functions caren A OOO SC OCLDEFINITION context Class def children Set Class Class alllnstances gt select c c parents gt includes self EE St 264 B OCL Messungen RefaSo amp ModelCockpit de UNIVERS
308. r Zeichenfl che angelegt werden Datentypen werden ber die Outline angelegt Am Ende dieses Kapitels wird die Outline wie in Abbildung 5 6 dargestellt aussehen Das Modell dieses Tutorials soll acht Elemente vom Typ Type Declaration enthalten Diese werden nun Schritt f r Schritt angelegt Type Declaration Time In der Outline wird mit einem Rechtsklick auf Package das Kon textmen ge ffnet Mit RMC Packaged Element Type Declaration wird ein neuer Datentyp angelegt F r diesen wird der Name Time eingegeben Die Eigen schaften dieses Elementes entsprechen nun der Abbildung 5 7 Weiter wird ein neues Kindelement angelegt Auf dem neuen Element wird wieder im Kontextmen RMC ZExpression Specification gew hlt Abbildung 5 8 zeigt die Eigenschaften des neuen Elementes Mit einem Klick auf den Button wird der Z Editor ge ffnet und der folgende Ausdruck eingegeben Hour cross Minute Abbildung 5 9 zeigt den ZExpression Editor Mit OK wird der Editor schlie lich verlassen RefaSo amp ModelCockpit 5 Tutorial 95 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft RefaSo ModelCoc Wi Resource RMC Tutorial default umlz_class_diagram RMC MEE Eile Edit Navigate Project Window Help Jr E A e eo ES Resource ves A Properties 3 E Se d Pri Value a EEE en Client Dependency DN Is Abstract A false Is Leaf E false Name
309. r letzten Seite des Refactoringassistenten zu entnehmen Das Refacto ring kann nachfolgend mit Finish abgeschlossen werden Abbildung 4 43 Ein Refactoring kann vollst ndig mit der Undo Funktion des jeweiligen Editors zur ckge nommen werden 4 2 5 2 Konfigurationsdatei Um eine einfache Handhabung beim Hinzuf gen neuer Refactorings zu erreichen wird eine Konfigurationsdatei f r die Refactorings genutzt Des Weiteren wurde zum Beschreiben der Refactorings eine Grammatik nach Backus Naur Form BNF entworfen Dieses Kapitel 82 4 Benutzerdokumentation RefaSo amp ModelCockpit RefaSo amp ModelCockpit Ai UNIVERSIT T PADERBORN Die Universit t der Informationsgesellschaft Abschlus sb ericht RefaSo ModelCoct Refactoring Wizard olx Refactoring Predicate splitting test Type splitting predicate Assign predicates to append to new operations Original predicate Maziva a 100 Predicate 1 a 210 Predicate 2 a lt 100 ma a Abbildung 4 42 Refactoringassistent Entscheidungsseite zur Auswahl von Teilpr dikaten zu einem vorgegebenen Pr dikat Ml Refactoring Wizard olx Refactoring Execution Page successfully carried out Model modifications successfully executed e mn ca Abbildung 4 43 Refactoringassistent Erfolgreicher Abschluss eines Refactorings 4 Benutzerdokumentation 83 Die Universit t der Informationsgesellschaft WS di UNIVERSIT T PADER
310. ramm zu schlie en und wieder zu ffnen Teilweise ist es n tig dass Diagramm neu aus dem Modell zu erstellen RefaSo amp ModelCockpit 4 Benutzerdokumentation 55 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Ml Resource RMC Tutorial default umlz_state_diagram RMC ME File Edit Diagram Navigate Project window Help a A E of x o i00 a ES Resource Ls Project Explorer 23 7 B ld tdefauit ume state diagram 23 o EB RMC Tutorial Palette D defauk umiz RR Select ld default umlz_class_diagram Zoom e Wi default umiz_state_diagram State Machine E Note R E E N un C State Machine Ip 3 defaut3 umle EID moefimap e State D i PG umlz_class_diagram C Regon EA RMC_MOP_Tutorial map Final State e State 1 e Initial Li Shallow History Deep History AB Fork gt ur 3 son e ee ge G I oH x Junction Choice X Terminate Entry Point 35 Outine D ueno State2 ESE LONE Transition e al Bo E Properties 23 Bis SSO E lt Class gt StateMachine re Propert value KE ore E UG Rulers amp Grid Classifier Behavior Appearance Client Dependency Tnit Is Abstract E false S 4 of Abbildung 4 15 Popupmenii ber dem Canvas des Zustandsdiagrammeditors Anlegen von Elementen iiber den Canvas Eine weitere M glichkeit Elemente anzulegen besteht iiber den Canvas Bewegt der
311. ration Funktionen mit Z Ausdr cken definiert werden siehe Ab bildung 6 13 Zustandsdiagramme Da die enable Figenschaft einer zu einer Transition geh rigen Operation die Bedingung f r das Feuern der Transition sein soll wurden die aus der UML2 bekannten Attribute trigger und guard gel scht RefaSo amp ModelCockpit 6 Architekturdokumentation 157 Die Universit t der Informationsgesellschaft WS D UNIVERSIT T PADERBORN Abschlussbericht ZExpressionSpecification ZAxiomaticDefinition zExpressionSpecification ZExpressionSpecification A DN LN owner ZAxiomaticDefinition zExpression ZExpression PrimitiveType TypeDeclaration VariableDeclaration FunctionDeclaration Abbildung 6 13 Klassendiagramm Globale Z Defintionen 6 3 1 2 Anbindung des Z Parsers an das Modell Abbildung 6 14 zeigt die Anbindung des Modells an den Z Parser ber den INameWrapper greift der Z Parser auf benannte Modellelemente zu ber die Interfaces IExprWrapper und IPredWrapper wird die Logik der Z Ausdr cke verwaltet Eine genauere Beschreibung der Parser Anbindung befindet sich zum einen im Kapitel zu IZParser sowie im Kapitel zum CZT Wrapper 6 3 2 UML Z Editor Die grafischen Editoren basieren auf dem Graphical Modelling Framework GMF Dieses stellt eine flexible M glichkeit dar um grafische Anwendungen auf EMF basierten Modellen zu entwickeln Genutzt werden folgende Frameworks
312. red Wrapper V interface de upb pg rmc umiz izparser IExprWrapper Abbildung 6 14 Klassendiagramm Anbindung des Z Parsers an das Modell RefaSo amp ModelCockpit 6 Architekturdokumentation 159 Die Universit t der Informationsgesellschaft WS di UNIVERSIT T PADERBORN Abschlussbericht en component SI Graphical Editor use use 7 l use y y component g component g component g EMF GMF Runtime GEF use use I lt gt use l l use y component g use A Eclipse Plattform lt gt lt Abbildung 6 15 bersicht ber die Pakete eines GMF basierten Editors GMF 6 3 2 1 Klassendiagrammeditor Mittels Generierung durch GMF entsteht der Editor Der generierte Quelltext ist noch in einigen Bereichen an die eigenen Bed rfnisse anzupassen Die Struktur wird jedoch durch diese nderungen nicht angetastet Abbildung 6 16 zeigt die Pakete des Klassendiagramme ditors Die Modifikationen und Erweiterungen des Quellcodes entsprechen zu weiten Teilen den UML2 Tools Auf die einzelnen Pakete und Abh ngigkeiten soll nicht weiter eingegangen werden da diese durch GMF vorgegeben sind Informationen finden sich auf der GMF Webseite GMF 6 3 2 2 Zustandsdiagrammeditor Auch der Zustandsdiagrammeditor ist durch Generierung mittels GMF ents
313. reibt die Bestandteil die sowohl ein einfaches als auch ein komplexes Refactoring enthalten k nnen Hier sind die Variablen definiert auf welchen das Refactoring arbeitet RefactoringName Name Der Name des Refactorings lt IDENTIFIER gt Before Template BeforeTemplate ContextQueryList Calculation Calculation ContextQueryList Precondition ContextQueryList Precondition AfterTemplate AfterTemplate ContextQueryList SubRefactorings SubRefactorings SubRefactoring SubRefactoring subRefactoring SubRefactoringName RefactoringIdentifier SubRefactoringCondition VariableAssignments SubQueries Context Query List SubCalculation ContextQueryList RefaSo amp ModelCockpit 4 Benutzerdokumentation Definition nach RW07 Hier wer den Variablen mit Modellelementen vorbelegt Definition nach RW07 Hier findet eine Berechnung von Variablenwer ten statt Definition nach RW07 In ei ner Precondition werden einer oder mehrere gegebene Parameter auf Vorbedingungen berpr ft Nur wenn diese Bedingung erf llt sind kann das Refactoring fortgef hrt werden Definition nach RWO07 In einem AfterTemplate sind die durch zuf hrenden nderungen beschrie ben Ein AfterTemplate ist nur Bestandteil eines einfachen Refacto rings SubRefactorings definiert eine Liste von Subrefactorings die in ei nem komplexen Refactoring durch gef
314. resore Properties Es AAA A AAA AAA AAA AAA Classifier Behavior Client Dependency Init Ka Is Abstract A false Is Active Ta false Is Leaf a False Name Owned Port Powertype Extent Redefined Classifier Representation Template Parameter Use Case Visibility public Beles 4 0 E EN I Person Abbildung 5 21 Tutorial Eigenschaften der Klasse Person W Resource RMC Tutorial default umlz_class_diagram RMC Ele Edit Navigate Project Window Help gt LE EAS Resource Properties 23 BE so Aggregation composite Association Class H lt Class gt Person Client Dependency Default Re End Is Derived Is Derived Union Is Leaf Is Ordered Is Read Only Is Static Is Unique Lower Name Redefined Property Subsetted Property Template Parameter Type Type Declaration Text Upper G1 Visibility private Abbildung 5 22 Tutorial Eigenschaften des Attributes name 104 5 Tutorial RefaSo amp ModelCockpit dl UNIVERSITAT PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft miz_class_diagram RMC Eile Edit Navigate Project Window Help zs wal al IN EA ES l resource C Properties 3 ee al Propert Value 4 Aggregation composite Association K Class J lt Class gt Person Client Dependency i Is Derived LA False Is Derived Union E false Is Leaf i fal
315. rfolgreich angelegt und es kann mit der Erstellung des Kontextmodells begonnen werden 5 2 2 2 Ein neues Kontextmodell erstellen Nachdem der Anwender den Moderator des MQPs eingegeben hat siehe Abbildung 5 52 oben rechts f gt er im Autoren Bereich mit Add Author einen Autor dem MQP hinzu Der in dem sich ffnenden Dialog eingegebene Autor kann mit Edit Author und Delete Author bearbeitet bzw gel scht werden Jeder MQP hat immer genau einen Mo derator und mindestens einen Autor wobei der Moderator auch einer der Autoren sein kann Im n chsten Schritt gibt der Anwender zwei Rollen Architekt und Entwickler Add Role ein Der Name sowie eine Beschreibung einer Rolle kann ber einen Dialog eingege ben werden Mit Edit Role und Delete Role kann eine Rolle bearbeitet bzw gel scht werden Sobald die beiden Rollen eingegeben wurden k nnen in Artefakts Bereich Artefakte ber Add Artefact hinzugef gt werden In dem sich ffnenden Dialog k nnen Artefakte vom RefaSo amp ModelCockpit 5 Tutorial 123 dl UNIVERSITAT PADERBORN Die Universit t der Informationsgesellschaft Abschlussb ericht RefaSo ModelCockpit Ml Resource RMC Tutorial RMC_MQP_Tutorial mqp RMC ME File Edit Navigate Project MQP Editor Window Help Kr _ E E b Resource 5 RMC MP Tutoriatmap 3 SE 5 1 Context Model The quality of a model is measured in a context This context is defined by the context model U
316. ributes name Text E class vorname Text Package emailadresse Text en operations DataType 5 Association Class Interface 2 Constraint Stereotype El Attribute Operation E Student Enum Literal attributes Association matrikelnummer N Dependency a studiengang Studiengang A Generalization EST Z Provided Interface l N Vorl L lernen vorlesung Vorlesung Dal Nary Dependency Target NAry Dependency Source 2 Constrained Element a lil defauttumie_class_diagram D 5 Rename class e ofessor attributes semesterWochenStunden N gehalteneVortr ge N Operations forschen vortragHalten mitarbeiterMotivieren pr ft student Student publiziertDokument h ltZentral bung h lt bung E vorlesung attributes zeit Time fachgebiet Fachgebiet name Text raum Text x N SCHE 0 10 5 Association End nimmt teil 7 Realization Abbildung 5 66 Auswahl des Refactorings SplitClass W Refactoring Wizard ol x Split class Refactoring to split a class selected operations will be transfered to the new class so the selected one will be reduced All attributes eI ote tc pos ober On SE IE EN transfered as well y lt Back Enish Cancel Abbildung 5 67 Startseite des Wizards 136 5 Tutorial Re
317. rnational Workshop on Object Oriented Re Engineering at ECOOP 2003 2003 B 2 2 B 3 1 B 3 1 B 3 1 B 3 1 B 3 1 B 3 1 B 3 1 B 3 1 BL Bai BS1 BaL BAA Bad B31 Bal B 31 Bad RS BAL BAA B42 BA2 BA2 B42 BA2 BAR BAZ BAZ BAZ BAZ BA BA D42 BAZ Aline L cia Baroni and Fernando Brito e Abreu An OCL Based Formalization of the MOOSE Metric Suite 7th ECOOP Workshop on Quantitative Approaches in Object Oriented Software Engineering Darmstadt Germany July 2003 B 3 1 B 3 1 B41 Marcela Genero Bocco Mario Piattini and Coral Calero A Survey of Metrics for UML Class Diagrams Journal of Object Technology 4 59 92 2005 B 3 1 B 3 2 Zhou Chaochen C A R Hoare and A P Ravn A Calculus of Durations In Information Processing Letters volume 40 5 pages 269 276 1991 9 2 Fernando Brito e Abreu Using OCL to Formalize Object Oriented Metrics Definitions Technical Report ES007 2001 FCT UNL and INESC Portugal June 2001 Version 1 0 B 2 1 B 2 2 B 2 2 B 2 2 B 2 2 B 2 2 B 2 2 B 2 2 723 539 B22 123 092 222 135 333 124 331 B31 B31 B 3 1 Bad Bad Bal B32 B42 B42 B42 BAL B42 BA B42 Paz BAZ BAD BAZ Eclipse Modeling Framework http www eclipse org modeling emf 6 1 6 3 1 6 3 2 6 3 3 2 7 2 3 1 A 3 Martin Fowler Refactoring Improving the Design of Existing Code Addison Wesley 1999 1 1 9 3 4 Graphical Modelling Framework http www eclipse org gmf 6 1 6 2 1 6 3 2 6 15 6 3 2 1 6 3 2 2 7 2 3
318. rofessor Text Therapy Give your classes longer names short class names Therapie for Student Refactoring Therapy EU Classes to large Refactoring Therapy CLASS_REDUCTION a iagnose james Di ss names Therapie Refactoring Abbildung 4 36 Diagnose grafische Oberfl che 4 2 4 2 Konfigurationsdatei Die Konfigurationsdatei der Diagnose liegt im XML Format vor Sie befindet sich im plug ins Ordner der Eclipse Installation im Unterordner de upb pg rmc diagnostics Im Folgenden wird nun auf die Struktur der Konfigurationsdatei n her eingegangen Das Wurzelelement der Konfigurationsdatei hei t lt configuration gt Darunter befinden sich Kno ten f r Parameter Symptome Diagnosen Therapien und Normalisierungen Im Folgenden soll nun auf diese Elemente n her eingegangen werden e lt parameters gt Hier k nnen Parameter eingetragen werden welche in der kompletten Diagnosekomponente Verwendung finden sollen Diese Parameter bestehen dabei aus einem Namen name und einem Wert value lt universalParameter name value gt Listing 4 1 Diagnoseknoten lt universalParameter gt e lt symptoms gt Beschreibt alle der Diagnose derzeit bekannten Symptome lt symptom gt Ein Symptom besteht dabei aus einem Namen welcher weiterf hrend als Schl ssel f r die weiter unten definierten Diagnosen verwendet wird Des Weiteren besitzt jedes Symptom eine Norm
319. rt class names Diagnose HE m Short class names Therapie D ze DI Short class names Therapie for Vorlesung Dese O short class names Therapie for Person Short class names Therapie For Professor Text Therapy Give your classes longer names short class names Therapie for Student Refactoring Therapy DO Classes to large Refactoring Therapy CLASS_REDUCTION Pal Refactoring Abbildung 5 65 Benutzung der Diagnose 5 2 3 Diagnose Bis jetzt hat der Benutzer ein neues Projekt angelegt und einen kompletten Modellqua lit tsplan erstellt Im folgenden Kapitel wird nun das vom Benutzer erstellte Diagramm auf Modelldefekte hin berpr ft und es werden gegebenenfalls Verbesserungen in Form von Therapien Text und oder Refactoringtherapien dem Benutzer angeboten Abbil dung 5 65 zeigt die Diagnose nachdem der Button Start diagnostic auf der rechten Seite des Pr sentationsmodells siehe rechte Seite in Abbildung 5 64 bet tigt wurde Im Abschnitt Diagnosis der Diagnose GUI Abbildung 5 65 werden dem Benutzer alle Modelldefekte angezeigt deren normalisierte Messwerte gleich oder gr er dem eingestell ten Grenzwert sind Der Grenzwert in der Abbildung mit Point of view bezeichnet hat wie der Benutzer sehen kann den Wert 0 1 Da es sich bei diesem Wert um einen nied rigen Wert zwischen 0 und 1 Grenzwerte der Normalisierung handelt bedeutet dies dass auch nicht so schwere
320. rten zugeordnet werden Diese werden abh ngig vom Grenzwert in der Diagnose GUI angezeigt Durch Aufrufen der Methode createCandidatesFor mit den gerade berechneten SubDia gnoseValue als Parameter werden nun passende Therapiekandidaten f r die Diagnosen sowohl Text als auch Refactoringtherapien RefaSo amp ModelCockpit 6 Architekturdokumentation 179 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft gesucht Mit diesem Abschnitt sollte ein berblick ber die Struktur der Diagnose gegeben werden Weiter wurden f r ausgesuchte Abl ufe in Form von Sequenzdiagrammen auf das Verhal ten der Diagnose n her eingegangen Im Folgenden Abschnitt wird nun die Architektur Refactoringkomponente beschrieben 6 3 5 Refactoring Die Refactoring Komponente f hrt verhaltenserhaltende nderungen auf UML Z Model len durch Die Menge der Refactorings wird aus einer Konfigurationsdatei eingelesen mit deren Hilfe einzelne Abfragen und atomare Modell nderungen zur Durchf hrung von Refac torings beeinflusst werden k nnen die im Zusammenspiel eine verhaltenserhaltende Modi fikation eines UML Z Modells ergeben Anweisungen und Anfragen an ein UML Z Modell sind in der Anfragesprache Object Constraint Language OCL formuliert und werden ber die RMC Komponente OCLWrapper auf einem Modell ausgef hrt siehe Abschnitt 6 3 6 Die diesem Abschnitt zugrundeliegende Komponente von RMC wird aus der UML
321. rzen berblick ber denkbare Erweiterungen der Diagnosekomponente f r die Zukunft 7 2 4 1 Erweiterung der Konfigurationsdatei Angenommen der Benutzer l sst im Modellqualit tsplan einen Indikator messen und m chte sp ter mit Hilfe der Diagnose sein Modell auf evtl auftretende Modellqualit tsm ngel hin berpr fen Dabei kann es vorkommen dass ein vom Benutzer gew hlter Indikator bzw der dazugeh rige Modelldefekt der Diagnose nicht bekannt ist und somit nicht angezeigt werden kann Dies kann beispielsweise dadurch passieren dass der Benutzer einen neuen Indikator im Messmodell angelegt hat welcher der Diagnose nicht bekannt ist In diesem Fall muss die Konfigurationsdatei der Diagnose angepasst bzw erweitert werden Im folgenden Abschnitt wird anhand eines Beispiels ein benutzter Klassenname ist evtl zu kurz und somit nicht aussagekr ftig genug die Erweiterung um ein neues Symptom be schrieben Hierzu sei angenommen dass der Indikator durch den Benutzer bereits angelegt wurde und nun der Diagnose bekannt gemacht werden muss Wie bereits beschrieben soll berpr ft werden ob die in einem Klassendiagramm erstellten Klassen aussagekr ftige Namen haben Dies wird in diesem Beispiel dadurch berpr ft dass die L nge des Klassennamens bestimmt wird Der dazugeh rige Indikator ist mit dem Namen Short class names bezeichnet Begonnen wird damit dass ein zum Indikator passendes Symptom erstellt werden muss Dieses Sym
322. s anspr chen gen gen Um diese Anspr che zu erf llen muss man die aktuelle Qualit t kennen um im n chsten Schritt die gew nschte Qualit t zu erreichen Wie man dieses Ziel als Prozess ausdr cken kann zeigt dieses Kapitel Ein typisches Szenario f r die Verbesserung von Modellqualit t besteht aus folgendem Ablauf Die Qualit t muss zun chst definiert und modelliert werden Mit diesem Qualit ts verst ndnis wird eine Messung und Beurteilung der Qualit t des Modelles durchgef hrt Die erhaltenen Ergebnisse m ssen dem Anwender pr sentiert und die gefundenen M ngel sollten behoben werden Das resultierende verbesserte Modell kann als Ausgang f r eine neue Messung der Qualit t dienen Der Prozess beginnt erneut Dieses Vorgehen ist als Qualit tskreislauf bekannt 26 2 Konzepte RefaSo amp ModelCockpit dl UNIVERSITAT PADERBORN Abschlussbericht B Die Universit t der Informationsgesellschaft __Refaso Modelcockpit Abbildung 2 1 zeigt den Kreislauf den man mit RMC vollziehen kann Dieser Prozess l sst sich mit RMC bewerkstelligen ohne auf externe Programme zur ckgreifen zu m ssen Messung Qualit ts modellierung Softwaremodellierung Diagnose Refactoring M Abbildung 2 1 Qualit tskreislauf Dieser Ablauf ist nicht zwingend und soll nur eine M glichkeit aufzeigen was RMC zu leis ten vermag Andere Abl ufe inklusive andersartiger Iterationen sind somit ohne Probleme m
323. s de upb pg rmc refactoring de upb pg rmc refactoring diagnosticsinterface diagnosticsinterface IOCL de upb pg rmc umlz de upb pg rmc umlz ocl oclinterface ocl oclinterface IMQP de upb pg rmc mqp de upb pg rmc mqp diagnosticsinterface diagnosticsinterface de upb pg rmc umlz de upb pg rmc umlz izparser de upb pg rmc umlz izparser pg rmc umlz izparser IMQPInternalModel de upb pg rmc mqp de upb pg rmc mqp 202 7 Entwicklerdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft Refaso Modelcockpi de UNIVERSITAT PADERBORN Abschlussbericht m LP Tabelle 7 2 Entwicklung bersicht der Komponenten ARCHITEKTUR PROJEKTNAME PAKET KOMPONENTEN UML Z Model de upb pg rmc umlz alle Pakete ee a de upb pg rmc umlz izparser UML Z Editor Klassendiagramm alle Pakete des Projekts de upb pg rmc classeditor Zustandsdiagramm alle Pakete des Projekts de upb pg rmc stateeditor ModelQualityPlan GUI de upb pg rmc mqp ui alle Pakete des Projekts Messungen de upb pg rmc alle Pakete des Projekts Mqp measurement 7 2 1 Modell 7 2 1 1 Allgemeines Generierung der Editoren Grundlage fiir die Generierung des UML Z Modells ist das EMF Modell aus dem der Java Code generiert wird Das Modell befindet sich im model Ordner des de upb pg rmc umlz Projekts Ben tigt werden dazu folgende Dateien e UML ecore UML Z Modell e UML genmodel Generierungsmodell f r das UML Z Modell Die
324. s api RefaSo amp ModelCockpit 6 Architekturdokumentation 147 Die Universit t der Informationsgesellschaft WS D UNIVERSIT T PADERBORN Abschlussbericht Der UML Z Editor kann ber diese Schnittstelle eine Liste von IRefactoringElement Objekten anfordern die alle m glichen Refactorings beschreiben die auf den bergebe nen Modellelementen entsprechend der Refactoring Konfigurationsdatei ausf hrbar sind Der Editor kann ein Refactoring mittels dieser Objekte ansto en welches dann von der Refactoring Komponente ausgef hrt wird Die restliche Nutzerinteraktion rund um das Refactoring erfolgt ber die Refactoring Komponente An einem IRefactoringElement angemeldete IProgressListener erhalten IProgressE vents mit Statusinformationen w hrend der Durchf hrung eines Refactorings Ob ein Refactoring noch durchf hrbar ist kann ber isApplicable erfragt werden F r die G ltigkeit dieser Angaben ist die Refactoring Komponente verantwortlich und nicht der Editor interface boundary IRefactoringEditor getRefactoringsFor selection Collection lt NamedElement gt Collection lt IRefactoringElementWrapper gt reloadRefactor void create interface Comparable lt IRefactoringElementWrapper gt boundary interface IRefactoringHement boundary boundary e IRefactoringElementWrapper adaProgresslistener progressListener IProgresslistene voia doRe
325. se 3 You may copy and distribute the Program or a work based on it under Section 2 in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following a Accompany it with the complete corresponding machine readable source code which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange or b Accompany it with a written offer valid for at least three years to give any third party for a charge no more than your cost of physically performing sour ce distribution a complete machine readable copy of the corresponding source code to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange or c Accompany it with the information you received as to the offer to distribute corresponding source code This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer in accord with Subsection b above The source code for a work means the preferred form of the work for making modi fications to it For an executable work complete source code means all the source code for all modules it contains plus any associated interface definition files plus the scripts used to control compilation and installation of the executable However as a special exception the source code distributed n
326. se Is Ordered LA false Is Read Only LA false Is Static A false Is Unique E true Lower Ei Name vorname Redefined Property Subsetted Property Template Parameter Type Type Declaration Text Upper E 1 Visibilty private Abbildung 5 23 Tutorial Eigenschaften des Attributes vorname Um den Namen des Attributs anzugeben wird das Attribut in der Zeichenfl che an geklickt und in der Properties View f r das Feld Name vorname eingetragen Nun muss noch der Typ des Attributs angegeben werden Dies geschieht ebenfalls in der Properties View indem aus der Auswahlbox f r das Feld Typ Text gew hlt wird Abbildung 5 23 zeigt das Resultat Das dritte Attribut wird erstellt Nach der Auswahl des Werkzeuges Attribute und Klick auf die Klasse Person wird der Name des Attributes hier emailadresse in der Properties View im Feld name eingetragen Ebenfalls ber die Property View wird wie zuvor der Typ des Attributes auf Text gesetzt Abbildung 5 24 zeigt das Resultat Die Klasse Student Analog zu der Klasse Person wird die Klasse Student angelegt in dem in der Palette rechts neben der Zeichenfl che das Werkzeug Class ausgew hlt wird Mit einem Klick in die Zeichenfl che erscheint dort die neue Klasse In den Eigenschaften dieser wird der Name Student eingegeben Abbildung 5 25 zeigt die Eigenschaften der Klasse Nun werden dieser Klasse noch zwei Attribute hinzugef gt Hierzu wird aus der Pa lette das Werkzeug Attrib
327. se der Messungen aus dem Messmodell Um vom Messmodell ins Pr sentationsmodell zu gelangen muss der Benutzer den Reiter Presentation Model ausw hlen Das Pr sentationsmodell besteht aus zwei Bereichen Links werden dem Benutzer die Ein gaben der ersten vier Modelle als Graph visualisiert und rechts kann der Benutzer einstellen wie und was visualisiert werden soll Au erdem l sst sich hier die Diagnose ansto en Bei der Visualisierung haben alle Elemente die zum selben Teilmodell geh ren auch die gleiche Farbe e Context Model gr n e Information Need Model hellblau e Quality Model grau e Measurement Model blau Standardm ig werden alle Elemente aller Modelle angezeigt M chte der Benutzer nicht alle Elemente sehen um zum Beispiel die bersichtlichkeit zu erh hen kann er die Ele mente bestimmter Modelle ausblenden F r jedes Modell gibt es einen Hacken rechts im Einstellungsbereich Entfernt der Benutzer einen Haken werden die dazugeh rigen Elemen te des Modells nicht mehr angezeigt Klickt der Benutzer mit der rechten Maustaste in das Visualisierungsfenster wird das komplette Modell auf die passende Gr e skaliert so dass der komplette Graph im Fenster angezeigt wird In der Visualisierung werden von den Elementen nur die Namen angezeigt M chte der Anwender noch die restlichen Eigenschaften der Elemente sehen muss er ein Element RefaSo amp ModelCockpit 4 Benutzerdokumentation 73 Ai UNIVERSIT T PADERBO
328. se org unter http help eclipse org help32 index jsp 204 7 Entwicklerdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft WS Ai UNIVERSIT T PADERBORN Abschlussbericht pat S und ZPredicate erzeugt Das Vorgehen entspricht dabei dem in den EMF Recipes be schriebenen 7 2 1 3 Implementierung neuer Funktionen Anlegen von Operationen im UML Z Modell f r die Verwendung mit OCL Die Sprache OCL ist nur f r Anfragen an Modelle ausgelegt im Rahmen dieser Anfra gen k nnen aber auch Methoden im Modell aufgerufen werden z B im Modell definierte Methoden die alle Attribute der aktuellen Klasse sowie aller Oberklassen holen Um nde rungen im Modell mit OCL durchf hren zu k nnen kann man dementsprechend Methoden im Modell anlegen die dann nderungen durchf hren Zun chst sollte man mit Hilfe des Quellcodes und der UML2 Spezifikation feststellen wo sich die Modellelemente die ver ndert werden sollen befinden Dann kann im Ecore eine neue Operation angelegt werden Die Ecore Datei mit dem Namen UML ecore befindet sich im Projekt de upb pg rmc umlz im Ordner model Anlegen von Operationen Operationen k nnen ber das Kontextmen des entsprechenden Elements hinzugef gt wer den Abbildung 7 2 Entsprechend k nnen auch Parameter zur so erstellten Operation hinzugef gt werden ber die Properties Ansicht k nnen der Name der Operation und Pa rameter sowie die Typen der Parameter un
329. se this form to enter information about your context model Start by entering the moderator of this model quality plan a list of authors a list of roles used in this model quality plan and a list of artefacts After you have completed these tasks continue with the information need model Ee Overview Y Moderator General information about this model quality plan Enter the moderator for this model quality plan Model Quality Plan Name RMC_MAP_Tutorial Version ro Forename Max Software Development Model wasserfalmodel Development Phase Entwurf a gt 50 7777 Created Mon Apr 07 23 51 31 CEST 2008 Modified Wed Apr 09 16 07 23 CEST 2008 Phone 449 0 5251 123456 Status In Bearbeitung v Office E 4 301 Authors y Roles Enter a list of authors for this model quality plan Enter the roles for this model quality plan Forename Surname Phone Office Add Author Name Description Add Role Max Mustermann 49 0 S251 1 E 4 301 Architekt Verantwortlich F Edit Author Entwickler Verantwortlich f Edt Role Delete Author Delete Role Artefacts Enter a list of artefacts for this model quality plan The first artefact in this list must be your main artefact the artefact you want to analyze ID Name Source Version Status Author Ty Add Artefact Ar 1 0 ertig Max Mustermann model i Edit Artefact Delete Artefact Set Main Ar
330. sellschaft Retasol sd DiagnosticComponent hierSindMeineIndkatoren3 self sym SymptomManager isymptom Symptorr alndicator IMQPIndkator lt static gt NormalzationManager edi hierSnaMeineindikatoren indicators Colection lt IMQPIndicator gt resource Resource IMQPIndicator aIndicator indicators 1 2 connectSymptontalndicator for Symptom symptom symptoms opt isymptom getindicatorNames quals alndicator getName symp null 1 2 1 setIndicator alndicator alndicator getName equak indicatorNames 1 2 1 1 getName H 1 2 1 3 getName 1 2 1 6 getScale 1 2 1 9 normalization getScale 1 2 1 11 normalzation getNormalizatidn alndicator eg 1 3 recalaujate Therapies d Abbildung 6 32 Sequenzdiagramm bergabe und Verarbeitung der bergebenen Indika toren RefaSo amp ModelCockpit 6 Architekturdokumentation 177 Die Universit t der Informationsgesellschaft WS D UNIVERSIT T PADERBORN Abschlussbericht Abbildung 6 32 zeigt den groben Ablauf wie in der Diagnostics Komponente nach der bergabe einer Menge von Indikatoren hierSindMeineIndikatoren aus dem MQP im Symptommanager SymptomManager nach passenden Symptomen Symptom f r die ber gebenen Indikatoren gesucht wird Existieren zu einem Indikator Symptome so werden f r jedes
331. sifier EClassifier IOCLContextF reeQuery removeVariable name String void replaceVaria bleValue name String newValue Object void setContext helper OCLHelper lt EClassifier EOperation EStructuralFeature org eclipse ocl ecore Constraint gt classifier EClassifier void setVariableValue variableName String object Object void N create JOCLParser OCLParser createNewParseEnvironment resource Resource IOCLParseEnvironment JOCLQuery lt C R gt gt OCLQuery execute context C resultingVariableName String clazz Class lt R gt R create OCLQuery environment OCLParseEnvironment query OCLExpression lt EClassifier gt ocl OCL lt EPackage EClassifier EO peration EStructur Abbildung 6 45 Klassendiagramm OCLWrapper Komponente 6 3 7 CZTWrapper Um Z Ausdr cke f r Pr dikate in Vor und Nachbedingungen von Operationen als auch zur Beschreibung von Typen nutzen zu k nnen wurde die CZT Bibliothek eingebunden M U05 Diese stellt Klassen zum Parsen und Durchlaufen von Z Ausdr cken zur Verf gung F r Komponenten die auf Z Pr dikaten und Z Ausdr cken arbeiten werden CZT interne Datenstrukturen die als Abstract Syntax Tree AST vorliegen wie Pred oder allgemein Term vergleiche CZT Javadoc in Wrapper Objekte verpackt Shttp czt sourceforge net RefaSo amp ModelCockpit 6 Architekturdokumentation 193 Ai UNIVERSIT T PADERBORN Abschlussbericht
332. so kann dies wie beispielsweise in Listing 7 16 zu sehen ist mit dem Ver ndern der values f r a und b durchgef hrt werden lt normalization type Ordinall name ordinal gt lt parameter name a value 10 gt lt parameter name b value 1 gt lt normalization gt Listing 7 16 Beispiel Struktur einer Normalisierung Eine Normalisierung besteht dabei immer aus einem Typen einem Namen und einer Menge von Parametern die jeweils einen Namen und einen Wert haben Mit Hilfe des Namens werden vom MQP bergebene Messergebnisse bzw deren zugeh rige Indikatoren den ent sprechenden Normalisierungen zugeordnet Der Typ type ist f r eine sp tere Erweiterung vorgesehen und hat derzeit noch keine Funktion Listing 7 16 zeigt wie eine Normalisierung hier mit dem Namen ordinal und den beiden Parametern a und b aussieht 7 2 4 3 Anlegen eines neuen Normalisierungstypes In Abbildung 6 29 in Kapitel 6 3 4 sind die derzeitig implementierten Normalisierungstypen dargestellt M chte man einen neuen Normalisierungstypen definieren so muss eine neue Klasse angelegt werden welche von der Klasse Normalization erbt In der von Benutzer angelegten Klasse muss dann die Methode getNormalizedValue auf jeden Fall implemen tiert werden welche als R ckgabewert einen double Wert hat Neben dem Erstellen einer neuen Normalisierungsklasse muss auch die Klasse NormalizationManager erweitert wer den Hier wird mittels einer if
333. splan 58 Moderator 61 MQP 58 223 MQP Metamodell 162 Normalisierung 175 178 230 233 Normalisierungstyp 233 255 dl UNIVERSITAT PADERBORN Die Universit t der Informationsgesellschaft Object Constraint Language 189 OCL 189 238 OCL Parser 189 OCLWrapper Komponente 145 189 203 Outline 45 Palette 42 54 Pflichtenheft 250 Precondition 182 Projekt 36 PropertyldentifierList 84 Pr sentationsmodell 73 Qualit tsattribut 68 Qualit tscharakteristik 68 Qualit tsmodell 68 Qualit tsreport 250 Refactoring 30 79 85 Refactoring GUI 185 Refactoring Komponente 145 180 203 Refactoring Schnittstelle 147 Refactoringassistent 80 RefactoringBase 87 Refactoringkandidat 174 Refactoringmen 79 Refactorings laden 79 Refactoringtherapie 76 232 RefactoringType 85 RefaSo 23 245 Reiter 224 RMC Komponenten 143 Rolle 62 Schnittstellen 147 202 Schreibzugriff 229 Section 226 SimpleRefactoring 86 SplitPredicateDecision 185 StringInputDecision 185 StumblingBlock 85 184 SubRefactoring 87 SubRefactoringCondition 182 Textkandidat 174 Texttherapie 76 172 232 Therapiekandidat 174 Token 236 256 9 Res mee Abschlussbericht TypeldentifierList 84 UML Z Editor 36 UML Z Editor Komponente 145 158 203 UML Z Model Komponente 145 153 203 Variablen 185 Z Editor 48 Z Parser 193 Ziel 66 Zustandsdiagramm 53 Zustandsdiagrammeditor 160 Re
334. sprechende Subrefactoring wird immer wieder angesto en bis die SubRefac toringCondition nicht mehr erf llt werden kann Die in einer Condition enthaltene IContexQuerys liefern im Gegensatz der Klasse Calcu lationTemplate vergleiche Abbildung 6 37 Boolsche Werte bei Ausf hrung Klassen die von CalculationTemplate erben siehe Abbildung 6 37 beschreiben Abl ufe eines Refactorings in welchen Variablen unter Zuhilfenahme von IContextQuery Objekten belegt werden k nnen AfterTemplate Die Klasse AfterTemplate entspricht der Definition von After Templa tes nach theoretischen Ausarbeitungen von Thomas Ruhroth RW07 Demnach ist es der Bestandteil eines Refactorings in dem die eigentlichen nderungen am Modell vorgenommen werden Um mit Hilfe von OCL nderungen am Modell vornehmen zu k nnen wurden im Ecore Modell von UML Z Methoden definiert und in den jeweiligen Klassen sp ter implementiert vergleiche dazu Angaben aus Kapitel 7 Af terTemplate Instanzen k nnen nur in SimpleRefactoring Objekten enthalten sein Damit sind Modifikationen eines Modells nur in einfachen Refactorings m glich BeforeTemplate Die Klasse BeforeTemplate entspricht der Definition von Before Tem plates nach theoretischen Ausarbeitungen von Thomas Ruhroth RW07 In Befo reTemplates werden Teile von Modellelementen Variablen eines Refactorings zuge wiesen Ein BeforeTemplate wird vor der Validierung der Precondition angesto en In vielen F llen werden d
335. ss Boolean Ex dla GenModel E documentation gt Determines whether this class is a metaclass C Boolean 48 addattribute Property ME removeAttribute Property addOperation Operation A removeOperation Operation ME addGeneral Classifier IA de upb pg rmc cztwrapper a E J de upb pg rmc diagnostics E E de upb pg rme map EE de upb pg rme map confmodel E E de upb pg rme mgp diagnosticsinterfac E E de upb pg rmc map diagnosticsprovide e cl de upb pg rmc mgp diagram quality 122 de upb pg rmc mgp edit FMS de upb pg rmc map editor E S de upb pg rmc map measurement E E de upb pg rme map tests E de upb pg rme map ui Il de upb pg rmc refactoring 45 de upb pg rmc refactoring commoninte Te cl de upb pg rmc refactoring diagnosticsi 13 de upb pg rme refactoring editorinterf 9 2 de upb pg rme refactoring refactoringy GK in HER El EME de upb pg rmc umlz Te ZS removeGeneral Classifier G sre e 8 setInit ZPredicate El Eh JRE System Library JavaSE 1 6 ES HE createZPredicateAsinit String BA Plug in Dependencies E nestedClassifier Classifier SE am E E ownedOperation Operation e META INF D ES superClass Class EE model HP isActive Boolean ae 3 ER E El GG xskt S E l Ui eme Problems Javadoc Declaration Progress Properties 3 D Console Search 3 Call Hierarchy Te ge IS UML genmodel e a Ee schema on B classpath Value Det
336. st Danach kann ber den Finish Button der Dialog geschlossen werden siehe Abbildung 5 75 140 5 Tutorial RefaSo amp ModelCockpit Teil IH Entwicklerorientierte Sicht 141 6 Architekturdokumentation Komm mal r ber ich zeig dir das schweizer Taschenmesser der UML Modellierungstools Christian 6 1 Komponenten bersicht Dieses Kapitel beschreibt die Systemarchitektur von RMC einem Tool das eine Erstellung und Bearbeitung von Klassen und Zustandsdiagrammen eines UML Z Modells sowie das Messen der Qualit t erzeugter Modelle und die Verbesserung dieser erlaubt Die Qualit ts messungen und deren Aussage k nnen mit RMC in Modellqualit tspl nen MQPs definiert werden Nach einer Messung ist der Anwender in der Lage festgestellte Modellm ngel ana lysieren zu lassen und unter Verwendung konfigurierbarer Refactorings also verhaltenser haltender Modifikationen des Modells diese zu beheben Aufgrund von unterschiedlichen Aufgabenbereichen wurden beim Entwurf von RMC ge eignete Funktionalit ten in Komponenten zusammengefasst Somit definiert die Kompo nente UML Z Model die Strukturen und Abl ufe bei der Erzeugung und nderung ein zelner Elemente im Modell und die Komponente UML Z Editor stellt dem Anwender eine Benutzerschnittstelle mit angemessenen Werkzeugen zur Verf gung ein entsprechen des UML Z Modell zu bearbeiten Dabei werden Z Annotationen unter Zuhilfenahme der Komponente CZT Wrapper syntaktisch an
337. t Add new Artefact m artefact information Id ari Name Phase Entwurf v Source Version 1 0 Status fertig X r artefact author forename surname hone office add author Max Mustermann 49 0 5251 123456 E 4 301 edit author delete author m artefact type software model software requirements specification software code software model Modelling Language Unified Modeling Language UML y Model Purpose v Model Category Model Methodology e diagram add diagram Class Diagram edit diagram delete diagram consistency relation artefacts level dependency type add relation edit relation delete relation ei Cancel Abbildung 5 53 Artefakt hinzuf gen RefaSo amp ModelCockpit 5 Tutorial 125 dl UNIVERSITAT PADERBORN Die Universit t der Informationsgesellschaft Abschlussb ericht Refaso ModelCod Ml Resource RMC Tutorial RMC_MOP_Tutorial map RMC lor File Edit Navigate Project MOP Editor Window Help ri E Re WEE E Resource 5 ERMC MOP Tutorialmapi D ie i 2 Information Need Model E Question Dz General information about this model quality plan Goal Implementierbarkeit bestimmen add QuestionGroup Goal Semantische Vollst ndigkeit Goal Design Qualit t bestimmen delete Question Group add Question delete Question Artefacts En
338. t haben F r die Implementierung haben wir mehr Zeit ben tigt als wir vorher gesch tzt hatten Deshalb konnten wir erst sp ter als geplant n mlich im M rz 2008 mit der Testphase beginnen Der Test der Software erfolgte haupts chlich in einer Testwoche bei der alle Projektgruppenmitglieder die ganze Woche im Poolraum der Projektgruppe gearbeitet ha ben um Fehler m glichst sofort zu beheben W hrend der Testwoche konnten wir ber 150 Fehler finden und beheben Abgeschlossen wurde die Projektgruppe durch eine Dokumentationsphase von M rz 2008 bis April 2008 in der diese Abschlussdokumentation erstellt wurde A 2 Themen der Seminarphase Software Qualit tsmanagement Qualit t ist kein eindeutig definierbarer Begriff so dass es verschiedene M glichkeiten zur Interpretation von Qualit t gibt Bei der Vorstel lung des Themas wurden daher verschiedene Ans tze n her erl utert u a Produkt und Prozessqualit t Ein weiterer Punkt war eine kurze Einf hrung in die verschie denen Testverfahren UML Klassen und Zustandsdiagramme und deren Beziehung F r den Entwurf unse res Tools RMC waren unter anderem Grundlagen der UML unabdingbar die da her in den Entwicklungsprozess eingeflossen sind In dieser Seminararbeit wurde der Fokus auf die beiden Diagrammtypen UML Klassen und Zustandsdiagramme ge setzt um den Projektgruppenteilnehmern einen berblick zu diesen beiden UML Diagrammtypen zu geben Die Aufgabe war dabei a
339. tanden Auch hier sind nur Anpassung an die eigenen Anforderungen n tig Abbildung 6 17 zeigt die Pakete des Editors Die Modifikationen und Erweiterungen des Quellcodes entsprechen zu weiten Teilen den UML2 Tools Auf die einzelnen Pakete und Abh ngigkeiten soll nicht weiter eingegangen werden da diese durch GMF vorgegeben sind Informationen finden sich auf der GMF Webseite GMF 6 3 3 ModelQualityPlan Die Komponente ModelQualityPlan ist daf r zust ndig dem Anwender die M glich keit zu bieten einen Modellqualit tsplan Schritt f r Schritt anzulegen Au erdem k nnen damit Messungen auf einem UML Z Modell durchgef hrt resultierende Messergebnisse pr sentiert und Messergebnisse unter Umst nden der Diagnostics Komponente berge ben werden 160 6 Architekturdokumentation RefaSo amp ModelCockpit D UNIVERSIT T PADERBORN Die Universit t der Informationsgesellschaft Abschlussbericht Leslie le edit draw k Y 47 g a Z S Sg E Vv f view Bar providers conventions le y l A E ee details V properties expressions part e action DS T ATK E O x N a gt y GC l S pl S SN Ss SH v v Y gt parsers _ Pars
340. te a Association acc Integer 0 if a name size 0 or a name size oclIsTypeOf Integer false then acc 1 else acc 0 endif CAT OCLDEFINITION context Model def TCN Integer allClasses gt size CI DER Eu RefaSo amp ModelCockpit B OCL Messungen 281 dl UNIVERSITAT PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft WS OCLDEFINITION context Model def NAssoc Integer Association alllnstances gt size COMMENTS UsINGAUXILARYF UNCTIONS LITERATURS B 3 3 Unit of measure is StateMachine The number of simple states of a StateMachine not conside ring the simple states within the composites states OCLDEFINITION context StateMachine def NDSS Integer self directSimpleStates gt size Ke 282 B OCL Messungen RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft WS A UNIVERSIT T PADERBORN Abschlussbericht miaz INFORMALDEFINITION The number of composite states of a StateMachine not con sidering the composite states within the composite states of the StateMachine StateChart OCLDEFINITION context StateMachine def NDCS Integer self directCompositeStates gt size oe le B 4 Derived measures B 4 1 Unit of measure is Class INFORMALDEFINITION The Depth of Inheritance of a class In cases involving mul tiple inheritance the DIT will be the maximum length from the node to the root of
341. te ausgew hlt und anschlie end in der Zeichenfl che auf die Klasse Professor geklickt Um den Namen des Attributs anzugeben wird das Attribut in der Zeichen fl che angeklickt und in der Properties View f r das Feld Name gehalteneVortr ge eingetragen Nun muss noch der Typ des Attributs angegeben werden Dies geschieht ebenfalls in der Properties View indem aus der Auswahlbox f r das Feld Typ N gew hlt wird Abbildung 5 31 zeigt das Resultat Als n chstes werden sieben Operationen f r die Klasse Professor angelegt Die Ope ration forschen wird erstellt Hierzu wird aus der Palette das Werkzeug Operation gew hlt und durch Klick auf die Klasse Professor dieser eine Operation hinzugef gt RefaSo amp ModelCockpit 5 Tutorial 109 d i UNIVERSIT T PADERBORN Die Universit t der Informationsgesellschaft Abs chlussb ericht __Refaso Modelcoc Wi Resource RMC Tutorial default umlz_class_diagram RMC Loix Eile Edit Navigate Project Window Help ls Pela E i resource 5 E Properties 53 RA E d Si Pri Value a Aggregation composite el Association Class E lt Class gt Professor BE Client Dependency Default tE End Is Derived a false Is Derived Union a False Is Leaf ve false Is Ordered E false Is Read Only DA false Is Static A false Is Unique o true Lower G1 Name 12 semesterWochenStunden Redefined Property Subsetted Property Template Parameter Type Type Declaratio
342. te zu jedem Refactoring Wizard Dialog ei ne Beschreibung des Fehlers angegeben werden der die Fortf hrung des Refactorings verhindert Diese Beschreibung sollte in der DecisionVa lidationDescription der Konfigurationsdatei angegeben sein und wird im Wizard gegebenenfalls eingeblendet 4 Benutzerdokumentation RefaSo amp ModelCockpit 5 Tutorial Super mach doch mal 15 Minuten haben wir Tobias ber das Tutorial Learning Eclipse in 15 minutes 5 1 Einleitung In diesem Kapitel wird anhand eines durchgehenden Beispiels die Nutzung und Funkti onsweise der Komponenten Editor Modellqualit tsplan Diagnose sowie Refactoring be schrieben F r diese wird der Anwender jeweils Schritt f r Schritt durch die notwendigen Aktionen im Erstellungs bzw Verwendungsprozess gef hrt Das Tutorial st tzt sich da bei auf Beispiel Abbildungen der Software die einzelne bzw zusammengeh rige Schritte illustrieren und den Anwender beim Einstieg in die Verwendung der Software unterst tzen sollen 5 2 Durchgehendes Beispiel In den folgenden Kapiteln wird ausgehend von der Erstellung eines ersten UML Z Modells ber die Modellierung von Qualit t mit Hilfe von Modellqualit tspl nen bis hin zur Diagno se und anschlie ender Durchf hrung eines Refactorings ein typischer Verwendungsablauf von RMC dargestellt Die Reihenfolge der im Tutorial beschriebenen Arbeitsschritte ist hierbei exemplarisch f r eine erste Verwendung von RMC
343. tefact 1 Context Model 2 Information Need Model 3 Quality Model 4 Measurement Model 5 Presentation Model Selection Parent List Tree Table Tree with Columns E Jas Abbildung 5 52 Kontextmodell anlegen Typ software model software requirements specification oder software code ein gegeben werden Beim erstmaligen Anlegen eines Artefakts ist software model voraus gew hlt da jeder MQP ein Softwaremodell auf welches sich der MQP bezieht beinhalten muss Nachdem eine ID Id die Entwicklungsphase Phase die Version Version und der Status Status f r das Artefakt eingegeben bzw ausgew hlt wurden kann mit Add Author ein Autor f r dieses Artefakt eingegeben werden Ein f r dieses Beispiel ausgef llter Dialog ist in Abbildung 5 53 abgebildet Anschlie end muss der Anwender die Modellierungssprache Modelling Language den Mo dellierungszweck Model Purpose die Modellkategorie Model Category und die Modell Methodik Model Methodology eingeben Die Eingabe des Artefact best tigt der Anwender mit Save Changes 5 2 2 3 Ein neues Informationsbed rfnismodell erstellen Im Informationsbed rfnismodell gibt der Anwender zun chst drei Ziele add Goals ein In diesem Beispiel sind das die Ziele e Implementierbarkeit bestimmen e semantische Vollst ndigkeit 124 5 Tutorial RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft de UNIVERSITAT PADERBORN Abschlussberich
344. ter a list of artefacts for this model quality plan The first artefact in this list must be your main artefact the artefact you want to analyze 10 Name Source Version Status Author 1 1 Context Model 2 Information Need Model 33 Quality Model 4 Measurement Model 5 Presentation Model Selection Parent List Tree Table Tree with Columns IS Selected Nothing Abbildung 5 54 Informationsbed rfnismodell Ziele e Design Qualit t bestimmen Beim Hinzuf gen der Ziele ordnet er jedem Ziel die Rolle zu die ein Interesse an dem entsprechenden Ziel hat siehe Abbildung 5 55 Dies geschieht ber die Properties des jeweiligen Ziels Die drei Ziele werden wie folgt zugeordnet e Implementierbarkeit bestimmen Entwickler e semantische Vollst ndigkeit Architekt e Design Qualit t bestimmen Architekt Anschlie end gibt der Anwender f nf Fragen ein und ordnet sie den Zielen per Drag and Drop zu Die Fragen in diesem Beispiel sind Wird Mehrfachvererbung eingesetzt Sind alle Operationen vollst ndig spezifiziert Wird Vererbung richtig eingesetzt Gibt es Klassen mit zu vielen Methoden Gibt es Klassen mit einem zu langen Namen Das fertig ausgef llte Informationsbed rfnis ist in Abbildung 5 56 abgebildet 126 5 Tutorial RefaSo amp ModelCockpit d i UNIVERSIT T PADERBORN Die Universit t der Informationsgesellschaft Abschlussbericht __Refaso Modelcoc
345. terbarkeit ausgelegt F r Modellqualit tspl ne sollte es urspr nglich m glich sein Qualit tsreports zu definieren Diese sollten verschiedenen Rollen z B Professor oder Student unterschiedliche Ansichten auf Messergebnisse zu einem Modell liefern F r jeden Messwert sollte es z B m glich sein unterschiedliche Darstellungsarten im Report auszuw hlen Text Zahl Balkendiagramm Kreisdiagramm usw Aus Zeitgr nden haben wir auf diese Funktionen verzichtet Um Qualit tsreports nachtr glich zu integrieren w re eine Erweiterung des MQP Metamodells erforderlich das Pr sentationsmodell m sste im Metamodel angepasst und erweitert wer den Anschlie end m sste die MQP Benutzeroberfl che um Eingabe Bearbeitungs und Darstellungsm glichkeiten f r Qualit tsreporte erweitert werden Die Refactoring Komponente unterst tzt nicht die urspr nglich geforderten 10 Refacto rings Da Refactorings aber ber Konfigurationsdateien definiert werden w re es einfach m glich weitere Refactorings zu definieren Je nach Refactoring sind allerdings nicht alle f r das Refactoring ben tigten Operationen im UML Z Modell vorhanden diese m ssten dann nachtr glich in das Modell integriert und implementiert werden In der Entwicklerdo kumentation wird diese Erweiterungsm glichkeit ausf hrlich beschrieben In der Projektgruppe ModelCockpit gab es urspr nglich die Idee unsere Software in einer Vorlesung einzusetzen und so in der Praxis zu teste
346. textmodell besteht wiederum aus f nf Bereichen die im Folgenden genauer be schrieben werden Overview Bereich Im Overview Bereich werden die allgemeinen Informationen ber den MQP die beim An legen bereits eingegeben wurden angezeigt und k nnen dort auch ver ndert werden Moderator Bereich Ein MQP besitzt einen Moderator der die Verantwortung f r den MQP tr gt Einem Moderator kann der Vorname forename der Nachname surname die Telefonnummer phone sowie das B ro office zugewiesen werden Die Eingaben werden automatisch gespeichert sobald etwas in die Zeilen eingegeben wurde Autoren Bereich An der Erstellung eines MQPs k nnen mehrere Autoren beteiligt sein ber Add Author Abbildung 4 21 kann der Anwender neue Autoren anlegen Im sich neu ffnenden Fenster kann der Benutzer ausw hlen ob eine neue Person angelegt werden oder ob der bereits eingegebene Moderator auch als Autor hinzugef gt werden soll Soll ein neuer Autor ange legt werden kann der Benutzer den Vornamen forename den Nachnamen surname die Telefonnummer phone sowie das B ro office eintragen und die Eingaben mit Save Changes speichern Die zu einem MQP geh renden Autoren werden im Autoren Bereich in einer Tabelle dar gestellt Um einen Autor zu bearbeiten muss der Benutzer den entsprechenden Autor in der Tabelle ausw hlen und Edit Author dr cken Im neuen Fenster kann der Benutzer die RefaSo amp ModelCockpit 4 Benutzerdo
347. torial OCL Struktur f r Messungen 131 Diagnose Beispiel f r eine Schulnotennormalisation 175 Editor Init Statemachine auf Canvas e 215 Editor Init Statemachine in Outline e 216 Editor Parser f r Transitionen getString 217 Editor Parser f r Transitionen isAffectingEvent 218 Editor Z Editor im RMC Menti e 220 MOP PditorPart e 2 2 4 s 44 eta poe ee ee ee ele we eo e 224 MQP Form Konstruktor gt a ararac plnra a Ek ee Re ae 225 MOP Sectio sa a ct da cat naar Aa es 226 MQP Lesezugriff auf das Modell 228 MQP CreateMQPAuthorCommand a 229 MQP Verwendung CreateMQPAuthorCommand 230 Diagnose Beispiel neues Symptom 231 Diagnose Beispiel neue Diagnose e 232 Diagnose Beispiel neue Texttherapie 232 Diagnose Beispiel neue Refactoringtherapie 232 Diagnose Beispiel Struktur einer Normalisierung 233 Diagnose Anlegen einer neuen Normalisierung 233 Grammatik Abschnitt Optionen von Java 235 Grammatik Abschnitt Definition der Klasse RefactoringParser 235 Grammatik Abschnitt Whitespace 236 Grammatik Abschnitt Tokenliste 236 Grammatik Abschnitt interne Tokenliste 237 Grammatik Abschnitt interne Tokenliste o 238 Grammatik Abschnitt globale OCL Statements 239 Grammatik Abschnitt Query
348. toringType compareTo other IRefactoringElementWrapper int equals ob Object boolean getIRefactoringElement IRefactoringElement getTypeDescription String getTypeName String hashCode int en hasProperties properties Collection lt RefactoringProperty gt boolean ValidityInfo isExecutable boolean IO toString String isValid boolean 1 create A J ordered parsed queries elements to decide 1 y interface decisionQuery IContextQuery x 1 WAR execute boolean 1 getParameter Collection lt Variable lt gt gt parsed TI getReturnType Class lt gt S getReturnVarName String Decision hasReturnValQ boolean getInputValue R getType String el parsed Decision lt Collection lt gt String gt parsed parsed PredicateSplittingDecision validate value T Validity Info 1 getType String parsed Decision lt String String gt Decision lt Collection lt gt Collection lt gt gt parsed parsed StringInputDecision ListQueryDecision getType String getType String 0 2 Condition parsed DecisionValidation create DecisionValidation failure Description String queries Collection lt IContextQuery gt Abbildung 6 38 Klassendiagramm Decisions 186 6 Architekturdokumentation RefaSo amp ModelCockpit Die Universit t d
349. u can change the software or use pieces of it in new free programs and that you know you can do these things To protect your rights we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights These restrictions translate to certain responsibilities for you if you distribute copies of the software or if you modify it For example if you distribute copies of such a program whether gratis or for a fee you must give the recipients all the rights that you have You must make sure that they too receive or can get the source code And you must show them these terms so they know their rights We protect your rights with two steps 1 copyright the software and 2 offer you this license which gives you legal permission to copy distribute and or modify the software Also for each author s protection and ours we want to make certain that everyone understands that there is no warranty for this free software If the software is modified by someone else and passed on we want its recipients to know that what they have is not 297 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft the original so that any problems introduced by others will not reflect on the original authors reputations Finally any free program is threatened constantly by software patents We wish to avoid the danger that redistributors of a free program will individuall
350. uations and the maximum number of possible distinct polymorphic situations due to inheritance OCLDEFINITION context Model def POF Real TOON TAON inv TAON gt 0 USING MEASURES Total Available Operations Number TAON Total Over ridden Operations Number TOON B 5 Indicators B 5 1 Unit of measure is Class CALCULATION IF MAHF 1 THEN SEHR GUT IF MAHF gt 0 9 THEN GUT IF MAHF gt 0 8 THEN BEFRIEDIGEND IF MAHF gt 0 7 THEN AUSREICHEND IF MAHF gt 0 6 THEN MANGELHAFT ELSE UNGENUGEND 294 B OCL Messungen RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft D UNIVERSIT T PADERBORN Abschlussbericht CALCULATION IF SmallC true THEN true IF SmallC false THEN false ELSE false COMMENTS Fuzzy Logic USINGMEASURES Small Class SmallC B 5 2 Unit of measure is Model CALCULATION IF LCN gt 4 THEN VERY HIGH IF LCN gt 3 THEN HIGH IF LCN gt 2 THEN MIDDLE IF LCN gt 1 THEN LOW ELSE VERY LOW Large Classes Number LON EN CALCULATION IF UnAssocN NAssoc gt 0 5 THEN VERY HIGH IF UnAssocN NAssoc gt 0 3 THEN HIGH IF UnAssocN NAssoc gt 0 1 THEN MIDDLE IF UnAssocN NAssoc gt 0 05 THEN LOW ELSE VERY LOW USINGMEASURES Unnamed Associations Number UnAssocN Number of Asso ciations NAssoc RefaSo amp ModelCockpit B OCL Messungen 295 Die Universit t der Informationsgesellschaft WS D UNIVERSIT
351. ubstring 1 string image length 1 In Listing 7 24 Grammatik Abschnitt globale OCL Statements Eine Query selbst ist als ContextQuery definiert Listing 7 25 Das Terminal verlangt zwei Parameter die sich um Werte von Variablen k mmern IVariableHolder gibt die aktuellen Werte von Variablen zur ck IVariableManager f hrt Zuweisungen an Variablen durch IContextQuery ContextQuery IVariableHolder holder IVariableManager manager String query Variable lt gt var null Collection lt Variable lt gt gt env ContextQuery var Variable env Parameter holder query Query return new ContextQueryImpl var env query holder manager Listing 7 25 Grammatik Abschnitt Query Das Schl sselwort ContextQuery nutzt die zwei Elemente Query und Parameter die Listing B 4 2 zeigt Parameter nimmt eine beliebige Anzahl von Variablen auf genau diese Variablen k nnen innerhalb der Query benutzt werden und werden dann mittels des Argu ments IVariableHolder durch ihre aktuellen Werte ersetzt Das zweite Element Query definiert lediglich den Rahmen f r die Zeichenfolge die den Inhalt der Query aufnimmt Collection lt Variable lt gt gt Parameter IVariableHolder holder String name Class lt gt type Collection lt Variable lt gt gt env new HashSet lt Variable lt gt gt RefaSo amp ModelCockpit 7 Entwicklerdokumentation 239 Die Universit t d
352. ufzuzeigen was UML Klassen und Zustandsdiagramme sind und wie diese beiden Diagrammtypen miteinander in Verbindung stehen Dabei wurde im Verlauf der Ausarbeitung auf die einzelnen Teile und Beziehungen der Diagramme eingegangen und ihre Symbolik aufgezeigt Qualit tsmodelle Qualit tsmodelle definieren ein grundlegendes Qualit tsverst ndnis f r die Bewertung von Modellen Sie liefern eine M glichkeit die Qualit t eines Modells pr zise erfassen und messen zu k nnen Diese Qualit tsmodelle waren im Hinblick auf die Entwicklung von Modellqualit tspl nen ein wichtiger Finstiegspunkt in die Beurteilung der Qualit t von Modellen 258 A Unsere Vorgehensweise RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft dl UNIVERSITAT PADERBORN Abschlussbericht minin Dokumentationsstandards Diese Ausarbeitung besch ftigt sich zum Einen mit dem The ma Dokumentation Warum Was Wie Das hei t warum sollte ich berhaupt etwas dokumentieren Was genau soll ich dokumentieren Und wie dokumentiere ich berhaupt Das zweite gro e Kapitel sind die Werkzeuge zur Dokumentation die f r uns in der Projektgruppe interessant sein k nnten Dabei unterscheiden wir zwischen Dokumentationswerkzeugen die f r die normalen Dokumente im Projektalltag hel fen Dokumente zu erstellen und den Quellcodedokumentationswerkzeugen die aus unseren Quellcodekommentaren automatisch eine Dokumentation generieren Software Configurat
353. uginjorg ecipse emf ecorejmodeljEcore genmodel Io el de upb pg rme map ui o EI platform pluginfora ecipse emf ecore modeljEcore ecore 42 de upb pg rmc refactoring 3 32 de upb pg rmc refactoring commoninte E32 de upb pg rmc refactoring diagnosticsi Io cl de upb pg rmc refactoring editorinterf Iech de upb pg rmc refactoring refactoringt E E de upb pg rmc umlz 23 de upb pg rmc umlzdiagram classedite cl de upb pg rmc umlz diagram stateeditc rc 43 custom sre BA JRE System Library JavaSE 1 6 Eh Plug in Dependencies iy icons gt ee E Problems Javadoc E Dedaration E Progress E Properties 22 _ El Console 7 Search Cal Herarchy BE SO Gy codegen ert Value Ey gmf graph Feature Gen Feature H E templates BR activityDiagram_controlNodes c 3 propsheet ecore 3947 02 03 C f e propsheet genmodel 3947 02 1 stateMachineDiagram gm gen BY stateMachineDiagram gmfgrapt E statemachineDiagram gmfmap R A dl 4 gt Selected Object Custom Feature Value Abbildung 7 13 GMF Genmodel Tab erweitern RefaSo amp ModelCockpit 7 Entwicklerdokumentation 219 Die Universit t der Informationsgesellschaft WS D UNIVERSIT T PADERBORN Abschlussbericht setter Methoden f r die Transitionen und das Setzen des korrekten Labels der Transition damit die gew hlte Methode auf der Zeichenfl che als Kantenbeschriftung erscheint 7 2 2 3 Implementierung neuer Funktionen Der UML Z Editor
354. ugreifen Die Modelle haben wiederum Methoden mit denen man auf die Elemente im Model zugreifen kann Zum Beispiel hat das Kontextmodell eine Methode getPerson Diese Methode liefert Objekte aller Personen aus dem Modell in einer EList zur ck Listlterator lt OCLExpression gt i map getMeasurementModel getAuxiliaryFunctions getOclExpression listIterator Listing 7 9 MQP Lesezugriff auf das Modell Das Beispiel zeigt den Zugriff auf das Messmodell und die darin vordefinierten OCL Ausdr cke Das Beispiel wurde dem EditMeasureDialog entnommen Dieser Dialog er m glicht das Anlegen und Editieren neuer Messungen Dabei werden die OCL Ausdr cke in einer Liste dem Benutzer zur Verf gung gestellt 228 7 Entwicklerdokumentation RefaSo amp ModelCockpit dl UNIVERSITAT PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Schreibzugriff auf das Modell Dialoge und Formulare diirfen nicht direkt auf dem Modell arbeiten daher wurde das Model View ViewModel Pattern MVV verwendet Da keine set Methoden verwendet wer den k nnen um Objekte im Modell zu speichern werden Commands benutzt Deren Verwendung hat zus tzlich noch den Vorteil dass man sich bei der Entwicklung nicht um die Undo und Redo Funktionalit t k mmern muss Dieses geschieht automatisch bei Commands Die Commands befinden sich im Packet de upb pg rmc mqp ui commands public class CreateMQPAuthorCommand extends ChangeCommand
355. un eine gewisse Intelligenz AI vorstellbar die selbstst ndig Zuordnungen durchf hrt und mit neuen zur bergabe unbekannten Indikatoren intelligent verf hrt und weiter verarbeitet Eine weitere M glichkeit ist auch die Normalisierung mit einer gewissen Intelli genz auszustatten da hier derzeit einem Indikator starr eine Normalisierungsart zugeteilt ist Wie man sehen kann ist der Erweiterung bzw Verbesserung dieser Komponente allei ne durch die gerade aufgezeigten Beispiele ohne weiteres m glich Mit den Informationen die in den einzelnen Abschnitten dieser Dokumentation zu finden sind sollte es realisierbar sein schnell einen Einstig in das gesamte Projekt zu erhalten und die Diagnose zum Leben zu Erwecken 7 2 5 Refactoring Die Refactoring Komponente basiert auf einer Grammatik die ab Seite 234 beschrieben wird Wie man den Refactoring Wizard um neue Arten von Entscheidungen erg nzt kann man auf Seite 240 nachlesen Um gr ere strukturelle Umbauten bewerkstelligen zu k nnen widmet sich Kapitel 7 2 5 2 auf Seite 238 der Abh ngigkeiten des Refactorings in Bezug auf die verwendeten Sprachen und Modelle 7 2 5 1 Aufbau der Grammatik Die Grammatik wurde mit dem Java Compiler Compiler JavaCC JAV erstellt und besteht aus einer einzigen Datei JavaCC nutzt Dateien mit der Endung jj in denen sowohl die Struktur der Grammatik als auch Java Fragmente enthalten sind JavaCC erzeugt aus der Grammatik Date
356. ung durchgef hrt werden sollen Das Messmodell beantwortet folgende Fragen e Was wird gemessen e Wie wird gemessen e Welche Messungen existieren e Wie werden Messungen bestimmt e Wie h ngen diese Messungen mit dem Qualit tsmodell zusammen Eine detaillierte Beschreibung ist in VE08 zu finden Abbildung 6 23 stellt das Klassendiagramm des Messmodells dar Die Klassen Objective BaseMeasure und DerivedMeasure haben jeweils das Attribut OCLExpression in dem eine OCL Anfrage gespeichert wird Die Klasse Indicator enth lt die Attribute calculation und calculationValue Diese definieren wie ein Indicator durch enthaltene Teilmessun gen BaseMeasure oder und DerivedMeasure bewertet wird Die Klasse AuxiliaryFunc tions oben rechts in Abbildung 6 23 definiert eine externe OCL Funktion f r Elemente eines UML Z Modells und dient der Vereinfachung der Definitionen von OCL Anfragen in Messungen Die Klassen die mit dem Stereotype config gekennzeichnet sind werden ausschlie lich in der Konfigurationsdatei des MQP genutzt Im eigentlichen Modell verweisen die Klassen de ren Klassenname mit Link endet wie z B MeasureLink anhand des acronym Attributs auf die entsprechenden Eintr ge in der Konfigurationsdatei 166 6 Architekturdokumentation RefaSo amp ModelCockpit Rive iN UNIVERSITAT PADERBORN Abschlussbericht l Die Universit t der Informationsgesellschaft
357. ungen oft zu endlosen Dis kussionen die sich immer wieder im Kreis bewegt haben ohne erkennbare Fortschritte zu erzielen Sp ter haben wir dann die m glichen Alternativen systematisch verglichen in dem wir die Vor und Nachteile in einer Tabelle aufgelistet und gewichtet verglichen haben Dadurch konnten wir Entscheidungen schneller und besser nachvollziehbar treffen A 4 5 Zwei Betreuer Unsere Projektgruppe wurde von zwei Betreuern unterst tzt die teilweise sehr unterschied liche Arbeitsweisen und Ansichten hatten Beide kommen aus unterschiedlichen Arbeits gruppen und konnten die Projektgruppe jeweils mit Fachwissen aus ihrem Arbeitsgebiet un terst tzen Hendrik Voigt hat haupts chlich den Bereich Qualit tsmodellierung unterst tzt Thomas Ruhroth die Bereiche UML Z Refactoring und Diagnose Auch wenn sich unsere Betreuer nicht immer sofort einigen konnten hat sich das ingesammt doch eher positiv auf unser Ergebnis ausgewirkt Durch die doppelte Betreuung war bei Fragen und Problemen fast immer einer der Beiden als Ansprechpartner erreichbar A 4 6 Spezialisten f r einzelne Themen vermeiden Leider gab es einige Bereiche und Aufgaben mit denen nur einzelne Spezialisten vertraut waren Dies hat zu Problemen gef hrt wenn es R ckfragen in diesen Bereichen gab und die Spezialisten gerade nicht erreichbar waren Hier h tten wir darauf achten sollen dass sich mit allen Aufgaben und Themen immer mindestens zwei oder meh
358. unterst tzt schon eine gro e Anzahl an Funktionen Denoch bestehen noch Kapazit ten f r die Erweiterung Dieses Kapitel soll einige Anregungen f r m gliche Erg nzungen liefern Elemente im RMC Men Das RMC Men im Klasseneditor bietet eine gefilterte Sicht auf die Men s Create child und Create sibling Um weitere Elemente in dieses Men aufzunehmen m ssen diese im Quelltext erg nzt werden In der Klasse UMLZDiagramEditor im Paket de upb pg rmc umlz diagram classeditor part findet sich die Collection fillMyActionList In die ser werden die Namen der Elemente des RMC Men s verwaltet F r weitere Eintr ge muss die Collection einfach erg nzt werden Die entsprechenden Namen finden sich in der UML ecore des UML Z Modells Z Editor in RMC Men Eine weitere m gliche Erweiterung stellt die Erg nzung des RMC Men s um einen Eintrag f r den Z Editor dar Der Anwender m sste dann nicht aus dem Men in die Proper ties wechseln um den Z Editor zu starten Um dies zu implementieren muss die Opera tion fillContextMenu in der Klasse UMLZDiagramEditor im Paket de upb pg rmc umlz diagram classeditor part erweitert werden Ein erster Ansatz ist die Erg nzung um folgenden Quelltext add z Editor to contextmenu if Z Element is selected in outline Object treeSelection StructuredSelection this getContentOutlinePage getSelection getFirstElement if treeSelection instanceof ZExpressionSpecificationImpl tree
359. urch Entscheidungen Decision die vom Benutzer getrof fen werden bereits im RefactoringType notwendige Variablen belegt so dass ein BeforeTemplate leer bleiben kann 182 6 Architekturdokumentation RefaSo amp ModelCockpit di UNIVERSIT T PADERBORN PRI P Die Universit t der Informationsgesellschaft Abschlussbericht Leslie parsed parsed DecisionValidation create DecisionValidation failureDescription String queries Collection lt IContextQuery gt IVariableHolder parsed JVariableManager parsed Vi de ApplicabilityCondition Ss addVariable variable Variable lt gt void Condition lt Creatas Applicability Condition addQueries queries Collection lt IContextQuery gt void getVariable name String Variable lt gt parsed 1 parsed 0 SubRefactoringCondition i parsed create interface P SubRefactoringCondition queries Collection lt IContextQuery gt IContextQuery execute boolean getParameter Collection lt Vanable lt gt gt getRetumType Class lt gt getReturVarName String parsed hasReturnVal boolean pb Precondition create Precondition queries Collection lt IContextQuery gt ContextQueryImpl create ContextQueryImpl var Variable lt R gt env Collection lt Variable lt gt gt ociQuery String holder IVariableHolder manager IVariableManager ex
360. ustandsdiagramme in UML Z beschreiben jeweils das Ver halten einer Klasse pro Zustandsdiagramm Durch Z sind die Diagramme auch in ihrer Semantik klar und eindeutig spezifiziert Als Modellierungswerkzeug bietet RMC die grafische Modellierung von UML Z Klassen diagrammen und Zustandsdiagrammen RMC unterst tzt dabei die klassischen Funk tionen eines UML Modellierungswerkzeugs Anlegen und Bearbeiten von Klassendiagram men Anlegen und Bearbeiten von Zustandsdiagrammen erweitert um die M glichkeit Z Annotationen einzugeben Nach der Modellierung mit UML Z kann der Anwender die Qualit t der so erstellten Dia gramme mit Hilfe von Modellqualit tspl nen messen Die Sprache UML Z wird im Kapitel Konzepte auf Seite 25 n her beschrieben http www borland com us products together index html 248 9 Resiimee RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft Retasol Ai UNIVERSIT T PADERBORN Abschlussbericht minin 9 3 2 Modellierung und Messung von Qualit t Mit unserer Software ist es m glich Modellqualit tspl ne einfach und intuitiv ber eine grafische Benutzeroberfl che zu erstellen und somit Qualit t zu modellieren ber Modell qualit tspl ne werden Qualit tsma st be definiert Ein Modellqualit tsplan besteht aus f nf Teilmodellen e Kontextmodell siehe Seite 163 e Informationsbed rfnismodell Seite 163 e Qualit tsmodell siehe Seite 163 e Messmodell siehe Seite
361. ute ausgew hlt und anschlie end in der Zeichenfl che auf die Klasse Student geklickt Um den Namen des Attributs anzugeben wird das At tribut in der Zeichenfl che angeklickt und in der Properties View f r das Feld Name matrikelnummer eingetragen Nun muss noch der Typ des Attributs angegeben werden Dies geschieht ebenfalls in der Properties View indem aus der Auswahlbox RefaSo amp ModelCockpit 5 Tutorial 105 d i UNIVERSIT T PADERBORN Die Universit t der Informationsgesellschaft Abschlussb ericht __Refaso Modelcoc Ml Resource RMC Tutorial default umlz_class_diagram RMC Ele Edit Navigate Project Window Help lle mela a iG resore Beles ses e asis Es 5 _ d Pri Value ss a Aggregation composite A Association s S Class E lt Class gt Person BE Client Dependency Default End Is Derived A false Is Derived Union E false Is Leaf LA false Is Ordered LA false Is Read Only a false Is Static E4 false Is Unique 1 true Lower Sg Name emailadresse Redefined Property Subsetted Property Template Parameter Type Type Declaration Text Upper 1 Visibilty private Abbildung 5 24 Tutorial Eigenschaften des Attributes email W Resource RMC Tutorial default umlz_class_diagram RMC Ele Edit Navigate project Window Help Iei RTR ge Resource I Properties 101 so Classifier Behavior Client Dependency Init are eal
362. verwendet Subversion Subclipse TortoiseSVN Als Versionskontrollsystem haben wir Subversion eingesetzt Als Clients wurden unter anderem das Eclipse Plugin Subclipse und der Windows Client TortoiseSVN verwendet Microsoft Visio und Borland Together F r UML Diagramme haben wir zun chst Visio 2007 und Visio 2003 verwendet Sp ter haben wir dann Borland Together eingesetzt da Together Java Code aus Diagrammen generieren und Diagramme aus bereits vor handenen Code erstellen kann JavaCC Ein Teil des Quellcodes des Refactorings wird ber JavaCC JAV den Java Compiler Compiler generiert JavaDoc F r die Generierung unserer API Dokumentation haben wir JavaDoc verwendet Apache Ant W hrend ein Teil der Projektgruppe ausschlie lich mit Eclipse gearbeitet hat um die Projekte zu kompilieren wurden in anderen Teilgruppen umfangreiche Ant Skripte eingesetzt Unter anderem wurden JavaCC und JavaDoc ber das Ant Skript aufgerufen Ihttp www eclipse org modeling mdt downloads project uml2 260 A Unsere Vorgehensweise RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft Ai UNIVERSIT T PADERBORN Abschlussbericht minin Bugzilla Gegen Ende der Projektgruppe und insbesondere in der Testphase haben wir Bugzilla verwendet um alle gefundenen Fehler zu protokollieren und an einzelnen Entwicklern zuzuweisen JUnit F r einige Komponenten wurden Unit Tests erstellt daf r haben wir JUnit verwen det Microso
363. vom vererbten Composite und die Methode initGUI aufgerufen In initGUI werden die Elemente der Form initialisiert Dafiir werden zuerst die beiden Methoden createBaseLayout und createForm aufgerufen in denen die Basiseigenschaften wie berschrift und Gr e gesetzt werden Die Form selber enth lt wiederum Sections Die Sections dienen zur grafischen Trennung von inhaltlichen Themen Sie sind zuklappbar so dass der Benutzer sie ausblenden kann wenn er in diesem Bereich nicht arbeitet Wie die RefaSo amp ModelCockpit 7 Entwicklerdokumentation 225 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Sections aufgebaut sind wird sp ter in diesem Teilkapitel noch erkl rt Ein Beispiel f r das Benutzen einer Section sieht wie folgt aus Composite questionSection new QuestionSection this TableWrapData tdQuestionSection new TableWrapData TableWrapData FILL_GRAB tdQuestionSection colspan 2 questionSection setLayoutData tdQuestionSection Listing 7 8 MQP Section Dieses Beispiel zeigt einen Aufruf der QuestionSection aus dem Informationsbed rf nismodell Dem Konstuktor der Section muss die Form bergeben werden auf dem die Section angezeigt werden soll Das geschieht hier ber this Es sollte einer Section auch immer ein TableWrapData f rs Layout zugewiesen werden ber colspan legt man fest dass die Section sich ber zwei Spalten erstrecken soll da die Form in diesem Be
364. w99 Auf Basis einer Analyse welche mittels eines Modellqualit tsplans vorgenommen wird k nnen M ngel am vorhandenen Modell aufgedeckt werden Die Identifizierung von Mo dellm ngeln bietet Ansatzpunkte f r nderungen die als Verbesserungen des Modells vorgeschlagen werden k nnen Derartige Verbesserungsvorschl ge k nnen demnach auch verhaltenserhaltende Modell nderungen und damit Refactorings sein Die Qualit t und nderbarkeit eines Modells besitzen Verkn pfungspunkte die durch die Zusammenlegung der Projektgruppen ModelCockpit und RefaSo herausgearbeitet werden sollten Daher kommt auch die Bezeichnung RMC des entwickelten Tools ein K rzel stell vertretend f r die beiden Projektgruppen Refaso und ModelCockpit 1 2 Inhaltliche bersicht Diese Abschlussdokumentation ist in drei gro e Kapitel aufgeteilt die jeweils einer Sicht weise entsprechen Die Sichten ergeben sich wie folgt e konzeptionelle Sicht S 21 e anwenderorientierte Sicht S 31 e entwicklerorientierte Sicht S 141 Die konzeptionelle Sicht wird in den Kapiteln Ideen und Konzepte S 25 vorgestellt Dort werden die wichtigsten Ideen und Vorteile von RMC pr sentiert Fiir den Anwender sind besonders die Kapitel Benutzerhandbuch S 35 und Tutorial S 91 wichtig Neben einer Installationsanleitung erh lt der Leser auch Kenntnis ber die praktische Anwendung des entwickelten Tools So werden die grundlegenden Funktionen im Benutzerhandbuch er
365. welche mit Hilfe des Eclipse Modelling Frameworks EMF EMF realisiert wurde Wie bei allen EMF Projekten besteht der generierte Java Code aus vier Projek ten e der Modell Implementierung e einem Hilfsprojekt edit zum Bearbeiten des Modells e einem Baumeditor zum Bearbeiten und Erstellen von Modellen editor e einem Projekt mit welchem man Unit Tests HL03 auf dem generierten Code bzw eigenen Erg nzungen vornehmen kann Nicht der gesamte ben tigte Code f r ein funktionierendes Modell wird von EMF generiert Insbesondere die Komplexit t der UML2 erfordert etliche Anpassungen Daher wurde das UML Z Modell auf Basis der bestehenden UML2 Implementierung erstellt F r die Einbin dung von Z waren weitere manuelle Anpassungen erforderlich Diese manuellen Anpassung sind im Kapitel 7 der Entwicklerdokumentation beschrieben Im Folgenden soll auf die UML Z spezifischen architektonischen Besonderheiten der ers ten drei der generierten Modellprojekte eingegangen werden Die Beschreibung der von der Eclipse UML2 und EMF vorgegebenen Architektur findet sich in den entsprechenden Dokumentationen UML und soll hier nicht erl utert werden Die Modell Implementierung Paket de upb pg rmc umlz Die Modellimplementierung besteht aus insgesamt neun Paketen Diese sind in Abbildung 6 7 mit ihren Abh ngigkeiten als Paketdiagramm dargestellt Die Pakete umlz izparser umlz types und umlz cztutilprovider sind hierbei spezifisch f r das UML Z Mo
366. werden Informationen ber das Element dargestellt das gerade selektiert ist Wenn die Propertyview nicht vorhanden ist Windows Show View Properties Outline In der Outline stehen die Kindelemente des gerade in der Zeichenfl che selektier ten Elementes Die Outline dargestellt in Abbildung 4 10 ist ein zentrales Element fiir das Bearbeiten von Elementen die nicht direkt auf dem Canvas sichtbar sind Wenn die Outlineview nicht sichtbar ist Window Show View Outline Project Explorer Der Project Explorer bietet einen berblick ber die Projekte Die ein zelnen Modelle und Diagramme sind aufgelistet Hinweis Falls ein Fenster eine View fehlen sollte Unter Window Show View k nnen Fenster neu ge ffnet werden Anlegen von Elementen ber die Palette Die Elemente eines Klassendiagramms k nnen ber die Palette angelegt werden Dazu se lektiert der Anwender das gew nschte Element in der Palette und klickt auf den Canvas 42 4 Benutzerdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft WS Ai UNIVERSIT T PADERBORN Abschlussbericht minin Elemente die zwei Knoten verbinden werden durch Ziehen einer Verbindung zwischen Ele menten auf dem Canvas erstellt Folgende Symbole finden sich in der Palette Class Legt eine neue Klasse an Sobald diese auf dem Canvas erscheint ist das Feld fiir den Klas sennamen selektiert und der Name kann eingegeben werden
367. work based on the Pro gram you indicate your acceptance of this License to do so and all its terms and conditions for copying distributing or modifying the Program or works based on it Each time you redistribute the Program or any work based on the Program the recipient automatically receives a license from the original licensor to copy distribute or modify the Program subject to these terms and conditions You may not impose any further restrictions on the recipients exercise of the rights granted herein You are not responsible for enforcing compliance by third parties to this License If as a consequence of a court judgment or allegation of patent infringement or for any other reason not limited to patent issues conditions are imposed on you whether by court order agreement or otherwise that contradict the conditions of this License they do not excuse you from the conditions of this License If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations then as a consequence you may not distribute the Program at all For example if a patent license would not permit royalty free redistribution of the Program by all those who receive copies directly or indirectly through you then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program If any portion of this section is held invalid or unenforce
368. xt Model def ZPPPC Set Boolean Operation allinstances 2pre gt asSet Unit OF Measurement Model CH Selected Object Z Predicate Pre Post Condition ZPPPCO Abbildung 4 32 MQP Editor Messmodell per Drag and Drop in das Textfeld f r die Messung gezogen werden Zus tzlich steht dem Benutzer noch ein mehrzeiliges Textfeld informal definition zur Verf gung in dem er die Messung beschreiben kann Dieses Feld ist optional Um die Messung zu speichern muss der Anwender Save Changes dr cken Dann wird die neu definierte Messung in der Konfigurationsdatei gespeichert und auch im rechten Baum im Messmodell angezeigt Sie kann jetzt wie alle anderen Messungen einem QA per Drag and Drop zugewiesen werden In Abbildung 4 34 ist der Dialog zum Eingeben eines Indikators dargestellt Der Benutzer muss im oberen Bereich den Namen und das Akronym der Messung eingeben sowie die Skala und die Einheit der Messung ausw hlen Zwischen der Skala und der Einheit der Messung befindet sich ein mehrzeiliges Textfeld informal definition f r die Beschrei bung des Indikators Dieses Feld ist optional vom Benutzer auszuf llen In der Mitte des Dialogs befindet sich eine Liste defined measures mit vordefinierten Messungen die per Drag and Drop in die Textfelder zur Berechnung calculations weiter unten gezo gen werden k nnen Unter den Messungen sind einige Operationen vorhanden die auch wie bereits bei den Messungen beschr
369. y obtain patent licenses in effect making the program proprietary To prevent this we have made it clear that any patent must be licensed for everyone s free use or not licensed at all The precise terms and conditions for copying distribution and modification follow TERMS AND CONDITIONS FOR COPYING DISTRIBUTION AND MODIFICATION 0 This License applies to any program or other work which contains a notice placed 298 by the copyright holder saying it may be distributed under the terms of this General Public License The Program below refers to any such program or work and a work based on the Program means either the Program or any derivative work under copyright law that is to say a work containing the Program or a portion of it either verbatim or with modifications and or translated into another language Hereinafter translation is included without limitation in the term modification Each licensee is addressed as you Activities other than copying distribution and modification are not covered by this License they are outside its scope The act of running the Program is not restricted and the output from the Program is covered only if its contents constitute a work based on the Program independent of having been made by running the Program Whether that is true depends on what the Program does You may copy and distribute verbatim copies of the Program s source code as you receive it in
370. ypes Propertyldentifier PropertyList In der PropertyldentifierList List PropertyIdentifier werden alle m glichen Auswir kungen einzelner Refactorings angegeben z B wirkt sich die Property CLASS_REDUCTION so aus dass eine Klasse vom Umfang der Klassenelemente her verkleinert wird In der Konfigurationsda tei der Diagnose siehe Kapitel 4 2 4 1 werden die Eigenschaften ebenfalls aufgef hrt Damit ist die Diagnose Komponente in der Lage ein Refactoring anzubieten TypeldentifierList LypeldentifierList Die TypeldentifierList verf gt Typeldentifier ber eine Auflistung aller Datenty pen die in Refactoringdefinitionen dieser Konfigurationsdatei verwen det werden d rfen Eine Verwen dung von undefinierten Typen f hrt zu Fehlermeldungen 84 4 Benutzerdokumentation RefaSo amp ModelCockpit Die Universit t der Informationsgesellschaft de UNIVERSITAT PADERBORN Abschiussbericht miaz NICHTTERMINAL PRODUKTIONEN BESCHREIBUNG Header Header Der Header enth lt den Namen Refactoring grammar file of und die Version der Refactoring Product Komponente Version lt VERSION_NR gt y SimpleRefactorings SimpleRefactorings In SimpleRefactorings werden SimpleRefactoring einfache Refactorings SimpleRe factoring beschrieben ComplexRefactorings ComplexRefactorings In ComplexRefactorings werden ComplexRefactoring komplexe Refactorings Complex
371. zelnen Elemente eines Modellqualit tsplans Resultat wird ein kompletter MQP sein mit dessen Hilfe eine Messung auf dem zuvor definierten UML Z Modell durchgef hrt werden kann Das Kapitel gliedert sich in folgende Teilbereiche RefaSo amp ModelCockpit 5 Tutorial 119 d i UNIVERSIT T PADERBORN Die Universit t der Informationsgesellschaft Abschlussbericht esource RMC Tutorial default umlz_clas Eile Edit Diagram Navigate Project Betsch IE ie e RefaSo ModelCockpit af X H r00 CER E vorlesung zeit Time NG gshalteneVortr ge N fachgebiet Fachgebiet operations name Text Horschen raum Textx N vortragHalten Egon 1 mitarbeiterMotivieren operations pr ft student Student publiziertDokument h ltZentral bungt haltUbung ram Navigate Project Refactoring Window Help ee ee em ea semesterWochenStunden N attributes name Text vorname Text emailadresse Text perations E student attributes matrikelnummer N studiengang Studiengar Operations lernen vorlesung Vorlesung DataType 4 Association Class E InterFace 2 Constraint Stereotype Association Dependency A Generalization 2 Provided Interface 3 Required Interface NAry Dependency Target NAry Dependency Source 7 Constrained Element E Association End _ Realiz
372. zt wird jetzt die Implementierung der EMF Properties Weiterhin wurde diese um die M glichkeit den Z Editor zu starten erweitert Zustandsdiagrammeditor Parser Ein gro er Teil der Parser konnte von den UML2 Tools bernommen werden Da jedoch in UML Z keine Trigger und Guard Attribte an einer Transition vorhanden sind waren hier Anpassungen notwendig In der Klasse TransitionParser im Paket de upb pg rmc umlz diagram stateeditor parser m ssen die Methoden getPrintString und isAffectingEvent neu implementiert werden public String getPrintString IAdaptable element int flags EObject eObject EObject element getAdapter EObject class if eObject instanceof Transition Transition transition Transition eObject StringBuffer printStringBuffer new StringBuffer 20 RefaSo amp ModelCockpit 7 Entwicklerdokumentation 217 Ai UNIVERSIT T PADERBORN Abschlussbericht Die Universit t der Informationsgesellschaft Behavior effect transition getEffect if effect null if transition getName null printStringBuffer append transition getName return printStringBuffer toString return mm Listing 7 3 Implementierung der getString Methode im Parser f r Transitionen public boolean isAffectingEvent Object event int flags if event instanceof Notification Object feature Notification event getFeature UMLZPackage eINSTANCE getTransition_Effect
Download Pdf Manuals
Related Search
Related Contents
User Manual - Indian Building Energy Code Community QGIS Coding and Compilation Guide HMT330 Bedienungsanleitung auf Deutsch Descarga aquí la ficha técnica de este producto Milestone Paxton Integration Component Copyright © All rights reserved.
Failed to retrieve file