1 KBC ICTT Services 1 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
1 Inhoud 1. dsopgave e 1.
Inhoudsopgaave .................................................................................................................................. 1
2.
W Woord voor af .................................................................................................................................... 3
3.
A Abstract ...... ........................................................................................................................................ 5
4.
Lijst met afkortingen ......................................................................................................................... 6 6
5.
7 Inleiding .............................................................................................................................................. 7
6.
Bedrijf ................................................................................................................................................. 8 8
7.
Gebruikte teechnologieën n ................................................................................................................... 9 9 1 7.1
RAD IDEE ...................................................................................................................................... 9 9
7.1.1
8.
9.
7.2 2
JDOM ........................................................................................................................................ 10 0
7.3 3
JAXB .......................................................................................................................................... 11
7.4 4
XML ........................................................................................................................................... 12
Probleemsteelling ............................................................................................................................. 12 8.1 1
Algemeeen ................................................................................................................................ 13
8.2 2
Overziccht E2E Ratio o Tool ......................................................................................................... 13
8.3 3
Overziccht XMI Impo ort Tool ...................................................................................................... 14 4
8.4 4
Overziccht XMI Expo ort Tool....................................................................................................... 15
A Analyse ....... ...................................................................................................................................... 16 6 9.1 1
E2E Rattio Tool .......................................................................................................................... 16 6
9.1.1
Usse Case Diagrram ............................................................................................................ 16 6
9.1.2
Claass Diagram .................................................................................................................. 17 7
9.1.3
Sequence Diaggram........................................................................................................... 19 9
9.2 2
XMI Import Tool ...................................................................................................................... 21
9.2.1
Staate Machinee Diagram ................................................................................................... 21
9.2.2
Exported XMI ................................................................................................................... 22
9.2.3
ow Class Diaggram .......................................................................................................... 24 4 Flo
9.2.4
Usse Case Diagrram ............................................................................................................ 25
9.2.5
Claass diagram ................................................................................................................... 26 6
9.2.6
Sequence Diaggram........................................................................................................... 29 9
9.3 3
Javva 2 Enterprise Edition ................................................................................................. 10 0
XMI Exp port Tool ....................................................................................................................... 31
2 KBC ICTT Services 2 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie 9.3.1
Claass Diagram .................................................................................................................. 31
9.3.2
Sequence diaggram ........................................................................................................... 34 4
10.
ntatie ............................................................................................................................. 37 7 Implemen
10.1
E2E Rattio Tool .......................................................................................................................... 37 7
10.1.1
Co onfigureerbare XML ...................................................................................................... 37 7
10.1.2
Dee applicatie u uitvoeren ................................................................................................... 38 8
10.1.3
Heet resultaat .................................................................................................................... 41
10.2
XMI Import Tool ...................................................................................................................... 45
10.2.1
uitvoeren ................................................................................................... 45 Dee applicatie u
10.2.2
Heet resultaat .................................................................................................................... 46 6
10.3
XMI Exp port Tool ....................................................................................................................... 48 8
10.3.1
Dee applicatie u uitvoeren ................................................................................................... 48 8
10.3.2
Heet resultaat .................................................................................................................... 49 9
11.
Besluit ........................................................................................................................................... 51
12.
Bronnen ..................... . .................................................................................................................. 52
12.1
Boeken n ..................................................................................................................................... 52
12.2
Websitees .................................................................................................................................. 52
13.
Figuren .......................................................................................................................................... 53
13.1
Use Casse Diagramm men ............................................................................................................ 53
13.2
Class Diagrammen ................................................................................................................... 54 4
13.3
nce Diagramm men ........................................................................................................... 57 7 Sequen
KBC ICTT Services 3 3 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
2 Woord 2. d vooraf udent aan de XIOS Hogeschool Limburg, heb ik dee mogelijkheid gekregen om Als deerdejaarsstu stagee te lopen bij KBC ICT Serrvices te Leuvven. Deze staage was vooral belangrijkk om inzicht te krijgeen in wat mijj te wachten staat als ik aafgestudeerd d ben en om mijn vergaarde kennis o over de jaren heen om tee zetten in dee praktijk. Deze stage was niet mogelijk geweest zon nder de men nsen van KBC C ICT Servicess. Van hen zijn er enkelen die ik in h het bijzondeer wil bedankken: ‐
Koenraad d Vastmans
‐
Luc Van V Vossel
‐
Tim Costeermans
‐
Samuel V Van Reeth
n stagepromo otor en hij he eeft er alles aan gedaan om mijn opd dracht in Koenraad Vastmaans was mijn opbouwen vaan dit eindw werk en goede banen te leeiden. Hij heeeft mij ook eenorm gehollpen bij het o mijn presentatie. De constantte inbreng diie hij had in mijn stage heeft ervoor ggezorgd dat het werk, de presentatie en h het resultaatt succesvol afgerond zijn. eindw Dankkzij Koenraad d Vastmans h heb ik een brredere kijk ge ekregen op d de verschillende nieuwe techn nologieën diee ik me eigen n moest makken. Hij heeftt het mij, dankzij praktiscche voorbee elden, ook ggemakkelijkeer gemaakt o om de uiteind delijke code sneller geïmplementeerd d te krijgen. Tim C Costermans sstond dan weer altijd klaaar om mij ve erder te help pen toen Koeenraad Vastm mans gedurende een w week afwezigg was. Hij heeeft mij dan o ook goed geh holpen om m mijn stage tot een goed einde te breengen. ook nog Sam muel Van Reeth bedanken n. Hij heeft m mij af en toe kleine, nuttige tips Als laaatste wil ik o gegevven, die som ms de doorslaag tot success gaven. Uiteraard was deze stage niett mogelijk zo onder de beggeleiding van nuit onze sch hool en daarvvoor wil mijn stageprromotor, bed danken die m mij de nodigee raad heeft ggegeven ove er de ik Kris Hermans, m oorbereidinggen voor mijn eindwerk. wekeelijkse evaluaaties en de vo Ook w wil ik mijn lectoren aan d de XIOS Hogeeschool Limb burg bedankeen voor de kkennis die ze mij de afgelo open jaren ggegeven hebben. Zonder hen zou ik n niet staan waaar ik vandaaag sta. Het w waren drie leerrijke jaren waar hard werken en eeen toffe om mgeving met toegankelijkke lectoren p perfect
KBC ICTT Services 4 4 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie gecom mbineerd ko onden wordeen. Dit eindw werk is dan ook deels opggedragen aan n al deze lecttoren, als teeken van app preciatie en aals signaal daat zij hun werk goed uitgevoerd hebb ben. In de eerste plaatts wil ik KBC ICT Services en mijn stag gebegeleider bedanken vo oor de kans o om bij hen eeen leerrijke stage te lopeen. Verder w wil ik de XIOS Hogeschool Limburg bed danken voor de intereessante opleeiding die ik eer heb kunneen volgen. En n als laatste w wil ik mijn pa apa en mijn vvriendin bedanken voor dee steun die zee gegeven heebben tijden ns deze stagee.
KBC ICTT Services 5 5 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
3 Abstra 3. act Titel::
Prom motoren:
End‐TTo‐End Ratio bepaling en State Machine Diagram transformattie Koenrraad Vastmaans en Luc Vaan Vossel (KB BC) Kris H Hermans (XIO OS Hogescho ool Limburg)
Besch hrijving: KBC is een onafhaankelijke mu ultikanaal ban nk‐verzekeraaar voor partticulieren en n middelgrote e Centraal‐Eurropa. De stagge die ik hier heb afgeron nd, bestond uit twee ondernemingen in België en C opdraachten. Binneen KBC ICT Seervices makeen ze gebruikken van de W Wondermach hine. Dit is eeen codegene erator, ontw wikkeld door KBC zelf. Wee hebben ond derzocht hoe eveel een on ntwikkelaar n nog manueell moet progrrammeren om een transactie (de oveergang van h het ene scherrm naar het volgende) w werkende te krijgen. Het pro obleem zit hier echter in n het feit, datt de gegenerreerde code en de manue eel gesch hreven code in dezelfde ssourcebestanden zitten. Het spreekt voor zich daat wanneer e er minder manueel geschreven code aanwezig is, er ookk gemakkelijkker kan gemiigreerd word den naar hogere frameeworkversie (door regeneratie). De o opdracht besstond er dus uit om door de een h volled dige mappen nstructuur tee gaan en voor elk bestan nd de E2E Raatio (End‐To‐‐End Ratio) te bepalen. Dit is du us de verhouding tussen de manueel geschreven code en de ggegenereerd de code. door krijgt men een beeld d van hoeveeel er nu eigenlijk manueeel is bijgesch hreven en ho oe Hierd gemaakkelijk het zzou gaan om deze code o over te zetten naar een n nieuwe versiee van het fraamework. Het tweede deel bestond uit het verwerken van een X XMI (XML Meetadata Interchange)‐bestand. d moet geïdeentificeerd worden en geconverteerd d worden naaar een De informatie uit die bestand nsible Markup Language)‐bestand. Diit kan dan binnen de Wondermachine ander XML(eXten n. Dit is opnieuw ontwikkkeld in een Java‐applicattie, die (codeegenerator vvan KBC) gebruikt worden deze XMI naar eeen XML omzeet. We zijn eeen aantal kee er door de X XMI moeten ggaan, om alle e inform matie die wee nodig hebb ben te verzam melen. Uitein ndelijk is er d dan gebruik ggemaakt van n JAXB (Java Architecturee for XML Binding) om tee exporteren n naar een XM ML‐bestand. Beidee opdrachten n zijn ontwikkkeld in RAD (Rational Ap pplication Deeveloper), geschreven in Java. Voor de tweede o opdracht is eer ook nog geebruik gemaakt van JDOM M (om de XM MI te parsen) binnen RAD.
KBC ICTT Services 6 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
4 Lijst m 4. met afkortingen ICT
Inform matie‐ en Co ommunicatietechnologie
RAD
Rational Applicatiion Develope er
IDE
Integrrated Develo opment Environment
JDOM M
Java D Document Object Model
JAXB
Java A Architecture for XML Binding
XML
eXten nsible Marku up Language
IBM
Intern national Busiiness Machin nes
J2EE
Java 2 2 Enterprise Edition
J2SDK K
Java 2 2 Standard D Developmentt Kit
XMI
XML M Metadata Intterchange
GUI
Graph hical User Intterface
UML
Unifieed Modeling Language
JSP
JavaServer Pages
CSV
Comm ma‐separated d Values
JAR
Java A ARchive
7 KBC ICTT Services 7 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
5 Inleidiing 5. In ditt eindwerk beeschrijf ik ho oe mijn stagee bij KBC ICT Services is vverlopen. Allee documente en die ik in de afgelopen w weken heb in ngevuld en bijgehouden, zijn dan ookk opgenomen n in dit eindw werk. Zo word dt een compleet overzicht voorzien vaan alle activiiteiten die ik heb uitgevo oerd en is een volled dig gedocum menteerd stageverslag beeschikbaar in n de vorm van deze thesis. In het eerste deel van de scrip ptie besprekken we KBC aals bedrijf, wie ze zijn en wat ze doen. olgens zullen n we alle geb bruikte techn nologieën aanhalen en veerklaren waaarom ze naarr mening Vervo de beeste oplossin ng waren voo or het gegeveen probleem m. Het volgen nde deel zal ggaan over de e problleemstelling en de versch hillende vereeisten die de eze opdracht met zich meeebracht. Ten slotte besch hrijven we ho oe we de gekozen technologieën op een zinvolle en performante manierr hebben gebru uikt om een stabiele applicatie te kun nnen afleverren.
8 KBC ICTT Services 8 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
6 Bedrijf 6. KBC‐ggroep, met h hoofdzetel in n Brussel, is eeen Belgische e bank‐verzeekeraar, opgeericht in 199 98 door de fusie van drie Belgische fin nanciële insteellingen: Kre edietbank, AB BB‐verzekeringen en CER RA‐bank. De grroep bekleed dt vooraanstaande posities op zijn thuismarkten in België, Centraal‐ en Oost‐ Europ pa, waar de ffocus ligt op retailbankveerzekeren en n vermogenssbeheer. In d de rest van de wereld is de groep selecttief aanwezigg in bepaaldee landen of rregio’s. hightech continent van KBC is ongetw wijfeld ICT. KBC ICT Servicces wil de paartner zijn vo oor alle Het h bedriijfstakken bin nnen de KBC C‐groep doorr eersteklas ICT‐services tte leveren vo oor de hele waardeketen. Diee diensten m moeten hen in n staat stelle en om hun beedrijfsprocesssen vlot te laten ogelijke voordeel voor de KBC‐groep p. verlopen, met alss resultaat heet grootst mo diensten van n KBC ICT Serrvices zijn de e volgende: De beelangrijkste d ‐
End‐To‐End ICT‐oplosssingen leverren (software e, hardware,, services)
‐
Maintenaance van ICTT‐oplossingen n
‐
Hosting sservices
‐
Netwerk‐‐ en infrastru uctuurbeheer
CT‐bedrijven in België. Er zijn ongeveeer 1.915 vastte KBC‐ KBC ICT Services iis één van dee grootste IC n er 1.360 meedewerkers e en nog medeewerkers en 460 externee consultantss. In Centraal‐Europa zijn eens 280 werklied den bij ValueeSource (docchtermaatschappij van KBC).
KBC ICTT Services 9 9 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
7 Gebruiikte tech 7. hnologieë ën Bij aaanvang van m mijn stage wiist ik alleen m maar dat ik e een applicatie moest ontwikkelen in d de Java‐ taal. TTijdens de eeerste werkdaagen werd al snel duidelijk dat deze ttaal op zich o onvoldoende e was om de vooropgesstelde applicaties stabiel en vlot te laten werken. Daardoor heb ik in de eerste n die in aanm merking stageeweken voorral onderzoekkswerk gedaaan naar versschillende technologieën konden komen om m mij een zo o performantt mogelijke o oplossing te bieden voor het opgegevven problleem. Doorheen de volgeende paragraafen wordt d dan ook duid delijk gemaakkt met welke e techn nologieën ik uiteindelijk ggewerkt heb b en waarom ik deze geko ozen heb. Ik geef alvast e een korte opsomming zodat u weet watt u in de volggende hoofdstukken te w wachten staaat: ‐
RAD IDE
‐
JDOM
‐
JAXB
‐
XML
7 RAD ID 7.1 DE IBM R Rational App plication Devveloper for W WebSphere Software is eeen geïntegreeerde ontw wikkelomgeving voor het visueel ontw werpen, bouw wen, testen en implemen nteren van w web servicces, portals een Java Enterprise Edition toepassinggen. Wat m meteen opviiel bij het opstarten van RAD was datt de interfacee gelijkenisseen vertoonde met die vaan Eclipse. Laater heb ik d dus vernomen dat RAD op Eclipse geb baseerd is. D Dit was voor m mij meteeen een plusp punt, aangezzien ik hier al de nodige e ervaring meee heb. Binneen RAD maakkt men ook ggebruikt van IBM Rationaal ClearCase.. Enkele belaangrijke mogeelijkheden hiiervan zijn: ‐
Versiecon ntrole
‐
Workspacebeheer
‐
parallelle onttwikkeling Ondersteeuning voor p
1 KBC ICTT Services 10 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie 7 7.1.1
Java 2 Enterprise Edition
Om Java‐program mma’s te kun nnen ontwikkkelen, heb je e nood aan een SDK. Binn nen RAD heb bben we gebru uik gemaakt van J2EE. Dit is een ontw wikkelplatforrm van het so oftwarebedrrijf Sun Micro osystems. J2EE biedt een methode voorr het ontwerpen, ontwikkkelen, samen nstellen en ggebruiken van orm biedt een gedistribue eerd model, herbruikbarre componen nten, een bedriijfsapplicatiees. Het platfo beveiiligingsmodeel, flexibel traansactiebeheeer en onderrsteuning voor web serviices door middel van een ggeïntegreerde data‐uitwisseling gebaaseerd op XM ML. Dit platfo orm verkrijgtt men door d de J2SDK uit tee breiden meet bibliothekeen die een groot aantal kklassen bevatten.
7 JDOM 7.2 JDOM M is ontwikkeeld door Jaso on Hunter en n Brett mcLaughlin in maaart van het jjaar 2000. He et is een opensource, op Jaava gebaseerd Documen nt Object Mo odel voor XM ML, dat speciffiek voor Java is wikkeld. Dit heeft als grote voordeel, d dat het verw werken van XML zo simpeel is als het scchrijven ontw van eeen gewoon JJava‐program mma. JDOM M heeft de m mogelijkheid o om een volleedige XML‐sttructuur te d doorlopen. Ellke tag van d de XML word dt binnen JDO OM voorgestteld als een eelement. Dit element kan n dan via verrschillende meth hoden de nod dige eigenschappen toeggewezen krijggen. Dit m maakte JDOM M een geschikkte kandidaaat om gebruikt te worden n binnen mijn applicatiess. Ik heb ook aandere oplosssingen overw wogen, maar deze waren n gecompliceeerder en minder performant.
KBC ICTT Services 11 1 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
7 JAXB 7.3 Java A Architecturee for XML Bin nding liet mij toe om de kklassen van m mijn applicattie weer te geven in een X XML‐structuu ur. Dit resultaat kan men n bekomen door te “marsshallen”.
In ditt voorbeeld w wordt gebruiik gemaakt vvan marshalling. De klassen worden in een boom mstructuur opgebouwd. D Deze boomstructuur wordt dan doorr de marshaller verwerktt. Het resulttaat hiervan is een XML‐representatiie van deze kklassen.
Hier w wordt dan w weer gebruik gemaakt van n “Unmarshaalling”. Een X XML‐documeent wordt vo olledig ingeleezen en er w wordt een bo oomstructuur van Java‐ob bjecten opgeebouwd. Elk element van n het XML‐‐document iss een instanttie van een Jaava‐klasse. D Deze instanties worden d dan gebruikt om een boom mstructuur tee creëren.
KBC ICTT Services 12 1 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie Ik heb b handig geb bruik kunnen n maken van JAXB. Het heeft mij veell tijd bespaarrd, omdat ik zelf geen code heb moeten ontwiikkelen om d de XML te ve erwerken.
7 XML 7.4 XML is een door h het World W Wide Web Consortium (W W3C) aanbevo olen standaaard voor het besch hrijven van ggestructureerde data. Alss zodanig ste elt XML comm municerendee partijen in staat gegevvens uit te w wisselen via eeen flexibel fformaat, dat onafhankelijk is van app plicaties, plattformen en prrogrammeerttalen. XML iss een generieeke markup taal. Met XM ML kan een d document du us voorzzien worden van codes (ttags) voor heet structurerren van de daata in dit doccument. De waarde van XM ML is gebaseeerd op drie belangrijke e eigenschapp pen: ‐
Structure eerbaar: mett XML is het mogelijk willekeurige, co omplexe en h hiërarchische e data te representteren in een flexibel form maat. De stru uctuur van de dataopslagg kan boven worden vastgeleggd in een extern bestand of in het bestand zelf. D De structuur iis ook niet op verschilleende maniereen te interprreteren.
‐
Valideerb baar: XML do ocumenten kkunnen eenvvoudig gecon ntroleerd wo orden op juisstheid. Door mid ddel van een parser kan ggecontroleerrd worden off de structuu ur van de datta overeenkkomt met de definitie van n die structu uur.
‐
Uitbreidb baar: XML staat toe dat iedereen een n eigen strucctuur definieert. Het is oo ok vrij eenvoudiig om bestaaande structuren uit te bre eiden.
Deze eigenschapp pen maken X XML tot een krachtige staandaard die voor zeer uitteenlopende e doeleeinden gebru uikt kan word den. Ik heb d dan ook van XML gebruikk gemaakt om m mijn data binnen mijn ttoepassingen te bewaren.
8 Proble 8. eemstelliing Bij heet opstarten van mijn staageproject haad ik, na een n gesprek meet Koenraad V Vastmans, al een goed idee wat dee globale vereeisten zoudeen zijn. Nadie en zijn er dan n nog enkelee vereisten unctionaliteitt moest implementeren in mijn nieuw we applicaties. bijgekkomen, die ik als extra fu De eeerste applicaatie die ik mo oest ontwikkkelen generee ert een rapp port, dat aanttoont hoeveel een ontw wikkelaar nogg manueel moet program mmeren om e een transactie werkendee te krijgen. H Het tweede gedeelte bestond uit het verwerkken van een X XMI bestand d. Dit moest o omgezet worden
KBC ICTT Services 13 1 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie naar een ander XML formaat,, dat bruikbaaar is binnen KBC ICT Servvices. Wat er nu juist van n mij verwacht werd en n waar de prroblemen zicch konden vo oordoen, wordt beschrevven in de volgende dstukken. hoofd
8 Algemeen 8.1 Voor de eerste to oepassing, E2 2E Ratio Tool genaamd, h had ik bij aan nvang geen G GUI gemaaktt, omdat dit geeen vereiste was. Ik heb achteraf toch een GUI to oegevoegd, o omdat dit aantrekkelijkerr is om mee tte werken. N Na het starteen van de app plicatie is he et vooral belaangrijk dat dee gebruiker b begrijpt wat h hij moet doen. Ik heb de interface daarom bewusst zo simpel m mogelijk geh houden. De tw weede appliccatie, XMI Im mport Tool geenaamd, is ook een vanaff nul gebouw wde tool. Hie er is niet gekozzen voor een n GUI. De infformatie die het program mma nodig heeeft, wordt m meegegeven n als param meters tijden ns het uitvoeeren van de aapplicatie (hierover laterr meer). Alle specifieke vereisten word den verder beesproken in d de volgende hoofdstukke en.
8 Overziicht E2E R 8.2 Ratio Tooll Deze applicatie heeft de taak om alle besttanden van e een bepaald domein binn nen KBC te verwerken. Deze domeinen zijn: ‐
Paymentss
‐
Accountin ng
‐
Distributiion
‐
Securitiess
‐
Enterprise Resource P Planning
‐
ICT Archittecture
‐
Applicatio on Infrastruccture
‐
Life Insurrances
‐
Non Life Insurances
oet één dom mein gekozen n worden, waaarvan de be estanden verrwerkt zullen n worden. Ee en Er mo domeein bestaat u uit 2 mappen n. De eerste m map bevat alle Java‐besttanden van d dit domein, terwijl de tweede map de JSP‐bestandeen bevat. De gebruiker ge eeft een besttemming in vvoor het nieuwe mma uit. Dit nieuwe besttand bevat de rapportering voor dit d domein. bestaand en voert het program Men krijgt onmid ddellijk een o overzicht van n het hele do omein, bestan nd per bestaand. Men herrkent n bevindt. een ggegenereerde lijn code binnen een beestand, aan de hash die zich vooraan
KBC ICTT Services 14 1 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
pplicatie telt alle characters die op deeze lijn voorkkomen en vo oegt dit aanttal toe aan he et totale De ap aantaal gegenereeerde characteers. Als een rregel niet be egint met derrgelijke hash h, dan wilt ditt zeggen dat deze lijn codee manueel geeschreven is.. Deze characters worden dan ook geeteld en toeggevoegd het totale aantal manuelee characters binnen dit b bestand. Van n elk bestand d wordt ook d de End‐ aan h To‐En nd ratio bereekend. Deze verkrijgt men door het totale aantal gegenereerd de characterrs te delen n door het to otale aantal ccharacters en n dit te verm menigvuldigen met hondeerd.
(generateed characterss / total charracters) * 10 00
Ondeeraan vindt m men een volledig overzich ht van het ve erwerkte dom mein.
8 Overziicht XMI I 8.3 mport To ool Deze tool wordt ggebruikt om een State M Machine Diagram te verwerken. Dit zo orgt ervoor d dat er een b betere conneectie is tusseen de design‐‐ en de build‐fases. De geebruiker tekeent bijvoorbe eeld een Statee Machine diaagram in arggoUML (open nsource tool voor het ontwikkelen vaan UML‐ diagrammen). Meet argoUML is het dan m mogelijk om d dit diagram te exporteren n naar een XMI‐ bestaand. Dit beestand is bin nnen KBC ech hter onbruikbaar, want h het kan niet ggeïmporteerd worden binnen bestaaande toepasssingen. De X XMI moet du us verwerkt w worden tot iets bruikbaaar. Met de XM MI Impo ort Tool gaan we het State Machine d diagram afbe eelden op het Flow Class diagram:
KBC ICTT Services 15 1 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
den om dit m model om te zetten in een XML‐ Als diit gebeurd iss, kan JAXB gebruikt word repreesentatie.
8 Overziicht XMI E 8.4 Export Tool Dit is een extra op pdracht die vvolledig los sstaat van de stage. Omdaat ik nog tijd over had op p het eindee van mijn stageperiode, werd mij geevraagd of ik nog een pro ogrammeeropdracht wou u analyyseren. Na dee analyse had ik nog tijd over om de toepassing o ook te implem menteren. TToen deze implementaatie ook volleedig afgerond d was, had ikk contact opggenomen meet mijn bege eleider ptie. Hij heeftt hiervoor de e om tee vragen of ik deze toepaassing mochtt integreren in mijn scrip toesttemming geggeven. Ik ga n nu deze extra toepassingg toelichten. Deze tool wordt ggebruikt om een XML‐beestand te verrwerken. Dit XML‐bestand is een voorstelling van eeen Flow. De applicatie gaat deze XM ML unmarshallen met JAX XB. De toepasssing gaat de eze Flow dan vverwerken to ot er een XM MI‐bestand beekomen worrdt. Het voorrdeel hiervan n is, dat het in een UML Modelling to ool geïmportteerd kan wo orden. Zo kriijgen we een n visuele voorstelling van de XML e design‐ in de vorm van eeen State Macchine Diagram wat zorgt voor een beetere connecctie tussen de uild‐fases. en bu
KBC ICTT Services 16 1 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
9 Analysse 9. Omdaat ik twee to oepassingen heb moeten n ontwikkelen n, ga ik de an nalyse ook opsplitsen om m alles overzzichtelijk te h houden.
9 E2E Ra 9.1 atio Tool 9 9.1.1
Use C Case Diagra am
Het U Use Case diaggram van de E2E Ratio To ool ziet er als volgt uit:
Een ggebruiker will een nieuw rrapport verkkrijgen. Voordat hij dit kaan doen, moeet er aan een n aantal voorw waarden vold daan zijn. Eeerst en vooraal moet de ge ebruiker een n correcte dirrectory invullen, waarnaar het geggenereerde b bestand wordt uitgevoerrd. Verder moet er ook een domein ok geselecteerd zijn.. Als we een rapport willeen opstellen, moeten dee bestanden uiteraard oo n. Daarom gaaan we de dirrectory van d dit domein d doorlopen. Het rapport houdt verwerkt worden ning met Java en JSP besttanden, maaar omdat dezze op verschiillende locaties zitten, moeten reken deze ook apart do oorlopen wo orden. Nadien kan het rapport weggeeschreven wo orden naar e een bestaand.
KBC ICTT Services 17 1 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie 9 9.1.2
Classs Diagram
We ggaan in het ko ort de klasseen overlopen n: E2ERatioGUI klassse: Dit is de ““Main” klasse van de app plicatie. Deze e klasse bevaat de GUI, diee zorgt voor een gebruiksvvriendelijk prrogramma. E2ERatio klasse: werk verrich ht. Deze klassse krijgt Dit is de ““core” van de applicatie. Hier wordt al het rekenw de mappeen (die verwerkt moeten n worden) do oor van de E2 2ERatioGUI kklasse. Nadie en wordt er recursiief door dezee map gegaaan, zodat alle e onderliggen nde mappen en bestande en verwerkt worden. Ditt wordt dan o opgeslagen in een boomstructuur meet Nodes. Als dit gebeurd iis, gaan we d de End‐To‐En nd ratio van deze bestanden bereken nen. Het resu ultaat gaan we eexporteren n naar een CSV V‐bestand, zo odat het een nvoudig impo orteerbaar iss in Microsoftt Excel.
KBC ICTT Services 18 1 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie FileN Node klasse: Dit is een subklasse van de PathNode klasse. ZZe bevat allee getters en ssetters die de e applicatiee nodig heeftt. Op deze m manier kan de e End‐To‐End d ratio van een bestand berekend d en toegevo oegd worden aan een File eNode object. Deze klassse is verbond den met de E2ERatio klasse, omdat zij een List van FileNodes bevatt. PathN Node klasse: Het enige waat deze klasse doet, is de locatie Dit is de ssuperklasse vvan de FileNode klasse. H bijhouden n van de direectory of van n het bestand d. Tree klasse: De Tree kklasse bezit d de “rootNodee”, aangemaaakt door de E2ERatio klaasse. De E2ERatio klasse bevat dus een instantie van n de Tree klaasse en gebru uikt de meth hode setRoottElement om deze “rootNode” aan de Tree door te geven. Node e klasse: en Dit is een generische klasse, omdaat hij zowel FFileNodes alss PathNodess moet kunne uik te maken van deze klaasse, kan een n volledige m mappenstrucctuur in bevatten. Door gebru n. Deze kan d dan doorgegeeven worden n aan een Tree. Het een “roottNode” bewaaard worden werken m met Nodes is interessant als er zich ee en ouder/kin nd‐relatie voordoet. Dit is hier zeker hett geval. Domaain klasse: XML‐bestand d in, dat alle informatie b bevat over de e De E2ERaatioGUI klassse leest een X verschilleende domein nen. Elke keeer er een nieu uw domein ggevonden wo ordt, wordt e er een nieuwe in nstantie gecrreëerd van deze Domain klasse. Er wordt dan geb bruik gemaakt van verschilleende method den in deze kklasse om de eigenschappen van het specifieke domein bij te hou uden.
KBC ICTT Services 19 1 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie 9.1.3 9
Sequ uence Diagrram
1 De appliccatie wacht o 1) op de invoer van de gebruiker. Er wordt ook geco ontroleerd off deze invoer co orrect is. 2 Als alle in 2) nput correct is, wordt er een nieuwe instantie geccreëerd van de E2ERatio klasse. 3 De toepassing gaat reecursief doorr de mappen 3) nstructuur, op zoek naar Java‐ en JSP‐ uwe instantie aangemaakt van de PathNode klasse, bestandeen. Er wordt ook een nieu alsook eeen rootNode van het typee Node, die d de volledige mappenstru uctuur zal vasthoud den. Daarna ggaat het proggramma con ntroleren of h het eerst kind (child) van n de map zelf ook eeen map is. A Als dit het geeval is, roepe en we de recurseDirectorry methode o opnieuw aan en we geven dezee child mee als nieuwe p parameter. H Het resultaat wordt in een n
KBC ICTT Services 20 2 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie subTree ggestopt. Deze wordt dan toegevoegd d aan de roottNode. Als de child echte er een bestand iis, dan wordtt er een nieu uwe FileNode e instantie geecreëerd en wordt de caalculate methodee aangeroepeen. Deze zal d de nodige be erekeningen doen om dee End‐To‐End d ratio te bepalen. Na het aanm maken van eeen instantie van de PathNode klasse,, die dit besttand unnen we dit toevoegen aaan de rootN Node. Als allee mappen en n bestanden bevat, ku verwerkt zijn, wordt d deze rootNo ode toegevoe egd aan de Tree. 4 Nu wordtt de rootNod 4) de uitgelezen n en het CSV‐bestand geggenereerd. O Om dit te doe en, gaat de toepassing de roottNode verweerken met de e inorderTraversal metho ode. Deze m methode p 3 want we gaan opnieu uw recursief te werk. lijkt op dee recurseDireectory methode van stap Als een FileNode objeect gevonden n wordt, worrdt het toegeevoegd aan eeen List. Als er een onden wordt, dan roepe en we de inorrderTraversaal methode o opnieuw PathNodee object gevo aan met d deze PathNo ode als param meter. 5 Als laatste stap gaat d 5) de applicatiee door de zojuist aangem maakte List. D De informatie e van deze besttanden word dt weggeschrreven met be ehulp van eeen Formatterr.
KBC ICTT Services 21 2 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
9 XMI Im 9.2 mport Too ol 9 9.2.1
State e Machine D Diagram
Het SState Machin ne diagram geeft een goeed overzicht van de verscchillende stattes en de traansitions die deze states veerbinden.
De vo olle zwarte b bol aan het begin van hett diagram is d de initiële staate of de pseeudostate. Er vertreekt één pijl ((transition) vvanuit dit pun nt naar de ee erste state. In de applicaatie wordt de e target van d deze transitio on gebruikt o om te bepaleen welke statte de eerste is van het Sttate Machine e diagram. Selecction screen iis een voorbeeld van een n state. Deze e state heeft een stereotyype genaamd ViewState. Er is m maar één uittgaande tran nsition voor d deze state. D De target van n deze transittion is de Search comm mand state. D De trigger vaan deze statee is search.
KBC ICTT Services 22 2 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie 9 9.2.2
Expo orted XMI
Dit is een voorbeeeld van een ggeëxporteerrd XMI‐bestaand:
Het tekenen en eexporteren vaan dit diagraam zijn gedaaan met behulp van ArgoU UML. De afbe eelding toontt het begin vvan een Statee Machine diiagram. We ggaan nu diep per in op de sstructuur van dit XMI‐b bestand.
Dit is een nieuwee <StateMach hine>‐tag. Tw wee attribute en zijn hier b belangrijk: xm mi.id en nam me.
Iets laager vinden we de
‐tag. Dit is de vvolle zwarte b bol in het beegin van het SState Mach hine diagram m. Deze heeftt een child . In één van d de volgende sstappen gaan we zien d dat deze tran nsition gekop ppeld is aan een andere >‐tag. Dit geb beurt met he et xmi.id dref‐attribuu ut. Het is belangrijk dat w we de target van deze traansition weteen, omdat diit de eerstte state van h het diagram is.
KBC ICTT Services 23 2 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
Dit is de XMI‐voorstelling van een <SimpleeState>‐tag. Deze tag heeft een paarr children. He et eerste ngrijke elemeent is de <Steereotype>‐taag. Deze hee eft ook weer een xmi.idreef‐attribuut d dat belan verwijst naar een n ander element in dit beestand. Dan h hebben we n nog de <StateeVertex.outggoing>‐ Deze bevat d de transitionss die vertrekken vanuit d deze state. Veerder hebbeen we nog de e tag. D <StatteVertex.inco oming>‐tag d die de binnen nkomende transitions beevat. Deze heebben we niet nodig.
Dit is een voorbeeeld van een >‐tag. Het xm mi.id‐attribuu ut van deze ttransition wo ordt onden met d de <StateVerttex.outgoingg>‐tag van hierboven, zod dat er een co onnectie besstaat en verbo we allle informatiee van de tran nsition hebb ben. Deze informatie besttaat uit de trrigger, de sou urce en de target. De trigger heeft een child genaamd signalevent. Deze vverwijst naar een andere nalEvent>‐tagg die de naam m van de traansition bevaat. Het source‐attribuut b bevat het id vvan de <Sign state vanwaar deeze transition n vertrekt. Heet target‐attribuut bevatt uiteraard het id van de state waarnaar de tran nsition gaat.
Zoalss eerder gezeegd zijn er <SStereotype>‐‐tags die de ttypes van dee states bevatten.
KBC ICTT Services 24 2 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie We h hebben eerdeer al iets gezegd over de <SignalEven nt>‐tags. Dezze hebben wee nodig om d de naam van d de transitionss te weten tee komen. 9 9.2.3
Flow w Class Diag gram
oral focussen op de volgeende klassen: We ggaan ons voo ‐
Flow
‐
State
‐
ViewState
‐
ActionStaate
‐
BackendC CallState
‐
Transition n
we kijken naar de State klasse, dan zieen we dat ditt een superklasse is. Afhaankelijk van deze Als w klassee zijn onderm meer de View wState en dee ActionState e klassen. Alss we nu even n teruggaan naar het Statee Machine diaagram, dan zzien we dat eer elementen n zijn die terrugkomen. Zo o hadden we e bijvoo orbeeld de sstereotypes. Deze kunnen verschillen nde waarden n aannemen. We zien dezze waarden hier ookk terugkomen. Ook hebb ben we een TTransition klaasse. Die tran nsitions zijn o ook
KBC ICTT Services 25 2 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie aanw wezig in het SState Machin ne diagram. D De Flow klassse is de klassse die we uitteindelijk gaaan marshallen door middel van JJAXB. 9 9.2.4
Use C Case Diagra am
Een ggebruiker will een XML‐beestand aanm maken dat he et interne mo odel bevat. O Om dit te kun nnen doen, moet hij eeerst en vooraal een XMI vaan het State Machine diaagram hebbeen. Die kan h hij n een UML M Modelling too ol en vervolgens te exporrteren. Er bekomen door eeen diagram te tekenen in dientt een output directory meegegeven tte worden aaan de applicaatie. Dan gaaat de toepasssing, door gebruik te m maken van JD DOM, door deze XMI‐stru uctuur lopen n en nieuwe eelementen ccreëren. unnen dan geeprojecteerd d worden op het Flow Claass diagram (dit is het intterne Die elementen ku modeel van de Traansaction Build Tool). Deze Flow kan dan nadien ggemarshalled worden met JAXB. Zo veerkrijgt men eeen XML‐besstand dat dee volledige sttructuur van het State Machine diagrram bevatt.
KBC ICTT Services 26 2 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie 9 9.2.5
Classs diagram
ort de klasseen overlopen n: We ggaan in het ko XMITToolTest klassse: Dit is de ““main” klassee van de app plicatie. Deze e klasse heefft twee param meters nodigg. De eerste paarameter is h het XMI‐bestand dat verw werkt moet w worden. De ttweede parameter is de directo ory waar we het verwerkkte bestand w willen plaatssten. XMITTool klasse: Dit is de ““core” van de applicatie. Het krijgt ee erst een XMII‐bestand en de output d directory door van de XMIToolTTest klasse. D Dan gaat de toepassing o op zoek naarr stereotypess (ActionState, ViewStaate,…) in het XMI‐bestand. Het houdtt deze bij in eeen map. Daaarna op zoek naarr signaleventts. Deze signalevents zijn n eigenlijk dee namen van de gaat het o transitiess tussen de sttates. Nadien gaat de too ol op zoek naaar statemacchines. Als hij een statemachine tegenko omt, wordt eer een nieuw we instantie aaangemaakt met de juistte id en de juiste naam. Nu kaan de toepasssing op zoekk naar de verrschillende sttates van deze e statemachine. Als er eeen state gevonden is, gaaat hij het sttereotype van deze state
KBC ICTT Services 27 2 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie opzoeken n in de map d die eerder aaangemaakt w werd. Als de tool bijvoorb beeld een ActionStaate vindt, wo ordt er een nieuwe Action nState instan ntie aangemaakt, met de e juiste id en naam.. Daarna worrdt deze ActionState in een stateMap p geplaatst. A Als dit allemaaal afgerond is, gaat het programma op zoek naar transitionss. Als er één ggevonden wordt, nstantie aanggemaakt. Wee kunnen deze transition n wordt er een nieuwe Transition in e de id van de “source staate” van de toevoegeen aan een beepaalde statte, omdat we transition n weten. De laatste beweerking die de e tool zal doeen, bestaat u uit het opzoe eken van de eerstee state. Het p programma ggaat op zoek naar een psseudostate. D Deze bevat e een transition n. De target vvan deze transition is de id van de eeerste state vaan het State Machine diagram. De id kan uitteraard opgeezocht worden in de StatteMap. Nu alle informatiie oepassing een n Flow creërren. Deze Flo ow wordt dan n gemarshalled met aanwezigg is kan de to JAXB om het gewenstte resultaat tte verkrijgen n. State eMachine klaasse: Elke keer de XMITool klasse een n nieuwe state emachine vin ndt, wordt err een nieuwe e StateMacchine instanttie aangemaaakt. Deze klaasse bevat alle getters en n setters die nodig zijn om de informatiee van een statemachine tte bewaren. Flow klasse: Deze Flow w klasse zal aalle states, die gecreëerd d zijn door dee XMITool klaasse, bijhoud den in een List. JJAXB zal dezee Flow dan m marshallen. e klasse: State n DecisionStaate Dit is een superklassee van de SubfflowState, ViewState, AcctionState en Deze klasse w wordt gebruiikt om de id en de naam van de statee te bewaren n. klassen. D SubfllowState klaasse: Als de XM MITool klassee een subflow wstate tegen nkomt, wordtt er een nieu uwe instantie e van deze klasse aangemaaakt. Deze klaasse bevat oo ok een List, d die alle transsitions bevat die vertrekkeen vanuit dezze state.
KBC ICTT Services 28 2 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie View wState klasse e: Als de XM MITool klassee een viewstaate tegenkom mt, wordt err een nieuwee instantie vaan deze klasse aan ngemaakt. D Deze klasse b bevat ook een n List, die alle transitionss bevat die vertrekkeen vanuit dezze state. Actio onState klassse: Als de XM MITool klassee een actionsstate tegenko omt, wordt eer een nieuw we instantie vvan deze klasse aan ngemaakt. D Deze klasse b bevat ook een n List, die alle transitionss bevat die vertrekkeen vanuit dezze state. DecissionState klaasse: Als de XM MITool klassee een decisio onstate tegen nkomt, word dt er een nieu uwe instantie van deze klasse gecreëerd d. In tegenstelling tot de andere statee klassen, beevat deze klaasse geen deze klasse eeen true en faalse string. D Deze lijst met ttransitions. In plaats daarvan bevat d bevatten dan de id vaan de volgende state. Transsition klasse: Deze klassse wordt ook gebruikt door de XMITTool klasse. A Als er een nieeuwe transitie gevonden n is, wordt err een instanttie van deze klasse aangeemaakt. Via d de nodige m methoden kan men de id, de naaam en de tarrget bewaren n.
KBC ICTT Services 29 2 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie 9 9.2.6
Sequ uence Diagrram
1 De gebruiker start heet programma op. De app 1) plicatie heeftt een XMI‐beestand en een output directoryy als parametters nodig. 2 Als alles in orde is, wo 2) ordt er een n nieuwe instantie gecreëeerd van de XM MITool klasse. 3 Deze klassse gaat op zoek naar steereotypes (AcctionState, V 3) ViewState,…)) in het XMI‐bestand. Deze worrden dan toeegevoegd aan n een map.
KBC ICTT Services 30 3 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie 4 Als alle sttereotypes to 4) oegevoegd zzijn aan de m map, gaat de applicatie op p zoek naar signaleveents. Deze siggnalevents zijn eigenlijk d de namen vaan de transitions. Deze w worden dan aan eeen nieuwe m map toegevo oegd. 5 De volgen 5) nde stap zijn n de statemachines. In éé én XMI‐bestaand kan meeer dan één statemacchine aanwezzig zijn. Het iis belangrijk dat we voorr elke statem machine een aapart XML‐besttand genererren. Voor elkke statemach hine die we vvinden in hett XMI‐bestan nd, wordt dus een nieuw we instantie vvan de StateM Machine klassse aangemaaakt. 6 Van dezee statemachin 6) ne hebben w we alle simplestates nodig. Als we een simplestatte gevonden n hebben, m moeten we heet stereotype e van deze sttate weten. W We hebben in stap 3 al een maap aangemaaakt, die alle sstereotypes bevat. De sim mplestate wordt opgezocht in deze map p, zodat we h het stereotyp pe van deze state weten. Nu kan er vvan dit stereo otype een nieuw we instantie aangemaaktt worden. Sttel dat onze ssimplestate vvan het stere eotype “ViewState” is, dan w wordt er een nieuwe View wState instan ntie aangemaakt. Deze w wordt dan toegeevoegd aan d de statemacchine. 7 Nu gaat d 7) de applicatiee op zoek naaar transitionss. Als een traansition gevo onden wordtt, gaat de toepassin ng een nieuw we Transition n instantie crreëren. De ‐ttag heeft een n paar children d die we nodigg hebben. Deeze children kunnen we vvia de metho oden van de Transition n klasse opsllaan. 8 Een transsition heeft aaltijd maar ééén source state. Dit wil zzeggen dat eeen transitie aaltijd een 8) uniek begginpunt heefft. Hoe komeen we nu te w weten aan w welke state w we deze transsition moeten ttoevoegen? H Het antwoorrd is simpel. We hebben de id van deeze state, want deze informatiie zit in de ‐ttag. Deze id kunnen we vvervolgens o opzoeken in d de map van statees. Als we de juiste state gevonden he ebben, kunnen we de traansition toevvoegen aan deze state. 9 Het is bellangrijk te weten welke sstate de eersste state van het State M 9) Machine diagrram is. Daarom ggaat de toep passing op zo oek naar een ‐tag. Dezze state word dt in het State Machine diagraam voorgesteeld door de vvolle zwarte bol. Uit dezee State vertre ekt altijd één transsition. De tarrget van dezee transition iis dus ook meteen de eerste state van het State Machine diagraam. Als we diit id dan opzo oeken in de map met de states, dan weten we exact welke state de eerste is. Dit houden we dan bij vvia de setFirsstStateID‐me ethode van de SttateMachine klasse. 1 Nu gaat d 10) de flow aanggemaakt worrden. De applicatie gaat d de volledige statemachin ne verwerkeen. Elke stateemachine beevat een map p met states.. De transitio ons moeten n niet apart verrwerkt wordeen, vermits d deze in een e eerder stadiu um reeds vasstgemaakt zijjn aan
KBC ICTT Services 31 3 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie de states. We moeten n er wel op letten, dat de e eerste statte van het Staate Machine e diagram dus in de map p met states op zoek naaar de ook de eeerste state vaan de flow iss. We gaan d firstStateeID. Als deze gevonden w wordt, wordt deze state toegevoegd aaan de flow. Als dit niet het ggeval is, word dt de state to oegevoegd aaan een tijdeelijke List, diee dan achteraaf wordt toegevoeegd. 1 De aangeemaakte flow 11) w wordt gem marshalled me et JAXB. Het resultaat is een XML‐ representtatie van de flow.
9 XMI Ex 9.3 xport Too ol 9 9.3.1
Classs Diagram
ort de klasseen overlopen n: We ggaan in het ko Atmo osphereXMIEExportTest kklasse: Dit is de ““main” klassee van onze aapplicatie. De eze klasse heeeft twee parameters no odig. De eerste paarameter is h het XML‐besttand dat we willen verweerken. De tw weede parameter is de outputt directory voor het XMI‐bestand.
KBC ICTT Services 32 3 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie osphereXMIEExport klasse: Atmo Dit is de ““core” van de applicatie. Deze klasse krijgt het XM ML‐bestand en de output directory door van dee AtmospherreXMIExportTTest klasse. EEerst gaan w we de flow unmarshaallen door geebruikt te maaken van JAX XB. Daarna ggaat de appliccatie een List van states aan nmaken, eveenals een Listt van transitions. De volggende stap iss het schrijve en van het XMI‐b bestand. Dit wordt gedaaan door gebrruik te maken van JDOM. Het zou vee el tijd kosten om m bijvoorbeeeld elke statee manueel te e schrijven. D Daarom zijn eer een aantaal methoden in deze klaasse die dit p proces vergem makkelijken.. De eerste iss de udoState‐meethode die de volle zwartte bol gaat p printen in hett XMI‐bestan nd. De writePseu volgende methode is de writeStattes‐methode e. Deze contrroleert het tyype van de sstates en XMI‐bestand. Nu volgen de transition ns. We moeten er schrijft zee vervolgens weg in het X ook reken ning mee houden dat een transition een tagged vvalue kan heebben. Dit kan bijvoorbeeeld een NoV Validate zijn. Dit wil zeggen dat deze transition no ooit gevalide eerd mag worden. D De volgendee twee metho oden zijn de writeSignalEEvents‐ en dee writeStereoTypes‐ methoden. Deze schrrijven respectievelijk de ssignalevents en de stereo otypes weg n naar het XMI‐bestand. Als dit aallemaal afgeerond is, wordt een nieuw documentt aangemaakkt dat dit bevat. Dit wo ordt dan doo orgegeven aaan een XMLO Outputter diee in combinaatie met bestand b een FileW Writer zorgt vvoor het uiteeindelijke XM MI‐bestand. Flow klasse: Deze Flow w klasse bevaat alle statess van het State Machine diagram. JAX XB zal deze flow unmarshaallen. e klasse: State n DecisionStaate Dit is een superklassee van de SubfflowState, ViewState, AcctionState en Deze klasse w wordt gebruiikt om de id en de naam van de statee te bewaren n. klassen. D SubfllowState klaasse: Als de Atm mosphereXM MIExport klassse de flow vverwerkt, wo ordt het stereeotype van d de states gecontroleerd. Als ditt stereotype een subflow wstate is, worrdt deze klassse gebruikt om de ns van deze ssubflowstatee op te vrage en. transition
KBC ICTT Services 33 3 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie wState klasse e: View Als de Atm mosphereXM MIExport klassse de flow vverwerkt, wo ordt het stereeotype van d de states gecontroleerd. Als ditt stereotype een viewstaate is, wordt deze klasse ggebruikt om de transition ns van deze vviewstate op p te vragen. Actio onState klassse: Als de Atm mosphereXM MIExport klassse de flow vverwerkt, wo ordt het stereeotype van d de states gecontroleerd. Als ditt stereotype een actionsttate is, word dt deze klassee gebruikt om m de transition ns van deze aactionstate o op te vragen.. DecissionState klaasse: Als de Atm mosphereXM MIExport klassse de flow vverwerkt, wo ordt het stereeotype van d de states gecontroleerd. Als ditt stereotype een decision nstate is, wo ordt deze klassse gebruikt om de ns van deze d decisionstatee op te vrage en. transition Transsition klasse: ben hier Deze klassse wordt gebruikt om dee transitions van de statees te verkrijggen. We hebb verschilleende getters en setters vo oor handen die we nodigg hebben om m bijvoorbeeld de id of de naaam van de traansition te w weten.
KBC ICTT Services 34 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie 9 9.3.2
Sequ uence diagrram
KBC ICTT Services 35 3 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
1 De gebruiker start heet programma op. Er moe 1) et een XML‐b bestand en eeen output directory meegegeeven worden als parametters. 2 Als alle parameters in 2) n orde zijn, w wordt er een nieuwe instantie aangem maakt van de e ort klasse. AtmosphereXMIExpo 3 Eerst en vvooral gaat h 3) het XML‐bestand geunmarshalled wo orden. Dit geeeft ons een flow voorstelliing met statees.
KBC ICTT Services 36 3 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie 4 Deze stattes gaan we in een List sttoppen. Dit d 4) doen we doo or de getStates‐methode aan te roepen. 5 Nu gaan w 5) we alle transsitions verzamelen. Onde eraan het XM MI‐bestand iss er een secttie die alle transsitions bevat. We kunnen n de transitio ons van de acctionstates, d de viewstate es en de subflowsttates makkelijk verkrijgeen door de ge etTransitionss‐methode van deze klassen aan te roepen n. De decisio onstate heeftt deze metho ode echter niet. Er zijn w wel de getWh henTrue‐ en getWh henFalse‐meethoden. Dezze geven de iid terug van de state waaarnaar ze verwijzen. Voor de d decisionstatee moeten wee dus zelf twee transition n‐instanties aaanmaken m met de id van de state waarnaaar ze verwijzeen. 6 De writeFFile‐methodee wordt aanggeroepen. De 6) eze schrijft d de algemenee structuur vaan het XMI‐bestand weg. Alss dit gebeurd d is, wordt de e writePseud doState‐metthode aangerroepen. naam al duid delijk maakt, gaat deze de pseudostaates schrijven n in het XMI‐‐bestand. Zoals de n 7 Nu gaat d 7) de toepassing de states w wegschrijven n. Het stereotype van de state wordt gecontroleerd. Hiervaan afhankelijjk, wordt een n methode aaangeroepen n. Deze meth hode matie over d deze state we eg naar het X XMI‐bestand d. schrijft daan alle inform 8 Nu gaan w 8) we de List geebruiken die we aangemaakt hebben n in stap 5.W We gaan volle edig door deze List en schrijven n elke transition weg naar het XMI‐beestand. Het is belangrijk d dat we niet vergeten n aan te makken. Dit is de transition vaan de pseudo ostate de eerstee transition n naar de eeerste state in het diagram. Om dit te e doen, makeen we gebruik van de createFirstTransition‐‐methode. 9 De writeSSignalEvents‐methode w 9) wordt aangero oepen. Dezee gaat de nam men van de transition ns wegschrijvven. 1 De writeSStereoTypes‐‐methode wordt aangero 10) oepen. Dezee gaat alle steereotypes vaan de states weegschrijven n naar het XMI‐bestand. Groteere en duidelijkere afbeeeldingen zijn in bijlage terug te vinden.
KBC ICTT Services 37 3 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
1 10.
Implemen ntatie
1 10.1
E E2E Ratio Tool
1 10.1.1 Conffigureerbarre XML De ap pplicatie worrdt uitgevoerrd door gebrruik te maken van een JA AR‐bestand. D Dit bestand iis uitvoerbaar. De EE2E Ratio Too ol verwacht ééén parametter. Dit is een n XML‐bestaand dat de sttructuur de directories bevat. van d
Dit is een voorbeeeld van een X XML‐bestand d. Men kan d dit bestand o opsplitsen in twee delen.. Het eerstte gedeelte iss het general gedeelte. H Hier vinden w we een ‐tag terug die de basis directtory van allee domeinen b bevat. Dit is d dus universe eel. Verder hebben we no og een <exclude>‐ tag. D Deze bevat d de naam van de map die we niet wille en verwerken in het resu ultaat. Het tweede gedeelte bestaat uit alle dom meinen die we willen verw werken. Elk d domein heefft een id en eeen name. Verrder hebben we nog de <<java>‐ en <jjsp>‐tags. Dee <java>‐tag bevat de directory waar we alle Javaa‐bestanden kunnen teru ugvinden, terrwijl de <jsp>>‐tag de map p met de JSP P’s bevat. domein kan eer dus een nieuwe <domain>‐tag aan ngemaakt wo orden, wat de applicatie Per d configgureerbaar m maakt.
KBC ICTT Services 38 3 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie 1 10.1.2 De applicatie uiitvoeren Eens er de beschiikking is overr een correctt XML‐bestan nd, kan de applicatie uitggevoerd worrden. Om dit tee doen maken we gebruikk van de Com mmand Prom mpt.
Het jaava –jar gedeeelte zocht eervoor dat W Windows wee et dat we een n uitvoerbaaar JAR‐bestan nd gaan gebru uiken. Hieracchter komt d de naam van het JAR‐bestand. Als laaatste parameeter geven we dan de het X XML‐bestand in. Dit is hett bestand uitt stap 10.1.1. Als w we nu op enteer drukken, zzal de applicaatie het XMLL‐bestand vo olledig doorleezen en de nodige inform matie verzam melen. Als diie succesvol is afgerond, krijgt de geb bruiker de GU UI van de applicatie te zieen.
KBC ICTT Services 39 3 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
Deze GUI is simpeel opgebouw wd. In het linkker gedeelte e vindt de gebruiker de namen van alle die in het XM ML‐bestand sstaan. Verder is er nog eeen veld om d de output dirrectory in domeeinen terug d te geven. Hier zall dus het verw werkte resulltaat terechtt komen. Hieronder is er nog een pro ocess field, zodat de gebruiker altijd d op de hooggte is van de acties die dee toepassingg aan het ondernemen is. De geebruiker zal n nu een domeein kunnen sselecteren en n een outputt directory in nvullen.
KBC ICTT Services 40 4 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
Als dee ingevoerdee directory n nog niet bestaat, zal de applicatie dezze aanmaken n. De gebruikker kan nu op p de Run‐kno op drukken o om de appliccatie aan het werk te zettten. Hij zal dan via het prrocess field duidelijk te zzien krijgen w wat de appliccatie juist aaan het verweerken is. Indieen er iets misloopt ns de verwerrking van de bestanden, zal hier ook de foutmeld ding getoond worden. tijden
KBC ICTT Services 41 4 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
In het process field zien we nu dat er voor dit domein in het totaaal zevenhond derd bestand den nog één taakk: naar de ou utput directo ory gaan verwerkt zijn. Nu rest de gebrruiker van dee applicatie n om het resultaat te bekijken. 1 10.1.3 Het r resultaat Het resultaat van de toepassing is een CSV V‐bestand. D Dit wil zeggen dat de versschillende w waarden gesch heiden zijn door een kom mma. Hierdoo or weet bijvo oorbeeld Miccrosoft Excel dat de waarden in verscchillende kolo ommen moeeten ingedeeeld worden. V Voor de gebrruiker heeft dit als voord deel dat hij zeelf niets meer aan de opm maak moet vveranderen. EEr is een onm middellijk bru uikbaar rapp port voor handen dat eventtueel kan afggedrukt word den. De inho oud van het EExcel‐bestan nd ziet er als volgt uit:
KBC ICTT Services 42 4 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
Eerst wordt er du uidelijk gemaaakt welk domein er verw werkt is. In dit geval zijn d dat de betaliingen (paym ments). Belan ngrijk is ook dat er een o onderscheid ggemaakt wo ordt tussen de Java‐bestaanden en de JSP‐bestanden n. Per bestan nd krijg je te zien hoeveel manueel geeschreven ch haracters en hoeveel nereerde chaaracters er aaanwezig zijn n. Hierachterr staat dan dee E2E Ratio. Zo verkrijgt men dus gegen een p procentueel overzicht. Ho oe hoger dezze E2E Ratio,, hoe meer eer gegenereeerd is.
KBC ICTT Services 43 4 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
Zoalss eerder verm meld wordt eer een onderrscheid gemaaakt tussen d de Java‐ en d de JSP‐bestan nden. Wann neer alle Java‐bestanden n verwerkt zijn, wordt er een totaal o overzicht gem maakt. In dit geval bedraaagt de E2E rratio van de Java‐bestanden van het domein betaalingen 58,46 procent. H Hieronder begin nt dan meteeen de weergaave van de JSSP‐bestande en. Dit gebeu urt op een vo olledig analogge manier.
KBC ICTT Services 44 4 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
Na dee weergave vvan alle JSP‐b bestanden krijgen we du us wederom een overzich ht van de JSP P‐ bestaanden. Hier is de E2E ratiio hoger, meet een waarde van 98,85 procent. Helemaal onde eraan het bestaand is er ook nog een volledig overziccht van het d domein (dus zowel de Javva‐ als de JSP P‐ bestaanden). De E2E ratio van dit domein iis dus 79,91 procent.
KBC ICTT Services 45 4 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
1 10.2
X XMI Impor rt Tool
1 10.2.1 De applicatie uiitvoeren Deze tool zal een State Machine diagram dat getekend werd in eeen UML Mod delling tool verwerken tot eeen XML‐bestaand waarin d de structuur van een Flow w terug te vinden is. Het State hine diagram m werd al toeegelicht in pu untje 9.2.1. H Het Flow Classs diagram in n puntje 9.2.3. Wat Mach hiero onder volgt iss een beschrijving van ho oe de tool ge ebruikt wordtt.
Wedeerom wordt het java –jarr commando o gebruikt. Zo o weet de Co ommand Pro ompt dat er e een argum ment gaat vo olgen in de vorm van een n uitvoerbaar JAR‐bestan nd. XMIImport.jar is de naaam de toepaassing. Hiern na volgen nogg twee argum menten. Hett eerste argument is argo ouml.xmi. Ditt is de XMI‐eexport van h het State Macchine diagram. Deze moggelijkheid vin nden we bijvvoorbeeld terug in ArgoU UML. Dit is d dus het bestaand dat doorr de tool verw werkt zal wo orden. De vo olgende parameter is de directory waarrnaar het ressultaat geëxp porteerd zal worden. Door op enter tte drukken zzal de oerd worden n. appliccatie uitgevo
KBC ICTT Services 46 4 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
oepassing laaat de gebruikker weten waat er juist verwerkt is. In dit geval krijjgen we te ziien dat De to er in het XMI‐besstand één staatemachine aaanwezig waas. Deze heefft de naam SSimpleExamp ple. Als er meeer dan één statemachin ne aanwezig is in het XMII‐bestand, zu ullen deze oo ok allemaal vverwerkt word den en geëxp porteerd worrden naar ap parte XML‐be estanden. Dee toepassing laat ook wetten dat alles succesvol affgerond is. 1 10.2.2 Het r resultaat Als dee gebruiker n naar de outp put directoryy van de tool gaat, kan hijj hier een nieeuw XML‐be estand teruggvinden. Dit b bestand bevat de vollediige structuurr van het State Machine d diagram. Op p deze manier kan het geebruikt word den door een n transactie‐ontwikkelaar binnen KBC C ICT Service es. Het is en dit is de in nterne structtuur die binn nen KBC immeers een voorstelling van eeen Flow Claass diagram e gebru uikt wordt.
KBC ICTT Services 47 4 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
hildren heeftt. Er zijn <staates>‐tags die dus elke sttate van We kkrijgen een ‐tag diee heel wat ch het State Machine diagram vo oorstellen. ZZe hebben ee en type, naam m en id. Verd der kan een <state>‐ hikken over >‐tags. Dit zijjn de uitgaan nde transitiees van een be epaalde tag ook nog besch wanneer hett XMI‐bestan nd verwerkt w wordt, er geeen rekening state. Dit wil dus zeggen dat w de states. Eeen ‐tag heeftt ook een gehouden wordt met binnenkkomende traansities van d orbeeld een vvalidate‐ en e een bind‐attribuut. Verder hebben w we nog aantaal attributen zoals bijvoo de target van de ttransitie. Ditt is dus de id van de state e waar de traansitie eindiggt. Dan is er nog de m van de transitie, en een unieke id. eventtName, wat niet meer is dan de naam
KBC ICTT Services 48 4 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
1 10.3
X XMI Expor rt Tool
1 10.3.1 De applicatie uiitvoeren Dit w was een extraa opdracht om mdat ik nog tijd over had d na het afro onden van dee twee boven nstaande opdraachten. Ik gaa deze ook in n het kort toeelichten. Deze tool zal het omgekeerdee doen van d de XMI Import Tool. Dit w wil dus zeggeen dat er een n XML‐ en XMI‐bestaand te verkrijgen dat bestaand verwerktt zal worden. Het doel is om terug ee geïmporteerd kan n worden in een UML Mo odelling tooll om een visu uele voorstelling te krijge en van ow. Dit gebeurt in de vorrm van een SState Machin ne diagram. W Wat hieronder volgt is ee en de flo besch hrijving van h hoe de tool ggebruikt worrdt.
Wedeerom wordt het java –jarr commando o gebruikt. Zo o weet de Co ommand Pro ompt dat er e een argum ment gaat vo olgen in de vorm van een n uitvoerbaar JAR‐bestan nd. XMIExporrt.jar is de naaam de toepaassing. Hiern na volgen nogg twee argum menten. Hett eerste argument is outpu ut_SimpleExample.xml. D Dit is bijvoorrbeeld de outtput van de X XMI Import TTool. Het bevat een volled dige Flow strructuur die eeen afbeeldin ng is van hett Flow Class d diagram. Dit is het bestan nd dat door de tool verw werkt zal worrden. De volggende param meter is de directory waaarnaar het re esultaat porteerd zal worden. Door op enter tte drukken zzal de applicaatie uitgevoeerd worden. geëxp
KBC ICTT Services 49 4 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
oepassing laaat aan de geb bruiker weteen wat er juisst verwerkt is. In dit gevaal krijgen we te zien De to dat er één flow aaanwezig wass. Deze heeftt de naam SimpleExample. De toepasssing laat ook weten dat alles succesvo ol is afgerond d. 1 10.3.2 Het r resultaat Als dee gebruiker n naar de outp put directoryy van de tool gaat, kan hijj hier een nieeuw XMI‐besstand teruggvinden. Dit b bestand bevat de vollediige structuurr van het State Machine d diagram. Waat de gebru uiker nu kan doen, is dit XMI‐bestand d importeren n in een UMLL Modelling TTool. Op dezze manier wordt er eeen visuele vvoorstelling vvan de flow verkregen. D Dit brengt no og een anderr deel met zich h mee. Zo kaan de gebruikker bijvoorbe eeld een aan ntal states en n transities voord toevo oegen binnen de UML Modelling tool. Als dit dan n terug geëxp porteerd worrdt naar een XMI‐ bestaand en met b behulp van de XMI Imporrt Tool verwe erkt wordt, d dan verkrijgtt de gebruike er een nieuw w XML‐bestaand met de n nieuwe flow sstructuur zonder zelf ietss geprogram mmeerd te he ebben.
KBC ICTT Services 50 5 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
In de bovenstaande afbeeldin ng ziet u de inhoud van e een XMI‐besttand. De stru uctuur van diit behandeld in n puntje 9.2.2. bestaand werd al b
KBC ICTT Services 51 5 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
1 11.
B Besluit
eweest. Een ervaring waar ik in aanraaking De affgelopen wekken zijn een zeer leerrijke ervaring ge gekom men ben meet verschillen nde nieuwe ttechnologieë ën waar we aaan de XIOS H Hogeschool nog niet mee gewerkt had dden. Ik beseefte maar al tte goed dat d de opleiding aan de XIOSS voor een brrede basis aan kennis h heeft gezorggd die het mo ogelijk maakte om nieuw we technologgieën snel on nder de och ben ik zaaken tegengeekomen waaar de school m mij niet echtt op had kunnen knie tte krijgen. To voorb bereiden. Zo been ik in contaact gekomen n met het uiteindelijke be edrijfsleven een wat daar allemaal bij komt kijken n. Ook het professioneel omgaan meet collega’s w was een nieuwe ervaring waar ik veel uit geleeerd heb. Men n verwacht im mmers in een bedrijf datt je zelfstanding kan word den en dat je e initiatief neemt o om zelf zaken n op te zoekeen en op te lossen. Dit wil echter niett zeggen dat je geen dig werken iss veel groter dan in een sschool. vrageen meer kan stellen, maaar de aanzat tot zelfstand Dit heeeft er dan o ook voor gezorgd dat ik zzelf bezig ben n geweest m met het bestu uderen van nieuwe techn nologieën en n daardoor m misschien wel meer heb b bijgeleerd. Bij dee aanvang vaan mijn stagee had ik al eeen goed idee van wat mij te wachten stond. Toch werd in de eeerste weken duidelijk datt er veel meeer bij kwam kkijken dan ikk initieel zelf gedacht had d. Dit zorgd de voor een eextra druk diie ik verstand dig heb aanggepakt. Via eeen gestructu ureerd schem ma heb ik de planning kunn nen afwerken n en kan ik fier zijn dat de e vooropgesttelde eisen ggehaald zijn. Ook heb waardoor de b bruikbaarheiid verhoogd is geworden n. ik nogg een extra ttoepassing ontwikkeld w De stage mag dan n gedaan zijn n, ik heb toch h ook al nage edacht aan w wat er allemaaal nog verbe eterd kan w worden op dee applicatie nog beter tee maken. Uite eindelijk is een programm ma nooit af e en beperkt een proggramma zich vaak tot de creatieve ge eest van een ontwikkelaaar. was deze Ik wil als afsluiterr de mensen van KBC ICTT Services nogg eens extra bedanken. ZZonder hen w ok enkele nieeuwe vriendeen leren kennen die stagee niet mogelijk geweest. Naast collega’s heb ik oo ervoo or gezorgd hebben dat ikk in een aanggename omggeving mijn stage heb kun nnen afronden.
KBC ICTT Services 52 5 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
1 12.
B Bronnen
1 12.1
B Boeken
‐ ‐ ‐
Deitel P.J., Deitel H.M M., Java How To Program m, Deitel, 200 07 ava, Pearson n, 2007 Laan G., SSoftwareontwikkeling meet UML en Ja Grose T., Doney G., Brodsky S., M Mastering XM MI Java Progrramming with h XMI, XML, and UML, Willey Computeer Publishing,, 2002
1 12.2
W Websites
‐ ‐ ‐
JDOM http://ww ww.jdom.orgg/ ng Trees Navigatin http://www.ccafeconlechee.org/books//xmljava/chaapters/ch14ss08.html http://onjjava.com/pu ub/a/onjava//2004/12/15 5/jaxb.html JAXB
KBC ICTT Services 53 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
1 13.
F Figuren
1 13.1
U Use Case D Diagramm men
KBC ICTT Services 54 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
1 13.2
Class Diag grammen
KBC ICTT Services 55 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
KBC ICTT Services 56 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
KBC ICTT Services 57 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
1 13.3
Sequence Diagramm men
KBC ICTT Services 58 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
KBC ICTT Services 59 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie
KBC ICTT Services 60 End‐To‐End Ratio bepaliing en State Machine Diagram transsformatie