BPV Testing Before Designing
Afstudeerproject CSE Technische Universiteit Eindhoven
Student:
Kees Ampt
TU/e begeleider:
Alexander Serebrenik
Commissielid:
Natalia Sidorova
Opdrachtgever Atos Origin:
Jan van Staveren
Atos Origin begeleider/commissielid:
Miel Willems
Expert vanuit Atos Origin:
Klaas Smit
20 juli 2007
Inhoud en Afbeeldingen Inhoud 1
Inleiding ............................................................................................................................. 6
2
Wat is BPV? ..................................................................................................................... 10
3
BPV modellen .................................................................................................................. 12 3.1
Het Transformatie Model ......................................................................................... 14
3.1.1
Opmerkingen bij top-down benadering Transformatie Model ........................ 16
3.1.2
Voorbeeld businesscase met Transformatie Modellen..................................... 16
3.1.3
Verdere invulling van het Transformatie Model.............................................. 18
3.2
Het Dienst Model ..................................................................................................... 19
3.2.1 4
Het BPV objectenmodel................................................................................................... 24 4.1
5
6
Doel Dienst Model ........................................................................................... 21 Regels voor objecten(verzamelingen) ...................................................................... 24
4.1.1
Objecten Transformatie Model ........................................................................ 24
4.1.2
Objecten in het Dienst Model........................................................................... 25
4.1.3
Bestaande conventies ....................................................................................... 26
4.1.4
Voorgestelde conventies .................................................................................. 27
Het tool............................................................................................................................. 30 5.1
Gemaakte keuzes en opbouw van het tool ............................................................... 30
5.2
Werkblad Transformation ........................................................................................ 31
5.3
Werkblad Admin ...................................................................................................... 31
5.4
Opbouwen boom op werkblad Service .................................................................... 32
5.4.1
Praktische maatregelen..................................................................................... 33
5.4.2
Keuzes aanbrengen op het blad Service ........................................................... 33
5.4.3
Volgorde Proces Objecten................................................................................ 34
5.4.4
Wijzigen volgorde, toevoegen en verwijderen Proces Objecten...................... 34
5.5
Overzetten boom ...................................................................................................... 36
5.6
Relatie Service… bladen en het blad Transformation ............................................. 37
5.7
Relatie Excel en allCLEAR...................................................................................... 38
Conclusies ........................................................................................................................ 40 6.1
Kwaliteit van de oplossing ....................................................................................... 40
6.2
Mogelijke wensen voor de toekomst........................................................................ 41
6.3
Terugblik .................................................................................................................. 42
BPV Testing Before Designing
2
Inhoud en Afbeeldingen Annex A Oorspronkelijk Project Initiatie Document.............................................................. 44 1
Inleiding ........................................................................................................................... 44
1.1 Behoefte ........................................................................................................................... 44 1.2 Opdracht ........................................................................................................................... 45 1.2.1
Model ....................................................................................................................... 45
1.2.2
Hulpmiddel............................................................................................................... 45
2
Doel .................................................................................................................................. 46
2.1 Scope ................................................................................................................................ 46 2.2 Uitgangssituatie................................................................................................................ 46 2.3 Deliverables...................................................................................................................... 47 2.3.1
Kwaliteit ................................................................................................................... 47
Annex B Loyalty Programma ................................................................................................. 48 1
Uitgangssituatie................................................................................................................ 48
2
Doel van het programma .................................................................................................. 48
3
Transformatie Model........................................................................................................ 49 3.1
De volledigheidscontrole van de bedrijfsprocessen. ................................................ 49
3.2
De uitwerking........................................................................................................... 50
Annex C Handleiding gebruik BPV Tool ................................................................................ 52 1
Inleiding ........................................................................................................................... 60
2
Openen Excel bestand ...................................................................................................... 62
3
Direct na openen Excel bestand ....................................................................................... 66
4
Vullen of aanpassen Transformation blad........................................................................ 70
5
Acties op het blad Admin................................................................................................. 74
5.1 Controle Proces Objecten................................................................................................. 74 5.2 Overzetten naar blad Service............................................................................................ 75 5.3 Verdere informatie op blad Admin .................................................................................. 77 6
Kopiëren van Service… bladen........................................................................................ 80
7
Bewerken data op Service… bladen ................................................................................ 82
7.1 Starten acties .................................................................................................................... 83 7.1.1
Klikken met de rechtermuisknop ............................................................................. 83
7.1.2
Dubbelklikken op cel ............................................................................................... 84
7.1.3
De toets {Delete} of {Backspace} ........................................................................... 86
7.1.4
De toetsen {Insert}, {Page Up} of {+} .................................................................... 87
BPV Testing Before Designing
3
Inhoud en Afbeeldingen 7.2 Actie typen ....................................................................................................................... 88 7.2.1
Classificaties aanbrengen ......................................................................................... 88
7.2.2
Extra classificatie keuzes invoegen.......................................................................... 88
7.2.3
Objecten verwijderen ............................................................................................... 89
7.2.4
Classificatie keuzes verwijderen .............................................................................. 89
7.2.5
Objecten omwisselen................................................................................................ 89
7.2.6
Objecten invoegen.................................................................................................... 89
7.2.7
{i} object aanpassen ................................................................................................. 89
7.2.8
Kolombreedte aanpassen.......................................................................................... 90
7.3 Knoppen op Service… bladen.......................................................................................... 90 7.3.1
Knop: controleer berichtenlijst................................................................................. 91
7.3.2
Knop: overzetten naar blad Tree… .......................................................................... 91
8
Spelen met allCLEAR? .................................................................................................... 94
Bijlage 1 BPV........................................................................................................................... 98 1.
BPV .............................................................................................................................. 98
2.
Uitgangspunten van de BPV-methodiek ...................................................................... 99
3.
Wat is het? Theorie en beschrijving ........................................................................... 100
4.
Kwaliteitseisen ........................................................................................................... 103
5.
Samenvatting.............................................................................................................. 103
Bijlage 2 Voorbeeld controlelijst ........................................................................................... 104 Bijlage 3 Enkele extra voorbeelden Engelstalige schermen .................................................. 106 Bijlage 4 voorbeelden manipuleren Service bladen............................................................... 110 Bijlage 5 Belangrijkste aanpassingen..................................................................................... 114 Annex D ICEIS bijdrage ....................................................................................................... 116 1
INTRODUCTION.......................................................................................................... 116
2
BPV ................................................................................................................................ 116
3
THE PROTOTYPE TOOL ............................................................................................ 119
4
CONCLUSIONS............................................................................................................ 120
ACKNOWLEDGEMENTS ................................................................................................... 120 REFERENCES....................................................................................................................... 120 Annex E Poster voor ICEIS .................................................................................................. 122
BPV Testing Before Designing
4
Inhoud en Afbeeldingen Afbeeldingen Afbeelding 1 De plaats van BPV in het V-model [beginnend linksboven] met virtuele tests. 11 Afbeelding 2 [Tabel 2.1 Foutinjecties, Smit, BPV, 23-24] ...................................................... 13 Afbeelding 3 [Figuur 4.1 Top-downbenadering Transformatie Model, Smit, BPV¸ 43]......... 15 Afbeelding 4 Het Transformatie Model voor het Loyalty Programma met van boven naar beneden een Continue Dienst, Initiële dienst en Aanleverende Dienst. De horizontale lijnen geven de bedrijfsprocessen aan waarbij de Output Objecten en Verwijderde Objecten [aangegeven met een diagonaal kruis door de tekst] al dan niet worden gerealiseerd door de waarden van de Katalysator Objecten [verbonden met een verticale pijl] die zelf weer Output Objecten op een lager niveau kunnen zijn. De grote pijl rechtsonder buitenom geeft aan dat een Output Object op een hoger niveau ook dienst kan doen als Katalysator Object op een lager niveau................................ 17 Afbeelding 5 [Figuur 3.2 Transformatie Model bestelling en levering, Smit, BPV, 37] ......... 19 Afbeelding 6 [Figuur 5.2 Classificatieboom artotheek (1), Smit, BPV, 57] ............................ 21 Afbeelding 7 [Figuur 5.3 Classificatieboom artotheek (2), Smit, BPV, 58] De rechthoeken met afgeronde hoeken vertegenwoordigen de Katalysator Objecten................................. 22 Afbeelding 8 Voorbeeld van een Dienst Model in allCLEAR zoals werd gehanteerd bij Atos Origin. Het Input Object en de keuzes worden weergegeven door driehoeken, de Katalysator Objecten door cilinders en Output Objecten door rechthoeken met links en rechts een verticale streep. ..................................................................................... 27 Afbeelding 9 Voorbeeld objecten overzicht in het tool op het Excel werkblad Transformation ..................................................................................................................................... 30 Afbeelding 10 Gedeelte van het werkblad Admin ................................................................... 32 Afbeelding 11 Voorbeeld uitgangspositie met een Proces Object in twee rollen .................... 33 Afbeelding 12 Voorbeeld van gekopieerde, nog niet verder aangepaste takken ..................... 33 Afbeelding 13 Een {k} object met drie keuzes ........................................................................ 35 Afbeelding 14 Keuzes worden gemerkt ná invoegen {k} object ............................................. 35 Afbeelding 15 De boom van Afbeelding 13 na verwijdering van de keuze ‘no’..................... 36 Afbeelding 16 Lijst met vrije Proces Objecten en na invoegen overblijvende vrije Proces Objecten ...................................................................................................................... 36 Afbeelding 17 Voorbeeld van een classificatieboom van het Dienst Model. Driehoeken geven het {i} object en de keuzes aan; cilinders de {k} objecten; rechthoeken met een pijl naar rechts de {o} objecten en rechthoeken met een omgevouwen hoek de {x} objecten ....................................................................................................................... 39 De volgende bladzijden zijn met opzet leeg gelaten: 1 – 9 – 23 – 29 – 53 – 65 – 69 – 73 – 81 – 93 – 97 – 105 – 109 – 115 – 121.
BPV Testing Before Designing
5
Inleiding
1 Inleiding Ten behoeve van een afstudeerproject binnen het Master programma Computer Science and Engineering van de Technische Universiteit Eindhoven is op verzoek van Atos Origin BAS1 Zuid een studie verricht naar de mogelijkheden tot automatisering van de omzetting van het Transformatie Model naar het Dienst Model binnen de methode Business Process Validation [BPV]. BPV heeft als doel foutinjecties vroegtijdig te kunnen constateren. Binnen de methode zijn vier modellen te onderkennen die steeds een verdere verfijning inhouden. Dit zijn achtereenvolgens het Transformatie Model, Dienst Model, IT/AO2 Model en Applicatie Model. De basis van BPV is vastgelegd in het boek van Klaas Smit, Business Process Validation. Gestructureerd testen met de BPV-methodiek 3 Hierin wordt de methode op een tamelijk informele wijze beschreven. Het gevoel was daarom dat éérst een formele beschrijving van de methode – en specifiek de te beschouwen bovenste twee modellen – nodig zou zijn alvorens er zou kunnen worden gedacht aan een poging tot automatisering. Daarnaast is er bij Atos Origin IPS4 Noord, waar de auteur van de methode aan verbonden is, een bepaalde manier van tekenen ontwikkeld die niet aansluit bij de algemeen gehanteerde conventies voor stroomdiagrammen of beslisbomen. Daardoor was er zeker aanvankelijk ook enige onduidelijkheid over het doel van de te genereren tekeningen. Aan het begin is enthousiast begonnen met het opstellen van een Project Initiatie Document [PID].5 Hierna is gedurende een zekere tijd getracht een meer formele beschrijving op te stellen en de randvoorwaarden te bepalen. Dit mede om een voor een opdrachtgever bruikbaar model te ontwikkelen, waarmee die zicht kan krijgen op hetgeen de toekomstige bedrijfsprocessen op hoofdlijnen produceren. Een complicerende factor hierbij was dat wegens eisen van vertrouwelijkheid geen inzicht kon worden verkregen in de feitelijke toepassing van de methode bij Atos Origin.6 Vanuit Atos Origin was er een sterke behoefte de aandacht te richten op hulpmiddelen voor de omzetting van het Transformatie Model naar het Dienst Model binnen de BPV-methode. Na enkele maanden ontstond de indruk dat het niet mogelijk zou zijn tot automatisering conform de initiële opdracht over te gaan. Daarom is besloten de potentie van een prototype te onderzoeken waarbij Excel zou worden gebruikt voor de data manipulatie en het door Atos Origin gebruikte allCLEAR voor het tekenen van de classificatiebomen die de kern vormen van het Dienst Model. Het werk heeft zich daarna vooral geconcentreerd op de data manipulatie in Excel waarbij het praktische tekenen in allCLEAR minder aandacht heeft gekregen, mede 1
BAS = Business Applications Solutions.
2
Informatie Technologie/Administratieve Automatisering.
3
Klaas Smit, Business Process Validation. Gestructureerd testen met de BPV-methodiek (Den Haag, 2005) Academic Service. Zie ook Annex C Handleiding gebruik BPV Tool, Bijlage 1 BPV [pagina 98]. 4
IPS = Infrastructure Professional Services.
5
Annex A Oorspronkelijk Project Initiatie Document.
6
Dit praktische inzicht ontbreekt helaas ook nog bij de afronding van deze studie.
BPV Testing Before Designing
6
Inleiding door het door Atos Origin gehanteerde vertrouwelijkheidprincipe voor lopende of recent afgeronde projecten. Inmiddels is wel een project bij Achmea opgestart waarbij het tool wordt gebruikt. Wegens prioriteitstellingen is dit echter tijdelijk stilgelegd zodat helaas nog onvoldoende gegevens bekend zijn. Het project heeft als zodanig alle kenmerken van een typisch IT-project vertoond. Dat wil zeggen dat de vraagstelling gaande het project en bij het beschikbaar komen van de eerste resultaten steeds wijzigde. Het oorspronkelijke PID is echter niet meer aangepast. De handleiding voor het ontwikkelde gereedschap7 is ook pas achteraf geschreven. Hierbij kwamen nog onvolkomenheden in het programma aan het licht. Als zodanig is dit een goede illustratie van de noodzaak vroegtijdig met testen te beginnen evenals om ontwikkeling en documenteren gelijktijdig ter hand te nemen. Wederom op verzoek vanuit Atos Origin is de handleiding tamelijk uitgebreid met echter een quick reference van één pagina.8 Er zijn enkele tests met het tool uitgevoerd. In het bijzonder voor grotere projecten zou een behoorlijke tijdswinst zijn te behalen. Meer definitieve resultaten zijn bij afsluiting van deze studie nog niet bekend. Op verzoek van Atos Origin is dit verslag in het Nederlands geschreven. Binnen het kader van het project is echter ook een Engelstalig artikel geschreven voor de 9th International Conference on Enterprise Information Systems [ICEIS] 12-16, June 2007, Funchal, Madeira – Portugal en daar gepresenteerd in een postersessie.9 Binnen deze studie is er heel wat geleerd over het opzetten en realiseren van een automatiseringsproject. Hoewel er aanvankelijk veel tijd is gestoken in het bestuderen van mogelijk relevante literatuur over project opzet, modellen en testen, alsmede een verbeterd communicatie model voor BPV, is in overleg besloten de gedetailleerde resultaten hiervan niet neer te leggen in dit verslag. Als zodanig was het wel een nuttige ervaring en heeft dit zeker bijgedragen aan meer inzicht in de materie. De verdere opbouw van dit verslag is als volgt. Als eerste zal nader worden ingegaan op wat BPV inhoudt. Dit wordt gevolgd in hoofdstuk 3 door een korte behandeling van de modellen met nadruk op het Transformatie Model en Dienst Model. Hierna komt een beschrijving van het objectenmodel. Op basis van de voorgaande hoofdstukken is het tool ontwikkeld. Een beschrijving is opgenomen in hoofdstuk 5 gevolgd door conclusies. De volgende onderdelen zijn als annex opgenomen: Annex A Oorspronkelijk Project Initiatie Document; Annex B Loyalty Programma; Annex C Handleiding gebruik BPV Tool; Annex D ICEIS bijdrage10; Annex E Poster voor ICEIS.
7
In het vervolg aan te duiden als het tool.
8
Annex C Handleiding gebruik BPV Tool.
9
zie Annex D ICEIS bijdrage en Annex E Poster voor ICEIS.
10
Tekst van: Cornelis G. F. [Kees] Ampt, ‘Business Process Validation. Testing Before Designing’, in: ICEIS 2007, Ninth International Conference on Enterprise Information Systems. Proceedings Information Systems Analysis and Specification. Funchal, Portugal, June 12-16, 2007(ISBN 978-972-8865-90-0) 554 – 558.
BPV Testing Before Designing
7
Inleiding Rest mij nog de volgende personen te bedanken voor hun bijdragen en inzet:
Jan van Staveren, Atos Origin Bas Zuid als opdrachtgever en financier van de trip naar Madeira.
Miel Willems, Atos Origin Bas Zuid als begeleider vanuit Atos Origin die steeds met raad en daad gereed stond en ook zorgde voor transport naar de bijeenkomsten in Arnhem en Groningen.
Ine Keijzer, Atos Origin Bas Zuid die enorm heeft geholpen bij het helder krijgen van de randvoorwaarden voor objecten binnen BPV.
Klaas Smit, Atos Origin IPS Noord, de ontwerper van de methode die als deskundige is opgetreden. Ondanks de soms erg kritische vragen heeft hij zijn geduld kunnen bewaren en heeft er in belangrijke mate toe bijgedragen dat er toch een goed prototype conform de iteratief wijzigende eisen is ontstaan.
Marleen de Jonge, Atos Origin IPS Noord, die initiële testen heeft uitgevoerd en veel praktische suggesties heeft gedaan.
Natalia Sidorova, TU/e LaQuSo die waardevolle adviezen gaf voor de scope van dit verslag.
Alexander Serebrenik, TU/e LaQuSo, mijn actieve begeleider zonder wiens voortdurende steun, kritische opmerkingen en inzet ik dit project nooit afgerond zou kunnen hebben. Hij heeft mij ook gestimuleerd een artikel voor de ICEIS conferentie te maken.
Mijn gezin die mij ondanks alle andere werkzaamheden toch de kans hebben geboden – zij het soms in de late uren – ook aan dit project veel tijd te besteden.
BPV Testing Before Designing
8
Wat is BPV?
2 Wat is BPV? Vanuit zijn ervaring als testmanager heeft Klaas Smit de Business Process Validation [BPV] methode ontwikkeld. Hij onderkent dat er tijdens een IT-project al tijdens de specificatiefase van subprojecten veel foutinjecties plaats kunnen vinden.11 Die kunnen zowel vanuit de communicatie, het proces, de organisatie als de technologie voortkomen. Foutinjecties zijn veelal het gevolg van miscommunicatie tussen opdrachtgevers en allen die in verschillende fasen aan een project werken.12 Als zodanig zijn ze veelal niet te voorkomen. Modellen kunnen echter een belangrijke rol spelen bij de ontwikkeling van producten, ook in de IT-sfeer. Die modellen zullen echter steeds gedetailleerder (moeten) worden. In de praktijk vindt testen veelal achteraf plaats. Als dan pas ontwerpfouten aan het licht komen is het veel te laat en zal mogelijk weer van voor af aan moeten worden begonnen. Testen zou daarom volgens Smit in elke fase van een ontwikkeltraject moeten plaatsvinden:13 Gaande een project zal het inzicht van een opdrachtgever over het algemeen toenemen waardoor deze voor de vraag kan komen te staan de businesscase bij te stellen of het project bij te sturen. De Business Process Validation methode heeft als doel foutinjecties vroegtijdig te constateren. Daarnaast kan BPV worden gezien als een testmethode die het mogelijk maakt de meeste ontwerpmethoden bij te sturen. Hiermee heeft BPV overigens niet de pretentie de rol van systeemarchitecten en -ontwerpers over te nemen maar – door vroegtijdige toepassing – zowel de kans op foutinjecties als miscommunicatie te verkleinen. Het blijft echter moeilijk om te bepalen waar BPV exact moet worden gesitueerd in het totale ontwikkelingsproces. Er dreigt immers gemakkelijk een situatie dat de tester toch op de stoel van de business engineer, systeem architect of ontwikkelaar gaat zitten. Er lijkt nog onvoldoende ervaring te zijn met toepassing buiten Atos Origin om hier nu al veel zinvols over te kunnen zeggen. Een methode als Extreme Programming hecht ook veel waarde aan vroegtijdig testen, overigens steeds nadat codefragmenten zijn geschreven, maar deze methode lijkt het totale ontwikkelproces te willen beïnvloeden.
11
In deze fase vindt een transformatie plaats van systeemeisen naar eisen voor subsystemen.
12
Informatieanalisten en procesontwerpers zullen vaak bij de eerste fase van een klassiek IT-project zijn betrokken, technische bouwers komen daarna, gevolgd door testers. 13
Testen is het beoordelen of het product en de (toekomstige) levering hiervan op het moment van beoordeling voldoen aan de wensen van de opdrachtgever. De tijdens de looptijd van het project bijgestelde businesscase is de basis waarop de producten en inspanningen van het project worden beoordeeld. Smit, BPV, 4-5. Doel van het testproject is het ontdekken van gebreken, onduidelijke specificaties en communicatieproblemen. Wanneer deze vroegtijdig worden ontdekt, wordt een bijdrage geleverd aan het in één keer juist bouwen. Dit betekent dat het beoordelen achteraf moet worden vervangen door zelfcontrole door zowel opdrachtgever als opdrachtnemers. Deze test opzet is anders dan wat vele testers, opdrachtgevers en projectmanagers nu gewend zijn. Smit, BPV, 9.
BPV Testing Before Designing
10
Wat is BPV? BPV onderkent echter al virtuele tests voordat het echte ontwikkelwerk plaats vindt.14 Hieruit is ook de titel van dit verslag te verklaren: Testing Before Designing. Juist ook het vooraf testen in plaats van (alleen maar) achteraf is misschien wel het meest opvallende kenmerk van BPV.
Afbeelding 1 De plaats van BPV in het V-model [beginnend linksboven] met virtuele tests
14
Zie Afbeelding 1 en ook Annex C Handleiding gebruik BPV Tool, Bijlage 1 BPV Uitgangspunten van de BPV-methodiek [bladzijde 99 e.v.]. FAcT = Factory Acceptance Test; SAT = Site Acceptance Testomgeving. TMAP en Testframe zijn in Nederland vaak toegepaste testmethoden. Het onderste deel van Afbeelding 1 valt echter buiten het aandachtsgebied van BPV.
BPV Testing Before Designing
11
BPV modellen
3 BPV modellen De gehanteerde BPV modellen zijn primair grafische weergaven van bedrijfsprocessen – en de objecten die daarin een rol hebben – vooral aangevuld met tabellen.15 De BPV methode16 onderkent vier modellen: 1. Het Transformatie Model als vertaling van nieuwe of bestaande bedrijfsprocessen, gericht op de logische verwerking hiervan. Het model concentreert zich op hoofdlijnen maar heeft als doel alle relevante objecten te identificeren. 2. Het Dienst Model dat een detaillering van elk relevant bedrijfsproces17 inhoudt en via classificatiebomen de wensverfijningen en daarmee de verschillende testpaden aangeeft. 3. Het IT/AO Model waarin wordt aangegeven hoe informatie wordt doorgegeven naar applicaties en werkprocessen en in welke applicaties gegevens worden vastgelegd. Het model richt zich op de technische werking van het proces en wordt weergegeven in sequence diagrammen. 4. Het Applicatie Model bedoeld voor aanmaak van logische testgevallen per (deel)applicatie.18 De modellen worden ook in bovenstaande volgorde achtereenvolgens ingevuld. Omdat het te ontwikkelen tool zich vooral richt op de eerste twee modellen zullen die verder worden toegelicht. In beide modellen richt de aandacht zich sterk op objecten. Wellicht is het zinvol eerst nog te beschouwen in welk model bepaalde foutinjecties mogelijk worden onderkend of de meeste invloed (kunnen) hebben als er geen aandacht aan wordt besteed. Zie Afbeelding 2.
15
Al deze modellen bestaan grotendeels uit tekeningen. Enerzijds omdat tekeningen een niet gekleurde weergave van de wens weergeven, en hierdoor communicatie problemen voorkomen. Anderzijds omdat tekeningen sneller inzicht geven in de op te leveren producten. Jammer genoeg kan de BPV-methodiek niet geheel zonder tekst, maar om omvangrijke beschrijvingen te voorkomen wordt deze in tabellen opgenomen. Smit, BPV, 10. 16
Hoewel Smit de term methodiek gebruikt, wordt hier toch de voorkeur aan methode gegeven. Immers methode: vaste, weldoordachte manier van handelen om een bepaald doel te bereiken. Methodiek: methodologie: leer van de te volgen methoden. 17
Onder relevant bedrijfsproces verstaan we elk bedrijfsproces dat van belang is voor de businesscase. Hiertoe kunnen ook bedrijfsprocessen behoren die in principe geen onderdeel uitmaken van het te automatiseren project maar daar wel invloed op uit kunnen oefenen dan wel zelf kunnen ondergaan. Het Dienst Model is een verbijzondering van het Transformatie Model. 18
Het oorspronkelijke doel van het Applicatie Model was een duidelijk overzicht te verschaffen hoe input, output en opslag van data met elkaar in verband staan. In de praktijk bleek deze informatie vrijwel direct uit de IT/AO Modellen afleidbaar. Wel is belangrijk de voor de ketens belangrijke applicatie/systeemtest data te verzamelen.
BPV Testing Before Designing
12
BPV modellen Foutinjectie
Transformatie Model
Dienst Model
IT/AO Model
Applicatie Model
Oplevering van de belangrijkste testgevallen voor de ketentest (de goed-situaties)
Tweede virtuele test
Het opleveren van logische testgevallen aan applicatieontwikkelaars
Communicatie Interpretatieverschillen
Impliciete aannames
Toetsen van de scope van het project, welke processen maken er wel/geen deel van uit, harde definitie van objecten en vastleggen van kwaliteitseisen
Eerste virtuele test Controle op ontbrekende proceseisen
Toets op volledigheid van het ketenontwerp
Eerste virtuele test
Toets op aanwezigheid schoningsprocessen. Tweede virtuele test
Toetsing op haalbaarheid (kunnen objecten worden aangemaakt, zijn de kwaliteitseisen haalbaar?)
Vertrouwen in expertise van deelprojecten
Tweede virtuele test
Reviewen van testresultaten van applicatieontwikkelaars
Beschikbaar stellen van testgevallen
Onvoldoende communicatie over wijzigingen
Organisatie Slechte organisatie van het project
Toets of de juiste partijen bij het project betrokken zijn Virtueel testen
Vertraagde communicatie over wijzigingen
Beschikbaar stellen van testgevallen
Onvoldoende change control
Proces Leveren van testgevallen
Onvoldoende afbakening op te leveren producten Conflicterende requirements
Onduidelijke afbakening verantwoordelijkheden
Toetsing op haalbaarheid kwaliteitseisen
Toets of de kwaliteitseisen kunnen worden ingevuld
Compleetheid Dienst Model
Compleetheid IT/AO Model
Eerste virtuele test
Toets op afhandeling foutsitutaties
Door grondige scope-toetsing wordt ook duidelijk wat wel/niet tot de verantwoordelijkheid van het project behoort.
Technologie Onvoldoende review van producten in ontwikkeling
Tweede virtuele test
Afbeelding 2 [Tabel 2.1 Foutinjecties, Smit, BPV, 23-24] BPV Testing Before Designing
13
Review applicatietesten
BPV modellen Het uitgangspunt voor BPV is een bedrijfsproces.19 Een (vaag) idee van de opdrachtgever, veelal aangeduid als wens, fungeert dan als Input Object voor een bedrijfsproces.20 Er kunnen overigens wensen op verschillende niveaus optreden, zoals hieronder verder aangegeven. Hierbij dient men uit te gaan van een (al dan niet interne) klant of gebruiker van het (te realiseren) IT-project.21 Voor het Transformatie Model – en ook het hierop volgende Dienst Model – is het niet van belang te weten hoe de werking van het proces is, maar wel wat het proces levert. 3.1 Het Transformatie Model Het Transformatie Model is de vertaling van bedrijfsprocessen naar een model op hoofdlijnen. Hierbij maken we gebruik van objecten. Naast het Input Object [de klantwens] zijn er dan Output Objecten en eventueel Verwijderde Objecten. Een bijzondere rol is er voor de Katalysator Objecten. Dit zijn objecten die beïnvloeden welke Output Objecten ontstaan zonder dat ze zelf (noodzakelijk) worden verwerkt binnen het bedrijfsproces. Een bedrijfsproces is in dit verband een proces dat een bedrijf in staat stelt een product te leveren.22 Als we een bedrijfsproces bekijken, zien we volgens BPV een gelaagde opbouw. Deze opbouw bestaat uit een Continue, een Initiële en een Aanleverende Dienst. 1. De Continue Dienst is de dienst die het bedrijf of organisatie levert om geld mee te verdienen.23 2. De Initiële Dienst is de dienst die de randvoorwaarden moet scheppen om de Continue Dienst mogelijk te maken. 3. De Aanleverende Dienst is de dienst die het mogelijk moet maken een Initiële Dienst uit te kunnen voeren.24 In het Transformatie Model onderkent Smit dus drie lagen. In werkelijkheid kan een zich steeds herhalend systeem [het droste-effect] optreden. Immers ieder niveau kent weer Katalysator Objecten die kunnen worden aangemaakt – als Output Object – op een daaronder liggend niveau. Hij licht dit ook toe met een algemeen voorbeeld.
19
Smit hanteert hiervoor ook wel het begrip businessproces. Een businessproces is dan een van de (te automatiseren) onderdelen die bijdragen aan realisering van de businesscase. 20
De overige Proces Objecten worden in 3.1 behandeld.
21
Men zou dit kunnen vergelijken met Use cases in de Unified Modeling Language [UML].
22
De term bedrijf slaat hier in principe op elke (producerende) organisatie waarbij het niet relevant is of die fysieke producten, software of andere diensten levert. Zelfs het (zelf) produceren is niet essentieel, zolang er maar iets uit het (bedrijfs)proces komt. Het lijkt wel zinvol dat dit iets het gevolg is van een klantwens. Of daarmee ook aan die klantwens is voldaan staat daar weer los van, hoewel dat in principe de bedoeling van het proces zou moeten zijn.
23
Dit is een economische benadering. Minimaliseren van het verlies [of de noodzaak tot subsidie] dan wel het vergroten van de (politieke) belangrijkheid van een organisatie kan ook een doelstelling zijn. Dit is echter in principe allemaal weer in geld uit te drukken. Het gaat dus om de financiële rechtvaardiging voor het uitvoeren van een proces. Zelfs het zorgen dat er iets uitkomt is niet noodzakelijk. Vernietiging van objecten zou ook een doel kunnen zijn, overigens ook in geld te waarderen. 24
Intussen schijnt in de praktijk deze onderverdeling in lagen niet altijd en niet rigoureus te worden toegepast.
BPV Testing Before Designing
14
BPV modellen
Continue Dienst Initiële Diensten
Input Object
1
Output object Output object Output Object Output Object 2
Input Object Input Object Input Object
Katalysator Object Katalysator torobject Katalysator Object
4
Katalysator Object Katalysator Katalysator Object object
Input Object
Extra Output object
5
6
7
Aanleverende Dienst
3
Katalysator Object Katalysator Object 8
Afbeelding 3 [Figuur 4.1 Top-downbenadering Transformatie Model, Smit, BPV¸ 43]
Smit geeft de volgende toelichting – waarbij de nummers verwijzen naar de cirkels in de afbeelding – bij zijn Figuur 4.1 [Afbeelding 3]:25 In het kort zijn de stappen die worden doorlopen (Figuur 4.1): 1. We starten met de Continue Dienst. We stellen de klantwensen vast en de omgeving van waaruit zij komen (hierdoor kunnen extra Continue Diensten gaan ontstaan). 2. Vervolgens bepalen we voor de Continue Dienst welke Output Objecten ontstaan en waar zij landen (hierdoor kunnen extra Continue Diensten gaan ontstaan). 3. En ten slotte bepalen we voor de Continue Dienst welke Katalysator Objecten nodig zijn. 4. Voor de Initiële Dienst bepalen we welke Input Objecten nodig zijn om de Output Objecten aan te maken, te wijzigen of te vernietigen. Deze Output Objecten zijn de Katalysator Objecten van de Continue Dienst. 5. Hierna beoordelen we voor de Initiële Dienst of er meer Output Objecten dan nodig voor de Continue Dienst worden aangemaakt. Zo ja, stellen we vast waar deze landen (hierdoor kunnen extra Initiële Diensten ontstaan). 6. Vervolgens beoordelen we welke Katalysator Objecten de Initiële Dienst nodig heeft. 7. Voor de Aanleverende Dienst stellen we vast welke Input Objecten nodig zijn om de Output Objecten aan te maken. Deze Output Objecten zijn de Katalysator Objecten van de Initiële Dienst.
25
Smit, BPV, 43-44. Een uitgewerkt voorbeeld is opgenomen in Afbeelding 4. De gedetailleerde gegevens hiervoor zijn opgenomen in Annex B Loyalty Programma. Cirkel 8 ontbreekt in Figuur 4.1 van het boek. De naamgeving is aangepast aan de hier gehanteerde. Smit hanteert de termen inputobject, outputobject en katalysatorobject. Hier – en bij volgende aangehaalde passages – is gekozen voor de termen Input Object, Output Object, Katalysator Object en Verwijderd Object. Ook wel aangeduid als {i} object, {o} object, {k} object en {x} object. Het begrip (be)landen is niet nader uitgewerkt in het boek.
BPV Testing Before Designing
15
BPV modellen 8. Katalysator Objecten voor de Aanleverende Diensten kunnen zelf weer ontstaan als Output Object van een andere Aanleverende Dienst. Vanaf hier herhalen de stappen zich.
3.1.1 Opmerkingen bij top-down benadering Transformatie Model Navraag leverde op dat tijdvolgorde nog geen rol heeft in het Transformatie Model. Welke Output Objecten optreden hangt dus af van de (waarden van) Katalysator Objecten. Wat er in Figuur 4.1 [Afbeelding 3] aan de rechterkant van een horizontale pijl staat, zijn in feite allemaal Output Objecten of eventueel Verwijderde Objecten. De Output Objecten op een lager niveau fungeren echter als Katalysator Objecten op een hoger niveau. Binnen een totaal project kunnen daarom dezelfde objecten een verschillende rol hebben.26 De verticale lijnen met twee pijluiteinden zijn mogelijk misleidend. Het Katalysator Object heeft invloed op het proces dat erboven is afgebeeld. Dit bovenliggende proces heeft geen directe invloed op het onderliggende Katalysator Object. Het blijkt wel mogelijk te zijn dat een Output Object gegenereerd op een bepaald niveau weer als Katalysator Object op een lager niveau op zou kunnen treden. Smit vermeldt deze mogelijkheid wel maar geeft in het boek geen uitgewerkt voorbeeld. Naast het uiteenrafelen van bedrijfsprocessen besteedt Smit veel aandacht aan kwaliteitseisen. Dit valt echter buiten het bestek van dit onderzoek, hoewel het wel invloed heeft of kan hebben op de rol van Katalysator Objecten. Dit blijkt wel uit de te verrichten activiteiten om tot een Transformatie Model te komen:27 1. Inventariseren van alle mogelijke Input Objecten en Output Objecten. Vanuit deze inventarisatie krijgen we inzicht in alle mogelijke verbijzonderingen van het bedrijfsproces. 2. Achterhalen van alle in de continue dienst noodzakelijk te gebruiken Katalysator Objecten. 3. Achterhalen van de kwaliteitseisen die aan de objecten en processen worden gesteld. We sluiten de fase ‘Continue Dienst’ af door de objecten eenduidig te beschrijven, de bijbehorende kwaliteitseisen worden daarbij vastgelegd. Ook worden de kwaliteitseisen op procesniveau beschreven. 4. Achterhalen of alle benodigde Initiële Diensten door de opdrachtgever zijn onderkend. 5. Maken van de modellen voor de Initiële Diensten zowel voor het aanmaken, wijzigen als voor het vernietigen van het object. 6. Verifiëren of voor alle secundaire Output Objecten bedrijfsprocessen bestaan. 7. Achterhalen van de kwaliteitseisen van de Initiële Diensten en de hierbij horende objecten. We sluiten de fase ‘Initiële Diensten’ af door de objecten eenduidig te beschrijven, de bijbehorende kwaliteitseisen worden daarbij vastgelegd. Ook worden de kwaliteitseisen op procesniveau beschreven.
3.1.2 Voorbeeld businesscase met Transformatie Modellen Smit heeft ten behoeve van dit project een voorbeeld gemaakt voor een Loyalty Programma.28 Een bedrijf levert verschillende diensten [elektriciteit, gas, Radio/TV 26
Hoger en lager slaan hier op de volgorde Continue [hoogst], Initiële en Aanleverende Dienst [laagst].
27
Smit, BPV, 45-51. Waar de stappen bij Afbeelding 3 vooral uitgaan van een reeds onderkende indeling in drie diensten [Continue, Initiële en Aanleverende Dienst] gaat deze activiteitenlijst meer in op het proces om hiertoe te komen en de rol van kwaliteitseisen daarbij. 28
De gedetailleerde gegevens zijn, marginaal bewerkt, opgenomen in Annex B Loyalty Programma. Het zou beter zijn te spreken van een loyaliteitsprogramma. Omdat dit voorbeeld in eerste instantie is gemaakt als illustratie bij het ICEIS artikel [Annex D ICEIS bijdrage] is toch voor de Engelse term gekozen.
BPV Testing Before Designing
16
BPV modellen signalen, internet, mobiele telefonie, enz.] en heeft naast klanten met een bekend adres ook klanten waarvan niet bekend is of het adres klopt dan wel meerdere keren voor komt met daarbij al dan niet foutieve adressen. Er zijn verschillende relaties met een klant: als gebruiker, betaler of contractant. Met het Loyalty Programma wil het bedrijf de klantbinding zelf versterken en de klantrelatie beter leren kennen voor gerichte benadering. Men denkt dit te bereiken via het begrip huishouden, beschreven als een verzameling klanten die op één adres woont. Dit met een hoofd van het huishouden als degene aan wie de bonussen worden toegekend die het Loyalty Programma biedt. Hiervoor zijn in grote lijnen de volgende processen gedefinieerd: 1. Bepaal de hoofden van de huishoudens en schrijf deze aan. 2. De hoofden van de huishoudens melden zich via het internet aan. Zij kunnen een Loyalty contract aanvragen. Ook kunnen zij bepalen welke door hun afgenomen diensten onder dit contract komen te vallen. 3. Elke betaling op een dienst levert een x-aantal spaarpunten op. Deze worden toegevoegd aan het totale saldo. 4. Het hoofd van het huishouden kan de gespaarde punten gebruiken voor het verkrijgen van cadeaus of korting op een factuur.
Afbeelding 4 Het Transformatie Model voor het Loyalty Programma met van boven naar beneden een Continue Dienst, Initiële dienst en Aanleverende Dienst. De horizontale lijnen geven de bedrijfsprocessen aan waarbij de Output Objecten en Verwijderde Objecten [aangegeven met een diagonaal kruis door de tekst] al dan niet worden gerealiseerd door de waarden van de Katalysator Objecten [verbonden met een verticale pijl] die zelf weer Output Objecten op een lager niveau kunnen zijn. De grote pijl rechtsonder buitenom geeft aan dat een Output Object op een hoger niveau ook dienst kan doen als Katalysator Object op een lager niveau.
BPV Testing Before Designing
17
BPV modellen In Afbeelding 429 zijn drie wensen uitgewerkt – die als Input Object voor de bijbehorende bedrijfsprocessen fungeren – op de drie niveaus Continue Dienst, Initiële Dienst en Aanleverende Dienst. In feite is er nog een bovenliggende wens – hier niet genoemd – waar het eigenlijk om draait: namelijk vanuit de organisatie de Wens zoveel mogelijk producten/diensten af te zetten (binnen één gezin). Daarmee zou de Wens aanvullen Loyalty contract een Initiële Dienst worden voor het primaire bedrijfsproces Wens zoveel mogelijk producten of diensten afzetten, al dan niet binnen één gezin. 3.1.3 Verdere invulling van het Transformatie Model Na langdurige discussies was de conclusie dat de attributes of waardes van een Output Object niet zouden moeten worden gewijzigd. Als voorbeeld: een contract kan worden aangevuld of gewijzigd. Bij een juiste toepassing zou dan het oude contract moeten worden verwijderd en een nieuw worden aangemaakt. Hierdoor wordt dus een bestaand object vernietigd [dit is dan een Verwijderd Object] en ontstaat dan een nieuw Output Object, het nieuwe contract.30 Een Potentiële klant kan een echte Klant worden.31 Er lijken nog geen eenduidige criteria te bestaan wanneer de ene – eerder wel gehanteerde – situatie [wijziging] of de andere [vernietiging en (nieuw) ontstaan] zou gelden. Ook is in de bestaande schema’s niet altijd duidelijk of het over een nieuw dan wel een gewijzigd of aangepast Output Object gaat. Bovenstaande Afbeelding 4 heeft toch nog wel enkele vragen opgeroepen. Het Object Potentiële Loyalty klant lijkt links onderaan als Katalysator Object een duplicaat te zijn van het Output Object helemaal rechts.32 Het object Contractant van dienst A, B, C of D zal zeker als Katalysator Object op kunnen treden bij de Wens aanschrijven Loyalty klant. Minder duidelijk is nog wel waarom ditzelfde object ook als Output Object hierbij op kan treden. Het Output Object Contractant van dienst A, B, C of D bij Wens aanvullen Loyalty contract moet eigenlijk Contractant van dienst A, B, C of D met Loyalty Contract zijn. Voor het opzetten van het Transformatie Model waren er aanvankelijk ook nog onduidelijkheden. Smit verwijst naar Figuur 3.2 [Afbeelding 5] en geeft daarbij als derde stap in het proces om tot een goed Transformatie Model te komen:33 3
Vervolgens beoordelen we of de omgeving van invloed kan zijn op het Input Object. Als we Figuur 3.2 [Afbeelding 5] beschouwen kan men bijvoorbeeld eraan denken of de wens is geuit aan de balie of via Internet, vanuit het buitenland, door een vertegenwoordiger van de klant, enzovoort.34
29
Hierbij is Wens aanschrijven Loyalty klant duidelijk een wens vanuit de organisatie, terwijl de andere twee, Wens om Loyalty klant te worden en Wens aanvullen Loyalty contract uitgaan van de externe klant. Dit schema bevat nog wel enkele vraagtekens. Zo is het de vraag of de diverse Output Objecten Klant Mailing echt hetzelfde object vertegenwoordigen of dat hier sprake is van verschillende typen mailing aangepast aan of gewijzigd voor de situatie. Ook hier heeft het gemis aan toetsing in de praktijk zich doen voelen. 30
Smit geeft aan dat dit voor hem – mede door de discussies rond BPV in het kader van dit project – nu duidelijker is geworden en dat de methode op dit punt helderder dient te worden geformuleerd. 31
Het object Potentiële klant wordt dan weer verwijderd en het Output Object Klant aangemaakt.
32
Achteraf is geconstateerd dat het hier inderdaad om een niet gewenste verdubbeling gaat die meer verwarring zou kunnen scheppen dan iets toe te voegen. 33
Smit, BPV, 42.
34
Cursivering van omgeving is niet van Smit.
BPV Testing Before Designing
18
BPV modellen
factuur .......factuu Geleverd r product
klantwens
Product catalogus
Klant
Afbeelding 5 [Figuur 3.2 Transformatie Model bestelling en levering, Smit, BPV, 37]
Bovenstaande zinsnede is het onderwerp geweest van uitgebreide discussie met Klaas Smit. De vraag hierbij was of het dan gaat over verschillende klantwensen en dus verschillende bedrijfsprocessen of dat door de Katalysator Objecten, die aangeven wat voor soort klant het is, wordt bepaald welke Output Objecten op zullen treden. Het zou uiteindelijk toch niet zo moeten zijn dat attributes of waardes van de klantwens – als Input Object – bepalen welke Output Objecten wel of niet optreden. Ditzelfde geldt natuurlijk voor eventuele Verwijderde Objecten. De huidige gedachte is dat eventuele wensverfijningen uitsluitend het gevolg kunnen zijn van Katalysator Objecten. Er kunnen echter – eventueel achteraf – redenen zijn om van twee aparte bedrijfsprocessen uit te gaan of juist processen samen te voegen en via de Katalysator Objecten tot uitsplitsing over te gaan.35 Dit is vaak een iteratief proces waarbij beslissingen veelal pas worden genomen na opzetten van Dienst Modellen. Een voorbeeld ter verduidelijking van de diverse objecten riep daarbij mogelijk nog meer vragen op:36 In een koekjesfabriek bestaat naast vele andere processen ook een proces dat koekjes maakt. Input voor dit proces is onder andere meel (Input Object) en er komen uiteindelijk koekjes uit dit proces (Output Objecten). Wat voor type koekje eruit komt is afhankelijk van de ingrediënten (Input Objecten) maar ook van de vorm van de bakplaat (Katalysator Object).
Deze gedachtegang is echter inmiddels volledig verlaten. Voor het opzetten van het tool is daarom uitgegaan van het idee dat ieder bedrijfsproces slechts één Input Object kent, op te vatten als een klantwens. 3.2 Het Dienst Model Smit schrijft over het Dienstmodel:37 Voor elke in het Transformatie Model genoemd bedrijfsproces wordt een ‘Dienst Model’ gemaakt. Een dergelijk Dienst Model is eigenlijk niets anders dan een andere weergave van één enkel businessproces zoals dat beschreven is in de fase Transformatie Model. In de fase Dienst Model beschrijven we dus de diverse ‘Dienst Modellen’. Dit gaat als volgt: Het Input Object, op het niveau van de Continue Dienst vaak een klantwens, wordt tot in detail uitgesplitst. Dit uitsplitsen gebeurt zowel als gevolg van het bestaan van Katalysator Objecten als onder een verdere specificatie van het Input Object. (Figuur 2.3).38 Als ik bijvoorbeeld een wens heb 35
Dit proces vertoont gelijkenis met het normaliseren of denormaliseren van (relationele) databases.
36
Smit, BPV¸ 28.
37
Smit, BPV, 2.4 Het dienstmodel, 14-15.
38
In figuur 2.3 op bladzijde 15 is er één Input Object: Klant met boekleenwens.
BPV Testing Before Designing
19
BPV modellen om een boek te lenen bij de bibliotheek, dan zal als eerste worden beoordeeld of ik lid ben van de bibliotheek. Dit wordt gecontroleerd door middel van het Katalysator Object ‘bibliotheeklid’. Ben ik geen lid, dan mag ik van deze bibliotheek wel een boek lenen, maar zal ik mij dienen te legitimeren. Hiervoor heb ik een geldig legitimatiebewijs nodig. Het legitimeren doe ik bijvoorbeeld met mijn rijbewijs (Katalysator Object). Als dit proces is uitgevoerd is er een nieuw bedrijfsobject ontstaan, namelijk ‘een uitgeleend object aan een niet-bibliotheeklid’. Door het opstellen van het Dienst Model ontstaat er een classificatieboom. Per tak van deze boom wordt aangegeven welke Output Objecten er ontstaan. Als de transformatie veel Katalysator Objecten nodig heeft, of de wens behoeft een groot aantal uitsplitsingen (wensverfijning), zal het dienstmodel erg omvangrijk gaan worden. In hoofdstuk 5, dat het dienstmodel verder uitdiept, zal worden aangegeven hoe men een ongebreidelde uitbreiding kan voorkomen. Uitsplitsingen van de wens (of vertakkingen van een classificatieboom) treden op als gevolg een nadere specificatie van de wens of als gevolg van een Katalysator Object. Een extra voorbeeld van een splitsing ten gevolge van een wensverfijning is het volgende: “Ik betaal de borg voor het boek contant of met een VISA-kaart” Nog een voorbeeld van een splitsing ten gevolge van een Katalysator Object: “Ik heb wel of niet mijn lidmaatschapskaart bij me”.
In het bijzonder het laatste deel lijkt in eerste instantie meer een hoe-oplossing te bevatten dan een wat-vraag. Formeel gesproken zou men twee of meer aparte wensen kunnen formuleren, zoals:
Ik wil een boek lenen, maar ik ben nog geen lid en wil een borg – waarvan ik nu net hoor dat die in dit geval verplicht is – graag contant betalen.
Idem, maar ik wil dat kleine bedragje met een VISA-kaart betalen.
Idem, kan ik niet mijn (nep)horloge hier laten liggen en dan morgen terugkomen om te betalen? Etc.
Natuurlijk kunnen er (achteraf of in een volgende fase) redenen zijn om een bedrijfsproces op te splitsen in meerdere (deel)bedrijfsprocessen. Het lijkt echter zinvol het aantal alternatieven te beperken en via de Katalysator Objecten te bepalen welke Output Objecten worden gegenereerd. Overigens zal juist het onderkennen en definiëren van aanvullende bedrijfsprocessen een belangrijk element zijn waarbij het Transformatie Model en het Dienst Model het inzicht kunnen vergroten. Smit stelt hierover:39 De opsteller van het Dienst Model kan tijdens het vastleggen van deze classificatieboom controleren of de gewenste Output Objecten kunnen worden aangemaakt. Dit doet hij door middel van het beoordelen van de wensverfijningen en aanwezigheid van Katalysator Objecten. Immers, niet de wens alleen bepaalt of je een boek kan lenen. Het lenen wordt pas mogelijk als je of lid bent van de bibliotheek (een Katalysator Object) of voor een eenmalige uitlening, dat je je kunt legitimeren (een legitimatiebewijs als Katalysator Object).
Dit is ook op te vatten als één wens Wil boek lenen, waarbij het eerste Katalysator Object Lid bibliotheek bepaalt of een volgend Katalysator Object Legitimatiebewijs nodig is. Pas als de procedures voor het lenen van boeken of cd's totaal anders zijn zou kunnen worden overwogen hier twee wensen van te maken. Als klant ben je waarschijnlijk niet blij als je dit apart zou moeten laten verwerken en misschien wel twee keer in een rij gaan staan. We zijn dan mogelijk alweer met hoe-vragen bezig die op dit niveau nog niet zouden mogen spelen. Het normaliseren van 39
Smit, BPV, 15-16.
BPV Testing Before Designing
20
BPV modellen bedrijfsprocessen heeft echter meer aandacht gekregen door de vragen die tijdens dit project zijn gesteld. 3.2.1 Doel Dienst Model Smit komt tot vijf doelen van het Dienst Model:40 1. Nagaan of met behulp van wensverfijningen en Katalysator Objecten de Output Objecten kunnen worden aangemaakt. 2. Aanvullen en controleren op haalbaarheid van de kwaliteitseisen. Een en ander kan leiden tot de noodzaak extra processen in te richten. 3. Beoordelen of de eisen gesteld aan het proces door middel van de genoemde objecten met bijbehorende kwaliteitseisen haalbaar zijn. 4. Vaststellen of alle proceseisen zijn gesteld. 5. Aanmaken van logische procestestgevallen voor de goedsituatie.
Het geheel lijkt mogelijk toch nog gecompliceerder als we de voorbeelden in het boek van Smit bekijken. Figuur 5.2 [Afbeelding 6] is dan meteen een uitsplitsing van de wens zonder dat hier een Katalysator Object bij is betrokken. Wens lidmaatschap artotheek
Zakelijk lidmaatschap
Particulier lidmaatschap
Afbeelding 6 [Figuur 5.2 Classificatieboom artotheek (1), Smit, BPV, 57]
Op de volgende bladzijde in het boek wordt dit idee verder uitgewerkt. Deze kennelijke wensverfijning komt dan dieper in het schema te hangen. Zie Figuur 5.3 [Afbeelding 7]. De keuzes Particulier lidmaatschap en Zakelijk lidmaatschap hangen daar dan niet van een Katalysator Object af. Bij alle andere keuzes of vertakkingen is wel een Katalysator Object aangegeven. In dit geval zijn er wel slechts enkelvoudige pijlen, uitgaande van het Katalysator Object en geen tweezijdige zoals in Figuur 4.1 [Afbeelding 3].41 In lijn met het nieuwe inzicht is ook voor het tool uitgegaan van één Input Object per bedrijfsproces en vertakkingen in de boom kunnen uitsluitend optreden als gevolg van Katalysator Objecten. Een verdeling over meerdere bedrijfsprocessen, al dan niet achteraf, blijft natuurlijk mogelijk.
40
Smit, BPV, 16-18.
41
In het tool is er na lange discussie voor gekozen elke classificatie [een vertakking in twee of meer keuzes] af de laten hangen van een (eventueel kunstmatig) Katalysator Object. Het aantal Katalysator Objecten zou hierdoor mogelijk groter kunnen worden. Bijvoorbeeld Particulier lidmaatschap? Met keuzes ja en nee en die laatste keuze gevolgd door Zakelijk lidmaatschap? opnieuw met ja en nee.
BPV Testing Before Designing
21
BPV modellen
Wens lidmaatschap artotheek
Geen legitimatie
legitimatiebewijs
Wel legitimatie
Wel lid
Artotheeklid
Geen lid
Geen beletsel
Particulier lidmaatschap
Wel KvKdocument
Beletsel lid
Wel beletsel
Geldig KvKdocument
Zakelijk lidmaatschap
Geen KvKdocument
Afbeelding 7 [Figuur 5.3 Classificatieboom artotheek (2), Smit, BPV, 58] De rechthoeken met afgeronde hoeken vertegenwoordigen de Katalysator Objecten.
BPV Testing Before Designing
22
Het BPV objectenmodel
4 Het BPV objectenmodel De BPV-methode kent zoals hiervoor aangegeven verschillende Modellen. De eerste lagen, het Transformatie Model en het Dienst Model richten zich vooral op de watvraag en niet op het hoe.42 Pas in het IT/AO Model, géén onderwerp van deze studie, komen sequence diagrammen aan de orde. In het Transformatie Model gaat het om de identificatie van alle objecten die bij de verschillende bedrijfsprocessen een rol spelen. Het betreft hier dus een limitatieve opsomming zonder volgorde. Wel wordt al een onderscheid gemaakt in Input Objecten – een wens van een al dan niet interne klant of idee van de opdrachtgever vertegenwoordigend – en andere Proces Objecten.43 In het Dienst Model volgt dan een classificatie opgezet als een boom, resulterende in verschillende takken of paden, waarbij de kwaliteitseisen – tevens veelal acceptatie criteria – bepalen welke objecten bij een bepaalde tak zijn betrokken. Per (deel)bedrijfsproces is er een apart Transformatie Model. Dit wordt dan omgezet in een Dienst Model. De roemruchte Initiële Diensten en Aanleverende Diensten zijn hierbij in feite aparte bedrijfsprocessen. Specifiek bij de Dienst Modellen speelt een speciaal soort Proces Objecten, de Katalysator Objecten44 een belangrijke rol. De waarde hiervan is dan bepalend welke andere Proces Objecten in een bepaalde tak zullen voorkomen. De classificatie wordt nadrukkelijk opgezet als een boom [tree] en dus niet als een graaf [graph]. Omdat op dit niveau tijd nog geen rol speelt – en dus ook niet volgorde of eventuele parallelle uitvoering – kunnen de verschillende objecten op een willekeurige plaats in de boom worden gezet, zolang maar met een Input Object als wortel [root] wordt begonnen. 4.1 Regels voor objecten(verzamelingen) Er zijn diverse sessies georganiseerd waarbij ook de ontwerper van de methode, Klaas Smit, aanwezig was. Na langdurige discussie zijn blijkbaar de volgende regels – te hanteren bij het tool – naar voren gekomen. Gedeeltelijk zijn dit regels die via een formele notatie zijn weer te geven. 4.1.1 Objecten Transformatie Model Tijdens de fase Transformatie Model moeten alle objecten zijn geïdentificeerd, dit inclusief eventuele aanvankelijke duplicaten binnen de totale verzameling te beschouwen bedrijfsprocessen. Na afloop zou een complete, unieke verzameling objecten over moeten blijven. 42
Het gaat er om eerst vast te stellen wat er moet worden geautomatiseerd en pas daarná hoe dit gebeurt. Het grote risico is immers dat er teveel in (mogelijke) oplossingen wordt gedacht zonder de wensen of eisen eerst te formuleren. Een bekend voorbeeld uit een andere sector was de vraag van de generaals naar steeds zwaardere en krachtigere tanks. Wat wilde men bereiken? Uitschakelen van de tank van de tegenstander, was het antwoord. Het resultaat was uiteindelijk de gevechtshelikopter die veel wendbaarder is en gemakkelijker in te zetten. 43
Hoewel een Input Object natuurlijk ook bij een bedrijfsproces behoort, is er hier voor gekozen Proces Object als verzamelnaam te kiezen voor Katalysator Objecten, Output Objecten en Verwijderde Objecten.
44
Hier wordt de term Katalysator Object of {k} object gebruikt. Klaas Smit hanteert in zijn boek hiervoor veelal het begrip Business Object. Verwijderde Objecten of {x}objecten worden niet met name genoemd door Smit. Hierdoor is het ook niet duidelijk of dit alleen (voormalige) Output Objecten, Katalysator Objecten of beide kunnen zijn. Hier wordt de verzameling van {k}, {o} en {x} objecten veelal aangeduid als Proces Objecten.
BPV Testing Before Designing
24
Het BPV objectenmodel We gaan uit van de businesscase die resulteert in een verzameling (relevante) bedrijfsprocessen. De objectenverzameling behoort dan bij de verzameling bedrijfsprocessen. Er is een verzameling bedrijfsprocessen: P = { p1, p2, … ,pm }
(1)
Daarnaast is er een verzameling objecten: V = { v1, v2, … ,vn }
(2)
Verder is er een relatie rol: rol ⊆ P x V x {i, k, o, x}
(3)
De objecten kunnen dus verschillende rollen45 hebben bij de te onderscheiden bedrijfsprocessen. Zelfs binnen hetzelfde bedrijfsproces kan een object in meerdere rollen opereren. De rollen zijn i voor Input Object [ook wel aan te duiden als {i} object], k voor Katalysator Object [of {k} object], o voor Output Object [of {o} object] en x voor Verwijderd Object [of {x} object]. Voor ieder te beschouwen bedrijfsproces geldt: ∀p ∈ P [∃v.(v ∈V ∧ rol ( p, v, i ) ∧ ∀v1 , v2 .(v1 , v2 ∈V ∧ rol ( p, v1 , i ) ∧ rol ( p, v2 , i ) ⇒ v1 = v2 )] (4) Er is dus exact één {i} object per te beschouwen bedrijfsproces dat dan later in één Dienst Model – in de vorm van een classificatieboom – resulteert.46 Bij ieder bedrijfsproces p en Input Object v hoort dan minstens één {o} object óf {x} object. Dus: ∀p ∈ P [∃v. (v ∈V ∧ (rol ( p, v, o) ∨ rol ( p, v, x))] (5) met P ≠ {Ø} en V ≠ {Ø}. 4.1.2 Objecten in het Dienst Model Bij het Dienst Model gaat het niet alleen om de losse objecten maar moet een classificatieboom worden opgesteld. De boom heeft het Input Object als een wortel. (4) garandeert dan dat er een Input Object bestaat voor elk bedrijfsproces en dat dit uniek is. Indien er geen enkel {k} object is bij een {i} object bestaat het bedrijfsproces slechts uit één tak en is dan in feite triviaal. Als er een {k} object aanwezig is binnen een gegeven bedrijfsproces, dan moet minstens één {o} object of {x} object hiermee verbonden zijn.47 Dit is overigens al vereist volgens (5). Ieder {k} object moet in de classificatieboom van het Dienst Model worden gevolgd door minstens twee classificatiekeuzes die beide door minstens één Proces Object moeten worden gevolgd. Indien die identiek zijn, zonder dat er andere Proces Objecten in de direct volgende takken aanwezig zijn, resulteert ook dit in een triviaal geval. Het {k} object is dan immers overbodig. Bovenstaande discussie kunnen we dan als volgt formaliseren. Uit de objecten verzameling gedefinieerd bij het Transformatie Model kiezen we die objecten die
45
Men zou dit ook op kunnen vatten als verschillende eigenschappen [properties] of kenmerken [attributes] van een object. Ofschoon deze woorden in de IT-wereld soms met verschillende betekenis worden gehanteerd zijn het in feite synoniemen waartoe ook karakteristiek [caracteristic] behoort.
∀p ∈ P [∃1v.(v ∈V ∧ rol (v, p, i )] .
46
Een andere (soms gehanteerde) schrijfwijze is
47
We gaan er hierbij (impliciet) van uit dat de {k}objecten ook in de boom zijn opgenomen.
BPV Testing Before Designing
25
Het BPV objectenmodel
voor een specifiek bedrijfsproces van belang zijn. Gegeven een bedrijfsproces p definiëren we de verzameling objecten relevant voor p als (6)
relobj ( p ) = {(v, l ) | v ∈V ∧ l ∈{i, k, o, x} ∧ rol ( p, v, l )
Het Dienst Model zelf kunnen we dan weergeven als een tree [boom] met nodes [knopen] relobj(p) en edges [kanten] E. (7)
DM ( p) = relobj ( p), E waarbij geldt: ∀(v, l ) ∈ relobj ( p ).(l = i ⇔ (v, l ) = root ( DM ( p )))
(8a)
en: ∀(v, l ) ∈ relobj ( p ).(l = k ⇔
∃(v1 , l1 ), (v2 , l2 ) ∈ relobj ( p) ∧ l1 , l2 ∈ {k, o, x} ∧ (v1 ≠ v2 ∨ l1 ≠ l2 ) ∧ (v, v1 ) ∈ E ∧ (v, v2 ) ∈ E ) (8b) In (4) was al aangegeven dat er slechts één {i} object per bedrijfsproces p is. Met (8a) geven we dan aan dat dit de root [wortel] is van de tree [boom]. Via (8b) worden minstens twee verschillende {k}, {o} en/of {x} objecten met een {k} object
verbonden.48 4.1.3 Bestaande conventies Bij de verdere uitwerking binnen het tool is rekening gehouden met de bij Atos Origin gehanteerde conventies. In het boek worden de Katalysator Objecten volledig buiten de boom aangegeven zoals in Figuur 5.3 [Afbeelding 7 hierboven]. In de bomen zoals die bij Atos Origin met de hand werden opgezet in allCLEAR49 zijn de Katalysator Objecten als een soort zijtak aangegeven. Men zou hier mogelijk een ruit als beslispunt hebben verwacht. Om niet de indruk te geven dat het een stroomdiagram betreft is hier kennelijk bij Atos Origin van afgezien.
48
Dit betekent dus dat het óf twee verschillende Proces Objecten zijn óf als dit hetzelfde object is dat de rollen verschillend zijn. 49
De helpfile van allCLEAR vermeldt: allCLEAR provides a powerful system for visualizing and analyzing processes. First, you represent your process using allCLEAR's simple scripting feature. Use a few basic commands and punctuation marks that act to control the hierarchy of your script, and allCLEAR draws the diagram for you as you work. Or, if you prefer, simply drag clusters from the Diagrammer into the diagram window, and allCLEAR connects the boxes and formats them into a neat, legible diagram. It rearranges boxes and lines, automatically making room for new ones as you add them. You need not draw a single line or box. Next, you enter data fields that are associated with your process. For example, you may want to track the number of hours it takes to complete a step and the cost associated with each hour. You can also calculate additional fields, such as the cost per step (for example, hours x cost per hour). Then, using the Analyzer version of allCLEAR, you analyze or simulate your process. You can explore all of the various paths in your processes, perhaps adjusting the probability that a certain path will be followed. allCLEAR collects and organizes your results, helping you to spot critical and optimal paths. Finally, you can perform "what-if" analyses--adjust your process diagram and analyze it to explore how changes to various steps might affect the process. For example, you might explore how increasing the number of assembly stations would affect your assembly line's overall efficiency.
Bij Atos Origin werd/wordt het echter uitsluitend gebruikt als een hulpmiddel om tekeningen te maken.
BPV Testing Before Designing
26
Het BPV objectenmodel
Bij de standaard instellingen van allCLEAR komen er echter pijltjes die dan weer wel de indruk geven dat het om een stroomdiagram gaat. Daarbij loopt er ook nog een pijl naar de Katalysator Objecten toe en blijven bepaalde tekens die een specifieke betekenis hebben voor de besturing staan, zoals & \ en . [punt]. Zie Afbeelding 8. Dit bleek echter niet de bedoeling te zijn. De instellingen van allCLEAR zijn daarom gewijzigd zodat alle pijlpunten en punctuation niet worden weergegeven in de tekeningen. 4.1.4 Voorgestelde conventies Verschillende andere conventies voor de figuren per object of classificatie keuze zijn voorgesteld. Er bleek echter een sterke voorkeur te bestaan voor de driehoek bij het Input Object én de keuzes, evenals een cilinder náást de boom voor de Katalysator Objecten. Voor Output Objecten en Verwijderde Objecten is de vorm van een figuur vrij gelaten.50 Het is mogelijk input data voor allCLEAR ondermeer te importeren uit een Excel bestand.51 Hierbij zijn er wel diverse regels die beperken hoe een boom er uit kan zien, zowel qua structuur als te gebruiken figuren. Dit heeft ook invloed gehad op de manier waarop bomen worden gegenereerd met het tool.
Afbeelding 8 Voorbeeld van een Dienst Model in allCLEAR zoals werd gehanteerd bij Atos Origin. Het Input Object en de keuzes worden weergegeven door driehoeken, de Katalysator Objecten door cilinders en Output Objecten door rechthoeken met links en rechts een verticale streep.
50
In principe zou een programma als Visio ook voor het tekenen van de bomen in aanmerking kunnen komen. Hier is immers ook Excel als dataleverancier te gebruiken. Er zijn wel enkele testen met Visio uitgevoerd maar die leverden in eerste instantie afwijkende figuren op. Daarom is hier verder van af gezien. Het lijkt echter realiseerbaar met het tool ook de data voor import in Visio klaar te maken. 51
Datzelfde geldt voor Visio waar in eerste instantie aan werd gedacht.
BPV Testing Before Designing
27
Het BPV objectenmodel
De gedachtegang voor opbouw en gebruik van het tool is dat alle unieke objecten die een rol spelen binnen een project –, al dan niet in verschillende bedrijfsprocessen – zijn geïdentificeerd binnen het Transformatie Model.52 Tevens worden dan de (mogelijke) rollen vastgelegd.53 Een totaal overzicht van objecten en rollen vormt zo de basis voor het tool. Zie ook Afbeelding 9.
52
In de praktijk zullen er meerdere bedrijfsprocessen een rol spelen binnen één businesscase. Het is daarom niet zeker of er kan worden gesproken over één Transformatie Model of een verzameling modellen. 53
In het tool kan worden gecontroleerd of de namen van Proces Objecten uniek zijn. Daarnaast wordt ook nog voor de veiligheid gesignaleerd dat de Proces Objecten mailing en ma iling in Afbeelding 9 op spaties na identiek zijn. Vooral eventuele spaties achter een naam kunnen gemakkelijk tot vergissingen leiden.
BPV Testing Before Designing
28
Het tool
5 Het tool De praktische details van het tool, de diverse mogelijkheden en de bijbehorende controles zijn uitgebreid beschreven in Annex C Handleiding gebruik BPV Tool. Op deze plaats zal dit dan ook niet diepgaand worden behandeld. Wel is het zinvol naast de hoofdlijnen ook enkele overwegingen in ogenschouw te nemen.
Afbeelding 9 Voorbeeld objecten overzicht in het tool op het Excel werkblad Transformation
Het hoofddoel is om vanuit het overzicht van objecten en rollen op een efficiënte wijze de classificatiebomen binnen het Dienst Model te genereren die in feite alle mogelijke testpaden identificeren. Er wordt hierbij per rij [zie Afbeelding 9] een Dienst Model opgesteld. 5.1 Gemaakte keuzes en opbouw van het tool Zoals in 4.1.3 al aangegeven is gebruik gemaakt van allCLEAR om de tekeningen van de classificatiebomen te tekenen. Data import is daarbij mogelijk vanuit Excel. Waar hier aan een prototype werd gedacht – en het nog niet zeker was of het beoogde doel realiseerbaar was – is om praktische redenen voor Excel gekozen. De auteur heeft hiermee redelijk wat ervaring. Excel biedt de mogelijkheid verschillende werkbladen te gebruiken. Bij Atos Origin was al een Excel bestand in gebruik met de objecten gerangschikt als in Afbeelding 9. Dit is dan ook met marginale aanpassingen als uitgangspunt genomen. Omdat dit de vertaling is van het Transformatie Model is de (Engelse) naam Transformation voor dit werkblad gekozen. Voor het opzetten van de classificatieboom is een apart werkblad Service gekozen waarop een gestileerd visueel zicht op de horizontaal geplaatste boom mogelijk is.54 De resultaten worden overgebracht naar een werkblad Tree dat dan in (verticale) tabelvorm de input data voor allCLEAR bevat.
54
Hoewel in de uiteindelijke tekeningen in allCLEAR de {k} opjecten nasast de boom worden getekend, worden ze hier gewoon binnen de boom opgenomen. Dit geldt ook voor de verschillende keuzes of waarden die bij een {k} object behoren. In het objecten model van hoofdstuk 0 zijn die keuzes niet meegenomen waardoor daar twee {k} objecten direct achter elkaar kunnen staan, overigens wel resulterend in meerdere takken. De boom op het blad Service ligt een beetje schuin doordat elke vertakking steeds lager komt dan het deel ervoor [eigenlijk het deel links ervan].
BPV Testing Before Designing
30
Het tool
Een extra (tussen)blad Admin is gebruikt om enkele controles uit te voeren en te bepalen voor welke rij [bedrijfsproces] een classificatieboom moet worden opgebouwd. 5.2 Werkblad Transformation Volgens de gebruikers bij Atos Origin zou een aantal van 150 Proces Objecten ruim voldoende zijn voor een groot project waarbij meerdere Input Objecten, wel één per bedrijfsproces, een rol zullen spelen.55 Mede op grond hiervan – en het gebruik van nagenoeg identieke tabellen bij Atos Origin – is in Excel gebruik gemaakt van een plaatsing van de Proces Objecten in kolommen en de Input Objecten in rijen. In iedere rij met een {i} object kan dan via een combinatie van k, o en x worden aangegeven dat het betreffende Proces Object een rol speelt in het bedrijfsproces. In Afbeelding 9 is er voor de drie daar genoemde bedrijfsprocessen steeds een ander gebruik van het Proces Object Potential Participant.56 In eerste instantie is gekeken of een enkelvoudige boom – dus nog zonder vertakkingen – zou kunnen worden gegenereerd die als input voor allCLEAR kan worden gebruikt en die de door Atos Origin gehanteerde – hierboven beschreven – conventies volgt. Deze wijken immers af van wat veelal op dit gebied gebruikelijk is. Een tweede door mijzelf gestelde vraag hierbij was of dit mogelijk zou zijn met uitsluitend Excel formules, dus zonder gebruik van macro’s of VBA.57 Dit omdat formules het kenmerk en de kracht van Excel zijn. Doordat Excel slechts 8 niveaus van nesting toestaat zijn de formules in drie stappen opgebouwd. Naderhand is geen poging meer ondernomen dit eventueel verder te optimaliseren. Het idee was wel dat door invullen van een rijnummer de enkelvoudige boom voor het betreffende proces direct wordt weergegeven.58 5.3 Werkblad Admin Het instellen van het rijnummer – daarmee de keuze voor een specifiek bedrijfsproces – en het opbouwen van de enkelvoudige boom gebeuren op een Excel werkblad Admin. Op dit blad zijn twee knoppen aangebracht. De ene knop is voor het controleren van de Proces Objecten verzameling en de andere zet de objecten over naar een werkblad Service59 dat wordt gebruikt voor het opzetten van de classificatiebomen.60 Het aantal controles, de hoeveelheid boodschappen e.d. is voortdurend tijdens het proces uitgebreid op grond van reacties van de eerste gebruikers. Het lijkt mij overigens niet onaannemelijk dat veelvuldige gebruikers dit als overkill zouden gaan 55
Voor een definitief tool zou zo’n beperking niet moeten gelden.
56
In hoeverre alle waarden van het voorbeeld hier ook logisch zijn is in dit verband minder relevant.
57
Zie kolom A in Afbeelding 10.
58
Pas in een latere instantie zijn controles ingebouwd ter controle of een getal is ingevoerd en dit een geldig rijnummer is. Door deze enkelvoudige boom in allCLEAR te importeren is direct een grafisch objecten overzicht beschikbaar. 59
Als Engelse vertaling van Dienst Model is aanvankelijk Service Model gebruikt, later gewijzigd in Service Object Model. Op het werkblad Service wordt de classificatieboom van het Dienst Model opgezet. 60
Vanaf dit punt bleken uitsluitend Excel formules onvoldoende en is VBA [Visual Basic for Applications] gebruikt. Het eerste deel is wel als formules gehandhaafd zodat dit altijd geldig is terwijl voor VBA macro’s moeten zijn ingeschakeld.
BPV Testing Before Designing
31
Het tool
ervaren. Wel is getracht ook rapporten, voorzien van datum en tijd, in het bestand op te slaan waardoor versiecontrole [configuration management] mogelijk is.61 Er is voor gekozen de vormen van de verschillende objecten in de allCLEAR tekeningen aan te geven via een getal. Dit biedt de mogelijkheid de waarden hiervan eenvoudig aan te passen in een tabel op het blad Admin. Zie Afbeelding 10. Ditzelfde geldt voor de wijze van vertakking bij de meervoudige bomen.62 Eventuele problemen die zouden kunnen ontstaan indien een tekening gemaakt met allCLEAR niet op één blad kan worden afgedrukt zijn ook niet verder bekeken.63
Afbeelding 10 Gedeelte van het werkblad Admin
5.4 Opbouwen boom op werkblad Service Er is voor gekozen te starten met een enkelvoudige boom en die horizontaal op te zetten op het blad Service. Dus het {i} object komt altijd in cel A1 en de andere objecten hier direct op volgend in rij 1. De bij een bepaald bedrijfsproces behorende objecten worden rechts van het {i} object geplaatst in dezelfde volgorde als op het werkblad Transformation. Zie ook Afbeelding 9. Hierbij geldt echter wel dat eerst alle {k} objecten worden geplaatst, vervolgens alle {o} objecten en als laatste de {x} objecten. Proces Objecten met meerdere rollen zullen op deze manier ook binnen elke relevante klasse worden geplaatst.64 Zie Afbeelding 11 voor het Proces Object 61
Dit laatste natuurlijk vooral indien ze regelmatig worden afgedrukt. Overschrijving bij nieuw gebruik van een blad voor een volgende boom is namelijk de normale gang van zaken. Binnen één Excel bestand kunnen echter wel meerdere bomen op verschillende bladen worden opgezet. Na de controle op het werkblad Admin wordt een (nieuw) werkblad Check aangemaakt met daarom een overzicht van (mogelijke) naamconflicten voor Proces Objecten en een overzicht van al deze objecten met hun verschillende rollen. Voor een voorbeeld zie Annex C Handleiding gebruik BPV Tool, Bijlage 2 Voorbeeld controlelijst [ blz. 104]. 62
De bedoelde functionaliteit van allCLEAR wordt hier overigens – in lijn met het bestaande gebruik bij Atos Origin – behoorlijk geweld aangedaan doordat een combinatie van een stroomdiagram – maar dan zonder beslisruiten – én een organisatieschema wordt gebruikt. De opzij geplaatste assistent uit het organisatieschema fungeert als Katalysator Object. 63
Het is gebruikelijk bij Atos Origin verschillende bladen gewoon met de hand aan elkaar te plakken. Anderzijds beschikt men over de mogelijkheid om op A0 formaat af te drukken waardoor het aantal vellen ook minder wordt. 64
In feite wordt hier horizontaal dezelfde volgorde aangehouden als verticaal op blad Admin in kolom A. Zie Afbeelding 10. De volgorde van de rollen is vast en hangt dus niet af van de volgorde van de rolcodes in de cellen op het blad Transformation. Zie daarvoor Afbeelding 9. De combinatie ko geeft daarom hetzelfde resultaat als ok.
BPV Testing Before Designing
32
Het tool
Potential participant. Bij elk object wordt de rol vóór de naam gezet. Tevens wordt bij het {i} object achteraan het rijnummer – volgens het blad Transformation – opgenomen.
Afbeelding 11 Voorbeeld uitgangspositie met een Proces Object in twee rollen
5.4.1 Praktische maatregelen Om vergissingen te voorkomen en de consistentie beter te kunnen bewaren zijn alle Excel werkbladen – behalve Transformation – in principe beveiligd. Alle handelingen voor het moduleren, de boom opbouwen, dienen daarom via specifieke commando’s plaats te vinden. Hoewel de {k} objecten ook in de uiteindelijke allCLEAR tekeningen naast de
boom worden getekend en de keuzes binnen de boom is er voor gekozen om op het werkblad Service alle elementen – objecten én keuzes – binnen de boom op te nemen. Voor de overzichtelijkheid wordt echter bij elke vertakking – ná een {k} object – de (horizontaal georiënteerde) boom één rij lager voortgezet. Zie Afbeelding 12. Aanvankelijk was het idee van de eerste gebruikers – eigenlijk testers – dat men classificaties van links naar rechts aan zou brengen. Bij meerdere keuzes na een {k} object worden alle objecten rechts hiervan gekopieerd naar alle takken. Een reeds gedeeltelijk vertakt en zonodig gesnoeid of aangepast deel kopiëren blijkt dan vaak sneller te werken. 5.4.2 Keuzes aanbrengen op het blad Service Door met de rechter muisknop op een {k} object te klikken opent een venster voor een waarde [tekst] van de keuze. Alle objecten rechts van het betreffende {k} object worden dan één rij naar onder en één kolom naar rechts verschoven. Een tweede keuze is verplicht, meerdere zijn optioneel. Bij iedere volgende keuze wordt de gehele rechter tak weer gekopieerd achter deze nieuwe keuze. Zie Afbeelding 12.
Afbeelding 12 Voorbeeld van gekopieerde, nog niet verder aangepaste takken
Als er rechts al een vertakking is dan wordt de gehele vertakking gekopieerd. Omdat op dit niveau de volgorde nog geen rol speelt kan het dus zinvol zijn juist eerst meer
BPV Testing Before Designing
33
Het tool
naar rechts uitsplitsingen te maken. Dit omdat dan bij een splitsing aan te brengen meer naar links – dus dichter bij het {i} object –de gehele tak wordt meegenomen.65 5.4.3 Volgorde Proces Objecten Het is vaak een nuttige strategie om zeker {o} objecten die in een bepaalde tak steeds optreden zoveel mogelijk eerst naar links te verplaatsen. Een {o} object dat altijd optreedt, zou dan direct na het {i} object worden geplaatst, dus vóór enig {k} object. In feite geldt hetzelfde voor een {x} object. Hier zal echter zeker bij opdrachtgevers mogelijk een onaangenaam gevoel op kunnen treden als een object al is verwijderd dat verderop in de classificatieboom nog een rol speelt als {k} object of zelfs theoretisch {o} object.66 Waar hier officieel volgorde en tijd nog geen rol spelen moet dit toch allemaal mogelijk zijn. In hoeverre dit voor verdere sequence diagrammen van het IT/AO Model consequenties kan hebben valt buiten het kader van dit onderzoek maar blijft wel een punt van zorg. Smit onderkent ook al het belang van de volgorde waarin bomen worden opgebouwd. Hij zegt over het opzetten van leesbare classificatiebomen:67 Objectsplitsingen die tot het niet aanmaken van de beoogde Output Objecten leiden, moeten zo hoog mogelijk in de classificatieboom zijn opgenomen. Anders geformuleerd: splitsingen die tot de minste vertakkingen leiden kunnen het beste zo hoog mogelijk in de boom worden opgenomen. Een brede classificatieboom kan een oorzaak zijn van het onhandig opstellen van de boom of het verweven van twee of meer processen. Dit laatste is een fout. Zijn deze oorzaken niet aan de orde (de oorzaak is in dit geval veelal de noodzakelijkheid wensspecificaties te detailleren), dan is het gebruiken van high-level classificatiebomen – met verwijzingen - aan te raden.68
5.4.4 Wijzigen volgorde, toevoegen en verwijderen Proces Objecten De volgorde van objecten – op het Service blad – moet kunnen worden gewijzigd. Hiertoe kunnen twee Proces Objecten in dezelfde rij worden omgewisseld. Op deze manier kan geen gebruik worden gemaakt van objecten die verderop al in een vertakking zijn opgenomen.69 Elk Proces Object mag immers maar één keer voorkomen op elk pad van de wortel [het {i} object] tot een willekeurig blad [het eindpunt van elke tak].
65
Rechts van een {k} object met keuzes komt \ # \ te staan. Hieronder staan tussen dikke horizontale strepen de verschillende keuzes. Een lichtblauw gekleurd vlak geeft aan tot hoever de onderste tak loopt. Deze kenmerken worden gebruikt bij uitbreidingen, verwijderingen en controles vóór over brengen naar Tree… bladen. Zie ook kolommen C en F in Afbeelding 12. 66
Dit zou overigens een reden kunnen zijn niet van een Verwijderd Object maar van een Te verwijderen [of Te vernietigen] Object te spreken. 67
Smit, BPV, 64-67.
68
In het boek is geen voorbeeld aanwezig dat de high-level classificatieboom – met verwijzingen – verduidelijkt. Dit soort zaken is dan ook niet opgenomen in het tool. Een boom opzetten met uiteindelijk over de 1000 takken is echter in principe een zeer eenvoudige taak met het tool door de kopieerfunctie. Het verwijderen en eventueel elders weer toevoegen van Proces Objecten vergt dan nog de meeste tijd.
69
Deze staan immers minstens één rij lager.
BPV Testing Before Designing
34
Het tool
Vertakkingen staan altijd lager dan de hoofdtak
Afbeelding 13 Een {k} object met drie keuzes
In het voorbeeld van Afbeelding 13 zijn na het {k} object 3 keuzes ingevoegd en intussen de objecten hierachter gemanipuleerd. Naast het omwisselen kunnen objecten ook worden verwijderd en vrije objecten weer worden ingevoegd. Een vrij object is een Proces Object dat: Nog nergens is gebruikt vanaf het object of de keuze waar achter [naar rechts] een object zou moeten worden ingevoegd tot aan het {i} object [de hoofdtak]. Evenmin nergens is gebruikt in enige van de al aanwezige takken rechts van dit object of de keuze. Na overleg is besloten dat direct rechts van een {k} object waaraan al keuzes zijn verbonden een vrij {k} object mag worden ingevoegd. Omdat het niet zeker is dat de waardes [tekst] van de keuzes hierdoor ongewijzigd kunnen blijven, zullen die keuzes vooraan worden gemerkt met de string ##!##. Zie Afbeelding 14. Andere Proces Objecten kunnen alleen worden ingevoegd direct rechts van een {k} object nog zonder keuzes.
Afbeelding 14 Keuzes worden gemerkt ná invoegen {k} object
Proces Objecten en keuzes kunnen eenvoudig worden verwijderd, na selectie, via de toetsen Delete en Backspace. Bij het verwijderen van een keuze wordt gekeken of er meer dan twee keuzes achter het betreffende {k} object aanwezig zijn. In dat geval wordt – na een bevestiging – de keuze met de gehele tak rechts verwijderd en andere keuzes zonodig weer opgeschoven naar boven. Zie Afbeelding 15.
BPV Testing Before Designing
35
Het tool
Afbeelding 15 De boom van Afbeelding 13 na verwijdering van de keuze ‘no’
Indien er slechts twee keuzes waren zal – weer na bevestiging – de betreffende keuze met rechtertak worden verwijderd en de overblijvende tak weer achter het {k} object worden gezet.70 Zowel doordat elders Proces Objecten zijn verwijderd of doordat er op het blad Transformation al dan niet Proces Objecten zijn toegevoegd maar in ieder geval de lijst met voor dit bedrijfsproces te gebruiken Proces Objecten is uitgebreid – de k, o en/of k combinaties – komen vrije Proces Objecten beschikbaar. Via Insert, Page Up of + verschijnt een lijst met vrije objecten.71 Door klikken wordt het betreffende Proces Object ingevoegd en alles in de tak(ken) rechts hiervan één kolom naar rechts opgeschoven. Het ingevoegde object wordt dan geselecteerd zodat meteen volgende objecten kunnen worden toegevoegd. Zie Afbeelding 16.
Afbeelding 16 Lijst met vrije Proces Objecten en na invoegen overblijvende vrije Proces Objecten
5.5 Overzetten boom Nadat de classificatieboom klaar is kan deze worden overgezet naar het blad Tree dat kan worden gebruikt als input voor allCLEAR. Hierbij kunnen (uitgebreide) controles worden uitgevoerd. 70
Dus de overblijvende rechtertak wordt weer in dezelfde rij als het {k} object gezet en één kolom naar links.
71
Sommige toetsenborden maken het gebruik van Insert afhankelijk van een F-Key. Daarom zijn de andere twee mogelijkheden toegevoegd. Bij een {o}object of {x} object kan dit het openen van de lijst ook via de rechter muisknop. Indien er geen vrije objecten zijn verschijnt hierover een mededeling.
BPV Testing Before Designing
36
Het tool
Als eerste wordt er altijd gekeken of het {i} object misschien is gemerkt met ##!##. Dan moet er immers nog wat gebeuren. Zie 5.6. Ook wordt gecheckt of er op het blad Transformation wellicht lege Proces Objecten zijn met daaronder wel een rol – voor het betreffende bedrijfsproces – aangegeven. Er wordt dan niets overgezet. Vervolgens wordt gecontroleerd of er misschien Proces Objecten op het Service blad aanwezig zijn die niet voorkomen in de overeenkomstige rij op het blad Transformation en omgekeerd. Ook in dat geval wordt er niets overgezet.72 Daarna wordt gecontroleerd of ieder {k} object wordt gevolgd door minstens twee keuzes en er minstens één Proces Object aanwezig is ná elke keuze.73 Tenslotte komt er altijd een lijstje met het aantal eindtakken [bladeren]; {i}, {k}, {o} en {x} objecten alsmede het aantal keuzes. Omdat er meerdere bedrijfsprocessen binnen één project voor zullen (kunnen) komen is het mogelijk het blad Service te kopiëren. De kopie krijgt dan een aangepaste naam. Die kan naar believen zolang die maar met Service begint. We spreken daarom over Service… bladen. De overzetting van het blad Admin zal echter altijd naar het blad Service [zonder toevoeging] zijn.74 Het overzetten van een Service… blad gebeurt steeds naar een overeenkomstig Tree… blad, dus met hetzelfde achtervoegsel als dit niet het originele Service blad is. 5.6 Relatie Service… bladen en het blad Transformation Een duidelijke wens was om zowel achteraf de namen van objecten op het blad Transformation te kunnen wijzigen, daar objecten toe te kunnen voegen evenals de rollen die deze in een bepaald bedrijfsproces kunnen spelen. Deze wijzigingen zouden zoveel mogelijk tot uiting moeten komen op Service… bladen.75 Uiteindelijk zijn de volgende voorzieningen aangebracht: Een wijziging in de naam van een Proces Object op het blad Transformation wordt meteen toegepast op alle Service… bladen waar die naam is gebruikt.
72
Procesobjecten mogen niet worden verplaatst op het blad Transformation.76 Er mogen wel achteraan nieuwe objecten worden toegevoegd. Ook mag een naam tijdelijk worden gewist zodat in drie stappen een omwisseling op dat blad van twee Proces Objecten eventueel mogelijk is.77 Voor testdoeleinden kunnen de uitgebreidere controles worden overgeslagen.
73
Er wordt niet gecontroleerd of de Proces Objecten ná de keuzes verschillend zijn. Het blijft een beslissing van de persoon die de boom heeft opgesteld of duplicaat Proces Objecten in verschillende takken toegestaan zijn.
74
Vóór het overzetten komt er daarom een waarschuwing dat wellicht het huidige Service blad eerst moet worden gekopieerd.
75
Deze wens is pas later, nadat de eerste resultaten zijn getoond, expliciet geformuleerd. Bij een volledig interactief systeem zou dit echter een vanzelfsprekendheid zijn, waarbij er een directe relatie tussen de tekeningen van de Dienst Modellen en de Transformatie Modellen dient te bestaan. 76
Hier wordt niet op gecontroleerd. De gevolgen kunnen echter desastreus zijn bij een poging tot overzetten van Service… bladen naar Tree… bladen. 77
De vraag is of dit werkelijk zinvol is, anders dan vanuit het idee dat er ook voor het Transformatie Model een voorkeursrangorde is hoewel er nog geen volgorde of tijdsaspecten een rol zou moeten spelen. Als het eerste Proces Object wordt gewist [gewoon met Delete] dan worden alle overeenkomstige Proces Objecten op Service… bladen vervangen door ##!##[kolomnummer]. De oude naam kan dan worden gebruikt voor die van een ander Proces Object. Daarna kan de naam hiervan op de lege plaats worden gezet. De waardes op de snijpunten van Input Objecten en Proces Objecten moeten dan wellicht ook worden omgezet. Het is echter de vraag of de zo verwisselde namen in de bomen op de Service... bladen nog wel op de juiste plaats staan. BPV Testing Before Designing
37
Het tool
Zodra er een wijziging komt in de k, o en/of x combinaties op een bepaalde rij worden bijbehorende {i} objecten op Service… bladen gemerkt met ##!## ten teken dat er mogelijk teveel of te weinig, dan wel verkeerde Proces Objecten op dit blad kunnen zijn.78
Ook bij het wijzigen van de naam van een {i} object vindt markering met ##!## op Service… bladen plaats.
Overzetten van Service… bladen naar Tree… bladen is niet mogelijk zolang er ##1## voor de naam van een {i} object staat.
Via dubbelklikken op het {i} object op een Service… blad kan de (nieuwe) naam worden opgehaald van het blad Transformation en verdwijnt een eventuele ##!##. Verder vindt een beperkte controle plaats of er Proces Objecten zijn op dit blad die niet zijn gebruikt op het betreffende Service… blad. Omgekeerd ook of er daar Proces Objecten zijn die niet meer voorkomen dan wel niet via k, o en/of x combinaties beschikbaar zijn maar wel op het Service… blad zijn gebruikt.
Na overzetten met volledige controle van een Service… blad naar een Tree… blad – zonder geconstateerde fouten – wordt de tekst van de knop voor het overzetten lichter gemaakt. Door wijzigingen op het blad Transformation – die invloed hebben op een Service… blad – wordt deze knoptekst weer donker ten teken dat opnieuw overzetten nodig is.
Op een laat moment is ook nog de optie toegevoegd dat namen van Proces Objecten mogen bestaan uit formules.79 Bij wijziging van de broncel worden dan alle gekoppelde namen van Proces Objecten op het blad Transformation die voorkomen op Service… bladen ook aangepast.
5.7 Relatie Excel en allCLEAR Op een bepaald moment tijdens de bouw bleek het ineens niet meer mogelijk de Excel bestanden te importeren in allCLEAR. Na enige tijd bleek dat er twee voorwaarden gelden voor import in allCLEAR:
Het Excel bestand mag niet geopend zijn in Excel.80
Geen enkel werkblad in Excel, ook niet gebruikte bladen, mag beveiligd zijn.
Om toch het werken met het Excel bestand zo veilig mogelijk te maken, wordt bij openen van het bestand – met ingeschakelde macro’s – de beveiliging ingesteld voor alle werkbladen, behalve Transformation. Bij het afsluiten van het bestand of Excel wordt – met ingeschakelde macro’s – de beveiliging weer verwijderd en het bestand onbeveiligd opgeslagen. In allCLEAR kan dit bestand worden geopend en worden gekozen welk werkblad de data bevat. Na import komt er dan een tekening. Zie Afbeelding 17.
78
Bij een goed gebruik zou er slechts één Service… blad per {i}object moeten zijn.
79
Het gaat hier vooral om het samenvoegen van strings waardoor bepaalde termen overal ineens kunnen worden aangepast. 80
Deze beperking was al zeer vroegtijdig ontdekt.
BPV Testing Before Designing
38
Het tool
Afbeelding 17 Voorbeeld van een classificatieboom van het Dienst Model. Driehoeken geven het {i} object en de keuzes aan; cilinders de {k} objecten; rechthoeken met een pijl naar rechts de {o} objecten en rechthoeken met een omgevouwen hoek de {x} objecten
BPV Testing Before Designing
39
Conclusies
6 Conclusies Na een wat moeizame start waarin met de hulp van velen is getracht de methode Business Process Validation [BPV] in de vingers te krijgen is het toch gelukt een aantal regels te formuleren waardoor het mogelijk was een prototype te maken voor het sneller bouwen van de Dienst Modellen die een verfijning of detaillering zijn van de als eerste opgestelde Transformatie Modellen. De regels blijken intussen al invloed te doen gelden bij nieuwe door Atos Origin opgezette projecten. Met name geldt dit voor één Input Object [als vertaling van de wens] per bedrijfsproces. Vertakkingen in classificatiebomen kunnen uitsluitend optreden onder invloed van Katalysator Objecten. Als zodanig kan dit een wensverfijning zijn. Splitsing in meerdere bedrijfsprocessen blijft mogelijk maar een wens op zich kan geen aanleiding geven tot splitsingen in de classificatiebomen van het Dienst Model. Voor het tekenen is om praktische redenen gebruik gemaakt van het al bij Atos Origin gebruikte en bekende programma allCLEAR. Voor het samenstellen van de benodigde input data is gebruik gemaakt van een in de wetenschappelijke wereld wellicht minder populair hulpmiddel, het programma Excel. Ofschoon de bij Excel te gebruiken programmeertaal VBA zeker niet ideaal is te noemen is het toch mogelijk gebleken een – voor zover thans bekend – hulpmiddel te maken voor het opbouwen van de classificatiebomen die de kern van het Dienst Model vormen. Hierbij is een zekere visualisering al tijdens het moduleren mogelijk gebleken. 6.1 Kwaliteit van de oplossing Om een tool te kunnen ontwerpen was een duidelijker zicht op BPV, het objectenmodel en de te hanteren regels nodig. Deze studie heeft daar zeker, ook volgens de betrokkenen bij Atos Origin, toe bijgedragen. Dit betreft dan vooral één Input Object per bedrijfsproces alsmede de rol van Katalysator Objecten en Verwijderde Objecten. Het nu ontwikkelde tool is duidelijk te beschouwen als een prototype. Nadat meer ervaring hiermee is opgedaan zal het wellicht mogelijk zijn de eisen verder te preciseren en een toegespitst tool te (laten) ontwerpen. Het invullen van de gegevens van het Transformatie Model gaat vlot. Hiermee was al de nodige ervaring bij Atos Origin vóór dit project. Het hiervoor gebruikte Excel werkblad is voldoende flexibel (gehouden). Het kiezen van een bedrijfsproces waarvoor een classificatieboom moet worden opgezet is eenvoudig. Het manipuleren van de Proces Objecten op een Service… blad vraagt enige oefening. Het aantal commando’s is echter redelijk beperkt81 en alle niet-triviale handelingen vereisen eerst bevestiging.82
81
Zie hiervoor de quick reference guides op één pagina voorin Annex C Handleiding gebruik BPV Tool.
82
Verwijderen van een enkel Proces Object waaraan nog geen keuzes zijn verbonden is triviaal en vereist geen bevestiging.
BPV Testing Before Designing
40
Conclusies
Opbouwen van een werkblad Tree… dat de input data voor allCLEAR bevat gaat snel indien de boom juist is opgebouwd.83 Indien er echter veel {k} objecten zonder eraan verbonden keuzes zijn verschijnen er ook veel waarschuwingsvensters die steeds om bevestiging vragen. Achteraf veranderen van de namen van zowel Input Objecten als Proces Objecten is mogelijk. Dit kan echter alleen op het blad Transformation. In een interactief systeem zou dit ook mogelijk moeten zijn bij de tekeningen met terugvertaling naar het Transformatie Model. Bij Atos Origin zijn enkele vergelijkende tests met het tool uitgevoerd. Marleen de Jonge geeft aan dat er voor kleine projecten weinig verschil zou zijn voor wat de benodigde tijd betreft om de Dienst Modellen te maken.84 De mogelijkheid om achteraf nog de namen van objecten vlot aan te passen zou echter een voordeel kunnen zijn. Andere door haar aangestipte voordelen zijn het afdwingen van consistentie in naamgeving van de objecten. Verder het voorkomen van fouten door de ingebouwde controles.85 Bij grotere classificatiebomen zou wel een behoorlijke tijdswinst kunnen worden behaald terwijl hier de ingebouwde consistentie controles nuttig zijn. Klaas Smit rapporteert een tijdswinst van meer dan 50% bij wat grotere bomen.86 Het was de bedoeling het tool nog in de praktijk bij een groot project te testen. Een team, nog niet bekend met de traditionele manier van classificatiebomen tekenen zou voor een project bij Achmea met het tool gaan werken. Men heeft even met het tool kennis gemaakt maar het project is tijdelijk in een halt geplaatst, waardoor resultaten bij afsluiting van deze studie nog niet bekend zijn. Wel zijn de nieuwe inzichten rond BPV als gevolg van deze studie hier al wel in de praktijk gebracht. Met name waar bedrijfsprocessen moeten worden gespitst of eventueel samengevoegd zou hiermee duidelijker kunnen worden onderkend. Er is veel aandacht besteed aan gebruiksvriendelijkheid. Hierbij is er echter het risico dat wel erg veel waarschuwingen zijn ingebouwd die een meer ervaren gebruiker als irritant kan (gaan) beschouwen. 6.2 Mogelijke wensen voor de toekomst Naar verwachting zal een volledig interactief systeem waarmee wijzigingen snel kunnen worden doorgevoerd en alternatieven zichtbaar gemaakt het ideaal zijn. Eventuele splitsingen of samenvoeging van bedrijfsprocessen alsmede het toevoegen of verwijderen van katalysator Objecten zouden zo snel zichtbaar kunnen worden. Het is echter nog onvoldoende duidelijk of dit haalbaar is.
83
Er is voor gekozen het doorlopen van de complete boom voor de gebruiker zichtbaar te maken. Bij eventuele fouten worden die gemeld met de betreffende Excel cel in zicht. Tevens wordt dit genoteerd in een berichtenlijst. Zelfs met meer dan 10.000 objecten duurt het overzetten slechts enkele minuten.
84
Marleen heeft uitgebreide ervaring met de klassieke manier om classificatiebomen direct op te zetten met allCLEAR.
85
Men zou bijvoorbeeld bij een handmatig systeem kunnen vergeten een object te tekenen.
86
Waar ik vroeger wel twee dagen nodig had, duurt het nu enkele uren, aldus Smit.
BPV Testing Before Designing
41
Conclusies
Wel zal verdere verfijning van de BPV-methode nodig zijn alvorens een beter tool eventueel kan worden gerealiseerd. Een eerste aanzet is in deze studie geleverd. Verdere uitbouw zal wenselijk zijn. Juist door gebruik van dit prototype zal het naar verwachting mogelijk zijn beter zicht te krijgen op de regels die voor objecten in zowel het Transformatie Model als het Dienst Model gelden. Het is echter niet onaannemelijk dat eerst meer ervaring, ook buiten Atos Origin, moet worden opgedaan met de BPV-methode om beter te bepalen waar en in hoeverre deze voordelen biedt ten opzichte van andere test- en waarschijnlijk toch ook ontwikkelmethoden. Pas daarna lijkt het zinvol tools te ontwerpen die de BPVmethode ondersteunen. Voor Atos Origin zijn de voordelen van BPV al bewezen. Wat nog ontbreekt zijn (hardere) gegevens in hoeverre de methode kosten besparend is ten opzichte van traditionele testtrajecten. Er is daar helaas nooit tijd geïnvesteerd om aan het eind van een project uit te zoeken wat BPV qua kostenreductie heeft opgeleverd. Er is tot op heden bij Atos Origin niet verder gegaan dan het testrapport met daarbij wel de complete bevindingenregistratie. De onderhavige studie heeft echter bij de diverse betrokkenen het inzicht in de BPVmethode vergroot. Dit echter zonder bepaalde twijfels (allemaal) weg te nemen. Het is echter niet onaannemelijk dat kennismaken met – liefst deelnemen aan – toepassing van BPV in de praktijk sterk bij zou dragen aan een beter inzicht. De verschillende regels rond de toepassing kunnen daardoor waarschijnlijk ook helderder worden geformuleerd. 6.3 Terugblik Het project heeft alle kenmerken vertoond van een typisch IT-project, dus de eisen veranderden tijdens het gereedkomen van eerste onderdelen, de ambities moesten naar beneden worden bijgesteld en de benodigde tijd was langer dan gedacht. Nadat er aanvankelijk moeilijk grip kon worden gekregen op de BPV-methode en het idee ontstond dat een geautomatiseerd tool niet mogelijk was, is toch besloten maar een aantal zaken uit te proberen. Al doende kwam een duidelijker beeld naar voren. Hieruit blijkt dat voortdurende communicatie met de opdrachtgever(s) essentieel is en anderzijds dat men ook niet te snel op moet geven. Door een aantal randvoorwaarden of wensen – zoals het zoveel mogelijk aansluiten bij de tekeningen gemaakt met allCLEAR – is een praktische keuze gemaakt voor een software systeem waarbinnen de input data voor de tekeningen konden worden klaargemaakt. Door de keuze voor Excel was er echter de mogelijkheid vooraf al zicht op de classificatieboom te krijgen. Er is ook nog kort gekeken naar de mogelijkheid input data direct te manipuleren. Dit leek echter weinig gebruiksvriendelijk te zijn omdat het vrij abstract over kwam.87 Ook als bouwer was er de neiging steeds meer mogelijkheden en controles toe te willen voegen waardoor een project nooit af dreigt te komen. Door de voortdurende veranderingen blijken de ideeën van netjes gestructureerd programmeren en gelijktijdig voor goede documentatie te zorgen geweld te worden aangedaan.
87
Bedoeld is hier een tabel met teksten en codes die dan als input voor allCLEAR (of Visio) dienst moet doen.
BPV Testing Before Designing
42
Conclusies
Het project was echter toch weer voldoende interessant om als postersessie te kunnen worden gepresenteerd op de 9th International Conference on Enterprise Information Systems [ICEIS] 12-16, June 2007, Funchal, Madeira – Portugal. Vanuit de industriële sector was er daar vooral belangstelling voor eventuele tijd- en kwaliteitswinst die BPV en wellicht het tool daarbij zouden kunnen opleveren. In de academische wereld waren er meer vragen over de consistentie checks. Mede door de stimulerende medewerking van alle betrokken personen is dit project een unieke ervaring geworden waarin de auteur, ondanks een jarenlange ervaring in de IT-wereld, veel heeft geleerd waarvoor alle betrokkenen hartelijk dank.
BPV Testing Before Designing
43
Annex A Oorspronkelijk Project Initiatie Document
Annex A Oorspronkelijk Project Initiatie Document (Gedeelte) tekst van 7 april 2006
1 Inleiding De aanleiding voor het onderzoek ligt in de toepassing van BPV zoals beschreven in het boek Business Process Validation, Gestructureerd testen met de BPV-methodiek van Klaas Smit (Den Haag, 2005). Smit onderkent dat een opdrachtgever bijna altijd een tamelijk vaag idee heeft dat aanpassing vraagt tijdens de ontwikkelfase van een informatiesysteem. Vanuit het al langer gehanteerde V-model1 is bekend dat er vaak gaten zitten tussen wens, verwachting en resultaten. Door de vele mogelijke foutinjecties zijn ook vaak niet de juiste zaken getest. Het BPV-model beoogt een directe koppeling aan te brengen tussen het testproject en de vormgeving van de wensen van de opdrachtgever. Hiertoe wordt een viertal fasen onderscheiden: • Transformatie Model [logische verwerking, met input-, output- en katalysatorobjecten voor de continue, initiële en aanleverende dienst]; • Dienst Model [detaillering, vooral gekenmerkt door classificatiebomen en genereren testgevallen]; • IT/AO Model2 [technische werking, met nadruk op sequentiediagrammen en volledigheid van het ketenontwerp]; • Applicatie Model [genereert testgevallen, ook met load- en performanceaspecten].
Bij alle fasen is er uitgebreide aandacht voor (kwantificeerbare) kwaliteitseisen, voortdurende communicatie met de opdrachtgever en change-management [of versiebeheer]. Eén van de belangrijkste outputobjecten is het kleimodel (Transformatie Model). Het Transformatie Model voldoet in principe aan de eisen dat het objecten, kwaliteitseisen van objecten en processen aan elkaar relateert en dat het aan een decompositierichtlijn voldoet. Het voldoet blijkbaar nog niet aan de eis dat het de communicatie met de opdrachtgever bevordert.
1.1 Behoefte Het maken van al de BPV- modellen houdt veel werk in. Daarbij blijft de vraag of de modellen bijdragen aan een betere communicatie tussen opdrachtgever en bouwers. Dit komt wellicht door onvoldoende eenduidige begrippen die voor de verschillende partijen niet noodzakelijk hetzelfde hoeven te betekenen. De verschillende gebruikers zijn:
1
(Architectuur ontwerp), functioneel ontwerp, technisch ontwerp, realisatie, programmatest, systeemtest, acceptatietest, (integratie- en acceptatietests), gebruik en beheer. 2
Informatie Technologie / Administratieve Organisatie.
PID
44
Annex A Oorspronkelijk Project Initiatie Document • De opstellers (business consultants); • De opdrachtgever en zijn vertrouwelingen; • De testers die de modellen uitbreiden/aanpassen en vragen/testgevallen extraheren.
Daarnaast speelt dat classificatiebomen niet uniform zijn, maar veelal op arbitraire beslissingen zijn gebaseerd en gemakkelijk impliciete definities of kenmerken bevatten die daardoor juist weer misverstanden op kunnen roepen. Daarnaast is de (toevallige) classificatie3 weer het uitgangspunt voor de volgende fases. Het blijft daarbij overigens de vraag of deze toevalsfactor van wezenlijke invloed is op het eindresultaat. Dit is mogelijk wel van belang bij een eventuele automatisering van modelgeneratie en bij geautomatiseerd versiebeheer, zeker indien de classificatieboom (ingrijpend) wordt aangepast.
1.2 Opdracht De opdracht valt uiteen in twee direct met elkaar in verband staande onderdelen.
1.2.1 Model Het ontwikkelen van een voor een opdrachtgever bruikbaar model, waarmee die zicht krijgt op wat de toekomstige bedrijfsprocessen op hoofdlijnen produceren. Het gaat hierbij niet om het hoe – want dat is voor de ontwikkelaar van de producten – maar het wat. Dit model dient aan diverse eisen voldoen, zoals: • Het is een begrijpelijk communicatie middel; • Het is bruikbaar in alle fases van het ontwikkel traject; • Het ingevulde model is eenvoudig aanpasbaar; • Consequenties van andere keuzes en wijzigingen moeten snel zichtbaar kunnen worden; • Vastlegging moet zodanig zijn dat versiebeheer eenvoudig is te realiseren.
Concreet betekent dit bijvoorbeeld dat het model inzicht moet verschaffen wat de gevolgen zijn als delen van het proces niet worden opgeleverd of foutief zijn. Bij de communiceerbaarheid gaat het weer om het wat en pas in tweede instantie om het hoe.4 Datzelfde geldt voor de plaats van het model binnen de BPV methode.5
1.2.2 Hulpmiddel Het ontwikkelen van een hulpmiddel dat de bruikbaarheid van het bovenbeschreven model vergroot. Dit geautomatiseerde hulpmiddel moet voldoen aan de eisen:
3
Classificaties worden veelal uitgevonden en niet ontdekt.
4
Schema’s; tabellen; grafieken; plaatjes,;lijsten; een begrippenverzameling, al dan niet in een gestructureerd verband, kunnen hierbij een rol spelen. 5
Het zou bijvoorbeeld een aanpassing van de bestaande modellen kunnen zijn, een laag er bovenop of een andere presentatie van dezelfde informatie. Tijdens de vormgeving komen wellicht extra eisen naar boven.
PID
45
Annex A Oorspronkelijk Project Initiatie Document • Communiceerbaarheid en geeft aan de opdrachtgever een goede look-and-feel6; • De ontwerpen die met dit tool worden gemaakt moeten onder versie beheer kunnen worden gebracht7; • Aanpassen van de ingevulde modellen moet eenvoudig plaats kunnen vinden; • Voldoen aan de eisen gesteld aan het Transformatie Model/Dienst Model, zoals beschreven in het BPV-boek; • Transformatie Modellen moeten (voor een deel) geautomatiseerd kunnen worden omgezet in Dienst Modellen8; • Kwaliteitseisen voor de processen moeten kunnen worden vastgelegd9; • Een begrippenbibliotheek (object library) moet zijn geïncorporeerd.10
Ook weer bij het hulpmiddel gaat het vooral om het wat en pas daarna om het hoe. De neiging bestaat echter naar het eindresultaat van de hoe-vraag – dus een werkend model – te kijken.
2 Doel 2.1 Scope Het project wordt uitgevoerd in het kader van een afstudeeropdracht voor de graad van Master of Science verbonden aan de studie Computer Science and Engineering aan de Technische Universiteit Eindhoven. Hierbij is het belangrijk de in de studie verkregen kennis en vaardigheden te toetsen en te demonstreren aan een wetenschappelijk onderwerp of een praktijksituatie. Het onderhavige project biedt de ideale mix van wetenschap en praktijk. Gezien een aantal onzekerheden rond de BPV-methode zal de wat-vraag prioriteit behoeven. Invulling van de hoe-vraag – en dus werkende geautomatiseerde hulpmiddelen – zal waarschijnlijk als een welkome bonus moeten worden gezien.
2.2 Uitgangssituatie De BPV-methode is nog tamelijk sterk gekoppeld aan de ontwikkelaars en eerste toepassers ervan. Er worden wellicht speciale eisen gesteld aan hen die met de 6
Vaak betekent dit: het ziet er mooi en gelikt uit.
7
Waarschijnlijk dus op een eenvoudige manier kunnen worden geëxtraheerd.
8
Het meer gedetailleerde Dienst Model kan naar verwachting (achteraf) vrij eenvoudig worden omgezet naar een Transformatie Model omdat dit algemener is. Gezien het vaak arbitraire karakter van classificatiebomen is de gewenste automatische omzetting van Transformatie Model naar Dienst Model nog tamelijk onzeker. Wellicht dat in een iteratief proces wel mogelijkheden zijn te realiseren. 9
Kwaliteitseisen zijn vaak onvoldoende objectief vast te stellen. Methoden waarbij meerdere assessoren gezamenlijk tot een geobjectiveerde subjectiviteit komen is veelal het best haalbare. Schijnzekerheid wordt vaak bereikt via kruisjessystemen – zoals bij de Consumentenbond – die dan via een arbitraire rekentruc tot een eindoordeel leiden. De procedures waarmee de assessoren tot hun oordeel komen en de daarbij gehanteerde hulpmiddelen zijn wel regelmatig van doorslaande invloed. 10
Hierdoor zou eenvoudig de betekenis en kwaliteiten van gebruikte objecten kunnen worden opgevraagd. Daarna komt weer de hoe-vraag, bijvoorbeeld: een alfabetische lijst; objecten in volgorde van invoer; via kenmerken; in een structuur, enz.
PID
46
Annex A Oorspronkelijk Project Initiatie Document
methode willen werken. De methode lijkt voordelen te hebben. Nog onduidelijk is of die voordelen in alle gevallen worden behaald of dat dit sterk is gekoppeld aan de kwaliteiten van de gebruiker. Daarnaast is kennelijk het probleem van de communicatiekloven tussen opdrachtgevers, ontwerpers en bouwers nog niet opgelost. De methode veronderstelt een sterke koppeling tussen ontwerp en testen. Dit onderdeel zal in de beschouwingen moeten worden meegenomen.
2.3 Deliverables i
Het hoofdproduct is een communicatiemodel als onderdeel van de BPV-methode dat de opdrachtgevers voldoende inzicht geeft in de te automatiseren bedrijfsprocessen evenals de consequenties van aanpassingen in de randvoorwaarden. Voor ontwerpers moet het in samenhang met de andere onderdelen van de BPV-methode deze randvoorwaarden hard maken en testers in de gelegenheid stellen relevante test sets te genereren. Zo mogelijk wordt ook een geautomatiseerd hulpmiddel opgeleverd of in ieder geval de eisen waaraan dit moet voldoen.ii Waar de studie een kritische beschouwing van de BPV-methode noodzakelijk zal maken is het reëel een overzicht te verwachten van sterke en zwakke punten van de methode evenals voorstellen tot aanpassing waar nodig of wellicht zinvol.
2.3.1 Kwaliteit De beschrijving van het model zal zodanig moeten zijn dat vanuit verschillende invalshoeken hieraan goedkeuring kan worden verleend. Dit betreft dus vooral de communiceerbaarheid, naast de voldoende wetenschappelijk gefundeerde opzet en de praktische toepasbaarheid. Bij een eventueel op te leveren werkend geautomatiseerd model zullen de toepasbaarheid en gebruikersvriendelijkheid voorop moeten staan. i
Toegevoegd in PID 0.2 van 27 april 2006: Alvorens verdere producten kunnen worden ontwikkeld is er behoefte de BPV methode zelf te verduidelijken, vooral wat syntax en semantiek betreft. Hieraan zou in principe slechts een beperkte tijd kunnen worden gewerkt in de orde van één maand. Na deze periode zou een Go/No-go beslissing kunnen worden genomen ten aanzien van verdere fases.
ii
Veranderd in PID 0.2 van 27 april 2006: Wat Atos Origin betreft is er de meeste behoefte aan een geautomatiseerd hulpmiddel. Minimaal zouden de eisen waaraan dit moet voldoen moeten worden opgeleverd. Tijdens de tweede fase zou er al aandacht moeten worden besteed aan mogelijkheden tot automatisering waardoor een tweede Go/No-go beslissing mogelijk wordt.
PID
47
Annex B Loyalty Programma
Annex B Loyalty Programma 1 Uitgangssituatie Het bedrijf levert verschillende diensten, zoals elektriciteit, gas, Radio/TV signalen, internet, mobiele telefonie (in allerlei vormen), enz.1 Het bedrijf heeft klanten met een bekend adres, maar ook klanten waarvan niet bekend is of het adres klopt. Ook is het mogelijk dat een klant meerdere keren voorkomt, met dus bekende en mogelijk foutieve adressen. Natuurlijk kan een klant meerdere vestigingsplaatsen hebben (vakantiewoning). Het bedrijf kent verschillende relaties met een klant: • •
•
Als gebruiker. De klant gebruikt de dienst, maar er is geen sprake van een contractrelatie Als betaler. De klant die betaalt heeft geen contractrelatie met het bedrijf, ook hoeft de klant de dienst niet te gebruiken (de klant betaalt als het ware voor iemand anders) Als contractant. De klant heeft een contract relatie met het bedrijf.
Let op dat een klant meerdere diensten kan afnemen en per diensten één of meerdere relaties kan hebben. Bijvoorbeeld, de klant is contractant voor het afnemen van gas en elektriciteit en gebruikt een mobiele telefoon die door iemand anders aan hem is verstrekt. Dit is dan ook de reden waardoor het bedrijf vaak niet weet waar precies de klant (in de rol van gebruiker) van een dienst woont. Hierdoor kan het vaak voorkomen dat een klant meerdere keren in de bestanden is opgenomen. Maar ook door het leveren van prepaid mobiele telefonie is een oorzaak dat het bedrijf de woon/verblijfplaats van de klant vaak niet kent.
2 Doel van het programma Het bedrijf wil met het Loyalty Programma2 twee zaken bereiken: • •
De klantbinding zelf, dus huidige klantbinding versterken De klantrelatie beter leren kennen, zodat gerichter de klant benaderd kan worden, dus ook zeker weten waar de klant woont (adresschoning). Controleren of men in het bezit is van de actuele adressen van de contractanten.
Een slimmerik heeft bedacht, dat dit mogelijk te verwezenlijken valt met het introduceren van het begrip huishouden.
1
De eerste opzet van dit verhaal is gemaakt door Klaas Smit en later aangepast binnen de in dit verslag gehanteerde terminologie. 2
Een Nederlandse term is waarschijnlijk klantbindingsprogramma of programma klantbinding.
Loyalty Programma
48
Annex B Loyalty Programma
Dit is ongeveer als volgt beschreven: ·Een huishouden is een verzameling klanten die op één adres woont of in geval van een vakantiehuisje op twee adressen of in het geval van een verhuizing tijdelijk op twee adressen. Een huishouden kent een hoofd van het huishouden. Dit hoofd van het huishouden is degene aan wie de bonussen die het Loyalty Programma in de vorm van kortingen, tijdschriften en punten (zegeltjes) worden verstrekt. (let op: dit is een vereenvoudigde opzet). Voor het Loyalty Programma zijn in grote lijnen de volgende processen gedefinieerd: 1. Bepaal de hoofden van de huishoudens en schrijf deze aan 2. De hoofden van de huishoudens melden zich via het internet aan. Zij kunnen een Loyalty contract aanvragen. Ook kunnen zij bepalen welke door hun afgenomen diensten onder dit contract komen te vallen 3. Elke betaling op een dienst levert een x-aantal spaarpunten op. Deze worden toegevoegd aan het totale saldo. 4. Het hoofd van het huishouden kan de gespaarde punten gebruiken voor het verkrijgen van cadeaus of korting op een factuur.
(Vaak gaat dit in werkelijkheid niet zo. Normaliter worden er van verschillende kanten mogelijke oplossingen aangedragen, vaak ook al deels gerealiseerd. Deze worden aan elkaar geregen en vervolgens hoopt men dat alles past. Halverwege het project is men dan al vaak het totaaloverzicht kwijt)
3 Transformatie Model. (let op: er wordt slechts een deel behandeld en dan ook nog op een globaal niveau) We starten met de Transformatie Modellen: Ad 1. De wens om een hoofd van het huishouden aan te schrijven (omdat dit niet mogelijk is worden de contractanten aangeschreven). Ad 2. De wens om als hoofd van het huishouden deel te nemen aan het Loyalty Programma. Ad 3. De wens om aan een betaling van een factuur te voldoen (dit proces bestaat al maar wordt uitgebreid met het leveren van spaarpunten op rekening van een hoofd van een huishouden) Ad 4a. De wens om een cadeau te ontvangen Ad 4b. De wens om een korting te ontvangen. 3.1 De volledigheidscontrole van de bedrijfsprocessen. Wanneer men met het Transformatie Model bezig gaat, zal men ontdekken dat veel meer processen aangepast moeten worden. Objecten die in bovenstaande modellen worden gebruikt, zijn veelal afkomstig van bestaande bedrijfsprocessen. Deze processen kunnen de objecten veranderen en laten verdwijnen, maar kunnen ook nieuwe objecten laten ontstaan. Het volstaat dus niet allen die processen te beoordelen die rechtstreeks afkomstig zijn van het programma “klantenbinding”. Denk maar aan dat klanten verhuizen, gezinnen uiteen vallen, klanten komen te overlijden of zeggen diensten op.
Loyalty Programma
49
Annex B Loyalty Programma
3.2 De uitwerking (Het uitwerken van twee processen lijkt als voorbeeld meer dan voldoende)) Ad 1. Aanschrijven potentiële deelnemer Input Object: De wens om potentiële deelnemers aan te schrijven. Katalysator Objecten: Potentiële deelnemer aan het Loyalty Programma (is de klant al aangeschreven?) Contractant van dienst A,B,C,D, .. Mailing Output Objecten: Potentiële deelnemer (incl. aanlog gegevens) Mailing Ad 2. Aanmelden deelnemer Het bedrijfsproces “aanmelden deelnemer”, dat de klant moet registeren en aangeven welke abonnementen onder het Loyalty contract komen te vallen, valt na normalisatie uiteen in: 2a. De wens om deelnemer te worden. 2b. De wens om het Loyalty contract aan te vullen met abonnementen. Ad 2a. De wens om deelnemer klant te worden Input Object: De wens om deelnemer klant te worden Katalysator Objecten: Potentiële deelnemer Deelnemer Wanbetaler (aan slechte betalers wil de opdrachtgever geen cadeautjes geven) Output Objecten: Deelnemer Spaarrekening van de deelnemer Welkomstmailing Deelnemerslijst (tbv het versturen van mailings) Verwijderd Object: Potentiële deelnemer (is nu echte deelnemer geworden) Ad 2b. De wens om het Loyalty contract aan te vullen met abonnementen Input Object: De wens om een Loyalty contract aan te vullen Katalysator Objecten: Deelnemer Spaarrekening van de deelnemer Geleverde Klantdienst A,B,C,D Klantdienst A,B,C,D die gerelateerd is aan een Loyalty contract Wanbetaler Loyalty Programma
50
Annex B Loyalty Programma
Factuuridentificatie Contractant Betaler Gebruiker Output Objecten: Klantdienst A,B,C,D die gerelateerd is aan een Loyalty contract Spaarrekening
Loyalty Programma
51
Annex C Handleiding gebruik BPV Tool
Samenstelling: Kees Ampt Versie: 1.1.6 Datum: 20 juli 2007
Handleiding BPV Tool
52
1.1.6
Quick Reference Guides Quick Reference Guide voor het opzetten van alle objecten op blad Transformation
Actie
Methode
Toelichting
Plaatsen {i} objecten
In kolom B
4
Plaatsen Proces Objecten
In rij 2
4
Bepalen rollen [k, o en/of x]
Snijpunt rij en kolom
4
Quick Reference Guide voor acties op blad Admin
Actie
Methode
Toelichting
Controleren objecten op blad Transformation
Via knop Controle Transformation
5.1
Rijnummer instellen [{i} object kiezen]
Invullen in cel D4
5.2
Objecten overbrengen naar Service blad
Via knop Overzetten naar Service
5.2
Quick Reference Guide voor het opzetten van classificatiebomen op Service… bladen
Actie
Methode
Toelichting
Classificatiekeuzes rechts van {k} object aanbrengen of tekst van keuze wijzigen
Rechter muisknop
7.1.1
Extra keuzes toevoegen
Dubbelklikken direct rechts van {k} object of op bestaande keuze [nieuwe keuze komt hieronder]
7.2.2
Omwisselen twee objecten in dezelfde rij
Dubbelkikken op eerste object. Na OK klikken op tweede object
7.1.2
Verwijderen object, tak of keuze
Delete of Backspace
7.1.3
Vrij object toevoegen algemeen
Insert, Page Up of +
7.1.4
Vrij object toevoegen rechts van geselecteerd {i}, {o} of {x} object
Ook mogelijk met rechter muisknop
7.2.6
Bijwerken {i} object
Dubbelklikken, Delete of Backspace in kolom A
7.2.7
Quick Reference Guide voor verdere acties op Service… bladen
Actie
Methode
Toelichting
Kopie van blad maken
Control ingedrukt houden en tab slepen
6
Berichtenlijst bekijken
Via knop Berichtenlijst
7.3.1
Objecten overbrengen naar Tree … blad
Via knop Overzetten naar Boom…
7.3.2
Handleiding BPV Tool
54
1.1.6
Inhoud en figuren handleiding
Inhoud 1.
Inleiding ........................................................................................................................... 60
2.
Openen Excel bestand ...................................................................................................... 62
3.
Direct na openen Excel bestand ....................................................................................... 66
4.
Vullen of aanpassen Transformation blad........................................................................ 70
5.
Acties op het blad Admin................................................................................................. 74 5.1.
Controle Proces Objecten......................................................................................... 74
5.2.
Overzetten naar blad Service.................................................................................... 75
5.3.
Verdere informatie op blad Admin .......................................................................... 77
6.
Kopiëren van Service… bladen........................................................................................ 80
7.
Bewerken data op Service… bladen ................................................................................ 82 7.1.
7.1.1.
Klikken met de rechtermuisknop ..................................................................... 83
7.1.2.
Dubbelklikken op cel ....................................................................................... 84
7.1.3.
De toets {Delete} of {Backspace} ................................................................... 86
7.1.4.
De toetsen {Insert}, {Page Up} of {+} ............................................................ 87
7.2.
Actie typen ............................................................................................................... 88
7.2.1.
Classificaties aanbrengen ................................................................................. 88
7.2.2.
Extra classificatie keuzes invoegen.................................................................. 88
7.2.3.
Objecten verwijderen ....................................................................................... 89
7.2.4.
Classificatie keuzes verwijderen ...................................................................... 89
7.2.5.
Objecten omwisselen........................................................................................ 89
7.2.6.
Objecten invoegen............................................................................................ 89
7.2.7.
{i} object aanpassen ......................................................................................... 89
7.2.8.
Kolombreedte aanpassen.................................................................................. 90
7.3.
8.
Starten acties ............................................................................................................ 83
Knoppen op Service… bladen................................................................................. 90
7.3.1.
Knop: controleer berichtenlijst......................................................................... 91
7.3.2.
Knop: overzetten naar blad Tree… .................................................................. 91
Spelen met allCLEAR? .................................................................................................... 94
Handleiding BPV Tool
55
1.1.6
Inhoud en figuren handleiding Bijlage 1 BPV........................................................................................................................... 98 1.
BPV .............................................................................................................................. 98
2.
Uitgangspunten van de BPV-methodiek ...................................................................... 99
3.
Wat is het? Theorie en beschrijving ........................................................................... 100
4.
Kwaliteitseisen ........................................................................................................... 103
5.
Samenvatting.............................................................................................................. 103
Bijlage 2 Voorbeeld controlelijst ........................................................................................... 104 Bijlage 3 Enkele extra voorbeelden Engelstalige schermen .................................................. 106 Bijlage 4 voorbeelden manipuleren Service bladen............................................................... 110 Bijlage 5 Belangrijkste aanpassingen..................................................................................... 114
Handleiding BPV Tool
56
1.1.6
Inhoud en figuren handleiding
Figuren Figuur 1 Voorbeeld invoergegevens op het werkblad Transformation.................................... 60 Figuur 2 Openingsvenster voor Excel 2000 - 2003 bij macro beveiliging Gemiddeld............ 62 Figuur 3 Excel 2000: alternatief venster bij macro's [met digitale handtekening]................... 62 Figuur 4 Excel 2000: geen actie maar selecteren bij klikken op knop en macro beveiliging Hoog............................................................................................................................ 62 Figuur 5 Excel 2002: venster bij ingestelde macro beveiliging Hoog ..................................... 62 Figuur 6 Excel 2003: waarschuwing bij macro beveiliging Hoog........................................... 63 Figuur 7 Excel 2002 en 2003: macro’s uitgeschakeld bij macro beveiliging Gemiddeld ....... 63 Figuur 8 Excel 2002: extra waarschuwing bij uitschakelen Bewerken knop .......................... 63 Figuur 9 Vooraf instellen macro beveiliging in Excel 2000 en 2002 [links] of 2003 [rechts] 64 Figuur 10 Venster bij gekoppeld bestand................................................................................. 64 Figuur 11 Knoppen met opschriften. Links + midden voor Service... blad. Rechts voor andere naam blad .................................................................................................................... 66 Figuur 12 Minimaal benodigde bladen .................................................................................... 67 Figuur 13 Voorbeeld scherm bij macrofout ............................................................................. 67 Figuur 14 Constanten met bladnamen [en lengte] ................................................................... 67 Figuur 15 Melding op Service... blad dat {i} object op rij 7 is gewijzigd ............................... 70 Figuur 16 Melding op Service... blad van gewijzigde cel op blad Transformation ................. 71 Figuur 17 Tijdelijk verwijderen en weer invullen tekst output object ..................................... 71 Figuur 18 Combinaties van k, o en x ....................................................................................... 72 Figuur 19 Het blad Admin na openen bestand ......................................................................... 74 Figuur 20 Output object leeg of alleen spaties ......................................................................... 74 Figuur 21 Diverse waarschuwingen bij controle Proces Objecten .......................................... 75 Figuur 22 Links: aanpassing nodig; midden: na normale controle; rechts: bij ernstige fout ... 75 Figuur 23 Waarschuwing vóór overzetten ............................................................................... 75 Figuur 24 Blad Service ontbreekt............................................................................................. 76 Figuur 25 Fouten in rijnummer ................................................................................................ 76 Figuur 26 Waarschijnlijk dubbele namen ................................................................................ 76 Figuur 27 Geen data aanwezig ................................................................................................. 76 Figuur 28 'k', 'x' of 'o' onder leeg object ................................................................................... 77 Figuur 29 Berichtenlijst na overzetten naar blad Service ........................................................ 77 Figuur 30 Knoppen op blad Admin.......................................................................................... 77 Figuur 31 Openen enkelvoudige boom in allCLEAR.............................................................. 78 Figuur 32 Voorbeeld boom voor range allCLEAR op blad Admin......................................... 78 Figuur 33 Conversie voor figuurtype en punctuation .............................................................. 79 Handleiding BPV Tool
57
1.1.6
Inhoud en figuren handleiding Figuur 34 Voorbeeld vanaf cel A1010 op blad Admin............................................................ 79 Figuur 35 Kopiëren Service blad met de muis. Let op plus in blad......................................... 80 Figuur 36 Bestaande definitie gebruiken? Ja! .......................................................................... 80 Figuur 37 Bestaande definitie via Office Assistent.................................................................. 80 Figuur 38 Beginnen met classificatie ....................................................................................... 82 Figuur 39 Standaard rij op Service... blad................................................................................ 82 Figuur 40 Verkeerde naam Service... blad ............................................................................... 82 Figuur 41 Aanbrengen classificatie. A: 1e keuze; B: 2e keuze; C: optionele extra keuzes; D: aanpassen keuzetekst................................................................................................... 84 Figuur 42 Verwisselen. A: venster na dubbelkikken op object; B: tweede klik buiten de rij; C: {k} object met keuzelijst alleen met ander {k} object wisselen; D: niet met {i} object wisselen....................................................................................................................... 84 Figuur 43 Ophalen tekst {i} object. Links geldig rijnummer; rechts geen geldig rijnummer . 85 Figuur 44 Kolombreedte op Service... blad aanpassen ............................................................ 85 Figuur 45 Classificatie uitbreiden? .......................................................................................... 86 Figuur 46 {k} object met keuzes verwijderen. Links: ervoor géén ander {k} object; Rechts: ervoor ander {k} object............................................................................................... 86 Figuur 47 Tak verwijderen? ..................................................................................................... 87 Figuur 48 Ene tak verwijderen en andere opschuiven ............................................................. 87 Figuur 49 A en B: vrije objecten; C: geen vrije objecten over na invoegen; D: begin geen vrije objecten ....................................................................................................................... 88 Figuur 50 Vrije {k} objecten.................................................................................................... 88 Figuur 51 Lijst met beschikbare objecten op blad Admin ....................................................... 90 Figuur 52 Uitbreiding berichtenlijst door ophalen {i} object .................................................. 90 Figuur 53 De twee knoppen op een Service... blad.................................................................. 91 Figuur 54 Voorbeeld berichtenlijst .......................................................................................... 91 Figuur 55 Niet aangepast {i} object bij overzetten .................................................................. 91 Figuur 56 Algemene instellingen allCLEAR ........................................................................... 94 Figuur 57 Uitzetten punctuation .............................................................................................. 94 Figuur 58 Preferences achteraf aanpassen ............................................................................... 94 Figuur 59 Pijlen bij lijnen wegwerken ..................................................................................... 95 Figuur 60 Diverse vormen en lay-out ...................................................................................... 95 Figuur 61 Openen Excel bestand in allCLEAR ....................................................................... 95 Figuur 62 Kiezen juiste werkblad ............................................................................................ 96 Figuur 63 Voor allCLEAR met gedeeld scherm ...................................................................... 96 Figuur 64 V-model en plaats BPV ........................................................................................... 99 Figuur 65 Een voorbeeld van een Dienst Model.................................................................... 102 Handleiding BPV Tool
58
1.1.6
Inhoud en figuren handleiding Figuur 66 Blad Admin............................................................................................................ 106 Figuur 67 Macro waarschuwing en advies............................................................................. 106 Figuur 68 Controle objecten................................................................................................... 106 Figuur 69 Waarschuwing tegen overschrijven Service blad .................................................. 106 Figuur 70 Verkeerd rijnummer opgegeven ............................................................................ 107 Figuur 71 Controle en overzetten klaar. Begin met classificatie ........................................... 107 Figuur 72 Aanbrengen classificatie........................................................................................ 107 Figuur 73 Tak verwijderen? ................................................................................................... 107 Figuur 74 {i} object verversen + beperkte controle............................................................... 107 Figuur 75 Object niet (meer) op blad Transformation ........................................................... 108 Figuur 76 Vrije objecten invoegen? ....................................................................................... 108 Figuur 77 Geen vrije objecten meer aanwezig....................................................................... 108 Figuur 78 Cel L3 geselecteerd ............................................................................................... 110 Figuur 79 Invoegen rechts van cel L3 .................................................................................... 110 Figuur 80 Verder invoegen, nu na cel M3 ............................................................................. 110 Figuur 81 Met hetzelfde venster invoegen na N3 .................................................................. 110 Figuur 82 En na cel O3 .......................................................................................................... 110 Figuur 83 Cel K5 geselecteerd en op {Delete} of {Backspace} gedrukt. Hele tak weghalen? ................................................................................................................................... 111 Figuur 84 Tak no weggehaald en tak maybe opgeschoven naar boven ................................. 111 Figuur 85 Nu 2 takken. Cel K4 geselecteerd en {Delete}. Verwijder deze tak en de andere opschuiven?............................................................................................................... 111 Figuur 86 Onderste tak weer teruggezet naar links [en omhoog] .......................................... 111 Figuur 87 Beginpositie voor keuzes na I3.............................................................................. 111 Figuur 88 Eerste keuze na {k} object in I3 ............................................................................ 112 Figuur 89 Eerste tak verplaatst en tweede verplichte keuze .................................................. 112 Figuur 90 Eerste tak gekopieerd achter tweede keuze ........................................................... 112 Figuur 91 Klaar met twee keuzes toevoegen ......................................................................... 112 Figuur 92 Extra keuze onder not payer toevoegen ................................................................ 113 Figuur 93 Meteen opent lijst met vrije objecten voor achter keuze ....................................... 113 Figuur 94 Drie objecten toegevoegd na nieuwe keuze .......................................................... 113
Handleiding BPV Tool
59
1.1.6
Inleiding
1 Inleiding De methode BPV kent verschillende modellen, specifiek het Transformatie Model het Dienst Model en het IT/AO Model. Ten behoeve van het snel(ler) maken van de classificatiebomen, die het Dienst Model100 van de BPV methode101 ondersteunen, is een prototype gereedschap102 gemaakt. Dit gereedschap bestaat uit een Excel werkblad103 dat na sluiten kan worden geïmporteerd in allCLEAR. Dit laatste programma is eigenlijk bedoeld voor het opzetten en doorlopen van stroomschema’s. Hier wordt het uitsluitend gebruikt als hulpmiddel voor het tekenen van de bomen. Deze bomen bevatten in principe alle paden die moeten worden doorlopen bij een volledige test. Voor intern gebruik bij Atos Origin kan een rekenmodel worden gekoppeld aan de invoer data. Dit is slechts heel beperkt of niet in deze handleiding behandeld.104
Figuur 1 Voorbeeld invoergegevens op het werkblad Transformation
Het Excel bestand is zodanig opgezet dat via het wijzigen van één parameter constante zowel met een Nederlandse als een Engelse versie – voor vaste teksten en boodschappen – kan worden gewerkt.105
100
Zowel de term Dienst Model als diensten model – al dan niet met (begin)hoofdletters geschreven of eventueel aan elkaar – komen voor. Als Engelse vertaling is aanvankelijk Service Model gehanteerd, later vervangen door Service Object Model..
101
Klaas Smit, Business Process Validation (Den Haag, 2005) Academic Service. Bijlage 1 BPV bevat een korte uiteenzetting van enkele aspecten van deze methode. 102
Verder veelal aan te duiden als tool.
103
Diverse testversies van de Excel bestanden voor dit tool zijn in omloop. Deze handleiding geldt in detail uitsluitend voor bestanden met in eigenschappen onder opmerkingen de tekst Volgens handleiding 1.1.2 [of mogelijk een hoger nummer] Bij latere versies van de Excel bestanden en de handleiding is het de bedoeling dat een wijzigingen lijst wordt bijgehouden en de nummers worden aangepast. 104
Inlichtingen bij Klaas Smit of Marleen de Jong. Op het blad Transformation in Excel zijn hiervoor de kolommen C t/m K gereserveerd. Eventuele aanpassing van de formules in kolom K zou ook nodig kunnen zijn omdat die een vaste volgorde veronderstellen van de verderop te behandelen codes k, o en x. Voor de werking van het tool zijn geen eisen aan de volgorde gesteld. Echter uitsluitend de drie genoemde worden verwerkt.
In de gehanteerde voorbeelden zijn de kolommen A t/m C evenals de rijen 1 en 2 als titels geblokkeerd. Daarnaast zijn de kolommen C t/m J (tijdelijk) verborgen. Indien het Atos Origin rekenmodel is gekoppeld zal de situatie anders zijn.
Handleiding BPV Tool
60
1.1.6
Inleiding
Op verzoek van Atos Origin is zoveel mogelijk gebruik gemaakt van vensters met knoppen om de gebruiker te begeleiden en te waarschuwen. Dit heeft zowel voordelen als nadelen. Immers bij veel fouten zal er een grote hoeveelheid foutboodschappen verschijnen die allemaal met OK moeten worden bevestigd. Bij onoordeelkundig of foutief gebruik kan het leiden tot een onaanvaardbare hoeveelheid foutboodschappen waar steeds op moet worden gereageerd. Vooralsnog is de enige oplossing de macro’s te onderbreken via {Ctrl Break}. In een toekomstige meer definitieve versie moet vanzelfsprekend een betere oplossing worden gekozen. Waar het hier een prototype betreft om ervaring mee op te doen is de veilige foutafhandeling tot een minimum beperkt of zelfs totaal afwezig.
105
Commentaar is – voor zover in de bladen zelf aanwezig – uitsluitend in het Nederlands uitgevoerd. In de VBA Module Constant staat: #Const boolNL = True voor de NL versie en #Const boolNL = False voor de UK [Engelstalige] versie.
Handleiding BPV Tool
61
1.1.6
Openen Excel bestand
2 Openen Excel bestand Afhankelijk van de Excel versie komt mogelijk een van de volgende vensters. Die zijn (bijna) alleen weergegeven voor de Nederlandse versies. Overeenkomstige Windows zijn er vanzelfsprekend in Engelstalige versies. Excel 2007 is (nog) niet bekeken. Vooraf kan de beveiliging voor macro’s zijn ingesteld op (Extra) Hoog, Gemiddeld of Laag. Bij Gemiddeld komt er een scherm als in Figuur 2 of Figuur 3.
Figuur 2 Openingsvenster voor Excel 2000 - 2003 bij macro beveiliging Gemiddeld
Figuur 3 Excel 2000: alternatief venster bij macro's [met digitale handtekening]
Indien de macro beveiliging vooraf op Hoog is ingesteld komt er géén waarschuwing in Excel 2000. Dat de macro’s niet zijn ingeschakeld blijkt dan bijvoorbeeld uit de knoppen.
Figuur 4 Excel 2000: geen actie maar selecteren bij klikken op knop en macro beveiliging Hoog
Voor Excel 2002106 komt er bij niveau Hoog een scherm als in Figuur 5.
Figuur 5 Excel 2002: venster bij ingestelde macro beveiliging Hoog
In Excel 2003 komt een heel verhaal als in Figuur 6. Na OK is dan de situatie als in Excel 2000 en geeft het effect van Figuur 4 nog een indicatie of verschijnt een venstertje als in Figuur 7. 106
Ook vaak aangeduid als Excel XP.
Handleiding BPV Tool
62
1.1.6
Openen Excel bestand
Figuur 6 Excel 2003: waarschuwing bij macro beveiliging Hoog
Bij ingesteld niveau Laag komt er verder geen waarschuwing en worden macro’s vanzelf geactiveerd. Het niveau Gemiddeld heeft dus de mogelijkheid wel of niet inschakelen. Let op dat de vooraf ingestelde keuze Macro’s uitschakelen is. Zie Figuur 2. Indien deze default waarde wordt gekozen verschijnt er (meestal) een klein venstertje (ongeveer) als in Figuur 7.
Links: NL; rechts UK Figuur 7 Excel 2002 en 2003: macro’s uitgeschakeld bij macro beveiliging Gemiddeld
Als op de knop [met de meetdriehoek] bewerken uitschakelen van Figuur 7 wordt geklikt komt er nog een venster als Figuur 8 voor Excel 2002 of als Figuur 6 bij Excel 2003. Klikken op het X rechtsboven het venstertje [afsluiten] sluit dit af en de situatie voor Excel 2000 [zie Figuur 4] geeft nog enige indicatie.
Figuur 8 Excel 2002: extra waarschuwing bij uitschakelen Bewerken knop
Instellen van het beveiligingniveau kan via de Menukeuze Extra, Macro, Beveiliging… Zie Figuur 9. Het advies is die in te stellen op het beveiligingsniveau Gemiddeld.
Handleiding BPV Tool
63
1.1.6
Openen Excel bestand
Figuur 9 Vooraf instellen macro beveiliging in Excel 2000 en 2002 [links] of 2003 [rechts]
Bij het invoeren van compleet nieuwe data – en het aanbrengen van externe koppelingen – op het werkblad Transformation [zie Figuur 1] kan het zinvol zijn de macro’s uit te schakelen. Dan moeten daarna de wijzigingen worden opgeslagen, het gehele Excel bestand worden gesloten en daarna opnieuw geopend met macro’s weer wel ingeschakeld. Als er een rekenmodel aan blad Transformation is gekoppeld zal er nog een scherm als in Figuur 10 verschijnen, al dan niet gevolgd door een venster dat het gekoppelde bestand niet kan worden gevonden.
Figuur 10 Venster bij gekoppeld bestand
Afhankelijk van versie of instellingen van Excel kunnen nog andere vensters verschijnen. De meest voorkomende vensters zijn hierboven – voor de Nederlandstalige versies – wel behandeld.
Handleiding BPV Tool
64
1.1.6
Direct na openen Excel bestand
3 Direct na openen Excel bestand Als het bestand met macro’s ingeschakeld wordt geopend, gebeurt het volgende: Er wordt gekeken of de rangenaam TR [op het blad Admin] bestaat en hierin wordt dan de standaardnaam voor het blad Transformation gezet. Alle werkbladen, behalve Transformation, worden beschermd met een wachtwoord.107 Als de naam van een werkblad met Service begint worden de teksten van de twee knoppen ingesteld.108 Zie ook Figuur 11. Als er op een blad met een andere naam twee knoppen mochten zijn zoals op een Service…109 blad, dan wordt de tekst van de bovenste knop gewijzigd en de tweede onzichtbaar gemaakt.110 Er wordt gekeken of de rangenamen j en old aanwezig zijn. Indien dit het geval is worden de gegevens uit rij 2 [de cellen A2 t/m IS2] op het blad Transformation getransponeerd en als waarden geplakt onder het gebied old [cel IV30000]111 Het blad Admin wordt geactiveerd.112
Figuur 11 Knoppen met opschriften. Links + midden voor Service... blad. Rechts voor andere naam blad
De volgende bladen dienen minimaal aanwezig te zijn: Transformation, Admin en Service.113
107
De bescherming heeft niet tot doel informatie te verbergen maar om wijziging per ongeluk zoveel mogelijk uit te sluiten. Dit bevordert daarmee ook de consistentie. 108
Indien de twee knoppen niet aanwezig mochten zijn op een Service… blad treedt een macrofout op. In de lijst op het blad Admin staat voor welke cellen deze gebieden opnieuw kunnen worden gedefinieerd.
109
Service… staat voor een willekeurig blad waarvan de naam met Service begint. Alle bladnamen zijn hoofdlettergevoelig!
110
Als de naam van een blad wordt gewijzigd waarop twee knoppen – al dan niet zichtbaar – zoals hier bedoeld aanwezig zijn, dan zullen de opschriften eventueel pas wijzigen nadat een van de standaard acties is uitgevoerd. Zie hiervoor 7.1 Starten acties. 111
De gegevens worden hier bewaard om een eventuele wijziging in de objectenlijst te kunnen verwerken op Service... bladen. 112
Een kleine extra indicatie voor de toestand is dat cel A1 is geselecteerd direct na openen bij macro’s ingeschakeld en cel B1 indien de laatste keer is opgeslagen met macro’s ingeschakeld en daarna is geopend met macro’s uitgeschakeld.
Handleiding BPV Tool
66
1.1.6
Direct na openen Excel bestand
Figuur 12 Minimaal benodigde bladen
Zonder de bladen Transformation [eigenlijk de gebieden j en old hierop] en Admin [met hierop TR] zal een macrofout optreden. Zie bijvoorbeeld Figuur 13.114
Figuur 13 Voorbeeld scherm bij macrofout
Er mogen natuurlijk meer bladen zijn. Normaal gesproken zijn er eventueel meerdere bladen waarvan de naam met Service begint, idem met Tree en bij een goed gebruik ook nog een blad Check. 115 Het veranderen van bladnamen – ook de beveiligde – evenals het verwijderen van bladen is steeds toegestaan. Het dient daarom aanbeveling wel steeds een kopie te bewaren.116 Indien andere standaardnamen voor de bladen gewenst zouden zijn, dan is dat mogelijk door aanpassing van zowel de bladnamen als (identiek) het lijstje constanten in de VBA module Constant. Public Public Public Public Public Public Public 'Namen
Const Ch As String = "Check" Const Ad As String = "Admin" Const Tree As String = "Tree" Const LTree As Integer = 4 'lengte string voor blad Tree Const Se As String = "Service" Const LSe As Integer = 7 'lengte string voor blad Se Const Tr As String = "Transformation" van werkbladen hierboven
Figuur 14 Constanten met bladnamen [en lengte]
113
Als er een blad met de twee knoppen [waarvan er dan slechts eventueel één zichtbaar is] – zoals op een Service… blad – aanwezig is, dan kan dit een nieuwe naam krijgen of hiervan een kopie worden gemaakt waarvan dan de naam in Service [dus zonder verder iets erachter] wordt veranderd.
114
In dit prototype is geen poging gedaan dit soort macrofouten af te vangen.
115
De Tree… bladen zijn de input voor allCLEAR en worden (zonodig gemaakt en daarna) gevuld via een knop op een Service… blad. Het blad Check wordt gemaakt bij een controle van de objecten op het blad Transformation via een knop op het blad Admin. Zie ook 5 Acties op het blad Admin.
116
Ook wijzigingen niet opslaan werkt niet omdat – bij ingeschakelde macro’s – het Excel bestand steeds (opnieuw) wordt opgeslagen bij sluiten. Niet opslaan van wijzigingen is slechts mogelijk door het bestand éérst onder een andere naam op te slaan voor sluiten. Dan moet er natuurlijk niet eerder op de knop of menukeuze Opslaan zijn geklikt.
Handleiding BPV Tool
67
1.1.6
Direct na openen Excel bestand
Dit vereist natuurlijk wel enige voorzichtigheid. In deze handleiding wordt steeds gebruik gemaakt van de standaardnamen. Het lijkt daarnaast uit oogpunt van uitwisselbaarheid een aanpassing van de standaardnamen uitsluitend te realiseren indien een grotere gebruikersgroep hier behoefte aan heeft en dan ook iedereen hetzelfde Excel sjabloon gebruikt.
Handleiding BPV Tool
68
1.1.6
Vullen of aanpassen Transformation blad
4 Vullen of aanpassen Transformation blad Voor een nieuw project zal eerst het Transformation blad moeten worden gevuld. Het kan soms handig zijn dit met uitgeschakelde macro’s te doen. Na aanpassing dan – liefst onder een andere naam – opslaan, sluiten en opnieuw openen [nu met macro’s ingeschakeld].117 Als de macro’s zijn ingeschakeld blijft het blad Transformation onbeschermd. Belangrijk hier zijn rij 2 en kolom B.118 In kolom B staan de Input Objecten {i} en in rij 2 de Proces Objecten, te gebruiken als {k}, {o} en/of {x} objecten.119 In principe is er geen beperking aan het aantal rijen voor {i} objecten in kolom B. De diverse soorten Proces Objecten mogen staan in rij 2 van kolom K t/m IS.120 Zie ook Figuur 1. Zodra een {i} object in kolom B een nieuwe waarde krijgt worden alle cellen A1 op Service… bladen onderzocht of het rijnummer dat achter de naam van een {i} object staat overeen komt met het rijnummer van de cel op blad Transformation waar zojuist een wijziging had plaats gevonden. Dan wordt de tekst in die A1 cellen vooraf gegaan door ##!##. Deze controle vindt uitsluitend plaats indien één cel was geselecteerd.121 Op de Service… bladen komt dan in de berichtenlijst een regel beginnend met Trans[002]!B gevolgd door het rijnummer, de nieuwe tekst van het {i} object en datum/tijd. {Ctrl Home} voor terug naar BEGIN #7: {i}General wish{00007} 4-3-2007 20:16:03 OK Trans[002]!B7: Special wish 4-3-2007 20:16:15 NIEUWE WAARDE Figuur 15 Melding op Service... blad dat {i} object op rij 7 is gewijzigd
Wijziging van een waarde x, o of k in de kolommen onder de output namen resulteert eveneens in het markeren van het op dezelfde rij staande {i} object op de Service… bladen als hierboven aangegeven. Dit is een waarschuwing dat er mogelijk nu te veel
117
Zie hiervoor ook 2 Openen Excel bestand.
118
In de VBA Code en in de formules op blad Admin wordt pas bij nieuwere bestanden [met bij eigenschappen: Volgens handleiding 1.0.0 of eventueel hoger] verwezen naar de rij van range j. Dit is nu 2 maar (enkele) regels hierboven in het blad Transformation toevoegen zou toegestaan zijn. De regels met codes moeten wel 2 rijen onder de rij van j beginnen. Standaard: j =Transformation!$A$2:$IS$2 119
De term Proces Objecten wordt generiek gebruikt, dus voor alle objecten die géén input object zijn. Hoewel het onwaarschijnlijk is dat zoiets nodig zou zijn is het overigens wel mogelijk een Input Object te definiëren als een celverwijzing naar een Proces Object of omgekeerd. Namen definiëren via samenvoegen van teksten is ook toegestaan. Aanpassing kost dan wel meer tijd omdat elke afhankelijke cel [dependent cell] – op blad Transformation – van de gewijzigde cel ook moet worden bewerkt. 120
Voor de controle van namen wordt gekeken vanaf kolom K. Indien een hoger of lager kolomnummer nodig zou zijn kan dit worden ingesteld door aanpassing van: Const Oset As Integer = 11 bovenaan in de VBA module Constant. Dit getal wordt opgeteld bij het nummer voor de eerste kolom van range j. Voor rij 2 zie hierboven.
121
Zovel meerdere Proces Objecten als Input Objecten tegelijk wissen [deleten] kan dus wel. Als de bovenste rij van het te wissen gebied dezelfde is als van range j, dan worden de overeenkomstige cellen in de lijst onder range old ook gewist. Bij erg veel werkbladen in het Excel bestand zou verwerking op de Service… bladen dit wel veel tijd gaan kosten. Er worden dan ook geen aanpassingen verzorgd voor Proces Objecten of meldingen in de lijsten op Service… bladen vermeld! Afsluiten en opnieuw openen zal dan meestal noodzakelijk zijn.
Handleiding BPV Tool
70
1.1.6
Vullen of aanpassen Transformation blad
of te weinig Proces Objecten op het betreffende Service… blad staan.122 Daarnaast komt er daar ook weer een regel bij in de berichtenlijst met Trans gevolgd door het kolomnummer tussen [], de celverwijzing, de waarde (tekst) van de cel, het bijbehorende Proces Object op het blad Transformation en datum/tijd. {Ctrl Home} voor terug naar BEGIN #4: {i}Wish to mail a potential contracting party{00004} 4-3-2007 19:28:04 OK Trans[015]!O4: x: Participant 4-3-2007 19:45:38 NIEUWE WAARDE Figuur 16 Melding op Service... blad van gewijzigde cel op blad Transformation
Een verandering van de namen van Proces Objecten in de cellen binnen range j resulteert in principe direct in wijziging van de overeenkomstige namen in cellen op de Service… bladen. Hiervoor is het wel nodig dat eerder de oude gegevens waren opgeslagen onder de range old. Dit gebeurt bij het openen van het Excel bestand en na iedere wijziging van een Proces Object naam. Het zal duidelijk zijn dat eerst een Proces Object naam wissen en dan in een volgende ronde weer een waarde geven problemen op zou kunnen leveren. Het verdient daarom altijd aanbeveling een nieuw project zover mogelijk op het blad Transformation op te zetten en pas daarna met Service… bladen aan de slag te gaan. Toch is het (tijdelijk) wissen toegestaan. Dan komt er een waarschuwing in het betreffende object op een Service… blad. Zodra er weer een tekst wordt ingevuld voor een Proces Object op het blad Transformation, dan wordt deze tekst ook weer ingevuld op Service… bladen. {i}Special wish{00007}
{o}##!##[015]
{x}Potential participant
Boven na verwijdering object, onder na invullen nieuwe tekst {i}Special wish{00007}
{o}Participant
{x}Potential participant
Figuur 17 Tijdelijk verwijderen en weer invullen tekst Output Object
Namen van Proces Objecten mogen dus wel achteraf [na eventueel eerder wel minstens een keer sluiten en openen met macro’s actief] worden gewijzigd. Echter verwijderen of toevoegen van cellen in deze rij resulteert in een foute controle of foute waarden.123 Omwisselen van namen kan wel heel gemakkelijk tot fouten leiden.124 Achteraan namen toevoegen is toegestaan [mits binnen het gebied j] en indien daar dan ook codes worden ingevuld kunnen die meteen worden toegevoegd op Service… bladen en anders zal dit foutboodschappen of waarschuwingen kunnen geven bij overzetten van Service... bladen naar Tree… bladen.
122
Teveel automatische aanpassingen leek gevaarlijk voor het totaal overzicht. Daarom is gekozen voor directe aanpassingen van de teksten van Output Objecten – zonder vermelding in de berichtenlijsten – en markering van de {i} objecten als hiervan de tekst is gewijzigd dan wel de codes k, o en/of k zijn veranderd voor het betreffende {i} object. Deze veranderingen worden wel aangetekend in de berichtenlijst. 123
Bij het verwijderen van de tekst van één output object [per keer] op blad Transformation worden op de betreffende Service… bladen de teksten vervangen door de tekst ##!## gevolgd door het kolomnummer in []. Dit nummer wordt weer gezocht indien opnieuw een tekst wordt ingevuld. Daarin is het verwijderen van een cel [waardoor alles erachter naar links schuift] of het toevoegen [waardoor alles er achter naar rechts schuift] op het blad Transformation niet toegestaan. Controle hierop vindt echter niet plaats. 124
Dubbele namen geven zonder meer problemen.
Handleiding BPV Tool
71
1.1.6
Vullen of aanpassen Transformation blad
Nadat de namen van te gebruiken objecten zijn gedefinieerd is het de bedoeling dat in dezelfde rij als een Input Object via codes wordt aangegeven welke Proces Objecten hierbij een rol kunnen spelen. Als aanvulling op de gegevens in het boek gelden de volgende regels: Per bedrijfsproces [Business Process] is er slechts één Input Object {i}125; Output Objecten {o} zijn het resultaat van een bedrijfsproces; Katalysator Objecten {k} spelen een rol bij de bedrijfsprocessen doordat ze verschillende keuzes veroorzaken [en dus ook verschillende paden voor een testtraject]; Verwijderde Objecten {x} verdwijnen door het bedrijfsproces126; {o}, {k} en {x} objecten worden gezamenlijk wel aangeduid als Proces Objecten; Het {o} object van het ene proces kan weer dienst doen als {k} object bij een ander proces; Een {k} object kan (later) in hetzelfde proces worden vernietigd, dus ook optreden als {x} object127; Vooralsnog wordt geen enkele combinatie van o, k of x in het tool uitgesloten.
Figuur 18 Combinaties van k, o en x
Iemand zou al bekend kunnen zijn als Potentiële deelnemer en dan Deelnemer worden. Het is ook mogelijk dat iemand nog helemaal niet bekend is en daardoor eerst Potentiële Deelnemer moet worden. Met macro’s ingeschakeld zal na invoeren in één cel en afsluiten met {Enter}, {→}, {←}, {↑}, {↓} of het bekende groene vinkje op de formulebalk het volgende gebeuren:
Voor kolom nummer <3 [A en B] én rij nummer <60000: de cel onder de invoercel wordt geselecteerd. Voor kolom nummer >3 én < 253 [C t/m IR]: de cel rechts van de invoercel wordt geselecteerd. In andere gevallen geldt de standaard Excel actie.
Hetzelfde geldt bij veranderingen die natuurlijk alleen met {Enter} of het groene vinkje kunnen worden afgesloten. 125
Voor het tool is een {i} object noodzakelijk.
126
Hierbij is het wel mogelijk dat ze onder een andere naam [en met een andere functie] weer (elders) opduiken. De namen Verwijderde Objecten en Te vernietigen Objecten kunen eventueel door elkaar worden gebruikt. 127
Binnen het tool wordt niet gecontroleerd of een {x} object misschien [door omwisseling] ‘dichter’ bij een {i} object staat dan een {k} object met dezelfde naam.
Handleiding BPV Tool
72
1.1.6
Acties op het blad Admin
5 Acties op het blad Admin Ba openen van een Excel bestand met macro’s ingeschakeld zal na enig voorbereidend werk [zie 2 Openen Excel bestand] het blad Admin actief worden gemaakt.
Figuur 19 Het blad Admin na openen bestand
5.1 Controle Proces Objecten Vóórdat met het overzetten van blad Admin wordt begonnen kan het zinvol zijn éérst een verdere controle uit te voeren op de diverse Proces Objecten op het blad Transformation. Dit kan via de onderste knop op het blad Admin [zie Figuur 19]. Er wordt gezocht naar de eerste niet-lege cel vanaf rechts. Als daarna [dus meer naar links] een lege cel of eentje met alleen spaties komt stopt de test na een melding als in Figuur 20.
Figuur 20 Output Object leeg of alleen spaties
Als deze test bevredigend was worden alle termen paarsgewijs vergeleken. Deze vergelijking is hoofdletter ongevoelig. Wel worden in de boodschappen de exacte teksten weergegeven. De volgende tests worden achtereenvolgens uitgevoerd. Stel dat we twee teksten voor Proces Objecten A en B hebben. Beiden worden voor de tests als kleine letters beschouwd: A = B Eerst aanpassen voor verdere test; zs(A) = zs(B)128 Dezelfde tekst op spaties na, dit kan problemen geven; A bevat B Dit hoeft geen probleem op te leveren; 128
Met zs wordt een functie bedoeld die alle spaties uit de betreffende tekst verwijdert.
Handleiding BPV Tool
74
1.1.6
Acties op het blad Admin
zs(A) bevat zs(B) Op spaties na, dit kan problemen geven;129 Idem B bevat A en zs(B) bevat zs(A).
Figuur 21 Diverse waarschuwingen bij controle Proces Objecten
Er wordt dan een lijst gemaakt op het blad Check met de foutmeldingen en hoe vaak de Proces Objecten zijn gebruikt als {k}, {o}, of {x} object. Zie Bijlage 2 Voorbeeld controlelijst. Bij een serieuze fout wordt de totale lijst niet gegenereerd. De opmerkingen op het blad Check zouden voldoende moeten zijn om de (vermoedelijke) fout op te sporen.
Figuur 22 Links: aanpassing nodig; midden: na normale controle; rechts: bij ernstige fout
5.2 Overzetten naar blad Service In cel D4 op het blad Admin [zie Figuur 19] moet het nummer worden opgegeven van de rij op blad Transformation waarvoor een classificatieboom moet worden opgezet op het blad Service. Er wordt altijd overgezet naar het blad Service. Daarom komt er na klikken op de knop overzetten [zie Figuur 19 of Figuur 30] eerst een waarschuwing dat misschien dit blad eerst moet worden gekopieerd. NEE geeft de kans dit eerst te doen.
Figuur 23 Waarschuwing vóór overzetten
Er is natuurlijk ook een kleine kans dat er helemaal geen blad Service is. Er wordt dan nog wel gekeken of er een ander blad is dat met die naam begint.
129
Meestal zal dit niet het geval zijn. Een verdere detail uitsplitsing is niet gebruikt, maar vooral spaties aan het einde of begin van een tekst zouden fouten kunnen genereren bij aanpassing van de teksten die dan mogelijk niet juist worden aangepast op de Service… bladen
Handleiding BPV Tool
75
1.1.6
Acties op het blad Admin
Figuur 24 Blad Service ontbreekt
Vóór het overzetten van output elementen naar het blad Service worden nog enkele eenvoudige testen uitgevoerd. De eerste is een controle of wel een getal is ingevoerd en zo ja of dit in het juiste gebied ligt.130 Zie Figuur 25.
Figuur 25 Fouten in rijnummer
Het is natuurlijk mogelijk dat er twee identieke Proces Object namen zijn die beiden worden gebruikt bij het betreffende {i} object.131 De formules op het blad Admin slaan dan op hol. Daarom komt er dan de melding als in Figuur 26.
Figuur 26 Waarschijnlijk dubbele namen
Als er helemaal geen k, o of x achter een {i} object staan op blad Transformation verschijnt de melding van Figuur 27.
Figuur 27 Geen data aanwezig
Als er een k, o of x onder een leeg Proces Object staat komt Figuur 28.
130
Hier is het juiste gebied 2 rijen onder range j [standaard rij 2] tot 60000. Als een niet-geheel getal wordt opgegeven wordt dit afgerond op Service… bladen en niet afgerond weergegeven in de boom op blad Admin.
131
Bij een controle van het blad Transformation zou dit al aan het licht zijn gekomen.
Handleiding BPV Tool
76
1.1.6
Acties op het blad Admin
Figuur 28 'k', 'x' of 'o' onder leeg Proces Object
Als alles goed is overgezet naar het blad Service dan wordt hier een berichtenlijst ingevuld: {Ctrl Home} voor terug naar BEGIN #4: {i}Wish to mail a potential contracting party{00004} 4-3-2007 19:28:04 OK Figuur 29 Berichtenlijst na overzetten naar blad Service
Er zijn algemene controles via de knop controle Transformation en daarnaast nog specifieke bij het overzetten van een bepaalde rij via overzetten naar Service.
Figuur 30 Knoppen op blad Admin
5.3 Verdere informatie op blad Admin Op blad Admin kan dus het overzetten van data naar het blad Service worden geregeld. Er staat echter meer informatie op dit blad. Vanaf cel A1 staat in kolom A alle informatie die nodig is om in allCLEAR om alle elementen in een kolom onder elkaar te tekenen die bij een input object {i} behoren zoals ingesteld door het regelnummer in cel D1. Hierbij geldt:
Een normale boom is zichtbaar bij een juist regelnummer voor {i} objecten met k, o of x er achter. Veel waardes #N/B zijn zichtbaar indien twee gelijke namen voor gebruikte Proces Objecten voorkomen. Cellen zijn leeg en alleen cel A4 op het blad Admin bevat #WAARDE! indien een onjuist regelnummer is opgegeven. Het hele bovendeel van kolom A is leeg indien een rijnummer is opgegeven van een lege rij of het {i} object leeg is. Andere fouten zoals lege Proces Objecten met k, o of x er onder zijn her niet direct zichtbaar. Er zijn dan wel oneven regels met de tekst: &0. [dus inclusief de punt]
Handleiding BPV Tool
77
1.1.6
Acties op het blad Admin
Figuur 31 Openen enkelvoudige boom in allCLEAR
Figuur 32 Voorbeeld boom voor range allCLEAR op blad Admin
Voor de boom op blad Admin zijn geen macro’s nodig. Alles informatie is opgebouwd via formules. Als er in Excel op het blad Transformation dubbele Proces Object namen zijn gebruikt en onder beiden ook k, o of x is gebruikt zal deze lijst dus foutief zijn. Dit overzicht kan nuttig zijn om te bepalen of objecten ontbreken, etc. De standaardvolgorde hierbij is: {i}, {k}, {o}, {x}. De formules waarmee alles wordt berekend vragen meer dan 8 niveaus van nesting. Daarom zijn ze in meerdere stappen opgebouwd.132 Via een tabel en de functie VERT.ZOEKEN worden de gegevens uit kolom C [vanaf rij 501] omgezet naar het formaat vanaf A1. Zie hiervoor ook Figuur 19.
132
De formules staan in de cellen A501:C999. In kolom A worden alle {k} objecten opgezocht. In kolom B worden dan de {o} objecten hieraan toegevoegd en in C de {x} objecten.
Handleiding BPV Tool
78
1.1.6
Acties op het blad Admin *i*
{i}[SHAPE=37]
*k*
{k}[SHAPE=30]
&
*o*
{o}[SHAPE=27]
&
*x*
{x}[SHAPE=87]
&
*x> *q*
Figuur 33 Conversie voor figuurtype en punctuation
Bij een andere keuze van figuren of wijze van tekenen in allCLEAR kan de lijst van Figuur 33 worden aangepast. De gegevens in kolom C [vanaf rij 501] worden ook omgezet naar een ander formaat in regel 1010. Van hieruit worden de gegevens via de knop [Figuur 30] omgezet naar blad Service.133 {i}Wish to {k}contract of {k}Potential mail a service A, B, participant potential C, D contracting party{00004}
{o}contract of {o}Mailing service A, B, C, D
{o}Potential participant
####
6 Figuur 34 Voorbeeld vanaf cel A1010 op blad Admin
133
In regel 1008 wordt geteld hoe vaak het in dezelfde kolom eronder staande object is gebruikt indien objecten (weer) toegevoegd zouden moeten worden op een Service... blad. Voor gebruik links van de plaats waar een object ingevoegd zou moeten worden [dus inclusief het element waarop men staat] wordt een 1 gezet. Voor ieder gebruik rechts wordt 100 bijgeteld. Gebruik in meerdere takken levert dan dus een 100-voud op.
Handleiding BPV Tool
79
1.1.6
Kopiëren van Service… bladen
6 Kopiëren van Service… bladen Bij antwoord JA [zie Figuur 23] vóór het overschrijven van het blad Service en neerzetten van de nieuwe boom kan het zinvol zijn een bestaand blad met informatie eerst te kopiëren. Dit kan natuurlijk via de menukeuze Bewerken, Blad verplaatsen of kopiëren… Heel efficiënt werkt het ingedrukt houden van de (linker) {Ctrl} toets en het verslepen van de blad tab onderaan.
Figuur 35 Kopiëren Service blad met de muis. Let op plus in blad
Tijdens dit proces kan een venster verschijnen als Figuur 36 of ongeveer een gelijksoortige tekst in de Office Assistent. Zie Figuur 37. Het antwoord dient JA te zijn!
Figuur 36 Bestaande definitie gebruiken? Ja!
Service… bladen mogen een andere naam krijgen mits die maar begint met Service [dus inclusief de begin hoofdletter]
Figuur 37 Bestaande definitie via Office Assistent
Handleiding BPV Tool
80
1.1.6
Bewerken data op Service… bladen
7 Bewerken data op Service… bladen Nadat alle informatie vanaf het blad Admin is overgezet door het antwoord NEE te geven op de vraag van Figuur 23 komt er Figuur 38. Na OK kan het bouwen van classificatiebomen losbranden.
Figuur 38 Beginnen met classificatie
Hier gelden weer een aantal regels: Iedere object naam wordt direct voorafgegaan door {i}}, {k}, {o} of {x}. Het {i} object staat altijd in cel A1; Standaard worden eerst de {k} objecten in de volgende kolommen gezet [en geel gekleurd] in de volgorde zoals aangegeven op het blad Admin; Hierna idem {o} objecten [lichtgroen] en als laatste {x} objecten [grijs]; Het blad is beveiligd zodat normaal gesproken alleen via de speciale commando’s aanpassingen mogelijk zijn.
Figuur 39 Standaard rij op Service... blad
Er zijn een aantal acties mogelijk. In principe komen er altijd vensters met opties. Alleen de simpele verwijdering van een object wordt meteen uitgevoerd. De elementen rechts hiervan schuiven op.134 Als de naam van een Service… blad wordt veranderd zodat die niet met Service begint zal er bij het initiëren van bepaalde hieronder te beschrijven acties een bericht verschijnen als in Figuur 40.
Figuur 40 Verkeerde naam Service... blad
134
De functionaliteit komt dus overeen met Verwijderen…, Cellen naar links verplaatsen. De toets om dit te bewerkstellingen is echter {Delete}. Zie Figuur 41 voor de verschillende vensters.
Handleiding BPV Tool
82
1.1.6
Bewerken data op Service… bladen
7.1 Starten acties Er zijn speciale manieren om de acties te starten. Hieronder wordt uitgegaan van de handelingen met de muis of speciale toetsen. De muis handelingen zijn klikken met de rechter muisknop of dubbelklikken op een cel. De speciale toetsen zijn {Delete} of {Backspace} aan de ene kant en {Insert}, {Page Up} of {+} aan de andere kant.135 In 7.2 worden de acties nogmaals herhaald maar dan vanuit de soorten acties bekeken. Het gaat over aanbrengen van classificatie keuzes, verwijderen van objecten, verwisselen van objecten, toevoegen van objecten en enkele specifieke, andere acties.
7.1.1 Klikken met de rechtermuisknop Op een ongesplitst136{k} object: aanbrengen van classificatie keuzes achter het {k} object. o Door een classificatie schuift alles rechts van het {k} object een rij omlaag. o Bij iedere vervolg keuze wordt alle informatie rechts [de complete rechterboom] gekopieerd.137 o Minimaal twee keuzes zijn verplicht. Extra keuzes zijn optioneel. Op een al aangebrachte classificatie keuze: achteraf wijzigen van de tekst van een classificatie keuze. Op andere objecten: invoegen van vrije objecten.138
135
Sommige toetsenborden geven problemen met {Insert}, daarom zijn de twee andere toetsen toegevoegd. Helaas is uitsluitend de {+} van het normale toetsenbord bruikbaar en niet die van het numerieke toetsenbord. De toetsen {Insert} en {Del} van het numerieke toetsenbord hebben wel effect als {Num Lock} is uitgeschakeld. Bij {Num Lock} ingeschakeld is er geen effect, behoudens de waarschuwing dat de cel beveiligd is en dus alleen-lezen. 136
Een ongesplitst {k} object heeft nog geen classificatie. Iedere classificatie moet minstens twee keuzes bevatten. Klikken met de rechtermuisknop op {k} objecten met een classificatie heeft géén effect.
137
Hier zit met name een voordeel van het tool. Als het {k}} object het meest rechtse is zal de lijst met vrije objecten worden geopend. Zie 7.1.4 De toetsen {Insert}, {Page Up} of {+}. Mochten er geen vrije objecten meer zijn dan moeten de keuzes weer worden verwijderd. Zie hiervoor 7.1.3 De toets {Delete} of {Backspace}.
138
Dit is een speciaal geval met dezelfde uitwerking als {Insert}. Zie 7.1.4.
Handleiding BPV Tool
83
1.1.6
Bewerken data op Service… bladen
A:
B:
C:
D:
Figuur 41 Aanbrengen classificatie. A: 1e keuze; B: 2e keuze; C: optionele extra keuzes; D: aanpassen keuzetekst
7.1.2 Dubbelklikken op cel Verwisseling van twee objecten in dezelfde rij is mogelijk: o Na klikken op een cel met een {k}, {o} of {x} object verschijnt een venster. [zie Figuur 42A] Bij bevestiging kan op een andere cel met een object in dezelfde rij worden geklikt. [zie Figuur 42B bij fout] Er verschijnt geen verdere melding indien de omwisseling plaatsvindt. o Let er op dat eventueel via slepen van de horizontale schuifbalk de gewenste cel in het zicht moet komen. o {k} objecten met een keuzelijst er achter kunnen alleen worden omgewisseld met een ongesplitst {k} object links hiervan. o Omgekeerd kan een ongesplitst {k} object worden omgewisseld met ieder ander {k}, {o} of {x} object in dezelfde rij. [Zie Figuur 42C bij fout] o Bij verandering van een {k} object met classificatie keuzes worden die dan gemerkt met ##!## ten teken dat controle nodig is. o Omwisselen met het {i} object is niet toegestaan. [Zie Figuur 42D]
A:
B:
C:
D:
Figuur 42 Verwisselen. A: venster na dubbelkikken op object; B: tweede klik buiten de rij; C: {k} object met keuzelijst alleen met ander {k} object wisselen; D: niet met {i} object wisselen
Handleiding BPV Tool
84
1.1.6
Bewerken data op Service… bladen
Dubbelklikken op het {i} object [cel A1] of op een cel in kolom A resulteert in de vraag of eventueel een nieuwe waarde voor dit object moet worden opgehaald.139 Hierbij geldt: o Er staat een geldig rijnummer140 achter de naam van het {i} object en dit object wordt opgehaald. [zie Figuur 43 links] o Er staat géén geldig rijnummer achter en het object waarvan het rijnummer is ingesteld op blad Admin wordt opgehaald.141 [zie Figuur 43 rechts]
Figuur 43 Ophalen tekst {i} object. Links geldig rijnummer; rechts geen geldig rijnummer
Dubbelkikken op een lege cel [uitgezonderd in kolom A] geeft de mogelijkheid de kolombreedte van alle cellen aan te passen. Zie Figuur 44.142
Figuur 44 Kolombreedte op Service... blad aanpassen
Dubbelklikken op een classificatiekeuze of de cel rechts van een {k} object met keuze [ \ # \ ] geeft de mogelijkheid hieronder een extra keuze toe te voegen. zie Figuur 45. Na de toevoeging opent meteen de lijst met vrije objecten of de mededeling dat er geen vrije objecten meer zijn. Zie Figuur 49.
139
Normaal gesproken is dit alleen nodig indien de tekst van het {i} object op het blad Transformation gewijzigd zou zijn of als er extra Proces Objecten voor het betreffende {i} object beschikbaar komen dan wel verwijderd worden. Dan is er ##!## vóór de naam op Service… bladen gezet. Zie ook 7.2.7 {i} object aanpassen.
140
Een geldig rijnummer is een getal van vijf cijfers tussen gekrulde haken { }. Indien op de juiste manier met de Excel bestanden wordt omgegaan dan zal dit nummer altijd aanwezig zijn.
141
Na antwoord NEE zou dit nummer eerst juist kunnen worden ingesteld.
142
Vooraf was de kolombreedte aan te passen op het blad Admin cel D9 [rangenaam kb] Als daar geen getal >=8 en <= 30 is opgegeven wordt 11 als default genomen. Alleen getallen met dezelfde randvoorwaarden opgegeven in het venster van Figuur 44 resulteren in een verandering.
Handleiding BPV Tool
85
1.1.6
Bewerken data op Service… bladen
Figuur 45 Classificatie uitbreiden?
7.1.3 De toets {Delete} of {Backspace} Objecten mogen (tijdelijk) worden verwijderd [deleten]. Meerdere objecten kunnen in één keer worden verwijderd.143 Echter als er een bijzondere of lege cel bij zit stopt daarna de actie. Als een {k} object met daarachter een classificatie verwijderd zou moeten worden en er géén ongesplitst {k} object onmiddellijk links van staat, resulteert dit bij bevestiging [OK, zie Figuur 46 links] in verwijdering van dit object en alle takken rechts hiervan. Is er wel een ongesplitst {k} object onmiddellijk rechts, dan zijn hier twee keuzes [zie Figuur 46 rechts]: o [JA] Zoals zonder ongesplitst {k} object [dus dan alles verwijderen]. o [NEE] Alleen het {k} object verwijderen en de keuzes weer markeren. In kolom A heeft {Delete} of {Backspace} weer hetzelfde effect als dubbelklikken. {Delete} of {Backspace} op een cel rechts van een {k} object met keuze [ \ # \ ] heeft geen effect. {Delete} of {Backspace} op een lege cel heeft als enige effect dat de cel links hiervan wordt geselecteerd.
Figuur 46 {k} object met keuzes verwijderen. Links: ervoor géén ander {k} object; Rechts: ervoor ander {k} object
Als alle objecten rechts van een classificatiekeuze zijn verwijderd zal het venster openen met vrije objecten.
143
Het verwijderen gaat van linksboven naar rechtsonder indien één aaneengesloten gebied is geselecteerd.
Handleiding BPV Tool
86
1.1.6
Bewerken data op Service… bladen
Verwijderen van classificatiekeuzes. Er zijn twee gevallen: o Er zijn méér dan twee classificatie keuzes Deze keuze wordt na bevestiging verwijderd. Alles rechts hiervan wordt dan meteen ook verwijderd. Zie hiervoor Figuur 47.
Figuur 47 Tak verwijderen?
o Er zijn slechts twee keuzes. De geselecteerde keuze wordt na bevestiging verwijderd en alles rechts van de andere keuze wordt weer achter het bijbehorende {k} object gezet. Zie Figuur 48.
Figuur 48 Ene tak verwijderen en andere opschuiven
7.1.4 De toetsen {Insert}, {Page Up} of {+} Selectie van een {i}, {o}, {x} object, een classificatiekeuze of een {k} object zonder classificatiekeuzes erachter [dus ongesplitst] resulteert in een van de volgende acties: o Het openen van een lijst met vrije objecten voor deze tak van de boom [indien die er zijn]. Zie Figuur 49A en B, eventueel gevolgd door C. o De mededeling dat er geen vrije objecten meer zijn.144 Zie Figuur 49D. o De vraag een nieuwe tekst voor het {i} object op te halen indien dit fout is of vooraf wordt gegaan door ##!##.145 Zie Figuur 43. o Bij dubbele Proces Objecten [dus met dezelfde naam] een foutboodschap. Zie Figuur 22 rechts. Meerdere vrije objecten kunnen na elkaar worden ingevoegd. Een volgend object komt steeds rechts van het vorige. Zie ook Figuur 49A en B.
144
Bij het {i}} object geldt dit dus voor de gehele boom. Op andere plaatsen alleen voor de betreffende deelboom of tak. Een vrij object is een Proces Object dat:
Nog nergens is gebruikt vanaf het object of de keuze waar achter [naar rechts] een object zou moeten worden ingevoegd tot aan het {i} object [de hoofdtak].
Evenmin nergens is gebruikt in enige van de al aanwezige takken rechts van dit object of de keuze.
145
Door veranderingen in de cellen met k, o en x op dezelfde regel als het gebruikte {i} object wordt dit laatste op de Service… bladen voorafgegaan door ##!##.
Handleiding BPV Tool
87
1.1.6
Bewerken data op Service… bladen
A:
B:
C:
D:
Figuur 49 A en B: vrije objecten; C: geen vrije objecten over na invoegen; D: begin geen vrije objecten
Bij een {k} object met er direct achter classificatiekeuzes komt eventueel een lijst met vrije {k} objecten. Door invoegen van zo’n object worden de classificatie keuzes gemerkt met ##!##.
Figuur 50 Vrije {k} objecten
7.2 Actie typen In 7.1 Starten acties is uitgegaan van de handelingen met muis of toetsen. Dit overzicht bevat dezelfde resultaten maar nu vanuit het (beoogde) resultaat bezien.
7.2.1 Classificaties aanbrengen
Classificaties staan altijd direct achter een {k} object. Door op een {k} object zonder classificatie met de rechtermuisknop te klikken kunnen classificatie keuzes worden ingevoegd. Zie Figuur 41 in 7.1.1 Klikken met de rechtermuisknop.
7.2.2 Extra classificatie keuzes invoegen
Door dubbelklikken op de cel met \ # \ direct rechts van een {k} object met keuzes of op een van de al aanwezige keuzes kan hier ónder een nieuwe keuze worden ingevoegd. Na invoegen wordt meteen gekeken of er nog vrije objecten zijn.
Handleiding BPV Tool
88
1.1.6
Bewerken data op Service… bladen
7.2.3 Objecten verwijderen
Normale objecten worden verwijderd [zonder waarschuwing of verdere vensters] door één of meer cellen te selecteren en op {Delete} of {Backspace} te drukken.
{k} objecten direct gevolgd door classificatie keuzes kunnen ook met {Delete} of {Backspace} worden verwijderd. Hierbij komen wel vensters voor de verschillende situaties. Zie Figuur 46 in 7.1.3 De toets {Delete} of {Backspace}.
7.2.4 Classificatie keuzes verwijderen
Classificatiekeuzes [inclusief de tak(ken) rechts hiervan] kunnen worden verwijderd met {Delete} of {Backspace}. De situatie is weer verschillende bij meer dan twee keuzes of slechts twee keuzes. Zie Figuur 47 en Figuur 48 in 7.1.3.
7.2.5 Objecten omwisselen
Via dubbelkikken kunnen objecten in dezelfde rij worden omgewisseld. Voor {k} objecten gevolgd door een classificatie gelden weer beperkingen. Zie 7.1.2 Dubbelklikken op cel.
7.2.6 Objecten invoegen
Als er nog vrije objecten zijn kunnen die steeds rechts van het geselecteerde object worden ingevoegd: o Met de rechter muisknop of een van de toetsen {Insert}, {Page Up} of {+} bij {i}, {o} of {x} objecten. o Met {Insert}, {Page Up} of {+} bij een ongesplitst {k} object of een classificatie keuze.
Bij invoegen rechts van een {i}, {o} of {x} object komt er eventueel een lijst met alle vrije objecten. Door rustig op een object in de lijst te klikken wordt dit rechts van de geselecteerde cel ingevoegd. Het deel van de boom rechts wordt verder naar rechts opgeschoven. De cel met het ingevoegde object wordt dan de geselecteerde cel en als er nog vrije objecten zijn kunnen die stuk voor stuk door rustig klikken naar rechts worden ingevoegd. Zie ook Figuur 49
Als er ##!## vóór de naam van het {i} object staat wordt eerst gevraagd het juiste object op te halen. Zie Figuur 43.
7.2.7 {i} object aanpassen
Ongeacht of er ##!## voor de tekst van het {i} object staat, dubbelklikken op een cel in kolom A dan wel gebruik van {Delete} of {Backspace} voor een cel in kolom A op een Service… blad zorgen er [na een positief antwoord op een betreffende vraag] voor dat de tekst opnieuw van het blad Transformation wordt opgehaald. De lijst met objecten wordt tevens opnieuw opgehaald van blad Admin.
Het klikken op de knop Overzetten of een poging een object toe te voegen hebben dit effect als er ##!## voor het {i} object staat.
Handleiding BPV Tool
89
1.1.6
Bewerken data op Service… bladen
Eerst wordt wel gekeken of de inhoud van cel A1 overeenkomt met een {i} object. Er komt een venster als in Figuur 43. Dit kan dus ook de waarschuwing inhouden eerst zelf het regelnummer goed in the stellen op blad Admin.
{i}Spec{00007}[256] {k}Participant[014] {o}Savings Account[017] {x}Participant[014] {x}Potential Participant[015] {x}Welcome Mailing[018] 5-3-2007 0:54 Figuur 51 Lijst met beschikbare objecten op blad Admin
In de berichtenlijst is te zien dat deze actie heeft plaatsgevonden.
Ophalen: ##!##{i}Spec{00007} Service: {i}Spec{00007} 5-3-2007 0:54:32 Niet op Service Admin!C1010: {o}Savings Account Niet op Service Admin!D1010: {x}Participant Niet op Service Admin!F1010: {x}Welcome Mailing Figuur 52 Uitbreiding berichtenlijst door ophalen {i} object
Er vindt meteen een beperkte controle plaats van de overige objecten. Resultaten hiervan komen in de berichtenlijst.
De teksten van de Proces Objecten in de lijst Basis op de Service… bladen worden al meteen aangepast als een Proces Object op blad Transformation een andere tekst krijgt.
Dit geldt ook bij verwijderen van een Proces Object. De tekst wordt dan vervangen door ##!## gevolgd door het kolomnummer tussen [].
Toevoegingen op verwijderingen van beschikbare Proces Objecten [via de cellen met k, o en/of x in de betreffende regel op het blad Transformation worden niet weergegeven in de lijst Basis, die pas wordt aangepast door deze ophaal actie.
Datum/tijd onder de lijst Basis is die van de eerste opzetting of de laatste ophaal actie.
Proberen vrije objecten in te voegen terwijl er ##!## vóór het {i} object staat resulteert meteen in de vraag dit {i} object opnieuw op te halen.
7.2.8 Kolombreedte aanpassen
Voor de leesbaarheid kan de kolombreedte van de cellen op Service… bladen worden aangepast door dubbel te klikken op een lege cel, niet in kolom A. Zie ook bijna het einde van 7.1.2 Dubbelklikken op cel.
7.3 Knoppen op Service… bladen Er zijn in principe 2 knoppen aanwezig op een Service… blad. Na verandering van de bladnaam zullen de opschriften pas wijzigen zodra een standaard actie op een object plaatsvindt.
Handleiding BPV Tool
90
1.1.6
Bewerken data op Service… bladen
Figuur 53 De twee knoppen op een Service... blad
7.3.1 Knop: controleer berichtenlijst De berichtenlijst begint aanvankelijk in cel A3000. Door het aanbrengen van classificaties [en eventueel weer verwijderen] kan deze lijst gaan wandelen. De knop is er dus uitsluitend om snel naar deze lijst te gaan. In de eerste regel staat nog een tip hoe snel een in cel A12 te komen. {Ctrl Home} voor terug naar BEGIN #6: {i}Wish to extend the Loyalty contract{00006} 4-3-2007 17:18:06 OK Service: {i}Wish to extend the Loyalty contract{00006} 4-3-2007 17:19:19 Geen splitsing na B1: {k}contract of service A, B, C, D Geen splitsing na C1: {k}Participant Geen splitsing na D1: {k}Defaulter [bad payer] Geen splitsing na E1: {k}Savings Account Geen splitsing na F1: {k}Invoice-ID Geen splitsing na G1: {k}User Service A, B, C, D Fouten gevonden Service: {i}Wish to extend the Loyalty contract{00006} 4-3-2007 17:31:36 eindtakken [bladeren]: 18; {i} obj: 1; {k} obj: 15; {o} obj: 55; {x} obj: 2; keuzes: 0 Geen echte controle uitgevoerd. GOKJE?!? Service: {i}Wish to extend the Loyalty contract{00006} 4-3-2007 17:36:21 eindtakken [bladeren]: 3888; {i} obj: 1; {k} obj: 2079; {o} obj: 11880; {x} obj: 5184; keuzes: 5966 Waarschijnlijk OK. Ruime controle uitgevoerd Figuur 54 Voorbeeld berichtenlijst
Bovenstaande lijst toont eerst een aantal {k} objecten zonder splitsing en daarna het effect van een volledige boom waarin de takken nauwelijks zijn uitgedund.146
7.3.2 Knop: overzetten naar blad Tree… Als er ##!## vóór het {i} object staat komt eerst de vraag dit element opnieuw op te halen. Bij antwoord NEE volgt nog Figuur 55.
Figuur 55 Niet aangepast {i} object bij overzetten
146
Bij de getallen voor het aantal objecten en keuzes worden alle cellen met zo’n waarde geteld.
Handleiding BPV Tool
91
1.1.6
Bewerken data op Service… bladen
In zeldzame gevallen kan het voorkomen dat er dubbele Proces Object namen zijn waaronder wel k, o en/of x staat. 147 Voor de rest gaat valles vanzelf en kan er dus een uitgebreide berichtenlijst worden gemaakt.
147
Indien er twee gelijke namen voorkomen met codes eronder is overzetten vanaf blad Admin niet mogelijk. Zodra een code wordt toegevoegd komt er ##!## vóór het {i} object en blijkt de fout bij het ophalen. Alleen als het Service… blad tijdelijk een andere naam had [niet met Service beginnend] zou dit mogelijk zijn, omdat dan die ##!## niet wordt toegevoegd. Ook directe wijzigingen van Proces Object namen vinden alleen plaats op Service… bladen [en dus niet op Tree… bladen]. Handleiding BPV Tool
92
1.1.6
Spelen met allCLEAR?
8 Spelen met allCLEAR? Al die rare tekens . ? \ etc. die in de data staan en dan ook als tekst in de figuren komen kun je daar wegwerken op verschillende manieren. Wat hieronder staat geldt vooral voor versie 6.0 en 7.0.
Figuur 56 Algemene instellingen allCLEAR
Bij klikken komt er:
Figuur 57 Uitzetten punctuation
Zorg dat alle vakjes op het linker tabblad zijn uitgezet. Rechts eventueel als hierboven. Bij de volgende keer werkt het dan goed. Als er al iets is geladen kan het achteraf nog via View, Diagram Extras.
Figuur 58 Preferences achteraf aanpassen Handleiding BPV Tool
94
1.1.6
Spelen met allCLEAR?
Hierbij is Get Defaults de snelste manier om de standaard preferences in te stellen. Hetzelfde verhaal voor géén pijl aan het einde van een lijn.
Figuur 59 Pijlen bij lijnen wegwerken
• Figuur 60 Diverse vormen en lay-out
Importeren uit Excel – dat op dat moment gesloten moet zijn – gebeurt gewoon via het normale openen waarbij wel op het bestandstype moet worden gelet.
Figuur 61 Openen Excel bestand in allCLEAR
Nadat het bestand is geopend kan worden gekozen welk werkblad moet worden geïmporteerd.
Handleiding BPV Tool
95
1.1.6
Spelen met allCLEAR?
Figuur 62 Kiezen juiste werkblad
Nadat het juiste werkblad is gekozen komt de tekening links en de data rechts te voorschijn.
Figuur 63 Voor allCLEAR met gedeeld scherm
De meeste andere zaken in allCLEAR spreken voor zich.
Handleiding BPV Tool
96
1.1.6
Bijlage 1 BPV
Bijlage 1 BPV Enkele aspecten van de BPV methode.148 1.
BPV
Eind vorige eeuw heeft zich een bijna onopgemerkte revolutie voltrokken in de IT. Systemen begonnen op grote schaal rechtstreeks gegevens met elkaar uit te wisselen. Er ontstonden en ontstaan geautomatiseerde processen die zonder menselijke tussenkomst over tientallen systemen bedrijfsprocessen afwikkelen. Klantbestellingen worden bijvoorbeeld volledig geautomatiseerd verwerkt, de systemen maken facturen aan, zorgen voor grootboekverwerkingen en genereren zelfs op het juiste moment de inkooporders. Daar waar vroeger door menselijk vernuft de gegevensstromen in goede banen werden geleid, krijgen nu de systemen deze intelligentie. Het testen van ICT producten is in deze vooruitgang niet meegegaan. Testen van ICT-producten gebeurt nog steeds aan de hand van de definities zoals “beoordelen of het systeem voldoet aan vastgestelde functionele en kwalitatieve eisen” of “heeft tot doel fouten te vinden”. Het toetsen of de systemen in onderlinge samenhang en in alle omstandigheden juist functioneren, gebeurt nog steeds zoals men gewend is achteraf. Dit betekent voor de bedrijfsprocessen, die soms uit tientallen systemen bestaan, dat deze pas getest worden nadat alle systemen zijn opgeleverd. Vaak heeft dit tot gevolg dat men in de laatste fase van het ontwikkelproces pas merkt dat procesontwerpen fouten bevatten en dat delen van één of meerdere systemen herontwikkeld moeten worden. Met als gevolg dat men óf genoegen neemt met verminderde functionaliteit óf dat men het gewenste resultaat pas veel later geleverd krijgt. Het veelvuldig uitvoeren van noodzakelijke herstelwerkzaamheden was iets dat al optrad in de zeventiger jaren. Dit kwam toen omdat de complexiteit van de systemen begon toe te nemen. Om iets aan deze problematiek te doen, ontwikkelde Michael Fagan het ‘Fagan inspectieproces’. In plaats van de controle achteraf werden diverse controlepunten in het ontwikkelproces ingebouwd. Nog steeds blijken ‘Fagan inspecties’ bruikbaar en ze worden nog steeds met meer of minder succes ingezet. Veel bedrijven die worstelen met de hierboven beschreven integratieproblematiek en een goed IT ontwikkelproces hebben (CMM level 3) kennen dit soort inspecties. Bedrijven merken dat de wereld steeds sneller verandert. Nieuwe en complexere producten worden in een steeds sneller tempo ontwikkeld. Met als gevolg dat opdrachtgevers eerder moeten beslissen of zij in de nieuwe markt gaan stappen. Vaak zo vroeg dat er van uitgekristalliseerde ideeën nog geen sprake is. Hedendaagse grote projecten moeten aan beide problematieken, ‘complexere IT-ketens’ en ‘het opstarten van projecten zonder dat de ideeën duidelijk zijn’, het hoofd kunnen bieden. In een complexe wereld van systemen die veelal meerdere bedrijfsprocessen ondersteunen, moeten nieuwe bedrijfsprocessen worden ontwikkeld. Nieuw te ontwikkelen bedrijfsprocessen waarvan gedurende de doorlooptijd van het project het vooruitzicht al is dat zij meermalen zullen worden herzien. Het is een belangrijke taak van het project geworden om alle deelprojecten, zodanig te managen dat zij producten gaan leveren die het toekomstige bedrijfsproces op een juiste wijze zullen gaan ondersteunen. In 2002 is er door een testorganisatie van Atos Origin een testmethodiek ontwikkeld die, wanneer zij volledig wordt toegepast, het project en de opdrachtgever ondersteunt in het opleveren van uiteindelijk door de opdrachtgever gevraagde producten. Deze methodiek, ‘Business Process Validation (BPV)’ genoemd, beoordeelt gedurende de looptijd van het project: • •
De juistheid en volledigheid van de (herziene) wens De juistheid en volledigheid van het proces- en ketenontwerp en of deze voldoet aan de (herziene) wens en
148
Onderstaande tekst is gemaakt door Klaas Smit en slechts heel marginaal aangepast. De naamgeving van Smit voor objecten is gehandhaafd – wel genormaliseerd op één schrijfwijze – en dus soms afwijkend van de in de handleiding gehanteerde. Handleiding BPV Tool
98
1.1.6
Bijlage 1 BPV •
Of de deelprojecten producten leveren die op het moment van oplevering op een juiste wijze het nieuwe bedrijfsproces ondersteunen.
2.
Uitgangspunten van de BPV-methodiek
BPV wordt voornamelijk gebruikt bij grote complexe projecten. Projecten, die te maken hebben met meerdere deelprojecten die elk één of twee systemen realiseren of aanpassen. Vaak kennen de producten die deze deelprojecten opleveren hun eigen implementatiemomenten. De methodiek gaat er vanuit dat de deelprojecten elk zorgdraagt voor zijn eigen testtraject, waarvoor in Nederland gewoonlijk methodes zoals TMAP of Testframe worden ingezet. Vervolgens dient het project, dat zorgt voor de integratie van deze systemen, zich ervan te vergewissen dat de opgeleverde producten juist en bruikbaar zijn. Dit vindt dan plaats vóór de start van de integratietest. Meestal gebeurt dit door het deelproject een ‘Factory Acceptance Test (FAcT)’ te laten uitvoeren die dan door een projectmedewerker wordt ‘gewitnessed’. Na de FAcT worden dan de diverse producten in de ‘Site Acceptance Testomgeving (SAT)’ geladen en wordt er gestart met de finale keten- en procesintegratietest. De opdrachtgever wordt gevraagd bij deze test aanwezig te zijn en toekomstige eindgebruikers worden uitgenodigd delen van de testen uit te voeren.
Figuur 64 V-model en plaats BPV
Zoals Figuur 64 weergeeft, levert BPV testcases vanuit het ‘idee’, ‘bedrijfsprocesontwerp’ en ‘ketenontwerp’. Deze testcases worden direct na het ontwikkelen hiervan naar de ontwerpers en bouwers verzonden149. Deze testcases worden in een heel vroeg stadium, ver voordat de volgende ontwerpfase eindigt, aangemaakt en opgeleverd. Dit heeft tot gevolg dat de ontwerpers en bouwers niet alleen beschikken over ontwerpdocumentatie maar ook over voorbeelden, die in latere fases als testcases worden gebruikt. Van de ontwerpers en bouwers wordt verwacht dat voordat zij de testcases uitvoeren deze fiatteren. Dus beoordelen of de voorbeelden/testcases in overeenstemming zijn met de ontwerpdocumentatie. Natuurlijk is het idee van de opdrachtgever en daarmee het oorspronkelijke ontwerp aan wijzigingen onderhevig, en dit geldt dus ook voor de testcases die zijn opgeleverd. Dit heeft dan tot gevolg dat er na elke wijziging nieuwe testcases geleverd worden. 149
De methodiek gaat uit van een gedeeltelijke verandering in werkzaamheden binnen een testproces. Niet de testers die deze testcases hebben ontwikkeld, maar de ontwerpers en bouwers dienen deze testcases uit te voeren. [Noot van Smit] Handleiding BPV Tool
99
1.1.6
Bijlage 1 BPV
3.
Wat is het? Theorie en beschrijving
Belangrijk is het om in de gaten te houden dat BPV een toetsingsmethodiek is en niet bedoeld is om bedrijfsprocessen of IT te ontwikkelen. Om maximaal van BPV te profiteren zal men met deze methodiek, gedurende de volledige looptijd van het project (van idee ontwikkeling tot en met realisatie), het project moeten begeleiden. De BPV-methodiek bestaat uit een drietal fasen, elk met een eigen model, die elk op hun eigen wijze één of meer foutinjecties tracht te voorkomen. Al deze modellen bestaan grotendeels uit grafische weergaven. Enerzijds omdat tekeningen een niet gekleurde weergave van de wens weergeven en hierdoor communicatieproblemen voorkomen. Anderzijds omdat tekeningen een sneller en beter inzicht geven in de op te leveren producten. Toch is het niet zo dat de producten van de BPV-methodiek tekstloos zijn. Aanvullingen van de informatie die in tekeningen is vastgelegd wordt opgenomen in tabellen. De modellen in de drie fasen van de BPV-methodiek zijn: 1. Het Transformatie Model (een overzicht gericht op de diverse input, output en bedrijfsobjecten die door de bedrijfsprocessen worden geraakt); 2. Het Dienst Model (een op object-oriëntatie gebaseerde detaillering van één genormaliseerd bedrijfsproces); 3. Het IT/AO Model (een soort sequentiediagram gericht op de technische en administratieve werking van het proces, ook bedoeld voor het aanmaken van logische testgevallen per systeem). De eerste twee fasen zijn bedoeld om het “wat” van het nieuwe of gewijzigde bedrijfsproces vast te stellen. Deze ‘wat’-beschrijving is zodanig dat deze beschrijving ook voldoende is om een uitbesteding van de ontwikkeling van het bedrijfsproces mogelijk te maken. De volgende fase is er voor om te controleren in hoeverre de ontwerpen voldoen aan de wens van de opdrachtgever, dus consistent zijn met het Dienst Model. Daarnaast kent BPV twee typen virtuele testen. Dit zijn testen waarbij opdrachtgever, gebruikers en ontwikkelaars in sessies de volledigheid en juistheid van het idee en ontwerp beoordelen. De “eerste virtuele test” is een sessie om de open issues te adresseren en de gevolgen van de genomen beslissingen te toetsen. Deze sessie wordt uitgevoerd direct na de fase Transformatie Model. De “tweede virtuele test” is ter beoordeling van het ketenontwerp en of het ketenontwerp door de diverse deelprojecten goed wordt begrepen. Deze sessies worden tijdens de fase IT/AO Model gehouden.
1. Het Transformatie Model Het Transformatie Model is de vertaling van het nieuwe of bestaande Business Proces naar een genormaliseerd model op hoofdlijnen. Een bedrijfs of Business Proces wordt vanuit een (intern) klant perspectief beschouwd. Voor het Transformatie Model is het niet van belang te weten hoe de werking van het proces is, maar wel wat het proces initieert (input-object), wat het proces levert (output-object) en wat het proces nodig heeft om te kunnen leveren (businessobjecten).150 Het proces zelf is voor het Transformatie Model een ‘black-box’. Logische of technische opdelingen of opdelingen in de tijd worden niet onderkend. Als we een bedrijfsproces bekijken, zien we altijd een gelaagde opbouw. Deze opbouw bestaat uit een continue, een initiële en een aanleverende dienst: • de Continue Dienst (het primaire bedrijfsproces) is de dienst die het bedrijf of organisatie levert; • de Initiële Dienst (het secundaire bedrijfsproces) is de dienst die de randvoorwaarden moet scheppen om de continue dienst mogelijk te maken (ook hier kunnen financiële stromen ontstaan maar deze zijn van ondergeschikt belang); • de Aanleverende Dienst is de dienst die het mogelijk moet maken een initiële dienst uit te kunnen voeren. Ter verduidelijking een voorbeeld van artotheek processen. De Continue Dienst is voor de artotheek het uitlenen van kunst. Beter nog: ‘Het inwilligen van de klantwens om kunst gedurende een periode in zijn bezit te hebben’. Om deze dienst mogelijk te maken, heeft de artotheek kunst en leden nodig. Initiële diensten zijn dus bijvoorbeeld ‘het inwilligen van de klantwens artotheek lid te worden’ en ‘het ter uitleen beschikbaar
150
In de handleiding wordt steeds gesproken over Katalysator Objecten.
Handleiding BPV Tool
100
1.1.6
Bijlage 1 BPV stellen van een kunstvoorwerp’. Een voorbeeld van een bijbehorende aanleverende dienst is aanschaf van een kunstvoorwerp. Een belangrijke activiteit is het vastleggen van de betekenis van de objecten en processen. Niet alleen de betekenis wordt op een standaard wijze vastgelegd, maar ook de kwaliteitseisen (acceptatiecriteria) waaraan zij moeten voldoen. Het Transformatie Model wordt aangemaakt tijdens de periode dat de opdrachtgever bezig is met het ontwikkelen van het idee. Deze fase kenmerkt zich in onzekerheid bij de opdrachtgever en onduidelijkheden over wat er gerealiseerd moet worden. Wel bestaat de drang om het project op te starten, immers er bestaan grote verwachtingen over de nieuwe oplossing/product en de net opgestelde businesscase is positief. Op dit ogenblik dient het idee zo concreet mogelijk vastgelegd te worden en getoetst te worden of de verwachtingen, opgenomen in de eerste versie van de businesscase, realistisch zijn. Een Transformatie Model kan hierbij helpen, het beoordeelt de volledigheid en consistentie van het idee. Het vraagt de opdrachtgever ook keuzes te maken, keuzes waarvan de opdrachtgever vaak nu nog niet de consequenties kan overzien, dus keuzes die in de loop van het project zullen wijzigen of worden aangescherpt. Onderdeel van de fase Transformatie Model is het uitvoeren van de “eerste virtuele test”. Aanwezig bij deze test is naast de opdrachtgever en opsteller van het Transformatie Model, de door de opdrachtgever aangewezen verantwoordelijken, de projectleider en ontwerpers. Tijdens de sessie komen aan bod de doelstelling van de opdrachtgever en de consequenties van de genomen en nog te nemen beslissingen. Na deze sessie moet het voor de opdrachtgever mogelijk zijn te beoordelen in hoeverre de businesscase aangepast moet worden en of het project nog lonend is.
2. Het Dienst Model Voor elk in het Transformatie Model genoemd bedrijfsproces wordt een ‘Dienst Model’ gemaakt. Het Dienst Model is eigenlijk niets anders dan een andere weergave van één enkel Business Proces zoals dat beschreven is in de fase Transformatie Model. Alleen worden nu de gevolgen die de bedrijfsobjecten hebben op het ontstaan van de output-objecten duidelijk. Voor een Dienst Model wordt een classificatieboom getekend waarin businessobjecten en output-objecten zijn toegevoegd. Uit een Dienst Model kunnen testcases worden gehaald die tijdens de procesintegratieen ketentesten uitgevoerd zullen moeten worden om aan te tonen of het bedrijfsproces voldoet aan de wens van de opdrachtgever. Deze testcases kunnen ook als voorbeeld voor verheldering van het toekomstige bedrijfsproces dienen. Figuur 65 geeft een voorbeeld van het proces “Aanmaken artotheeklid”. Duidelijk zijn de beslissingspaden te herkennen. Zo zal bijvoorbeeld de wens van een klant zonder legitimatiebewijs niet gaan leiden tot een lidmaatschap. Tijdens deze fase wordt ook beoordeeld of de kwaliteitseisen die aan de output-objecten zijn gesteld, realistisch zijn. Het model geeft inzicht in de gebruikte bedrijfsobjecten en de kwaliteit van deze objecten. Hiermee kan een tester verifiëren of, met deze bedrijfsobjecten, de gevraagde kwaliteit van het outputobject te realiseren is. Zoals ook al in de paragraaf Transformatie Model is genoemd, zullen gewijzigde keuzes van opdrachtgever leiden tot aanpassingen van producten die het project oplevert en tot aanpassingen van het Transformatie Model. Aanpassingen aan het Transformatie Model zullen altijd leiden tot een aanpassing van één of meerdere Dienst Modellen en dus tot aanpassingen van testcases.
3. Het IT/AO Model De volgende fase van BPV is het IT/AO Model. Deze naam is gekozen om duidelijk te maken dat het feitelijke proces wordt uitgevoerd door IT én mensen (Administratieve Organisatie) die middels interfaces onderling en met elkaar communiceren. In het kort is het doel van deze fase het beoordelen of het ketenontwerp overeenkomt met het idee van de opdrachtgever, het beoordelen van de juistheid van het ketenontwerp en het aanmaken van testgevallen op keten en applicatieniveau. Gelijktijdig met het door de tester uitvoeren van de fase Dienst Model zijn ontwerpers bezig met het ontwikkelen van de eerste versies van de proces- of ketenontwerpen. In deze ontwerpen zijn globaal de werkprocessen en de applicaties met de tussenliggende interfaces beschreven. Deze door het ontwerpteam beschreven processen moeten door het testteam worden vertaald in de IT/AO Modellen, een soort sequentiediagrammen. Handleiding BPV Tool
101
1.1.6
Bijlage 1 BPV
Wens lidmaatschap artotheek
Geen legitimatie
Legitimatiebewijs
Wel legitimatie
Reeds lid
Artotheeklid
Geen lid
Beletsel lid
Geen beletsel
Particulier lidmaatschap Particulier lid
Wel beletsel
Zakelijk lidmaatschap
Wel KvKdocument
Geldig KvKdocument Geen KvKdocument
Entreefactuur
Zakelijk lid
Admin. inningsopdracht
Entreefactuur
Pasje artotheek
Admin. inningsopdracht
Beletselverklaring
Pasje artotheek
Figuur 65 Een voorbeeld van een Dienst Model
In het IT/AO Model wordt aangegeven hoe de informatie naar de applicaties en werkprocessen wordt doorgegeven, in welke applicaties de gegevens worden vastgelegd, welke triggers de processen opstarten, of de gegevens afgeleide of bron gegevens zijn, enz. Het komt regelmatig voor dat het in de Dienst Modellen genoemde bedrijfs- of output-objecten verspreid zijn over meerdere applicatiedatabases. Het is nu aan de tester die het IT/AO Model heeft beschreven, te achterhalen in welke databases het output-object wordt opgeslagen of welke applicaties gezamenlijk een bedrijfsobject weergeven. Vervolgens worden o.a. de volgende beoordelingen uitgevoerd: • Kunnen alle in het Dienst Model genoemde input-objecten door de processen die door de ITarchitecten zijn ontwikkeld (het keten/procesontwerp), worden verwerkt? • Zijn alle in het Dienst Model genoemde bedrijfsobjecten aanwezig in de keten? • Worden alle output-objecten door de ontworpen processen volledig en in de juiste volgorde aangemaakt? • Voldoen de gegevens die in de applicatiedatabases voorkomen aan de gevraagde kwaliteiten? • Voldoen de gegevens die in de databases moeten worden opgeslagen aan de gevraagde kwaliteiten van de output-objecten (zoals vastgelegd en beoordeeld in de fase Transformatie en Dienst Model)? • Voldoet het ontworpen proces aan de eisen die in het Transformatie Model aan het proces zijn gesteld? • Is de robuustheid van de keten voldoende? Bijvoorbeeld: Zijn er voldoende schoningsprocessen en is er een foutafhandeling voor elke interface (interface of systeem is niet aanwezig, systeem accepteert Handleiding BPV Tool
102
1.1.6
Bijlage 1 BPV aangeboden informatie niet)? Tijdens de fase IT/AO Model wordt een “tweede virtuele test” gehouden. Doel van deze test is het beoordelen of de deelontwerpen op elkaar aansluiten, dus voldoen aan het ketenontwerp. In een rollenspel waarbij de toekomstige gebruikers hun eigen rol spelen en de deelproject-ontwikkelaars hun systemen naspelen en ketenontwerpers beoordelen in hoeverre het ketenontwerp wordt gevolgd, worden de toekomstige bedrijfsprocessen doorlopen. Omdat de actieve deelnemers niet over meer gegevens beschikken dan wat volgens het ontwerp is beschreven, worden de onvolkomenheden in de ontwerpen direct duidelijk. Door velen wordt deze activiteit als één van de meest waardevolle beschouwd. Dit omdat zowel de ketenontwerpers als deelprojectontwikkelaars direct met hun fouten worden geconfronteerd en dat de detectie plaats vindt voordat met de feitelijke bouw wordt gestart.
4.
Kwaliteitseisen
Een belangrijk onderdeel van de methodiek is het vastleggen en beoordelen van kwaliteitseisen (acceptatiecriteria). De BPV-methodiek kent in tegenstelling tot ISO 9126 slechts een beperkte set aan kwaliteitsattributen en de betekennissen hiervan wijken af van de ISO 9126 beschrijvingen. Terwijl ISO 9126 een opsomming is van harde kwaliteitsattributen op systeemniveau, zijn de kwaliteitsattributen van BPV meer gerelateerd aan de bedrijfsprocessen en bedrijfsdoelen. Ze worden vastgelegd zowel op objectniveau, globaal- en bedrijfsproces niveau als op data (gegevens) niveau. Ook al is er slechts sprake van een beperkte set aan kwaliteitsattributen, het gebruik en zeker het achterhalen van de eisen is complex. Het uitvragen van de kwaliteitsattributen, zal de opdrachtgevers dwingen uitspraken te doen die later in hoge mate de werking en opbrengsten van de bedrijfsprocessen bepalen. Met andere woorden de kwaliteitsattributen bepalen in hoge mate de businesscase. De kwaliteitsattributen ‘tijd & tijdgedrag’, ‘waarde’, ‘overeenstemming met de regels’ en ‘gerelateerde wensobjecten’ gelden op zichzelf en in combinatie met elkaar als meest belangrijke. BPV laat het de testers vrij of alle of slechts een beperkt aantal kwaliteitseisen moeten worden vastgelegd. Eén en ander is afhankelijk van de gekozen/afgesproken diepgang van de test. Wel is het sterk aan te raden dat te allen tijde de kwaliteitsattributen ‘tijd & tijdgedrag’ en ‘waarde’ in de toetsing te betrekken.
5.
Samenvatting
BPV (Business Process Validation) Het doel van het model is het vroegtijdig voorkomen van fouten in bedrijfsprocessen of systemen die bedrijfsprocessen ondersteunen waarvan de oorsprong ligt in onvolledigheid van het idee van de opdrachtgever of in het ketenontwerp. Oorsprong De methodiek is in 2002 ontstaan na vele problematisch verlopen keten- en procesintegratie-testen. De methodiek is eind 2005 vrijgegeven. Verwacht wordt dat in de nabije toekomst nieuwe releases zullen worden uitgebracht, mogelijk met een tool-aanvulling. Eigenaar Atos Origin Toepassingsgebied Organisaties met alle soorten van producten en diensten Geografische Nederlands testmodel. positie Soort model Bedrijfsproces-, uitbesteding-, test- en acceptatieverbetering Erkenning Relatie andere • TMAP modellen • Testframe • Fagan Inspecties • ISO 9126 Referenties Literatuur: • ‘Business Process Validation, Gestructureerd testen met de BPVmethodiek’ [Klaas Smit, 2005] Wat is het
Handleiding BPV Tool
103
1.1.6
Bijlage 2 Voorbeeld controlelijst
Bijlage 2 Voorbeeld controlelijst Voorbeeld controlelijst Proces Objecten op blad Transformation zoals die verschijnt op het blad Check.151 19-2-2007 23:45 Transformation Inhoud cel M2: [Mailing] Is deel van tekst in R2: [Welcome Mailing] Dit hoeft geen probleem op te leveren Inhoud cel M2: [Mailing] Is deel van tekst in S2: [List of Participants (for Mailings)] Dit hoeft geen probleem op te leveren Inhoud cel N2: [Potential participant] Omvat tekst in cel O2: [Participant] Dit hoeft geen probleem op te leveren Inhoud cel O2: [Participant] Is deel van tekst in S2: [List of Participants (for Mailings)] Dit hoeft geen probleem op te leveren Inhoud cel Q2: [Savings Account] Is deel van tekst in Y2: [Suspended Savings Account] Dit hoeft geen probleem op te leveren Objecten 19-2-2007 23:45:22
# {o}
# {k}
contract of service A, B, C, D
2
2
Mailing
3
Potential participant
3
2
Participant
1
2
Defaulter [bad payer]
# {x}
1
1
Savings Account
2
Welcome Mailing
1
List of Participants (for Mailings)
1
1
Invoice-ID
1
User Service A, B, C, D
1
Payer of Service A, B, C, D
1 1
Savings Overview Contracting Party of Service A, B, C, D
1
Suspended Savings Account
1
Statement of Rejection
1
1
151
Bij twee identieke teksten worden wel de foutboodschappen of waarschuwingen weergegeven, echter niet de lijst met gebruik als {k}, {o} of {x} object. Handleiding BPV Tool
104
1.1.6
Bijlage 3 Enkele extra voorbeelden Engelstalige schermen
Bijlage 3 Enkele extra voorbeelden Engelstalige schermen
Figuur 66 Blad Admin
Figuur 67 Macro waarschuwing en advies
Figuur 68 Controle objecten
Figuur 69 Waarschuwing tegen overschrijven Service blad
Handleiding BPV Tool
106
1.1.6
Bijlage 3 Enkele extra voorbeelden Engelstalige schermen
Figuur 70 Verkeerd rijnummer opgegeven
Figuur 71 Controle en overzetten klaar. Begin met classificatie
Figuur 72 Aanbrengen classificatie
Figuur 73 Tak verwijderen?
Figuur 74 {i} object verversen + beperkte controle
Handleiding BPV Tool
107
1.1.6
Bijlage 3 Enkele extra voorbeelden Engelstalige schermen
Figuur 75 Object niet (meer) op blad Transformation
Figuur 76 Vrije objecten invoegen?
Figuur 77 Geen vrije objecten meer aanwezig
Handleiding BPV Tool
108
1.1.6
Bijlage 4 voorbeelden manipuleren Service bladen
Bijlage 4 voorbeelden manipuleren Service bladen Enkele voorbeelden van invoegen en verwijderen
Figuur 78 Cel L3 geselecteerd
Figuur 79 Invoegen rechts van cel L3
Figuur 80 Verder invoegen, nu na cel M3
Figuur 81 Met hetzelfde venster invoegen na N3
Figuur 82 En na cel O3
Handleiding BPV Tool
110
1.1.6
Bijlage 4 voorbeelden manipuleren Service bladen
Figuur 83 Cel K5 geselecteerd en op {Delete} of {Backspace} gedrukt. Hele tak weghalen?
Figuur 84 Tak no weggehaald en tak maybe opgeschoven naar boven
Figuur 85 Nu 2 takken. Cel K4 geselecteerd en {Delete}. Verwijder deze tak en de andere opschuiven?
Figuur 86 Onderste tak weer teruggezet naar links [en omhoog]
Keuzes aanbrengen
Figuur 87 Beginpositie voor keuzes na I3
Handleiding BPV Tool
111
1.1.6
Bijlage 4 voorbeelden manipuleren Service bladen
Figuur 88 Eerste keuze na {k} object in I3
Figuur 89 Eerste tak verplaatst en tweede verplichte keuze
Figuur 90 Eerste tak gekopieerd achter tweede keuze
Figuur 91 Klaar met twee keuzes toevoegen Handleiding BPV Tool
112
1.1.6
Bijlage 4 voorbeelden manipuleren Service bladen Achteraf extra keuze toevoegen
Figuur 92 Extra keuze onder not payer toevoegen
Figuur 93 Meteen opent lijst met vrije objecten voor achter keuze
Figuur 94 Drie objecten toegevoegd na nieuwe keuze
Handleiding BPV Tool
113
1.1.6
Bijlage 5 Belangrijkste aanpassingen
Bijlage 5 Belangrijkste aanpassingen Datum
Omschrijving
22-3-07
Indien objecten op blad Transformation worden gebruikt als bron voor andere objecten [descendants], dan worden ook deze teksten automatisch aangepast op alle Service… bladen.
Handleiding BPV Tool
114
1.1.6
Annex D ICEIS bijdrage
Annex D ICEIS bijdrage
BUSINESS PROCESS VALIDATION Testing Before Designing Cornelis G.F. [Kees] Ampt Eindhoven University of Technology, Eindhoven, the Netherlands
[email protected]
Keywords:
Testing, architecture, business, designing, requirements, models, analyzing, tools.
Abstract:
Rather than testing at the end of software projects, with subsequent need to redesign major parts, the Business Process Validation (BPV) method aims at systematic testing from the start of a project, already in the requirements phase, up to final delivery. It embraces three phases: Transformation Model, Service Object Model, & IT/AO Model. The core of the Service Object Model are classification trees, based on initial ideas as laid down in the Transformation Model. A prototype of a software tool to automate the classification tree construction, has been developed as part of a Masters Thesis project. First tests resulted for small projects in no significant time reduction. However, for larger ones a time reduction of over 50% is achieved compared to development of the classification trees by hand, while for all projects several automated consistency checks can be performed. Real life tests are underway for the coming months.
1
INTRODUCTION
Large IT-projects often are delayed because during the final test phase (when all the software has been delivered and is tested in an integration test environment) errors are detected, caused by a design fault, made in the very beginning of the project. These kinds of errors typically take a lot of time and money to correct, because a substantial part of the complete development project has to be re-executed. The Business Process Validation method (Smit, 2005), primarily intended as a test method, embraces – during the full program cycle of an IT project – judgment of the following elements: (1) correctness and completeness of the (revised) idea or requirements for the business case as given by the executive (who pays the project); (2) correctness and completeness of both the process and chain design (the workflow), and if these satisfy the (revised) requirements; (3) do sub-projects, at delivery time, deliver products supporting the business process?
1.1
Related Work
It appears if methods like the Unified Modeling Language (UML) are sometimes seen as a tool to resolve all problems, although others recognize limitations (De Cesare et al, 2003; Willams, 2003). How about Extreme Programming? That is also a
ICEIS bijdragen
method advocating testing before developing. It has, however, the tendency to prescribe developers exactly how to proceed (Owen Rogers, 2004). Michael Fagan developed the Fagan inspection process. (Fagan, 1976; 1986) Rather than checking afterwards, control points are built into the process from the start on. Several organizations use such a technique. However, the world is changing so rapidly that many IT projects are started before requirements are mature and fully crystallized. Therefore, (constant) software revision – due to changing circumstances – has become a fact of life. Usually sub-projects take care of their own test trajectory, applying methods as TMap (Koomen & Baarda, 2004) or TestFrame (Buwalda et al, 2001), which are, however, not suitable for large projects. The remainder is organized as follows: Section 2 describes some characteristics of the BPV method; section 3 the prototype tool designed to assist in an efficient use of BPV; followed in 4 by conclusions.
2
BPV
Business Process Validation (BPV) is a test method that should be applied during the entire project cycle, shaping initial ideas up to final delivery. It is mainly used for large, complex systems, consisting of several sub-projects resulting in new or adapted
116
Annex D ICEIS bijdrage
Figure 1: Transformation Grid. Processes are shown without mutual relations as in the full Transformation Model.
Figure 2: Transformation Grid. Processes are shown without mutual relations as in the full Transformation Model.
systems, supporting a business process, by which an organization generates its profit or which is the reason for its existence. BPV can be helpful for design and development. The Transformation Model – an overview of input, output and additional objects in the (business) processes, based on initial requirements – is starting point, focusing on what should be achieved. The Service Object Model, a detailed specification for each process, is splitting up business (and quality) requirements into a classification tree, showing which objects result in different cases. The IT/AO Model – with the help of sequence diagrams – provides logical test cases. The BPV method supplies test cases based on Idea, Business Process Design, and Chain Design. These test cases are directly forwarded to both designers and developers, who should carry out initial tests and authorize these if in line with the original requirements. Ideas of executives will change and thus also the test cases.
2.1 Transformation Model The Transformation Model translates a business process – considered from the perspective of a (perhaps internal) client – into an outline model, making comparison easy between existing and future situations, including alternatives. This model is focusing on what should be implemented, rather than how to implement, i.e. it is important to know the initiating Input Object (a client’s idea or wish), deliverables as Output Objects and other objects – called Catalyst Objects – that may influence the output. The values of the catalysts determine which objects are generated or destroyed. The model has a layered structure that helps identifying main and supporting processes. A major activity is establishing the meaning of objects and processes in a standardized manner, with the accompanying
ICEIS bijdragen
quality requirements, in practice often the basis for acceptation criteria. As example: consider a (simplified) Customer Loyalty Program of a large nationwide company for electricity, gas, radio/TV signals, Internet access, and mobile telephone services. Addresses of many customers are known. However, are all correct? (Near) duplications are not unlikely as traditionally each sector had its own address base. With prepaid mobile phones no address may be known at all. The company has two goals with the loyalty program: (1) strengthening current customer loyalty; (2) better knowing the customers in order to allow an accurate and personalized approach for which correct up-todate addresses are needed. Who is the customer? The executive has decided to aim at households, defined as people living at one address. The customer thus defined is not necessary the same as the one who signed the contract nor who pays the bill. There may be two addresses, e.g. also a holiday home or while moving. The head of the household may get bonuses in the Loyalty Program. A Transformation Model is prepared while the executive is still busy developing ideas. During this phase these are likely vague/uncertain, although an urge to start the project might be present as well. After all, there are high expectations and the just developed business case is considered to be very positive. Freezing and testing the initial idea in order to establish its sense of reality is dearly needed. The BPV Transformation Model can help in judging completeness and consistency of the initial idea, asking the executive to decide on choices, although not all consequences can be judged at that stage. A first virtual test can now be executed, after which the executive should be able to assess the need for adaptation of the business case and whether the project is still profitable. Reconsider the Loyalty Program example: (1)
117
Annex D ICEIS bijdrage
Figure 3: Classification for the wish to become a participant in the Loyalty Programme. The root (Input Object) is always top left. Each Catalyst Object {k} should be followed by a classification that starts always one row below. After completion of the classification with all branches, the information can be transferred to another Excel sheet that is used as input for the drawing program. Checks are performed before the transfer and, if resulting, an error list provided.
determine heads of households and approach these with a (personalized) mailing; (2) heads of household can register via Internet for a Loyalty Contract and determine which services to embrace; (3) each payment will result in Bonus Loyalty Points that can be used for rebates, free magazines and other gifts. The company wishes to mail the customer, motivating him/her to join the Loyalty Program. The ultimate goal is of course to trigger the customer to extend the Loyalty Contract. Although others can be present we restrict our attention to these three.
2.2 The Transformation Grid In order to allow a quick overview, a simple list of objects is made. This is the basis for the prototype tool that should assist in converting the Transformation Model, containing all relevant objects, into the Service Object Model. The latter shows the consequences of the Catalyst Objects for the various Output Objects. The tool allows for three major roles of objects, i.e. Catalyst {k}, Output {o}, or Destroyed Object {x}. As we are going to see further, an object can play multiple roles. Input Objects {i}, representing wishes have only one role. See as example Figure 1. For each row in the Grid a Service Object Model is made. Several rules apply: (1) each process has just one Input Object {i}. However, there may be various, linked processes in the Transformation Model; (2) a Catalyst {k} requires a classification. This is tested in the tool; (3) a process should always contain at least one Output Object {o} or a Destroyed Object {x}. A customer that is not paying could be removed from the customer list while could be added to the dubious customers list. Thus a new Output Object {o} is created while an existent Catalyst Object {k} could be destroyed.; (4) The Output Object {o} of one business process often acts
ICEIS bijdragen
as the Catalyst Object {k} for a business process at a higher level. Figure 3 shows that Potential Customer can act as a {k} and {x} Object in the same process.
2.3 Service Object Model For each business process identified in the Transformation Model, a more detailed Service Object Model will be prepared. This is a classification tree, corresponding to a single business process of the Transformation Model, such that: (1) the Input Object {i} serves as the root node; (2) catalyst Objects {k}are internal nodes with branching factor of at least two; (3) Output {o} and Destroyed Objects {x} are either leaves or are associated with arcs connecting the nodes. The consequences that Catalyst Objects have for the realization of Output Objects will thus become clear. For each Input Object (wish) a full classification tree is drawn in which Catalysts and Output Objects are shown in relevant branches. As all cases are outlined, the Service Object Models can provide good test cases for the process integration and chain tests, in order to demonstrate that the business process conforms to the wish of the executive. During this phase an assessment should be made to determine if quality requirements for the Output Objects are realistic. Also better insight is obtained in the applied objects with their qualities. A test engineer can herewith verify if the required quality of Output Objects is obtainable. Altered choices by the executive will lead to adapted Output Objects and thus an adjusted Transformation Model. Any change in this model will lead to an adaptation of one or more Service Object Models and consequently also test cases. However, amendments of the business process at a later stage can profit from the knowledge laid down in the models and the test cases.
118
Annex D ICEIS bijdrage
3
THE PROTOTYPE TOOL
The manual construction of the often quite extensive classification trees of the Service Object Models can be rather labor intensive and error prone. Therefore a prototype tool has been developed assisting in the development of the Service Object Models. Based on the rules described above, the Transformation Grid is taken as a starting point. For each row in the Grid a new Service Object Model (a separate Excel sheet) will be produced containing all objects, listed from left to right starting with a single Input Object, next the Catalyst Objects, proceeding with Output Objects, finishing with the Destroyed Objects. Since an object may play different roles, it can appear more than once in the Service Object Model. See Figure 3. To avoid inconsistencies the Excel sheet is protected, however, with provisions to: (1) add classification branches, thereby copying all information already available to the right of the current object. Each branch will start below the row containing the Catalyst Object that required the classification; (2) swapping Objects in the same row; (3) deleting Objects, if necessary with the complete branch to the right of the current object; (4) inserting Objects if the Object has not been used yet in the current branch, looking from root to the leaves. After classification value Known Participant the Object {o}Welcome Mailing could have been added (although here not appropriate), while after {k}Participant the Objects {x}Potential Participant or {o}Savings Account could not have been added as they are already used in at least one branch; (5) afterwards adding extra classification values, thereby, if needed, shifting downwards already available information. Perhaps sending of Welcome Mailing is somewhat slow. (Maybe the result of relaxed quality requirements?) Therefore possibly an extra value between Known Participant and No Participant yet should be added. It is, however, not unlikely that additional Output Objects would be required as well (that can be added to the existing Transformation Grid); (6) amending classifications values. In the example just above Known Participant could for instance have to be changed into Known Participant, Welcome Mailing sent.
3.1 Working with the tool The initial idea was that the test engineer would prepare the classifications from left to right, i.e. starting just after the {i} Object. The method is not based on a graph but on a full tree. It is advantageous to swap certain Objects that occur in many branches with the same classification values more
ICEIS bijdragen
towards the leaves of the tree. These classifications can be copied automatically when adding classifications near the root. This example does not show that clearly. Drawing a full graph by hand with many nearly identical branches can be laborintensive. First preparing with the tool the (nearly) common parts up to the leaves and subsequently copying these branches may be quick – often under 10 minutes work – leaving adding or deleting objects in branches as a less labor intensive task. The example [Figure 3] is rather simple. Note the two {x} Objects, indicating that the Potential Participant can be deleted, (now) being a Participant. The executive wished to make it easy to register as a Participant. Several tests such as: is the Potential Participant perhaps a Defaulter (bad payer), are performed when evaluating the wish to extend the Loyalty Contract. The layout of the classification tree in Figure 3 could contain human errors. Extensive checks can be performed in order to determine: (1) are Objects marked with o, k, and/or x in the Transformation Grid at least once used in the tree? They could be missing through deletion or by amending the Grid; (2) are there any Objects in Service Object Model not present in the Transformation Grid? This could happen if one of the marks o, k, and/or x is deleted in the Grid; (4) is there a classification with at least two values and branches after each {k} Object; (5) with at least one {o} or {x} Object after each branching value in the classification? The information is then converted into a table for import into a drawing program. See Figure 4. Tests with over 1000 leaves showed that checking the full tree and converting it to the format required for the drawing program took only a few minutes. For each Input Object a sheet can be added. Quite often later one wants to amend somewhat the wording of the Objects specified in the Transformation Grid. The tool allows this, checking the integrity over Service Object Models on different Excel sheets. It may happen that one has built a nice tree and later wishes to add an extra {k} Object, or to swap a {k} Object that already contains a classification with another one, without branching, more to the root. This swapping of {k} Objects is allowed and each choice text will be preceded by ##!## as warning that the texts may have to be amended. As example, when drawing the tree for the input object Wish to extend the Loyalty Contract of Figure 3 one has already added classification values to {k}Defaulter and not yet to {k}Participant, with that last Object still in the same row. Thus, these Objects can be swapped, with warnings for the classification texts, as they may require an amended value. Before transferring the information it is also checked if all these warnings have been removed.
119
Annex D ICEIS bijdrage
without discussing details of an implementation, helps to identify the real issues within a project. The method has been applied successfully for large projects... The drawings are a good help for corrective, adaptive and ameliorating maintenance. A prototype tool has been made for BPV, preparing the classification and drawings of the Service Object Model for communication with executive and developers. It is outside the scope of this paper to provide detailed hard figures yet. The prototype tool showed a speedup of at least 50% for larger drawings, while greatly improving the consistency and management for any project. As a next step one might wish that changes made in the drawings would immediately be ‘translated back’ to the Transformation Grid and other underlying data. Also an interactive tool in which the executive could immediately see consequences of certain choices would be desirable.
ACKNOWLEDGEMENTS This work has been performed with valuable help and advice of Marleen de Jonge, Ine Keijzer, Klaas Smit, Miel Willems [Atos Origin] and Alexander Serebrenik [Eindhoven University of Technology].
REFERENCES
Figure 4: Service Object Model of Figure 2. The triangles are the Input Object and values after a Catalyst Object in the classification. Catalysts are drawn as cylinders. Output Objects are given as arrowed boxes and Destroyed Objects as boxes with a folded corner. These drawings are normally discussed with the executive and handed over to the development team with accompanying tables.
4
CONCLUSIONS
In the IT-world there are many factions, each defending their own inventions, models and tools. BPV appears to some just another branch of a huge tree. There are, however, certain advantages: performing tests before embarking on the development, without insisting on special tools and methods for the developers. This helps in identifying the business case with constraints, while leaving sufficient freedom for developers to apply best practices. Drawings, augmented with standardized tables appear to be a good vehicle for communication with executives. Use cases as in UML could have the same advantage. BPV, starting with requirements,
ICEIS bijdragen
Buwalda, Hans et al, 2002. Integrated test design and automation: using the TestFrame method. AddisonWesley, Boston. Cesare, Sergio de, 2003. Business Modelling with UML: Distilling Directions for future Research. In: Enterprise Information Systems IV, p. 153 – 162. Kluwer Academic Publishers, Dordrecht, Boston, London. Fagan, M.E., 1976. Design and Code inspections to reduce errors in program development, IBM Systems Journal, Vol. 15, No 3, p. 258-287. Fagan, M.E., 1986. Advances in Software Inspections, IEEE Transactions on Software Engineering, Vol. SE12, No. 7, p. 744-751. Koomen, Tim & Baarda, Rob (ed.), 2005. TMap Test Topics. Tutein Nolthenius, ‘s-Hertogenbosch. Owen Rogers, R., 2004. Acceptance Testing vs. Unit Testing: A Developer’s Perspective. In: Extreme Programming and Agile Methods - XP/Agile Universe 2004, p. 22 – 31. Springer, Berlin, Heidelberg Smit, Klaas, 2005 Business Process Validation, Academic Service. The Hague. Williams, Ashley, 2003. Examining the Use Case as Genre in Software Development and Documentation. In: Proceedings of the 21st annual international conference on Documentation, p.12 – 15. ACM Press.
120
Annex E Poster voor ICEIS
Annex E Poster voor ICEIS
Business Process Validation Testing before Designing Usage & Administration
Idea
BPV
BPV contains several models
3 Wish to mail a potential contracting party Wish to become a participant Wish to extend the Loyalty contract
17 3 7 7
4 ko ko
3 o o o
cip an t
cip an t De fau lte r [b ad Sa pa vin ye gs r] Ac co We un lco t me Ma ilin Lis g to fP ar ti c ipa Inv nts oic e-I (fo D rM ail Us ing er s) Se rvic eA Pa ,B ye ,C ro ,D fS erv Sa ice vin A, gs B, Ov C, erv D Co iew nt rac ti n gP Su ar sp ty en of de Se dS rvic Sta av eA ing tem ,B sA ,C en ,D cc to ou fR nt eje cti on
,B ,C ,D
Customer Loyalty Programme
arti
The Tool is a prototype, it does not have a wizard yet It is not possible to ‘translate back’ amendments made in the drawings to the Transformation Grid, let alone the full Transformation Model Interaction with the Executive in order to consider alternatives (simulation) is not possible. The co-operation between Excel and allClear is still somewhat cumbersome. Service Object Model in allClear using data prepared in Excel. Input Object on top Classification Values in triangles Catalyst Objects as cylinders Output Objects as arrowed boxes Destroyed Objects as boxes with a folded corner.
A business process is considered from the perspective of a (perhaps internal) client of the process. At this stage the latter can be seen as a black box. As such this model is focusing on what should be implemented, rather than how to implement. It is important to know the initiating input object (a client’s wish), deliverables as Output Objects and other business objects that may influence the output. The latter are called Catalyst Objects.
Pa rti
Tooling used: Excel and allClear Results
IT/AO = Information Technology/Administrative Organisation. Thus connecting technique and people.
Transformation Model: outline of Business Processes
eA
Design a tool that can assist in preparing Service Object Models of BPV, based on the Transformation Model. Include consistency checks. Allow for adaptation. Interactive information exchange between drawings and data would be desirable.
ten ti a lp
Assignment [Master thesis project Eindhoven University of Technology]
Po
Chain Test / SAT
BPV in the V-chain
ob j ac to fs erv ic
TMAP / SystemTest TestFrame
Ma ilin g
FAcT
Transformation Model an overview of input, output and additional business objects playing a role in the business processes. Service Object Model a detailed specification for each normalised business process. IT/AO Model a sequence diagram providing detail information of the (technological and administrative organizational) functional chain of each process, also intended for preparation of logical test cases.
ou tpu t
Chain Design
co ntr
2nd Virtual Test
Application Design
Idea [initial wish of the Executive, who after all has to pay the project] Business Process Design Chain Design [workflow]
tot al
Business Process Design
Virtual Test
In BPV focus is on
wis h/o bje ct
1st
6 ko kox o
3
1
3
1
1
ko k
o ko
o
o
k
1
1
1
1
1
2
1
k
k
k
o
k
ko
o
Example of Transformation Grid with 3 Input Objects and 16 Process Objects that can act as Output Object, {o} Catalyst Object {k} or Destroyed Object {x}
Service Object Model A detailed specification for each process, is splitting up business (and quality) requirements into a classification tree, showing which objects result in different cases.
Business Process Validation Advantages: Early insight into possible problems and their consequences for business operation Excellent mechanism to help ICT suppliers to deliver what is needed to support the business Faster time to market
Consistency check of objects in Transformation grid & transfer of data for building a classification tree of the Service Object Model for a given Business Process Below example of simple classification tree showing left the Input Object and to the right the Catalyst Objects, Classification values, Output Objects & Destroyed Objects.
The prototype tool is helpful in: Drawing the Service Models Checking Consistency
Above examples: adding/removing Objects (and complete branches) Kees Ampt
[email protected]
ICEIS bijdragen
122