Hergebruik van software artefacten bij de kennisorganisatie TNO Defensie en Veiligheid Tim Hartog In opdracht van TNO Defensie en Veiligheid, Afdeling Modelling & Simulation Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 2 Hergebruik van software artefacten bij de kennisorganisatie TNO Defensie en Veiligheid Tim Hartog Afstudeercommissie: dr. mr. ir. Th.J.G. Thiadens dr. ir. K.G. van den Berg ir. D. Keus ir. H.J. Borgers Den Haag, juni 2005 Technische Universiteit Twente Faculteit Informatica, BedrijfsInformatieTechnologie Bedrijf Bestuur en Technologie Elektrotechniek Wiskunde & Informatica TNO Defensie en veiligheid TNO Defensie en veiligheid De inhoud van dit rapport kwam tot stand in het kader van een stage. TNO Defensie en veiligheid stelt zich niet verantwoordelijk voor de inhoud, eventuele conclusies en aanbevelingen van deze rapportage. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 4 Management samenvatting Aanleiding Deze scriptie bespreekt de toepassing van hergebruik van software binnen TNOD&V, afdeling Modelling & Simulation. Bij een deel van de software engineers staat hergebruik van software hoog in het vaandel. Zij veronderstellen dat hergebruik van software een aanzienlijke kostenbesparing en verlaging van de doorlooptijd kan veroorzaken. De angst bestaat namelijk dat, indien er niets verandert, de softwareontwikkeling binnen TNO-D&V, en daarmee belangrijke kennisaspecten voor TNO-D&V, op den duur zal verdwijnen. Er bestaan echter enkele knelpunten waardoor de toepassing van hergebruik van software wordt belemmerd. Het doel van deze scriptie is om advies te geven ten einde de toepassing van hergebruik van software te bevorderen. Dit wordt gerealiseerd door de knelpunten die bestaan bij de toepassing van hergebruik van software te identificeren. Voor deze knelpunten worden oplossingen geformuleerd en aanbevelingen gedaan op het gebied van de herbruikbare software artefacten, het softwareontwikkelproces en de organisatie daar omheen. Deze zijn nodig om een systematische toepassing van hergebruik van software te ondersteunen en te bevorderen. Aanbevelingen - Richt een groep op waar de kennis van de herbruikbare artefacten wordt geconcentreerd. Deze groep dient verantwoordelijk te zijn voor de projectoverschrijdende hergebruikprocessen zoals sturing, certificatie, ondersteuning en onderhoud en beheer. - De groep moet de bevoegdheid hebben om tijdens offertetrajecten te beoordelen welke software artefacten er hergebruikt kunnen worden. Tevens moet de groep projecten de opdracht kunnen geven bepaalde delen van de software zo te ontwikkelen dat deze hergebruikt kan worden. - Inventariseer de huidige verzameling herbruikbare software artefacten en houd de verzameling beperkt tot hoogwaardige herbruikbare artefacten, zoals componenten en frameworks. - Geef de groep de bevoegdheid om software engineers verantwoordelijk te maken voor het onderhoud, beheer en verdere ontwikkeling van de herbruikbare artefacten. - Om de kosten voor hergebruik te financieren moet elk project een bepaald percentage van zijn budget afstaan. Conclusie en motivatie De aanbevelingen zijn tot stand gekomen op basis van een literatuurstudie en een analyse van de huidige situatie met betrekking tot hergebruik van software. Voor de analyse van de huidige situatie zijn diverse interviews en gesprekken gehouden binnen de afdeling Modelling & Simulation. Tevens zijn er drie concrete case studies onderzocht. De conclusie van deze scriptie is dat hergebruik al zeker plaatsvindt, al is dit wel op een adhoc niveau. Als gevolg hiervan bestaan er diverse knelpunten die de toepassing van hergebruik door software engineers en projectleiders belemmeren. Deze knelpunten zorgen ervoor dat kansen voor hergebruik worden gemist. De knelpunten voor hergebruik ontstaan doordat er geen opvang van de herbruikbare artefacten buiten de projecten is. Hierdoor is er vaak geen beheer, onderhoud en ondersteuning aanwezig. Tevens is er geen sturing op de ontwikkeling van herbruikbare artefacten waardoor het proces sterk van toeval afhankelijk is en voortkomt uit de toewijding van software engineers. Onder projectleiders bestaat er weerstand omdat het ontwikkelen van herbruikbare software extra moeite kost. Tevens is er geen sturing op de ontwikkeling van software met de herbruikbare artefacten. Hierdoor wordt er om diverse redenen, van gebrek aan vertrouwen, geen kennis van het bestaan tot de onwil om te hergebruiken aan toe, niet hergebruikt. Indien deze knelpunten worden opgelost zal hergebruik toenemen en het resultaat door hergebruik verbeteren. De opbrengsten door hergebruik worden gevormd door besparingen op ontwikkel- en onderhoudsuren. De kosten worden gevormd door de sturing van de projecten, het onderhoud & beheer, certificatie en de ondersteuning aan de projecten. Schattingen van de resultaten door hergebruik, bestaande uit productiviteitsverbeteringen en kostenbesparingen, liggen in de orde van grote van enkele mensjaren. Consequenties TNO-D&V zal een keuze moeten maken over het systematisch toepassen van hergebruik van software. Het systematisch hergebruiken van software gebeurt niet vanzelf en er zijn diverse aanpassingen en investeringen nodig. TNO-D&V heeft een vliegende start doordat er al een aanzienlijke hoeveelheid herbruikbare artefacten beschikbaar is. Er zal echter wel een aantal uren geïnvesteerd moeten worden om deze software artefacten te testen en te voorzien van documentatie. Verder vormt hergebruik een beperking op de vrijheid van de projectteams doordat de nieuwe groep inspraak krijgt met betrekking tot de ontwikkeling van software binnen een project. De groep kan immers opdracht geven bepaalde delen van de software zo te ontwikkelen dat deze hergebruikt kan worden en de groep heeft inspraak op het gebruik van herbruikbare software artefacten binnen dat project. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 6 Voorwoord Deze scriptie is het resultaat van een zeven maanden durende opdracht bij het kennisinstituut TNO Defensie en Veiligheid. De scriptie die voor u ligt vormt de laatste opdracht binnen mijn doctoraal voor de studie BedrijfsInformatieTechnologie aan de Universiteit Twente, te Enschede. Het onderwerp van deze scriptie is de toepassing van hergebruik van software bij de softwareontwikkeling van een kennisinstituut. Ik wil hierbij iedereen bedanken die mij op enige manier heeft geholpen gedurende deze periode. Speciale aandacht gaat hierbij uit naar, Theo Thiadens Klaas van den Berg Daniëlle Keus Erik Borgers Medewerkers van Modelling & Simulation Susanne Buijtenhek Den Haag, 16 juni 2005 Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 7 Versiebeheer De tabel hieronder geeft aan welke wijzigingen zijn gemaakt in dit document. Versie Datum Auteur Wijziging 0.0.0.0 0.0.1.0 0.0.2.1 0.0.2.2 0.0.3.1 0.0.3.2 0.0.3.3 01-12-2004 14-12-2004 16-12-2004 24-12-2004 21-01-2005 25-01-2005 02-02-2005 Tim Hartog Tim Hartog Tim Hartog Tim Hartog Tim Hartog Tim Hartog Tim Hartog 0.0.3.4 0.1.0.0 0.1.1.0 0.1.2.0 0.2.0.0 0.2.5.0 0.3.0.0 1.0.0.0 2.0.0.0 24-02-2005 27-02-2005 28-03-2005 04-04-2005 28-04-2005 08-05-2005 24-05-2005 25-05-2005 16-06-2005 Tim Hartog Tim Hartog Tim Hartog Tim Hartog Tim Hartog Tim Hartog Tim Hartog Tim Hartog Tim Hartog Eerste versie document. Verwerking PVA versie 1.1 Invoeging theorie § 3.1 + 3.2 + 3.3 Feedback bespreking UT verwerkt Invoeging theorie § 3.4 + 3.5 § 3.6 Best Practice Sodalia toegevoegd. Verwerking feedback dhr. Van den Berg – Interviewopzet + toevoeging § 3.6 Eliop Feedback n.a.v. bijeenkomst 27-01-2005 verwerkt § 3.7 toegevoegd, 1ste Concept Versie Theorie § 3.8 Theoretisch raamwerk toegevoegd Eerste opzet Huidige Situatie Feedback n.a.v. bijeenkomst 12-04-2005 verwerkt Algemene verbeteringen & correcties Gewenste Situatie toegevoegd 1ste Concept versie verslag Scriptie Hergebruik van Software Artefacten Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 8 Inhoud 1. Inleiding ...................................................................................................14 1.1 TNO Defensie en Veiligheid ....................................................14 1.2 Hergebruik van software...........................................................15 2. Onderzoeksontwerp .................................................................................17 2.1 Doelstelling...............................................................................17 2.2 Onderzoeksvragen ....................................................................17 2.3 Onderzoeksmodel .....................................................................18 2.4 Aanpak......................................................................................18 2.5 Afbakening ...............................................................................20 3. Theoretische Analyse...............................................................................21 3.1 Hergebruik ................................................................................21 3.2 Kritieke succes- en faalfactoren................................................25 3.3 Herbruikbare artefacten ............................................................28 3.4 Hergebruik processen ...............................................................39 3.5 Hergebruik organisatie..............................................................48 3.6 Kwantificeren van hergebruik ..................................................60 3.7 Theoretisch raamwerk ..............................................................70 3.8 Best practices ............................................................................74 3.9 Conclusie ..................................................................................78 4. Huidige Situatie bij TNO .........................................................................79 4.1 Aanpak......................................................................................79 4.2 Algemene analyse.....................................................................80 4.3 Case studies ..............................................................................93 4.4 Conclusie ................................................................................109 5. Gewenste Situatie voor TNO .................................................................111 5.1 Keuze voor hergebruik ...........................................................111 5.2 Herbruikbare software artefacten ...........................................113 5.3 Gewenste hergebruikorganisatie en processen .......................117 5.4 Financiering van hergebruik ...................................................133 5.5 Stappenplan voor hergebruik..................................................138 5.6 Hergebruik als business case ..................................................140 6. Advies aan TNO-D&V ..........................................................................145 6.1 Conclusie ................................................................................145 6.2 Aanbevelingen ........................................................................147 7. Reflectie .................................................................................................149 Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 9 8. Referenties .............................................................................................151 Bijlage A Kosten en opbrengsten van hergebruik .....................................................1 Bijlage B Reuse Maturity Framework ......................................................................1 Bijlage C Toelichting op de AMI methode...............................................................1 Bijlage D Best practices Sodalia and Eliop...............................................................1 Bijlage E Interviewopzet...........................................................................................1 Bijlage F Codes of Practice binnen TNO-D&V .......................................................1 Bijlage G Componenten uit het Kibowi MP Framework ..........................................1 Bijlage H Stroomschema voor gebruik Electronic Battlespace Facility ...................1 Bijlage I Uitkomsten Group Facility Room Sessie..................................................1 Bijlage J Financiële scenario’s hergebruik voor M&S ...........................................1 Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 10 Lijst van gebruikte afkortingen ALSP AMI ASF BOAI BU CBD CCS CDE CMM CORBA COP COTS DIS D&V EBF ELSTAR GQM HLA IT/QA ITEMS J-Roads KL KLU KM LOC M&S MDA MOSES MP NIH ORB PLF RCM RSO RTG RTI RCI SALMS SDD SE SEI SF SPC SRS Aggregate Level Simulation Protocol Application of Metrics in Industry Advanced Simulation Framework Beleidstudies, Operationele Analyse en Informatievoorziening Business Unit Component-Based Software Development Command Control & Simulatie Collaborative Development Environment Capability Maturity Model Common Object Request Broker Archicture Code of Practice Commercial-Off-the-Shelf Distributed Interactive Simulation Defensie en Veiligheid Electronic Battlespace Facility European Low-cost Simulators for Training of Armed Forces Goal-Question-Metric High Level Architecture IT Quality Assurance Interactive Tactical Environment Management System Joint Research on Air Defence Simulation Koninklijke Landmacht Koninklijke Luchtmacht Koninklijke Marine Lines of Code Modelling & Simulation Model Driven Architectures Maritime Operations Simulation and Evaluation System Multi Platform Not Invented Here Operationele Research en Bedrijfsvoering Platform Framework Reuse Capability Model Reuse Support Organization Reuse Task Group Runtime Infrastructure Runtime Communication Infrastructure Sodalia’s Asset Library Management System Software Design Description Software Engineering Software Engineering Institute SourceForge Software Productivity Consortium Software Requirements Specification Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 11 SSDD SSS TBM TNO TNO-D&V TNO-FEL TSA TOPICS UML VVA System Subsystem Design Description System Subsystem Specification Terrein Bewerking Module Nederlandse Organisatie voor toegepast-natuurwetenschappelijk onderzoek TNO Defensie en Veiligheid TNO Fysisch en Elektronisch Laboratorium TNO Simulation Architecture Tactical Operations in Confined and Shallow waters Unified Modeling Language Verificatie Validatie en Accreditatie Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 12 Lijst van figuren en tabellen Figuren Figuur 1 - Organisatiestructuur TNO. .................................................................... 14 Figuur 2 - Onderzoeksmodel hergebruik van software artefacten bij TNO-D&V. 18 Figuur 3 - Compositie van een herbruikbaar asset [EZR02]. ................................ 30 Figuur 4 - Mogelijke wildgroei aan versies van één herbruikbaar artefact. ........... 35 Figuur 5 - Compositiescenario's tussen herbruikbare artefacten [MIL02]. ............ 36 Figuur 6 - Het Model - View - Controller (MVC) Framework [MIL02]. .............. 38 Figuur 7 - Processen voor systematisch hergebruik [JAC97]. ............................... 39 Figuur 8 - Gewenste levenscyclus van een herbruikbaar artefact .......................... 43 Figuur 9 - Relatie tussen CMM-niveau en Reuse Management niveau [VAD98] . 47 Figuur 10 - Onderdelen binnen een organisatiestructuur voor hergebruik............. 52 Figuur 11 - Lone Producer structuur [FAF94][MIL02]. ........................................ 53 Figuur 12 - Nested Producer structuur [FAF94][MIL02]....................................... 54 Figuur 13 - Pool Producer structuur [FAF94][MIL02]. ......................................... 55 Figuur 14 - Team Producer structuur [FAF94][MIL02]......................................... 57 Figuur 15 - Verschillende fasen volgens de AMI methode [PUL96]..................... 61 Figuur 16 - Goaltree voor de intensiteit van hergebruik......................................... 63 Figuur 17 - Goaltree voor de netto kosten van hergebruik binnen een project ...... 64 Figuur 18 - Stakeholders bij hergebruik van software artefacten........................... 79 Figuur 19 - Algemene Projectstructuur binnen BU2.............................................. 81 Figuur 20 - Overzicht hergebruik-activiteiten binnen voormalig divisie ORB. ..... 83 Figuur 21 - Productie van herbruikbare artefacten binnen BU2 van TNO-D&V. . 87 Figuur 22 - Typische architectuur van een simulatie-model [WIT02]. .................. 93 Figuur 23 - Hergebruikte componenten uit KIBOWI MP...................................... 96 Figuur 24 - Generieke EBF simulator architectuur [HUI98][JEN97]. ................... 99 Figuur 25 - Structuur van het Advanced Simulation Framework [JEN97]. ......... 100 Figuur 26 - Platform Architectuur [JEN97]. ........................................................ 100 Figuur 27 - Organisatiestructuur EBF .................................................................. 103 Figuur 28 - Indicatie van de resultaten per case studie......................................... 107 Figuur 29 - Organisatiestructuur voor hergebruik binnen M&S. ......................... 118 Figuur 30 - Productieproces voor een herbruikbaar artefact. ............................... 120 Figuur 31 - Fasen in het softwareontwikkelproces en keuzes voor hergebruik... 122 Figuur 32 - Hergebruikdilemma: mogelijke voordelen vs. inzicht....................... 122 Figuur 33 - Betekenis van hergebruik binnen M&S............................................. 123 Figuur 34 - Proces voor Change Requests bij een herbruikbaar artefact.............. 129 Figuur 35 - Kosten en Opbrengsten van hergebruik [FIC01]................................... 1 Figuur 36 - Globaal overzicht hergebruikorganisatie Sodalia .................................. 4 Figuur 37 - Globaal overzicht hergebruikorganisatie Eliop. .................................... 9 Figuur 38 - COP’s t.o.v. de fasen waarin een softwareproject kan verkeren. .......... 1 Figuur 39 - Stroomschema voor het gebruik van het EBF. ...................................... 1 Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 13 Tabellen Tabel 1 - Definities uit de literatuur van ‘Software Reuse' .....................................21 Tabel 2 - Te hanteren definitie m.b.t. hergebruik van software artefacten..............22 Tabel 3 - Documentatie Template herbruikbare artefacten [KAL01][MIL02]. ......31 Tabel 4 - Keuzes bij productie van herbruikbare artefacten [FIC01]......................40 Tabel 5 - Dimensies van volwassenheid van het Reuse Maturity Framework........47 Tabel 6 - Verschillende manieren van sturing [THI02]. .........................................50 Tabel 7 - Niveaus van sturing [NOL00]..................................................................51 Tabel 8 - Afwegingen bij de Lone Producer structuur. ...........................................54 Tabel 9 - Afwegingen bij de Nested Producer structuur. ........................................55 Tabel 10 - Afwegingen bij de Pool Producer structuur. ..........................................56 Tabel 11 - Afwegingen bij de Team Producer structuur. ........................................57 Tabel 12 - Template voor de definitie van doelen [FEN97][EZR02]. ....................63 Tabel 13 - Metric template voor ´Development Cost Avoidance´ [POU97]...........66 Tabel 14 - Interpretatie van de metingen bij doel 1.................................................67 Tabel 15 - Dataset van metingen van metriek B2. ..................................................68 Tabel 16 - Theoretisch raamwerk voor het analyseren van hergebruik...................73 Tabel 17 - Hergebruik bij Sodalia en Eliop [EZR02][DOU97][MOR00][VIL95]. 75 Tabel 18 - Overzicht type systemen, klanten en benodigde kwaliteit [TNO03]. ....80 Tabel 19 - Voorbeelden van ontwikkelde software producten van TNO-D&V......81 Tabel 20 - Beschikbare (grotere) herbruikbare artefacten binnen BU2. .................85 Tabel 21 - Hergebruik binnen BU2 volgens het Reuse Maturity Framework.........92 Tabel 22 - Analyse van de Case Studies Cases a.d.h.v. het theoretische model. ..105 Tabel 23 - Onderverdeling naar type simulators [SLU04]. ...................................112 Tabel 24 - Benodigde documentatie en informatie bij een herbruikbaar artefact. 115 Tabel 25 - Kostenposten door hergebruik voor M&S. ..........................................134 Tabel 26 - Overzicht van de kostenposten en de financiering hiervan..................135 Tabel 27 - DCA en SCA bij stijging hergebruikpercentage. .................................141 Tabel 28 - DCA en SCA bij variatie ratios blackbox & whitebox hergebruik......141 Tabel 29 - RCA bij verschillende hergebruikpercentages.....................................142 Tabel 30 - Totale kosten hergebruik bij variërende investeringen. .......................143 Tabel 31 - Nettoresultaat van hergebruik. .............................................................143 Tabel 32 - Reuse Maturity Framework [KOL91]......................................................1 Tabel 33 - De 12 stappen van de AMI methode [PUL96][DOB96]. ........................1 Tabel 34 - Metric template [PUL96]. ........................................................................3 Tabel 35 - Eigenschappen en hergebruikfactoren bij Sodalia. ..................................3 Tabel 36 - Eigenschappen en hergebruikfactoren bij Eliop. .....................................8 Tabel 37 - Overzicht van het aantal interviews per stakeholdergroep.......................2 Tabel 38 - Relatie interviewvragen ontwikkelaars en theorie. ..................................2 Tabel 39 - Relatie interviewvragen Projectleiders en theorie....................................5 Tabel 40 - Overzicht van Code of Practices (COPS) binnen TNO-D&V. ................2 Tabel 41 - Toelichting bij de componenten uit het Kibowi MP Framework.............2 Tabel 42 - Gehanteerde (harde) kengetallen in de 'hergebruik business case'..........1 Tabel 43 - Gehanteerde schattingen in de 'hergebruik business case'. ......................1 Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 14 1. Inleiding 1.1 TNO Defensie en Veiligheid TNO Defensie en Veiligheid, een mix van voormalig TNO Fysisch en Elektronisch Laboratorium (Den Haag) en TNO Human Factors (Soesterberg), is onderdeel van de Nederlandse Organisatie voor toegepast-natuurwetenschappelijk onderzoek. TNO is een onafhankelijke kennisorganisatie die een brug slaat tussen fundamentele kennis en de praktijk van overheden en bedrijfsleven. TNO Defensie en Veiligheid is één van de vijf kerngebieden van TNO, zoals Figuur 1 weergeeft, en heeft circa 1000 werknemers. Het kerngebied Defensie en Veiligheid bestaat op haar beurt uit vijf Business Units. De Business Unit Beleidsstudies, Operationele Analyse en Informatievoorziening (BOAI) bestaat op haar beurt uit vier afdelingen. Eén van deze afdelingen vormt het kader waarin deze afstudeerscriptie plaatsvindt, namelijk de afdeling Modelling en Simulation (M&S). TNO Kwaliteit van het leven Waarnemingssystemen Operationele Analyse Defensie en Veiligheid Beleidsstudies Operationele Analyse en Informatievoorziening Command Control en Informatievoorziening Bescherming, Munitie en Wapens Industrie en Techniek Biologische en Chemische Bescherming Modelling & Simulation Bouw en Ondergrond Informatie- en communicatietechnologie Gedrag, Training en Prestatie Beleid en Strategie Figuur 1 - Organisatiestructuur TNO. De afdeling Modelling & Simulation van TNO-D&V, onderdeel van Business Unit BOAI, voert opdrachten uit voor de militaire en civiele wereld. De ondersteuning van de Krijgsmacht en het Ministerie van Defensie vindt plaats op de volgende gebieden: - - - ondersteuning van besluitvormingsprocessen gericht op operationele behoeftestelling, materieelverwerving en tactische inzet van middelen van de Krijgsmachtdelen en het Ministerie van Defensie, operationele effectiviteit van (wapen- en sensor)systemen, algemene ondersteuning van bedrijfsvoering op de gebieden logistiek, onderhoud, resultaatverantwoordelijkheid en planning, onder andere met behulp van decision support-systemen, tactische training en opleiding. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 15 De taak van M&S is hoofdzakelijk het ontwikkelen van tools en simulators om deze opdrachten te vervullen. Deze softwareontwikkeling vindt zowel plaats naar aanleiding van opdrachten van klanten als vanuit interne kennisbehoeftes van TNO-D&V zelf. 1.2 Hergebruik van software Hergebruik is geen nieuw fenomeen, ook niet binnen software engineering. Maar waar het in andere disciplines al veelvuldig met succes wordt toegepast lijkt het binnen de software engineering discipline maar moeilijk door te breken. Hergebruik van software bestaat al tientallen jaren, bijna sinds het ontwikkelen van software zelf. In de loop der jaren heeft het zich ontwikkeld van hergebruik van subroutines en stukken code naar het hergebruiken van complete frameworks, componenten en architecturen. De voordelen van hergebruik kunnen zeer overtuigend zijn: flinke kostenbesparingen, productiviteitsverbeteringen en verbeterde kwaliteit. Maar toch is hergebruik nog geen gemeengoed in de software industrie. Een veelgemaakte fout is om hergebruik alleen als een technische uitdaging te beschouwen. Hergebruik heeft immers ook een flinke impact op niet-technische aspecten zoals organisatorische, economische, administratieve en psychologische factoren. Het behalen van goede resultaten met hergebruik is onder andere afhankelijk van de manier waarop een organisatie invulling weet te geven aan deze factoren. Op individueel niveau kan een software engineer redelijke resultaten behalen met het adhoc hergebruiken van bestaande stukken code. Deze resultaten vallen echter in het niet bij de mogelijke resultaten van een systematische toepassing van hergebruik. De impact van een dergelijke toepassing op het softwareontwikkelproces, de taken en verantwoordelijkheden en de organisatie is echter ook groter. Binnen M&S staat bij een deel van de software engineers hergebruik van software hoog in het vaandel. Er bestaat een sterke behoefte om hergebruik te definiëren en verder te stimuleren. Anno 2003 is hiervoor een zogenaamde hergebruikgroep opgericht, die aan de hand van een aantal workshops het onderwerp op de kaart heeft gezet. Een van de resultaten is de aanschaf van de tool SourceForge. SourceForge wordt gebruikt als projectmanagementtool en kan ook gebruikt worden als repository voor de herbruikbare artefacten. Binnen de afdeling M&S bestaan er weerstanden en knelpunten die een brede toepassing van hergebruik belemmeren. Tevens is bestaat er onduidelijkheid of hergebruik van software wel geschikt is voor een organisatie als TNO waar elk softwareproduct uniek is. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 16 Deze scriptie sluit zich aan bij het initiatief van de hergebruikgroep en definieert hergebruik doormiddel van een literatuuronderzoek. Hierbij ligt de nadruk op de herbruikbare software artefacten, de processen en de organisatie die nodig zijn voor de toepassing van hergebruik van software. Tevens worden enkele best practices geanalyseerd om een beeld te krijgen van de succesfactoren binnen die organisaties. Binnen TNO-D&V wordt op basis van interviews de huidige situatie onderzocht en getoetst aan de theorie. Hierbij worden voor de afdeling M&S knelpunten en verbeterpunten geïdentificeerd. Op basis van deze analyse wordt in de gewenste situatie beschreven hoe hier voor M&S het beste invulling aan gegeven kan worden. Het geheel resulteert in een serie aanbevelingen en een conclusie met betrekking tot de systematische toepassing van hergebruik van software binnen de afdeling Modelling & Simulation. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 17 2. Onderzoeksontwerp Dit hoofdstuk definieert de doelstelling en onderzoeksvragen van dit project. Tevens worden de aanpak en afbakening van dit onderzoek besproken. 2.1 Doelstelling De doelstelling voor dit onderzoek is als volgt gedefinieerd: “Het doen van aanbevelingen op het gebied van het softwareontwikkelproces en de inrichting van de organisatie daar omheen, met betrekking tot de invoering en bevordering van hergebruik van software artefacten binnen de afdeling Modelling & Simulation.” 2.2 Onderzoeksvragen De onderzoeksvragen zijn opgedeeld naar de theorie, de huidige situatie en de gewenste situatie binnen de afdeling M&S. 1. Hoe wordt hergebruik van software artefacten in de theorie beschreven? a. Welke software artefacten kunnen er hergebruikt worden? b. Welke processen zijn er nodig voor hergebruik? c. Hoe dient hergebruik georganiseerd te worden? d. Wat zijn kritieke succesfactoren voor hergebruik? e. Hoe vindt hergebruik van software artefacten plaats bij de ‘Best Practices’? f. Hoe kan de mate van hergebruik worden gekwantificeerd? 2. Hoe wordt hergebruik in de huidige situatie toegepast? a. Welke software artefacten worden er hergebruikt? b. Hoe zijn de processen ingericht voor hergebruik? c. Hoe is de hergebruik-organisatie ingericht? d. In welke mate wordt hergebruik toegepast? e. Welke weerstanden en knelpunten bestaan er? 3. Wat is het gewenste niveau van hergebruik in de afdeling Modelling & Simulation en hoe kan daar gekomen worden? a. Welke software artefacten kunnen er nog meer hergebruikt worden? b. Welke veranderingen in de huidige processen zijn er nodig? c. Welke veranderingen in de hergebruik-organisatie zijn er nodig? d. Welke weerstanden kunnen zich voordoen en hoe kunnen deze opgelost worden? Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 18 2.3 Onderzoeksmodel Het onderzoeksmodel in Figuur 2 toont aan hoe het project is vormgegeven en hoe het eindresultaat tot stand gekomen is [VER04]. Figuur 2 dient van links naar rechts gelezen te worden. Huidige Situatie M&S Artefacten Processen Theorie Hergebruik Organisatie Artefacten Gewenste Situatie M&S Processen Artefacten Organisatie Theoretisch Model Aanbevelingen Processen voor Hergebruik en conclusies Metrics Organisatie Best Practices b a c d Figuur 2 - Onderzoeksmodel hergebruik van software artefacten bij TNO-D&V. Het onderzoeksmodel in Figuur 2 wordt als volgt verwoord: (a) Op basis van een theoretische verkenning van hergebruik gespitst op de software artefacten, de processen, de organisatie, de metrics en de best practices (b) is een theoretisch model ontworpen waarmee de huidige situatie qua hergebruik binnen de afdeling ‘Modelling & Simulation’ geanalyseerd is. (c) Op basis van de uitkomsten van deze analyse en het theoretische model is er een gewenste situatie geschetst. (d) De aanbevelingen en conclusies zijn gebaseerd op deze gewenste situatie. 2.4 Aanpak Om tot de beantwoording van de onderzoeksvragen en daarmee de vervulling van de doelstelling te kunnen komen, is het noodzakelijk een duidelijke aanpak te hanteren. Voor deze scriptie wordt er een onderscheid gemaakt naar een theoretisch en empirisch gedeelte. Het theoretische gedeelte vormt de basis voor de rest van het verslag. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 19 2.4.1 Theoretisch onderzoek Het theoretische onderzoek richt zich op drie hoofdaspecten. - De herbruikbare software artefacten De herbruikbare software artefacten zijn de entiteiten die daadwerkelijk hergebruikt worden. Denk hierbij aan broncode, losse componenten of architecturen. - De processen De processen beschrijven de opeenvolging van handelingen die nodig zijn in het kader van hergebruik. - De organisatie De organisatie beschrijft onder andere de stakeholders, verantwoordelijkheden, functies van de betrokkenen en de inrichting van de organisatie voor hergebruik. Het theoretische onderzoek heeft als doel een model te schetsen waarmee hergebruik van software artefacten in een organisatie geanalyseerd kan worden. De drie behandelde onderwerpen vormen samen een gedegen beeld van wat er hergebruikt kan worden, hoe dit gedaan kan worden en hoe het georganiseerd kan worden. Tevens wordt er aandacht besteed aan praktijkervaringen doormiddel van bestudering van twee organisaties die worden gekenmerkt als ‘best practices’. Bij de analyse van deze organisaties wordt het theoretische model toegepast. Voor deze literatuurstudie is kennis vergaard uit boeken, wetenschappelijke artikelen, relevante vakbladen, internet en, voor zover mogelijk, van specialisten. 2.4.2 Empirisch onderzoek Aan de hand van de bestudeerde theorie wordt de huidige situatie binnen de afdeling M&S geanalyseerd. Bij de beschrijving van de huidige situatie wordt een onderscheid gemaakt naar de algemene situatie met haar projectoverschrijdende kenmerken en naar drie case studies met hun specifieke kenmerken. Voor de bestudering van de case studies wordt ook het theoretische raamwerk gehanteerd. Op deze manier wordt inzicht verkregen in de knelpunten en weerstanden die voorkomen bij de toepassing van hergebruik. De benodigde informatie voor het empirische onderzoek wordt verkregen uit interviews, presentaties, informele gesprekken en de aanwezige documentatie. Op basis van de analyse van de huidige situatie, de bestudeerde theorie en de visie van verschillende stakeholders binnen TNO-D&V wordt er een beeld geschetst van de gewenste situatie. De gewenste situatie bevat verscheidene aanbevelingen voor de toepassing en specifieke invullingen voor hergebruik. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 20 2.5 Afbakening De aspecten die hieronder worden vermeld vormen de afbakening voor deze scriptie. - Deze scriptie richt zich op de software engineering kernen binnen de divisie Operationele Research en Bedrijfsvoering en Command Control en Simulatie. Als gevolg van de reorganisatie vallen deze twee divisies onder de business unit ‘Beleidstudies, operationele analyse en informatievoorziening’, afdeling ‘Modelling & Simulations’ - In deze scriptie wordt er gekeken welke categorieën van software artefacten geschikt zijn voor hergebruik. De auteur van deze scriptie houdt zich niet bezig met het beoordelen van de specifieke artefacten zelf. - De opbrengsten van hergebruik voor TNO-D&V zijn in beginsel geen onderwerp van onderzoek binnen deze scriptie. Dat wil zeggen dat er voor M&S niet berekend wordt wat de kostenbesparingen, kwaliteitsverbeteringen en vermindering in ontwikkeltijd als gevolg van hergebruik zijn geweest. Er wordt wel aandacht besteed aan hoe TNOD&V zelf kan onderzoeken. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 21 3. Theoretische Analyse “… reuse is neither a silver bullet nor a magic weight loss pill. It is a diet and exercise program…” [BAS97] In dit hoofdstuk worden verschillende theoretisch aspecten met betrekking tot hergebruik van software artefacten behandeld. Gezien de grote hoeveelheid informatie binnen dit onderwerp worden er een aantal aspecten uitgelicht te weten: herbruikbare software artefacten, processen, organisatie, kritieke succesfactoren en best practices. Tot slot wordt er nog aandacht besteed aan het kwantificeren van belangrijke aspecten van hergebruik in het softwareontwikkelproces. 3.1 Hergebruik In deze paragraaf wordt een definitie voor hergebruik van software artefacten opgesteld en wordt bekeken wat de voor- en nadelen van hergebruik zijn. 3.1.1 Definities Binnen de literatuur worden verschillende definities van hergebruik gehanteerd. In Tabel 1 staan enkele definities opgesomd. Op basis van deze definities wordt een eigen definitie geformuleerd die in deze scriptie gehanteerd wordt. Definities vanuit de literatuur Auteur “Reuse is the process of adapting a generalized component to various contexts of use” “Software reuse is the process whereby an organization defines a set of systematic operating procedures to specify, produce, classify, retrieve and adapt software artifacts for the purpose of using them in its development activities” “Futher use or repeated use of an artifact, typically software artifacts are designed for use outside of their original context to create new systems” “Reuse is the systematic application of existing software artifacts during the process of building a new software system, or the physical incorporation of existing software artifacts in a new software system.” “Software reuse, the use of existing software artifacts or knowledge to create new software” “Software reuse is the systematic practice of developing software from a stock of building blocks, so that similarities in requirements and/or architecture between applications can be exploited to achieve substantial benefits in productivity, quality and business performance” [BAS97] Tabel 1 - Definities uit de literatuur van ‘Software Reuse' [MIL02] [JAC97] [DUS95] [FRA96] [MOR02] Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 22 In de bovenstaande definities zijn belangrijke aspecten met betrekking tot hergebruik van software artefacten dikgedrukt. De volgende aspecten vallen op: - - - Systematisch Hergebruik is vaak onzichtbaar in een organisatie. Het komt wel voor maar slechts beperkt en in een ad hoc vorm. Software ontwikkelaars maken hierbij gebruik van eigen lokale bibliotheken bij het ontwikkelen van software. Indien hergebruik systematisch zou worden aangepakt kunnen de voordelen op een veel breder vlak uitgebuit worden. Hergebruik wordt zichtbaar, meetbaar en er zijn processen te definiëren voor het produceren en consumeren van herbruikbare artefacten. De opbrengsten van een systematisch hergebruikinitiatief zijn in potentie veel groter. Bestaande software artefacten1 Alleen bestaande software artefacten kunnen hergebruikt worden. Software artefacten die tijdens project A zijn ontwikkeld worden tijdens project A gebruikt en niet hergebruikt. Wordt het software artefact echter ook in project B gebruikt, dan wordt het wel als hergebruik beschouwd. Wat een software artefact precies is wordt in § 3.3.1 besproken. Ontwikkeling nieuwe software systemen. In de theorie bestaat er onenigheid of onderhoud ook een vorm van hergebruik is. In dit verslag worden onderhoud en hergebruik als principieel gescheiden beschouwd. In de praktijk kan er wel een relatie bestaan tussen hergebruik en onderhoud van software producten. Deze drie aspecten vormen de kern van software hergebruik. In Tabel 2 staat de definitie die verder gehanteerd wordt in dit verslag. Gehanteerde Definitie in deze scriptie “Software hergebruik is het systematische proces waarbij bestaande software artefacten worden gebruikt bij het ontwikkelen van nieuwe software.” Tabel 2 - Te hanteren definitie m.b.t. hergebruik van software artefacten. 1 De term software artefact is gekozen vanwege de neutraliteit ten opzichte van termen als object of component. Objecten en componenten zijn voor vele sterk gerelateerd aan bijvoorbeeld een java-object of stukken code, hergebruik is hiertoe echter niet beperkt. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 23 3.1.2 Voordelen Net als bij andere engineering disciplines kan hergebruik binnen software engineering ook veel profijt opleveren. De voordelen van hergebruik binnen software engineering worden in drie categorieën onderverdeeld [MIL02]. - Verbeteringen in de doorlooptijd De essentie van hergebruik is het feit dat het wiel niet continue opnieuw uitgevonden hoeft te worden, maar dat er gebruik kan worden gemaakt van bestaande oplossingen. Indien dit netto minder tijd kost dan het zelf ontwikkelen, heeft dit een positief effect op de doorlooptijd. - Verbeteringen in de kwaliteit. Door het (mogelijk) grotere aantal gebruikers van een herbruikbaar artefact kunnen fouten eerder opgemerkt en verholpen worden. De kwaliteit van de herbruikbare artefacten kan hierdoor beter zijn dan van zelf ontwikkelde artefacten. Tevens ontstaat de mogelijkheid om meer te investeren in de kwaliteit van de software artefacten doordat de kosten over meerdere gebruikers verrekend kunnen worden. - Daling in de kosten Hergebruik van software artefacten kan een daling in de totale softwareontwikkelkosten realiseren. Een herbruikbaar software artefact hoeft immers maar één keer ontwikkeld te worden terwijl het meerdere keren hergebruikt kan worden. Door tevens het beheer van het herbruikbare artefact centraal uit te voeren bespaart een organisatie in de onderhoudskosten van een herbruikbaar artefact. Een voorwaarde om deze besparingen te realiseren is dat de herbruikbare artefacten meerdere keren hergebruikt worden. 3.1.3 Risico’s en belemmeringen Ondanks de voordelen bestaan er ook belemmeringen en risico’s die ervoor hebben gezorgd dat het systematisch hergebruiken van software artefacten nog geen algemene intrede heeft gedaan in de software industrie [MIL02][SOM04]. - Beperkt potentieel voor systematisch hergebruik Er zijn drie factoren die de mogelijkheid tot systematisch hergebruik beperken. 1. Volwassenheid van het softwareontwikkelproces Het mogelijke niveau van hergebruik is verbonden met huidige manier van werken binnen het softwareontwikkelproces. Indien het softwareontwikkelproces chaotisch is, is een systematische vorm van hergebruik moeilijk te bereiken. In § 3.4.5 wordt hier dieper op ingegaan. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 24 2. Homogeniteit van de software producten Naar mate de diversiteit tussen de producten die door een organisatie ontwikkeld worden toeneemt, neemt de mogelijkheid voor hergebruik af. Bij een organisatie waar er sprake is van een sterke homogeniteit tussen de ontwikkelde softwareproducten is de potentie van hergebruik groter dan bij een organisatie waar dit minder het geval is. 3. Ontwikkeling van een applicatie domein Indien een organisatie zich in een relatief nieuw domein bezighoudt, is de basis voor hergebruik mager aangezien er nog relatief weinig aspecten bekend en stabiel zijn. Indien het domein bekender wordt ontstaat er een beter inzicht in wat er wel en niet hergebruikt kan worden. - Niet te verwaarlozen kosten en onzekere opbrengsten Er wordt vaak gepropageerd dat hergebruik veel kan opleveren en weinig zal kosten. De realiteit is vaak anders; er zijn vele (verborgen) kosten waarmee ook rekening gehouden moet worden. Figuur 35 in Bijlage A toont duidelijk de financiële impact op projectniveau met betrekking tot de kosten en opbrengsten van hergebruik. De kosten voor hergebruik zijn zeker, direct en vaak gebonden aan bepaalde projecten. De baten komen later, zijn onzeker en komen vaak andere projectteams toe [FIC01]. Op organisatieniveau moet hergebruik van software artefacten worden gezien als een investering in de toekomst. Eerst zal er geïnvesteerd moeten worden om een verzameling herbruikbare artefacten te creëren, de hergebruikprocessen te definiëren en te implementeren en de organisatie erop aan te passen. Pas wanneer de artefacten worden hergebruikt ontstaan de baten van hergebruik. - Aanzienlijke obstakels De invoering van een systematisch toepassing van hergebruik van software artefacten heeft een grote impact op de processen en organisatie binnen een onderneming. Dit vergt een cultuurverandering en gaat meestal gepaard met weerstand. Om deze wijzigingen in de processen en organisatie en de cultuurverandering te bewerkstelligen is management support onontbeerlijk. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 25 3.2 Kritieke succes- en faalfactoren In deze paragraaf worden de verschillende kritieke succesfactoren die zich voordoen bij de invoering en beoefening van hergebruik van software artefacten besproken. Tevens bespreekt deze paragraaf een aantal factoren die worden aangemerkt als faalfactoren. 3.2.1 Kritieke succesfactoren Een kritieke succesfactor voor hergebruik is een factor dat van doorslaggevend belang is in het succes van hergebruik van software artefacten. (Top) Management Support Dit is een van de belangrijkste factoren die het succes van een hergebruikprogramma bepalen [MOR00][DOU97]. Een hergebruik programma heeft veranderingen in de organisatiestructuur, de processen en de cultuur tot gevolg. Om dit te realiseren is het noodzakelijk dat het top management het hergebruikinitiatief actief steunt. Ook op middle management en projectmanagement niveau moet er ondersteuning zijn. Invoering van hergebruik processen Om hergebruik te realiseren moeten er nieuwe processen ingevoerd worden. Belangrijke aandachtspunten hierbij zijn processen voor het produceren van herbruikbare artefacten, het zoeken en gebruiken van deze herbruikbare artefacten en ondersteuning en beheer[MOR02]. Er worden trouwens niet alleen nieuwe processen ingevoerd, ook de huidige processen zullen aangepast moeten worden om de specifieke hergebruik processen te integreren [MOR00][EZR02]. Indien er een situatie ontstaat waarbij de hergebruikprocessen buiten de normale processen komen te liggen of hergebruik de normale softwareontwikkelprocessen verstoort, heeft dit een negatieve invloed op het imago, de toepassing en ondersteuning voor hergebruik [SMI94][EZR02]. Anticipatie op menselijke factoren Hergebruik heeft een flinke impact op de betrokken stakeholders. Niet alleen werkwijzen veranderen, ook beloningsstructuren, processen en verantwoordelijkheden veranderen. Het is noodzakelijk de ontwikkelaars en projectmanagers via voorlichting en trainingen vertrouwd te laten raken met hergebruik en de verschillende veranderingen en technieken hierin [ROT99][MOR00]. Incrementele invoering van hergebruik Omdat de invoering van een systematische hergebruik aanpak een grote impact heeft op een organisatie is het belangrijk om dit incrementeel te doen. Bij een incrementele aanpak worden de obstakels afzonderlijk genomen en worden de risico’s van hogere kosten kleiner en de kans op succes groter [VIL95][LYN98]. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 26 Repository Om te kunnen hergebruiken is het noodzakelijk een centraal punt te hebben waar de herbruikbare artefacten opgeslagen en verkregen kunnen worden. Deze opslagplaats is tevens de plaats waar processen zoals configuratie management en versiebeheer, changemanagement en onderhoud goed centraal geregeld kunnen worden. Uit onderzoek is gebleken dat ook binnen een organisatie verschillen voorkomen in de mate van succes van hergebruik tussen verschillende projecten [ROT99]. Ook op projectniveau zijn er dus factoren die het succes van hergebruik beïnvloeden [ROT99]. Hierbij is er wel een overlap met de factoren op organisationeel niveau. Factoren die hergebruik van software artefacten op projectniveau beïnvloeden zijn: - tijd en monetaire beperkingen, mate van training en beloning, kennis en ervaring van de ontwikkelaar met hergebruik, visie en mening van de projectmanager en de ontwikkelaar ten opzichte van hergebruik. 3.2.2 Faalfactoren De genoemde succesfactoren geven allemaal aan welke factoren bijdragen aan een succesvolle invoering en exploitatie van hergebruik binnen een organisatie. De faalfactoren beschrijven die vanuit het omgekeerde perspectief, namelijk welke factoren hebben een negatieve invloed op hergebruik [MCC95][LYN98]. - ‘Not-Invented-Here’ syndroom (NIH) Dit betekent het, bedoeld of onbedoeld, niet gebruik maken van een bestaand artefact omdat het niet zelf ontwikkeld is. Dit kan voorkomen omdat het bestaan van het artefact niet bekend is (onbedoeld). Vaak is het echter zo dat bij de ontwikkelaar de wil om het artefact te doorgronden ontbreekt en de gedachte bestaat dat het zelf ontwikkelen een superieur artefact oplevert, goedkoper is of tijdwinst oplevert. NIH wordt versterkt door een zwakke vorm van management [EZR02]. Communicatieproblemen versterken dit syndroom. Het komt vaak voor dat afdelingen of business units een eigen werkwijze en vocabulaire hebben waardoor kansen voor hergebruik niet direct herkend worden [HAR98]. Een duidelijke informatievoorziening over de herbruikbare artefacten en hergebruik kan dit syndroom beperken. Tevens kan een sterke vorm van management waarbij hergebruik bijvoorbeeld wordt verplicht het NIH syndroom beperken [EZR02]. - Gebrek aan commitment op lange termijn Om hergebruik mogelijk te maken zijn vooraf flinke investeringen noodzakelijk. Tevens tonen de baten van hergebruik zich niet direct. Deze twee eigenschappen stellen het management voor een dilemma aangezien Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 27 zij eindverantwoordelijk zijn voor de investeringen. Om de toewijding voor hergebruik vast te houden, dient er vooraf een duidelijk beeld geschetst te worden van de benodigde investeringen en de verschillende voor- en nadelen die eraan verbonden zijn. Gedurende het proces kunnen met behulp van metingen van specifieke aspecten de voortgang en kosten en baten gekwantificeerd worden. Dit is belangrijk om de gedane investeringen te kunnen verantwoorden en de commitment te behouden. - Grote verzameling van kwalitatief slecht ‘herbruikbare’ artefacten Het komt vaak voor dat bij de aanvang van een hergebruik programma de repository snel wordt gevuld met ‘herbruikbaar’ gelabelde artefacten. Dit dient te allen tijde gecontroleerd te gebeuren zodat er geen situatie ontstaat waarbij de herbruikbare artefacten veelal van slechte kwaliteit zijn. Een effectieve manier is om te beginnen met een kleine verzameling van kwalitatief hoogstaande, nuttige herbruikbare artefacten. Dit voorkomt ten eerste het nutteloos produceren van matig herbruikbare artefacten en ten tweede de mogelijke schade die hergebruikers oplopen bij het hergebruiken van kwalitatief slechte artefacten. Op deze manier wordt de kans dat investeringen niet worden terugverdiend beperkt. Tevens wordt de kans op een negatieve houding ten opzichte van hergebruik beperkt. - Weerstand Weerstand ontstaat uit angst of onwil om te veranderen, angst voor het onbekende of gebrek aan kennis over het nieuwe fenomeen. De bron van weerstand verschilt per stakeholder. Zo kan het voor ontwikkelaars een beperking in hun creativiteit vormen als ze gedwongen worden bestaande software artefacten te hergebruiken. Slechte ervaringen met hergebruik, bijvoorbeeld door gebrekkige kwaliteit van de herbruikbare artefacten, vormen ook een sterke bron van weerstand tegen hergebruik. Voor de project- en senior managers is het natuurlijk belangrijk hoe de financiële aspecten geregeld worden. Projectmanagers willen geen budget kwijtraken aan hergebruik en de senior managers willen uiteindelijk een positief resultaat zien. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 28 3.3 Herbruikbare artefacten Deze paragraaf richt zich op de software artefacten die hergebruikt kunnen worden. Eerst wordt bekeken wat een herbruikbaar artefact is en worden er definities van enkele termen vastgesteld. Hierbij wordt ook beschreven welke documentatie en informatie er bij een herbruikbare artefact beschikbaar dient te zijn. Daarna wordt er een vergelijking gemaakt tussen een herbruikbaar artefact en een niet herbruikbaar artefact en worden er twee manieren van hergebruik besproken. Tot slot beschrijft deze paragraaf hoe artefacten gekoppeld kunnen worden en welke niveaus van intensiteit van hergebruik te onderscheiden zijn. 3.3.1 Definitie De theorie spreekt over hergebruik van componenten, assets en artefacten. In de gehanteerde definitie van hergebruik wordt gesproken over software artefacten. Voor een artefact wordt hier de volgende definitie gehanteerd: “a piece of formalized knowledge that can contribute to the software engineering process” [DUS95]. Een herbruikbaar artefact 2 is dus een stuk geformaliseerde kennis, een werkproduct, dat een positieve bijdrage kan leveren aan het software ontwikkelproces. Hierbij hoeft het niet zo te zijn dat het artefact met het oog op hergebruik is ontwikkeld. Een goed softwareontwikkelproces, waarin rekening wordt gehouden met algemene principes zoals modulariteit, interoperabiliteit en standaarden, draagt bij aan de herbruikbaarheid van een software artefact. Voorbeelden van herbruikbare artefacten zijn [MIL02]: - requirements, ontwerpen, architecturen, broncode, uitvoerbare code, testdata, documentatie. De theorie beschrijft een component op verschillende manieren. Sommige auteurs benaderen een component op dezelfde manier als in deze scriptie een herbruikbaar artefact wordt beschreven. Andere zien een component als een stuk losstaande functionaliteit met gespecificeerde interfaces en (bijna) onafhankelijk van andere componenten. Dit is ook de manier waarop componten in deze scriptie gezien 2 Indien er in deze scriptie wordt gesproken over artefacten dan worden hier altijd software artefacten mee bedoeld. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 29 worden. Een component is dus een type herbruikbaar artefact. Naast componenten en artefacten bestaan er ook assets. Een asset is als volgt gedefinieerd: “een verzameling van gerelateerde artefacten die tezamen een oplossing bieden voor een bepaald probleem” [EZR02]. Een asset is volgens de definitie breder dan een herbruikbaar artefact. De definitie van een asset spreekt van gerelateerde artefacten. Hiermee worden artefacten bedoeld die bij elkaar horen, zoals een ontwerpmodel en testplan bij een stuk code horen, en niet artefacten die enkel van elkaar afhankelijk zijn zoals componenten waar afhankelijkheden tussen bestaan. In dit laatste geval is er sprake van relaties tussen herbruikbare assets. Figuur 3 geeft een beeld van de gewenste informatie omtrent een herbruikbaar asset. De documentatie wordt in § 3.3.2 toegelicht. Een herbruikbaar asset bestaat dus uit een body en een beschrijving. De body wordt gevormd door één of meer bij elkaar horende herbruikbare artefacten3. In Figuur 3 zijn twee relaties te zien die toelichting verdienen. Als eerst de ‘gebruikt’ relatie tussen herbruikbare assets onderling. Deze relatie duidt de afhankelijkheden tussen assets aan. De tweede relatie is de relatie ‘bestaat uit’. Deze relatie geeft aan dat een herbruikbaar asset opgebouwd kan zijn uit andere herbruikbare assets. Op deze manier is het mogelijk applicatie frameworks te vormen met bijbehorende componenten. Tussen deze applicatie frameworks en componenten bestaat er een sterke synergie. § 3.3.7 gaat hier verder op in. Figuur 3 spreekt over ‘omgeving’, hiermee worden omgevingsfactoren bedoeld. Deze factoren beschrijven in welke software en hardware omgeving het artefact is ontwikkeld en getest en voor welke omgeving het geproduceerd is. Het is belangrijk deze ‘omgevingsfactoren’ van een herbruikbaar artefact te standaardiseren om zo de mogelijkheid tot hergebruik van software artefacten in een organisatie te vergroten. Het is evident dat in een organisatie die veel verschillende programmeertalen, ontwikkelomgevingen en hardwareplatvormen gebruikt, de mogelijkheid tot hergebruik beperkter is dan in dezelfde organisatie waar deze factoren zoveel mogelijk zijn gestandaardiseerd. Hetzelfde geldt voor gebruikte standaarden en tools. Indien dit niet gebeurt ontstaan er ‘technology islands’ en hier is een organisatie niet bij gebaat [BAS97]. In Figuur 3 geeft een opsomming van mogelijke herbruikbare artefacten. Elke organisatie moet hier zijn eigen model definieren met de artefacten die in die organisatie hergebruikt worden en de informatie die bij een artefact wordt beschreven. 3 De herbruikbare artefacten in Figuur 3 vormen slechts voorbeelden, het is geen afbakening van dat wat hergebruikt kan worden. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 30 Legenda relatie aggregatie specialisatie Figuur 3 - Compositie van een herbruikbaar asset [EZR02]. 3.3.2 Documentatie van herbruikbare artefacten Documentatie is een belangrijk aspect bij een herbruikbaar artefact. Om het artefact te kunnen hergebruiken, heeft de hergebruiker over verschillende items informatie nodig. Tabel 3 toont een documentatie template. Deze template is bedoeld voor herbruikbare componenten maar kan ook worden gebruikt voor andere typen herbruikbare artefacten. Basis Informatie Algemene informatie Historie Functionele specificatie Interfaces Certificatie Beschrijft de naam van het artefact, type artefact, de bron van het artefact, korte beschrijving waarom dit artefact is ontwikkeld en wat het voor de hergebruiker kan betekenen. Beschrijft de evolutie van het artefact. Tevens wordt er aandacht besteedt aan situaties waarin dit artefact eerder is hergebruikt. Beschrijft de inputs, outputs en aangeboden functionaliteit van het artefact in detail. Beschrijft de aangeboden en gewenste interfaces van het artefact. Beschrijft de certificering van dit artefact en hoe het aan de certificatie criteria voldoet. Gedetailleerde informatie Technische details Beschrijft de informatie over het formaat van het artefact, Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 31 Installatie handleiding Beperkingen Aanpasbaarheid omgeving waarin het herbruikbare artefact is ontwikkeld, waarin het is getest en waarin het gebruikt dient te worden [EZR02], fysieke bronnen die het artefact nodig heeft, afhankelijkheden van andere artefacten en eventuele technische beperkingen bij het gebruik van het artefact. Beschrijft hoe het artefact geïmplementeerd en geïnstalleerd dient te worden. Een voorbeeld van gebruik is hierbij essentieel aangezien dit in de praktijk vaak een zeer belangrijke bron van informatie vormt voor de potentiële hergebruiker [MIL02]. Beschrijft alle zaken die de ontwikkelaar beperken. Denk hierbij aan interface beperkingen, de benodigde hardware en software. Beschrijft hoe dit artefact aangepast kan worden. In geval van black box beschrijft dit bijvoorbeeld hoe het artefact via parameterisatie afgesteld kan worden of waar de expliciete extentiepunten zitten. Overige informatie Testen Ondersteuning Beschrijft de omgeving waarin het artefact is getest, welke data hiervoor is gebruikt, eventuele test cases en methoden en de resultaten. Beschrijft wie het aanspreekpunt voor dit herbruikbare artefact is en hoe deze persoon bereikt kan worden. Tabel 3 - Documentatie Template herbruikbare artefacten [KAL01][MIL02]. 3.3.3 Eisen aan een herbruikbaar software artefact Vanuit de theorie worden er een aantal eisen geformuleerd waar herbruikbare artefacten aan moeten voldoen. Dit zijn algemene criteria, functionele criteria en technische criteria [EZR02]. Hieronder staan per aspect een aantal voorbeelden van criteria opgesomd. Algemene criteria - Naleven van richtlijnen en standaarden Dit betreft de standaarden voor de documentatie en implementatie van herbruikbare software artefacten. Voor programmeerstandaarden kan gebruik gemaakt worden van standaarden zoals de JAVA sun standaard4 of de C++ Ellemtel standaard5. - Eenvoud, modulariteit en begrijpbaarheid Eenvoud, begrijpbaarheid en modulariteit zijn ook belangrijk. Zo zal een component dat uit één grote lap code bestaat minder herbruikbaar zijn dan een component dat logisch is opgedeeld in verschillende modulen [PRE00]. 4 5 Zie http://java.sun.com/docs/codeconv/ Zie http://www.doc.ic.ac.uk/lab/cplus/c++.rules/ Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 32 Functionele criteria Dit betreft vaak domein specifieke criteria. Het is niet mogelijk hier, zonder kennis van het domein, eenduidige criteria voor op te stellen. Organisaties moeten deze zelf opstellen op basis van standaarden en richtlijnen die binnen dat domein gehanteerd worden. Technische criteria - Interoperabiliteit Dit is het gemak waarmee een artefact communiceert met andere artefacten. Binnen een applicatie framework kunnen er bijvoorbeeld protocol-afspraken worden gemaakt die vastleggen hoe de componenten onderling communiceren. - Portabiliteit De benodigde moeite om een herbruikbaar artefact van de ene hardware en/of software omgeving in de andere te kunnen gebruiken. - Scheiding interface en implementatie Hoe een herbruikbaar artefact wordt gebruikt (interface) en de manier waarop het is geimplementeerd zijn twee aparte zaken die ook apart kunnen evolueren. 3.3.4 Herbruikbare versus niet herbruikbare software artefacten Er bestaan een aantal verschillen tussen herbruikbare en niet herbruikbare software artefacten. Deze paragraaf beschrijft twee belangrijke aspecten: de verschillen in de opzet en kosten tussen een herbruikbaar en niet herbruikbaar software artefact. Opzet Normaal worden software artefacten voor een specifieke applicatie ontwikkeld. Herbruikbare artefacten daarentegen moeten applicatie onafhankelijk zijn, dat wil zeggen dat ze bij gebruik niet aan één specifieke applicatie zijn verbonden. Om in verschillende projecten hergebruikt te kunnen worden dient het artefact bepaalde functionaliteiten te bieden waar binnen die projecten behoefte aan is (functionele herbruikbaarheid) en moet aan bepaalde gebruikerseisen voldaan zijn (technische herbruikbaarheid en kwaliteit). Niet elk artefact is dus een herbruikbaar artefact. Nu is het niet zo dat er een absolute scheiding is tussen een herbruikbaar en een niet herbruikbaar artefact. In de theorie bestaat er ook geen consensus over wat herbruikbaarheid nu precies is en welke kwalitatieve of kwantitatieve aspecten hier aan verbonden zijn. Deze scriptie gaat er vanuit dat het een samenspel is van factoren zoals bruikbaarheid, variabiliteit en algemeenheid [BAS97]. Voor de bruikbaarheid wordt er gekeken naar aspecten die een rol spelen indien het herbruikbare artefact wordt hergebruikt. Aspecten als functionaliteit, efficiency (snelheid en benodigde ruimte) en ease-of-use spelen hierin een belangrijke rol. Variabiliteit staat voor de mate waarin het aangepast kan worden. Algemeenheid duidt de scope aan waarin het toegepast kan worden. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 33 Bij het produceren van een herbruik artefact heeft de producent ook altijd te maken met de afweging tussen abstractie en concreetheid [MIL02]. Hoe generieker het artefact is opgezet hoe te breder het toepasbaar zal zijn. De inspanning om het te kunnen hergebruiken neemt echter ook toe. Hoe concreter een artefact is hoe minder inspanning het zal kosten om het te kunnen hergebruiken. De mate waarin het hergebruikt kan worden neemt echter af. Hier ligt ook een belangrijk verschil tussen herbruikbare en niet herbruikbare artefacten. Niet herbruikbare artefacten zijn specifiek voor één situatie of probleem ontwikkeld terwijl herbruikbare artefacten in meerdere situaties toegepast moeten kunnen worden. Kosten De productiekosten van herbruikbare artefacten zijn hoger dan de productiekosten van niet-herbruikbare artefacten. De daadwerkelijke kosten voor het produceren van een herbruikbaar artefact zijn afhankelijk van de complexiteit en grote van het artefact [FRA96]. De schattingen voor de productiekosten van herbruikbare artefacten ten opzicht van niet-herbruikbare artefacten variëren van 1,2 tot 2,2 keer zo hoog [FRA96]. In de theorie wordt het kengetal 1,5 gehanteerd [POU97]. Hierbij moet ook rekening gehouden worden met het feit dat er een verschil bestaat in de benodigde inspanning om een herbruikbaar artefact te kunnen hergebruiken. De verhouding hiervan tot het zelf ontwikkelen van het artefact is afhankelijk van de manier waarop het artefact hergebruikt wordt, met of zonder aanpassingen. In de literatuur worden de volgende ratio’s gehanteerd, 0,2 voor hergebruik zonder aanpassingen en 0,67 voor hergebruik met aanpassingen[JAC97][MIL02][POU97]. Dit betekent dat het hergebruiken van een software artefact als black box 20% van de moeite kost, die het normaal kost om het artefact vanuit niets te ontwikkelen. Dit zijn industriewijde kengetallen en kunnen dus afwijken voor een specifieke organisatie. Om de kosten voor het produceren en hergebruiken van een herbruikbaar artefact terug te verdienen, dient het artefact dus meerdere malen hergebruikt te worden. Schattingen variëren van 2 tot 13 maal, afhankelijk van de grootte, complexiteit en manier van hergebruik [FRA96]. 3.3.5 Black box en White box hergebruik De theorie onderscheidt twee uitersten voor de manier waarop de herbruikbare artefacten kunnen worden hergebruikt: black box en white box hergebruik [EZR02][MIL02]. Deze paragraaf bespreekt beide manieren en bekijkt de voor- en nadelen, de technische implicaties en de gevolgen op bijvoorbeeld de productie en onderhoudsprocessen. Black box hergebruik Black box hergebruik is het hergebruiken van software artefacten zonder deze te wijzigen. De artefacten worden ‘as-is’ gebruikt. Het voordeel hiervan is dat de hergebruiker geen kennis nodig heeft van het ontwerp of de implementatie en op deze manier een flinke hoeveelheid tijd bespaard omdat hij het artefact zelf niet intern hoeft te doorgronden of op code niveau aan zijn wensen hoeft aan te passen. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 34 Het nadeel van black box hergebruik is dat het relatief veel moeite kost om een dergelijk artefact te produceren omdat er rekening gehouden moet worden met verschillende wensen en toekomstige (onbekende) behoeften. Er zijn verschillende methoden om variabiliteit in black box artefacten te realiseren. Black box hergebruik blijft zo praktisch en effectief [JAC97]. Voor deze variabiliteit zijn variatiepunten in het software artefact opgenomen. Variatiepunten zijn locaties in het artefact waar de hergebruiker iets kan instellen of toevoegen (aggregatie, overerving, parameterisatie) [JAC97]. Hieronder worden twee belangrijke methoden besproken om deze variabiliteit in herbruikbare artefacten te realiseren. - Hooks en Slots Een hook is een punt in het artefact dat zo is ontworpen/geïmplementeerd dat het de gebruikers de mogelijkheid geeft additionele functionaliteit toe te voegen. Een slot is een missend gedeelte van het artefact dat opgevuld dient te worden door de gebruiker naar zijn of haar wensen. Dit kan bijvoorbeeld via inheritance, stel dat een software artefact een abstracte klasse ‘rekening’ bevat. Om van dit artefact gebruik te kunnen maken dient de gebruiker een subklasse voor de methode te schrijven waarin hij zijn eigen implementatie geeft aan de abstracte methoden uit de klasse ‘rekening’. Zo kan de hergebruiker bijvoorbeeld een subklasse ‘kapitaalrekening’ of ‘spaarrekening’ aan de abstracte klasse ‘rekening’ hangen. - Parameterisatie Bij parameterisatie worden variabele aspecten in het artefact opgevangen doormiddel van parameters. De hergebruiker van het artefact bepaald welke parameters er voor het artefact gezet worden en specialiseert op deze manier het artefact naar zijn behoefte. Er zijn twee type parameterisatie die gebruikt kunnen worden, namelijk functionele en data parameterisatie [MIL02]. Bij data parameterisatie wordt de input van een functie van één specifiek type input uitgebreid naar verschillende typen input waarop de functie van toepassing kan zijn. Bij functionele parameterisatie biedt het artefact in plaats van één type functionaliteit verschillende functionaliteiten. Denk bijvoorbeeld aan een merge algoritme dat twee gesorteerde lijsten als parameters nodig heeft en criteria om deze te vergelijken. Door zelf het sorteercriterium te bepalen kan de methode merge alle soorten data in de lijsten vergelijken. Een goede beschrijving van de interfaces en manier waarop het gebruikt kan worden is essentieel bij black box hergebruik. Een voorbeeld van gebruik kan hier goed bij helpen [MIL02]. In geval van parameterisatie dient er beschreven te worden wat de hergebruiker hiermee kan doen en welke ranges van parameters mogelijk zijn. In het geval van hooks & slots dient beschreven te worden wat de hergebruiker nog aan functionaliteit moet implementeren (slots) en waar hij eventueel extra functionaliteit op kan bouwen (hooks). Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 35 White box hergebruik Bij white box hergebruik worden de artefacten wel aangepast voordat ze in het nieuwe systeem geïntegreerd worden. De mate waarin de artefacten hergebruikt kunnen worden neemt hierdoor toe, hetzelfde geldt ook voor de kosten. Om een artefact succesvol te kunnen modificeren is een gedegen mate van kennis van het ontwerp en de implementatie nodig. In het geval van een component of broncode is het daarbij essentieel dat er documentatie in de code zelf aanwezig is, bijvoorbeeld javadoc in het geval van Java. De flexibiliteit van white box hergebruik is groter dan de flexibiliteit van black box hergebruik, in de praktijk blijkt ook dat white box hergebruik vaker voorkomt [MIL02]. In de mogelijkheid om de artefacten aan te passen schuilt ook een risico. Uit onderzoek is gebleken dat bij herbruikbare componenten die voor meer dan 25% zijn gewijzigd het aantal fouten vier tot acht keer zo hoog lag in vergelijking met componenten die vanuit niets zijn geschreven [FEN97]. Het gebrek aan kennis van de interne werking van het artefact kan dus leiden tot fouten. Beheer van black box en white box artefacten Naast de genoemde voor- en nadelen van black en white box is er nog een laatste aspect: het management van de artefacten. Bij black box hergebruik bestaat er slechts één versie van een artefact. Ondersteuning, onderhoud en configuratie management kunnen in dit geval op één centrale plaats uitgevoerd worden. Bij white box hergebruik bestaat er, door de aanpassingen, een risico dat er een veelvoud aan versies, van één artefact, ontstaat. Dit is in Figuur 4 te zien. Artefact v1.1.1 Artefact v1.1 Artefact v1.1.2 Artefact v1.0 Artefact v1.2 Artefact v1.3.1 Artefact v1.3 Artefact v1.3.2 Artefact v1.3.3 Figuur 4 - Mogelijke wildgroei aan versies van één herbruikbaar artefact. In dit geval is centraal management van het artefact ook niet meer mogelijk en kan iedere versie een eigen leven gaan leiden waardoor veel voordelen van hergebruik verloren gaan. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 36 3.3.6 Compositiescenario’s en -mechanisme voor herbruikbare artefacten In de praktijk komt het veelvuldig voor dat hergebruikers verschillende artefacten met elkaar willen laten communiceren binnen een applicatie. Hierbij zijn vier scenario´s mogelijk [MIL02]. Figuur 5 schetst deze scenario’s. Alvorens deze te bespreken worden er twee termen vastgelegd: Gebruiker (client): Leverancier (server): Scenario 1 Het artefact dat binnen een applicatie een bepaalde functie vervuld en daarvoor een bepaalde service wenst van een ander artefact. Het artefact dat aangeroepen wordt via één van zijn methode om een bepaalde service te leveren. Scenario 2 Scenario 3 Wrapper Gebruiker Leverancier Figuur 5 - Compositiescenario's tussen herbruikbare artefacten [MIL02]. Scenario 1: Exacte overeenkomst De leverancier heeft precies de functionaliteit en interface die de gebruiker wenst. Dit is de ideale situatie waarbij er geen aanpassingen nodig zijn. Scenario 2: Extra services De leverancier biedt meer services dan de gebruiker nodig heeft, de services en interface die de gebruiker wenst worden echter wel aangeboden. Over het algemeen is dit geen probleem, het kan echter wel voorkomen dat deze extra services een nadelige invloed hebben op de performance van het artefact [MIL02]. Scenario 3: Aangepaste services Dit komt voor indien de interfaces van de aanbieder en gebruiker niet geheel overeenkomen [MIL02]. In dit geval is het mogelijk de leverancier aan te passen om alsnog een match te bewerkstelligen. Dit komt bijvoorbeeld voor indien de API of het component meer parameters vraagt dan dat de gebruiker kan leveren. Er wordt dan een extra laag software (wrapper) toegevoegd die de communicatie op elkaar afstemt. Scenario 4: Aanvullende services In dit geval biedt de gebruiker niet direct de functionaliteit die binnen de applicatie nodig is maar moeten de twee artefacten gecombineerd worden om de gewenste functionaliteit binnen de applicatie te leveren. In dit geval worden de twee artefacten aan elkaar ‘gelijmd’. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 37 Om herbruikbare artefact toch te kunnen koppelen zijn er twee mogelijkheden. 1. Directe samenstelling Hierbij worden de artefacten die een applicatie opbouwen direct gekoppeld. De artefacten roepen direct de services van elkaar aan waardoor er een sterke koppeling ontstaat tussen de interfaces van de artefacten. Dit kan echter tot zeer complexe situaties leiden aangezien het aantal interfaces nagenoeg exponentieel, n × n = n2, toeneemt met het aantal artefacten [MIL02]. Indien er een nieuw artefact wordt toegevoegd, moeten er in het slechtste geval n nieuwe interfaces ontwikkeld moeten worden. Design patterns kunnen helpen de sterke koppeling tussen artefacten te beperken [MIL02]. Dit is mogelijk door van typerende kenmerken van specifieke implementaties (bijvoorbeeld platformspecifieke eisen) te abstraheren of door communicatie mogelijk te maken tussen artefacten die geen kennis van elkaars API hebben. Dit wordt bijvoorbeeld gedaan door het observer/observable patroon [MIL02]. 2. Middleware Middleware is een softwarelaag tussen het besturingssysteem en de applicatiecomponenten. Middleware maakt de communicatie tussen de (gedistribueerde) componenten mogelijk op zo’n manier dat de componenten niet direct met elkaar communiceren maar via het framework. Voorbeelden zijn Common Object Request Broker Architecture (CORBA), Distributed Component Object Model (DCOM) en JAVA Remote Method Invocation (RMI). 3.3.7 Intensiteit van hergebruik Hergebruik kan op verschillende niveaus van intensiteit beoefend worden [HAL97]. Dit heeft betrekking op de mate waarin overeenkomsten tussen gerelateerde software producten worden uitgebuit. Hier wordt een onderscheid gemaakt naar drie niveaus van intensiteit [HAL97]. 1. Hergebruik van algemene artefacten Deze vorm van hergebruik is de eenvoudigste en minst risicovolle manier om hergebruik te beoefenen. Deze aanpak omvat het hergebruiken van zogenaamde horizontale artefacten. Horizontaal hergebruik benut de overeenkomsten binnen technische domeinen, denk bijvoorbeeld aan componenten als GUI’s, data storage en retrieval, distributie en communicatie. Tevens benut het ook overeenkomsten tussen verschillen applicatie domein. Bijvoorbeeld een loon- of reserveringssysteem dat zowel gebruikt kan worden binnen het domein van bibliotheken als autoverhuur. De mate van hergebruik is op dit niveau niet hoog, de benodigde inspanning om dit te bereiken is echter beperkt. Bij organisaties waar deze aanpak is gehanteerd zijn hergebruikpercentages van 20 tot 30% gemeten [HAL97]. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 38 2. Hergebruik binnen een applicatie domein Het uitbreiden van de scope van algemene (horizontale) artefacten naar domein specifieke (verticale) artefacten is een uitdagendere stap. Bij verticaal hergebruik worden de overeenkomsten binnen één applicatie domein benut. Goede domeinkennis is noodzakelijk om de overeenkomsten en variabiliteit binnen een domein te kunnen onderscheiden en op basis hiervan de juiste domein specifieke artefacten te kunnen produceren. Dit niveau vergt een dieper inzicht in het domein en brengt meer risico’s met zich mee in vergelijking met het hergebruiken van algemene artefacten. De mogelijke opbrengsten daarentegen zijn een stuk hoger. Hergebruikpercentages tot 50% zijn gemeten [HAL97]. 3. Hergebruik met applicatie frameworks Bij deze aanpak wordt er een applicatie framework ontwikkeld waarin verschillende applicaties binnen een domein ontwikkeld kunnen worden. Een applicatie framework is een blauwdruk van een applicatie met een gedeelte aan gerealiseerde functionaliteit. Het geeft een beeld van de (losse) componenten in het framework, de relaties tussen de componenten en de mogelijke interacties tussen deze componenten [MIL02]. Een voorbeeld is het Model View Controller framework, zoals in Figuur 6 is te zien. Dit framework bevat drie component die elk een eigen verantwoordelijkheid hebben. Update Display View Notifications State data Controller User input Application calls Model Figuur 6 - Het Model - View - Controller (MVC) Framework [MIL02]. Het ontwikkelen van applicatie frameworks en componenten vormt een geavanceerde en efficiënte manier om hergebruik te bereiken. Hogere hergebruikpercentages, productiviteit en kwaliteit zijn mogelijk ten opzichte van component-based hergebruik [MIL02][EZR02]. Domein engineering is de manier om dit te bereiken. Dit is echter een tijdsconsumerend proces waarbij een zeer goed inzicht in het domein en geavanceerde modelleringsvaardigheden noodzakelijk zijn. Om deze aanpak te realiseren is er dus een grote investering vooraf nodig. Bij de toepassing van hergebruik doormiddel van applicatie frameworks en componenten zijn er hergebruikpercentages tot 80% gemeten [HAL97]. Veel auteurs zien de toepassing van applicatie frameworks als een belangrijke succesfactor voor hergebruik [MIL02]. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 39 3.4 Hergebruik processen Om hergebruik van software artefacten systematisch toe te passen moeten er een aantal processen gedefinieerd en geïnstitutionaliseerd te worden. Deze paragraaf bespreekt deze processen. Er zijn vier hoofdprocessen te identificeren die elk weer uit één of meerdere subprocessen bestaan. Deze hoofdprocessen omvatten het verkrijgen (productie) van herbruikbare artefacten, de ondersteunende processen ten behoeve van hergebruik, het gebruik van de herbruikbare artefacten (consumptie) en het management van hergebruik, zoals in Figuur 7 is te zien. Binnen de discipline software engineering en hergebruik bestaat een klassiek onderscheid tussen ‘design for reuse’, de productie van herbruikbare artefacten, en ‘design with reuse’, het gebruik van herbruikbare artefacten bij het ontwikkelen van nieuwe software producten. Management van hergebruik Plannen, zetten van doelen, budgettering, prioriteitstelling, coordinatie en sturing Productie Domein engineering, generalisatie, externe bronnen Ondersteunende processen Onderhoud, beheer, certificatie, classificatie, ondersteuning Technologische ontwikkelingen, toekomstige klantwensen en lopende projecten Product requirements en bestaande software Consumptie Selecteren, analyseren, modificeren, integreren Producten Figuur 7 - Processen voor systematisch hergebruik [JAC97]. 3.4.1 Produceren van herbruikbare artefacten Herbruikbare artefacten kunnen op drie manieren verkregen worden. - Ontwikkelen van nieuwe herbruikbare artefacten. Re-engineeren van bestaande artefacten tot herbruikbare componenten. Verkrijgen van herbruikbare artefacten vanuit ‘component-markets’ of open source bronnen. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 40 Bij de eerste twee manieren is het herbruikbare artefact afkomstig vanuit een interne bron, de derde manier is het verkrijgen van een herbruikbaar artefact uit een externe bron. Bij de interne productie van herbruikbare artefacten staat een organisatie naast de keuze van een bepaalde aanpak ook nog voor de keuze van het moment waarop het herbruikbare artefact ontwikkeld wordt. Tabel 4 toont de verschillende productiemodellen die ontstaan bij de opsplitsing tussen de manier waarop herbruikbare artefact worden gemaakt en het moment waarop dit plaatsvindt. A priori Domain analysis A posterioiri Generalization Pre-Project In-Project Post-Project 1. Pre-project domain analysis 2. In-project domain analysis 3. In-project generalization 4. Post-project generalization 5. Next-project generalization Tabel 4 - Keuzes bij productie van herbruikbare artefacten [FIC01]. Ontwikkeling van nieuwe herbruikbare artefacten Het ontwikkelen van herbruikbare software artefacten kan op twee momenten plaatsvinden, vooraf en tijdens een project. Aangezien er geen bestaande artefacten voorhanden zijn, dient er een gedegen inzicht te zijn aan wat voor functionaliteit er binnen meerdere (toekomstige) projecten behoeften is. De theorie beschrijft vele verschillende aanpakken voor de productie en toepassing van herbruikbare frameworks en componenten. Hieronder staan enkele voorbeelden opgesomd. - - - - - - Applicatie Family Engineering [JAC97] Hierbij wordt er een functionele architectuur ontwikkeld voor een familie van applicaties binnen of een productlijn. Deze architectuur is het startpunt voor de ontwikkeling van nieuwe applicatie en artefacten binnen de familie of productlijn. Component System Engineering [JAC97] Hierbij worden er herbruikbare artefacten (vooral software componenten) ontwikkeld op basis van algemene overeenkomsten en variabiliteit binnen een applicatie familie. Application System Engineering [JAC97] Bij deze aanpak worden applicaties ontwikkeld op basis van een algemene architectuur, gebruikmakend van bestaande artefacten. Component-Based Software Engineering [MIL02] Het ontwikkelen van applicaties doormiddel van het koppelen van bestaande componenten. COTS Based Development [MIL02] Dit is het proces waarbij applicaties worden ontwikkeld op basis van commercieel beschikbare software componenten. Product-Line Engineering [MIL02] Het faciliteren van de productie van gelijke producten binnen een domein door gebruik te maken van bestaande domein specifieke artefacten. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 41 Het gaat niet zozeer om de technologieën zelf maar om de factor die ze bijna allemaal gemeen hebben; domein analyse en domein engineering. Domein analyse is het verkrijgen, analyseren en modelleren van informatie over applicaties binnen een domein, waarbij de aandacht ligt op gemeenschappelijke factoren en oorzaken van variaties [MIL02]. Op basis van overeenkomsten en variaties binnen de applicaties van het afgebakende domein kunnen herbruikbare artefacten worden ontwikkeld die de elementen en relaties binnen een familie van gerelateerde applicaties karakteriseren. Domein engineering is het gebruiken van de domein kennis en een technische infrastructuur om effectief een familie van applicaties binnen een bepaald domein te ontwikkelen en te onderhouden [MIL02]. Een domein kan op basis van drie aspecten onderscheiden worden: gemeenschappelijke expertise, gemeenschappelijk ontwerp of gemeenschappelijke markt. Deze aspecten sluiten elkaar niet uit, een ideaal domein komt op alle drie de aspecten overeen [MIL02]. Re-engineering van bestaande artefacten Het komt vaak voor dat herbruikbare artefacten pas worden herkend op het moment dat het artefact weer nodig is. De transformatie naar een herbruikbaar artefact kan plaatsvinden op twee momenten, tijdens het project of na het project. In-project generalisatie is de aanpak waarbij ontwikkelaars tijdens het project extra tijd en moeite investeren in het herbruikbaar maken van het artefact. Deze artefacten worden direct in het eindproduct opgenomen maar zijn dus beschikbaar en herbruikbaar voor andere projecten. Bij post-project generalization wordt, nadat het project is beëindigd, gekeken welke artefacten een hoge potentie voor hergebruik hebben. Vervolgens worden deze verwerkt tot herbruikbare artefacten. Next-project generalization is hetzelfde als post-project generalization, echter nu wordt pas bij aanvang van een nieuw project besloten tot het generaliseren van bepaalde artefacten. Een gevolg hiervan is dat er bijgehouden dient te worden welke artefacten zich lenen voor hergebruik maar nog verwerkt moeten worden tot een herbruikbaar artefact. Extern verkrijgen van artefacten. Het extern verkrijgen van herbruikbare artefacten kan worden opgesplitst naar twee bronnen: ‘open source’6 bronnen en ‘components markets’7. In de literatuur bestaat er geen consensus over of het kopen of extern verkrijgen van artefacten op zichzelf hergebruik is. In deze scriptie wordt het, gezien de definitie, wel aangemerkt als hergebruik. 6 Voorbeelden zijn: http://www.freedownloadscenter.com/Programming/ en http://sourceforge.net/, http://www.gnu.org/fsf/fsf.html 7 Voorbeelden zijn: www.componentsource.com, www.developer.com en http://www.internetcomponent.com. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 42 Indien een organisatie gebruik maakt van COTS producten of artefacten uit open source bronnen moet het wel rekening houden met de support die erbij geboden wordt. Deze situatie wijkt immers af van een software artefact dat intern wordt beheerd. Tevens is het afhankelijk van de licenties van het herbruikbare artefact of het wel of niet kan worden opgenomen in de repository. Het gebruiken van virtuele artefacten vormt een oplossing [EZR02]. Dit zijn artefacten waarvan alleen de beschrijving is opgenomen in de repository. Het artefact zelf moet nog worden aangeschaft of gemaakt. 3.4.2 Ondersteunende processen Voor de ondersteuning van hergebruik van software artefacten dienen er zeven projectoverschrijdende processen geregeld te zijn. 1. Onderhoud Zolang het herbruikbare artefact hergebruikt wordt, is onderhoud noodzakelijk. Nieuwe technische of functionele eisen en herstel van fouten zijn redenen voor onderhoud. 2. Configuratie Management & Versiebeheer Configuratie managent (CM) vormt het beheer en management van de verschillende typen en instanties van software artefacten gedurende de levenscyclus van het software artefact. Versiebeheer is sterk verbonden met het configuratie management aangezien het de verschillende versies van het artefact identificeert en bijhoudt. De systematische toepassing van hergebruik kan de eisen aan het CM aanzienlijk vergroten. De herbruikbare artefacten worden immers niet slechts in één systeem gebruikt maar in meerdere. De complexiteit stijgt om twee redenen [MIL02]: - bij elke verandering aan een herbruikbaar artefact moet er rekening gehouden worden met de systemen die het artefact gebruiken, meerdere versie van het artefact moeten opgeslagen en onderhouden worden en dienen beschikbaar te zijn. Dit tweede punt is echter niet wenselijk op de manier zoals in Figuur 4 wordt weergegeven. De evolutie van een herbruikbaar artefact waarbij één versie van het artefact centraal wordt beheerd, zoals in Figuur 8 is te zien, is te prefereren. In deze situatie is de ontwikkeling van het artefact in de hand te houden en profiteert de organisatie van het centrale onderhoud. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 43 Artefact v1.1 Artefact v1.0 Artefact v2.0 Artefact v1.2 Artefact v2.1 Artefact v3.0 Artefact v2.2 Figuur 8 - Gewenste levenscyclus van een herbruikbaar artefact Bij white box hergebruik mogen projecten de herbruikbare software artefact hergebruiken en aanpassen. De versie van het hergebruikende project moet dan worden gezien als een lokale versie waar ander projecten geen toegang toe hebben. Indien er updates of nieuwe releases uitkomen, moet de keuze worden gemaakt of de projecten hun lokale versie vervangen door de nieuwe versie. Deze keuze wordt gemaakt op basis van factoren zoals budget en de noodzaak om de nieuwe versie te gebruiken. Indien het hergebruikende project fouten tegenkomt of extra functionaliteit toevoegt aan het herbruikbare artefact, moet dit worden teruggekoppeld naar de beheerder van het artefact zodat deze dit eventueel kan verwerken in een volgende release. 3. Problem en Change Management Indien een hergebruiker een probleem of wijzigingsverzoek heeft, dan moet hij dit kunnen indienen bij de verantwoordelijke van het herbruikbare artefact. De beheerder van het software artefact is verantwoordelijk voor de verdere afhandeling van het probleem of wijzigingsverzoek. In het geval van een bug in het artefact dient dit in het onderhoud meegenomen worden, in het geval van een wijzigingsverzoek zal de eigenaar van het artefact dit verzoek beoordelen op wenselijkheid en noodzaak. 4. Certificatie Certificatie is het proces waarbij wordt bevestigd dat het artefact de beloofde functionaliteit inderdaad levert, geschikt is voor (her)gebruik en voldoet aan eventuele andere eisen die eraan gesteld worden. Door de herbruikbare software artefacten te certificeren kan de angst voor kwalitatief slechte herbruikbare software artefacten grotendeels weggenomen worden [LYN98]. Om een herbruikbaar artefact te kunnen beoordelen moeten er ook eisen zijn waaraan het artefact moet voldoen. Deze zijn besproken in § 3.3.3. Een meer informele manier van certificering is het gebruik van feedback en het aantal malen dat een software artefact is hergebruikt. Gebruikers van herbruikbare artefacten moeten de mogelijkheid hebben om vragen, feedback of gebruikerservaringen over een specifiek artefact te melden. Op deze manier bestaat er een vorm van terugkoppeling naar de producenten van de herbruikbare artefacten en kunnen toekomstige gebruikers van dat artefact zich er een beter beeld van vormen [SMI94]. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 44 5. Classificatie Classificatie is het proces waarbij de herbruikbare artefacten worden gerangschikt volgens een bepaald patroon. Dit wordt gedaan om de gebruikers op een snelle en efficiënte manier de juiste herbruikbare artefacten te laten vinden. De manier waarop een verzameling geclassificeerd is, is vooral afhankelijk van de grote van de verzameling en de bekendheid van de gebruikers met de inhoud [SMI94]. Voor kleine verzamelingen is het niet direct nodig om deze te classificeren, de gebruikers zijn prima in staat de gewenste artefacten te vinden. Er zijn verschillende classificatieschema’s beschikbaar, deze zullen hier echter niet besproken worden. 6. Ondersteuning Voor hergebruikers is het belangrijk dat er ondersteuning bestaat bij het hergebruiken van software artefacten. Nu is dit niet noodzakelijk voor alle herbruikbare software artefacten, maar voor complexe of grote herbruikbare software artefacten is dit wel een pre. 7. Informatieverstrekking m.b.t. (nieuwe) artefacten & nieuwe versies. Bekendheid van de beschikbare herbruikbare artefacten is een belangrijke voorwaarde voor hergebruik. Het is een optie potentieel geïnteresseerden te informeren over de beschikbaarheid van nieuwe herbruikbare artefacten. Hetzelfde geldt voor nieuwe versies van bestaande herbruikbare artefacten [EZR02]. 3.4.3 Consumeren van herbruikbare artefacten Om tijdens het ontwikkelproces gebruik te kunnen maken van de herbruikbare artefacten, moeten nieuwe processen gedefinieerd en geïmplementeerd worden. Onafhankelijk van het herbruikbare artefact bestaan er vier algemene stappen die het verkrijgen en verwerken van herbruikbare artefacten omvatten [MIL02]. 1. Selectie Bij het selecteren van herbruikbare artefacten wordt er gekeken naar artefacten die mogelijk aan de behoefte van de hergebruiker voldoen. Hierbij wordt er gelet op functionele en technische aspecten die van belang zijn. Om deze stap uit te kunnen voeren is een centrale opslagplaats gewenst waar de herbruikbare artefacten te vinden zijn. Deze fase levert mogelijk meerdere geschikte herbruikbare artefacten op. 2. Analyse Om een specifieke keuze te kunnen maken uit de geselecteerde artefacten dienen deze herbruikbare artefacten geanalyseerd en geëvalueerd te worden. Hierbij wordt gekeken of het artefact daadwerkelijk aan de functionele eisen van de gebruiker voldoet, in welke mate er aanpassingen nodig zijn en of er aan eventuele niet-functionele eisen wordt voldaan. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 45 Indien het software artefact voldoet aan de wensen wordt op basis van een kosten/baten analyse besloten of het daadwerkelijk hergebruikt wordt. 3. Modificatie In deze stap wordt het artefact aangepast aan de wensen van de gebruiker. De mate van aanpassing is afhankelijk van het type hergebruik (black box of white box) en de mate waarin het voldoet aan de functionele eisen van de gebruiker. 4. Integratie Nadat het artefact geselecteerd en eventueel aangepast is, moet het nog geïntegreerd worden in het nieuwe systeem. Een essentieel onderdeel hierbij is het testen of het geïntegreerde artefact daadwerkelijk voldoet aan de eisen en of het systeem na de integratie nog betrouwbaar is. Aangezien hergebruik een sterke invloed heeft op de kosten en ontwikkelduur van een applicatie moet er al in een vroeg stadium rekening mee worden gehouden. Voor hergebruik geldt dat hoe eerder het in het softwareontwikkelproces wordt meegenomen hoe groter de voordelen zijn. 3.4.4 Management van hergebruik Deze paragraaf licht een aantal aspecten en procedures toe waarbij management van hergebruik van belang is. 1. Keuze voor hergebruik Management van hergebruik begint al bij de keuze voor hergebruik. De keuze voor hergebruik en de manier waarop een organisatie hergebruik toepast zijn afhankelijk van verschillende factoren [EZR02]. Bestaat er bijvoorbeeld vanuit de markt een noodzaak om te hergebruiken, is de organisatie er geschikt voor en zijn er voldoende mogelijkheden om te hergebruiken. Een organisatie die hergebruik wil gaan toepassen zal ook de afweging moeten maken tussen de mogelijke opbrengsten en kosten van hergebruik. Indien een organisatie ervoor kiest om op een systematisch manier software her te gebruiken moeten de drie belangrijke processen gemanaged worden, te weten: productie, consumptie en de ondersteunende processen. 2. Management van de productie van herbruikbare artefacten Er is sturing nodig om ervoor te zorgen dat de juiste herbruikbare artefacten daadwerkelijk ontwikkeld worden. Het mag niet voorkomen dat verschillende projecten dezelfde of soortgelijke herbruikbare artefacten aan het ontwikkelen zijn. Om dit te kunnen realiseren is inzicht nodig in de projecten en de verzameling herbruikbare artefacten. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 46 Een organisatie moet zich realiseren dat de grote van de verzameling herbruikbare artefacten in verhouding moet staan met de kansen op hergebruik. Een organisatie waar jaarlijks zes software projecten worden gestart heeft minder profijt van een zeer uitgebreide verzameling herbruikbare artefacten dan een organisatie waar jaarlijks zestig software projecten starten. 3. Management van de consumptie van herbruikbare artefacten Bij de consumptie van herbruikbare artefacten geldt hetzelfde als bij de productie. Des te kleiner het aantal kansen voor hergebruik des te strikter de sturing hierin moet zijn. Dit kan doormiddel van procedures. Bijvoorbeeld door hergebruik te verplichten of door projecten een voorstel te laten doen over wat ze willen gaan hergebruiken en dat deze voorstellen door een derde partij worden beoordeeld. 4. Ondersteuning en beheer Voor deze processen dienen ook een aantal procedures vastgelegd te worden. - Procedure voor Configuratie Management en Versiebeheer Bijvoorbeeld de IEEE 828-1998 standaard. - Procedure voor Problem en Change Management - Procedure voor Certificatie van herbruikbare artefacten Bijvoorbeeld de IEEE 1420.1a-1996 standaard. Dit beschrijft een ‘Asset Certification Framework’ voor software hergebruik. - Procedure voor Intellectueel Eigendom voor herbruikbare artefacten Bijvoorbeeld de IEEE 1420.1b-1999 standaard. Hierin wordt een framework voor ‘Intellectuel Property rights’ gegeven. Niet elke procedure die in deze paragraaf is beschreven zal nieuw zijn voor een organisatie. De meeste organisaties hebben geformaliseerde procedures of werkwijzen opgesteld voor bijvoorbeeld Configuratie Management en Versiebeheer. Voor de andere onderwerpen zal een organisatie wel procedures moeten opstellen om de verschillende processen te standaardiseren en herhaalbaar te maken. Per procedure moet een organisatie vaststellen welke aspecten erin verwerkt worden, wie er betrokken zijn en welke verantwoordelijkheden er zijn. 3.4.5 Afhankelijkheid hergebruik van Process Maturity De manier waarop een organisatie hergebruik van software kan vormgegeven, is deels afhankelijk van de volwassenheid en professionaliteit van de huidige softwareontwikkelprocessen. Indien deze processen niet gedefinieerd zijn, is het zeer moeilijk om een planmatige en georganiseerde vorm van hergebruik van software artefacten te realiseren. Er bestaat dus een relatie tussen de volwassenheid van het normale softwareontwikkelproces en de reële na te streven volwassenheid van hergebruik van software artefacten. Figuur 9 geeft deze situatie weer [VAD98]. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 47 Uit Figuur 9 kunnen twee dingen afgeleid worden: ten eerste dat er verschillende niveaus van hergebruik te onderscheiden zijn en ten tweede dat deze niveaus gekoppeld zijn aan het niveau van het normale softwareontwikkelproces. Een organisatie dient zich te realiseren dat het maximaal haalbare reële niveau van hergebruik gerelateerd is aan de volwassenheid van het huidige softwareontwikkelproces. CMM Stage Initial Ad-Hoc Repeatable Defined Managed Coordinated Optimized Planned Reuse Management Stage Figuur 9 - Relatie tussen CMM-niveau en Reuse Management niveau [VAD98] Vadapalli en Nazareth onderscheiden drie niveaus van hergebruik. Kolton en Hudson [KOL91] onderscheiden hier vijf niveaus waarbij hun model is afgeleid van het CMM, zie voor het model Bijlage B. De vijf niveaus van volwassenheid waar dit model een onderscheid naar maakt, definiëren de toepassing van hergebruik van software artefacten van chaotisch tot planmatig en diep ingeworteld in de manier van werken binnen een organisatie. Hierbij wordt naar verschillende aspecten gekeken, zie Tabel 5. Dimensie Betekenis Cultuur Hoe staat de bedrijfscultuur t.o.v. hergebruik? Wordt hergebruikt afgeraden, beloond of is het de manier van werken? Wordt er structureel rekening gehouden met hergebruik? Of is het puur toeval dat het gebeurt? Wordt hergebruik alleen door individuele software engineers uitgevoerd, gebeurt het over afdelingen of is het bedrijfswijd? Wie zorgen ervoor dat hergebruik plaatsvindt? Zijn dit ontwikkelaars, een werkgroep of is er ook vanuit het management betrokkenheid? Waar komt hergebruik het proces in en in hoeverre zijn de processen gestandaardiseerd? In hoeverre is de verzameling gestructureerd? Helemaal niet of langs productlijnen of wordt er zelfs op basis van missende delen in de inventaris ontwikkeld? In welke mate is de verzameling gestructureerd en geclassificeerd? In hoeverre wordt hergebruik ondersteund d.m.v. tools? Helemaal niet, via enkele tools of is er een electronische bibliotheek beschikbaar? In welke mate wordt hergebruik gekwantificeerd? Helemaal niet of zeer drastisch om de impact van hergebruik te volgen en daarop te sturen? Vormen rechtsmatige, contractuele of financiële aspecten een drempel om te hergebruiken of zijn er hier oplossingen voor ontwikkeld m.b.t. hergebruik? Planning Betrokkenheid Driver Proces Inventaris Classificatie Technologische ondersteuning Metingen Contractuele en verrekeningsoverwegingen Tabel 5 - Dimensies van volwassenheid van het Reuse Maturity Framework. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 48 3.5 Hergebruik organisatie Naast veranderingen op procesniveau zijn er ook veranderingen op organisatie niveau. Ten eerste de organisatie rondom de productie en consumptie van de herbruikbare artefacten en ten tweede de organisatie rondom de ondersteuning van hergebruik. Deze paragraaf bespreekt de verschillende rollen en stakeholders bij hergebruik. Tevens wordt er aandacht besteed aan organisatiemodellen en verrekeningsmodellen voor hergebruik. 3.5.1 Nieuwe Rollen voor hergebruik In §3.4 zijn de verschillende processen voor hergebruik van software artefacten besproken. Hier worden de rollen aan deze taken gekoppeld. Producent Deze persoon is verantwoordelijk voor het ontwikkelen van herbruikbare artefacten. Consument Deze persoon of groep personen is verantwoordelijk voor het ontwerpen en ontwikkelen van nieuwe software producten met herbruikbare artefacten. Verantwoordelijke(n) Deze persoon is verantwoordelijk voor verschillende taken zoals het onderhouden van de herbruikbare artefacten, het configuratiemanagement en Problem en Change management. De persoon in deze rol is tevens verantwoordelijk voor de ondersteuning bij het hergebruiken van herbruikbare artefacten door hergebruikers. Deze rol kan worden uitgevoerd door de producent van het artefact, dit is echter niet noodzakelijk. Repository Manager Deze persoon is verantwoordelijk voor het beheer van de herbruikbare artefacten die in de repository zijn beschreven en opgeslagen. Hij zorgt ervoor dat het gebruik van de repository nuttig en efficiënt blijft. Hij voegt de nieuwe herbruikbare artefacten toe nadat deze goedgekeurd of gecertificeerd zijn. Hergebruik Commissie Deze groep personen heeft een faciliterende rol ten opzichte van de producenten en consumenten. Deze groep is verantwoordelijk voor verschillende taken. - Aanspreekpunt voor hergebruikers. Indien er vanuit projecten vragen zijn of ondersteuning nodig is, voert de hergebruikgroep deze taak uit of delegeert ze deze naar de verantwoordelijke van het betreffende artefact. - Opstellen van procedures voor het certificeren van de herbruikbare artefacten voordat ze in de repository worden opgenomen en het certificeren van de herbruikbare artefacten zelf. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 49 - Het verzorgen van trainingen voor de software engineers en project managers met oog op hergebruik. - Onderzoek naar nieuwe herbruikbare artefacten en het begeleiden van projecten in wat er mogelijk hergebruikt kan worden. Hergebruik manager Deze persoon is verantwoordelijk voor de verdere sturing en uitvoering van het hergebruik programma. Hij is ook sterk betrokken bij de hergebruik commissie. Bij voorkeur heeft deze persoon een hogere positie in de organisatie en ook technisch inzicht in datgene wat er ontwikkeld wordt. De hergebruik manager is verantwoordelijk voor een aantal taken. - Het zetten van doelstellingen. - Het sturen van zowel de producenten als de consumenten. - Het stellen van prioriteiten. - Het coördineren van hergebruik activiteiten binnen de betrokken organisatie. - Het bepalen van metrics/metingen om de resultaten van hergebruik vast te kunnen stellen. - Het promoten en verspreiden van een hergebruik cultuur. De hierboven besproken rollen zijn veelal nieuw voor een organisatie. Er zijn natuurlijk ook verschillende stakeholders in een organisatie die beïnvloed worden door hergebruik van software. Bijvoorbeeld de projectmanager die al vroeg in zijn project rekening moet houden met hergebruik bestaande software artefacten en mogelijk binnen zijn project herbruikbare artefacten moet gaan produceren. De software engineers die herbruikbare artefacten moeten gaan ontwikkelen en hergebruiken en het management die de procedures en standaarden moet vaststellen en de projecten moet gaan sturen op hergebruik. 3.5.2 Sturing Het systematisch hergebruiken van software artefacten vindt niet uit zichzelf plaats. Enige vorm van sturing is nodig om dit te realiseren. Indien een organisatie de productie van herbruikbare artefacten neerlegt bij de lopende projecten, kan dit een heikel punt zijn. De projecten moeten immers tijd en geld vrijmaken voor het produceren van herbruikbare artefacten terwijl zij daar zelf niet direct voordeel bij hebben. Bij ‘design with reuse’ is dit probleem minder aanwezig. De projecten profiteren immers van de voordelen van het hergebruiken van de software artefacten. In de praktijk blijkt echter dat sturing ook hier belangrijk is. Om uiteenlopende redenen, veelal weerstand of beperkte betrokkenheid vanuit de software engineers of projectmanagers, hergebruiken de projecten niet of minder dan gewenst of mogelijk zou zijn. Sturing kan op verschillende manieren beoefend worden. Tabel 6 vat de verschillende mogelijkheden samen. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 50 Manieren van Sturing Directief Rationeelempirische strategie Normatiefreëducatieve strategie Facilitaire strategie Dit is een top-down op macht en dwang gebaseerde strategie. Met behulp van de machtspositie worden veranderingen of werkzaamheden afgedwongen. Deze strategie is vaak te beperkt om op het niveau van individuen te werken. Bij deze strategie worden mensen via rationele communicatie en voorlichting ertoe bewogen de veranderingen of werkzaamheden te accepteren. Gedrag van mensen komt voort uit hun sociaal-culturele normenstelsel. Het is de taak van de leidinggevende om de medewerkers te stimuleren om een zo groot mogelijke betrokkenheid bij de verandering of werkzaamheden te realiseren. Het management zorgt voor een invulling van de randvoorwaarden zodat de verandering of werkzaamheden uitgevoerd kunnen worden. Dit omvat bijvoorbeeld het zorgen voor financiële of fysieke faciliteiten. Tabel 6 - Verschillende manieren van sturing [THI02]. De theorie spreekt ook veel over het belonen van hergebruik. Dit kan dan financieel, via status of via promotie gebeuren [MCC95]. In de praktijk blijkt echter dat financiële beloningsstrategieën voor het produceren en hergebruiken van herbruikbare artefacten complex en fraudegevoelig zijn [DOU97]. Er zijn ook niveaus van sturing te onderscheiden. Het model in Tabel 7 is gebaseerd op het model van architectuurdenken in een organisatie [NOL00]. Een architectuur kan in dit model op verscheidene manieren geïnterpreteerd worden. Het kan de huidige of gewenste organisatie beschrijven, maar ook een architectuur zijn voor ICT-voorzieningen [THI02]. In de context van hergebruik van software artefacten is het hier ook toepasbaar, met nadruk op de sturing van de hergebruik activiteiten. Het model van architectuurdenken beschrijft vijf niveaus met de aspecten sturing, modellen, de rol van de architect, het proces en het product. In de context van hergebruik van software artefacten beschrijft het model in Tabel 7 wederom de vijf niveaus maar nu toegepast op drie aspecten: - - - Sturing Dit aspect beschrijft hoe de ‘design for reuse’ en ‘design with reuse’ activiteiten gestuurd worden. Rol van de hergebruikmanager Dit aspect beschrijft wat de verantwoordelijkheid is van de hergebruikmanager. Proces Dit aspect beschrijft op welk niveau de processen voor hergebruik zijn vormgegeven. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 51 Sturing Rol hergebruikmanager Niveau 1 Geen Niveau 2 Sturing op mensen N.v.t. Rol toegekend Niveau 3 Sturing op proces Verantwoordelijk voor proces Niveau 4 Sturing op basis van resultaten en alignment Niveau 5 Sturing op continue verbetering Verantwoordelijk voor resultaten Initieert innovaties en verbeteringen Proces Niet gedefinieerd. Proces is gedefinieerd per project of domein Afstemming tussen projecten en domeinen Geïntegreerd proces centraal gecoördineerd Geoptimaliseerd proces Tabel 7 - Niveaus van sturing [NOL00]. Deze drie factoren geven samen een beeld van de manier waarop de hergebruikactiviteiten gestuurd kunnen worden en wat de scope van deze sturing is. De vijf niveaus worden hieronder kort toegelicht. - Niveau 1 Er is nog geen proces gedefinieerd voor hergebruik van software artefacten. Hergebruik vindt op ad hoc basis plaats zonder enige vorm van sturing. Het is een initiatief van individuen. - Niveau 2 Er zijn processen gedefinieerd per project of domein. De software engineers hebben hierin een rol gekregen met betrekking tot hergebruik. Op basis van deze rol vindt er ook sturing plaats. Dit is een eerste stap naar een systematische vorm van hergebruik. - Niveau 3 De processen voor hergebruik van software artefacten worden afgestemd tussen de verschillende projecten en domeinen. De hergebruikmanager stuurt op basis van deze processen. - Niveau 4 Hergebruik is geïntegreerd in de normale processen en wordt uniform uitgevoerd. De processen worden centraal gecoördineerd en de hergebruikmanager is verantwoordelijk voor de resultaten. - Niveau 5 Hergebruik is de manier waarop er gewerkt dient te worden. De sturing is gericht op continue verbetering van de hergebruikactiviteiten en resultaten. De hergebruikmanager initieert deze innovaties en verbeteringen die leiden tot een geoptimaliseerd proces. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 52 3.5.3 Inrichting Een organisatie moet aangepast worden om de nieuwe processen voor hergebruik te verankeren. Vooral bij voor de productie, ondersteuning en sturingsprocessen zijn er wijzigingen mogelijk. De keuze bestaat uit twee uitersten: het integreren in de bestaande structuur of het creëren van een aparte losstaande eenheid. In de organisatie voor hergebruik dient er met de vier processen rekening gehouden te worden, zie Figuur 10. Management Productie Ondersteuning Consumptie Figuur 10 - Onderdelen binnen een organisatiestructuur voor hergebruik. De productie van herbruikbare artefacten kan zowel geïntegreerd worden in de projecten als worden uitgevoerd door een aparte eenheid. Beide opties hebben voor- en nadelen [EZR02]. Indien de productie wordt opgenomen in de bestaande projecten zijn er weinig organisatorische veranderingen nodig. Er bestaat echter wel een risico dat de korte termijn visie en druk binnen het project het belang van hergebruik overheersen. Een projectleider zal immers niet graag de productie van herbruikbare artefacten op zich nemen aangezien het geen bijdrage levert aan zijn project en wel ten kosten gaat van zijn budget. Indien er een losstaande eenheid verantwoordelijk is voor de productie van herbruikbare artefacten, zijn de rollen duidelijk gescheiden en worden vaardigheden gebundeld. Sterke coördinatie over de projecten is dan wel nodig. De ondersteunende processen voor hergebruik kunnen niet opgenomen worden in de projecten. Indien een project afloopt zouden deze processen immers eindigen en dit kan niet de bedoeling zijn. Er is hiervoor dus een organisatorische eenheid nodig die onafhankelijk is van de projecten waarin het is ontwikkeld of wordt gebruikt. Er zijn verschillende manieren waarop de productie- en ondersteunende processen ingericht kunnen worden. Bij Hewlett-Packard (HP) bleek dat een succesvol hergebruikprogramma geïntegreerd moet worden in de cultuur van de bestaande organisatie structuur [FAF94]. Op basis van dit onderzoek heeft Fafchamps vier modellen opgesteld die de relatie tussen de producenten en de consumenten beschrijven [FAF94]. Enkele van deze modellen kunnen ook gebruikt worden voor de organisatie van de ondersteuning en het beheer van de herbruikbare artefacten. 1. Het Lone Producer model. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 53 2. Het Nested Producer model. 3. Het Pool Producer model. 4. Het Team Producer model. Fafschamps raadt bij elk model aan het hergebruik van software artefacten te verplichten [FAF94]. Tevens is het aan te raden een structuur te kiezen die het beste bij de eigen organisatie past en deze ook naar de eigen organisatie te vertalen. 1. Lone Producer Model De ‘lone producer’ levert hergebruik diensten aan twee of meer projectteams. Deze diensten kunnen het ontwerpen, ontwikkelen of onderhouden van herbruikbare artefacten omvatten. De rol van de ‘lone producer’ voor de projectteams, de consumenten, kan variëren van het afhandelen van wijzigingsverzoeken tot het helpen in een project tijdens verschillende fasen van het ontwikkeltraject. De ‘lone producer’ speelt in deze structuur dus de rol van producent en verantwoordelijke voor een aantal herbruikbare artefact. De ‘lone producer’ rapporteert primair aan de level 2 manager, net zoals de projectmanagers. De ‘lone producer’ communiceert tevens met de projectmanagers over wat zij nodig hebben en over wijzigingsverzoeken die vanuit de projecten komen. Level 2 Manager Legenda Project Manager Project Manager Primaire lijn van verantwoording Secundaire lijn van verantwoording Lone producer Project Team A Project Team B Figuur 11 - Lone Producer structuur [FAF94][MIL02]. Afwegingen bij de Lone Producer structuur Voordelen Nadelen - Brede kennisbasis bij ‘lone producer’ door deelname aan verschillende projecten. - Duidelijk aanspreekpunt voor de gebruikers van de herbruikbare artefacten. - Duidelijk inzicht in de kosten van het produceren en onderhouden van herbruikbare artefacten. - Overbelasting qua communicatie, de ‘lone producer’ moet aan verschillende managers rapporteren. - Zware belasting op de ‘lone producer’ indien deze sterk betrokken wordt bij verschillende projecten. - Onduidelijke prioriteitstelling tussen verschillende projecten, het is onduidelijk wat er gebeurt bij conflicterende wijzigingvoorstellen. - Geen sturing op hergebruik, er is geen geformaliseerde communicatie tussen de verschillende ‘lone producers’. Vooral in grote organisatie met veel grote herbruikbare artefacten kan dit een probleem vormen omdat de ‘lone producers’ onafhankelijk van elkaar opereren. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 54 Aanbevelingen - Specificeer het proces van veranderverzoeken (change-requests). - Specificeer een formele communicatiestructuur, zowel tussen de projectmanagers en de ‘lone producers’ als tussen de ‘lone producers’ onderling. - Zorg voor een persoon of groep die de projecten begeleidt bij het bepalen wat er hergebruikt kan worden. Deze entiteit kan tevens de coördinatie of sturing van de ‘lone producers’ op zich nemen. - Moedig informele interactie tussen de projectteams en de ‘lone producer’ aan. Door zijn afgezonderde positie kan de ‘lone producer’ snel geïsoleerd raken. Tabel 8 - Afwegingen bij de Lone Producer structuur. Wanneer geschikt Deze structuur is geschikt wanneer er slechts een beperkt aantal grote herbruikbare artefacten zijn. De ‘lone producer’ heeft een goed inzicht in deze artefacten en kan de verschillende projecten goed ondersteunen bij het gebruik hiervan. 2. Nested Producer Model Met de ‘nested producer’ structuur wordt getracht de zwakte van de ‘lone producer’ te overkomen door aan elk project een producent toe te kennen. In deze structuur is de kans dus kleiner dat er sprake is van overbelasting qua werkdruk of communicatie. Er is echter wel een sterkere sturing van de ‘nested producer’ nodig omdat deze nu voor één project werkt. De ‘nested producer’ rapporteert hierdoor zowel aan de hergebruikmanager als aan zijn projectmanager. Dit kan conflicterende eisen opleveren. Zowel productie als ondersteuning zijn hier geïntegreerd in de normale processen doordat de ‘nested producer’ deel uitmaakt van een project. Level 2 Manager Project Manager Project Manager Project Team A Project Team B Hergebruik manager Nested Producer A Nested Producer B Figuur 12 - Nested Producer structuur [FAF94][MIL02]. Afwegingen bij de Nested Producer structuur Voordelen Nadelen - De ‘nested-producer’ hoort bij één specifiek projectteam, de projectteams hebben op deze manier kennis van de herbruikbare artefacten. - Beperkte verandering in de organisatiestructuur. - Centrale sturing van de ‘nested producers’ d.m.v. de hergebruikmanager. - Dubbele verantwoording, de ‘nested producer’ moet zowel aan de Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 55 - - Aanbevelingen - hergebruikmanager als aan de projectmanager verantwoording afleggen. De prioriteiten van het lopende project kunnen boven de prioriteiten van hergebruik komen te liggen waardoor hergebruikbudget en resources worden omgeleid naar het project. Gebrek aan macht van de hergebruik manager. Onbekend wat zijn positie is t.o.v. de projectmanagers en de level 2 managers. Beperkte kennis bij de ‘nested-producers’ van de andere projecten en van de verschillende herbruikbare artefacten. Vooral indien er meerdere complexe herbruikbare artefacten zijn is het een kostbare aangelegenheid om alle ‘nestedproducers’ met alle herbruikbare artefacten bekend te laten worden. Leg vast wat de positie is van de hergebruikmanager ten opzichte van de projectmanager. De hergebruikmanager dient een goed inzicht te hebben in de lopende en toekomstige projecten. Op deze manier kan hij kansen voor hergebruik identificeren en de ‘nested producers’ op basis hiervan sturen. Hiervoor is het belangrijk dat er ook communicatie is tussen de projectmanagers en de hergebruikmanager. Tabel 9 - Afwegingen bij de Nested Producer structuur. Wanneer geschikt Binnen HP is deze variant ongeschikt bevonden. Het grootste probleem met dit model bij HP was het gebrek aan macht van de hergebruik manager. Deze moet kunnen bepalen wat de ‘nested producer’ doet. 3. Pool Producer In deze structuur combineren twee projectteams hun hergebruikspecialisten. Ze werken samen aan de productie van herbruikbare artefacten en delen deze ook. In deze structuur zijn productie en ondersteuning wederom geïntegreerd in de normale processen. Er vindt geen sturing van buitenaf plaats, de projecten bepalen in onderling overleg welke artefacten hergebruikt kunnen worden. De scope van hergebruik blijft dus ook beperkt tussen datgene wat er binnen die twee projecten beschikbaar is. Level 2 Manager Project Manager Project Manager Project Manager Project Manager Project Team A Project Team B Project Team C Project Team D Pool Producers Figuur 13 - Pool Producer structuur [FAF94][MIL02]. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 56 Afwegingen bij de Pool Producer structuur Voordelen Nadelen Aanbevelingen - Geen veranderingen in de organisatiestructuur nodig. - Kosten en baten voor hergebruik worden op een natuurlijke wijze verrekend binnen de projecten. - Overbelasting qua communicatie indien er teveel projecten in een dergelijke constructie samenwerken. - Kans op conflicten en problemenlast bij oude conflicten. - Verschillende prioriteiten tussen de projecten kunnen tot conflicten leiden. - Beperking van hergebruik tot de kansen hiertoe binnen een dergelijk samenwerkingsverband. Verder worden de ontwikkelde artefacten vaak binnen de betrokken projecten gehouden. De scope is dus zeer beperkt. - Conflicten als gevolg van een oneerlijke verdeling van de baten en lasten van hergebruik. - Koppel maximaal 3 projecten. - Formaliseer de communicatiestructuren. - Verzeker snelle respons op wijzigingsverzoeken. - Balanceer de workload over de betrokken projecten. - Stel de binnen de projecten ontwikkelde herbruikbare artefacten ook buiten dit samenwerkingsverband beschikbaar. Tabel 10 - Afwegingen bij de Pool Producer structuur. Wanneer geschikt Aangezien deze structuur geen verandering nodig heeft in de bestaande organisatiestructuur lijkt het ideaal als een bottom-up aanpak voor hergebruik. Deze structuur is vooral geschikt bij een hergebruikprogramma met een beperkte scope en doelstelling, aangezien het resultaat beperkt blijft tot het delen van enkele gemeenschappelijke artefacten. Deze aanpak is niet geschikt voor een langdurige hergebruikstrategie. Tevens is er door de losse structuur tussen de projecten geen duidelijke afbakening van verantwoordelijkheden. 4. Team Producer Deze opzet voorziet in een apart doorlopend project (team) voor de productie en ondersteuning met betrekking tot herbruikbare artefacten. Productie en ondersteuning zijn in deze structuur dus expliciet gescheiden van de gebruikers van deze herbruikbare artefacten. De hergebruik manager is verantwoordelijk voor de sturing van dit team. De productie vindt hier plaats op basis van domein analyse en naar aanleiding van wensen van de projectteams. De hergebruik manager beoordeelt deze wensen. Hierbij wordt gekeken of er voldoende algemeen belang is of dat het slechts ten behoeve van één specifiek project is. Deze structuur maakt tevens een directe verrekening mogelijk en propageert een marktwerking tussen dit producerende team en de andere projectteams. Zie Figuur 14 en Tabel 11 voor de structuur en afwegingen bij dit model. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 57 Level 2 Manager Project Manager Hergebruik Manager Project Manager Project Team A Team Producenten Project Team B Figuur 14 - Team Producer structuur [FAF94][MIL02]. Afwegingen bij de Pool Producer structuur Voordelen Nadelen Aanbevelingen - Eén manager die puur is toegewijd aan hergebruik. - Controle over hergebruikbudget en inzicht in de kosten. - Brede kennisbasis over de verschillende projecten en goed inzicht in mogelijkheden voor hergebruik. - Bundeling van kennis om adequaat op de verzoeken van de projectteams te kunnen reageren. - Door het centraliseren van de productie en onderhoud is sturing eenvoudiger. Qua ‘design with reuse’ is het mogelijk dat de hergebruik manager in overleg met de projectmanager aan het begin van een project bepaalt wat er wel of niet hergebruikt kan worden. - Het risico bestaat dat de producenten een te goede oplossing willen creëren die voorbij gaat aan de problemen van de projectteams. - Indien er teveel herbruikbare artefacten zijn, worden de producenten teveel bezig gehouden met onderhoud daarvan. - Er is veel communicatie nodig met de projectteams. - Houd de focus op consumentgeoriënteerde productie! Zorg ervoor dat de productie ook overeenkomt met de behoefte van de projectteams. - Definieer duidelijke communicatie strategieën. Communicatie met de projectteams (de klanten) is essentieel, aangezien ook op basis hiervan herbruikbare artefacten worden geproduceerd. - Lever complete documentatie bij de herbruikbare artefacten die worden aangeboden. - Rouleer de mensen. Dat wil zeggen, rouleer de producer over de projecten en laat nieuwe mensen in het producerteam plaatsnemen. Op deze manier wordt hergebruik verankerd onder de software engineers en wordt de algemene kennis van de herbruikbare artefacten vergroot. Tabel 11 - Afwegingen bij de Team Producer structuur. Wanneer geschikt Binnen HP is dit model het meest succesvol. Het is een organisatiemodel dat geschikt is voor een lange termijn strategie. Dit model is ook zeer geschikt voor organisaties met specifieke productfamilies of productlijnen. Indien de organisatie en het potentieel voor hergebruik binnen een domein groot genoeg zijn, kan ervoor worden gekozen om aparte teams op te zetten voor bepaalde domeinen. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 58 3.5.4 Verrekening De projecten, die gebruik maken van de herbruikbare artefacten, profiteren hier op twee manieren van: het scheelt qua tijd en kosten. De productie van herbruikbare artefacten, de ondersteunende processen en de sturingsactiviteiten moeten vanuit deze opbrengsten gedekt worden, is dit niet mogelijk dan is hergebruik financieel gezien ook niet aantrekkelijk. Er zijn een aantal methoden om de kosten voor hergebruikt te verrekenen. Deze verrekeningsschema’s kunnen opgedeeld worden naar het direct of indirect verrekenen. Waar er in een normale ontwikkelomgeving (zonder hergebruik) een directe relatie bestaat tussen de geproduceerde software en de activiteiten die nodig waren om dit te realiseren, is dit bij hergebruik niet het geval. Tevens moet er rekening worden gehouden met het feit dat de kosten van iets herbruikbaars over meerdere projecten verrekend dienen te worden terwijl vooraf onbekend is hoeveel projecten dit zijn [FIC01]. Bij het direct verrekenen is het noodzakelijk dat er een directe relatie bestaat tussen de gemaakte kosten en de geleverde dienst. Bij indirecte verrekening is dit niet het geval. Of de kosten direct te relateren zijn aan de geleverde dienst is afhankelijk van de manier waarop de productie, sturing en ondersteuning zijn georganiseerd en de inzichtelijkheid in de daadwerkelijk gemaakte kosten. Er zijn drie manieren om de kosten van hergebruik te verrekenen [FIC01]: 1. Traditional overhead funding Deze methode rekent de kosten voor hergebruik als overhead. Dit houdt in dat kosten die bijvoorbeeld zijn gemaakt voor het produceren en beheren van de herbruikbare artefacten uit één pot worden betaald. Dit potje moet echter ook gevuld worden. Het is een mogelijkheid om via een vast of variabel bedrag de projecten hieraan bij te laten dragen. Bij deze methode betalen projecten, en dus de klanten, altijd impliciet voor hergebruik. 2 Tax funding Deze methode probeert de projecten te laten betalen voor het hergebruik wat ze toepassen, bij wijze van spreken een hergebruikbelasting. Er is echter geen mogelijkheid om de gemaakte ´hergebruikkosten´ binnen project A direct aan project B door te berekenen omdat dit inzicht vaak ontbreekt of variabel is. Deze methode lost dit op door een percentage van het budget of de opbrengsten van hergebruik in het hergebruikende project af te staan. Bij deze methode worden de kosten voor hergebruik dus alleen doorberekend aan de projecten die daadwerkelijk hergebruiken. Het nadeel van de methode is dat er een situatie kan ontstaan waarbij projecten verschillende bedragen gaan betalen voor dezelfde dienst of herbruikbare artefacten. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 59 3 Payments for components and services Deze optie kan worden toegepast indien er een direct verband bestaat tussen de gemaakte kosten en de geleverde dienst. De projectteams die gebruik maken van herbruikbare artefacten en services hieromheen (extra functionaliteit of ondersteuning bij gebruik) betalen hier voor. Deze aanpak kan alleen gebruikt worden in situaties waar dit directe verband bestaat. Voor indirecte kosten zoals onderhoud en beheer dient een andere manier gehanteerd te worden. De keuze voor een bepaalde manier van verrekenen is afhankelijk van de inrichting van de hergebruik organisatie. Zo kan bij de team producer structuur een betalingsmethode als payments for components and services goed werken. Deze methode zou bij een structuur waar de producenten in de projectteams zitten onlogisch zijn omdat de kosten niet direct te relateren zijn aan andere projecten. 3.5.5 Tools Er zijn verschillende processen die met tools ondersteund kunnen worden. In § 3.4.2 zijn deze processen besproken. Dit waren onder andere distributie, configuratie management & versiebeheer en de informatievoorziening rondom de herbruikbare software artefacten. Een belangrijke tool voor hergebruik is een repository, dit is een centrale opslagplaats voor de herbruikbare artefacten. Een repository kan een aantal belangrijke processen en functies ondersteunen. Ten eerste creëert het de noodzakelijke link tussen de productie van herbruikbare artefacten en de consumptie hiervan. Het vormt een bekende locatie waar de producenten van herbruikbare artefacten bereikt kunnen worden. Ten tweede vergroot het de kans dat ontwikkelaars een herbruikbaar artefact naar wens vinden doordat alles centraal is opgeslagen. Hierdoor is het ook mogelijk betrokkenen gemakkelijker bekend te laten worden met de beschikbare herbruikbare artefacten. Een belangrijk aandachtspunt bij een repository is de manier waarop herbruikbare artefacten erin opgenomen kunnen worden. Zo kunnen de software engineers volledig vrijgelaten worden om herbruikbare artefacten op te slaan. Dit verlaagt de drempel voor de software engineers om hun producten centraal beschikbaar te stellen. Aan de andere kant bestaat wel het risico dat de repository gevuld wordt met slecht gedocumenteerde en kwalitatief slecht herbruikbare artefacten. Het andere uiterste is een vorm van selectie aan de poort waarbij door een andere partij wordt bepaald of het herbruikbare artefact voldoet aan kwaliteitscriteria en of de documentatie in orde is. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 60 3.6 Kwantificeren van hergebruik ‘Meten is weten’, een simpel gezegde dat ook zeker op hergebruik van software artefacten van toepassing is. Het heeft echter weinig nut om stuurloos allerlei aspecten te gaan meten. In deze paragraaf wordt bekeken welke aspecten belangrijk zijn om gekwantificeerd te worden, met betrekking tot hergebruik van software artefacten. Tevens wordt er een voorbeeld uitgewerkt waarbij er vanuit een vooropgezet doel een afleiding wordt gemaakt naar subdoelen en metingen en de eventuele interpretatie van die metingen. 3.6.1 Wat zijn metingen Meten is het kwantificeren van attributen van entiteiten volgens duidelijk gedefinieerde regels. Een attribuut is hierbij een kenmerk of eigenschap van de entiteit. Metingen kunnen direct of indirect zijn [FEN97]. Bij een directe meting is er slechts één attribuut betrokken, het is dus direct meetbaar. In de praktijk doen zich echter vaker complexe situaties voor waarbij de gewenste informatie een functie is van meerdere attributen. In dit geval spreekt men van indirecte metingen. De attributen kunnen daarnaast intern of extern zijn [FEN97]. Een intern attribuut van een entiteit kan gemeten worden zonder dat de context nodig is. Bijvoorbeeld de grootte van een stuk code (aantal regels code of operaties). Een extern attribuut kan alleen gemeten worden in relatie met de context, bijvoorbeeld de productiviteit van een werknemer. 3.6.2 Kwaliteit van de data Dat de kwaliteit van de data een belangrijke rol speelt bij de bruikbaarheid van de metingen is evident. Er zijn een vijftal aspecten waar rekening mee moet worden gehouden bij het interpreteren van de data [FEN97]: 1. Correctheid De mate waarin de data verzameld en vastgesteld is volgens vooraf vastgelegde regels. Zo kan het aantal regels code van een stuk software afhangen van de meetdefinities. Worden bijvoorbeeld de regels commentaar meegerekend of niet? Uniformiteit in de meetdefinities tussen de verschillende metingen is essentieel voor de consistentie tussen de metingen. 2. Betrouwbaarheid Dit aspect omvat twee aspecten, namelijk de accuraatheid en de precisie. De accuraatheid heeft betrekking op de mate waarin de gemeten data overeenkomt met de echte waarde. De precisie duidt op de nauwkeurigheid waarin de data wordt weergegeven. Wordt de tijd waarin een aantal ontwikkelaars nodig zijn voor een bepaald een project bijvoorbeeld weergegeven in minuten, uren, dagen of maanden. 3. Consistentie De data dient consistent te zijn tussen de gemeten entiteiten. De uitkomsten dienen vergelijkbaar te zijn. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 61 4. Tijdsafhankelijkheid Indien de uitkomst van een meting geassocieerd is met een bepaalde periode dan dient dit ook vermeld te worden bij de data (time-stamp). 5. Reproduceerbaarheid Om resultaten te kunnen vergelijken is het noodzakelijk dat de metingen en uitkomsten reproduceerbaar zijn. 3.6.3 Goal Question Metric en AMI Er zijn verschillenden methoden beschikbaar waarmee een organisatie een meetplan kan samenstellen. Een bekende methode is de Goal Question Metric (GQM) methode. Deze methode is geschikt om metingen te definiëren voor software projecten, processen, producten en resources [FEN97][EZR02] op een zodanige manier dat: - de metingen zijn aangepast aan de organisatie en haar doelen, de uitkomsten een constructieve en instructieve bijdrage leveren, de uitkomsten vanuit de verschillende gezichtspunten van de groepen in een organisatie bekeken worden. Het kwantificeren van aspecten uit het softwareontwikkelproces omvat verschillende activiteiten: het bekijken van de huidige situatie om te bepalen wat de doelen van het kwantificatie proces zijn, het opbreken van deze doelen naar meetbare subdoelen, het opstellen van de specifieke metingen, het verzamelen en verifiëren van de data, het verwerken en interpreteren van deze data en het terugkoppelen hiervan naar de oorspronkelijke doelen. In Figuur 15 wordt dit weergegeven volgens de AMI methode. AMI is gebaseerd op het GQM en CMM en biedt een gestructureerde manier om aspecten van het softwareontwikkelproces te kwantificeren. In Bijlage C wordt deze methode nader toelicht. Environment Management Objectives Current Practices Customer Requirements Asses Primary Goals Analyse Metrics Specification Reference to Assessment Reference to Goals Metricate Improve Measurement Data Resources Processes Products Figuur 15 - Verschillende fasen volgens de AMI methode [PUL96]. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 62 3.6.4 Bijdrage van metingen aan hergebruik De vraag is op welke manier metingen een bijdrage kunnen leveren aan hergebruik van software artefacten binnen een organisatie. Waarom wordt dit gemeten en wat kan er uit de verzamelde data geconcludeerd worden? Hierbij is het belangrijk om te weten vanuit welk perspectief de meting is uitgevoerd, met andere woorden, welke stakelholder is erin geinteresseerd of wordt erdoor beïnvloed? Frakes heeft hiervoor een categorizering gemaakt naar verschillende metingen en modellen die gebruikt kunnen worden om inzicht te krijgen in de toepassing van hergebruik binnen een organisatie [FRA96]. 1. Hergebruik Cost-Benefits modellen. 2. Hergebruik Volwassenheidsmodellen. 3. Hoeveelheid hergebruik. 4. Mislukkingsmodellen. 5. Herbruikbaarheid van de artefacten. 6. Repository metingen. Enkele aspecten uit zijn categorizering zijn echter gebaseerd op niet-kwantitatieve methoden, zoals de volwassenheidsmodellen of de mislukkingsmodellen. Er zijn een aantal aspecten in het softwareontwikkelproces waar kwantitatieve gegevens belangrijk zijn om een goede keuze te kunnen maken. Denk bijvoorbeeld aan aan de keuze om bepaalde software artefacten herbruikbaar te maken, het evalueren van de opbrengsten van hergebruik (zowel op projectniveau als organisatieniveau) of de keuze om een artefact her te gebruiken tegenover de keuze om het zelf te ontwikkelen. 3.6.5 Voorbeeld uitwerking volgens de AMI methode In deze paragraaf wordt een voorbeeld uitgewerkt aan de hand van de AMI methode. Hierbij wordt niet ingegaan op de organisatorische aspecten maar wordt vooral gekeken naar de opzet van de doelen, het verkrijgen van de subdoelen, het afleiden van de metingen en het interpreteren van de data. Fase ‘Assess’ Er wordt uitgegaan van een organisatie met CMM level 2 waar hergebruik op adhoc basis plaatsvindt. Recent is er een initiatief gestart om hergebruik van software artefacten systematischer aan te pakken. Er is een repository aangeschaft en geïmplementeerd en er zijn een aantal herbruikbare artefacten beschikbaar waar de ontwikkelaars gebruik van kunnen maken. Er is voor de organisatie geen ´baseline8´ beschikbaar aangezien zowel de repository als het systematisch hergebruiken relatief nieuw zijn. Gezien de prille status van het hergebruik initiatief wil de organisatie eerst inzicht krijgen in de huidige situatie. Hiervoor kunnen er verschillende kennisdoelen 8 Een baseline is een soort nulpunt waar de uitkomsten van toekomstige metingen mee vergeleken kunnen worden. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 63 geformuleerd worden. Aangezien de organisatie verder weinig tot geen ervaring heeft met het uitvoeren van kwantitatieve analyses, wordt er besloten te beginnen met twee doelstellingen. ‘Het evalueren van de intensiteit van hergebruik binnen een organisatie ’ ‘Het evalueren van de kosten van hergebruik binnen een project’ Goal Purpose Attribute Entity Perspective Context 1 Evalueren De intensiteit van hergebruik De organisatie Hergebruikmanager 2 Evalueren De kosten Herbruikbare artefacten Projectmanager Er is geen inzicht in de mate waarin er hergebruikt wordt. De projectmanagers zijn van mening dat hergebruik nadelig is voor hun project. Tabel 12 - Template voor de definitie van doelen [FEN97][EZR02]. Fase ‘Analyse’ De gestelde doelen zijn niet direct meetbaar. Bij de GQM methode worden hiervoor een aantal vragen opgesteld die samen bepalen of aan het doel is voldaan. Voor de vragen worden daarna metingen opgesteld die deze kunnen beantwoorden. Bij de AMI methode wordt dit anders aangepakt, hierbij worden er geen vragen maar subdoelen opgesteld waarbij deze subdoelen wel direct meetbaar zijn. Er zijn ook variaties op het GQM waarbij direct wordt overgegaan van doelen naar metingen. In dit voorbeeld wordt de GQM methode gevolgd om de stap van het doel naar de vragen naar de metingen aan te geven. Figuur 16 toont voor het 1ste doel de ‘goaltree’. Het evalueren van de intensiteit van hergebruik binnen een organisatie Goal: Questions: Metrics: In welke mate wordt de repository gebruikt? 1. 2. 3. 4. 5. 6. Aantal herbruikbare artefacten in de repository Aantal hits per periode (geen downloads) Aantal downloads van herbruikbare artefacten per periode Aantal mislukte zoekpogingen per periode Cumulatief aantal malen hergebruik per artefact Cumulatief aantal malen hergebruik van alle artefacten Figuur 16 - Goaltree voor de intensiteit van hergebruik In welke mate wordt er gebruik gemaakt van de beschikbare herbruikbare artefacten? 1. 2. 3. Percentage nieuwe code Percentage onaangepaste herbruikbare code Percentage aangepaste herbruikbare code Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 64 In deze goaltree wordt de intensiteit gedefinieerd als de mate van gebruik van de repository en de mate van hergebruik van software artefacten bij het ontwikkelen van nieuwe software. Er zijn ook andere aspecten die hier nog meegenomen kunnen worden zoals de productie of ondersteuning. De nadruk ligt echter op het ‘design with reuse’ aspect. Om de mate van design with reuse te bepalen zijn er verschillende methoden beschikbaar. LOC, lines of code, is waarschijnlijk de meest bekende en wordt hier ook gehanteerd. Indien er wordt gemeten aan de hand van LOC, kan dit pas gebeuren nadat het implementeren is begonnen. Ontwerpen en analyses kunnen er niet in worden meegenomen. Het is ook moeilijk om conceptuele producten zoals frameworks, architecturen of design patterns te kwantificeren. Zolang daar geen herhaalbare en betrouwbare methoden beschikbaar voor zijn, is het LOC een zeer geschikte indicator voor de mate van hergebruik in het ontwikkelproces [POU97]. Goal: Questions: Metrics: Het evalueren van de netto kosten van hergebruik voor een project Wat zijn de financiële baten van hergebruik van software? 1. Kosten besparing bij het ontwikkelen van software 2. Kosten besparing voor het onderhouden van software Wat zijn de financiële lasten van hergebruik van software? 1. 2. 3. 4. 5. 6. 7. Kosten voor kosten/baten analyse Kosten voor zoeken Kosten voor bestuderen Kosten voor integreren Kosten voor modificeren Kosten voor testen Kosten voor ondersteuning bij gebruik van de herbruikbare artefacten 8. Kosten voor onderhoud van aangepaste herbruikbare artefacten Figuur 17 - Goaltree voor de netto kosten van hergebruik binnen een project Bij deze goaltree zijn er een aantal aannames gemaakt. De kosten van hergebruik voor een project worden puur gevormd door de kosten voor het zoeken, bestuderen, integreren, aanpassen en testen van herbruikbare artefacten alsmede het doen van een kosten/baten analyse en de kosten voor het onderhoud van aangepaste herbruikbare artefacten. De extra kosten voor de productie van herbruikbare artefacten is hier dus buiten gelaten, het gaat enkel om de kosten die optreden bij de consumptie van herbruikbare artefacten. Verder wordt het onderhoud en de ondersteuning van de herbruikbare artefacten door een aparte eenheid uitgevoerd. De opbrengsten voor een project zijn tweeledig. Ten eerste de besparing voor het ontwikkelen met de herbruikbare software ten opzichte van het zelf ontwikkelen, ten tweede de besparing op het onderhoud wat voorkomt uit een lager aantal bugs en het feit dat het onderhoud niet door het project zelf gedaan hoeft te worden. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 65 Fase ‘Metricate’ Op basis van het doel, de vragen en de opgestelde metingen kan er nu een meetplan geschreven worden. Dit plan licht de analyse, het doel en de subdoelen toe. Voor de metingen wordt gedefinieerd waar die specifieke meting voor dient, hoe het wordt berekend en wie ervoor verantwoordelijk is. De metric template van AMI is hiervoor geschikt. Metric Template Deel A: Definitie van de meting en analyse procedure Naam Definitie Kosten besparing bij het ontwikkelen van software DCA, Development Cost Avoidance [POU97]9. De besparing door ontwikkelen met herbruikbare artefacten ten opzichte van het zelf ontwikkelen. Dit is opgebouwd uit een besparing door black box hergebruik en door een besparing uit white box hergebruik. RSI, Reused Source Instructions. Datgene wat hergebruikt wordt, kan in LOC of Functie punten gemeten worden. In dit geval wordt LOC gehanteerd. Deze standaard is afkomstig van IBM en is bedoeld voor black box hergebruik. In dit voorbeeld wordt zowel black box als white box hergebruik meegenomen. Daarom wordt het RSI gesplitst naar RSI black box en RSI white box. Respectievelijk RSIb en RSIw. RCR, Relative Costs of Reuse. Dit is de verhouding tussen de benodigde inspanning voor het black box hergebruiken ten opzichte van het ontwikkelen voor eenmalig gebruik. Elke organisatie heeft hier zijn eigen waarde voor en deze is afhankelijk van verschillende factoren. Industriewijd kengetal is 0,2 [POU97][MIL02]. CAC, Costs of Adapted Code. Dit is de verhouding tussen de benodigde inspanning voor het white box hergebruiken ten opzichte van het zelf ontwikkelen voor eenmalig gebruik. Industriewijd kengetal is 0,67 [MIL02][POU97]. DCA = (RSIb x (1- RCR) + RSIw x (1- CAC)) x Kosten nieuwe code Doel Inzicht verkrijgen in de besparing bij het ontwikkelen met herbruikbare artefacten. Wat is nu het verschil met het zelf ontwikkelen? Analyse Procedure Geeft snel en gemakkelijk een inzicht in de besparing als gevolg van het hergebruik van software bij het ontwikkelen van nieuwe software. Verantwoordelijkheden N.v.t. Benodigde training Kennis van economische aspecten bij de ontwikkeling van software. Deel B: Definitie van primitieve metingen en verzamelprocedures Naam RSIb en RSIw 9 Poulin heeft Reuse Calculator ontwikkeld waarmee organisaties op een snelle manier inzicht kunnen krijgen in wat hergebruik voor hun kan betekenen. Zie http://home.stny.rr.com/jeffreypoulin/html/reucalc_basic.html Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 66 Definitie RSIb aantal regels code dat wordt hergebruikt zonder wijziging. RSIw aantal regels code dat wordt hergebruikt waarbij deze fragmenten wel worden aangepast. Verzamelprocedure Verantwoordelijkheden Tabel 13 - Metric template voor ´Development Cost Avoidance´ [POU97]. Deel B van de metric template is hier leeg gelaten, aangezien de relevante aspecten allemaal in deel A zijn beschreven. Aangezien organisaties vaak geen inzicht hebben in aspecten zoals de besparing in moeite bij black box hergebruik ten opzichte van het zelf ontwikkelen, de kosten per regel code of de kosten per functie punt kunnen hier kengetallen gehanteerd worden. Voor het RSI met black box wordt de ratio 0,2 als kengetal gehanteerd en voor white box hergebruik 0,67. Op deze manier kan een organisatie zonder eigen specifieke kengetallen toch op basis van industriële kengetallen tot een goede schatting komen. Fase ‘Improve’ In deze fasen worden de verzamelde gegevens verwerkt. Hoe de gegevens gepresenteerd worden is hier niet van belang, het kan met een histogram, een diagram of een andere representatie. Het is belangrijker te kijken of de verzamelde data onverwachte of ongebruikelijke waarden laat zien en of er trends zijn te ontdekken. Wat nog rest is de interpretatie van de gegevens. Want hoe kunnen de uitkomsten van de metingen geïnterpreteerd worden in relatie met de gestelde doelen? De twee doelstellingen zoals geformuleerd in de fase ‘Assess’ worden beide besproken. Doel 1 - Intensiteit van hergebruik Dit doel is opgesplitst in 2 vragen, respectievelijk A en B. Indien er over een specifieke metriek wordt gesproken, wordt deze aangeduid met (de aanduiding van) de vraag en het nummer van de metriek. Bijvoorbeeld A3 staat voor Aantal downloads per periode. Hetzelfde geldt straks voor het tweede doel. Metriek Interpretatie A1 Deze meting geeft inzicht in het aantal beschikbare herbruikbare artefacten. Op zichzelf zegt deze meting weinig, stel bijvoorbeeld dat de waarde 15 is. Dan zijn er dus 15 herbruikbare artefacten. Indien het echter gekoppeld wordt aan andere informatie, zoals de grote en complexiteit van het artefact, het aantal software engineers en de productie van software dan krijgt de waarde meer betekenis. Blijkt bijvoorbeeld dat een organisatie veel software ontwikkeld maar het aantal herbruikbare artefacten laag blijft, dan zegt dit mogelijk iets over het potentieel van hergebruik binnen de organisatie of over een gebrek aan sturing op de productie van herbruikbare artefacten. Deze meting geeft inzicht in de mate waarin de repository wordt bekeken. Stel dat er 41 als waarde uitkomt. Dat betekent dus dat er in een bepaalde periode 41 maal in de repository is gekeken. In combinatie met het aantal software engineers geeft dit inzicht in de mate van A2 Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 67 A3 A4 A5 A6 B1 B2 B3 gebruik van de repository. Indien deze ratio heel laag is kan het duiden op onbekendheid van de repository of het ontbreken van motivatie het te gebruiken. Deze meting geeft inzicht in het aantal downloads van herbruikbare artefacten per periode. Indien deze waarde bijvoorbeeld 2 is terwijl de metriek A2 41 is dan duidt dit erop dat de repository wel wordt gebruikt om herbruikbare artefacten te zoeken maar dat blijkbaar de juiste artefacten er niet in zijn opgenomen. Deze meting geeft het aantal mislukte zoekpogingen aan naar herbruikbare artefacten. Stel bijvoorbeeld dat A4 een waarde heeft van 39, dus 39 mislukte zoekpogingen, dan kan dit gecombineerd worden met de metrieken A2 en A3. Indien A4 namelijk het grootste deel van het verschil tussen A2 en A3 opvult kan dit een verklaring zijn voor de lage waarde van A3. Namelijk dat de gewenste herbruikbare artefacten missen. Indien A4 heel laag is, bijvoorbeeld 3 terwijl A2 41 is en A3 2 dan kan het erop duiden dat de hergebruikers niet weten welke herbruikbare artefacten beschikbaar zijn en hoe het repository gebruikt kan worden om deze te vinden en downloaden. Deze meting geeft inzicht in het aantal malen dat een specifiek herbruikbaar artefact is hergebruikt. Deze metriek geeft inzicht in het technische vlak van hergebruik. Stel dat A1 15 is (15 herbruikbare artefacten), A2 is 60 (60 zoekpogingen) en A3 is 55 (55 downloads van herbruikbare artefacten). Er zijn dus 15 artefacten die tesamen 55 maal zijn gedownload, dus ongeveer 3,7 maal per artefact. Stel dat een specifiek herbruikbaar artefact 1 keer is hergebruikt terwijl het meerdere keren is gedownload, dan duidt het erop dat het artefact vanuit technisch oogpunt slecht herbruikbaar is. Deze meting geeft inzicht in het aantal malen hergebruik van alle herbruikbare artefacten. Stel dat A1 wederom 15 is, A2 60 en A3 55. A6, het totale aantal malen hergebruik over alle artefacten, is 50. Dus van de 55 downloads hebben er 50 geresulteerd in het daadwerkelijk hergebruiken van het artefact. Dit duidt erop dat de herbruikbare artefacten voldoen aan de aspecten waarop de hergebruikers zochten en ook daadwerkelijk herbruikbaar zijn. Heeft A6 bijvoorbeeld een waarde van 3 terwijl het aantal downloads 55 is dan duidt het erop dat er serieus iets mis is met de herbruikbare artefacten ten opzichte van behoefte van de hergebruikers. Deze meting geeft inzicht in het percentage code dat nieuw wordt ontwikkeld. Stel dat hier 50 uitkomt, dus 50% van de code die wordt ontwikkeld binnen een project of organisatie is echt nieuwe code. Dat betekent dus dat de overige code voort komt uit hergebruik. Indien dit percentage stijgt, betekent dit dat de rol van hergebruik in de ontwikkeling van software afneemt en visa versa. Deze meting geeft inzicht in het percentage code dat onaangepast hergebruikt wordt. Stel dat B2 18 is, dus dat 18% van de totale code afkomstig is van black box hergebruik. Dit is natuurlijk al een flink percentage aangezien dit betekent dat bijna 1/5 van alle geproduceerde code niet telkens opnieuw ontwikkeld hoeft te worden. Hierbij is wel voorzichtigheid geboden aangezien er sprake kan zijn van ‘inflatie’. Niet alle code van herbruikbare componenten hoeft immers gebruikt te worden, terwijl het hier wel wordt meegerekend [MIL02]. Deze meting geeft inzicht in het percentage code dat na aanpassing hergebruikt wordt. Stel dat B3 30 is, dus dat 30% van de totale code uit white box hergebruikt voorkomt. Tabel 14 - Interpretatie van de metingen bij doel 1. Uit de interpretaties in Tabel 14 blijkt dat de metrieken afzonderlijk slechts beperkt van waarde zijn maar gezamenlijk belangrijke relaties kunnen leggen en tot diepere Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 68 inzichten kunnen leiden. Trends spelen hierin ook een belangrijke rol aangezien hergebruik ook op basis hiervan gestuurd kan worden. Indien men metingen over een langere periode vergelijkt kunnen uitkomsten significant afwijken, hier spreekt met van outliers. Stel bijvoorbeeld dat de metriek B2 de volgende data laat zien: Meting Metriek B2 1 30 2 3 32 31 4 28 5 35 6 30 7 5 Tabel 15 - Dataset van metingen van metriek B2. Een dergelijke meting moet natuurlijk verklaard worden, zeker aangezien het hier een sterke impact heeft op de resultaten van hergebruik. Als bijvoorbeeld in Meting 7 metriek B1 een sterke stijging en B3 gelijk blijft laat zien betekent dit dat er nieuwe code wordt ontwikkeld in plaats van het her te gebruiken. Indien B1 gelijk blijft maar B3 een sterke stijging laat zien betekent het dat black box hergebruik plaats maakt voor white box hergebruik, bijvoorbeeld omdat er als gevolg van een bepaalde ontwikkeling een aantal herbruikbare artefacten niet direct black box zijn her te gebruiken. Het is dus belangrijk om de oorzaken van de ‘outliers’ te achterhalen om op basis hiervan het proces weer bij te sturen. Doel 2 - Kosten van hergebruik De netto kosten van hergebruik worden in dit voorbeeld gevormd door de opbrengsten minus de kosten voor hergebruik binnen een project. De opbrengsten bestaan uit de voorkomen kosten voor het produceren van software en de voorkomen kosten van het onderhoud. De kosten van hergebruik bestaan uit de kosten voor het herbruikbaar maken van software artefacten en de kosten voor ondersteuning bij het ‘design with reuse’. Er wordt dus vanuit gegaan dat er een aparte eenheid is voor het onderhoud en support bij de herbruikbare artefacten. Voor het berekenen van A1, A2 en B1 kunnen kengetallen gehanteerd worden indien deze niet binnen de organisatie voor handen zijn. Hieronder is een voorbeeld van de metric A1 opgenomen. Er wordt aangenomen dat een project een applicatie ontwikkeld en hiervoor enkele componenten (black box) hergebruikt. Deze componenten bevatten samen 12 KLOC. Voor de kosten van het ontwikkelen van nieuwe code wordt $100 per LOC gehanteerd. De bespaarde kosten ten opzichte van het zelf ontwikkelen van de betreffende code zou dan zijn: DCA = RSIb x (1- RCR) x (Kosten nieuwe code) DCA = 12.000 x (1-0,2) x 100 DCA = $ 960.000 Dit betekent dat indien de componenten niet hergebruikt worden, het project $ 960.000 moet uittrekken om dit zelf te ontwikkelen. Hierbij wordt er echter vanuit gegaan dat het component hetzelfde is als wanneer het specifiek voor dit Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 69 project zou worden ontwikkeld. Dit is waarschijnlijk niet het geval en de daadwerkelijke besparing kan daarom lager uitvallen. Verder heeft een project natuurlijk baat bij het onderhoud op de herbruikbare artefacten. Stel er deze organisatie ook inzicht heeft in het aantal fouten in haar geproduceerde software en ook weet wat het kosten zijn om deze te repareren dan kan ook de kostenbesparing op het onderhoud berekend worden. Stel bijvoorbeeld dat er vanuit historische gegevens verwacht kan worden dat er 2 fouten per 1000 regels code bestaan en het gemiddeld $ 1.000 kosten om een fout te repareren dan scheelt dit het project 12.000 / 1.000 * 2 = 24 fouten. Dus 24 * 1.000 = $ 24.000 voor alle hergebruikte software. De kostenbesparing voor dit project is samen dus circa 1 miljoen dollar. Daar tegenover staan de kosten van het hergebruiken van de herbruikbare componenten. Stel dat deze kosten samen $ 500.000 zijn. Dan betekent dat dit project netto $ 700.000 baat heeft gehad bij het ontwikkelen met de herbruikbare artefacten. Op organisatieniveau zijn deze gegevens belangrijk aangezien ook de kosten voor het produceren, onderhouden, beheren, het bieden van ondersteuning en het coördineren van hergebruik gefinancierd moet worden. De financiële voordelen van hergebruik kunnen niet volledig aan de klant worden doorberekend aangezien een organisatie zichzelf dan in de vingers snijdt. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 70 3.7 Theoretisch raamwerk Deze paragraaf zet op basis van de behandelde theorie een raamwerk op. Het doel van dit theoretische raamwerk is het analyseren van hergebruik van software artefacten binnen een organisatie (ook mogelijk op projectniveau). Aan de hand van dit raamwerk kan er in een oogopslag worden gezien waar er zich knelpunten of problemen voordoen op het gebied van hergebruik van software artefacten. Om aan de hand van dit theoretische raamwerk een organisatie te kunnen analyseren, dient het raamwerk inzicht te geven in de invulling van de verschillende aspecten en keuzen op het gebied van hergebruik van software artefacten. Het raamwerk in Tabel 16 bestaat uit drie delen: de artefacten die worden ontwikkeld en hergebruikt, de processen die hierbij voorkomen en de manier waarop het organisatorisch is ingericht. Per onderwerp worden de relevante aspecten opgesomd waarbij per aspect wordt beschreven wat het inhoud en wat de mogelijke invullingen daarvan zijn. Aspect Artefacten Type artefacten Manier van gebruik Documentatie Intensiteit van hergebruik Toelichting Wat voor type artefacten worden er daadwerkelijk hergebruikt? - Requirements - Ontwerpen - Broncode - Componenten - Architectuur - Frameworks - Testdata & plannen - Documentatie - Anders Wat is het beoogde gebruik van de herbruikbare artefacten? - Black box - White box Is er begeleidende documentatie bij het herbruikbare artefact? - Ja (beschrijf wat de documentatie omvat) - Nee Wat is de intensiteit van hergebruik? - Horizontale artefacten - Verticale artefacten - Applicatie frameworks Processen Moment van productie Manier van productie Op welk moment worden de herbruikbare artefacten geproduceerd? - Pre-project - In-project - Post-project Op welke manier worden de herbruikbare artefacten verkregen? - Domein engineering - Re-engineering Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 71 Ondersteuning Configuratie Management Problem & Change Management Certificatie Sturing Productie Sturing Consumptie Metingen - Verkregen via externe partij Op welke manier worden de hergebruikers ondersteund bij het hergebruiken van de herbruikbare artefacten? - Niet - Via documentatie - Ondersteuning via maker of verantwoordelijke van het herbruikbare artefact Is er iemand die het configuratie management van het herbruikbare artefact uitvoert? - Ja - Nee Is er iemand die het problem & change management van het herbruikbare artefact uitvoert? - Ja - Nee Hoe worden de herbruikbare artefacten gecertificeerd? - Niet - Informeel, op basis van bijvoorbeeld gebruikerservaringen en aantal malen hergebruik - Formeel Hoe wordt de productie van herbruikbare artefacten gestuurd? - Geen sturing - Adviserende en faciliterende sturing - Dwingende sturing Hoe wordt de consumptie van herbruikbare artefacten gestuurd? - Geen sturing - Adviserende en faciliterende sturing - Dwingende sturing Welke gegevens worden geregistreerd om inzicht te krijgen in het softwareontwikkelproces m.b.t. hergebruik specifieke aspecten? - Geen - Financiele aspecten - Hoeveelheid hergebruik - Volwassenheid van hergebruik - Herbruikbaarheid - Repository metingen Organisatie Verantwoordelijkheid voor ondersteuning bij herbruikbare artefacten Verantwoordelijkheid voor het beheren van herbruikbare artefacten Sturing Productie Is er een aanspreekpunt en verantwoordelijke voor de ondersteuning bij de herbruikbare artefacten aangewezen? - Nee - Informeel - Formeel Is er iemand verantwoordelijk voor taken zoals onderhoud, configuratiemanangement en change en problem management? - Nee - Informeel - Formeel Is er een organisatie eenheid ingericht voor de coördinatie van de Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 72 Sturing Consumptie Niveau van sturing Top Management Commitment Voorschriften Inrichting Productie Inrichting Ondersteuning Financiering productie Financiering beheer Financiering ondersteuning productie van herbruikbare artefacten? - Ja - Nee Is er een organisatie eenheid ingericht voor de coördinatie van de consumptie van herbruikbare artefacten? - Ja - Nee Op welk niveau in de organisatie is de sturing van hergebruik opgehangen? - Geen sturing aanwezig - Per project/domein afzonderlijk - Afstemming tussen projecten/domeinen - Centraal, geïntegreerd proces over projecten Is het top management betrokken bij de introductie en instandhouding van hergebruik van software artefacten? - Ja (duidelijke commitment van top management voor hergebruik) - Nee (top management niet betrokken, hergebruik is geïnitieerd vanuit technische staf) Zijn er voorschriften voor hergebruik specifieke activiteiten? - Ja (beschrijf welke voorschriften dit zijn) - Nee Hoe is de productie van het herbruikbare artefact georganiseerd? - Geïntegreerd in de projecten - Losstaande eenheid Hoe is de ondersteuning van het herbruikbare artefact georganiseerd? - Niet georganiseerd - Losstaande eenheid Hoe worden de productiekosten van de herbruikbare artefacten verrekend? - Niets geregeld - Indirect, algemeen budget voor productie beschikbaar - Direct, projecten betalen voor de artefacten die ze hergebruiken Hoe wordt het beheer van de herbruikbare artefacten verrekend? - Niets geregeld - Indirect, algemeen budget voor onderhoud - Direct, projecten die het artefact hergebruiken betalen een percentage van het beheer & onderhoud van het artefact. Hoe worden de kosten voor de ondersteuning ten behoeve van de hergebruikers verrekend? - Niets geregeld - Indirect, algemeen budget voor ondersteuning - Direct, projecten betalen direct voor de ondersteuning die ze gebruiken Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 73 Repository Is er een centraal punt waar de herbruikbare artefacten zijn opgeslagen en teruggevonden kunnen worden? - Ja - Nee Tabel 16 - Theoretisch raamwerk voor het analyseren van hergebruik. Justificatie van het raamwerk Dit raamwerk dient om snel inzicht te verkrijgen in de manier waarop een organisatie invulling heeft gegeven aan hergebruik. Dit raamwerk kan dus niet alleen gebruikt worden ter analyse van een organisatie maar kan worden gezien als een template waarin de relevante aspecten worden samengevat. Elk aspect dient dus altijd te worden toegelicht. De aspecten die in het raamwerk naar voren komen geven een korte samenvatting van de aspecten die in de theorie zijn behandeld. Elk aspect in het raamwerk vormt een keuze of manier van invulling voor de organisatie. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 74 3.8 Best practices Deze paragraaf bekijkt hoe bij twee organisaties, Sodalia en Eliop, hergebruik van software artefacten is vormgegeven. Deze twee organisaties verschillen op vele aspecten van elkaar, bijvoorbeeld in grote, het domein waarin ze werkzaam zijn en de manier waarop hergebruik wordt toegepast. In deze paragraaf worden de twee organisaties geanalyseerd doormiddel van het theoretische raamwerk. 3.8.1 Sodalia en Eliop Sodalia is ontstaan in het begin van de jaren negentig na een joint venture tussen Telecom Italia en Bell Atlantic. Sodalia heeft ongeveer 300 software ontwikkelaars en heeft in een korte tijd na oprichting CMM level 3 weten te bereiken. Sodalia is hier gekozen omdat het in de literatuur wordt beschouwd als één van de belangrijkste voorbeelden op het gebied van hergebruik van software artefacten [EZR02][DOU97][MOR00]. Eliop daarentegen, is een kleine organisatie met circa 100 man waarvan er 30 direct betrokken zijn bij de ontwikkeling van software. Het is een goed voorbeeld van een kleine organisatie waar de volwassenheid van het softwareontwikkelproces nog beperkt is, maar waar hergebruik van software artefacten wel succesvol wordt toegepast [EZR02][MOR00][VIL95]. Tabel 17 analyseert de twee organisaties met behulp van het theoretische raamwerk. In Tabel 35 en Tabel 36 in Bijlage D wordt een samenvatting gegeven van respectievelijk de eigenschappen van Sodalia en Eliop en de manier waarop Sodalia en Eliop hergebruik systematisch toepassen. Aspect Artefacten Type artefacten Manier van gebruik Documentatie Intensiteit van hergebruik Sodalia Eliop Domein modellen, applicatie frameworks (rond 10.000 functie punten), libraries en componenten Hoofdzakelijk black box Ontwerp- en testdocumentatie, gebruikershandleidingen Applicatie Frameworks met algemene en domein specifieke componenten Broncode, specificaties en ontwerpmodellen, testprocedures White box hergebruik Onbekend welke documentatie. Hergebruik van algemene en domein specifieke artefacten Processen Moment van productie Manier van productie Ondersteuning Pre-project & In-project Domein Engineering In-project, next-project Domein Engineering & Reengineering Ja Configuratie Ja Nee, wel training software engineers in hergebruik technieken. Nee Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 75 Management Problem & Change Management Certificatie Ja Nee Formeel via audits (en validatie en verificatie) Geen (wel validatie voordat herbruikbare artefacten worden toegevoegd aan repository) Dwingende sturing Faciliterende en adviserende sturing / dwingende sturing. Mate van hergebruik, kosten herbruikbare artefacten en kwaliteit herbruikbare artefacten Sturing Productie Sturing Consumptie Dwingende sturing Faciliterende en adviserende sturing Metingen Enkele repository metingen (aantal malen hergebruik per artefact) Organisatie Verantwoordelijkheid voor ondersteuning bij herbruikbare artefacten Verantwoordelijkheid voor het beheren van herbruikbare artefacten Sturing Productie Sturing Consumptie Niveau van sturing Top Management Commitment Voorschriften Inrichting Productie Inrichting Ondersteuning Financiering productie Financiering beheer Financiering ondersteuning Repository Formeel via Reuse Support Organization (RSO) Informeel via hergebruik specialisten. Formeel via Reuse Support Organization (RSO) Reuse Task Group (RTG). Bestaat uit Reuse Manager en Projectmanagers. Ja (RSO) Ja (RSO) Centraal, geïntegreerd proces over projecten en domeinen Ja, hergebruik is opgestart en opgelegd door het top management. Ja, voor de verschillende processen met inachtneming van hergebruik. Ja (RTG) Ja (RTG) Per project/domein afzonderlijk Losstaande eenheid (RSO) + soms in projecten Losstaande eenheid (RSO) Ja, systematisch hergebruik initiatief is ook opgestart vanuit management. Ja, coding standards en documenttemplates (voor standaardisatie van herbruikbare artefacten) Losstaande eenheid (RTG) + in projecten Geen Indirecte verrekening (apart budget) Indirecte verrekening (apart budget) Directe verrekening Niet bekend Niet bekend Niet bekend Ja, SALMS (Sodalia Assets Library Management System) Ja, combinatie Database Management Systeem en Configuratie Management systeem. Tabel 17 - Hergebruik bij Sodalia en Eliop [EZR02][DOU97][MOR00][VIL95]. 3.8.2 Belangrijke factoren voor het succes bij Sodalia en Eliop Deze paragraaf identificeert de belangrijkste aspecten die bij Sodalia en Eliop doorslaggevend zijn geweest voor het succes van hergebruik van software Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 76 artefacten. Sodalia en Eliop zijn twee verschillende organisaties die een verschillende invulling hebben gegeven aan hergebruik van software artefacten. Sodalia hanteert een sterk geformaliseerde aanpak waarbij productie en consumptie van herbruikbare artefacten strikt gescheiden zijn. Er is een aparte organisatie opgericht voor de productie van de software artefacten, het valideren en onderhouden en het bieden van ondersteuning aan de hergebruikers: de Reuse Support Organization (RSO). Hergebruik van software heeft een sterke support van het Top Management en is doorgedrongen in alle software engineering activiteiten binnen Sodalia, kortom het is de manier van werken. Door de systematische toepassing van domein engineering worden de mogelijkheden tot hergebruik zoveel mogelijk in herbruikbare artefacten vertaald. Doordat de productie en consumptie twee gescheiden processen zijn, komen de voordelen bij de projectteams, de echte hergebruikers, terecht wat een extra motivatie is om te hergebruiken. Hergebruik is niet per definitie verplicht, maar de projecten zien zelf de noodzaak en voordelen van het hergebruiken in. Er worden hier zowel algemene als domein specifieke artefacten hergebruikt en Sodalia heeft enkele frameworks ontwikkeld waarin de applicaties worden gebouwd. Deze aanpak heeft het mogelijk gemaakt dat Sodalia hergebruik percentages tot 80% heeft bereikt. De aanpak van Eliop wijkt sterk af van de aanpak van Sodalia. De volwassenheid van het softwareontwikkelproces van Eliop is beperkt. Eliop probeert de betrokkenen op verschillende manieren handvaten aan te reiken om hergebruik ook systematisch toe te kunnen passen. Hiervoor heeft Eliop formele regels en procedures opgesteld, standaardiseert het de documenten en code doormiddel van templates en coding rules en biedt het vele trainingen voor zowel software engineers als projectmanagers aan. De nadruk ligt hierbij op kwaliteit van de herbruikbare artefacten en de hiermee gerelateerde verbetering van de kwaliteit van de software producten voor de klanten. Dit lijkt echter in tegenspraak te zijn met gehanteerde aanpak, namelijk whitebox hergebruik, en de kans op fouten als gevolg van hergebruik zoals in § 3.3.5 is besproken. De belangrijkste factoren voor het succes bij beide organisaties met betrekking tot het systematisch hergebruiken van software artefacten worden hieronder opgesomd. Sodalia - Top Management Support. Hergebruik is opgelegd door het Top Management. - Aparte groep voor de productie en ondersteuning van herbruikbare artefacten. Deze groep ontvangt een sterke steun vanuit het (top) management. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 77 - - Eliop - - - - Standaardisatie met hergebruik. Een beperkt aantal duidelijk gedefinieerde productlijnen waarvoor applicatieframeworks met componenten zijn ontwikkeld. Domein engineering om zoveel mogelijk kansen voor hergebruik te benutten. Gestandaardiseerde processen met betrekking tot de productie, consumptie en beheer & ondersteuning. Standaardisatie van herbruikbare artefacten doormiddel van programmeerstandaarden en documentatie templates. Standaardisatie van processen door procedures en richtlijnen. De activiteiten voor hergebruiken zijn expliciet opgenomen in de normale procesbeschrijvingen. Training voor de software engineering in methoden en technieken van hergebruik. Belangrijk aangezien Eliop voor White Box hergebruik kiest. Aparte groep voor de geplande productie van de herbruikbare artefacten. Deze groep wordt gesteund door het Top Management en bevat de projectleiders zodat hergebruik in de projecten direct geborgd is. Domein engineering om zoveel mogelijk kansen voor hergebruik te benutten. Tevens om hergebruik binnen productfamilies mogelijk te maken. Top Management Support, onder de voorwaarde dat hergebruik zichzelf bewijst. Het registreren van kwantitatieve gegevens is hierbij een must. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 78 3.9 Conclusie Het systematisch hergebruiken van software artefacten kan een daling in de kosten en doorlooptijd veroorzaken en een betere kwaliteit van de ontwikkelde software realiseren. Dit is echter niet voor iedere organisatie weggelegd. Een beperkte potentie voor het systematisch hergebruiken, aanzienlijke aanloopkosten in combinatie met onzekere opbrengsten en weerstand vanuit de organisatie vormen een flinke drempel om voor hergebruik te kiezen. Indien een organisatie hergebruik van software systematisch wil gaan toepassen, zijn een aantal factoren van essentieel belang. Het aanpassen van de organisatie, het invoeren van nieuwe hergebruikspecifieke processen en het aanpassen van de bestaande processen is essentieel. Hiervoor is top management support onontbeerlijk. In een normaal softwareontwikkelproces worden de software artefacten voor eenmalig gebruik ontwikkeld en is het bestaan verbonden aan het bestaan van de applicatie waarvoor ze zijn ontwikkeld. Bij hergebruik leiden de herbruikbare artefacten echter een eigen bestaan, los van de applicaties waarin ze zijn hergebruikt. Daarom moet al bij het ontwikkelen van een herbruikbaar artefact rekening worden gehouden met toekomstige situaties waarin het artefact hergebruikt kan worden. Tevens ontstaan er een aantal projectoverschrijdende processen voor de herbruikbare software artefacten. - Configuratiemanagement & versiebeheer - Problem en Change management - Certificatie - Classificatie - Ondersteuning Om hergebruik te borgen is sturing over de projecten heen noodzakelijk. Dit betreft zowel de sturing op de ontwikkeling van herbruikbare artefacten als de sturing op het ontwikkelen met de herbruikbare artefacten. Al deze activiteiten moeten echter ook verrekend worden. Er zijn drie methoden beschikbaar om dit te doen, namelijk het verrekenen via overhead, het inhouden van een, vast of variabel, percentage van het budget en pay for use. Om inzicht te krijgen in de kosten, opbrengsten en mate van hergebruik is het essentieel om aspecten uit het softwareontwikkelproces betreffende hergebruik te registreren. Op die manier kan bepaald worden of hergebruik daadwerkelijk iets oplevert en kan het proces gestuurd worden. Bij de best practices bleek het projectoverschrijdende karakter van hergebruik te zijn opgevangen door een aparte groep, speciaal voor hergebruik. Deze groep was onder andere verantwoordelijk voor de sturing en coördinatie van hergebruik. Top management support bleek ook in bij de best practices een essentiële rol te spelen. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 79 4. Huidige Situatie bij TNO Dit hoofdstuk analyseert de huidige toepassing van hergebruik van software artefacten binnen de afdeling M&S van TNO-D&V. Als eerste wordt de gehanteerd aanpak toegelicht. Daarna wordt de huidige situatie geanalyseerd, onder andere via case studies. Dit hoofdstuk eindigt met een overzicht van de belangrijkste knelpunten die bestaan in de huidige toepassing van hergebruik van software artefacten binnen de afdeling M&S. 4.1 Aanpak Het doel van dit hoofdstuk is inzicht verkrijgen in de manier waarop hergebruik van software artefact is vormgegeven en de knelpunten die zich hierbij voordoen. Om dit te kunnen onderzoeken dient de huidige situatie geanalyseerd te worden. Dit hoofdstuk kan grofweg in twee delen gesplitst worden; - - Een algemene analyse van hergebruik van software artefacten binnen de afdeling M&S. Deze analyse resulteert in een beschrijving van hergebruik van software artefacten en de context waarin hergebruik plaatsvindt. Een diepgaande analyse van drie case studies waarbij wordt bekeken hoe hergebruik van software artefacten is vormgegeven en waar de knelpunten liggen. 4.1.1 Waarom deze aanpak Door eerst een algemeen beeld te schetsen en daarna de case studies te behandelen wordt er getracht een zo accuraat en representatief mogelijk beeld te vormen van de toepassing van hergebruik van software artefacten binnen M&S. Deze algemene beschrijving neemt aspecten mee die buiten de typering van de case studies vallen maar wel belangrijk zijn voor het totaalbeeld. 4.1.2 Informatieverzameling Voor de analyse van de huidige situatie is er gebruik gemaakt van interviews, documentatie en informele gesprekken. Bij de interviews is er rekening gehouden met de verschillende stakeholders. In Bijlage E zijn de interviewopzet en uitkomsten verwerkt. De stakeholder ‘klant’ is niet opgenomen in deze analyse. Software Engineers Management Hergebruik van software artefacten Project Leiders Klanten (extern) Figuur 18 - Stakeholders bij hergebruik van software artefacten Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 80 4.2 Algemene analyse Deze paragraaf analyseert de toepassing van hergebruik van software artefacten binnen de afdeling Modelling & Simulation. Hiervoor worden de algemene kenmerken van TNO-D&V beschreven die van belang zijn om het hergebruik van software artefacten in de juiste context te kunnen plaatsen. Tevens wordt de toepassing van hergebruik van software artefacten binnen M&S getypeerd doormiddel van het Reuse Maturity Framework uit Bijlage B. 4.2.1 Softwareontwikkeling en hergebruik binnen TNO-D&V TNO-D&V is een kennisorganisatie. Het is geen softwarehuis en zal dit in de nabije toekomst ook niet worden. Softwareontwikkeling binnen TNO-D&V kan beter gezien worden als een ondersteunende taak voor andere activiteiten. Zo bestaat er ook geen pakket van softwareproducten die kant-en-klaar aan klanten kunnen worden verkocht, uitzonderingen daargelaten. 4.2.2 Producten en kwaliteit De afdeling Modelling & Simulation ontwikkelt verschillende type softwareproducten. Deze softwareproducten kunnen zowel voor intern als extern gebruik zijn. Een voorbeeld is de situatie waarbij een externe klant met een kennisvraag komt waarvoor een onderzoeksmodel wordt ontwikkeld. De resultaten van de simulaties in het onderzoeksmodel worden aan de klant geleverd, de applicatie blijft binnen TNO-D&V. Bij operationele systemen kan het zo zijn dat de klant naar TNO komt om het te gebruiken of dat het systeem op locatie van de klant wordt gebruikt. Bij TNO-D&V worden er twee typen project onderscheiden, basis financieringsprojecten en additionele projecten. Basis financieringsprojecten worden gefinancieerd door de overheid en bieden TNO de kans om in overleg met een eventuele klant een bepaald onderzoek te doen. Deze projecten vormen circa 50 á 60% van het totale budget van TNO-D&V. Additionele projecten vormen een steeds belangrijkere bron van inkomsten voor TNO-D&V aangezien het budget voor de basis financieringsprojecten gestaag afneemt. Additionele projecten komen voort uit een klantvraag en zijn onderhevig aan concurrentie. In Tabel 18 staat een opsomming van de verschillende type systemen die binnen TNO-D&V worden ontwikkeld. Type systeem Klant Gewenste kwaliteit Bedrijfskritisch Operationeel Onderzoeksmodel Prototype Tools Intern/extern Intern/extern Intern Intern/extern Intern Extreem Hoog Goed Matig Gemiddeld Tabel 18 - Overzicht type systemen, klanten en benodigde kwaliteit [TNO03]. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 81 Voor de verschillende typen systemen die worden ontwikkeld, worden verschillende niveaus van gewenste kwaliteit gehanteerd. Enkele voorbeelden van software producten die worden of zijn ontwikkeld staan in Tabel 19. Naam Omschrijving J-Roads Simulatie model voor luchtverdedigingsystemen vanaf land en zee. Kan worden gebruikt als analyse tool, exercise en trainingstool en als testbed voor de ontwikkeling van software binnen J-Roads. Optimalisatietool voor 11de Lucht Mobiele Bridage (11LMB) om op bataljon niveau helicoptervluchten te plannen. Kibowi MP is een stafprocedure trainer die gebruikt kan worden om officieren op bataljon, brigade en divisie niveau te trainen in ‘train as u fight’ simulaties. Moses levert een framework voor de ontwikkeling van applicaties en modellen voor ‘underwater warfare’. Dit kan variëren van ‘AntiSubmarine Warfare’, ‘Mine Countermeasures’, ‘Torpedo Defence Systems’ tot onbemande onderwater voertuigen. Simulatie model voor ‘anti submarine warfare’. Othello Kibowi MP Moses Topics Tabel 19 - Voorbeelden van ontwikkelde software producten van TNO-D&V. 4.2.3 Organisatie en Reorganisatie Bij aanvang was deze opdracht vooral gericht op de divisie Operationele Research en Bedrijfsvoering waarbij de divisie Command Control en Simulatie betrokken zou worden. Per 1 januari 2005 is er echter een TNO-brede reorganisatie gestart waardoor de divisie Operationele Research en Bedrijfsvoering en de divisie Command Control en Simulatie zijn samengevoegd in één afdeling: Modelling & Simulation (M&S). Voor zover mogelijk wordt de gewijzigde situatie meegenomen in deze scriptie, bij factoren waar de nieuwe situatie niet duidelijk of bekend is wordt de oude situatie als uitgangspunt gehanteerd. Mananager Resource Mananager / Afdelingshoofd Technologietrekker Project A - Projectleider - Software Engineers Project B - Projectleider - Software Engineers Project C - Projectleider - Technisch projectleider - Software Engineers Figuur 19 - Algemene Projectstructuur binnen BU2. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 82 M&S bestaat uit 45 werknemers, dit zijn software engineers, projectleiders, software architecten en medewerkers die meer op een conceptueel of technologisch niveau met software ontwikkeling bezig zijn. Van deze 45 werknemers zijn er zo’n 25 fulltime (circa 1600 uren per werknemer per jaar) bezig met de daadwerkelijke ontwikkeling van software. Verder worden er circa 20 projecten per jaar gestart waarin een softwareproduct wordt ontwikkeld. De projecten bestaan uit een projectleider en een groep software engineers, zie Figuur 19. Bij grote projecten is er soms ook een technisch projectleider aanwezig is die de software engineering zaken behandeld zodat de projectleider zich kan richten op de management aspecten. De achtergrond van de software engineers verschilt, een deel heeft geen IT of software engineering achtergrond en heeft het programmeren zelf aangeleerd. Voor de reorganisatie bestond er voor de software engineers een technologiemanager. In hoofdlijnen was de rol van deze persoon om ervoor te zorgen dat de juiste technologieën in voldoende mate aanwezig waren binnen TNO-FEL. In de nieuwe organisatie is deze rol vervangen door een technologietrekker. Zowel de huidige technologietrekker als de oude technologiemanager zijn sterk voorstander van software hergebruik. Een andere rol die invloed heeft op hergebruik van software, is de resource manager. De resource manager is onder andere verantwoordelijk voor het samenstellen van de projectteams. De resource manager speelt een aanzienlijke rol in hergebruik omdat hij de mensen op basis van kennis in een project kan plaatsen. Dit bevordert hergebruik doordat de software engineers hierdoor eerder artefacten en kennis, die zijn gecreëerd in voorgaande projecten, hergebruiken. 4.2.4 Voormalig divisie ORB en divisie CCS De visie en cultuur binnen de voormalige divisies ORB en CCS zijn verschillend. Binnen voormalig divisie ORB ligt de nadruk sterk op de implementatiefase, het daadwerkelijke programmeren van de simulator. In voormalig divisie CCS is er meer aandacht voor het modelleren en specificeren, wat ook tot gevolg heeft dat het implementeren een stuk minder moeite kost. Dit lijkt ook invloed te hebben op de manier waarop hergebruik in beide voormalige divisies is vormgegeven. In voormalig divisie ORB is hergebruik nog sterk adhoc van karakter en gebaseerd op code hergebruik. Hier moet wel worden opgemerkt dat er een beweging bestaat richting het hergebruiken van componenten en generieke frameworks. Voormalig divisie CCS heeft al langere tijd ervaring met het koppelen van simulators, ook op componentniveau binnen de simulators. Door het hanteren van standaarden zoals HLA en DIS en de toepassing van technieken zoals Model Driven Architectures (MDA) is hergebruik binnen voormalig divisie 2 al langere tijd gericht op generieke architecturen en frameworks met herbruikbare componenten. In dat opzicht is de samenvoeging van voormalig divisie ORB en voormalig divisie CCS goed voor hergebruik aangezien de toepassing van hergebruik in divisie CCS kan dienen als een springplank voor voormalig divisie ORB. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 83 4.2.5 Hergebruik als thema binnen TNO Hergebruik speelt al geruime tijd binnen TNO-D&V. In 2003 is een groep van software engineers gevormd, de hergebruikgroep. De hergebruikgroep probeert draagvlak te creëeren bij de software engineers en concrete invullingen en oplossingen te geven betreffende hergebruik van software artefacten. Figuur 20 geeft een globaal overzicht van de activiteiten die betrekking hebben op hergebruik van software artefacten binnen TNO-FEL. Hergebruik zichtbaarder Stagiair Tim Hartog Source Forge voor hergebruik 1ste Stagiair Source Forge Workshops SE’rs Hergebruikgroep 2003 2004 2005 Tijd Figuur 20 - Overzicht hergebruik-activiteiten binnen voormalig divisie ORB. Het oorspronkelijke doel vanuit TNO-FEL voor deze afstudeeropdracht was drieledig. - Het creëeren van draagvlak onder de software engineers. - Het dienen als catalysator voor hergebruik van software artefacten binnen TNO-FEL. - Het bieden van oplossingen voor problemen die zich voordoen bij hergebruik van software artefacten. Al snel bleek echter dat het draagvlak onder de software engineers niet de beperkende factor zou zijn, maar dat vooral procesmatige en organisatorische aspecten de drempels vormden en problemen veroorzaakten. Deze aspecten vormen een belangrijk deel van deze scriptie aangezien er qua processen en organisatie bijna geen concrete invulling is gegeven aan hergebruik van software artefacten. Herbruikbare Artefacten Verschillende typen software artefacten worden hergebruikt binnen TNO-D&V. Hoofdzakelijk algemene software artefacten (componenten en code) en soms domein specifieke software artefacten. In enkele gevallen is er ook sprak van hergebruik van applicatie frameworks, dit komt in de case studies ook terug. Tabel 20 toont de lijst van de herbruikbare componenten en frameworks binnen BU2. Hierbij is, indien bekend, ook een indicatie gegeven van de tijd die erin is geinvesteerd. Deze indicaties zijn afkomstig van de ontwikkelaars zelf. Herbruikbaar Bron Artefact Functionaliteit Ontwikkeluren Database Store + Kibowi Manager IDM Component voor storages & retrieval van data uit de databases. 750 uur Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 84 Statemachine Kibowi CSE (Computer Simulation Environment) Monitor Kibowi Kibowi TNO Mailserver Kibowi IDM ORB kernel Searoads TBM Kibowi ORBAT Browser EBF ASF (Advanced Simulation Framework) PLF (Platform Framework) EBF Stealth EBF Visual EBF VR-Link EBF EBF Doelmodellen EBF Terreindatabases EBF EBF SimCore EBF TSA (TNO Simulation Architecture) EBF 150 uur Component waarmee met name synchronisatie van werkzaamheden kan worden beheerd. De gebruiker kan state machines bouwen door zelf de states, signals en state transitions op te geven. Aan de states en aan de transities kunnen vervolgens events worden gehangen. Een framework voor simulatiemodellen. Vormt een schil over de 400 uur diverse herbruikbare Kibowi MP componenten (generieke GUI, generieke applicatie, database manager etc.). Generiek component waarmee informatie van deelsystemen kan worden opgevraagd en in een aparte module overzichtelijk kan worden weergegeven. Met name handig om systemen ook run-time te kunnen volgen. Component waarmee applicaties in een netwerk onderling (op inhoudelijk niveau) kunnen communiceren. Het pakket maakt het mogelijk kanalen te definiëren waarop kan worden uitgezonden en geluisterd. Applicaties melden zich door middel van RMI aan. Het pakket schermt met name netwerkprotocollen en unicast, multicast of broadcast zaken voor de gebruiker af. Simulatiekernel voor zowel event driven als real time simulaties. De ORB kernel verzorgt in het bijzonder de juiste scheduling van activiteiten en het beheer van de tijd. Tool die kan worden gebruikt om terreinen te ontwikkelen of importeren uit bestanden. Dit component creëert een overzicht van alle eenheden binnen een gevecht op verschillende niveaus (bataljon, brigade, tot aan individuele eenheden) en geeft hierbij ook de status van de eenheden aan (actief/uitgeschakeld). Het ASF vormt de basislaag van EBF applicaties. Het verzorgt de communicatie tussen de verschillende applicaties. Deze release ondersteunt de DIS 2.0.4 draft standard en een subset van de HLA RPR-FOM 0.1.7. Het PLF is een framework bovenop het ASF. Het bevat een aantal herbruikbare componenten: Environment (generieke simulatie omgeving) PLF Audio (De Audio server verzorgt de weergave van platform- en omgevingsgeluiden binnen de EBF simulators) PLF Generic (Deze library bevat generieke subsystemen die gebruikt kunnen worden binnen PLF.) PLF Utilities (Algemene utility software classes/functions gebruikt in diverse EBF software componenten) Component die het mogelijk maakt om vanuit verschillende viewpoints in een synthetische omgeving mee te kijken. 3D module voor de visualisering van de omgeving (oppervlak, hoogte, sculpturen) en entiteiten in deze omgeving. Toolkit inclusief 3D Stealth, Packet Server en Datalogger. Deze toolkit biedt ondersteuning voor de ontwikkeling van DIS 2.0.4 compliant applications. Real-Time geometrische modellen Er zijn een aantal terreindatabases beschikbaar Biedt een verzameling van software componenten voor de ondersteuning van rapid prototyping en hergebruik van software voor het bouwen van bemande simulators, computer generated forces, scenario management etc. SimCore omvat drie grote componenten: Platform Framework (PLF-ASF & PLF-RCI), Distributed Simulation Standards (DIS, HLA), Support Modules (visueel, audio, process management/real-time scheduling, intertool communication, etc.) Een op HLA gebaseerde simulatie architectuur op component niveau. Het TSA framework is een implementatie van het TSA concept en bestaat uit: 1. TSA Infrastructuur, 200 uur 400 uur 500 uur 1200 á 1400 uur Onbekend Onbekend Onbekend Onbekend Onbekend Onbekend Onbekend Onbekend Onbekend Onbekend Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 85 2. TSA Support tools. De TSA Infrastructuur bestaat uit: TSA-RCI, middlewarelaag. TSA-FMC, representeert een specifieke set componenten als een Federate. De TSA Support tools bestaan uit: TNO-RTI, TSA Gateway Di Guy COST STK COTS LuciadMap Visual OMT ITEMS COTS COTS COTS CASLOGGER COTS Ontwikkelomgeving voor het visualiseren van infanterie. http://www.bdi.com/content/sec.php?section=diguy Commercieel pakket voor 3D visualisatie voor bijvoorbeeld satellietof raketbanen. http://www.agi.com/products/desktopApp/stkFamily/ Geografisch Informatie Systeem (2D) (library) Visual editor voor het maken van HLA Object Model Templates Tool voor het generen Computer Generated Forces in een taktische omgeving. ITEMS biedt tevens de mogelijkheid om via DIS met andere simulatiefaciliteiten te interacteren. After Action Module. Slaat enkele de informatie die over het DISnetwerk wordt verstuurd op zodat het later met een andere applicatie teruggespeeld kan worden. N.V.T. N.V.T. N.V.T. N.V.T. N.V.T. N.V.T. Tabel 20 - Beschikbare (grotere) herbruikbare artefacten binnen BU2. De herbruikbare artefacten in Tabel 20 zijn de grotere componenten en frameworks waar vele uren in zijn gestoken om ze te ontwikkelen. Indien deze worden hergebruik levert dit ook een flinke besparing ten opzichte van het ontwikkelen vanuit niets. Naast deze herbruikbare artefacten wordt er ook nog veel op adhoc basis hergebruikt. Hergebruik is daarbij sterk gericht op code hergebruik. De software artefacten, die hergebruikt worden, zijn niet altijd specifiek voor hergebruik ontworpen. De geïnterviewde software engineers geven wel aan dat de ontwikkelde software veelal zo generiek mogelijk opgezet wordt. In het geval van hergebruik worden de bestaande software artefacten zowel als black box en als white box hergebruikt. Hergebruik is veelal nog onzichtbaar; software engineers gebruiken stukken code of componenten die zijn ontwikkeld in andere projecten. Deze componenten en stukken code komen uit verschillende bronnen. - ‘Voorraad’ zelf ontwikkelde code. - Software artefacten uit projecten waaraan de software engineer deelgenomen heeft. - Code van collega’s. - Internetbronnen (commercieel en open source.) De documentatie bij de herbruikbare artefacten varieert sterk. Vaak is de documentatie zeer beperkt of niet aanwezig. Dit hangt vooral samen met de bron van het artefact en het type artefact. Commerciële componenten zijn goed voorzien van informatie en bevatten gebruikershandleidingen waarmee de ontwikkelaars voldoende uit de voeten kunnen. Java libraries of Javabeans zijn bijvoorbeeld voorzien van javadoc waardoor de software engineers snel een goed inzicht kunnen krijgen in de beschikbare interfaces. Van de herbruikbare artefacten die binnen M&S zijn ontwikkeld is de mate van documentatie ook variabel. Voor sommige componenten die veel hergebruikt worden zoals de ORB Kernel is er goede ontwerpdocumentatie beschikbaar en is er een gebruikershandleiding geschreven. Hier was echt budget voor beschikbaar. Bij stukken code die door software Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 86 engineers zelf is geschreven of uit projecten is gehaald is de documentatie vaak niet aanwezig. Zoals gezegd worden de software artefacten zowel black box als white box hergebruikt. Aangezien hergebruik veel adhoc gebeurt en op code is gericht, vindt overwegend white box hergebruik plaats. Commerciële pakketten, bijvoorbeeld het geografisch informatie systeem LuciadMap, worden hoofdzakelijk als black box gebruikt. Deze producten bieden vaak nog wel de mogelijkheid om aangepast te worden (parameterisatie). De Hergebruik Groep heeft een aantal voorwaarden opgesteld waaraan een herbruikbaar component dient te voldoen. - De broncode van een component mag maar op één plaats in SourceForge worden beheerd. - De meerwaarde van het component moet project overschrijdend zijn. - De naam van het component moet onder andere aangeven in welke taal het is ontwikkeld (Java, Delphi, C++). - Het bijvoegen van projectgerelateerde files ( InstallatieScript, voorbeeld applicatie, Project ontwikkelfiles ) is verplicht. - Indien enkele van de aan het component gerelateerde files al onder SourceForge staan, dan moet hiernaar gerefereerd worden. Een herbruikbaar component wordt door de hergebruikgroep als volgt gedefinieerd: “Een reuseable component is een, binnen TNO-FEL openbaar verkrijgbaar, stuk herbruikbare code, dat onderdeel uitmaakt van minstens één binnen TNO-FEL ontwikkelde applicatie. Een component wordt wel onderhouden binnen TNO-FEL. Een reuseable component is ongerubriceerd. Kleine reusable componenten of delen ervan die erg klein zijn kunnen worden toegevoegd aan een Componenten Library.” Er wordt hierbij ook een onderscheid gemaakt met herbruikbare tools, die zijn als volgd gedefinieerd: “Een reuseable tool is een, openbaar verkrijgbare, applicatie ( of methode beschrijving ) die geen onderdeel uitmaakt van de te ontwikkelen applicatie, maar wel bijdraagt aan het versnellen van het ontwikkelproces of aan de uitbreiding van de functionaliteit van de te ontwikkelen executable. Een tool wordt niet onderhouden binnen TNO-FEL. Een reuseable tool is ongerubriceerd.” Aan een herbruikbare tool worden de volgende eisen gesteld: - bestaat uit een package met daarin een readme.txt en een zipfile met daarin de her te gebruiken tool. In de readme.txt dient de volgende informatie opgenomen te worden: - naam van het product, - categorie. Hier is nog geen verdere aandacht aan besteedt aangezien SourceForge dit voorlopig nog niet ondersteund. Voorbeelden van Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 87 - categorieen zijn Network, GUI, Kernel, SE Fundamentals, special functionality, keywords, beschrijving, aanspreekpunt (intern/extern), gebruiksaanwijzingen, installatieprocedure, indien van toepassing: Gerelateerde links & FAQ. JAVA is formeel de standaard programmeertaal. Nieuwe projecten dienen in deze taal te werken. Hier wordt echter pragmatisch mee omgegaan. Nieuwe projecten die zijn gebaseerd op oude projecten waarbij bijvoorbeeld in delphi, C of C++ is ontwikkeld worden waarschijnlijk weer in die programmeertaal uitgevoerd vanwege de grote hoeveelheid reeds aanwezig code. De projectleiders hebben ook de vrijheid om die keuze te maken. De manier waarop hergebruik van software artefacten binnen TNO-D&V is vormgegeven, wordt vanuit de procesinvalshoek en de organisatie invalshoek bekeken. Procesinvalshoek Hieronder worden de productie (design for reuse), consumptie (design with reuse) en ondersteunende processen met betrekking tot herbruikbare software artefacten besproken. Tevens wordt het managen van deze processen besproken. Productie Zoals in Figuur 21 is te zien, zijn er twee momenten waarop de herbruikbare artefacten worden geproduceerd. Dit gebeurt zowel in het project waarin het originele component is ontwikkeld als in andere projecten waar het component uit project A in project B wordt ge-reëngineerd. Het komt ook voor dat een component uit project A wordt aangepast in project B, waarbij later voor project C het component uit project B weer wordt aangepast. Dit gebeurt vooral met kleine componenten en stukken code. Vaak is dit onzichtbaar omdat het op initiatief van software engineers plaatsvindt. Hierbij moeten ze voor project B iets ontwikkelen waarbij ze code die ze in project A hebben ontwikkeld kunnen hergebruiken. Project - A Ontwikkelen code/componenten Project - B Re-engineren beschikbaar component t.b.v. herbruikbaarheid Re-engineren code/component uit ander project t.b.v. herbruikbaarheid en toepasbaarheid in project B Herbruikbaar Artefact Herbruikbaar Artefact Tijdslijn Figuur 21 - Productie van herbruikbare artefacten binnen BU2 van TNO-D&V. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 88 In enkele gevallen komt het voor dat grotere herbruikbare componenten worden ontwikkeld. Voorbeelden hiervan zijn de ORB kernel, die hoofdzakelijk binnen Searoads is ontwikkeld of de databasestore & manager en mailserver die binnen Kibowi zijn ontwikkeld. Dit wordt in de case studies verder besproken. Er is geen duidelijk proces of strategische keuze voor de productie van herbruikbare artefacten. Er is ook geen standaard of informatie voorhande over hoe iets herbruikbaar gemaakt dient te worden. Dit gebeurt nu allemaal naar eigen inzicht en is dus gebaseerd op toeval. Dit is niet direct een showstopper, maar het kan wel leiden tot dubbele herbruikbare artefacten, slechte ‘herbruikbare’ artefacten, onnodige investeringen en het missen van goede mogelijkheden voor hergebruik. Consumptie Het hergebruiken van software artefacten vindt veelal adhoc plaats. Een deel van de software engineers bekijkt, voordat ze beginnen met programmeren, wel of er al iets naar hun wensen ontwikkeld is. Het bestaan van veel (herbruikbare) software artefacten is echter nog relatief onbekend, mede doordat nog lang niet alles is opgeslagen in een centrale repository. Hergebruik komt dus laat het softwareontwikkelproces in en het vinden van een herbruikbare artefacten is afhankelijk van het sociale netwerk van de software engineers. De geinterviewde software engineers geven aan dat de keuze om iets te hergebruiken op verschillende factoren gebaseerd: - aanwezigheid broncode, - aangeboden functionaliteit, - mate van ontwikkeling van het artefact (status, aantal bugs die verholpen zijn, nog open staan en hoelang staan deze bugs al open staan), - voorbeeld van gebruik, - platvorm waarvoor het is ontwikkeld, - ondersteuning en onderhoud van het artefact, - het moet los te gebruiken zijn, plug & play. Verder lijkt de overtuigingskracht van andere software engineers ook een sterke invloed te hebben op de keuze om iets te hergebruiken. Er is geen standaard beschikbaar op basis waarvan de software engineers kunnen besluiten iets te hergebruiken en het gebeurt zelden dat er een kosten/baten analyse wordt gemaakt. Indien er een geschikt herbruikbaar artefact wordt gevonden, is de manier waarop het wordt hergebruikt sterk afhankelijk van de bron van het herbruikbare artefact. Code van collega’s of uit andere projecten wordt vaak als white box behandeld. Bij andere herbruikbare artefacten zoals de ORB Kernel of artefacten uit externe bronnen is de documentatie over het algemeen goed in orde en is hergebruik deels om die reden mogelijk. Het komt ook voor dat er een wrapper voor het herbruikbare artefact wordt ontwikkeld of dat het middels parameterisatie her te gebruiken is. Projectleiders hebben er bij uitstek baat bij dat er in hun project gebruik wordt gemaakt van herbruikbare artefacten indien dit de kwaliteit of functionaliteit van het software product niet schaadt. Om diverse redenen (zowel van projectleiders als software engineers) wordt hier echter van afgezien. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 89 - Geen ondersteuning bij het herbruikbare artefacten. Bestaan van het herbruikbare artefact is onbekend. Gebrek aan vertrouwen in kwaliteit. Het is immers niet zelf ontwikkeld. Geen of matige documentatie (minder noodzakelijk indien er ondersteuning beschikbaar is). Het levert een beperking op omdat het anders werkt dan men zelf zou willen. “Met hergebruik voldoet de applicatie niet 100% aan de wensen van de klant.” Ondersteuning en beheer De manier waarop er invulling is gegeven aan ondersteuning en beheer bij de beschikbare herbruikbare artefacten verschilt. Sommige grote componenten zoals de ORB Kernel of de MOSES-kernel (c++ tegenhanger van de ORB Kernel) hebben voor een periode een budget toegewezen gekregen. Hierdoor is het mogelijk het component onafhankelijk van projecten te blijven onderhouden en beheren. Vaak is dit budget echter niet aanwezig en is de ontwikkeling afhankelijk van de beschikbare tijd binnen projecten waarin het ontwikkeld en hergebruikt wordt. Indien een project ophoudt, verdwijnt vaak ook de ondersteuning en het beheer van het herbruikbare artefact. Wat wel voorkomt is dat een project de ontwikkelaar van een herbruikbaar artefact ‘inhuurt’, indien deze daartoe bereid is en tijd beschikbaar heeft. Op deze manier is er toch ondersteuning bij de herbruikbare software artefacten. Bij deze twee voorbeelden, de ORB Kernel en de MOSES-kernel, is er ook een verschil te zien in het beheer. De ORB Kernel wordt door één persoon beheerd die tevens verantwoordelijk is voor de ontwikkeling van het artefact. Voor MOSES is enige uitleg nodig. Het MOSES framework bestaat uit een simulatie kernel en een repository met daarin verschillende objecten die bij de simulaties gebruikt kunnen worden. Het kan worden gezien als een gezamenlijk omgeving waarin meerdere simulatiemodellen ontwikkeld worden. Er is echter geen beheer, van de objecten in deze repository, aanwezig. Het is dan ook geen uitzondering dat er voor project X in object A iets wordt gewijzigd waardoor er bij project Y problemen optreden. Veel hergebruik is beperkt tot broncode niveau, afkomstig van eigen werk of collega’s. In deze adhoc vorm van hergebruik is er geen configuratie management, centraal beheer, distributie en onderhoud geregeld. Dit is allemaal afhankelijk van de inzet van individuele software engineers. Management Op management niveau is weinig over hergebruik nagedacht. Top Management support is vooralsnog dan ook niet aanwezig. Een meer systematische vorm van hergebruik is gestart vanuit een groep software engineers. In het begin stonden veel software engineers hier zeer kritisch tegenover maar tegenwoordig lijkt een groot deel van de software engineers hier toch positiever tegenover te staan. Wat nog ontbreekt is het Top Management support. Sturing Qua sturing en coördinatie is er voor de productie en consumptie van herbruikbare artefacten nagenoeg niets geregeld. Er is geen sturing over de projecten heen Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 90 betreffende de productie van herbruikbare artefacten. Ook binnen de projecten is de sturing over het algemeen zeer beperkt. De software engineer maakt vaak zelf de keuze, de projectleider is hier niet bij betrokken. Een projectleider heeft er zelf ook geen baat bij dat binnen zijn project iets herbruikbaar wordt gemaakt, het kost hem immers alleen maar tijd en budget. Qua consumptie geldt hetzelfde, het is de software engineers en projectleiders volledig vrij om hierin een keuze te maken. Dit wordt ook veroorzaakt doordat niet alle projectleiders voldoende kennis hebben van software engineering en omdat hergebruik niet bij alle projectleiders niet bekend is. De voormalig technologiemanager heeft een grote rol in het creëren van draagvlak voor het hergebruiken van software artefacten en probeert de software projecten hier zoveel mogelijk bij te betrekken. Zijn betrokkenheid is echter beperkt aangezien hij niet de tijd en middelen heeft om bij elk project betrokken te zijn. De huidige technologietrekker is ook sterk voorstander van hergebruik. Tevens heeft hij een grotere invloed op de projecten. In deze positie kan hij de rol van champion voor hergebruik vervullen. Procedures & standaarden Om projecten te begeleiden bij de invulling van het softwareontwikkelproces en het produceren van de ondersteunende documentatie is het IT/QA forum opgericht. Het IT/QA vervult puur een faciliterende functie. De doelen van het IT/QA zijn: - het bieden van standaarden en templates voor de software ontwikkeling, het uitbreiden en onderhouden van deze standaarden en templates, Ondersteuning en advies bieden bij het toepassen van deze standaarden en templates. Het ITQA heeft verschillende procedurele standaarden gedefinieerd voor het software engineering proces. Voor hergebruik omvat dit onder andere procedurele standaarden voor Configuratie Management, Problem en Change Management en verschillende testprocedures. Verder heeft het ITQA standaarden gedefinieerd voor wat betreft een aantal talen waarin geprogrammeerd wordt, hiervoor zijn handleidingen beschikbaar voor het programmeren in ADA, C en C++ (gebaseerd op de Ellemtel C++ standaard) en voor het programmeren in Java wordt er verwezen naar de Java Sun code conventies. In Bijlage F zijn alle procedures te vinden die door het ITQA zijn opgesteld, ook wel Codes of Practice genoemd. Het werken volgens deze Codes of Practice is niet verplicht maar dient als een hulpmiddel voor de projectleiders en software engineers. De projecten worden echter wel via audits gecontroleerd op de gehanteerde werkwijze en de aanwezigheid van de verschillende producten uit het software engineerg proces. De auditeurs hebben echter geen software engineer achtergrond en kunnen derhalve alleen naar de aanwezigheid van bepaalde documenten en processen kijken. Van standaardisatie van de software producten die ontwikkeld worden is er momenteel nog geen sprake. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 91 Organisatie invalshoek Op organisatie niveau is praktisch nog niets geregeld voor hergebruik. Er zijn geen formele afspraken gemaakt over verantwoordelijkheden voor ondersteuning, onderhoud, verrekening en eigendom van de herbruikbare artefacten. De invulling van deze aspecten gebeurt veelal adhoc zonder enige standaardisatie tussen de projecten. Er zijn hier wel enkele uitzonderingen op, dit is ook te zien zijn bij de case studies. Hergebruik is opgestart door de software engineers en de voormalig technologiemanager. Het geheel is momenteel puur een aangelegenheid van de software engineers. Het management is er nog niet bij betrokken. De voormalig technologiemanager formuleert dit als volgt: “je moet het gras van onderaf laten groeien”. Indien er voldoende support bestaat onder de software engineers en hergebruik ook een positieve invloed heeft op de resultaten, zal het Top Management daar ook eerder in meegaan. Financiering van de productie is momenteel niet geregeld. Het komt hoofdzakelijke vanuit de budgetten van de projecten waarin de herbruikbare artefacten worden ontwikkeld. Dit creëert een drempel aangezien projectleiders worden afgerekend op onder andere de financiële resultaten van hun project. De ondersteuning voor hergebruikers is gebaseerd op directe verrekening. De beheerder van het herbruikbare artefact wordt voor een korte tijd ingehuurd door het project waarin het artefact wordt hergebruikt. Op deze manier wordt ook vaak in het onderhoud van de herbruikbare artefacten voorzien. TNO-FEL heeft halverwege 2003 de tool SourceForge 10 aangeschaft. Vanuit de divisie Command Control en Simulatie en de hergebruikgroep van de divisie Operation Research hergebruikgroep is hiertoe besloten. De tool is aangeschaft om twee redenen. 1. Uniforme wijze voor projectmanagement. 2. Repository voor hergebruik van software artefacten. SourceForge is een centrale opslagplaats waarin de projecten, maar ook de herbruikbare software artefacten, beheerd kunnen worden. Het biedt functionaliteit voor versiebeheer, configuratiemanagement, bugtracking, het toewijzen van taken en voeren van discussies. Momenteel zijn er enkele herbruikbare software artefacten opgenomen in SourceForge. Sommige herbruikbare artefacten zijn hierin publiekelijk toegankelijk voor potentiële hergebruikers, andere zijn afgeschermd zodat er eerst toegang tot het artefact moet worden aangevraagd. SourceForge wordt ook gebruikt voor normale (software) projecten die niets met hergebruik te maken hebben. Aangezien er nog geen classificatie beschikbaar is in SourceForge, kan het lastig zijn een specifiek artefact te vinden. De herbruikbare artefacten worden namelijk op dezelfde manier als een normale software projecten 10 Dit betreft de ‘Enterprise Edition’. Zie http://www.vasoftware.com/sourceforge/ Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 92 opgenomen in SourceForge en met ruim 120 projecten in SourceForge kan een herbruikbare artefact lastig te vinden zijn. Hergebruik binnen TNO-FEL volgens het RMF In § 3.4.5 is het Reuse Maturity Framework van Koltun en Hudson geïntroduceerd. In Tabel 32 in Bijlage B is dit Reuse Maturity Framework opgenomen. Aan de hand van dit framework kan het niveau van hergebruik binnen M&S getypeerd worden. In deze Tabel 32 geven de groen gearceerde hokjes het niveau van TNOFEL op de betreffende aspecten aan, dit wordt in Tabel 21 toegelicht. Hergebruik binnen BU2 is volgens dit raamwerk te typeren als initieel/chaotisch. Dimension of maturity Situatie binnen BU2 TNO-D&V Motivation & Culture Het hergebruiken van software artefacten is met een opwaardse mars bezig binnen TNO-D&V. Waar de software engineers er 1 á 2 jaar geleden nog zeer kritisch of negatief tegenover stonden is er nu een breder draagvlak ontstaan. Een belangrijke rol hierin speelt de voormalig technologietrekker die zelf zeer positief tegenover hergebruik staat en andere mensen hier ook in probeert te betrekken. Vanuit het management is er nog geen mening uitdragen over hergebruik. Het rekening houden met mogelijkheden voor hergebruik komt beperkt voor. Het is vooral afhankelijk van de samenstelling van een projectteam of er rekening wordt gehouden met hergebruik. Hergebruik is momenteel nog een aangelegenheid van de (veelal individuele) software engineers. Er is een hergebruikgroep opgericht, bestaande uit software engineers, maar deze heeft geen zeggenschap of authoriteit om hergebruik te bevorderen. Momenteel ligt de verantwoordelijkheid voor hergebruik puur bij de software engineer. Het is ook vaak de keuze van een individuele software engineer of een projectteam om een herbruikbaar artefact te hergebruiken. Omdat er nog geen formele procedures zijn opgesteld voor hergebruik, is het onduidelijk waar hergebruik in de huidige situatie het software engineering proces binnenkomt. In enkele gevallen is dit reeds vroeg in het proces, tijdens de ontwerpfase en requirementsfase, vaak gebeurt dit echter pas wanneer men begint met het implementeren. SourceForge biedt momenteel nog geen classificatiemogelijkheden. De projecten voor herbruikbare artefacten staan dan ook tussen de reguliere softwareprojecten. Er is geen structuur aanwezig. Niet aanwezig. Planning for reuse Breadth of reuse involvement Responsibility for making reuse happen Process by which reuse is leveraged Reuse inventory Classification activity Technology support Metrics Legal, contractual, accounting consideration Er is een centrale repository (SourceForge) beschikbaar. Tevens zijn er tools beschikbaar voor ConfiguratieManagement en VersieBeheer (CVS, smartCVS). Deze tools zijn niet specifiek voor hergebruik. Niet aanwezig. Momenteel is dit nog een beperkende factor in de toepassing van hergebruik binnen BU2. Er is geen verrekening voor de productiekosten van de herbruikbare artefacten en gerubriceerde artefacten mogen/kunnen niet hergebruikt worden vanwege de rubricering. Bij software die aan klanten wordt verkocht, wordt zoveel mogelijk geprobeerd de rechten van eigendom van die software binnen TNO te houden. Tabel 21 - Hergebruik binnen BU2 volgens het Reuse Maturity Framework. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 93 4.3 Case studies Deze paragraaf analyseert de drie case studies die zijn uitgekozen op basis van verschillen in de scope van hergebruik en verschillen in het niveau van hergebruik. Bij elk van de drie case studies is hergebruik echter wel duidelijk zichtbaar. De drie case studies worden eerst per stuk besproken en daarna gezamenlijk geanalyseerd aan de hand van het theoretische raamwerk uit § 3.7. Tevens zal er een indicatie worden gegeven van het resultaat van hergebruik binnen de drie case studies. 4.3.1 ORB Kernel De ORB Kernel is een java simulatie kernel die bedoelt is voor object georiënteerde, event driven simulaties. Deze kernel is gebaseerd op kennis die is opgedaan bij de ontwikkeling van soortgelijke kernels in de talen C++ en delphi (respectievelijk de MOSES en SURPASS-kernel). De ORB Kernel is destijds ontwikkeld voor het project Searoads11, een simulatie model voor maritieme luchtverdediging. Later is deze kernel losgekoppeld van dit specifieke simulatiemodel en verder ontwikkeld als losstaande simulatiekernel. Tegenwoordig vormt het de basis voor veel nieuwe simulatie-modellen die ontwikkeld worden. Deze case is uitgekozen vanwege een aantal redenen. Ten eerste is het een voorbeeld waarbij het beheer van het software artefact op een informele manier goed geregeld lijkt te zijn. Tevens is de ORB Kernel een bekend begrip bij de meeste software engineers en wordt het ook daadwerkelijk regelmatig hergebruikt. Het artefact Een simulatiekernel is slechts een onderdeel van een groter geheel. Typisch ziet de architectuur van een simulatie-model er zoals in Figuur 22 uit [WIT02]. GUI External Observers Output File Kernel RunController Parser Input File Model Figuur 22 - Typische architectuur van een simulatie-model [WIT02]. GUI RunController Parser Kernel Model Externe Observers Verzorgt de interactie met de gebruikers. Stuurt één of meerdere simulatie-runs aan Leest de simulatie-file in. Stuurt de simulatie aan (dit is het hart van de simulatie). Bevat de simulatie-objecten. Visualisatie en verzamelen uitvoer. 11 Voor meer informatie over Searoads zie: http://www.tno.nl/defensie_en_veiligheid /militair_optreden/operational_analysis/ searoads_simulation,_eval/ Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 94 De simulatiekernel zorgt voor het voortschrijden van de tijd in een simulatie en voor het op een juiste manier verwerken en afhandelen van events die door de simulatie-objecten worden gegenereerd. Het voortschrijden van de tijd in de kernel wordt bepaald door de tijd waarop het volgende event wordt uitgevoerd. Hierbij kan er gekozen worden dit real-time (theKernel.setMode(“real time”)) danwel ‘As fast as possible’ (theKernel.setMode(“as fast as possible”)) te doen [DON05]. Bij de real-time modus bestaan er ook methoden om dit x keer realtime te doen. Bijvoorbeeld 2x realtime, dus 2 maal de werkelijke snelheid. Verder is de ORB Kernel HLA12 compliant (voor de interoperabiliteit), biedt het mogelijkheden voor de visualisatie van de simulatie en biedt het mogelijkheden om de kernel te koppelen aan source code in andere talen (delphi, C++). De ORB Kernel biedt dus essentiele functionaliteit voor een simulator waarbij het tevens verschillende mogelijkheden biedt voor de hergebruiker. De ORB Kernel is voorzien van javadoc voor de interface beschrijvingen, ontwerpdocumentatie en een programmeurshandleiding waarin wordt toegelicht hoe de kernel te gebruiken is [DON05]. In deze programmeurshandleiding wordt tevens een voorbeeld van het gebruik van de kernel uitgewerkt. In SourceForge is de ORB Kernel publiekelijk, binnen TNO-D&V, beschikbaar gesteld. Hierbij kunnen hergebruikers de ORB Kernel als een package (in een .jar file) downloaden, de source is echter ook beschikbaar en kan zo gedownload worden. Over het algemeen wordt de ORB Kernel als black box hergebruikt. De ORB Kernel is geschreven volgens de java code convention. Gezien de goede documentatie en beschrijving van de interfaces is de ORB Kernel goed als black box her te gebruiken. Bij de ORB Kernel is er tevens een scenario parser beschikbaar die een scenario naar het juiste formaat kan transformeren. Procesinvalshoek Productie De ORB Kernel is initieel ontwikkeld voor het Searoads project. In het begin zat de kernel ingebakken in de simulatie. Toen vanuit een ander project (Gunmodel) de wens werd geuit om de kernel te hergebruiken, is deze uit het Searoads model gehaald en als losstaande kernel verder ontwikkeld. Consumptie De ORB Kernel is een welbekende kernel binnen BU2. In een flink aantal projecten (is en) wordt de kernel hergebruikt. Het gebruik van de kernel wordt niet opgelegd, maar de (informeel) verantwoordelijke speelt wel een sterk faciliterende en informerende rol. Indien er nieuwe projecten starten waarin de kernel gebruikt 12 HLA staat voor High Level Architecture en is binnen de Modelling en Simulation gemeenschap een veelgebruikte standaard. HLA is een herbruikbare software architectuur voor de ontwikkeling en executie van gedistribueerde simulatie objecten en applicaties [TUR99]. IEEE 1516 beschrijft de HLA standaard. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 95 zou kunnen worden, gaat hij langs om dit te bespreken. De keuze om de kernel daadwerkelijk her te gebruiken ligt bij de projecten. Ondersteuning & beheer De (informeel) verantwoordelijke voor de ORB Kernel verzorgt ook de ondersteuning aan de hergebruikers. Inmiddels zijn er meerdere mensen die met deze ORB Kernel kunnen werken, deze worden vaak ook opgenomen in de projecten waar de kernel gebruikt gaat worden. Dit is ook belangrijk, ervaring in het gebruik van de ORB Kernel is een katalysator voor zowel het hergebruik als de benodigde tijd om het her te gebruiken. Er is geen formele vorm van beheer op de ORB Kernel. De huidige versie van de ORB Kernel is stabiel en eventuele onderhoud gebeurt binnen projecten die gebruik maken van de ORB Kernel of binnen Searoads. Organisatie invalshoek Formeel is er niets geregeld voor de ORB Kernel. Informeel is er wel iemand die zich hier voor beschikbaar stelt. Deze persoon verzorgt het beheer en de ondersteuning voor de ORB Kernel. Tevens is hij degene die andere projecten stimuleert de ORB Kernel te hergebruiken. Dit is dus allemaal volledig informeel georganiseerd en sterk verbonden aan de inzet van één (of een beperkt aantal) individu(en). Deze organisatie structuur voor het beheer en de ondersteuning lijkt sterk op het ‘lone producer’ model zoals staat beschreven in § 3.5.3, maar dan op een informele manier. Qua verrekening is er niets formeel geregeld. In de praktijk is de productie van de ORB Kernel deels bekostigd vanuit een vast budget (budget voor verkennend onderzoek) en deels vanuit het project Searoads. Het gebruik van de ORB Kernel door andere projecten is gratis. Beheer en ondersteuningsactiviteiten worden over het algemeen geschreven op de projecten waarvoor de werkzaamheden worden uitgevoerd. KIBOWI Multi Platform (PM) Kibowi MP is een stafproceduretrainer. Het doel van Kibowi MP is primair het trainen van officieren op bataljon, brigade en divisie niveau in zogenoemde ‘train as you fight’ simulaties. Kibowi heeft een lange geschiedenis. Al begin jaren 1990 werd er gebruik gemaakt van een demo versie van het systeem, destijds geschreven in ADA. Door de loop der jaren is het systeem uitgebreidt en verder ontwikkeld. Op 31 januari 2005 heeft TNO in samenwerking met Ordina en Capgemini een tenderprocedure gewonnen voor de ontwikkeling van ‘Kibowi Multi Platform’13. Dit systeem is geschreven in Java. Deze case study gaat ook specifiek over dit project, Kibowi MP. 13 Voor meer informatie zie www.kibowi.com en http://www.tno.nl/defensie_en_veiligheid/militair_optreden/operational_analysis/t he_command_and_staff_tra/ Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 96 Deze case is uitgekozen, omdat er bij de ontwikkeling van het systeem gebruik is gemaakt van herbruikbare artefacten. Tevens zijn er delen van Kibowi MP al tijdens de ontwikkeling van het systeem herbruikbaar gemaakt. Een groot aantal van deze onderdelen worden ook hergebruikt in een ander project, SCOPE. De herbruikbare artefacten die tijdens het project Kibowi MP zijn ontwikkeld, zijn relatief nieuw. Daarom worden deze nog weinig hergebruikt. Om deze reden wordt specifiek de relatie tussen Kibowi MP en SCOPE bekeken. SCOPE heeft een heel andere doel met haar simulatiemodel, namelijk het simuleren van oorlog en gevechtsituaties voor kleine teams van soldaten om inzicht te krijgen in de psychologische gevolgen en afwegingen die er worden gemaakt. Voor de ontwikkeling van SCOPE wordt echter een zeer groot deel van de architectuur en de componenten van Kibowi MP overgenomen. Een interessant detail is dat SCOPE een beperkt budget ter beschikking heeft, slechts een klein percentage van het budget dat voor Kibowi MP beschikbaar is. Zonder de mogelijkheid tot hergebruik van software artefacten uit Kibowi zou het SCOPE project niet (met dat budget) uitgevoerd kunnen worden. De artefacten In Figuur 23 wordt het generieke framework van de applicatie Kibowi MP getoond. In dit figuur is ook aangegeven welke componenten als black box hergebruikt zijn en welke componenten als white box. Applicaties Control Observer Entity Editor Otas Editor Kibowi Application Administrator Kibowi GUI* Evaluator Permissions Phoenix Database definitions Computer Simulation Environment TNO System API’s Generic GUI* Generic Application* Mail* Messages Database Management* Coordinates Graph * State Machine* GLF GIS* ORB Kernel* Helpers* Monitor* Events ModelParameters Expressions* Versioning* Het component uit deze laag met een * is als white box hergebruikt in SCOPE. De componenten uit deze twee lagen zijn applicatie onafhankelijk. De componenten met een * zijn als black box hergebruikt in SCOPE. Figuur 23 - Hergebruikte componenten uit KIBOWI MP. Dit framework bestaat uit vier lagen. In Bijlage G wordt de functionaliteit van de verschillende componenten kort toegelicht. De onderste twee lagen zijn applicatie onafhankelijk en kunnen in verschillende simulators hergebruikt worden. De phoenix laag is specifiek voor Kibowi geschreven. Hier kan weinig direct hergebruikt worden. In SCOPE is wel gebruik gemaakt van Kibowi GUI door het op code niveau te wijzigen, het is echter toeval dat dit hergebruikt kan worden Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 97 binnen SCOPE. Veel van de componenten die in deze Phoenix laag worden getoond, zijn in Scope ook aanwezig. Scope heeft ook een Scope applicatie, databasedefinities, messages en permissions en events. Deze zijn echter opnieuw voor SCOPE ontwikkeld. De componenten uit de ‘TNO System API’s’ laag zijn voorzien van Javadoc en kunnen veelal op basis daarvan hergebruikt worden. Deze componenten zijn ook apart opgenomen onder SourceForge. Voor de State Machine dient de gebruiker zelf de states en transitions op te geven voordat het gebruikt kan worden. De Generic GUI en Generic Application moeten gespecialiseerd worden door de hergebruiker. Het CSE is als herbruikbaar framework op SourceForge gezet. Voor alle herbruikbare componenten van Kibowi MP die zijn opgenomen in SourceForge geldt dat deze niet direct toegankelijk zijn. Hiervoor dient eerst toegang aangevraagd te worden bij de beheerder van het artefact. Aangezien zowel Kibowi MP als Scope nog volop in ontwikkeling zijn, is dit framework nog niet definitief. Het komt nog regelmatig voor dat de ontwikkelaar van SCOPE delen in de phoenix laag ontdekt die hier niet in thuis horen. De desbetreffende delen zijn vaak niet specifiek voor SCOPE of Kibowi MP aan te merken en zijn generiek genoeg om naar een lager niveau geplaatst te worden. Verder is Kibowi MP HLA compliant en loopt momenteel de discussie om een aantal componenten ook HLA compliant te maken. Procesinvalshoek Productie De voormalige technologiemanager heeft een sterke inspraak gehad in de samenstelling van het projectteam van Kibowi MP. Bij de projectsamenstelling is gekozen voor mensen die verstand hebben van JAVA en mogelijk kennis en ervaring hebben van andere projecten, die belangrijk kan zijn voor Kibowi MP. De productie van herbruikbare artefacten vindt binnen het Kibowi MP project plaats, waarbij de artefacten zowel direct herbruikbaar worden gemaakt als dat ze op basis van re-engineering herbruikbaar worden gemaakt. De voormalige technologiemanager heeft ook hierop een sterke invloed gehad. Momenteel is er nog geen documentatie beschikbaar bij de herbruikbare componenten die in Kibowi MP zijn ontwikkeld en in Scope worden hergebruikt. Javadoc is wel aanwezig dus de interfaces van de componenten zijn beschreven. Dit is echter niet voldoende om de artefacten direct te kunnen hergebruiken. Consumptie Deze subparagraaf is tweeledig. Er wordt ingegaan op de consumptie van herbruikbare artefacten binnen Kibowi MP en de consumptie van herbruikbare artefacten binnen SCOPE. Bij de ontwikkeling van Kibowi MP is van verschillende herbruikbare artefacten gebruikt gemaakt. Dit is vooral gebeurd vanwege het feit dat de projectleden Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 98 ervaring hadden met deze artefacten en omdat ze zelf vanuit de filosofie ‘beter goed gejat dan slecht gemaakt’ werken. Binnen SCOPE worden zowel de architectuur als een groot aantal van de in Kibowi MP ontwikkelde componenten hergebruikt. Vanwege het beperkte budget van SCOPE is dit project sterk gericht op het hergebruiken van bestaande componenten en oplossingen. Het project wordt impliciet gedwongen tot hergebruik. Aangezien de componenten uit Kibowi MP nog niet voorzien zijn van een gebruikershandleiding of voorbeeld van gebruik is de ontwikkelaar van het SCOPE project afhankelijk van de support vanuit Kibowi MP en de toegang tot de broncode van de herbruikbare artefacten. Ondersteuning & beheer Er is formeel niets geregeld voor de ondersteuning en het beheer van de, in Kibowi MP ontwikkelde, herbruikbare artefacten. Het beheer vindt plaats binnen het Kibowi MP project aangezien dit project ook nog niet afgerond is. Qua ondersteuning lost SCOPE dit op door de mensen die in Kibowi MP aan een specifiek artefact hebben gewerkt in te huren. Deze personen helpen bij het hergebruiken van de specifieke artefacten binnen SCOPE. Dit gebeurt echter deels in direct contact zonder tussenkomst van SourceForge. Dit heeft tot gevolg dat de projectleider niet alles kan overzien en coördineren. Om te voorkomen dat er conflicten optreden heeft de projectleider van Kibowi MP een aantal afspraken opgesteld waar hergebruikers van Kibowi MP herbruikbare artefacten zich aan dienen te houden. Hierin is onder andere afgesproken dat er niet aan branching wordt gedaan en dat binnen Kibowi MP wordt besloten over de verdere ontwikkeling van de herbruikbare artefacten. Organisatieinvalshoek De manier waarop hergebruik plaatsvindt tussen Kibowi MP en SCOPE berust sterk op ‘toeval’. Het is grotendeels te danken aan de inzet van individuele software engineers zelf. In dit geval een software engineer die zijdelings bij Kibowi betrokken is geweest en ook deel uitmaakt van het SCOPE team. Er is dus van buiten Kibowi MP geen sturing op zowel de productie als consumptie van herbruikbare artefacten, het komt vooral neer op toeval en het enthousiasme van enkele software engineers. Vooral de voormalig technologiemanager heeft hier nagestreefd om de software artefacten generiek en herbruikbaar te ontwikkelen. Ook qua ondersteuning en beheer is formeel niets geregeld. Ondersteuning wordt door SCOPE verkregen door de ontwikkelaars vanuit Kibowi MP in te huren. Het beheer van de hergebruikte artefacten ligt nog hoofdzakelijk binnen Kibowi MP. Er zijn echter geen afspraken gemaakt over onderhoud, CM en PCM. Ook qua verrekening is er niets geregeld. In de huidige situatie ligt de last bijna in zijn geheel bij het Kibowi MP project. Dit project draait op voor de productie en het beheer van de herbruikbare artefacten. In het geval van ondersteuning door Kibowi projectleden aan het SCOPE team is er sprake van directe verrekening, indien het al verrekend wordt. Vanuit Kibowi MP is er bij het management verzoek Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 99 gedaan voor enige vorm van verrekening. Deze verzoeken zijn tot nu toe afgewezen. 4.3.2 Electronic Battlespace Facility (EBF) Het EBF is een, voor de Nederlandse krijgsmacht ontwikkelde, gedistribueerde simulatie-infrastructuur voor R&D en training. Het EBF genereert synthetische omgevingen door (gedistribueerde) simulators te koppelen met andere (simulatie) componenten. Doormiddel van High Level Architecture (HLA) is het EBF in vergaande mate interoperabel met andere systemen. Het EBF biedt gebruikers de analysemogelijkheden voor gedistribueerde, interactive simulaties. Tevens biedt het de mogelijkheid snel simulaties en tools te ontwikkelen om geëvalueerd te worden of om in het framework opgenomen te worden. Figuur 24 geeft een beeld van de architectuur van het EBF met het Advanced Simulation Framework (ASF), het Platform Framework (PLF) en enkele van de generieke componenten. Simulator Application I/O Support 3D Visual Platform Framework (PLF) Audio Advanced Simulation Framework (ASF) Figuur 24 - Generieke EBF simulator architectuur [HUI98][JEN97]. Deze case is uitgekozen vanwege de mate van toepassing en het niveau van hergebruik van software artefacten binnen het EBF. Zo heeft het EBF een eigen kwaliteitssysteem (afgeleid van het divisie brede kwaliteitssysteem) waarmee een aantal aspecten worden gecontroleerd: - het beheer van bestaande EBF componenten, - de ontwikkeling van nieuwe componenten, - management activiteiten. De artefacten Het EBF is destijds ontstaan vanuit een onderzoek naar flexibele generieke architecturen. De basislaag van het EBF is het ASF, deze laag verzorgt de connectie met de gedistribueerde virtuele omgeving. Op deze manier wordt de gebruiker afgeschermd van de communicatie infrastructuur. In Figuur 25 is de structuur van het ASF te zien. Het ASF bestaat dus uit twee subsystemen, Environment en ObjectServer. De Environment houdt de huidige status bij van alle simulatie objecten in de simulatie. Denk hierbij aan tanks, vliegtuigen of dynamische terrein objecten zoals huizen en Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 100 bruggen. De Environment bevat ook de events die worden uitgewisseld tussen de objecten en applicaties. De ObjectServer is verantwoordelijk voor de uitwisseling van object- en event informatie met andere ObjectServer instanties en voorziet de Environment met up-to-date informatie over de gevechtsomgeving. Application User defined simulation model Environment ObjectServer DIS ObjectServer Advanced Simulation Framework HLA ObjectServer DIS compliant HLA/RTI Compliant Network Figuur 25 - Structuur van het Advanced Simulation Framework [JEN97]. De gebruikers van het EBF krijgen vooral te maken met het PLF. Het PLF is een open, schaalbare en uitbreidbare architectuur waarin de simulators (bemande en onbemande) ontwikkeld kunnen worden. Het PLF vergroot herbruikbaarheid door een opgelegde gestandaardiseerde interface tussen de componenten in het framework. De simulatie applicaties die met het PLF worden gebouwd, worden doormiddel van specialisatie van de generieke componenten van het PLF ontwikkeld. Figuur 26 - Platform Architectuur [JEN97]. Figuur 26 toont de structuur van het PLF. Deze structuur onderscheidt vier belangrijke componenten. 1. Subsystems Dit zijn de fysieke delen die onderdeel kunnen zijn van het platvorm, bijvoorbeeld wapensystemen, sensoren, communicatie systemen en voortstuwingsystemen. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 101 2. Personnel Het platvorm kan bediend worden door menselijke of artificiële operators of beide. 3. Environment Dit component is een specialisatie van het ASF Environment. Het bevat alle data en afstellingen betreffende het gevechtsgebied (terrein, weer, entiteiten). 4. Support Modules Dit zijn generieke software tools die de platform simulatie ondersteunen, bijvoorbeeld een 3D visuele module, audio module of een I/O module. Het EBF kan door de gebruiker hergebruikt worden doormiddel van parameterisatie en doormiddel van het implementeren van eigen software bovenop de generieke componenten. Het parameterisatieproces is veel werk gezien de vele instellingen die gezet moeten worden. Procesinvalshoek Productie De productie van herbruikbare artefacten voor het EBF vindt zowel plaats in de projecten die gebruiken maken van het EBF als binnen het EBF-team zelf. De projecten ontwikkelen componenten afhankelijk van hun eigen behoefte die nog niet binnen het EBF beschikbaar zijn. Indien dit van tevoren is aangegeven bij het EBF-team, wordt het project begeleid en gestuurd door het EBF-team. Bij productie door het EBF-team wordt er gekeken naar de wensen van de gebruikers van het EBF en hiaten in de huidige verzameling van herbruikbare artefacten. Consumptie De gebruikers van het EBF krijgen hulp bij het kiezen van de componenten die ze kunnen hergebruiken voor hun simulatie. In Bijlage H is een stroomschema voor het gebruik van het EBF te zien. De keuze voor het gebruik van het EBF is voor de gebruikers een functionele en financiële afweging. Ondersteuning & Beheer Het EBF-team verzorgt het onderhoud en beheer van het EBF framework en de generieke componenten hierin. Ook bieden ze ondersteuning aan de gebruikers van het EBF. Voor het EBF zijn er ook verschillende specifieke procedures opgesteld: - Configuratie Management - Problem and Change Management - Verificatie, Validatie en Accreditatie - C++ Programmeerstandaard - EBF Kwaliteitsplan Bij het Verificatie, Validatie en Accreditatie proces ligt de nadruk zowel op technische als procedurele eisen. Van validatie van de componenten is nog geen sprake. Het EBF-team is bevoegd niet-geaccepteerde componenten uit de EBF- Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 102 repository te weren. De eisen die aan de herbruikbare componenten worden gesteld voordat ze onder het EBF configuratie management worden opgenomen zijn [BRA98]: - - - - de ontwikkelaar zal een document van eisen van de component overleggen, de ontwikkelaar zal een document van ontwerp van de component overleggen, het nieuw te ontwikkelen EBF component zal maximaal gebruik maken van standaard EBF componenten, zoals ASF en PLF voor de ontwikkeling van nieuwe software componenten, vanuit het oogpunt van flexibiliteit en herbruikbaarheid, de EBF component is herconfigureerbaar om conflicten met andere EBF componenten te minimaliseren (bijvoorbeeld bij het gebruik van DIS port nummers), de EBF ontwikkelaar zal op basis van een test-document met een beschrijving van reproduceerbare testresultaten aantonen dat de component voldoet aan de gestelde eisen, de EBF ontwikkelaar zal een document overleggen waarin de installatie en het gebruik van het systeem beschreven staat. Additionele eisen die gesteld worden aan software, data, documentatie, federates of EBF-federaties zijn [BRA98]: - - - - - Software Source code moet voldoen aan de EBF Coding Standard [COD]. Software moet voorzien zijn van een bijbehorende User Manual. Data Data moet voorzien zijn van documentatie aangaande structuur en formaten. Terrein-databases moeten kunnen worden geconverteerd naar de op dat moment in de EBF gangbare terrain-database formaten. Documentatie Documentatie kan zowel elektronisch als niet-elektronisch geleverd worden. Indien elektronisch dient een document geconverteerd te worden naar Word, Postscript of Portable Document Format. Federate14 Op HLA gebaseerde federates moeten getest kunnen worden of ze HLA Compliant zijn; een federate moet geleverd worden met onder meer een SOM (Simulation Object Model), een Conformance Statement, en eventueel Scenario’s. Tevens dient iedere federate een expliciete beschrijving te hebben van de samenhang tussen de gebruikte software en hardware. EBF-federatie15 Op HLA gebaseerde federaties moeten getest kunnen worden of ze HLA Compliant zijn. 14 Een federate is een verzameling van, mogelijk gedistribueerde, componenten die samen een deel van de functionaliteit binnen een simulatie verzorgen. 15 Een federatie is een verzameling federates die samen een bepaald doel vervullen. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 103 Organisatie invalshoek De organisatie van het EBF-team is te zien in Figuur 27. Dit is de organisatiestructuur zoals deze binnen TNO-FEL wordt gehanteerd. Verantwoordelijkheden voor de ontwikkeling en beheer van het EBF en haar componenten zijn hierin vastgelegd. Ondersteuning voor de hergebruikers wordt ook verricht vanuit het EBF-team. EBF Management Gebruikersgroep TNO-FEL EBF Kwaliteitszorg Gebruikersgroep Krijgsmacht EBF Beheer EBF Ontwikkeling Figuur 27 - Organisatiestructuur EBF Qua sturing vervult het EBF-team, zowel bij de productie als bij de consumptie van herbruikbare artefacten, vooral een faciliterende rol. In Bijlage H is te zien dat gebruikers van het EBF middels een stroomschema begeleid worden bij het gebruik van het EBF en het kiezen van componenten. De filosofie dat men het zal hergebruiken indien men de voordelen ervan inziet, speelt hier een belangrijke rol. De financiering van het EBF heeft in de loop der jaren verschillende vormen aangenomen. De krijgsmacht heeft hierbij altijd een deel van het EBF gefinancierd. Dit was vooral bedoeld om het EBF in stand te kunnen houden. Momenteel heeft het EBF ook een binnen TNO-FEL en betalen projecten voor ondersteuning en wijzigingen die zij nodig hebben. In het verleden moesten projecten die gebruik maakten van het EBF een deel van hun budget afstaan. Dit is echter opgeheven vanwege de weerstand die hiertegen ontstond door scheve betalingsverhoudingen tussen projecten. 4.3.3 Case studies volgens het Theoretische Raamwerk Het niveau van hergebruik van software artefacten binnen het EBF lijkt op het eerste gezicht hoger dan bij de andere twee case studies. Met behulp van het theoretische raamwerk uit § 3.7 worden de drie case studies in Tabel 22 vergeleken. Zo kan er inzicht verkregen worden in de invulling van hergebruik van software artefacten binnen de drie case studies. Door de uniforme wijze van vergelijking kan er snel bekeken worden hoe de cases aan de verschillende aspecten invulling hebben gegeven en waar er zich nog ‘gaten’ voordoen. Dat wil zeggen aan welke aspecten nog geen invulling of oplossing voor is. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 104 CASES KENMERKEN Artefacten ORB Kernel Type artefact(en) Component Manier van gebruik Documentatie Black Box Gebruikers handleiding & Javadoc Domein specifiek artefact Intensiteit van hergebruik KIBOWI MP Architectuur, componenten en broncode Black Box & White Box Javadoc Applicatie framework met algemene componenten EBF Architectuur en componenten Hoofdzakelijk Black Box Interface beschrijvingen, gebruikershandleidingen Applicatie framework met algemene en domein specifieke componenten Processen Moment van productie Manier van productie Ondersteuning Configuratie Management Problem & Change Management Certificatie Sturing Productie Sturing Consumptie Metingen Pre-project & In-project Domein Kennis + Re-engineering Informele ondersteuning via informeel verantwoordelijke Ja In-project Domein Kennis + Re-engineering Informeel ondersteuning via de maker van het herbruikbare artefact Ja (binnen KIBOWI) In-project Domein Kennis + Reengineering Formeel ondersteuning vanuit EBF-team Ja Ja (binnen KIBOWI) Ja Geen certificatie N.V.T. Geen certificatie Geen sturing Informeel faciliterend/adviserend Geen metingen Geen sturing Geen metingen Verificatie Faciliterend/adviserende rol van het EBF-team Faciliterend/adviserende rol van het EBF-team Geen metingen Informeel Nee EBF-Team Informeel Nee EBF-Team Nee Nee Per project afzonderlijk door software engineer Nee Nee Nee Geen sturing aanwezig Nee EBF-Team EBF-Team Afstemming tussen projecten door EBF-Team Nee Geen N.v.t. Geen Geïntegreerd in project Ja Organisatie Verantwoordelijkheid ondersteuning bij herbruikbaar artefact Verantwoordelijkheid beheer herbruikbaar artefact Sturing Productie Sturing Consumptie Niveau van sturing Top Management commitment Voorschriften Inrichting Productie EBF-beheersvoorschriften Geïntegreerd in projecten + EBF team Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 105 Inrichting Ondersteuning Niet formeel aanwezig Niet formeel aanwezig Formeel aanwezig binnen EBF team Financiering productie Financiering beheer Financiering ondersteuning Repository Indirecte verrekening Directe verrekening Directe verrekening Geen Geen Directe verrekening Indirecte verrekening Indirecte verrekening Directe verrekening Ja, in SourceForge. Publiekelijk beschikbaar. Ja, in SourceForge. Echter niet publiekelijk toegankelijk. Eigen repository, nog niet publiekelijk toegankelijk binnen TNO-FEL Tabel 22 - Analyse van de Case Studies Cases a.d.h.v. het theoretische model. Tabel 22 toont dat alleen binnen het EBF aandacht is besteed aan organisatorische aspecten betreffende hergebruik. Dit ‘project’ is ook gericht op het beheer van de EBF faciliteit en verdere ontwikkeling ervan. Andere projecten kunnen gebruik maken van deze faciliteit. Hier is dus een visie en een budget aanwezig. Dit in tegenstelling tot Kibowi MP waar het project zelf een product moet opleveren. Binnen Kibowi MP is beperkt aandacht besteedt aan beheer en ondersteuning voor hergebruik. Dit is echter logisch aangezien het helemaal geen doel of taak van het project zelf is. Er is op organisatorisch niveau nog geen aandacht besteed aan het projectoverschrijdende karakter van hergebruik: geen verrekening, sturing en opvang van de herbruikbare software artefacten. 4.3.4 Vergelijking Case Studies TNO met Best Practices In § 3.8 zijn de best practices Sodalia en Eliop geanalyseerd. In dit hoofdstuk is de toepassing van hergebruik binnen TNO-D&V Business Unit 2 geanalyseerd. Deze paragraaf vergelijkt de case studies binnen BU2 met de best practices Sodalia en Eliop. Top Management Support Bij de twee case studies is Top Management Support duidelijk aanwezig. Het management van Sodalia is een zeer sterk voorstander van hergebruik van software en heeft het opgelegd als de manier van werken. Bij Eliop heeft hergebruik de steun van het Top Management onder de voorwaarde dat het een positieve bijdrage levert aan de resultaten (financieel, kwalitatief en op de doorlooptijd). Bij TNOD&V BU2 is deze Top Management Support echter nog niet aanwezig. Het zijn de software engineers, de technologietrekker en heel soms projectleiders die ermee bezig zijn. Doordat het Top Management nog niet betrokken is bij hergebruik van software, ontstaat er binnen TNO-D&V BU2 problemen op procesmatig en organisatorisch niveau. Niveau van sturing van hergebruik Hergebruik binnen TNO-D&V BU2 is tot nu toe een sterk bottom-up gerichte activiteit geweest. Hergebruik is opgehangen aan de software engineers, zij zijn degene die het doen en mogelijk maken. Dit brengt natuurlijk problemen met zich mee aangezien zij niet de autoriteit hebben om wijzigingen in het proces te Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 106 realiseren, andere projecten herbruikbare artefacten te laten produceren of consumeren of een verrekeningsstructuur op te zetten. Bij de Sodalia en Eliop is hergebruik sterker vertegenwoordigd in de managementniveaus. De Reuse Support Organization van Sodalia kan de projectteams ondersteunen bij het hergebruiken en produceert de herbruikbare artefacten. Bij Eliop is er een Reuse Task Group opgericht waarin ook de projectleiders zijn opgenomen. Deze projectleiders dwingen op hun beurt hergebruik binnen de projecten af. Manier van verkrijgen herbruikbare artefacten Sodalia en Eliop hanteren beide Domein Engineering om herbruikbare artefacten binnen specifieke domeinen te identificeren, modelleren en implementeren. Vanuit de theorie wordt ook gesteld dat Domein Engineering mogelijk een belangrijke rol speelt in hergebruik. Binnen TNO-D&V wordt er formeel geen Domein Engineering toegepast, hergebruik komt veelal voort uit re-engineering. De herbruikbare artefacten worden vaak in meerdere projecten verder ontwikkeld en op basis van voortschrijdend inzicht ontwikkeld. Er is dus geen gestructureerde manier om herbruikbare artefacten te ontwikkelen. Standaardisatie proces & product Waar bij Sodalia en Eliop de processen duidelijk zijn gestandaardiseerd middels procedures en richtlijnen die ook nageleefd worden, wordt er binnen M&S meer naar eigen inzicht gewerkt. De Codes of Practice dienen als hulpmiddel voor de software engineers met als gevolg dat er vaak geen duidelijke gestandaardiseerde processen te onderkennen zijn. Hetzelfde geldt voor de herbruikbare artefacten. Waar Sodalia de herbruikbare artefacten via audits keurt heeft Eliop coding standards en templates voor de documentatie opgesteld. Binnen TNO-D&V zijn er COP’s voor gebruikershandleidingen en voor andere documentatie zoals software ontwerpen en testbeschrijvingen. Ook zijn er standaarden voor het programmeren in Ada, C, C++ en Java. Tevens heeft de hergebruikgroep een aantal voorwaarden opgesteld voor de opname van een herbruikbaar component of tool in SourceForge. 4.3.5 Resultaten door hergebruik binnen de case studies Harde cijfers over resultaten door hergebruik zijn binnen BU2 niet beschikbaar. Voor enkele gevallen is het echter wel mogelijk om een indicatie te geven van de resultaten door hergebruik. ORB Kernel De ORB Kernel is volgens de beheerder in circa 10 verschillende projecten in een flinke mate hergebruikt. Het ontwikkelen van de ORB Kernel heeft circa 500 manuur gekost. In § 3.3.4 is aangegeven dat het ontwikkelen van een herbruikbaar software artefact circa 1,5 keer zoveel kosten als het niet herbruikbaar ontwikkelen. Indien een project de ORB Kernel naar volle potentie hergebruikt krijgen ze dus een product dat ze zelf circa 500/1,5 = 330 uur zou hebben gekost om te ontwikkelen. De cumulatieve besparing over circa 10 projecten is dus ongeveer 3300 uur. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 107 Kibowi MP Het CSE framework van Kibowi MP is alleen nog in SCOPE naar volle potentie hergebruikt. De losse componenten zijn ook al in diverse, momenteel circa 5, projecten hergebruikt. Dit betreft de database store & manager, de statemachine en de monitor. Doordat SCOPE het gehele CSE framework en de componenten uit Kibowi MP hergebruikt zet het een knappe prestatie neer, ook gezien het beperkte budget van SCOPE. Om te vergelijken: SCOPE heeft een budget heeft van circa € 67.000 voor het bouwen van de gehele applicatie exclusief het daadwerkelijke model en Kibowi MP een budget heeft dat vele malen hoger ligt. Het CSE framework en de herbruikbare componenten van Kibowi MP hebben circa 3500 ontwikkeluren gekost. Indien dit volledig wordt hergebruikt is de ‘besparing’ dus 3500/1,5 = 2330 uur. Binnen het SCOPE project heeft het circa 200 manuren gekost om dit framework en de componenten te integreren en aan te passen voor SCOPE. Dit staat in geen verhouding tot de originele ontwikkeluren. EBF Bij het EBF kunnen de hergebruikers gebruik maken van het framework en de componenten die beschikbaar zijn. Deze voorziening biedt een grote besparing op ten opzichte van een situatie waarbij elke simulatieapplicatie opnieuw ontwikkeld zou moeten worden. Er zijn geen cijfers voor beschikbaar over de geïnvesteerde ontwikkeluren. De EBF faciliteit is echter al beschikbaar sinds 1997. Als er wordt gekeken wordt naar de besparing binnen het SCOPE project door het hergebruik van de Kibowi MP artefacten dan kan men inzien dat de besparing hier in de loop der tijd een veelvoud is van de origineel benodigde ontwikkeluren. Vele projecten die uitgevoerd zijn met het EBF zouden anders waarschijnlijk financieel helemaal niet, of niet in de gerealiseerde vorm, uitgevoerd kunnen worden. Resultaat in ontwikkeluren EBF Framework & Componenten Kibowi MP 5000 Framework & Componenten 4000 3000 ORB 2000 Cumulatieve besparing 1000 Kibowi MP Cumulatieve besparing Ontwikkel (geheel 1x + enkele uren componenten in 5 projecten) Cumulatieve besparing (reeds vele malen hergebruikt) EBF Ontwikkel uren ORB Case studies Figuur 28 - Indicatie van de resultaten per case studie. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 108 In Figuur 28 is de linkerkolom per case studie de investering qua uren. De rechterkolom geeft een indicatie van de cumulatieve besparing indien het component of framework met componenten volledig wordt hergebruikt. Deze indicaties zijn gebaseerd op de geïnvesteerde ontwikkeluren in de herbruikbare artefacten per case studie en het aantal malen dat deze zijn hergebruikt (voor zover bekend). Over het EBF zijn geen concrete cijfers bekend. Wel is bekend dat dit sinds 1997 wordt hergebruikt en dat er circa 20 project op jaarbasis gebruik van maken. Figuur 28 geeft een indicatie van de resultaten door hergebruik per case studie. Binnen de drie case studies lijkt hergebruik weldegelijk resultaat op te leveren. Het is echter moeilijk om vast te stellen of dit nu een besparing of een productiviteitsstijging is. Indien bij het vaststellen van het budget van een project geen rekening is gehouden met de herbruikbare artefacten is de bespaarde tijd waarschijnlijk besteed aan andere activiteiten. Er kan dan niet worden gesproken over een besparing maar over een productiviteitsstijging. Omdat hergebruik adhoc plaatsvindt, zonder regie over de projecten heen, worden niet alle kansen voor hergebruik benut. Tevens resulteert hergebruik hierdoor vaak in een productiviteitsstijging en/of een kortere levertijd en niet tot een besparing. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 109 4.4 Conclusie Hergebruik van software artefacten vindt al plaats binnen M&S al is dit veel nog op een adhoc basis. Zo is er geen financiering of sturing op de productie van herbruikbare artefacten, geen opvang en beheer van herbruikbare artefacten, is de verzameling van beschikbare herbruikbare artefacten onduidelijk en bevindt hergebruik zich vooral op het niveau van de software engineers zonder projectoverschrijdende coördinatie. Hierdoor worden kansen voor het hergebruiken van herbruikbare software artefacten gemist, bestaat er weerstand tegen zowel de productie als consumptie bij de software engineers en projectleiders en is het resultaat van hergebruik onduidelijk. Er worden successen geboekt door het hergebruik van componenten en frameworks, maar de schaal waarop dit gebeurt is nog beperkt. De potentie voor hergebruik lijkt dus wel aanwezig te zijn, maar er bestaan in de huidige situatie een aantal knelpunten die hergebruik belemmeren. Zolang deze knelpunten niet verholpen zijn blijft hergebruik adhoc en zal M&S niet profiteren van de voordelen van een systematische vorm van hergebruik van software artefacten. - Geen Top Management Support Hergebruik van software artefacten binnen M&S is vooralsnog sterk adhoc en bottom-up gericht. Het (top) management is nog niet sterk betrokken geweest bij hergebruik. Op technisch gebied zijn er redelijke resultaten gehaald maar organisatorisch en procesmatig gezien is er nog weinig geregeld. - Geen sturing van de productie en consumptie van herbruikbare artefacten Er is geen sturing op de productie of consumptie van herbruikbare artefacten aanwezig. De productie van herbruikbare artefacten is gebaseerd op toeval en toewijding van enkele software engineers. Er bestaat ook geen inzicht in de beschikbare herbruikbare artefacten waardoor veel kansen worden gemist. Enkele software engineers proberen het bewustzijn betreffende de beschikbare artefacten te vergroten door deze sterk te promoten. Ze hebben echter geen zeggenschap over de keuzes die in andere projecten gemaakt worden. Waar er bij de best practices hergebruikgroepen bestaan die de projecten sturen op de productie en consumptie is dit binnen M&S niet het geval vanwege een gebrek aan autoriteit van de hergebruikgroep. - Geen organisatie over de projecten heen Er is formeel niets geregeld voor de herbruikbare artefacten nadat het project waarin ze zijn ontwikkeld eindigt. In sommige gevallen neemt een software engineer het beheer en de ondersteuning van het herbruikbare artefact op zich, bijvoorbeeld zoals bij de ORB Kernel. Dit is bewonderenswaardig maar biedt geen goede basis voor systematisch hergebruik waarin onderhoud, Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 110 configuratie management, problem and change management en eventuele ondersteuning aanwezig moeten zijn. - Beperkte standaardisatie van proces en product TNO-D&V heeft geformaliseerde standaarden voor de verschillende processen in het software engineering proces en standaarden voor de productie van code. Deze worden echter niet altijd nageleefd. Ze zijn ontwikkeld om de software engineer en projectleider te ondersteunen in zijn werkzaamheden. Hergebruik is hier ook nog niet in meegenomen, noch op technisch noch op procedureel niveau. Sommige codes of practice kunnen echter zonder wijziging worden toegepast in geval van hergebruik of herbruikbare artefacten. Verder zijn er vanuit de hergebruikgroep wel voorwaarden opgesteld waar een herbruikbaar software artefact aan moet voldoen voordat het wordt opgenomen in SourceForge. - Geen financiering voor hergebruik Er is niets geregeld voor de financiering van de activiteiten voor hergebruik. Waar mogelijk worden de kosten van hergebruik direct doorberekend. Voor projectoverschrijdende kosten, zoals die voor de productie of het onderhoud en beheer, is echter niets geregeld. Dit heeft tot gevolg dat projectleiders kritisch zijn over het herbruikbaar maken van software artefacten. Dit aspect, gecombineerd met het gebrek aan sturing betreffende de productie van herbruikbare artefacten, zorgt ervoor dat de productie van herbruikbare artefacten zeer gering is en vooral afhankelijk van de inzet van individuele software engineers. - NIH-syndroom Het inzicht in de beschikbare herbruikbare artefacten ontbreekt. Slechts enkele herbruikbare artefacten zijn opgenomen in SourceForge. De andere herbruikbare artefacten zijn vaak lokaal opgeslagen. Verder zien de software engineers en projectleiders hergebruik vaak als een beperkende factor op hun keuzevrijheid en creativiteit. Tevens vormt een gebrek aan vertrouwen in de kwaliteit en herbruikbaarheid van de herbruikbare artefacten een obstakel tot het daadwerkelijk hergebruiken ervan. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 111 5. Gewenste Situatie voor TNO In dit hoofdstuk worden de verschillende keuzes en invullingen, die aan hergebruik van software artefacten kunnen worden gegeven, toegepast op de afdeling M&S. Hierbij wordt de gewenste situatie qua herbruikbare artefacten, processen en organisatie beschreven waarbij oplossingen worden aangedragen voor de geconstateerde knelpunten. Tevens wordt er een stappenplan ontwikkeld met een indicatie van de financiële gevolgen van hergebruik van software artefacten. Enkele aspecten uit de gewenste situatie zijn getoetst tijdens een groepssessie, verdere informatie en uitkomsten hiervan zijn te vinden in Bijlage I. 5.1 Keuze voor hergebruik Hergebruik van software artefacten is geen doel op zichzelf. Het moet een positieve bijdrage leveren aan de ontwikkeling van software binnen TNO-D&V, bijvoorbeeld via productiviteitsverbeteringen of kostenbesparingen. Zoals in § 3.4.4 is beschreven, is de keuze voor hergebruik afhankelijk van een aantal aspecten. Het financiële aspect wordt in § 5.4 en § 5.6 besproken. 5.1.1 De markt en organisatie TNO-D&V voert opdrachten uit voor de Nederlandse Krijgsmacht en voor civiele partijen. Momenteel is de Nederlandse Krijgsmacht de grootste klant. Binnen de krijgsmacht bestaat er echter een drive om voor de niet-strategische producten meer off-the-shelf producten aan te schaffen. Een voorbeeld is Kibowi MP, de uitbesteding hiervan is via een openbare tenderprocedure verlopen. Om dit soort opdrachten, waar voor TNO-D&V een belangrijk kennisaspect in is verwerkt, binnen te halen is het noodzakelijk dat de afdeling M&S kan meedraaien in een concurrerende omgeving in samenwerking met partners uit de industrie. Andere externe invloeden zoals outsourcing van IT naar lage lonen landen en een toenemende concurrentie binnen de kennisdomeinen van TNO-D&V kunnen het behouden van deze kennisdomeinen lastiger maken. Indien TNO-D&V haar manier van softwareontwikkeling niet efficiënter maakt is de kans groot dat de software engineer activiteiten binnen TNO-D&V op den duur verdwijnen. Hiermee zal voor TNO-D&V ook belangrijke kennis verloren gaan. 5.1.2 Software ontwikkeling TNO-D&V is ISO 9001 gecertificeerd, maar is niet CMM gecertificeerd. M&S voert wel opdrachten uit waarbij een bepaald CMM niveau wordt vereist, tot CMM niveau 3 aan toe. Over het algemeen is de volwassenheid van het softwareontwikkelproces echter beperkt. Dit heeft ook invloed op de manier waarop hergebruik van software vormgegeven kan worden, de precieze gevolgen komen later aan bod. Tevens bestaat er een sterke mate van heterogeniteit tussen de ontwikkelde software producten. Dit betekent echter niet dat hergebruik Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 112 onmogelijk is. Al is de heterogeniteit van de software producten groot, binnen de software producten zijn er componenten of delen die een dergelijke mate van homogeniteit hebben dat hergebruik zeker mogelijk is. Dit blijkt ook uit een onderzoek dat binnen TNO-D&V is uitgevoerd door Sluimer et al.[SLU04]. Sluimer et al.[SLU04] heeft de mogelijkheid voor familievorming van trainingssimulators bij de KL onderzocht. Het blijkt dat de KL steeds meer aandacht heeft voor beleidsvorming richting een meer effectief en efficiënt gebruik van M&S technologie. Standaardisatie van de simulators is hier onderdeel van. Binnen dit onderzoek is de onderverdeling van de Universal Joint Task List van de NAVO en het EUCLID project Elstar gehanteerd. Deze onderverdeling is goed toepasbaar aangezien de afdeling M&S veel simulators ontwikkelt. Type Toelichting Voertuigbesturing en Dit betreft simulators voor training van taken die betrekking hebben op transportfuncties navigatie ter land, zee of in de lucht. Doelopsporings- Dit betreft simulators voor training van taken die betrekking hebben op verkenning en simulators het verzamelen en overbrengen van informatie over doelen, schade aan objecten en andere tactische of strategische informatie. Bedienings- en schiet- Dit betreft simulators voor training van taken die betrekking hebben op doelacquisitie en technische simulators doelbestrijding ter land, ter zee en in de lucht. Tactische Dit betreft simulators voor training van taken die betrekking hebben op Command en proceduretrainers en Control vanaf individuele platforms tot op divisie niveau. Het betreft de planning, staftrainers preparatie en/of uitvoering van missies ter land, ter zee en in de lucht. Onderhoudstrainers Dit betreft simulators voor training van taken die betrekking hebben op verzorgingssteun, zoals onderhoud, storingzoeken en reparatie, noodprocedures uitvoeren, beschermen en verzorgen van personeel, logistiek en administratie. Logistiek en genie Dit betreft simulators voor training van taken die betrekking hebben op logistieke en genie steun op het land, ter zee en in de lucht. Tabel 23 - Onderverdeling naar type simulators [SLU04]. Ook binnen M&S is er een verdeling te maken in de typen simulators die worden ontwikkeld. Hergebruik van software kan zowel over de verschillende typen simulators heen worden uitgevoerd als binnen een bepaalde type van simulators. 5.1.3 Het personeel Een deel van de software engineers heeft al veel ervaring met het ontwikkelen van en met herbruikbare software artefacten. Tevens zijn de software engineers meer gewend geraakt aan hergebruik. Waar het eerst een punt van discussie was, is het tegenwoordig meer geaccepteerd. Dit wordt waarschijnlijk veroorzaakt door de aandacht aan het onderwerp en de successen die worden gerealiseerd door hergebruik van software artefacten. Het is echter nog niet zo dat hergebruik vanzelfsprekend is. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 113 5.2 Herbruikbare software artefacten Deze paragraaf behandelt de software artefacten die binnen M&S kunnen worden hergebruikt. Hierbij wordt besproken welke typen artefacten er hergebruikt kunnen worden, welke documentatie er aanwezig moet zijn en aan welke eisen een herbruikbaar artefact moet voldoen. 5.2.1 Artefacten In Tabel 20 uit Hoofdstuk 4 is een opsomming gegeven van de grotere software artefacten die binnen M&S beschikbaar zijn om te hergebruiken. Dit bevat zowel tools als uitgebreide libraries waarmee een hergebruiker vele ontwikkeluren kan besparen bij het bouwen van een simulator. De herbruikbare artefacten zijn zowel domein specifieke artefacten, zoals de ORBAT Browser, als algemene, niet domein gerelateerde, artefacten, zoals de Monitor of State Machine. Verder zijn er (technische) frameworks beschikbaar waarmee een ontwikkelaar zijn simulatie kan bouwen. Bijvoorbeeld het Kibowi framework, CSE, of het EBF framework, deze vormen goede mogelijkheden voor hergebruik. § 5.1.2 spreekt over een onderverdeling van typen simulators. Sluimer et al. identificeert hier ook een aantal onderdelen in simulators die als losse componenten gestandaardiseerd en hergebruikt kunnen worden. - User Interfaces, Terrein databases, Visuele modellen van objecten/entiteiten, Fysische- en gedragsmodellen van entiteiten, Scenariomanagement, After Action Review. Tevens worden er vanuit de hergebruikgroep drie aspecten genoemd die zich lenen voor hergebruik: - Simulatie modellen, Kernels, Synthetische omgevingen. Deze componenten lenen zich goed voor hergebruik, behalve de fysische- en gedragsmodellen van entiteiten. Deze modellen omvatten bijvoorbeeld eigenschappen zoals beweging, wapeneffectiviteit of kwetsbaarheid. Vaak zijn deze eigenschappen in grote mate verbonden met de gemodelleerde systemen en bestaat er slechts een beperkte mogelijkheid voor hergebruik [SLU04]. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 114 Hergebruik binnen M&S moet zich hoofdzakelijk richten op hergebruik van grotere componenten en waar mogelijk frameworks waarmee simulators gebouwd kunnen worden. Met andere woorden, een Component Based Software Development aanpak. Het is verstanding een compacte verzameling van hoogwaardig herbruikbare artefacten te hanteren, zie § 3.2.2, om nieuwe simulators mee te ontwikkelen en frameworks om dit te ondersteunen. 5.2.2 Documentatie bij een herbruikbaar artefact De documentatie die bij een herbruikbaar artefact beschikbaar moet zijn hangt af van het type artefact. De template in Tabel 24 is vooral gericht op software componenten. Deze template is gebaseerd op de eisen die vanuit de hergebruikgroep aan een herbruikbare tool worden gesteld en op de documentatie template zoals in § 3.3.2 is opgenomen. Tabel 24 geeft ook aan in welk document de specifieke informatie genomen kan worden. Type Informatie Toelichting Document binnen M&S Basis Informatie Algemene informatie Historie Interfaces Certificatie - Naam van het artefact - Keywords voor de categorie van het artefact - Bron van het artefact (intern / extern) - Beschrijving van het artefact Beschrijft de wijzigingen per versie vanaf de eerste versie die gereleased is. Beschrijft de aangeboden en gewenste interfaces van het artefact. Bij javacode of componenten kan hiervoor gebruik worden gemaakt van Javadoc. Beschrijft aan welke eisen dit artefact is getoetst en voor welke situaties/context het ontwikkeld is. Software User Manual (SUM) Software User Manual Javadoc & Interface Design Description(IDD) Apart document in SourceForge of extra in SUM. Gedetailleerde Informatie Technische details Installatie handleiding Beperkingen Aanpasbaarheid Beschrijft het formaat van het artefact en de omgeving waarin het herbruikbare artefact is ontwikkeld, getest en kan worden gebruikt [EZR02]. Biedt ook informatie over fysieke bronnen die het artefact nodig heeft, afhankelijkheden van andere artefacten en eventuele technische beperkingen bij het gebruik van het artefact. Beschrijft hoe het artefact geïmplementeerd en geïnstalleerd dient te worden. Een voorbeeld van gebruik is hierbij essentieel aangezien dit in de praktijk vaak een zeer belangrijke bron van informatie Software User vormt voor de potentiële hergebruiker [MIL02]. Manual Beschrijft alle zaken die de ontwikkelaar beperken. Denk hierbij aan interface beperkingen, de benodigde hardware en software, en eventuele andere dingen die niet mogelijk zijn. Beschrijft hoe dit artefact aangepast kan worden. In geval van black box beschrijft dit bijvoorbeeld hoe het artefact via parameterisatie Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 115 afgesteld kan worden of waar de expliciete extentiepunten zitten. Overige Informatie Testen Ondersteuning Beschrijft hoe dit artefact is getest. Hierbij kan verwezen worden naar de STD, STP en STR documenten. Beschrijft de procedure betreffende de ondersteuning bij dit artefact. Aanspreekpunt voor bugs, change requests of ondersteuning bij gebruik. Software User Manual Software User Manual Tabel 24 - Benodigde documentatie en informatie bij een herbruikbaar artefact. Alle informatie die in de template in Tabel 24 is opgenomen kan al verwerkt worden in één van de codes of practice van TNO-D&V. De Software User Manual (SUM) speelt hier de belangrijkste rol in. Voor overige documentatie bij de herbruikbare artefacten, zoals de requirements of ontwerpdocumenten, kunnen de relevante codes of practice (respectievelijk SRS en SDD) gebruikt worden. Deze documenten moeten worden opgenomen in SourceForge. 5.2.3 Eisen aan herbruikbare artefacten Een herbruikbaar artefact moet aan een aantal eisen voldoen voordat het ontwikkeld en het in SourceForge opgenomen wordt. - Overleg met hergebruikstuurgroep Voordat een project tijd en geld investeert in het ontwikkelen van een herbruikbaar artefact, moet dit eerst worden voorgelegd aan de hergebruikgroep. Hierbij moeten de requirements en het ontwerp van het artefact goedgekeurd worden voordat het ontwikkeld wordt. Tevens moet er een business case 16 worden opgesteld waarin de kosten voor het ontwikkelen van het herbruikbare artefact worden verantwoord. - Voldoen aan standaarden Indien de software engineers toegang hebben tot broncode moeten de herbruikbare artefacten voldoen aan algemene standaarden en richtlijnen voor het programmeren, ontwerpen en documenteren en aan eventuele standaarden die binnen een specifiek domein gelden. Voor TNO-D&V BU2 zijn er programmeerstandaarden voor Ada, C, C++ en Java of richtlijnen voor het modelleren met bijvoorbeeld UML. - Compleetheid & Correctheid Herbruikbare artefacten moeten compleet zijn. D.w.z. het bieden van de beloofde functionaliteiten en aanwezigheid van de documentatie volgens het template in Tabel 24. Met deze documentatie moet een herbruikbaar artefact zichzelf in voldoende mate beschrijven om hergebruikt te kunnen 16 Een business case voor een herbruikbaar artefact is een financiële verantwoording voor de ontwikkeling van het artefact. Het geeft een schatting van de kosten voor het ontwikkelen van het artefact en ligt toe hoe deze kosten terugverdiend gaan worden. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 116 worden. Indien de documentatie niet aanwezig is vormt dit een flinke drempel om het te hergebruiken. - Interoperabiliteit Het artefact moet met andere artefacten kunnen communiceren. Ook met artefacten die in andere talen zijn ontwikkeld of op andere platforms draaien. Bij BU2 geldt dit zowel voor simulator componenten als gehele simulators, die in gedistribueerde simulaties opgenomen worden. Om artefacten met elkaar te laten communiceren is het ook noodzakelijk dat ze qua dataformaat en services met elkaar overweg kunnen. Deze interoperabiliteit kan in een artefact zelf voorzien zijn, bijvoorbeeld door gebruikmaking van design patterns (observer-observable patroon is een goed voorbeeld) of overerving. Een andere mogelijkheid is middleware om de interoperabiliteit tussen artefacten te realiseren. Voor interoperabiliteit tussen simulators zijn er drie standaarden die in NAVO verband worden gebruikt; DIS (IEEE 1278:1993), ALSP en HLA (IEEE 1516). Van deze standaarden worden DIS en ALSP uitgefaseerd ten behoeve van HLA. HLA is door DoD en door de NATO omarmd als interoperabiliteitsstandaard voor simulaties. Hiermee is een industriële ondersteuning ook gegarandeerd [LAN02]. Voor interoperabiliteit tussen simulator componenten kan er gebruik worden gemaakt van verschillende technieken, bijvoorbeeld van middleware zoals Corba en de HLA Componenten Architectuur. Binnen het EBF is hiervoor reeds een framework ontwikkeld, namelijk TSA. 5.2.4 Black box en white box hergebruik Een absolute keuze voor black box of white box hergebruik is te zwart-wit. Vanuit economisch en beheerstechnisch oogpunt heeft black box hergebruik de voorkeur, maar software engineers willen toch altijd toegang hebben tot de broncode. Dit zowel om inzicht te verkrijgen in het artefact als om zelf fouten te verhelpen of extra functionaliteit toe te kunnen voegen. Probeer naar black box hergebruik te streven maar sluit de mogelijk voor white box hergebruik niet uit. Laat dit een rationele keuze zijn op basis van een kosten/baten analyse. Indien ervoor wordt gekozen om het artefact als white box te hergebruiken moet het artefact wel als een lokale copy behandeld worden, eventuele bugfixes of toevoegingen moeten bij de beheerder van het herbruikbare artefacten gemeld worden. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 117 5.3 Gewenste hergebruikorganisatie en processen Deze paragraaf beschrijft de benodigde nieuwe organisatie voor de systematische toepassing van hergebruik van software artefacten. 5.3.1 Organisatiestructuur Om de knelpunten die in hoofdstuk 4 zijn geïdentificeerd te verhelpen zijn wijzigingen in de huidige organisatie en processen noodzakelijk. Een aantal punten zijn hier noodzakelijk, namelijk: - sturing over de projecten heen op de ontwikkeling van en met herbruikbare software artefacten, - de financiering van projectoverschrijdende kosten door hergebruik, - de opvang en het beheer van de herbruikbare artefacten, Er moet binnen M&S een entiteit komen die over de projectteams heen stuurt en deze ondersteunt bij de productie en consumptie van herbruikbare artefacten. Deze entiteit moet hiervoor ook de macht en financiën hebben om dit te kunnen doen. Tevens moet het beheer van de herbruikbare artefacten projectoverschrijdend ingericht worden. In de theorie zijn er een viertal opties besproken, zie § 3.5.3. Geen van deze structuren is echter direct toe te passen. Een van deze structuren, de ‘pool producer’ structuur, komt al voor binnen M&S (Moses project). Deze structuur is echter onhandig aangezien het vooral voor samenwerking tussen enkele projecten is bedoeld en geen lange termijn hergebruikstrategie ondersteunt. De ‘team producer’ structuur vormt, na enige aanpassing voor M&S, de beste oplossing. De ‘team producer’ structuur zoals die bij HP wordt gehanteerd centraliseert de productie en het beheer van de herbruikbare software artefacten. Bij de geanalyseerde best practices kwamen dergelijke structuren ook voor. Voor M&S is deze structuur een goede manier om de kennis over de herbruikbare artefacten te centraliseren. Voor de ontwikkeling van herbruikbare artefacten is deze structuur binnen M&S ook geschikt, maar dan met de uitzondering dat deze eenheid enkel stuurt op de ontwikkeling van herbruikbare software artefacten. De volwassenheid van het softwareontwikkelproces binnen M&S is beperkt en er wordt binnen verscheidene applicatiedomeinen software ontwikkeld. M&S heeft niet de ‘massa’ om voor elk applicatiedomein een eigen ‘team producer’ eenheid op te zetten en veel herbruikbare artefacten binnen M&S zijn ook niet domeinspecifiek. Figuur 29 toont de opzet van de gewenste organisatiestructuur voor hergebruik. In deze organisatiestructuur blijft de projectstructuur intact, de enige verandering is de toevoeging van de hergebruikstuurgroep en de toewijzing van software engineers aan herbruikbare artefacten voor het beheer en de ondersteuning. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 118 Sturing en coördinatie hergebruik activiteiten Hergebruikstuurgroep Sturing productie en consumptie Support voor de Projectteams Beheer & evolutie Certificatie Artefacten Hulp bij ontwikkelen van en met herbruikbare artefacten Projectteams Ontwikkelen van herbruikbare artefacten Herbruikbare artefacten Ontwikkelen met herbruikbare artefacten - Opslag herbruikbare artefacten in SourceForge na goedkeuring - Onderhoud en beheer herbruikbare artefacten SourceForge - Opslag - Beheer - Zoeken & downloaden herbruikbare artefacten. - Doorgeven bugs & change Requests Figuur 29 - Organisatiestructuur voor hergebruik binnen M&S. Het voordeel van deze aangepaste ‘team producer’ structuur is dat de projecten het daadwerkelijke werk blijven doen en de hergebruikstuurgroep dit bij wijze van spreke dirigeert. Tevens voorziet deze structuur in het projectoverschrijdende karakter van hergebruik, wat nu nog niet geregeld is binnen M&S. Door deze structuur verdwijnt er wel een deel van de vrijheid van de projecten en software engineers omdat zij herbruikbare artefacten moeten gaan ontwikkelen en gebruiken. Software engineers zullen hiertegen het argument gebruiken dat een deel van de creativiteit verloren gaat. Dit is echter niet valide. Het biedt de software ontwikkelaars juist een kans om minder tijd kwijt te zijn aan ‘standaard’ aspecten. De drie entiteiten in Figuur 29, de hergebruikstuurgroep, de projectteams en SourceForge worden in het restant van deze paragraaf besproken. 5.3.2 Projectteams De projectteams blijven primair verantwoordelijk voor het ontwikkelen van software voor de opdrachtgevers. Dit is hun taak en hergebruik dient enkel om een positieve bijdrage te leveren aan dit proces. Door hergebruik veranderen er twee belangrijke aspecten voor de projectteams. Zij gaan namelijk herbruikbare artefacten ontwikkelen en ontwikkelen met herbruikbare artefacten. 1 Productie van herbruikbare artefacten. Herbruikbare artefacten kunnen op drie manieren worden verkregen, via domein engineering, re-engineering en via externe bronnen. Tevens kan dit op drie momenten plaatsvinden, voor, tijdens of na een project. Gezien de geringe omvang van het aantal software engineers en de heterogeniteit in de softwareontwikkeling, is het systematisch toepassen van domein engineering een riskante optie. In de theorie wordt het wel aangedragen als een belangrijke factor voor hergebruik, het Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 119 wordt echter ook beschreven als een riskante en dure methode. Om die reden wordt het vooral toegepast in grotere organisaties met een gedegen mate van softwareontwikkeling en een hoge mate van homogeniteit in de softwareproducten die ontwikkeld worden. Domein analyses en engineering voor de ontwikkeling van herbruikbare software artefacten is slechts beperkt toepasbaar binnen M&S. M&S is binnen verschillende applicatiedomeinen actief en binnen deze domeinen bestaat er vaak ook nog weinig homogeniteit in de ontwikkelde software producten. Het zou een zeer kostbare aangelegenheid zijn om binnen elk van deze applicatiedomeinen domein engineering toe te passen. Hergebruik zal binnen M&S daarom nog steeds veelal op basis van re-engineering plaats blijven vinden. De productie van herbruikbare artefacten moet daarom tijdens de projecten uitgevoerd worden. Dit kan op twee manieren opgestart worden. Ten eerste via een opdracht vanuit de hergebruikstuurgroep aan een project. Door software architecten uit de hergebruikstuurgroep deel te laten nemen aan een project gedurende de system engineering fase, waarin het SSS en SSDD worden geschreven, kunnen zij inzicht krijgen in de opbouw van het systeem en mogelijke herbruikbare artefacten die ontwikkeld kunnen worden binnen dat project. Op deze manier hebben zowel het project als de hergebruikstuurgroep baat bij de productie van het herbruikbare artefact. De overhead die wordt gemaakt voor het produceren van het herbruikbare artefact wordt vergoed door de hergebruikgroep. Hiervoor wordt op basis van de eisen en functionaliteit van het herbruikbare artefact een schatting gemaakt van de benodigde tijd en dus kosten. Ten tweede kan een projectteam ook zelf een kans voor hergebruik identificeren en een herbruikbaar artefact ontwikkelen. Het is hierbij echter wel belangrijk dat het project, voordat het begint met het ontwerpen en implementeren van het herbruikbare artefact, contact opneemt met de hergebruikgroep en een document van eisen voorlegt (SRS) en, indien dit wordt goedgekeurd, ook een ontwerpplan van het artefact (SDD). Het is immers niet wenselijk dat de projectteams een grote verzameling aan herbruikbare artefacten gaan produceren die niet hergebruikt worden en dus niet meer terugverdiend kunnen worden. Indien de hergebruikstuurgroep instemt met het ontwikkelen van het herbruikbare artefact wordt er wederom, door de hergebruikstuurgroep, een schatting gemaakt van de benodigde uren en wordt het project hierin gecompenseerd. Figuur 30 toont de verschillende stappen in het productieproces en de rol van de hergebruikstuurgroep en de projectteams. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 120 Figuur 30 - Productieproces voor een herbruikbaar artefact. Door het artefact in een projectteam te laten ontwikkelen, waar de behoefte voor een dergelijk artefact reeds bestaat, ontstaat er een soort ‘just in time’-constructie waarbij het herbruikbare artefact wordt geproduceerd op het moment dat de behoefte ervoor bestaat. Binnen de afdeling M&S wordt er ook gebruikt gemaakt van open-source software en commerciële software. Bij de keuze voor een ‘extern’ software artefact dient er rekening gehouden te worden met de kosten ten op zichte van het zelf ontwikkelen en de mogelijke ondersteuning en betrouwbaarheid van het component. Het is aan te bevelen om, waar mogelijk, het gebruik van de commerciële pakketten te standaardiseren. Software pakketten zoals LuciadMap zijn redelijk complex en het kost daarom ook veel manuren om ermee te kunnen werken. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 121 2 Consumptie van herbruikbare artefacten. De beslissing om bepaalde herbruikbare software artefacten te hergebruiken komt tussen de projecten en de hergebruikstuurgroep te liggen. Het mag niet zo zijn dat een projectteam unilateraal beslist om niet(s) te hergebruiken terwijl er wel duidelijke mogelijkheden voor zijn. Tevens moeten de projectteams consequent, reeds vanaf het offertetraject, rekening houden met hergebruik. Op welk precieze moment er voor een bepaald herbruikbaar artefact wordt gekozen is afhankelijk van het type artefact. Zo moet de keuze voor een bepaalde architectuur of framework in een vroeg stadium genomen worden. In deze fase van het proces is er echter nog geen goed inzicht in de precieze samenstelling van de softwareapplicatie en kan er dus ook nog geen uitspraak worden gedaan over eventueel hergebruik van de kleinere software artefacten. In de ontwerpfase, nadat het systeem uiteen is getrokken in de verschillende subsystemen en de relaties ertussen bekend zijn, kan er gekeken worden naar de ‘normale’ herbruikbare componenten, bijvoorbeeld naar de statemachine, de monitor of de Orbat Browser. Hergebruik van software artefacten van nog kleinere granulariteit zoals stukken code of classes, zoals bij adhoc hergebruik veel voorkomt, wordt hier niet meegenomen. Het zal ongetwijfeld blijven bestaan, maar er is geen noodzaak aanwezig om dit te reguleren. De opbrengsten ervan staan in geen verhouding tot het hergebruiken van de grotere software artefacten. Figuur 31 toont de verschillende fasen van het softwareontwikkelproces en de keuzes voor bepaalde type herbruikbare artefacten. Over het algemeen geldt dat hoe eerder er wordt nagedacht over hergebruik hoe groter de mogelijke voordelen ervan zijn. Om hergebruik reeds vroeg in het softwareontwikkelproces te borgen, moet er een review procedure gehanteerd worden met betrekking tot de keuze voor hergebruik. In deze reviewprocedure moeten de projectteams toelichten welke herbruikbare artefacten zij denken te gaan hergebruiken en waarom zij bepaalde keuzes maken, zoals het niet hergebruiken van een bepaald herbruikbaar artefact waar dit wel mogelijk en wenselijk zou zijn. De plannen voor hergebruik worden beoordeeld door de hergebruikstuurgroep en deze kan het projectteam adviseren en aanspreken op bepaalde keuzes. Indien een projectteam bij de gemaakte keuzes blijft is het natuurlijk ook volledig verantwoordelijk indien het project hierdoor vertraging of budgetsoverschrijding oploopt. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 122 Keuze voor grotere herbruikbare artefacten zoals architecturen een TBM of een framework. Keuze genomen door projectleider i.s.m. hergebruikstuurgroep Offertetraject Analysis Keuze voor de herbruikbare artefacten zoals een statemachine, monitor etc. Keuze door projectteam Design Implementation Keuze voor de kleine herbruikbare artefacten zoals open source tools, javabeans of libraries en kleine componenten uit eerdere projecten. Keuze genomen door individuele ontwikkelaar Testing Maintenance Tijdlijn Figuur 31 - Fasen in het softwareontwikkelproces en keuzes voor hergebruik. Hergebruik heeft een grote invloed op het budget en de planning van een project. In de huidige situatie wordt tijdens de software-offertetrajecten op basis van schattingen door software engineers het benodigde budget en de looptijd vastgesteld. Dit is dus gebaseerd op ervaring en eigen inzicht, er zijn geen historische gegevens voorhande. Indien M&S systematisch gaat hergebruiken moet er bij het vaststellen van het budget en de looptijd rekening worden gehouden met hergebruik van software artefacten. Hiervoor moet er een duidelijk beeld bestaan van het te ontwikkelen systeem en de subsystemen hierin. Dit betekent dus ook dat er al een keuze moet worden gemaakt om bepaalde herbruikbare artefacten wel of niet te hergebruiken. Het komt echter voor dat er al in het offerteproces een budget en planning worden opgesteld zonder dat er een degelijk vooronderzoek is gedaan. Het is dan moeilijk om de keuze voor hergebruik in een dergelijke werkwijze te integreren aangezien er beperkt inzicht is in het te ontwikkelen systeem Mogelijke voordelen bij de keuze voor hergebruik van software Inzicht in de applicatie en mogelijkheden voor hergebruik Tijd / fase in het softwareontwikkelproces Figuur 32 - Hergebruikdilemma: mogelijke voordelen vs. inzicht. Dit creëert een dilemma: enerzijds moet er reeds bij het vaststellen van de planning en het budget voor een project rekening worden gehouden met hergebruik van de grote artefacten. Anderzijds is er in deze fase nog geen inzicht in de opbouw en samenstelling van het te ontwikkelen systeem. Figuur 32 geeft een indicatie van dit dilemma. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 123 Voor de afdeling Modelling & Simulation is het belangrijk om in te zien dat er een groot verschil bestaat in de producten die ontwikkeld worden, van demo’s en prototypes tot operationele systemen. Voor de kleinere opdrachten is het niet reëel om te zeggen dat hergebruik een besparing kan opleveren, het komt er meer op neer dat door middel van hergebruik, voor dezelfde prijs, sneller een uitgebreider product kan worden geleverd. Het vormt dus bij kleiner projecten vooral een productiviteitsverbetering. Bij de grotere projecten kan hergebruik wel degelijk voor besparingen zorgen. Om dit te realiseren is het echter wel absoluut noodzakelijk dat er bij het opstellen van het budget al rekening wordt gehouden met hergebruik. Hiervoor is het ook noodzakelijk dat er redelijk nauwkeurig kan worden bepaald wat het voordeel per hergebruikt artefact zal zijn. In de huidige manier van werken zal dit heel moeilijk zijn en zal het voordeel enkel op basis van grove schattingen bepaald worden. Indien er bij het opstellen van het budget echter geen rekening wordt gehouden met de mogelijke voordelen zal hergebruik niet neerkomen op een besparing maar enkel op een productiviteitsverbetering aangezien de tijdswinst door hergebruik zal worden gebruikt als buffer voor andere zaken. Figuur 33 geeft een indicatie van wat hergebruik voor kleine en grote projecten binnen M&S kan betekenen. Zonder hergebruik Met hergebruik Gelijkblijvende functionaliteit lagere prijs Prijs Prijs Gelijkblijvende prijs meer functionaliteit Kleine projecten Grote projecten Functionaliteit Functionaliteit Figuur 33 - Betekenis van hergebruik binnen M&S. 5.3.3 Hergebruikstuurgroep De hergebruikstuurgroep moet de projectteams kunnen sturen in het produceren en consumeren van herbruikbare artefacten. Daarom is het noodzakelijk dat de hergebruikstuurgroep de autoriteit heeft om dit te kunnen doen. Momenteel bestaat er reeds een hergebruikgroep, bestaande uit software engineers en projectleiders. De hergebruikstuurgroep staat hier los van, het is een nieuwe groep. Gezien de taken van de hergebruikstuurgroep, zoals het sturen van de productie & consumptie en het onderzoeken van het domein op mogelijk herbruikbare artefacten, is het noodzakelijk dat de groep is opgebouwd uit personen in hogere functies met meer zeggenschap over de projecten en personen die een zeer goed inzicht hebben in de softwareproducten die er binnen de afdeling M&S worden ontwikkeld en (sterk) Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 124 voorstander zijn van hergebruik. De technologietrekker en het afdelingshoofd lijken hier geschikte kandidaten voor de sturing van de projecten, zie ook § 4.2.3. Het afdelingshoofd moet erbij betrokken worden omdat hij degene is die de samenstelling van de projectteams verzorgt en op deze manier een borging en verspreiding van de kennis over de herbruikbare artefacten kan realiseren. De verdere invulling moet bestaan uit senior software engineers en software architecten die de projecten bijstaan bij de keuze voor hergebruik. De hergebruikstuurgroep heeft vier globale taken. 1. Sturing projectteams De afdeling M&S voert circa 20 softwareprojecten op jaarbasis uit. Dit zijn zowel grotere projecten waarin operationele systemen worden gebouwd op specificatie van klanten, als softwareproducten die vanuit een kennisbehoefte en visie van TNO worden ontwikkeld tot kleine projecten voor demo´s en prototypen. Aangezien er op jaarbasis slechts een beperkt aantal softwareprojecten, met kansen op hergebruik, worden gestart is het noodzakelijk dat de kansen tot hergebruik worden benut. Het is immers kapitaalvernietiging om elke keer het wiel opnieuw uit te vinden. In § 5.6 wordt doormiddel van een business case voor hergebruik een indicatie gegeven van de financiële aspecten. Voor de productie geldt dat er een goede grip op de ontwikkeling van de herbruikbare artefacten moet worden gehouden. De gedane investeringen voor het ontwikkelen van herbruikbare artefacten moeten immers ook terugverdiend worden. M&S heeft niet de homogeniteit in de ontwikkelde software en ‘massa’ qua softwareontwikkeling om hergebruik ongestuurd te laten. Sturing productie van herbruikbare software artefacten In de theorie worden verschillende manieren van sturing beschreven, zie § 3.5.2. Om de projectteams de herbruikbare artefacten te laten ontwikkelen kan de hergebruikgroep een combinatie van een facilitaire en rationeel empirische of facilitaire en directieve sturing toepassen. Met andere woorden, het (financieel) ondersteunen van die projecten die herbruikbare software artefacten ontwikkelen in combinatie met overleg of dwang. In sommige gevallen zal een project in goed overleg met de hergebruikstuurgroep dus een herbruikbaar software artefacten ontwikkelen en in andere gevallen kan de hergebruikstuurgroep dit opleggen. In de huidige situatie heeft het ontwikkelen van herbruikbare software artefacten, financieel gezien, een nadeling effect op het project. Dit wordt met deze facilitaire sturing ondervangen. De hergebruikstuurgroep houdt door twee maatregelen grip op de ontwikkeling van nieuwe herbruikbare software artefacten. Ten eerste doordat de hergebruikstuurgroep de ontwikkeling van een herbruikbaar software artefact Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 125 moet goedkeuren. De hergebruikstuurgroep bepaalt of er behoefte aan is en of het niet reeds in een andere vorm beschikbaar is. Hierbij moet ook een business case worden ontwikkeld waarin een verantwoording wordt gegeven van de benodigde investering voor het ontwikkelen van het herbruikbare artefact. Om te kunnen bepalen wat wel en wat niet herbruikbaar moet worden gemaakt moet de hergebruikstuurgroep een goed inzicht hebben in de software die wordt ontwikkeld binnen de afdeling Modelling & Simulation. Hiervoor kan de hergebruikstuurgroep gebruik maken van domeinkennis en technisch inzicht en van wensen en behoeften van de projectteams m.b.t. herbruikbare artefacten. Projecten kunnen dus zelf aangeven als ze iets herbruikbaar willen maken en de hergebruikstuurgroep kan deze opdracht geven. De tweede maatregel is dat de hergebruikstuurgroep de herbruikbare artefacten beoordeelt nadat deze zijn ontwikkeld, het certificatieproces. Door deze twee maatregelen heeft de hergebruikstuurgroep grip op de ontwikkeling van herbruikbare artefacten. De hergebruikstuurgroep bepaalt dus of er behoefte is aan specifieke herbruikbare artefact en of het ontwikkelen ervan financieel verantwoord is. Tevens bepaalt de hergebruikstuurgroep of het uiteindelijke resultaat in overstemming is met de vooraf gestelde eisen en of het dus, gecertificeerd, in SourceForge wordt opgenomen. Deze opzet voldoet ook aan de wensen die binnen M&S leven. Tijdens de groepssessie, zie Bijlage I, bleek dat een meerderheid achter een stricte sturing op ontwikkeling van herbruikbare artefacten staat. Belangrijke punten die hierbij naar voren kwamen waren de dialoog tussen de hergebruikstuurgroep en de projectteams en de kosten van de ontwikkeling. Met het bekostigen van deze ontwikkelingskosten en de mogelijkheid tot overleg met de hergebruikgroep zijn deze tegenargumenten goed opgevangen. Sturing consumptie Bij de sturing van de consumptie bestaan dezelfde keuzes als bij de productie van herbruikbare artefacten. Dus beloning, dwang en advisering. Beloning is hier ongepast aangezien een projectteam al voordeel haalt uit het hergebruiken van de bestaande software artefacten. Een sturing puur gebaseerd op dwang zal veel weerstand veroorzaken bij de projecten. Dit bleek ook tijdens de groepsessie, zie Bijlage I. Een combinatie van dwang en advisering is de beste keuze. Bij sommige herbruikbare artefacten zal er immers weinig discussie bestaan of een project het kan en zou moeten hergebruiken. Bij andere herbruikbare artefacten, waar dit niet direct vaststaat, zal een afweging gemaakt moeten worden tussen de voordelen en consequenties voor het project. De sturing van de consumptie gebeurt op basis van de reviewprocedure. Bij aanvang van een nieuw project moet het projectteam met een voorstel komen van de opzet van het te ontwikkelen softwareproduct. Hierbij moet duidelijk Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 126 aangegeven worden welke onderdelen met herbruikbare artefacten worden ingevuld en wat nieuw ontwikkeld gaat worden. Hiervoor moet het projectteam ook terecht kunnen bij de hergebruikstuurgroep voor advies. Het voorstel van de projectleider over de samenstelling van zijn applicatie wordt beoordeeld door de hergebruikstuurgroep, waarbij er wordt gekeken naar de gebruikmaking van bestaande herbruikbare artefacten of COTS-producten. In deze beoordeling geeft de hergebruikstuurgroep een advies, deels vrijblijvend deels dwingend, over de keuze van het projectteam. 2. Support voor de projectteams Niet alle software engineers en projectleiders zijn bekend met hergebruik of de beschikbare herbruikbare artefacten. Daarom is het belangrijk dat de hergebruikstuurgroep ook support biedt aan de projectteams. De ondersteuning voor de projectteams omvat verschillende activiteiten, namelijk: - advisering bij de keuze voor hergebruik, ondersteuning bij de productie van herbruikbare artefacten, ondersteuning bij het hergebruiken van herbruikbare artefacten. De leden van de hergebruikstuurgroep kunnen zelf de projectteams ondersteunen bij de keuze voor hergebruik en specifieke herbruikbare artefacten. Software architecten met kennis van de verzameling herbruikbare artefacten kunnen in de offertefase en of ontwerpfase van een project helpen bij de keuze voor herbruikbare software artefacten. Ook voor de andere twee activiteiten kunnen software engineers ingeschakeld worden. Het verstandig om bij de ondersteuning van een herbruikbaar artefact de ontwikkelaar of verantwoordelijke, twee rollen die waarschijnlijk door dezelfde persoon worden uitgevoerd, in te schakelen. Om de projectteams te ondersteunen bij het ontwikkelen van herbruikbare software artefacten kan de hergebruikstuurgroep ervaren software engineers inschakelen om het projectteam te ondersteunen. Dit is onderdeel van de facilitaire sturing. De hergebruikstuurgroep kan onmogelijk zelf de ondersteuning bij het gebruik van alle herbruikbare artefacten op zich nemen. Daarom is de hergebruikstuurgroep ook verantwoordelijk voor het organiseren van ondersteuning bij herbruikbare artefacten. De hergebruikstuurgroep moet hiervoor de bevoegheid hebben individuele software engineers toe te wijzen aan een herbruikbaar artefact. Over het algemeen is het aan te raden de ontwikkelaar van het herbruikbare artefact verantwoordelijk te maken. Het moet echter niet zo zijn dat software engineer X die verschillende projecten heeft geholpen bij het produceren van herbruikbare artefacten verantwoordelijk wordt voor een gehele verzameling van herbruikbare artefacten. Dit zou een te grote belasting van enkele software engineers tot gevolg kunnen hebben. Er moet dus voor worden gezorgd dat er een brede ondersteuning ontstaat voor de Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 127 herbruikbare artefacten. Op deze manier wordt ook het gebruik van de herbruikbare software artefacten beter geborgd. Indien een software engineer M&S verlaat, mag het niet zo zijn dat ondersteuning en beheer van de herbruikbare artefacten, die onder zijn hoede vielen, wegvallen. Dit kan op verschillende manieren verholpen worden. Indien het artefact door meerdere personen is ontwikkeld is dit geen probleem, één van de andere ontwikkelaars wordt aangewezen om het artefact te beheren. Een andere mogelijkheid is om enkele software engineers, uit projecten die het artefact hergebruiken, bekend te laten worden met het herbruikbare artefact zodat ook zij ondersteuning kunnen bieden aan toekomstige hergebruikers. Deze structuur waarbij de (groepjes) software engineers verantwoordelijk zijn voor het beheer en de ondersteuning van de herbruikbare artefacten wordt ook gesteund binnen M&S, zie Bijlage I. Afhankelijk van het herbruikbare artefact is dit één persoon of een groep personen. De beheerders vormen een concreet aanspreekpunt voor snelle ondersteuning en support. 3. Beheer & evolutie van de herbruikbare artefacten Voor systematisch hergebruik van software artefacten is het noodzakelijk dat er een aantal processen zijn geregeld. De relevante processen zijn: - configuratie management en versiebeheer, problem and change management. Voor veel van deze processen heeft TNO-D&V reeds procedures opgesteld die ook gehanteerd kunnen worden voor hergebruik. Zo zijn er voor configuratie management en problem and change management reeds TNO-D&V wijde Codes of Practice beschikbaar. Net zoals de verantwoordelijkheid voor de ondersteuning bij de productie en consumptie van herbruikbare artefacten, is de hergebruikstuurgroep ook verantwoordelijk voor het beheer en onderhoud van de herbruikbare artefacten. Wederom is de hergebruikstuurgroep niet in staat deze taken zelf uit te voeren, daarom worden deze taken toegewezen aan de software engineers. Dezelfde persoon of groep personen die verantwoordelijk is voor de ondersteuning van het software artefact is ook verantwoordelijk voor het beheer ervan. Configuratie Management en Versiebeheer De Code of Practice die voor Configuratie Management is gedefinieerd door het IT/QA kan goed gehanteerd worden voor hergebruik van software. In de huidige situatie is het niet uniek dat er problemen voorkomen als gevolg van verschillende wensen aan een specifiek herbruikbaar artefact. In het MOSES project komt het voor dat er gedeelde objecten uit de repository worden aangepast waardoor andere projecten er niet meer mee kunnen werken. Een Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 128 andere voorbeeld zijn de herbruikbare artefacten die binnen Kibowi MP zijn ontwikkeld. Deze componenten worden al in andere projecten hergebruikt terwijl ze formeel nog puur onderdeel zijn van Kibowi MP. Nu komt het voor dat er change requests worden ingediend die ervoor kunnen zorgen dat het artefact binnen Kibowi MP niet meer werkt. Onafhankelijk van hoe dit georganiseerd wordt, blijven dit soort kwesties bestaan. Conflicten door change requests zijn inherent verbonden aan hergebruik aangezien de herbruikbare artefacten door verschillende projecten in verschillende contexten hergebruikt worden. Gezien deze mogelijke conflicten is het belangrijk om vast te leggen op basis waarvan de beslissing genomen wordt om een bepaalde wijziging wel of niet te verwerken. Dit wordt verder besproken bij Problem and Change Management. Deze diversiteit in wensen aan een herbruikbaar artefact kan leiden tot verschillende branches. Een branch van een herbruikbaar artefact is een aftakking van het originele herbruikbare artefact. In principe zijn branches van herbruikbare artefacten onwenselijk, er moet immers een apart configuratie management proces voor bestaan en hoe verder de branches uit elkaar groeien hoe meer werk erin gaat zitten aan ondersteuning, onderhoud en configuratie management en dergelijke. Dit kan opgelost worden door een herbruikbaar artefact gelocked te laten, dat wil zeggen dat er geen branches mogen ontstaan. Indien een project toch persé het artefact op een andere wijze wil gebruiken kunnen zij het lokaal gebruiken, dus echt beperkt tot dat project. Het lokale artefact mag echter niet in andere projecten verder hergebruikt worden. Daarvoor dient de originele branche gehanteerd te worden. Het nadeel van deze optie is, dat indien er een nieuwe versie van het originele herbruikbare artefact wordt gereleased het project met de lokale versie elke keer de afweging moet maken om hier wel of niet in mee te gaan. Problem and Change Management Onderhoud en evolutie hangen natuurlijk samen met het Problem and Change management aangezien de fouten en gewenste wijzigingen die hierbij gemeld worden via onderhoud en verdere ontwikkeling verholpen worden. Net zoals de COP voor Configuratie Management kan hier de COP voor Problem and Change Management gehanteerd worden. SourceForge biedt de mogelijkheid een problem report of change request te melden bij de verantwoordelijke van het herbruikbare artefact. Fouten dienen natuurlijk zo snel mogelijk verholpen te worden. De projectteams moeten hiervoor direct terecht kunnen bij de beheerder van het artefact. Aangezien de broncode beschikbaar is kan een projectteam ook zelf de bug verhelpen. De bugfix moet wel teruggekoppeld worden aan de beheerder zodat hij dit kan verwerken in het, onder beheer zijnde, herbruikbare artefact. Het kan natuurlijk voorkomen dat er fouten optreden doordat het Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 129 herbruikbare artefact op een manier wordt gebruikt waarvoor hij niet bedoeld is. In dit geval kan de afhandeling van het problem report op dezelfde manier worden behandeld als een change request, Figuur 34 geeft dit proces weer. Hergebruik heeft een impact op het change request proces. Bij het proces ‘configuratie management’ is er reeds kort gesproken over conflicterende wensen aan herbruikbare artefacten. Hiermee worden change requests bedoeld die, in het geval dat ze worden gerealiseerd, tot gevolg hebben dat een andere partij het artefact niet meer kan gebruiken. Om hier goed mee om te kunnen gaan zou de beheerder van het herbruikbare artefact inzicht moeten hebben in alle projecten die dit artefact hergebruiken. Hij moet immers inzicht hebben in de manier waarop het artefact in die projecten wordt hergebruikt en een afweging kunnen maken van de impact die de wijziging zal hebben op de werking van het artefact in die projecten. Deze aanpak is voor korte tijd ook gehanteerd binnen het EBF. Er is echter vanaf gestapt aangezien het een zeer zware belasting vormde op het configuratie management van de herbruikbare artefacten. Figuur 34 - Proces voor Change Requests bij een herbruikbaar artefact. Omdat projectteams zelf de toegang hebben tot de broncode kunnen zij ook extra functionaliteit toevoegen of wijzigingen aanbrengen. Deze aangepaste artefacten zijn echter lokale versies. Het projectteam kan de wijzigingen voorstellen bij de beheerder van het artefact. De beheerder beslist of het ook wordt opgenomen in het centraal beheerde artefact. De beheerder(s) van het Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 130 herbruikbare artefact beoordeelt dus de problem & change requests. Indien er grote conflicten ontstaan kan de beheerder in overleg met de hergebruikstuurgroep tot een besluit komen over het change request. Dit proces wordt weergegeven in Figuur 34. 4. Certificatie van de herbruikbare artefacten Hergebruiken van kwalitatief slechte herbruikbare artefacten is volgens de theorie een belangrijke faalfactor, zie § 3.2.2. Ook binnen M&S vormt gebrek aan vertrouwen in de herbruikbare artefacten een belangrijke factor om een artefact zelf te ontwikkelen. Daarom is het noodzakelijk om de herbruikbare artefacten die voor beheer worden opgenomen in SourceForge eerst worden getoetst aan een aantal eisen. De eisen waaraan het getoetst wordt staan vermeld in § 5.2.3. De belangrijkste factoren waaraan het getoetst moet worden zijn: - is er overlegd met de hergebruikstuurgroep en is er een business case ontwikkeld, voldoet het artefact aan de gewenste standaarden, is de documentatie compleet, is het herbruikbare artefact naar behoren getest? Indien het artefact niet voldoet aan de gestelde eisen is de ontwikkelaar zelf verantwoordelijk voor correctie van de geconstateerde afwijkingen. Indien de ontwikkelaar de gewenste correcties heeft aangebracht kan hij het artefact opnieuw indienen bij de hergebruikstuurgroep. Indien het artefact wordt goedgekeurd wordt het als herbruikbaar artefact opgenomen in SourceForge. Artefacten die dus niet zijn goedgekeurd mogen niet worden opgenomen in SourceForge. Binnen het EBF is hiervoor reeds een COP opgesteld, Verificatie, Validatie en Accreditatie, oftewel certificatie. Deze COP beschrijft de werkwijze met betrekking tot de ontwikkeling van nieuwe EBF-componenten. Dit is ook toepasbaar op de herbruikbare artefacten. 5.3.4 SourceForge Binnen BU2 is er reeds een repository aanwezig waarin de herbruikbare artefacten centraal kunnen worden opgeslagen, beheerd en gedistribueerd, namelijk SourceForge. SourceForge is gekoppeld met de tool CVS zodat configuratiemanagement en versiebeheer ook uitgevoerd kunnen worden. SourceForge biedt ondersteuning bij verschillende aspecten van hergebruik: - centrale opslag van herbruikbare artefacten, opslag en ordening van documenten bij een herbruikbare artefact, toewijzen van taken aan personen, Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 131 - melden van probleem of change request, opslag van de broncode van een herbruikbaar artefact in CVS, het beheren van file-releases, discussieforum binnen een project, het toewijzen van verschillende rollen aan leden van een project. SourceForge is georganiseerd in projecten. Er is echter nog geen mogelijkheid om de projecten te classificeren of sorteren. Dit betekent dat in SourceForge momenteel de reguliere projecten en projecten voor herbruikbare artefacten door elkaar heen zijn opgeslagen. Met ruim honderdtien projecten in SourceForge, circa tien voor herbruikbare artefacten, is er geen duidelijk onderscheid tussen reguliere projecten en projecten voor herbruikbare artefacten. Dit bemoeilijkt het inzicht in de herbruikbare artefacten. Tevens zijn momenteel een aantal projecten van herbruikbare artefacten afgeschermd, dat wil zeggen dat alleen de projectleden toegang hebben. SourceForge biedt wel de mogelijkheid om binnen de projecten te zoeken op aspecten zoals projectnaam, projectleden, nieuws, discussies e.d. maar dit heeft ook weinig nut m.b.t. hergebruik. VA Software, de leverancier van SourceForge, heeft voor SourceForge 4.3 een reuse portal en Wiki integratie op het programma staan. In de huidige versie, 4.2, is dit nog niet beschikbaar. Wiki integratie en een reuse portal maken SourceForge wel geschikter voor hergebruik. Voor zover als het er nu naar uitziet bevat deze reuse portal wel de functionaliteit om categorieën aan te maken en om hierop te zoeken. Verder kunnen gebruikers ook feedback geven over de herbruikbare artefacten en daarmee een waardering toekennen. De precieze invulling van deze reuse portal is echter nog onbekend. Opslag & Beschikbaarheid van de herbruikbare artefacten SourceForge is de spil in de opslag en verspreiding van herbruikbare artefacten. Indien een hergebruiker iets zoekt moet hij hier terecht kunnen. Momenteel zijn niet alle herbruikbare artefacten in SourceForge opgenomen, wat tot gevolg heeft dat het bestaan ook niet altijd bekend is. Verder zijn veel van de in SourceForge opgeslagen herbruikbare artefacten niet vrij toegankelijk en ontbreekt het ook aan een omschrijving ervan. Er zijn dus twee aspecten in de huidige situatie die verbeterd moeten worden om hergebruik van software te stimuleren: - toegang tot herbruikbare componenten, informatie over de beschikbare herbruikbare componenten. Een goed voorbeeld van hoe een herbruikbaar artefact moet worden opgeslagen in SourceForge is de ORB Kernel, en wel om de volgende redenen: - open toegankelijk, duidelijk aanspreekpunt beschikbaar, projectnieuws beschikbaar, Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 132 - ontwerp documentatie en gebruikershandeleiding zijn beschikbaar, zowel gecompileerd als ongecompileerd (broncode) beschikbaar, er is een overzicht van de gedane wijzigingen per versie, het biedt inzicht in de ontwikkeling van het artefact doordat er inzicht is in de openstaande bugs en change requests, het biedt de mogelijkheid om een probleem of change request te melden. Zoals in Figuur 30 is te zien worden herbruikbare artefacten alleen in SourceForge opgenomen indien ze zijn goedgekeurd in het certificatie proces. Er zijn dus enkel final releases beschikbaar, uitgekristaliseerde versies voorzien van de benodigde documentatie. Indien de herbruikbare artefacten vrij toegankelijk zijn binnen SourceForge en de broncode dit ook is moet er wel rekening worden gehouden met security issues. Zo kan het onwenselijk zijn dat ingehuurde software engineers van externe organisaties toegang hebben tot de broncode. Er bestaat in de huidige situatie geen inzicht in welke herbruikbare artefacten er beschikbaar zijn binnen de afdeling M&S. In § 4.2 is een opsomming te vinden van een aantal herbruikbare software artefacten maar het is onbekend of deze ook helemaal compleet is. Verder is er nog geen centraal punt waar deze informatie beschikbaar is. Weten wat er beschikbaar is voor hergebruik is natuurlijk wel essentieel om te kunnen hergebruiken. Met SourceForge is hier een eerste stap in gezet, maar het moet ook zo zijn dat alle herbruikbare artefacten hierin worden opgenomen. Tevens moet er een manier zijn om een overzicht te krijgen van de herbruikbare artefacten die in SourceForge beschikbaar zijn. Momenteel is dit nog niet mogelijk, in toekomstige versies van SourceForge wellicht wel. In de tussentijd is het aan te raden om een aparte intranetsite te creëeren voor de herbruikbare artefacten. Op deze intranetsite moet een overzicht beschikbaar zijn van alle herbruikbare artefacten met een korte beschrijving per artefacten. Hierin moet zijn beschreven waarvoor het artefact kan worden gebruikt, in welke taal het ontwikkeld is, wie het aanspreekpunt is en mogelijk een indicatie van de geïnvesteerde ontwikkeluren. Deze sites met informatie over de herbruikbare software artefacten moeten ook een directe link naar de locatie van het software artefact in SourceForge bevatten. SourceForge biedt ook de mogelijkheid om via monitoring op de hoogte te worden gebracht van wijzigingen in de projecten van herbruikbare artefacten. Hierbij kan een hergebruiker zelf bepalen of hij op de hoogte wil blijven van nieuwe versies, change requests etc. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 133 5.4 Financiering van hergebruik Hergebruik van software brengt verschillende kosten met zich mee. In § 3.1.3 is een opsomming gegeven van de verschillende mogelijke kostenposten. Deze paragraaf bekijkt welke kostenposten voor M&S relevant zijn en geeft een overzicht van de manier waarop de verschillende kosten worden gefinancierd. Deze paragraaf geeft geen kwantificatie van deze kostenposten, in § 5.6 worden wel schattingen gegeven van deze waarden. 5.4.1 Baten van hergebruik De baten van hergebruik liggen puur bij de projectteams en worden derhalve samen beschreven. Hergebruik brengt voor de afdeling M&S verschillende voordelen met zich mee, zie § 3.1.2 voor meer informatie over de voordelen door hergebruik. - Kostenbesparing door het hergebruiken van bestaande software artefacten Kostenbesparing op het onderhoud van hergebruikte software Betere kwaliteit van de ontwikkelde software Hogere productiviteit 5.4.2 Lasten van hergebruik De kosten van hergebruik worden door drie groepen binnen de afdeling M&S gemaakt. Per groep worden de verschillende kosten toegelicht in Tabel 25 . Kosten Projectteams Toelichting Ontwikkelingskosten van de herbruikbare artefacten Onderhoudskosten van de als white box hergebruikte artefacten Dit omvat zowel de kosten voor het analyseren, ontwerpen, ontwikkelen, testen en documenteren van herbruikbare artefacten. Dit zijn de kosten die een project moet maken indien er een fout wordt ontdekt (danwel door het projectteam zelf danwel door de artefactverantwoordelijke in het originele artefact) en deze aangepast moet worden in het aangepaste herbruikbare artefact. Dit zijn de kosten die een project moet maken voor het testen van herbruikbare artefacten die zijn aangepast (white box). Kosten voor het testen van aangepaste herbruikbare artefacten Kosten/baten analyse per herbruikbaar artefact Kosten voor het zoeken en verkrijgen van herbruikbare artefacten Kosten voor het integreren van herbruikbare artefacten Kosten voor het updaten van hergebruikte artefacten in het geval van een nieuwe versie Kosten voor het maken van een kosten/baten analyse bij de keuze om een herbruikbaar artefact te ontwikkelen of her te gebruiken. Dit zijn de kosten voor het zoeken en verkrijgen van een herbruikbaar artefact. Let wel, het verkrijgen van de herbruikbare artefacten, in de zin van het mogen hergebruiken, is kostenloos. Kosten voor het integreren van het herbruikbare artefact in de nieuwe applicatie. Kosten voor het integreren van de nieuwe versie van het hergebruikte artefacten. Keuze om mee te gaan met een nieuwe versie ligt altijd bij het hergebruikende project. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 134 Kosten hergebruikstuurgroep Toelichting Verkenning van mogelijkheden voor de ontwikkeling van herbruikbare artefacten Sturing van de projectteams Certificering van ontwikkelde herbruikbare artefacten Kosten voor het verkrijgen van inzicht in de softwareontwikkeling binnen de afdeling M&S om op basis daarvan potentiële herbruikbare artefacten te identificeren. Kosten voor het sturen van de projectteams betreffende de ontwikkeling van herbruikbare artefacten. Kosten voor het adviseren van de projectteams betreffende het hergebruiken van herbruikbare artefacten (reviewprocedure). Kosten voor het verifiëren, valideren en accrediteren van de ontwikkelde herbruikbare artefacten. Kosten beheerders Toelichting Beheren van het herbruikbare artefact in SourceForge Kosten voor opslag en beheer van het herbruikbare artefact, de bijbehorende documentatie en informatievoorziening. Dit omvat ook het afhandelen en beoordelen van problem en change requests. Het daadwerkelijk aanpassen van het artefact valt buiten deze kostenpost. Kosten voor het onderhouden van de herbruikbare artefacten. Kan opgestart worden naar aanleiding van een melding van een hergebruiker en dienen als preventief of perfectief onderhoud. Kosten voor het aanpassen en uitbreiden van het herbruikbare artefact op verzoek van een projectteam. Kosten voor het adviseren en ondersteunen van de projectteams over het hergebruiken van een specifiek herbruikbaar artefact. Advisering van de projectteams Onderhoud van de herbruikbare artefacten Uitvoeren van change requests Advisering en ondersteuning aan de projectteams Tabel 25 - Kostenposten door hergebruik voor M&S. Veel van de genoemende kostenposten worden echter al meegenomen in de berekening van de besparing van hergebruik. De theorie stelt dat het 20% van de moeite kost om een artefact als black box te hergebruiken en dat het 67% van de moeite kost om een artefact als white box te hergebruiken. Dit in vergelijking met het zelf opnieuw ontwikkelen van het artefact. In deze percentages zijn kosten opgenomen zoals: - kosten/baten analyse per herbruikbaar artefact, kosten voor het zoeken en verkrijgen van herbruikbare artefacten, kosten voor het integreren van herbruikbare artefacten, onderhoudskosten van de als white box hergebruikte artefacten, kosten voor het testen van aangepaste of geintegreerde herbruikbare artefacten, kosten voor het updaten van hergebruikte artefacten in het geval van een nieuwe versie. Om deze kosten te kunnen bepalen is het voor M&S noodzakelijk deze aspecten te registreren. Hierbij is het belangrijk om duidelijk te definiëren wat er geregistreerd moet worden en om een onderscheid te maken tussen de normale activiteiten en activiteiten die specifiek voor hergebruik zijn. Indien er geen gegevens Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 135 geregistreert worden zal het zeer moeilijk zijn om, met enige mate van nauwkeuringheid, te bepalen wat de kosten en opbrengsten van hergebruik zijn. Dit zal echter binnen M&S een lastig processen blijken te zijn aangezien het niveau van volwassenheid van het softwareontwikkelproces hier niet toereikend is. M&S bevindt zich op CMM niveau 1 á 2 en het registreren van deze aspecten komt pas voor in CMM niveau 3 á 4. 5.4.3 Verrekening van de baten en lasten van hergebruik Zojuist zijn de verschillende kostenposten besproken en is aangegeven door wie deze kosten worden gemaakt. Kostenpost Projectteams Kostendrager Ontwikkelingskosten van de herbruikbare artefacten Onderhoudskosten door white box hergebruik Kosten voor het testen van aangepaste herbruikbare artefacten Kosten/baten analyse per herbruikbaar artefact Kosten voor het zoeken en verkrijgen van herbruikbare artefacten Kosten voor het integreren van herbruikbare artefacten Kosten voor het updaten van hergebruikte artefacten in het geval van een nieuwe versie De hergebruikstuurgroep Het project Het project Het project Het project Het project Het project hergebruikstuurgroep Sturing van de projectteams Advisering van de projectteams Verkenning van mogelijkheden voor de ontwikkeling van herbruikbare artefacten Certificering van ontwikkelde herbruikbare artefacten De hergebruikstuurgroep De hergebruikstuurgroep De hergebruikstuurgroep De hergebruikstuurgroep Artefactverantwoordelijke Beheren van het herbruikbare artefact in SourceForge Onderhoud van de herbruikbare artefacten Behandelen van change requests Uitvoeren van change requests Advisering en ondersteuning aan de projectteams betreffende de toepassing het herbruikbare artefact De hergebruikstuurgroep De hergebruikstuurgroep De hergebruikstuurgroep Het project Het project Tabel 26 - Overzicht van de kostenposten en de financiering hiervan. Voor zover mogelijk worden de kosten die direct op een project zijn te boeken, ook daadwerkelijk op het betreffende project geboekt. Dit creëert een eerlijke verbintenis tussen de leverancier en afnemer van de geleverde dienst. Voor enkele activiteiten is dit simpelweg niet mogelijk aangezien de kosten niet zijn toe te wijzen aan specifieke projecten, bijvoorbeeld het correctieve of preventieve onderhoud of de extra ontwikkelingskosten van een herbruikbaar artefact. De kosten voor hergebruik worden, zoals uit Tabel 26 blijkt, uit twee bronnen gefinancieerd. Enerzijds uit het bestaande budget van de projectteams, anderszijds Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 136 uit het budget van de hergebruikstuurgroep. Het budget voor de hergebruikstuurgroep is noodzakelijk om te functioneren. Dit budget zal echter wel ergens vandaan moeten komen. Het zou wenselijk zijn om de baten van hergebruik deels te reserveren voor de hergebruikstuurgroep. Dit is echter praktisch onmogelijk binnen M&S doordat ten eerste het inzicht in de hergebruikkosten ontbreekt en ten tweede het zeer moeilijk is voor M&S om de baten van hergebruik inzichtelijk te maken. Met het huidige niveau van softwareontwikkeling, CMM niveau 1, is dit niet nauwkeurig te doen. In de theorie, § 3.5.4, zijn een aantal methode beschreven om de kosten voor hergebruik te verrekenen: - - - Overhead funding Kosten voor hergebruik worden boven het budget van de projecten verrekent als overhead. Tax funding Elk softwareproject staat een bepaald, vast of variabel, percentage van het budget af voor de financiering van hergebruik. Pay for use Bij deze methode krijgt ieder herbruikbaar artefact een prijs dat het hergebruikende project moet betalen. De manier van verrekenen is een heel lastig punt binnen M&S, er is geen optimale oplossing. M&S heeft zowel projecten op basis van nacalculatie als fixed-price. In het geval van nacalculatie hebben de klanten inzicht in de prijsopbouw waar hergebruik een invloed op heeft. Een keuze moet dus ook aan de klant te verkopen zijn. Pay for use is een eerlijke manier richting de klant om hergebruik te financieren. Het project betaalt immers alleen voor datgene dat het hergebruikt. Binnen M&S zal dit echter een flinke drempel vormen om te gaan hergebruiken, de projecten moeten dan immers betalen voor de artefacten die ze hergebruiken. Dit levert waarschijnlijk eindeloze discussies op over het bedrag dat men ervoor zou moeten betalen aangezien iedereen de herbruikbare artefacten op een andere manier en met een andere intensiteit hergebruikt. Tevens zal het, in het geval van vaste bedragen, niet voor ieder project financieel mogelijk zijn om de artefacten te hergebruiken. Bij tax funding wordt er een vast of variabel bedrag of percentage van de budgetten van de software projecten gereserveerd voor hergebruik. De projectteams betalen dus altijd mee, ongeacht of ze nu hergebruiken of niet. Binnen het EBF is deze methode ook voor korte tijd toegepast. Hierbij betaalde de projecten die gebruik maakten van het EBF een vast bedrag voor de faciliteit. Door ongelijke betalingsverhoudingen is deze methode echter weer stopgezet. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 137 Uit de analyse van de huidige situatie leek ook naar voren te komen dat projecten die financieel ‘gedwongen’ worden om te hergebruiken dit ook doen (case: Scope project). Hierbij is het hergebruiken van de software artefacten wel gratis. Het is dan ook aan te raden een minimumpercentage van de budgetten van de projecten te reserveren voor financiering van de hergebruikstuurgroep en ontwikkeling van herbruikbare software artefacten. Projecten die dus helemaal niets kunnen hergebruiken betalen slechts een miniem percentage mee. Voor de andere projecten kan een percentage, afhankelijk van bijvoorbeeld de hoeveelheid hergebruik en het budget, gehanteerd worden. Om het simpel te houden kan er bijvoorbeeld voor worden gekozen om drie niveaus van percentages te hanteren; laag, middel en hoog. In § 5.6.3 is te zien dat de instandhouding van een verzameling herbruikbare software artefacten die circa 10.000 ontwikkeluren vertegenwoordigen plus de activiteiten van de hergebruikstuurgroep op jaarbasis zo’n € 200.000 kosten. Dit is gemiddeld 5% van het budget van project, uitgaande van een totaal budget van € 4.000.000,- op jaarbasis. De keuze voor een percentage moet worden gemaakt in overleg met het afdelingshoofd, de projectleider en de hergebruikstuurgroep. Met de hierboven uitgestippelde verrekening van de verschillende activiteiten worden de projectteams sterk gepushed om te hergebruiken. Enerzijds doordat zij sowieso een percentage van hun budget moeten afstaan, onafhankelijk of ze er uiteindelijk wel of niet hergebruiken, en anderzijds doordat de projectteams door de hergebruikstuurgroep via de reviewprocedure worden geadviseerd over de mogelijkheden van de herbruikbare artefacten binnen hun project. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 138 5.5 Stappenplan voor hergebruik Deze paragraaf geeft een stappenplan voor de concrete invoering van hergebruik van software artefacten. Het stappenplan is opgedeeld in drie perioden: Korte termijn: Middellange termijn: Lange termijn: nu – ½ jaar ½ jaar – 2 jaar 2 jaar – 5 jaar De korte termijn beschrijft de opstartfase en een aantal concrete actiepunten, de middellange termijn beschrijft globale actiepunten en de lange termijn beschrijft een aantal mogelijkheden voor hergebruik. 5.5.1 Korte termijn – Opstartfase Deze periode omvat de voorbereidingen voor de systematische toepassing van hergebruik op de middellange termijn. Hierin is het essentieel om de hergebruikstuurgroep op te richten, de bestaande verzameling herbruikbare artefacten te inventariseren, de verzameling hergebruikklaar te maken en er beheerders aan toe te kennen. Om opstartproblemen bij het hergebruiken van de herbruikbare artefacten te voorkomen is het belangrijk dat deze zijn voorzien van een API en een voorbeeld van gebruik of een demo en een beschrijving van wat ermee gedaan kan worden. Dit kost een aantal uren, voorzover dit niet al is gedaan bij de bestaande herbruikbare artefacten, maar bespaart tegelijkertijd een flink aantal uren aan benodigde support. Overzicht van alle actiepunten: - oprichten van de hergebruikstuurgroep, - vastleggen van de rechten en plichten van de hergebruikstuurgroep en beheerders, - inventariseren van de huidige verzameling herbruikbare artefacten, - opname van de herbruikbare artefacten in SourceForge, - toewijzen beheerders aan de herbruikbare artefacten, - klaarmaken van de huidige verzameling, - intranetsite met informatie over de verzameling herbruikbare artefacten, - informatievoorziening binnen M&S over hergebruik en de komende veranderingen, - informeren offertemanagers over pilots en bedoeling/impact van hergebruik, - starten van pilotprojecten waarbij de hergebruikstuurgroep meeloopt in het offertetraject t.b.v. de advisering, - vaststellen benodigde budget voor hergebruikstuurgroep, - definiëren van concrete eisen waaraan de herbruikbare software artefacten moeten voldoen, - inventariseren van de mogelijkheid tot urenregistratie van hergebruikspecifieke activiteiten, Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 139 - inventariseren van de wensen voor SourceForge 4.3 indien de reuse portal wordt gerealiseerd. Extra aandachtspunt: Tijdens deze scriptie is gebruik gemaakt van diverse wetenschappelijke bronnen om de literatuurstudie uit te voeren. Voor zover mogelijk is hier ook gebruik gemaakt van best practices en standaarden. Binnenkort komt de IEEE 1517 standaard beschikbaar binnen TNO-D&V. De huidige Codes of Practice van het IT/QA zijn gebaseerd op de DoD-STD-2167a / MIL-STD-498. Deze standaarden liggen ten grondslag aan de IEEE/EIA 12207 standaard. Deze IEEE/EIA 12207 standaard beschrijft de ‘software life cycle processes’. De IEEE 1517 standaard breidt deze IEEE/EIA 12207 standaard uit met hergebruik processen. - onderzoek de IEEE 1517 standaard op de toepasbaarheid binnen TNOD&V. 5.5.2 Middellange termijn – Systematische toepassen Nadat de voorbereidingen en pilotprojecten uit de opstartfase succesvol zijn afgerond kan M&S beginnen met de systematische toepassing van hergebruik van software artefacten. De software architecten en engineers uit de hergebruikstuurgroep gaan deelnemen aan de offertetrajecten van de softwareprojecten om te sturen op de ontwikkeling van en met herbruikbare artefacten. Overzicht van alle actiepunten: - inventariseren van mogelijke gebreken in huidige verzameling herbruikbare artefacten, - sturen van de productie van herbruikbare artefacten, - sturen van de consumptie van herbruikbare artefacten, - registreren hergebruikspecifieke aspecten. 5.5.3 Lange termijn – Uitbreiding scope & professionalisering Indien hergebruik binnen de afdeling M&S een succes blijkt te zijn kan TNO-D&V gaan nadenken over het verder standaardiseren van de software ontwikkelingen binnen de verschillende domeinen. Tevens kan TNO-D&V de hergebruikactiviteiten uitbreiden naar andere vestigingen zoals TNO Soesterberg of TNO Rijswijk of zelfs andere business units. Hierbij zal de opzet van de hergebruikorganisatie wel moeten veranderen. Momenteel is SourceForge, daar waar de herbruikbare software artefacten worden opgeslagen en beheerd, al binnen deze vestigingen toegankelijk. Een aandachtspunt kan het verrekenen van de hergebruikspecifieke kosten over vestigingen heen zijn. Overzicht van de mogelijke ontwikkelingen en keuzes: - verkoop van generieke (niet domeinspecifieke) componenten buiten TNO, - uitbreiden van het hergebruik naar andere afdelingen, vestigingen of business units, - verdere standaardisatie binnen domeinen via domeinspecifieke architecturen & frameworks. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 140 5.6 Hergebruik als business case Deze paragraaf schetst een beeld van wat hergebruik binnen de afdeling M&S op financieel gebied kan betekenen, een soort business case voor hergebruik van software artefacten. De uitkomsten vormen een schatting op basis van enkele harde cijfers, kengetallen uit de theorie en een aantal schattingen. 5.6.1 Scenario’s In deze business case wordt er vanuit gegaan dat de aanbevelingen uit dit hoofdstuk worden opgevolgd. Nu kunnen er diverse scenario’s behandeld worden waarin verscheidene factoren kunnen variëren: van de mate van hergebruik, de verhouding tussen black box en white box hergebruik tot de levensduur van de herbruikbare software artefacten aan toe. Dit zou echter een zeer groot aantal scenario’s opleveren die verder weinig toegevoegde waarde hebben. Daarom worden de meeste aspecten als vast verondersteld en worden slechts enkele factoren als variabel beschouwd. De variabele factoren zijn: - hergebruikpercentage, verhouding tussen black box en white box hergebruik, mate van productie van herbruikbare software artefacten, 5.6.2 Opbrengsten van hergebruik voor M&S Hergebruik kan verschillende effecten hebben, denk bijvoorbeeld aan een kostenverlaging, verlaging in de doorlooptijd of kwalitatief betere software en betere documentatie. A priori is het heel lastig om hier een nauwkeurige kwantitatieve schatting voor te geven. Dit is immers ook afhankelijk van het feit of er meer projecten door worden aangetrokken. Door hergebruik kunnen immers projecten uitgevoerd worden die eerst niet haalbaar waren bij een gegeven budget of doorlooptijd. Er wordt verondersteld dat de (aantoonbare) opbrengsten van hergebruik bestaan uit de vermeden ontwikkelkosten en de vermeden kosten voor het onderhoud ervan. Het is zeer moeilijk om een accurate schatting te geven van de besparing die M&S kan realiseren door hergebruik aangezien er op softwareontwikkelgebied heel weinig gegevens worden geregistreerd. Er zijn geen cijfers voorhanden over de mate waarin er gebruik wordt gemaakt van de herbruikbare artefacten, hoeveel besparing dit per project oplevert, hoeveel fouten er normaliter in de herbruikbare artefacten worden ontdekt, hoeveel tijd dit gemiddeld kost om ze te verhelpen etc. Het is aan te raden deze gegevens binnen het softwareontwikkelproces te registreren ten einde een goed inzicht te verkrijgen in het softwareontwikkelproces, hergebruik en de resultaten ervan. Hier worden deze factoren geschat om toch een indicatie te kunnen geven van het mogelijke resultaat door hergebruik. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 141 Gehanteerde definities en formules In Bijlage J zijn de formules, uitleg bij de gehanteerde schattingen en berekeningen van de verschillende scenario’s te vinden. DCA, development cost avoidance, bestaat uit de bespaarde ontwikkeluren door hergebruik van bestaande software artefacten. Dit is afhankelijk van het totale aantal ontwikkeluren binnen een organisatie, het percentage hergebruik dat wordt gerealiseerd en de verhouding tussen black box en white box hergebruik. SCA, service cost avoidance, is opgebouwd uit de bespaarde uren voor onderhoud doordat het onderhoud van de herbruikbare software artefacten centraal plaats vindt. Hierdoor hoeft een fout maar één keer gevonden en opgelost te worden. Binnen de projecten die de software artefacten hergebruiken hoeft dit onderhoud niet meer gedaan te worden, enkel de oplossing moet geïmplementeerd worden. De besparing is afhankelijk van het percentage hergebruik en de verhouding tussen black box en white box hergebruik. In Tabel 27 worden de waarden van DCA en SCA geschat bij verschillende hergebruikpercentages. Het hergebruikpercentage is hier gemeten in tijd, dus manuren. Indien het hergebruikpercentage bijvoorbeeld 20% is, dan is dit 20% van het totaal aantal manuren binnen Modelling & Simulation. Binnen Modelling & Simulation zijn er 25 software engineers, samen vertegenwoordigen die 40.000 manuren op jaarbasis. Bij een hergebruikpercentage van 20% betekent dit dat er op jaarbasis voor 8.000 manuren aan herbruikbare software wordt hergebruikt. Zie Bijlage J voor een nadere toelichting. Aspect DCA SCA 20% hergebruik 602.400 -28.000 30% hergebruik 903.600 8.000 40% hergebruik 1.204.800 44.000 Tabel 27 - DCA en SCA bij stijging hergebruikpercentage. In Tabel 27 is er vanuit gegaan dat er 90% black box wordt hergebruikt en 10% white box. Zoals is te verwachten nemen de opbrengsten toe bij een stijgend hergebruikpercentage. Tevens is te zien dat het SCA stijgt en positief wordt. Dit is te verklaren doordat er vanuit is gegaan dat onderhoud op jaarbasis 10% kost van de origineel geïnvesteerde ontwikkeluren in de herbruikbare artefacten. Ongeacht of ze hergebruikt worden of niet. Bij weinig hergebruik heeft dit dus een nadelig effect op het resultaat. Aspect DCA SCA BB:WB 90 - 10 903.600 8.000 BB:WB 60 - 40 734.400 -16.000 BB:WB 30 - 70 565.200 -40.000 Tabel 28 - DCA en SCA bij variatie ratios blackbox & whitebox hergebruik. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 142 In Tabel 28 is het effect van de verhouding tussen black box en white box hergebruik te zien bij een gelijkblijvend hergebruikpercentage van 30%. Er is te zien dat de opbrengsten flink afnemen naarmate er minder black box en meer white box wordt hergebruikt. Het SCA daalt ook sterk doordat de besparing op het centrale onderhoud afneemt naarmate white box hergebruik toeneemt. De totale opbrengst door hergebruik, RCA (reuse cost avoidance), is dus afhankelijk van het hergebruikpercentage en van de verhouding tussen het black box en white box hergebruik. Voor M&S wordt er vanuit gegaan dat de verhouding tussen black box en white box hergebruik circa 90 tegenover 10 procent is. Dit levert dan de volgende totale opbrengsten op bij een variërend hergebruikpercentage, zie Tabel 29. Aspect DCA SCA RCA 20% hergebruik 602.400 -28.000 € 574.440 30% hergebruik 903.600 8.000 € 911.600 40% hergebruik 1.204.800 44.000 € 1.248.800 Tabel 29 - RCA bij verschillende hergebruikpercentages. 5.6.3 Kosten van hergebruik voor M&S § 5.4.2 somt de verschillende kostenposten door hergebruik van software op: - ontwikkelingskosten van de herbruikbare artefacten, sturing op de productie van herbruikbare artefacten, sturing op de consumptie van herbruikbare artefacten, certificering van ontwikkelde herbruikbare artefacten, beheer en onderhoud van de herbruikbare artefacten in SourceForge, advisering en ondersteuning aan de projectteams. De kosten zijn hier afhankelijk van het aantal projecten dat software artefacten hergebruikt en van het deel van het totale aantal manuren dat wordt besteed aan de ontwikkeling van nieuwe herbruikbare software artefacten. Voor de schatting van de ontwikkelingskosten wordt er een percentage van het totaal aantal manuren van de software engineers gehanteerd. Bij bijvoorbeeld 2,5% zou dit met 25 software engineers die 1600 uur per jaar werken, 2,5% van 40.000 uur, 1000 uur zijn. Ter vergelijking: het EBF is jaarlijks aan ontwikkeling van nieuwe functionaliteit circa 150 uur kwijt. Het EBF management kost circa 80 uur. De overige activiteiten worden afhankelijk van het aantal projecten gesteld en op die manier berekent. Anders worden de berekeningen te complex en nog meer op grove schattingen gebaseerd. De cijfers in Tabel 30 laten zien dat de kosten voor hergebruik sterk afhankelijk zijn van de investeringen in de ontwikkeling van nieuwe herbruikbare software artefacten. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 143 Investering Aspect Totale Kosten 0% 2,5% 5% 7,5% 10% € 96.000 € 196.000 € 296.000 € 396.000 € 496.000 Tabel 30 - Totale kosten hergebruik bij variërende investeringen. De percentages in Tabel 30 geven weer hoeveel procent van het totale aantal ontwikkeluren van de software engineers binnen M&S wordt besteed aan het ontwikkelen van nieuwe herbruikbare artefacten. De kosten voor sturing van de productie en consumptie en ondersteuning zijn afhankelijk van het aantal projecten. Ter illustratie; stel dat de levensduur van een herbruikbaar artefact 5 jaar is en dat de huidige verzameling circa 10.000 ontwikkeluren vertegenwoordigd. Bekend is dat het ontwikkelen van een herbruikbaar artefact 150% van de normale inspanning, gemeten in uren, kost. Aangezien de projecten zelf de ontwikkeling van de software artefacten voor hun rekening nemen en de hergebruikstuurgroep de overhead, dus de extra 50%, betaalt is de investering enkel deze 50% overhead. Op een verzameling herbruikbare artefacten van 10.000 ontwikkeluren betekent dit dus dat er per 5 jaar, gezien de levensduur van de herbruikbare artefacten, een derde (50/150) geïnvesteerd moet worden om de verzameling in stand te houden. Dit is dus circa 3300 ontwikkeluren. Per jaar is dit dus circa 700 uur. Met 25 software engineers die elk 1.600 uur per jaar werken is dit een kleine 2% van het totaal aantal ontwikkeluren. Ter vergelijking; indien er structureel 10% zou worden geïnvesteerd zou men uitkomen op een verzameling ter grootte van zo’n 50.000 á 60.000 ontwikkeluren. 5.6.4 Eindbalans van hergebruik voor M&S Tabel 31 geeft de verschillende mogelijkheden voor het nettoresultaat van hergebruik weer indien de hergebruikpercentages en de investeringen in de ontwikkeling van nieuwe herbruikbare software artefacten tegenover elkaar gezet worden. Hierbij is 90% black box en 10% white box hergebruik aangenomen. Aspect 2,5 % 5 7,5 % 10 % 20% hergebruik € 378.440 € 278.440 € 178.440 € 78.440 30% hergebruik € 715.600 € 615.600 € 515.600 € 415.600 40% hergebruik € 1.052.800 € 952.800 € 852.800 € 752.800 Tabel 31 - Nettoresultaat van hergebruik. Op basis van deze schattingen levert hergebruik de afdeling M&S een positief resultaat op. De schattingen van het resultaat variëren van circa € 100.000,- tot € 1.000.000,- op jaarbasis onder de gemaakte aannames, afhankelijk van de hoeveelheid hergebruik en de investeringen in nieuwe software artefacten. Indien men uitgaat van een hergebruikpercentage van circa twintig á dertig procent met een investering in de ontwikkeling van herbruikbare artefacten van circa twee á vijf Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 144 procent dat ligt het resultaat in de orde van grootte van circa driehonderdduizend tot zevenhonderdduizend euro. Dit zijn ongeveer twee á vijf complete mensjaren. Concreet zal hergebruik voor TNO-D&V een verbetering in de concurrentiepositie betekenen door enerzijds een productiviteitsstijging en anderzijds een kostenbesparing, zoals dit reeds in § 5.3.2, Figuur 33 is toegelicht. In deze business case is geen rekening gehouden met extra opbrengsten door projecten die extra uitgevoerd kunnen worden waar dit zonder hergebruik niet mogelijk zou zijn geweest en de verbeterde kwaliteit van de software en documentatie. Tevens is er geen rekening gehouden met de invloed van de investeringen, en dus de grootte van de verzameling herbruikbare software artefacten, op de mate van hergebruik. M&S heeft op hergebruikgebied wel een vliegende start doordat er al een flinke verzameling aan herbruikbare software artefacten beschikbaar is. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 145 6. Advies aan TNO-D&V Deze scriptie bespreekt de toepassing van hergebruik van software artefacten binnen de afdeling Modelling & Simulation. Hierbij ligt de nadruk op hoe hergebruik van software procesmatig en organisatorisch is ingericht en welke software artefacten er worden hergebruikt. De doelstelling voor deze scriptie is als volgt geformuleerd: Het doen van aanbevelingen op het gebied van het softwareontwikkelproces en de inrichting van de organisatie daar omheen, met betrekking tot de invoering en bevordering van hergebruik van software artefacten. Dit hoofdstuk beantwoordt de onderzoeksvragen en formuleert de aanbeveling voor Modelling & Simulation. 6.1 Conclusie De conclusie van deze scriptie is dat hergebruik van software binnen de afdeling Modelling & Simulation hoofdzakelijk op adhoc niveau plaatsvindt. Hierdoor bestaan er diverse knelpunten in de toepassing van hergebruik die ertoe leiden dat zowel software engineers als projectleiders, onbewust en bewust, niet hergebruiken. De software artefacten die hergebruikt worden zijn hoofdzakelijk applicatiedomein onafhankelijk. Hierbij is hergebruik vooral gebaseerd op white box code hergebruik. De software artefacten die hergebruikt worden omvatten zowel tools als componenten en frameworks. De software artefacten zijn vaak niet specifiek ontworpen om hergebruikt te worden en de documentatie is veelal beperkt. Het eerste belangrijke aandachtspunt is dat er niets is geregeld voor de ontwikkelde herbruikbare software artefacten. Er is geen opvang en beheer van de herbruikbare artefacten nadat het project, waarin het is ontwikkeld, afloopt. Hierdoor is het bestaan van het herbruikbare artefact vaak ook onduidelijk voor andere software engineers. Dit vormt een belangrijk knelpunt. De huidige organisatie is gespitst op de aparte projecten en heeft geen oog voor projectoverschrijdende processen die voor hergebruik van software nodig zijn. Processen voor de herbruikbare software artefacten zoals configuratiemanagement en versiebeheer of problem and change management of ondersteuning zijn nu, buiten de projecten, niet formeel geregeld. Tevens worden de herbruikbare artefacten niet getoetst aan kwaliteitseisen. Het gebrek aan ondersteuning bij een herbruikbaar artefact en het gebrek aan vertrouwen in de kwaliteit en herbruikbaarheid vormen voor de software engineers belangrijke knelpunten. Soms worden deze processen op informele basis uitgevoerd door toegewijde software engineers maar vaak is er geen aanspreekpunt Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 146 of beheerder bekend. Het EBF vormt hier een uitzondering op en is dan ook de best practice binnen TNO-D&V. Hier zijn deze processen namelijk wel ingericht. Een ander belangrijk aandachtspunt is de sturing op hergebruik. Dit omvat zowel de sturing op de ontwikkeling van nieuwe herbruikbare software artefacten als de sturing op de ontwikkeling van software met deze herbruikbare artefacten. Aan beide processen is nog geen invulling gegeven. Hierdoor vindt de ontwikkeling van herbruikbare software artefacten beperkt plaats en ontbreekt veelal de visie of strategische keuze om bepaalde software artefacten herbruikbaar te maken. Vanuit de projectleiders bestaat er ook weerstand tegen het ontwikkelen van herbruikbare artefacten in zijn of haar project aangezien dit extra kosten met zich meebrengt. Als gevolg hiervan wordt de ontwikkeling van herbruikbare artefacten vaak geremd en is de ontwikkeling gebaseerd op reengineering. Het software artefact wordt hierbij over verschillende projecten steeds verder ontwikkeld. Dit proces is zowel afhankelijk van toeval en toewijding van software engineers als van het inzicht van de resourcemanager. De resourcemanager heeft immers invloed op hergebruik omdat hij de verdeling van software engineers over de projecten regelt. Op deze manier wordt hergebruik van kennis uit voorgaande projecten geborgd in de nieuwe projecten. Het gebrek aan sturing op het gebruik van de herbruikbare software artefacten leidt er mede toe, dat software engineers en projectleiders om diverse redenen ervoor kiezen om een software artefact zelf opnieuw te ontwikkelen. De redenen variëren van het gebrekkige inzicht in het bestaan van de herbruikbare artefacten, de mening dat het niet 100% aan de wensen voldoet tot aan het verkeerd beoordelen van de moeite die het kost om een dergelijk software artefact zelf te ontwikkelen. Ondanks de weerstand die er tegen hergebruik bestaat, zijn er binnen Modelling & Simulation ook concrete succesgevallen te zien. De baten van hergebruik zijn echter niet inzichtelijk en het effect van hergebruik is daarom moeilijk te kwantificeren. Voorbeelden van projecten die aanzienlijk baat hebben gehad zijn onder andere het SCOPE project en projecten die gebruik hebben gemaakt van het EBF. Om de kansen voor hergebruik binnen Modelling & Simulation beter te benutten moeten er een aantal aspecten geregeld worden die de knelpunten verhelpen. Dit moet ervoor zorgen dat hergebruik ook daadwerkelijk gebeurt indien dit mogelijk is. Hiervoor is het belangrijk dat er een projectoverschrijdende groep wordt ingericht om de kennis van de herbruikbare software artefacten te concentreren. Deze groep kan de projecten sturen op de ontwikkeling van herbruikbare software artefacten en de ontwikkeling van software met deze herbruikbare software artefacten. Tevens moet het onderhoud en beheer van de herbruikbare artefacten worden geregeld. Deze aspecten zijn ook te zien bij de best practices uit de literatuur en gedeeltelijk bij de best practice binnen TNO-D&V zelf. De best practices uit de literatuur hanteren ook een aparte organisatie voor de concentratie van kennis over de herbruikbare artefacten. Op deze manier kunnen ze de Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 147 ontwikkeling van herbruikbare software artefacten sturen en ook het gebruik ervan stimuleren en afdwingen. Binnen het EBF is de kennis over de herbruikbare artefacten ook geconcentreerd en zijn het beheers- en onderhoudsprocessen geregeld. Om deze veranderingen te realiseren is overtuiging en betrokkenheid van het management essentieel. Het kwantificeren van de mogelijke opbrengsten en kosten door hergebruik is geen doel binnen deze scriptie. Er is echter wel een schatting gemaakt van de mogelijke resultaten door hergebruik indien de aanbevelingen, die in deze scriptie worden gedaan, worden opgevolgd. Uit deze schattingen blijkt dat hergebruik van software artefacten de afdeling Modelling & Simulation een substantieel resultaat kan opleveren in de vorm van productiviteitsverbeteringen en kostenbesparingen. Het resultaat ligt in de orde van grote van enkele mensjaren. In deze schattingen bestaan de opbrengsten uit de bespaarde ontwikkel- en onderhoudsuren. De kosten worden gevormd door de investeringen in de (nieuwe) herbruikbare artefacten en projectoverschrijdende kosten. Deze projectoverschrijdende kosten bestaan uit de kosten voor sturing, onderhoud en beheer, certificatie en ondersteuning aan de projectteams. 6.2 Aanbevelingen Om de toepassing van en resultaten door hergebruik te verbeteren, worden hier voor Modelling & Simulation een aantal aanbevelingen geformuleerd die zijn gebaseerd op de voorgaande conclusies. Organiseren en concentreren Richt een groep op die verantwoordelijk is voor de projectoverschrijdende hergebruikprocessen. In deze groep zou het inzicht in, en de kennis van, de verzameling herbruikbare artefacten moeten hebben om de softwareprojecten hierop te kunnen sturen. Sturen De nieuwe groep zou de bevoegdheid moeten hebben om tijdens het offertetraject de projecten te adviseren en elke offerte te beoordelen op de mogelijkheid om bestaande software artefacten te hergebruiken. Hierdoor kan de groep een schatting gegeven van de besparing door hergebruik. Tevens kan de groep aangeven welke software artefacten zodanig ontwikkeld moeten worden dat deze hergebruikt kunnen worden. Herbruikbare artefacten Om optimaal gebruik te maken van de aanwezige software zou de huidige verzameling van herbruikbare artefacten geïnventariseerd moeten worden. Hier heeft de afdeling Modelling & Simulation een vliegende start aangezien er al een flinke verzameling aan herbruikbare software artefacten beschikbaar is. Zorg er Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 148 wel voor dat deze herbruikbare artefacten zijn getest en voorzien van documentatie om ervoor te zorgen dat hergebruik positief wordt ervaren. Modelling & Simulation zou zich bij de ontwikkeling van nieuwe herbruikbare software artefacten moeten richten op hoogwaardige herbruikbare artefacten. Dit kan zowel losse componenten als frameworks omvatten. Beheren Om ervoor te zorgen dat de herbruikbare software artefacten buiten de projecten om worden beheerd en onderhouden, zou de nieuwe groep de bevoegdheid moeten hebben om software engineers hiervoor verantwoordelijk te maken. Dit kunnen zowel individuele software engineers zijn als groepjes van software engineers, afhankelijk van de grote en complexiteit van het herbruikbare software artefact. Op deze manier wordt ook de kennis van de herbruikbare artefacten verspreid onder de software engineers die ook aan de projecten deelnemen. Financieren De nieuwe groep zou een budget moeten hebben waarmee het de projectoverschrijdende kosten en de kosten voor de ontwikkeling van (nieuwe) herbruikbare artefacten kan financieren. Dit kan worden gedaan door alle softwareprojecten een bepaald percentage van hun budget af te laten staan aan de nieuwe groep. Op deze manier worden de projecten ook gedreven om hun voordeel te doen met de beschikbare herbruikbare software artefacten. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 149 7. Reflectie In dit hoofdstuk geef ik een beschouwing over mijn afstudeerperiode bij TNOD&V. Hierbij ga ik in op de gehanteerde aanpak, het leerproces en de aspecten die ik achteraf anders zou hebben aangepakt. De aanpak De gehanteerde aanpak van theorieonderzoek, empirisch onderzoek en gewenste situatie voor TNO-D&V is voor mij een duidelijke en logisch opzet. Voor het empirische onderzoek bleken de interviews en gesprekken een zeer goede bron van informatie te zijn. Verder is de terugkoppeling van de theorie en bevindingen uit het empirische onderzoek richting de software engineers en het management van TNO volgens mij een goede manier om de mensen betrokken te houden bij het onderwerp. Voor de aanbevelingen heb ik een GFR-sessie gehouden waarin ik mijn belangrijkste aanbevelingen heb getoetst aan de visie van enkele software engineers, projectleiders en het afdelingshoofd. Dit is mij zeer goed bevallen omdat ik op deze manier terugkoppeling krijg op mijn visie en de deelnemers op deze manier toch weer meedenken over het onderwerp. Voor de lezer oogt de opbouw van de scriptie sequentieel. Het schrijven van deze scriptie is echter een stapsgewijs leerproces geweest met een sterk incrementeel karakter. Incrementeel scriptie schrijven Mijn inzicht in de materie is stapsgewijs tot stand gekomen en periodiek bijgestuurd door de input van de begeleiders van de UT en TNO. Hierdoor ben ik veel tijd kwijt geweest aan het continue updaten en verbeteren van stukken in mijn verslag. Tevens merk ik dat ik moeite heb met het compact formuleren van datgene wat ik wil schrijven. Indien ik, op basis van de kennis die ik nu heb, opnieuw mijn scriptie zou schrijven zou deze compacter en meer to the point zijn. Omgevallen boekenkast Ik heb voor mezelf geen goede afbakening gemaakt voor de tijd en inhoud van het literatuuronderzoek. Dit kwam omdat het onderwerp mij inhoudelijk niet helemaal duidelijk was. Hierdoor ben ik tot ver in mijn afstuderen bezig geweest met de theorie. Terugkijkend had ik in een vroeg stadium meer met de software engineers en begeleiders moeten spreken om hier een beter inzicht van te krijgen. Tevens had ik in het begin meer boeken moeten lezen in plaats van artikelen. De boeken over hergebruik geven een duidelijker inzicht in het totaalplaatje terwijl de artikelen vaak zijn gericht op zeer specifieke onderwerpen. Naar mijn mening is dit verslag op literatuurgebied een omgevallen boekenkast geworden. Interviews Qua interviews geldt hetzelfde als voor de theorie, ik had in een vroeg stadium meer met de mensen binnen TNO moeten spreken om een duidelijker beeld te krijgen van datgene wat ik tijdens de interviews zou willen achterhalen. Ik heb ook Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 150 gemerkt dat de interviews betere informatie opleverde naarmate ik meer interviews had gehouden. Na de formele interviews heb ik ook nog met veel personen binnen M&S gesproken indien ik vastliep of bepaalde punten of vragen onbeantwoord bleven. Op deze manier heb ik nog veel informatie boven water gehaald. Totaalbeeld Zelf ben ik tevreden over mijn functioneren tijdens deze afstudeerperiode. De gemaakte afspraken zijn mijns inziens goed nagekomen en de gemaakte planning is redelijk goed aangehouden. Ik denk dat ik, gezien de uiteenlopende wensen en opvattingen van de vier begeleiders, een product heb afgeleverd waar alle begeleiders tevreden over zijn. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 151 8. [BAR91] [BAS88] [BAS97] [BRA98] [BRI97] [DAV94] [DOB96] [DOD98] [DON05] [DOU97] [DUS95] [EZR02] [FAF94] [FEN97] [FIC01] [FRA95] Referenties Barnes, B.H., Bollinger, T.B., (1991), Making Reuse CostEffective, IEEE Software, Vol. 8 No. 1, pp. 13-24. Basili, V.R., Caldiera, G., Rombach, H.D., (1994), The Goal Question Metric Approach, http://www.cs.umd.edu/users/ mvz/handouts/gqm.pdf, (Januari 2005) Bassett, P.G., (1997), Framing Software Reuse – Lessons from the Real World, Eerste druk, New York: Prentice Hall. Brassé, M., (1998), Code of Practice - Verificatie, Validatie & Accreditatie in het kader van EBF Ontwikkeling, TNO Fysisch en Elektronisch Laboratorium, Den Haag. Briand L.C., Differding, C.M, Rombach, H.D., (1997), Practical Guidelines for Measurement-Based Process Improvement in M. Ezran, M. Morisio, C. Tully, Practical Software Reuse, Eerste druk, Londen: Springer-Verlag, pp. 112-116 Davis, T., (1994), The Reuse Capability Model, Software Productivity Consortium, http://www.stsc.hill.af.mil/ crosstalk/1994/03/xt94d03d.asp (December 2004) Dobler, H., Mittelmann, A., (1996), Development of an OO Energy Management System using the ami Approach, http://www.artmfriends.at/am/publications/Eaug96_Paper.pdf, (Februari 2005) U.S. Department of Defense, (1998), High-Level Architecture Rules Version 1.3, www.openskies.net/files/HLA-rules1-3.pdf (mei 2005). Dondertman, B., Kamstra, M., (2005), Programmeurshandleiding ORB-simulatiekernel, TNO Fysisch en Elektronisch Laboratorium, Den Haag. Doublait, S., (1997), Standard Reuse Practices: Many Myths vs. a Reality, StandardView June 1997, Vol.5 No. 2, pp. 84-91. Dusink, L., Katwijk, J. van, (1995), Reuse Dimensions, ACM 1995, pp. 137-149. Ezran, M., Morisio, M., Tully, C., (2002), Practical Software Reuse, Londen: Springer-Verlag. Fafchamps, D., (1994), Organizational factors and reuse, IEEE Software, Vol. 11 No. 5, pp. 31-41. Fenton, N.E., Pfleeger, S.L., (1997), Software Metrics - a rigorous & practical approach, Tweede druk, Boston: PWS Publishing Company. Fichman, R.G., Kemerer, C.F., (2001), Incentive Compatibility and Systematic Software Reuse, Journal of Systems and Software 2001, Vol. 57 No. 1, pp. 45-94. Frakes, W.B., Fox, C.J., (1995), Sixteen questions about software reuse, Communications of the ACM June 1995, Vol. 38 No. 6, pp. 75-87 Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 152 [FRA96] [HAL97] [HAR98] [HUL92] [JAC97] [JEN97] [KAL01] [KOL91] [KON96] [KRU92] [LAN02] [LYN98] [MIL02] [MCC95] Frakes, W.B., Terry, C., (1996), Software Reuse: Metrics and Models, ACM 1996, Vol. 28 No. 2, pp. 415-435. Hallsteinsen, S., Paci, M., (1997), Experiences in Software Evolution and Reuse – Twelve Real World Projects, Research Reports Esprit - Project 9809 Volume 1, Berlijn: Springer. Hars, A., Im, I., (1998), Knowledge Reuse – Insights from software reuse, Americas Conference on Information Systems (AMCIS), August 1998, Baltimore, Maryland Hulshof, M., (1992), Leren Interviewen – het mondeling verzamelen van informatie, Eerste druk, Groningen: WoltersNoordhoff. Jacobson, I., Griss, M., Jonsson, P., (1997), Software Reuse Architecture, Process and Organization for Business Success, Eerste druk, New York: ACM Press. Jense, H., Kuijpers, N., Elias, R.J., (1997), Electronic Battlespace Facility for Research, Development and Engineering, http://citeseer.ist.psu.edu/cache/papers/cs/16366/http:zSzzSzwww pa.win.tue.nlzSzkuijperszSzpublicationszSzsiwsep97.pdf/jense97e lectronic.pdf (April 2005). Kallio, P., Niemelä, E., (2001), Documented Quality of COTS and OCM Components, 4th ICSE Workshop on Component-Based Software Engineering 2001, www.sei.cmu.edu/pacc/ CBSE4_papers/Kallio-CBSE4-2.pdf (April 2005). Koltun, O., Hudson, A., (1991), A Reuse Maturity Model, in H. Mili, et al., Reuse-Based Software Engineering – Techniques, organization and measurement, first edition, New York: John Wiley & Sons INC., pp. 81-82. Kontio, J., Caldiera, G., Basili, V.R., (1996), Defining Factors, Goals and Criteria for Reusable Component Evaluation, Presented at the CASCON '96 Conference, Toronto Canada. Krueger, C.W., (1992), Software Reuse, ACM Computing Surveys, Vol. 24 No. 2, pp. 131-183. Langeslag, P.J.H., Gouweleeuw, R.G.W., Fiebelkorn, S., (2002), Familievorming simulators KL deelrapport ontwikkelingen in binnen- en buitenland, TNO Fysisch en Elektronisch Laboratorium. Lynex, A., Layzell, P.J., (1998), Organizational considerations for software reuse, Annals of Software Engineering 1998, Vol. 5, pp. 105-124. Mili, H., et al. (2002), Reuse-Based Software Engineering – Techniques, organization and measurement, Eerste druk, New York: John Wiley & Sons INC. McClure, C., (1995), Experiences in organizing for software reuse, Extented Intelligence Inc. Chicago. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 153 [MOR00] [MOR02] [NOL00] [PAN98] [PAU93] [POU97] [POU98] [PRE00] [PRI93] [PUL96] [RAV03] [ROT99] [SLU04] [SMI94] [SOM04] Morisio, M., Tully, C., Ezran, M., (2000), Diversity in Reuse Processes, IEEE Software July, August 2000, pp. 56-63. Morisio, M., Ezran, M., Tully, C., (2002), Success and Failure Factors in Software Reuse, IEEE Transactions on Software Engineering april 2002, Vol. 28 No. 4, pp. 340-357. Nolan Norton Institute (2000), Beheersing en besturing van complexiteit in het netwerktijdperk, architectuur als managementinstrument, in T. Thiadens, Beheer van ICTVoorzieningen – Infrastructuren, applicaties en organisatie, vierde herziene druk, Schoonhoven: Academic Service, pp. 52-53. Pan, D., (1998), Software Reuse, University of Calgary, Department of Computer Science, sern.ucalgary.ca/courses/ seng/693/W98/pand/reuse_lv.html (December 2004). Paulk, M.C., et al, (1993), Capability Maturity Model for Software, Versie 1.1, Software Engineering Institute, http://www.sei.cmu.edu/cmm/, (December 2004). Poulin, J.S., (1997), Fueling Software Reuse with Metrics, http://home.stny.rr.com/jeffreypoulin/Papers/Object_Mag_Metrics /oometrics.html, (april 2005). Poulin, J.S., (1998), Selling Software Reuse to Management, Fourth Joint Conference on Infromation Sciences, http://home.stny.rr.com/jeffreypoulin/Papers/JCIS98/ sellingreuse.html, (Mei 2005). Pressman, R.S., Ince, D., (2000), Software Engineering – A Practitioner’s Approach, Vijfde editie, Maidenhead: McGrawHill. Prieto-Díaz, R., (1993), Status Report: Software Reusability, IEEE Software, Vol.10 No. 3, pp. 61-66. Pulford, K., Kuntzmann-Combelles, A., Shirlaw, S., (1996), A quantitative approach to Software Management – The Ami Handbook, Addison-Wesley, Wokingham. Ravichandran, T., Rothenberger, M.A., (2003), Software Reuse Strategies and Component Markets, Communications of the ACM August 2003, Vol. 46 No. 8, pp. 109-114. Rothenberger, M.A., Kulkarni, U.R., Hershauer, J.C., (1999), Software Reuse Success Factors: A Qualitative Assessment of Developers’ perception, American Conference on Information Systems (AMCIS), Milwaukee Sluimer, R.R., et al. (2004), Familievorming trainingssimulators KL: richtlijnen, TNO Technische Menskunde en TNO Fysisch en Elektronisch Laboratorium, Den Haag. Smith, L., (1994), Software Reuse – Technologies and Applications, http://www.stc-online.org/cdrom/cdrom2000/stsc/Reports/Reuse.pdf, (December 2004). Sommerville, I., (2004), Software Engineering, seventh edition, Addison-Wesley Publishers & Pearson Education, Harlow. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid 154 [THI02] [TNO03] [TUR99] [VER04] [VAD98] [VIL95] [WIT02] Thiadens, T., (2002), Beheer van ICT-Voorzieningen – Infrastructuren, applicaties en organisatie, Vierde herziene druk, Academic Service, Schoonhoven. TNO-D&V (2003), The Cornerstone of building quality Software, IT/QA forum, Den Haag. Turrell, C., (1999), High Level Architecture, Simulation Technology Vol 1. Issue 4. 1999, http://www.sisostds.org/ webletter/siso/iss_18/art_149.htm (april 2005). Verschuren, P., Doorewaard, H. (2004), Het ontwerpen van een onderzoek, Derde druk, Utrecht, Lemma BV. Vadapalli, A., Nazareth, D.L., (1998), Software Reuse Management: Development of a Model in the Context of the Capability Maturity Model, Americas Conference on Information Systems (AMCIS), Baltimore Villalba, J.M., (1995), Final Report – Implementation and Evaluation of a Software Reuse Methodology, http://www.esi.es/VASIE/Reports/All/10936/Report/index.htm, (Januari 2005). Witberg, R.R., (2002), Memorandum ORB Simulatie Kernel, TNO Fysisch en Elektronisch Laboratorium, Den Haag. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid A.1 Bijlage A Kosten en opbrengsten van hergebruik Figuur 35 toont de verschillende mogelijke kosten en opbrengsten van hergebruik van software artefacten. De kosten kunnen opgesplitst worden naar de ‘design for reuse’ (Producer Costs) en de ‘design with reuse’ (Consumer Costs) activiteiten. Figuur 35 - Kosten en Opbrengsten van hergebruik [FIC01]. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid B.1 Bijlage B Dimension of Maturity Motivation/Culture Initial/Chaos (1) Reuse is Reuse Maturity Framework Monitored (2) Coordinated (3) Reuse is encouraged Reuse is incentivized discouraged Planned (4) Ingrained (5) Reuse is Reuse is “the way we indoctrinated do business” Planning for reuse Nonexistent Grassroots activity Targets of opportunity Business Imperative Part of a strategic plan Breadth of reuse Individual worker Work group Department Division Enterprise Individual worker Shared initiative Dedicated individual Dedicated Group Corporate Group Process by which Reuse process Reuse questions Design emphasis Focus on All software products reuse is leveraged chaotic; unclear raised at design placed on reuse of developing families genericized for future where reuse comes review (after the off-the-shelf part of products reuse in fact) Reuse Inventory Salvage yards (no Catalog Identifies Catalog organized Catalog includes Planned activity to (assets) apparent structure Language-and along application- generic data acquire or develop to collection) platform specific specific lines processing functions missing pieces in Involvement Responsibility for making reuse happened parts catalog Classification Informal, Multiple Single Scheme, Some domain Formal, complete, Activity individualized independent catalog published analyses performed consistent, timely schemes for periodically to determine classification classifying parts categories Technology Personal Tools, if Lots of tools, e.g, Classification aids Electronic Library Automated support Support any configuration and synthesis aids separate from devel- integration with management, but opment development system not specialized to environment reuse Metrics No Metrics on level Number of lines of Manual tracking of Analyses performed All system utilities, of reuse, payoff, or reused code reuse occurrences of to identify expected software tools, and cost of reuse factored into cost catalog parts payoffs from accounting mecha- developing reusable nisms instrument to models parts track reuse Legal, contractual, Inhibitor to getting Internal accounting Data rights and Royalty scheme for Software treated as accounting started scheme for sharing compensation issues all suppliers and key capital asset costs, allocating resolved with customers benefits customer consideration Tabel 32 - Reuse Maturity Framework [KOL91]. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid C.1 Bijlage C Toelichting op de AMI methode AMI is een variatie op het GQM. AMI staat voor Application of Metrics in Industry en voor Assess/Analyse, Metricate and Improve [DOB96]. Deze methode is gebaseerd op de GQM methode en het CMM. Het biedt een gestructureerde manier om aspecten binnen het softwareontwikkelproces te kwantificeren. De methode is opgedeeld in vier aparte fasen, Assess – Analyse – Metricate – Improve. Naast deze vier activiteiten is AMI opgebouwd uit twaalf stappen. In Tabel 33 worden deze stappen weergegeven. Fase Assess Analyse Metricate Improve Nr. 1 2 3 4 5 6 7 8 9 10 11 12 Stap Assess your Environment Define primary management goals Check the goals against the assessment Break down management goals into sub-goals Check consistency of resulting goal tree Identify metrics from sub-goals Write and validate measurement plan Collect primitive data Verify primary data Distribute, analyse and review measurement data Validate the metrics Relate the data to the goals and implementation actions Tabel 33 - De 12 stappen van de AMI methode [PUL96][DOB96]. Fase ‘Assess’ Stap 1 De eerste stap in deze fase is het beoordelen van de huidige situatie om op basis daarvan realistische doelen te kunnen stellen. Het doel van deze stap is om inzicht te krijgen in probleemgebieden en onderwerpen die aandacht nodig hebben (binnen het softwareontwikkelproces). Bij het analyseren van deze gebieden kan er door een aantal gezichtspunten gekeken worden, namelijk vanuit een proces-, productof communicatie gericht gezichtspunt. Het is belangrijk niet direct te hoog gegrepen doelen te stellen. Start met een simpel programma en probeer het langzaam uit te bouwen. Stap 2 Nu er een beginsituatie gedefinieerd is en de aandachtsgebieden bekend zijn, kunnen de primaire doelen van de metingen vastgesteld worden. Er zijn hierbij twee soorten doelen te onderscheiden; het kennisdoel en het prestatiedoel. Het kennisdoel dient ter verbetering van inzicht in dat wat er gemeten wordt. Het prestatiedoel wordt gebruikt indien men weet waar de gebreken liggen en men deze wil verhelpen. De keuze voor een aantal doelen is afhankelijk van het budget en de ervaring met het meten zelf. Het CMM kan hier worden gebruikt om verbeterdoelen vast te stellen. Een voorbeeld van een doel is ‘To gain better understanding of the product quality’. Elk doel heeft ook een eigen ‘time-scale’, dit is de periode waarin het doel bereikt dient te worden. Het is aan te raden geen lange termijn of te algemene doelen te stellen. TNO-rapport ERROR! REFERENCE SOURCE NOT FOUND. C.2 Error! Reference source not found. Bijlage C Stap 3 De laatste stap in deze fase betreft het valideren van de gestelde doelen met de uitkomsten van de beoordeling van de huidige situatie, de ‘time-scale’ en het budget voor de metingen. Fase ´Analyse’ Stap 4 De gestelde doelen kunnen slechts zelden direct beantwoord worden. Om beantwoording mogelijk te maken is het noodzakelijk de doelen op te delen in subdoelen waarvoor het wel mogelijk is metingen op te stellen. Door de opsplitsing van doelen naar subdoelen ontstaat er een ‘goal-tree’. Het is belangrijk de verschillende betrokken participanten te betrekken aangezien zij allen een ander beeld hebben van de belangrijke aspecten in een dergelijk doel. Stap 5 In de vorige stap is het eerste deel van de zogenaamde ‘goal-tree’ gemaakt. De primaire doelen zijn met behulp van de verschillende stakeholders uitgesplitst naar subdoelen. In deze stap wordt gekeken of deze ‘goal-tree’, met andere woorden de combinatie primaire doelen en subdoelen, in balans en consistent is. Qua consistentie is het belangrijk om te kijken of de subdoelen daadwerkelijk de primaire doelen beantwoorden en of er geen contradicties bestaan tussen verschillende subdoelen. Het is verstandig om hierbij wederom de verschillende stakeholders te betrekken aangezien zij ook kunnen helpen de subdoelen te verbeteren. Stap 6 De ‘goal-tree’ is in de vorige twee stappen opgesteld en geverifieerd. In deze stap worden de subdoelen vertaald naar concrete metingen. De subdoelen dienen op een dusdanig laag niveau te zitten dat de entiteiten waar het om gaat tastbaar en de attributen meetbaar zijn. In deze stap is het de taak de juiste attributen te identificeren die gemeten dienen te worden. De metingen kunnen zowel objectief als subjectief van aard zijn. Objectieve metingen zijn gemakkelijk kwantificeerbaar en corresponderen over het algemeen met de attributen van een entiteit. Subjectieve metingen zijn kwalitatief en hebben geen absolute waarde, ze worden dan ook uitgedrukt in zelfgedefinieerde schalen. Het is goed om beide soorten metingen te gebruiken, houd de metingen echter wel simpel en vermijd ingewikkelde subjectieve metingen. Fase ‘Metricate’ Stap 7 In deze fase wordt op basis van de opgestelde metingen een meetplan gemaakt. Dit plan omvat de volgende onderdelen (volgens de AMI template). In Tabel 34 is de AMI template voor metrics opgenomen. - Doel van het meetplan ERROR! REFERENCE SOURCE NOT FOUND. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid C.3 - - Gedetailleerde samenvatting van stap 1 tot nu. De context, assessment en doelen zijn essentieel voor correcte definities van de metingen en exploitatie van de data. Definities van de meting en analyse procedure Dit beschrijft positie in de ‘goal-tree’, wie hem analyseert en wie de resultaten ontvangt. Tevens wordt beschreven hoe de meting is opgebouwd (uit één of meerdere metingen) en hoe en door wie de data wordt verzameld. AMI levert hier ook een template voor. Verantwoordelijkheden en planning Dit beschrijft de verschillende verantwoordelijkheden en milestones. Verwijzingen Eventuele extra informatie. Logboek voor metingactiviteiten Log-procedure voor monitoring en analyse van het meetprogramma. Deel A: Definitie van de meting en analyse procedure Naam Naam van de metric en eventuele synoniemen. Definitie De relevante attributen die nodig zijn voor deze metric. De manier waarop de metric wordt berekend en de primitieve metrics waaruit deze metric is opgebouwd. Doel Beschrijft waarom deze metric wordt gebruikt. Analyse Procedure Beschrijft hoe deze metric gebruikt dient te worden. Eventuele precondities, modellen en technieken en tools worden ook beschreven. Verantwoordelijkheden Beschrijft wie verantwoordelijk is voor het verzamelen van de data, het voorbereiden van de reporten en het analyseren van de uitkomsten. Benodigde training Beschrijft welke training/kennis noodzakelijk is voor de toepassing en interpretatie van deze metric. Deel B: Definitie van primitieve metingen en verzamelprocedures Naam Naam van de primitieve meting. Definitie Eenduidige beschrijving van de metric. Verzamelprocedure Beschrijving van de procedure tot het verkrijgen van de metric. Data verzamel tools en technieken. Het moment waarop de data wordt verzameld, het verificatie proces en de plaats waar de data wordt opgeslagen. Verantwoordelijkheden Beschrijving wie er verantwoordelijk is voor het verzamelen, verifiëren en opslaan van de data. Tabel 34 - Metric template [PUL96]. Stap 8 Nu het meetplan is opgesteld en de verantwoordelijkheden en procedures zijn vastgelegd, kan het verzamelen van data beginnen. Onafhankelijk van de manier waarop de data wordt verkregen, is het verstandig te bekijken hoe dit proces verloopt. Het doel hiervan is het verminderen van de benodigde moeite en het verbeteren van de accuraatheid van de metingen. TNO-rapport ERROR! REFERENCE SOURCE NOT FOUND. C.4 Error! Reference source not found. Bijlage C Stap 9 De laatste stap in deze fase is de verificatie van de verzamelde data. Er zijn hier een aantal aspecten die minimaal gecontroleerd dienen te worden: - controleer de verzamelde data op compleetheid en accuraatheid, - controleer op herhalende patronen die verkeerd gebruik aantonen, - controleer op ongebruikelijke uitkomsten en probeer een verklaring te vinden. Fase ‘Improve’ Stap 10 Nu de data voorhanden is kan de analyse en verwerking ervan beginnen. Het is aan te raden simpele grafische representaties te hanteren voor de presentatie van de resultaten. Bij het analyseren van de data is het ook belangrijk de achtergrond informatie te gebruiken en de betrokkenen te raadplegen om de uitkomsten in de juiste context te kunnen plaatsen. De uitkomsten van de verwerkte data kunnen middels rapporten regelmatig verspreid worden. Op deze manier blijven de personen die betrokken zijn bij de metingen geïnformeerd en ook toegewijd bij het meetprogramma. Stap 11 Nu de data is verwerkt kan het valideren ervan beginnen. Hierbij wordt gekeken of er trends aanwezig zijn en of deze te verklaren zijn, of er genoeg data is om überhaupt trends te identificeren, of er ongebruikelijke of onverwachte resultaten zijn en of de resultaten ‘passen’ bij processen en hoe ze overeenkomen met de verwachtingen van de betrokkenen (subjectieve analyse). De uitkomsten van deze analyse dienen ook in het meetrapport opgenomen te worden. Stap 12 In de laatste stap van de AMI methode worden de uitkomsten gerelateerd aan de initieel gestelde doelen. De organisatie dient zich te realiseren dat de uitkomsten slecht aanwijzingen zijn voor potentiële problemen en niet een volledig bewijs leveren. Het doel van deze analyse is het bekijken waar de aandacht nu op gericht kan worden. Het is een voorbereiding op stap 1 van de AMI methode. Terugblik De AMI methode biedt een framework voor het kwantificeren van gewenste aspecten uit het softwareontwikkelproces. Hierbij wordt op een systematische manier een deductie uitgevoerd van onmeetbare primaire doelen naar specifieke aspecten die wel meetbaar zijn. Per stap wordt gevalideerd of de afleiding correct is. AMI biedt verschillende templates voor meetplannen en definities van metingen en beschrijft de benodigde organisatorische aspecten. ERROR! REFERENCE SOURCE NOT FOUND. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid D.1 Bijlage D Best practices Sodalia and Eliop In deze bijlage kunt u nadere informatie vinden over de tweede behandelde best practices, Sodalia en Eliop [EZR02][MOR00][VIL95][DOU97]. Sodalia Software Engineers Circa 300 Software Proces CMM 3 Maturity ISO 9001 Bijzonderheden Sodalia is na haar oprichting binnen een periode van 4 jaar tot CMM niveau 3 opgeklommen en ISO 9001 gecertificeerd. Na de oprichting werd de nieuwe groep werknemers (veelal goed opgeleide jonge werknemers met een sterke achtergrond in object technologieën) snel samengesteld. Om deze heterogene groep tot een eenheid te smeden vond Sodalia het noodzakelijk om een set formele procedures te hanteren om het softwareontwikkelproces te ondersteunen. Dit heeft ook sterk bijgedragen aan het snel bereiken van het CMM niveau 3. Markt Telecommunicatie Software Producten, bijvoorbeeld Telecom Netwerk Management (TNM) Systemen. Sodalia heeft verschillende geïdentificeerde productfamilies. In zo’n productfamilie worden de specifieke producten aangepast aan de wensen en context van de klant. Binnen de productfamilie TNM hebben de producten verschillende serviceniveaus en functionaliteiten. Aantal Klanten Beperkt, hoofdzakelijk Telecom Italia en Bell Atlantic. Potentie voor Het doel van Sodalia is het ontwikkelen van software applicaties die voor de verschillende hergebruik klanten aangepast kunnen worden (de productfamilies). Mede gezien het domein en het feit dat Sodalia één programmeertaal gebruikt (C++), is de conclusie dat de potentie voor hergebruik zeer groot is. Methoden, Object georiënteerde analyse en ontwerp gebruikmakend van UML. De ontwikkeling technieken en geschiedt op basis hiervan in C++ waarbij design patterns en CORBA vaak worden technologie gebruikt. Scope Maakt gebruik van applicatie frameworks waarin de verschillende applicaties ontwikkeld worden [HAL97]. In deze frameworks worden zowel algemene als domein georiënteerde componenten verwerkt. Doelen van Het verbeteren van de softwareontwikkelingproductiviteit. hergebruik Het vergroten van de flexibiliteit in het productaanbod. Aanwezigheid - Management support: Aanwezig, het management ziet hergebruik als een belangrijk kritieke onderdeel van de bedrijfsstrategie. Er is ook een budget vrijgemaakt om een groep van succesfactoren 12 analisten, architecten en softwareontwikkelaars de verschillende issues met hergebruik aan te laten pakken. - Hergebruik processen: Aanwezig, er is een apart proces voor de productie van - Aanpassing niet-hergebruik processen: Overal, volledige integratie hergebruik in - Anticiperen op menselijke factoren: Niet nodig, geen weerstand. Vanaf de oprichting herbruikbare artefacten en ondersteuning voor hergebruik. normale software ontwikkelactiviteiten. van Sodalia is er reeds nadruk gelegd op hergebruik van software artefacten en nieuwe ERROR! REFERENCE SOURCE NOT FOUND. TNO-rapport ERROR! REFERENCE SOURCE NOT FOUND. D.2 Error! Reference source not found. Bijlage D werknemers accepteren dit, tevens zijn er trainingen en bewustzijnsinitiatieven (zie onderdeel weerstand). - Incrementele invoering: Hergebruik is in vier fasen ingevoerd. (zie incrementele - Repository: Zelf ontwikkelde repository, Sodalia Assets Library Management System invoering van hergebruik bij Sodalia onder Tabel 35) (SALMS). Herbruikbare Objecten Artefacten Vanuit het management wordt het aangemoedigd artefacten vanuit alle fasen van het softwareontwikkelproces her te gebruiken. In de praktijk komt dit vooral neer op de volgende artefacten: - Frameworks - Class libraries - Componenten De herbruikbare artefacten bevatten over het algemeen code, analyse en ontwerpdocumentatie en testcases. Intern/Extern Artefacten (horizontaal & verticaal) worden zowel intern als extern verkregen waarbij horizontale componenten typisch extern verworven commerciële producten zijn. Processen Productie Herbruikbare artefacten worden op drie manieren verzameld. Ten eerste worden voorafgaand aan de projecten door middel van domein analyse herbruikbare (verticale) artefacten geproduceerd. Ten tweede worden hergebruik specialisten soms tijdelijk in een project geïntegreerd om een herbruikbaar artefact te ontwikkelen. Tot slot is er een centraliseerde inkoop van externe herbruikbare artefacten. Dit vindt plaats binnen de Reuse Support Organization (RSO). Ondersteuning Het RSO is verantwoordelijk voor de ondersteuning. Dit omvat het beheer en onderhoud van de herbruikbare artefacten, methodologische ondersteuning aan hergebruikers (op het gebied van UML of object georiënteerd ontwerpen) en kwalificatie van herbruikbare artefacten. Sodalia heeft een kwaliteitsteam die validatie en verificatie activiteiten alsmede formele audits uitvoert op de herbruikbare artefacten voordat ze in de repository opgenomen worden. Consumptie Het consumeren van herbruikbare artefacten is geïntegreerd in de normale softwareontwikkelprocessen. Management Zetten van doelen, vrijmaken van resources en budgetten, realiseren benodigde organisationele structuur. Organisatie Rollen Reuse leader: De reuse leader is verantwoordelijk voor het coördineren en bijhouden van alle hergebruik activiteiten. Hij ondersteunt de projecten bij het hergebruiken en helpt ook bij de identificatie van hergebruikmogelijkheden. Hij stemt de prioriteiten hier ook op af (productie herbruikbare artefacten). Reuse support engineer: ERROR! REFERENCE SOURCE NOT FOUND. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid D.3 De reuse support engineer ondersteunt de projecten op zowel methodologisch gebied (UML, CORBA) als bij het gebruik van herbruikbare artefacten. Reusable asset developer: De reusable asset developer is verantwoordelijk voor het ontwikkelen van herbruikbare artefacten. Reusable assets repository manager: De reusable assets repository manager is verantwoordelijk voor het beheren van SALMS. Structuur In Figuur 36 is de organisatie van Sodalia m.b.t hergebruik te zien. Het RSO is verantwoordelijk voor de productie van de herbruikbare artefacten en de productie en consumptie van de herbruikbare artefacten is zo goed als ontkoppeld van elkaar. Dit komt overeen met de Team Producer Structuur. Hierbij is het RSO het producer team. Wat betreft de ontwikkeling van de applicatie frameworks is gebruik gemaakt van een team bestaande uit ontwikkelaars van verschillende projecten waar dit framework gebruikt kan worden. De ontwikkelaars zijn hier dus ook de potentiele gebruikers, dit verzekert ten eerste dat de requirements van de huidige en mogelijk toekomstige applicatie vervuld worden en tevens dat de gebruikers bekend zijn met het framework. De relatie tussen dit team en het RSO is onbekend. Verrekening Er is geen beloningssysteem om hergebruik van herbruikbare artefacten aan te moedigen (te complex en fraudegevoelig). De overhead van hergebruik is inzichtelijk gemaakt door de structurele scheiding tussen ontwikkeling voor hergebruik en ontwikkeling met hergebruik. Voor het RSO is er een bepaald budget beschikbaar. Tools De repository (SALMS). Weerstand Doordat Sodalia relatief kort bestaat en hergebruik meteen vanaf het begin in de processen is verweven, was de weerstand tegen hergebruik nihil. Het management heeft ook een sterke invloed gehad door de getoonde betrokkenheid (presentaties, briefings, newsletters, trainingen). Meten Er zijn geen metrics gedefinieerd om bepaalde aspecten te kwantificeren. Er zijn wel studies geweest voor metrics in de repository maar er zijn nog geen metingen operationeel. In navolging van CMM niveau 3 is het wel noodzakelijk om metrics te definiëren. De volgende stap is dan ook om deze metrics ook op hergebruik aspecten toe te passen. Resultaten Er zijn geen kwantitatieve resultaten omdat de benodigde metingen hiervoor op het gebied van proces efficiency, economische gevolgen en ROI’s ontbreken. De resultaten dienen bekeken te worden aan de hand van de gestelde doelen van het hergebruik-initiatief. Het hergebruikniveau lag door de toepassing van de applicatieframeworks wel hoog, nieuwe applicaties die gebouwd zijn op basis van de frameworks bevatten circa 20-30% aan nieuwe applicatie specifieke code. Dit betekent dat 70-80% hergebruikt is. Tabel 35 - Eigenschappen en hergebruikfactoren bij Sodalia. ERROR! REFERENCE SOURCE NOT FOUND. TNO-rapport ERROR! REFERENCE SOURCE NOT FOUND. D.4 Error! Reference source not found. Bijlage D Incrementele invoering van hergebruik bij Sodalia: - Fase 1 Projecten zijn zelf verantwoordelijk voor de verwerving van herbruikbare componenten. Als gevolg hiervan vindt hergebruik bijna exclusief in het project zelfs plaats, of in sterk verbonden projecten. De rol van het RSO is hierbij het ondersteunen in de methodologie en het beheer van de repository waarin de herbruikbare artefacten worden opgeslagen. - Fase 2 Het RSO wordt verantwoordelijk voor de verwerving van horizontale artefacten. Projecten blijven verantwoordelijk voor de verwerving van verticale artefacten. Hergebruik wordt projectoverschrijdend. - Fase 3 Het RSO is nu volledig operationeel en verantwoordelijk voor het verwerven van alle type artefacten. Het RSO wordt georganiseerd in productlijnen die elk een eigen groep projecten ondersteunen. - Fase 4 Deze fase vormt een optimalisatie van fase 3. De RSO is nu onafhankelijk van projecten en is opgedeeld in ‘factories’. Deze structuur is stabiel over langere perioden en vergroot de kwaliteit van de herbruikbare artefacten doordat skills geconcentreerd worden. Coördineren en tracken van alle hergebruik activiteiten Reuse Support Organization Sturing van de projectteams Support voor de projectteams Beheer van de herbruikbare artefacten Productie herbruikbare artefacten Projectteams Productie software producten Hulp met UML en herbruikbare artefacten Opslag in SALMS na goedkeuring door Kwaliteitsteam Management en onderhoud herbruikbare artefacten SALMS (repository) Opslag Herbruikbare artefacten - Zoeken en verkrijgen herbruikbare artefacten - Evaluatie gebruikte herbruikbare artefact Figuur 36 - Globaal overzicht hergebruikorganisatie Sodalia ERROR! REFERENCE SOURCE NOT FOUND. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid D.5 Eliop Software Engineers Circa 30 van de 100 medewerkers Software Proces ISO 9001 Maturity Bijzonderheden Hergebruik van software is uitgevoerd als onderdeel van een Software Process Improvement programma. Eliop ziet goede kwaliteit van zowel de processen als de geproduceerde software als noodzakelijk om hergebruik systematisch uit te kunnen voeren. Markt Industriële controle systemen inclusief software voor standaard computers en embedded software. Eliop ontwikkelt software voor remote telecontrol, proces automatisering en energie management. Deze software is een belangrijk onderdeel van de toegevoegde waarde van Eliop. Aantal Klanten Onbekend. Potentie voor Veel van de systemen die Eliop ontwikkeld zijn real-time. Een ander punt van aandacht hergebruik zijn de vele verschillende omgevingen waarvoor de software wordt ontwikkeld. Veel van de projecten die uitgevoerd worden, zijn upgrades van voorgaande versies. De software producten die door Eliop worden ontwikkeld vallen binnen een beperkt aantal applicatie domeinen. Het potentieel voor hergebruik is dan ook zeker aanwezig. Methoden, technieken Eliot heeft object georiënteerde technieken gehanteerd en is daarbij tot de conclusie en technologie gekomen dat deze voordelen hebben, maar zeker niet essentieel zijn. Momenteel wordt er gebruik gemaakt van structured analysis, C en een assembly taal. Scope Er werd binnen Eliop reeds hergebruik van algemene herbruikbare artefacten toegepast (ad-hoc). Aangezien Eliop slechts in een klein aantal domeinen werkt en er ook applicatie specifieke artefacten hergebruikt kunnen worden, heeft eliop ervoor gekozen dit ook te doen. Doelen van Het vergroten van de betrouwbaarheid (door gebruikmaking goed geteste herbruikbare hergebruik artefacten) Het verlagen van de ontwikkeltijd (speciaal voor coderen en testen) Het verlagen van de kosten (geschatte realiseerbare besparing á 30%) Aanwezigheid kritieke - succesfactoren Management support: Eliop acht management support essentieel om een hergebruik programma te kunnen uitvoeren, zowel voor de cultuurverandering, de organisatieverandering als de koppeling aan de bedrijfsstrategie. Er dient voor hergebruik verder gekeken te worden dan alleen naar de lopende projecten. - Hergebruik processen: Eliop heeft twee processen specifiek voor hergebruik toegevoegd. Dit zijn de domein analyse in de projecten om herbruikbare verticale artefacten te produceren en de validatie van deze herbruikbare artefacten voordat ze in de repository opgeslagen mogen worden. - Aanpassing niet-hergebruik processen: Eliop hanteert een klassieke levenscylcus van requirements analyse, ontwerp, implementatie, testen en onderhoud. Alle processen in deze fasen zijn bekeken met het oog op hergebruik en hierop aangepast. - Anticiperen op menselijke factoren: Eliop identificeert drie zeer belangrijke onderwerpen. Volledige betrokkenheid van de software ontwikkelaars (ze moeten inzien wat het profijt van hergebruik is), begrijpen van de herbruikbare artefacten (alleen de artefacten van wiens functionaliteit, interface en beperkingen bekend zijn ERROR! REFERENCE SOURCE NOT FOUND. TNO-rapport ERROR! REFERENCE SOURCE NOT FOUND. D.6 Error! Reference source not found. Bijlage D kunnen succesvol hergebruikt worden) en training van de software ontwikkelaars (zie Opzet van de trainingen bij Eliop onder Tabel 36). - Incrementele invoering: Een evolutionaire introductie heeft voor Eliop de voorkeur - Repository: Vanwege het niet kunnen vinden van een geschikte commerciële tool ten opzichte van een revolutionaire aanpak. is er een standaard database management systeem gebruikt om informatie in op te slaan over de beschikbare herbruikbare artefacten. Deze herbruikbare artefacten zelf zijn opgeslagen in een aparte repository (gebruikmakend van een configuratiemanagement systeem). Herbruikbare Objecten Artefacten Bij Eliop wordt er onderscheid gemaakt naar twee typen herbruikbare artefacten: herbruikbare artefacten gepland voor hergebruik en ongepland voor hergebruik. Dit onderscheid komt voort uit het moment en de manier waarop het herbruikbare artefact gemaakt is. Type herbruikbare artefacten: - broncode, - specificaties, - ontwerpdocumenten, - test procedures. Intern/Extern De herbruikbare artefacten worden alleen in-house ontwikkeld. Eliop heeft white-box hergebruik als de standaard. Eliop gaat er vanuit dat white-box lagere kosten met zich meebrengt en minder eisen stelt aan de organisatie. Tevens wordt er zowel hergebruik van horizontale als verticale herbruikbare artefacten toegepast. Eliop heeft als doel de herbruikbare artefacten te standaardiseren door de toepassingen van templates voor documenten en coding rules voor broncode. Processen Productie Eliop maakt onderscheid tussen geplande en ongeplande productie van hergebruik. Geplande productie van herbruikbare artefacten is het doormiddel van domein engineering tijdens projecten produceren van deze herbruikbare artefacten. Dit is voor Eliop ook de normale manier om herbruikbare artefacten te verkrijgen. De andere optie is het verkrijgen van herbruikbare artefacten vanuit bestaande softwareproducten. Deze aanpak werd noodzakelijk geacht dor Eliop om een kritieke massa te kunnen creëren van herbruikbare artefacten zodat de ontwikkelaars ook daadwerkelijk iets zouden hebben om her te gebruiken. Deze methode bestond uit drie stappen. (1) Evalueren van de artefacten op herbruikbaarheid (criteria: algemene kwaliteit, voldoet het aan de in-house standaarden, bruikbaarheid, onderhoudbaarheid, algemeenheid en volwassenheid). (2) Pas de artefacten aan zodat ze herbruikbaar zijn. (3) Voeg ze toe aan de repository. Ondersteuning Er is geen formeel orgaan voor ondersteuning, doormiddel van trainingen en voorlichting probeert Eliop dit onnodig te maken. Consumptie ERROR! REFERENCE SOURCE NOT FOUND. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid D.7 Zelfde als bij Sodalia. Management Zelfde als bij Sodalia. Organisatie Rollen Reuse leader: Algemene verantwoordelijkheid voor het succes van hergebruik. Vergelijkbare invulling als bij Sodalia. Reuse task group: Bestaat uit de reuse leader, project managers en senior engineers. Ze zijn verantwoordelijk voor de domein analyse en de validatie van de herbruikbare artefacten voordat ze worden opgenomen in de repository. Library manager: De library manager beheert de ‘repository’ van Eliop. Hij zorgt ervoor dat het DBMS en het CMS consistent blijven en is verantwoordelijk voor de toevoeging van goedgekeurde herbruikbare artefacten hierin. Structuur Eliop heeft heel weinig aan de bestaande structuur gewijzigd om de overgang zo makkelijk mogelijk te laten verlopen. Wel is er een Reuse Task Group (RTG) opgericht voor de domein analyse en validatie van de herbruikbare artefacten. In deze RTG zitten de reuse leader, projectmanagers en enkele senior engineers. Figuur 37 geeft een globaal overzicht. Door de opname van de projectmanagers in de RTG is de sturing van de projectteams ook geborgd. De projectmanagers zijn in de projecten zelf verantwoordelijk voor de verdere uitdraging van hergebruik. Verrekening Geen informatie beschikbaar, waarschijnlijk op basis van overhead funding. Tools De repository is een combinatie van een Database Management Systeem (informatie over de herbruikbare artefacten) en een Configuratie Management Systeem (opslag herbruikbare artefacten zelf). Elk herbruikbare artefact heeft een identificatie, een omschrijving, bepaalde keywords, informatie over in welke projecten het is gebruikt en welke relaties en afhankelijkheden er zijn met andere herbruikbare artefacten. Tevens is er informatie beschikbaar indien het herbruikbare artefact bepaalde beperkingen oplegt zoals een realtime beperking. Verder heeft de repository 3 niveau’s voor de gebruikers (user, superuser en administrator) waarbij bepaalde operaties alleen door de administrator gedaan kunnen worden (toevoegen of reviewen van herbruikbaar artefact). Weerstand Oorzaak Er bestond enige weerstand tegen het hergebruik initiatief, maar deze bleek vooral gevoed te worden door de gebrekkige prestaties en interface van de beschikbare repository. Andere negatieve houdingen t.o.v. hergebruik hadden de volgende redenen: - weerstand om te veranderen, - slechte ervaring met hergebruik (als gevolg van het hergebruiken van kwalitatieve slechte herbruikbare artefacten of omdat er geen systematische processen of procedures aanwezig waren). ERROR! REFERENCE SOURCE NOT FOUND. TNO-rapport ERROR! REFERENCE SOURCE NOT FOUND. D.8 Error! Reference source not found. Bijlage D Oplossing Dit heeft Eliop opgelost doormiddel van de verschaffing van informatie en trainingen. Vooral presentaties over de eerste pilots bleken een efficiënte manier om acceptatie te verkrijgen. Tevens acht Eliop correct management processen belangrijk, dit betreft vooral de procedures over het opslaan van een herbruikbaar artefact in de repository en het vastleggen van systematische processen en methoden. Meten Eliop heeft gekozen voor de ami methode voor het opstellen van metingen. Deze methode leidt aan de hand van bepaalde doelen een set van metingen af. Voor Eliop vormen metingen een essentieel onderdeel van het proces om terugkoppeling te creëren op de effecten van de veranderingen en om deze te kunnen sturen. Eliop acht het hierbij belangrijk om de metingen zo eenvoudig mogelijk te houden. De belangrijkste metingen zijn: - extra kosten van herbruikbare artefacten, - mate van gebruik van de herbruikbare artefacten, - foutenregistratie (fouten worden hierbij gewogen naar de ernst en de fase waarin ze naar voren kwamen) Resultaten Het blijkt voor Eliop dat het produceren van een herbruikbaar artefact 60% duurder is dan normaal. Echter reeds bij de eerste keer dat het hergebruik wordt zijn de kosten slechts 20% van de normale kosten en daarna raamt Eliop het op 10%. First Second Third use use use Fourth use Accumulated Costs 160% 180% 190% 200% Average Costs per 160% 90% 63% 50% use Reeds bij de tweede keer dat het hergebruikt wordt zijn de kosten dus al 10% lager dan bij het zelf opnieuw bouwen. Hierbij wordt er wel vanuit gegaan dat het alternatief helemaal geen hergebruik is. De belangrijkste doelen voor Eliop waren productiviteit en betrouwbaarheid. Grote productiviteitsverbeteringen zijn niet gerealiseerd maar worden ook onwaarschijnlijk geacht. De kwaliteit is wel verbeterd en dit is voor Eliop ook belangrijker. Exacte cijfers zijn echter nog niet beschikbaar. Tabel 36 - Eigenschappen en hergebruikfactoren bij Eliop. Opzet van de trainingen bij Eliop: Eliop acht het trainen van de werknemers belangrijk en heeft hiervoor een trainingsplan opgesteld dat bestaat uit drie fasen: - Fase 1 Tijdens de start van een project worden ontwikkelaars, die normaliter in een specifiek gebied werkzaam zijn, inzichten geboden in de verschillende gebieden binnen Eliop om een betere visie te krijgen van de mogelijkheden tot horizontaal hergebruik. Indien de ontwikkelaars hier bekend mee zijn verschuift de nadruk naar verticaal hergebruik. - Fase 2 ERROR! REFERENCE SOURCE NOT FOUND. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid D.9 - Gedurende het project wordt essentiële kennis over hergebruik verspreid: de doelen van het project m.b.t. hergebruik, de huidige status van het project en de verschillende methoden en tools die gebruikt kunnen worden. Fase 3 Bespreking van de uitkomsten van het project, nieuwe metingen en procesveranderingen om verdere acceptatie te realiseren. Om dit te bereiken achtte Eliop het belangrijk om actieve participatie en een open discussie aan te moedigen. Reuse Task Group Herbruikbare artefacten vanuit Planned Reuse Planned Reuse: Domein analyse Sturing van de projectteams Validatie van herbruikbare artefacten (Planned + Unplanned Reuse) Coördineren en tracken van alle hergebruik activiteiten Projectteams Productie software producten Herbruikbare artefacten vanuit Unplanned Reuse Opslag goedgekeurde herbruikbare artefacten Repository (DBMS + CMS) Opslag Herbruikbare artefacten Zoeken en verkrijgen van herbruikbare artefacten Figuur 37 - Globaal overzicht hergebruikorganisatie Eliop. ERROR! REFERENCE SOURCE NOT FOUND. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid E.1 Bijlage E Interviewopzet Interviews vormen een goede aanpak voor het verkrijgen van informatie. Voor het verkrijgen van de gewenste informatie dienen echter wel de juiste vragen aan de juiste personen gesteld te worden [HUL92]. De interviews worden hier binnen Business Unit 2, de voormalige divisies “Operationele Research en Bedrijfsvoering” en “Command Control & Simulatie” gehouden. Doel Het doel van de interviews met de verschillende stakeholders is het verkrijgen van inzicht in een drietal onderwerp. 1) De huidige situatie van hergebruik van software artefacten met betrekking tot de: objecten, processen en organisatie. 2) Problemen of knelpunten voor de verschillende stakeholders met betrekking tot de invoering en toepassing van hergebruik van software artefacten. 3) Inzicht krijgen in de awareness en visies van de betrokkenen over hergebruik van software artefacten. Opzet Voor de voorbereiding van het interview en de verwerking van de uitkomsten is circa één dag uitgetrokken. Voor de interviews zelf wordt er circa 30 à 90 minuten uitgetrokken, afhankelijk van het type stakeholder. Hergebruik van software artefacten brengt voor de stakeholders verschillende problemen met zich mee. Er zijn drie globale groepen te identificeren die als aparte stakeholdersgroepen gekenmerkt kunnen worden. - - - Ontwikkelaars Dit zijn de personen die de architect- en programmeerwerkzaamheden binnen een project uitvoeren. Zij krijgen vooral te maken met de technische aspecten van hergebruik. Projectleiders Dit zijn de personen die de projecten leiden en verantwoordelijk zijn voor de keuzes die daarin gemaakt worden. Hergebruik heeft o.a. een impact op hun verantwoordelijkheid en budget. Management Indien hergebruik formeel erkend wordt binnen TNO-FEL en daar wijzigingen voor worden gemaakt is het management eindverantwoordelijk voor het succes ervan. Tevens zijn zij verantwoordelijk voor het zetten van doelen voor hergebruik en het vrijgeven van budgetten. Voor de interviews worden er verschillende stakeholders gekozen zodat de problemen die in de verschillende stakeholdersgroepen spelen allemaal aan bod TNO-rapport ERROR! REFERENCE SOURCE NOT FOUND. E.2 Error! Reference source not found. Bijlage E komen. Tabel 37 geef een overzicht van de stakeholders en het aantal personen die geïnterviewd zijn binnen die groep. Personen kunnen ook tot twee stakeholdergroepen behoren, bijvoorbeeld zowel projectmanager als software engineer. Stakeholdersgroep Aantal Ontwikkelaars Projectmanagers Technologietrekker/manager Management 5 3 2 1 Tabel 37 - Overzicht van het aantal interviews per stakeholdergroep. Interviewvragen voor de ontwikkelaars In Tabel 38 wordt de relatie tussen de interviewvragen voor de ontwikkelaars en de theorie weergegeven. Niet alle vragen zijn direct of duidelijk in één van de categorieën in te delen. Onder de tabel staan de interviewvragen zelf opgesomd. Interviewvraag Hergebruik Algemeen 1 X 2 X Objecten Processen Organisatie Metingen Weerstand 3 X 4 X 5 X 6 X 7 X 8 X 9 X 10 X X 11 12 13 X X X X 14 X 15 X 16 X 17 X 18 X Tabel 38 - Relatie interviewvragen ontwikkelaars en theorie. 1 2 Wat verstaat u onder hergebruik binnen het softwareontwikkelproces? Denkt u dat hergebruik van software artefacten ook systematisch toepasbaar is binnen TNO-FEL? a. Wat zijn dan de randvoorwaarden die hergebruik van software artefacten binnen TNO-FEL mogelijk maken (csf)? b. Om welke redenen zou hergebruik van software binnen TNO-FEL niet toepasbaar zou zijn? c. Wat ziet u als voordelen van hergebruik van software artefacten? ERROR! REFERENCE SOURCE NOT FOUND. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid E.3 3 4 d. Wat ziet u als nadelen van hergebruik van software artefacten? Wat ziet u als mogelijke weerstanden tegen de systematische toepassing van hergebruik van software artefacten? a. Bent u bekend met de term “Not invented here”? b. Wat is dit volgens u? c. Speelt dit ook binnen TNO-FEL m.b.t. hergebruik? Welke softwareontwikkelprocessen zijn er aanwezig om hergebruik van software mogelijk te maken? Bij hergebruik van software artefacten wordt er een splitsing gemaakt tussen het ontwerpen voor hergebruik en het ontwerpen met hergebruik. Hieronder zal eerst ingegaan worden op het ‘design for reuse’ en daarna op het ‘design with reuse’. Overkoepelende activiteiten zoals management processen of ondersteuning komen hierna aan bod. 5 6 7 8 9 Wat voor herbruikbare software artefacten worden er gemaakt binnen TNO? Bij het produceren van herbruikbare artefacten kan er gebruik worden gemaakt van reeds bestaande artefacten (re-engineering) of kan het herbruikbare artefact nieuw ontwikkeld worden. a. Op welke manier worden deze herbruikbare artefacten geproduceerd? b. Zijn hiervan procesomschrijvingen aanwezig? c. Hoe re-engineert u een bestaand software artefact zodat het een herbruikbaar software artefact wordt? d. Hoe ontwikkelt u een herbruikbaar software artefact indien het vanuit niets gemaakt wordt? Hoe is de productie van herbruikbare software artefacten georganiseerd? Vindt er sturing plaats bij de productie van herbruikbare software artefacten? a. Zoja, hoe wordt er bepaald wat er herbruikbaar gemaakt wordt? b. Zonee, acht u deze sturing wel noodzakelijk of zijn de software engineers in staat dit zelf bepalen? i. Wat zou een software engineer nodig hebben om hier wel toe in staat te zijn? Denkt u dat er een verschil bestaat in documentatie van herbruikbare software artefacten en niet herbruikbare producten en zoja, welk verschil is dit dan? a. Welke documentatie acht u noodzakelijk voor een herbruikbaar software artefact? b. Welke zou u bereid zijn te leveren mocht u herbruikbare software artefacten produceren? Hieronder staan de vragen die betrekking hebben op ‘design with reuse’. 10 Maakt u, bij de ontwikkeling van nieuwe software producten, gebruik van bestaande software artefacten die niet specifiek voor het nieuwe product gecreëerd zijn? a. Wat voor software artefacten (her)gebruikt u op deze manier? b. Hoe komt u aan deze herbruikbare software artefacten (bronnen)? c. Ziet u dit ook als hergebruik? 11 Hoe wordt bepaald of het gekozen software artefact daadwerkelijk her te gebruiken is bij de ontwikkeling van het nieuwe software product (welke criteria hanteert u)? 12 Bij hergebruik van software artefacten zijn er twee uitersten aanwezig, namelijk black box hergebruik en white box hergebruik. Bij de toepassing van black box hergebruik worden de software artefacten ‘as-is’ gebruikt in het nieuwe software product. Bij white box hergebruik kunnen de herbruikbare software artefacten nog worden aangepast. TNO-rapport ERROR! REFERENCE SOURCE NOT FOUND. E.4 Error! Reference source not found. Bijlage E Zijn de software artefacten die zijn ontwikkeld en worden hergebruikt binnen TNO bedoelt voor blackbox of whitebox hergebruik? M.a.w. mogen ze aangepast worden door de hergebruikers? 13 Hoe is het proces voor het gebruik van een herbruikbaar software artefact ingericht? 14 Een belangrijke tool t.b.v. hergebruik is een centrale opslagplaats van de herbruikbare componenten. Binnen TNO-FEL zal SourceForge deze rol vervullen. a. Hoe wordt SourceForge gebruikt voor hergebruik van software artefacten? b. Zijn er ook nog andere tools die worden gebruikt bij toepassing van hergebruik van software artefacten? c. Zijn er nog functionaliteiten die niet gedekt worden door de huidige beschikbare tools? Hieronder staan de overkoepelende vragen. 15 Hoe zijn de reeds genoemde ‘hergebruik processen’ geïntegreerd in het normale softwareontwikkelproces? 16 Twee andere belangrijke processen binnen softwareontwikkeling m.b.t. hergebruik zijn de ondersteuning en managementprocessen. a. Hoe zijn zaken zoals onderhoud, certificering, bugfixing en configuratiemanagement en versiebeheer voor herbruikbare artefacten nu geregeld? b. Is er ‘management van hergebruik’ aanwezig? M.a.w. zijn er doelen, plannen en budgetten aanwezig? 17 De productie van herbruikbare software artefact is vaak duurder dan de productie van een normaal software artefact. a. Hoe worden deze productiekosten verrekend? b. Hoe worden andere kosten verrekend, zoals kosten voor onderhoud en ondersteuning? 18 Worden er in het softwareontwikkelproces kwantitatieve gegevens bijgehouden (metingen) van aspecten zoals kosten, kwaliteit, productiviteit? a. Zoja, vindt dit ook plaats voor softwareontwikkelprocessen die te maken hebben met hergebruik van software artefacten? b. Zonee, acht u dit mogelijk en wenselijk? Interviewvragen voor de projectleiders In Tabel 39 wordt de relatie tussen de interviewvragen voor de projectleiders en de theorie weergegeven. Interview Hergebruik Objecten Processen Organisatie Metingen vraag algemeen 1 X 2 X 3 X 4 X 5 X 6 X 7 X 8 X ERROR! REFERENCE SOURCE NOT FOUND. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid E.5 9 X 10 X 11 X Tabel 39 - Relatie interviewvragen Projectleiders en theorie. De interviewopzet is zowel bedoeld voor de interviews met de projectleiders van één van de cases als wel voor de projectleiders in het algemeen. Voor de case studies worden de interviewvragen specifiek op die case toegepast. Indien er een projectleider wordt geïnterviewd die niet bij de case studies betrokken is, worden de intervragen niet specifiek op de case studies gericht. 1. 2. 3. Wat is hergebruik van software volgens u? In hoeverre heeft u er mee te maken in projecten? Denkt u dat hergebruik van software artefacten systematisch toepasbaar is binnen TNO-D&V? a. Wat zijn randvoorwaarden waaraan voldaan moet zijn om het mogelijk te maken? b. Wat zijn voor u de voordelen van hergebruik van software artefacten? c. Wat zijn voor u de nadelen, problemen of consequenties van hergebruik van software artefacten? 4. Hoe wordt er bepaald of een software artefact herbruikbaar wordt gemaakt? a. Wie is verantwoordelijk voor deze keuze? b. Op welk moment wordt dit bepaald? Gebeurt dit voor, tijdens of na het project waarin het originele artefact is geproduceerd? 5. Hoe maak je als projectleider de afweging om een herbruikbaar artefact te gaan hergebruiken. Welke aspecten worden er in deze beslissing meegenomen? 6. Zijn de activiteiten zoals Configuratie Management, onderhoud, versiebeheer, bugfixing geregeld voor de herbruikbare artefacten? a. Is dit ook nog geregeld na de afloop van het project waarin het herbruikbare artefact is ontwikkeld? i. Zoja, hoe wordt het geregeld? ii. Zonee, waarom niet en wat is hiervoor nodig? 7. Stuurt u als projectleider op de productie of consumptie van herbruikbare artefacten? a. Zoja, hoe doet u dit? b. Zonee, gebeurt dit uberhaubt? 8. Stel dat er iets uit uw project wordt hergebruikt in een ander project. Dit andere project heeft verder geen relatie tot jouw project. Hoe staat u hier tegenover? 9. Stel dat uw project iets kan hergebruiken uit een ander project. Hoe staat u hier tegenover? 10. De productie van herbruikbare software artefacten is over het algemeen duurder dan de productie van een normaal software artefact. a. Wat gebeurt er met deze (extra) kosten? b. Hoe wordt er omgegaan met de hergebruik-specifieke kosten van bijvoorbeeld onderhoud of change-requests van herbruikbare software artefacten? 11. Worden er in het softwareontwikkelproces kwantitatieve gegevens bijgehouden van aspecten zoals kosten en kwaliteit? a. Zoja, gebeurt dit ook voor hergebruik en hoe dan? b. Zonee, hoe bepaal je dan bijvoorbeeld de kosten van een herbruikbaar artefact? TNO-rapport ERROR! REFERENCE SOURCE NOT FOUND. E.6 Error! Reference source not found. Bijlage E Interviewvragen voor de BU manager De onderstaande interviewopzet is bedoeld voor Manager Operations van BU2. Hij is op de hoogte van het onderwerp naar aanleiding van de presentatie over hergebruik van software artefacten drie weken eerder. 1. 2. 3. 4. Wat is het belang van softwareontwikkeling voor TNO-D&V als kennisinstituut? Wat voor rol kan hergebruik van software binnen BU2 spelen volgens u? a. Acht u hergebruik van software wenselijk? b. Zoja/Zonee, waarom wel/niet? Wat zou er volgens u geregeld moeten worden om hergebruik van software mogelijk te maken binnen BU2, ziet u het als een puur technische aangelegenheid of spelen er volgens u ook andere factoren een belangrijke rol? Wat zou voor u een belangrijk doel zijn van hergebruik? Kwaliteitsverbetering, kostenverlaging of een productiviteitsverbetering (kortere doorlooptijd)? Uit de theorie en geanalyseerde best practices op het gebied van systematisch hergebruik blijkt dat het noodzakelijk is dat er een orgaan is die over de projecten heen hergebruik coördineert, zie Figuur 29. Hierin blijft de projectstructuur gehandhaafd en maken en gebruiken de projectteams de herbruikbare artefacten onder sturing van de hergebruikgroep. Naar mijn mening zijn er een aantal organisatorische aspecten nodig om hergebruik van software gemeengoed te kunnen laten worden binnen BU2, namelijk sturing, beheer en financiering. 5. 6. Is het mogelijk om projecten een taak op te leggen om een specifiek component herbruikbaar te maken? a. Zoja, hoe zou dat volgens u gedaan moeten worden? b. Zonee, waarom niet? Wat zijn de belemmeringen? Is het mogelijk om de keuze voor hergebruik deels uit de projecten te trekken en neer te leggen bij de hergebruikgroep a. Zoja, hoe zou dat volgens u gedaan moeten worden? b. Zonee, waarom niet? Wat zijn de belemmeringen? Het beheer van de herbruikbare artefacten, taken zoals onderhoud, Configuratie Management, Problem and Change management en ondersteuning, kan neergelegd worden bij de hergebruikstuurgroep maar je kan ook individuele software engineers verantwoordelijk maken voor een bepaald herbruikbaar artefact. 7. Hoe denkt u dat het beheer van de herbruikbare artefact binnen TNO-D&V het beste geregeld kan worden? Een belangrijk vraagstuk is natuurlijk de financiering van de activiteiten voor hergebruik. Hergebruik zou in principe zelfvoorzienend moeten zijn. Maar vanuit de theorie blijkt dat er altijd een investering vooraf gedaan moet worden om bepaalde faciliteiten op te zetten of om herbruikbare artefacten te ontwikkelen. Verder zijn er altijd projectoverschrijdende activiteiten die gefinancieerd moeten worden. 8. Hoe denkt u dat dit het beste gefinancierd kan worden? ERROR! REFERENCE SOURCE NOT FOUND. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid F.1 Bijlage F Codes of Practice binnen TNO-D&V Deze bijlage geeft een overzicht, zie Figuur 38 en Tabel 40, van de Codes of Practice die binnen TNO-D&V zijn opgesteld. De Codes of Practice is een set documenten en templates waarbij elke Code of Practice (COP) een element uit het software engineering proces beschrijft. Er worden drie categorieën COP’s onderscheiden: 1. Management COP’s Biedt een template voor de condities waaronder een project wordt uitgevoerd, bijvoorbeeld het Software Development Plan (SDP). 2. Procedurele COP’s Beschrijft hoe een specifiek proces uitgevoerd zou moeten worden, bijvoorbeeld het Configuratie Management (CM) of Problem & Change Management (PCM). 3. Technische COP’s Template voor de documentatie van de applicatie die wordt ontwikkeld, bijvoorbeeld de Software Design Description.(SDD) of de Software User Manual (SUM). Figuur 38 - COP’s t.o.v. de fasen waarin een softwareproject kan verkeren. TNO-rapport ERROR! REFERENCE SOURCE NOT FOUND. F.2 Error! Reference source not found. Bijlage F Category Procedural Procedural Procedural Procedural Procedural Technical Technical Procedural Technical Technical Technical Technical Technical Technical Technical Technical Procedural Procedural Procedural Procedural Procedural Procedural Technical Management Technical Technical Procedural Technical Technical Technical Technical Management Technical Technical Technical Technical Technical Technical Code AUD CM CPSL CR CSL DBDD EAR ECP IDD IRS ITD ITR OCD PADA PC PCPP PCM PR QER REV RFD RFW SDD SDP SDF SPS SFMAP SRS SSDD SSS STD STP STR SVD SUM SYSTD SYSTR TDF Document title Audit procedure Configuration Management procedure Change Proposal Status List Change Request Configuration Status List DataBase Design Description* Engineering Analysis Report Engineering Change Proposal Interface Design Description * Interface Requirements Specification * Internal Test Description Internal Test Result Operational Context Description * Programming in Ada (style guide) Programming in C (style guide) Programming in C++ (style guide) Problem and Change Management procedure Problem Report Quality Evaluation Record Review procedure Request For Deviation Request For Waiver Software Design Description * Software Development Plan * Software Development File Software Product Specification * IT/QA Activity Mapping to SourceForge Software Requirements Specification * System Subsystem Design Description * System Subsystem Specification * Software Test Description * Software Test Plan Software Test Report * Software Version Description * Software User Manual * System Test Description * System Test Report * Test Detail Form Tabel 40 - Overzicht van Code of Practices (COPS) binnen TNO-D&V. * Authentic document according to MIL-STD-498 Data Item Descriptions (DID's). ERROR! REFERENCE SOURCE NOT FOUND. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid G.1 Bijlage G Componenten uit het Kibowi MP Framework In Tabel 41 wordt per component een korte toelichting van de functionaliteit gegeven. Laag Applicaties Phoenix Element uit laag Control, Observer, Entity Editor, Otas Editor, Administrator, Evaluator Kibowi Applicatie Kibowi Gui Permissions Database definitions Messages ModelParameters Events Computer GenericGui Simulation Environment Generic Application Database Management Toelichting Dit zijn applicaties die gebruikt worden door en voor Kibowi MP. Basis framework voor een Kibowi MP applicatie. In dit framewerk wordt bijvoorbeeld een database manager gemaakt, het mail systeem opgestart, de properties bestanden ingelezen enz. Kortom, al het noodzakelijke voorwerk om een Kibowi applicatie te maken gebeurt hier. De daadwerkelijke applicatie start als het ware ‘binnen’ dit framewerk en wordt door het framework ‘ge-kickstart’. Specialisatie van GenericGUI voor Kibowi. Gebaseerd op Java Security Permissions. Specifiek voor Kibowi gemaakt. Hierdoor is het mogelijk om authorisaties per object/attribuut op te geven voor een bepaalde fase, status en actie. Permissions zijn gedefinieerd per rol. Omvat ook de competenties voor het kunnen uitvoeren en opgeven van orders. De database definities voor Kibowi De definities van de Kibowi berichten tussen de verschillende applicaties. Definitie van de parameters zoals met name in de Evaluator gebruikt worden bij de simulatie modellen. Kibowi events. Pop ups, rook e.d. Een algemeen framework waarin user interfaces kunnen worden gemaakt. Het algemene framewerk biedt een standaard lay-out met een ‘takenlijst’ links op het scherm. Aan iedere taak hangt een scherm met daaraan vast een menu. De schermen en bijbehorende menu’s kunnen door de gebruiker worden opgegeven, het framewerk zorgt voor de coördinatie en dergelijke. Generieke laag voor het opstart gedeelte van applicaties. DB Managers, Object definitions, Constanten, UnitConversions etc. TNO-rapport ERROR! REFERENCE SOURCE NOT FOUND. G.2 Error! Reference source not found. Bijlage G Coordinates GLF Graph GIS TNO System API’s Mail State Machine ORB Kernel Monitor Expressions Helpers Versioning Berekeningen snijpunten met cirkels, ellipsen e.d. Graphic Layers Framework. Handige java tools voor menu’s en andere graphics Berekeningen voor kortste pad algoritmes e.d. Geografisch informatie systeem. Is opgebouwd uit verschillende delen: View, Control, Terrain queries, Terrain Model en Coordinate math. Het biedt user interface componenten, visualiteit van het terrein etc. Een algemeen pakket waarmee applicaties in een netwerk onderling (op inhoudelijk niveau) kunnen communiceren. Het pakket maakt het mogelijk kanalen te definiëren waarop kan worden uitgezonden en geluisterd. Applicaties melden zich door middel van RMI aan. Het pakket schermt met name netwerkprotocollen en unicast, multicast of broadcast zaken voor de gebruiker af. Een pakket waarmee met name synchronisatie van werkzaamheden kan worden beheerd. De gebruiker kan zelf state machines bouwen door zelf de states, signals en state transitions op te geven. Aan de states en aan de transities kunnen vervolgens events worden gehangen. De State Machine draait in een eigen thread (en dus asynchroon van de gebruiker). De ORB kernel maakt het mogelijk event based om time scheduled simulaties uit te voeren. De ORB kernel verzorgt met name de juiste scheduling van activiteiten en het beheer van de tijd. Een algemeen pakket waarmee monitor informatie van deelsystemen kan worden opgevraagd en in een aparte module overzichtelijk kan worden weergegeven. Met name handig om systemen ook run-time te kunnen volgen. Een pakket waarmee het mogelijk is logische expressies te bouwen en te evalueren. Extensies op java. Bijhouden van een versienummer op package niveau. Tabel 41 - Toelichting bij de componenten uit het Kibowi MP Framework. ERROR! REFERENCE SOURCE NOT FOUND. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid H.1 Bijlage H Stroomschema voor gebruik Electronic Battlespace Facility Figuur 39 toont een flowchart die bij het EBF wordt gehanteerd voor gebruikers van de faciliteit. Figuur 39 - Stroomschema voor het gebruik van het EBF. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid I.1 Bijlage I Uitkomsten Group Facility Room Sessie De onderstaande data is afkomstig van de groepssessie van 6 juni 2005. Hierbij is een presentatie gegeven van de bevindingen van de huidige situatie en zijn er een viertal aanbevelingen besproken. Per aanbeveling is er een presentatie gegeven met verschillende keuzemogelijkheden en de afwegingen. Daarna is per aanbeveling anoniem gestemd. Deelnemers: 11. Het afdelingshoofd, 4 projectleiders en 9 software engineers (2 personen zijn zowel projectleider als software engineer). Aantal deelnemers Stelling 1: Hanteer een strikte, centrale sturing op de ontwikkeling van herbruikbare artefacten. Eens 7 Oneens 4 Response: Eens Opmerkingen: - - - - Duidelijke regel maar afwijken moet kunnen Eens, maar een artefact hoeft niet een al bestaande s/w component te zijn. De ontwikkeling van herbruikbare artefacten staat haaks op het projectbelang, wat binnen een bepaalde tijd, met een hoeveelheid geld een resultaat moet hebben. De enige manier om dat belang te weerstaan is centrale sturing. Eens, maar dat mag de voortgang niet teveel in de weg staan Het moet wel een dialoog blijven ipv. eenrichtingsverkeer Eens, maar die centrale groep moet wel dicht bij mij in de organisatie zitten (geen ICD) Ik vraag me af wat dit in de praktijk gaat betekenen. Als PL zul je altijd defensief gaan reageren als iemand van buiten een project je iets gaat opleggen. Zal dus vooral in een situatie werken waarin geruild kan worden. Eens: Bij een decentrale sturing zullen projecten steeds het eigen belang voor zetten. Alleen met centrale sturing kan een goede verzameling componenten worden onderhouden en vernieuwd. De centrale groep moet wel het projectbelang minstens net zo zwaar laten meewegen als het hergebruik belang. Eens, want de projectleiders kunnen adviezen eenvoudig naast zich neer leggen. Eens: als ieder project zelf bepaalt wat herbruikbaar wordt ontstaat er een wildgroei van herbruikbare componenten Eens, echter het moet wel in samenspraak gaan met de ontwikkelaars van de componenten Ik zou verwachten dat tijdens het maken van het ontwerp een architect moet kunnen bepalen wat uit de repository kan worden gebruikt. Hier kunnen dan ook meteen kansen voor nieuwe componenten worden geïdentificeerd. Het blijft vervolgens dan een dialoog. Response: Oneens Opmerkingen: - - Oneens: Stricte aansturing onderdrukt initiatieven en creativiteit, en leidt tot een passieve houding. Gevolg: geen ontwikkeling van herbruikbare componenten, tenzij expliciet opdracht daartoe gegeven. Oneens. In theorie zou strikte aansturing kunnen werken, maar waarschijnlijk leidt het tot veel problemen (projectbelangen tegenover 'TNO-belangen') en is advisering een betere aanpak. TNO-rapport ERROR! REFERENCE SOURCE NOT FOUND. I.2 Error! Reference source not found. Bijlage I - - Niet mee eens omdat wij een sterke projectorganisatie hebben. De projecten moeten onderling de interface helder krijgen Ik vind dat de projecten de eindverantwoordelijkheid hebben. Het zijn de projecten die uitmaken of voor hen de kosten voor hergebruik redelijk zijn. Afdwingen kan leiden tot te dure projecten. Oneens, projectbelangen moeten altijd meegewogen worden en dit gebeurd waarschijnlijk niet goed genoeg in strikte aansturing. Aantal deelnemers Stelling 2: Eens De hergebruikgroep beslist bij aanvang van een project welke software artefacten er hergebruikt gaan worden, in overleg met het betreffende projectteam. 3 Oneens 8 Response: Eens Opmerkingen: - - - Eens: Als er een hergebruikstuurgroep is (bestaande uit software architecten?) dan zal deze standaardisatie moeten kunnen bevorderen Eens, zelfde verhaal als eerder. Moet een dialoog zijn waarin organisatiebelang en projectbelang wordt meegenomen. Dit geldt ook weer voor de kosten (ruilen dus). Verder moeten we commerciële doelstellingen niet uit het oog verliezen waardoor sommige zaken wel en/of niet te verkopen zijn. Wat ik nog wel even iets vind is dat ik deze rol eerder wil toedichten aan een systeem architect dan aan een team buiten het project. Dat alle systeem architecten hier op een of andere wijze del van uitmaken lijkt me dan wel weer logisch. Eens. Ik stel me voor dat een (centrale) architect met kennis van de bestaande artefacten meedenkt waar de kansen voor hergebruik liggen. Tevens kunnen er afspraken gemaakt worden over potentieel nieuw te ontwikkelen artefacten. De financiële gevolgen voor dit project zouden eigenlijk apart bekeken moeten worden. Response: Oneens Opmerkingen: - - - - Oneens, want het is niet nodig. Hergebruik betekent lagere kosten en snellere ontwikkeling: daar is toch iedereen voor. Gedwongen winkelnering is vragen om vastlopen van het proces. Er moet een drive zijn voor de centrale groep om de componenten marktconform te houden Oneens, want sturing betekent tegenwerking. Oneens, maar de centrale groep dient daarentegen heel duidelijk te maken wat er mogelijk is en daar de middelen voor te hebben. Het projectteam moet beargumenteren waarom geen gebruik wordt gemaakt. Oneens, het projectteam/management is verantwoordelijk voor het project en de keuzes die hierin worden gemaakt. Een hergebruikgroep kan hierin slechts een adviserende rol spelen. Oneens: Projectteam, verantwoordelijk voor het resultaat, moet zelf meest geschikte oplossing kunnen bepalen. Hierbij moet natuurlijk wel goed gekeken worden naar al beschikbare componenten. Kortom: advisering. Wanneer er ook nog voordeel kleeft aan hergebruik (naast 'goed voor TNO') zou dit goed kunnen werken. Oneens, de hergebruikgroep moet een adviserende rol hebben. Het voordeel van hergebruik moet hier "verkocht" worden. Oneens, advisering is de beste manier, waarbij uiteindelijk de projectleider wel de doorslag geeft. Als een projectleider van mening is dat de component niet goed genoeg is voor zijn/haar project is dat prima.. blijkbaar wordt dan een betere component ontwikkeld in dat project. ERROR! REFERENCE SOURCE NOT FOUND. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid I.3 - Oneens: het is wel nodig dat de hergebruikgroep de artefacten die hergebruikt kunnen worden aanreikt, maar opleggen zorgt voor weerstand Oneens, maar altijd dialoog. Oneens: Advisering is beter. Bij de beslissing om componenten te hergebruiken wordt ook het ontwerp van het project beïnvloed. De controle hierover moet altijd bij het projectteam liggen, zij kunnen de voordelen van hergebruik afwegen tegen de te halen doelstellingen. Aantal deelnemers Stelling 3: Eens Oneens Maak individuele software engineers verantwoordelijk voor het beheer en de ondersteuning van de herbruikbare artefacten. 9 2 Response: Eens Opmerkingen: - - - - - Eens: bevordert betrokkenheid, inzet en enthousiasme. Wel nadenken over de middelen die je de SE'er ter beschikking stelt. Eens, te veel rompslomp met aparte aanspreekpuntgroep. Individuele software engineers kunnen gemakkelijk in projecten worden opgenomen en daarmee zijn de kosten van aanpassingen/incorporeren ook meteen meegenomen. Eens, dit zorgt voor de noodzakelijke afstemming tussen project en SE'er. Eens, de individuele SEer ziet wat er met zijn/haar component gebeurt (over de projecten heen) en kan gemakkelijk de voortgang, benodigde aanpassingen, etc. overzien Eens. Als een betrokken ontwikkelaar herbruikbare code onderhoud, beheert en ondersteund, dan bevorderd dit de kwaliteit. Eens: maar deze verantwoordelijke software engineers moeten sturing krijgen vanuit de centrale hergebruik groep. De groep kan dan in geval van bv. afwezigheid een ander inzetten om problemen op te lossen. Ook zal de groep een controle moeten uitvoeren over het werk van de engineer. Eens, al moet niet alle kennis over een component bij een persoon komen te liggen Eens, als er maar een s/w engineer is die de totale regie over de component heeft (Open source model). Eens. Ga er van uit dat degene die de eerste draft heeft ontwikkeld het beste kan schatten welke change-requests wenselijk zijn. Uiteraard zijn er meerdere ontwikkelaars die hun suggestie posten. Eens, zorgt voor minder rompslomp bij aanpassingen. Response: Oneens Opmerkingen: - - Oneens, zo versplinter je het zicht weer op de componenten. Laat het beheer liggen bij de groep die ook adviseert/dwingt. Oneens, software die opgehangen is aan personen is een extra risico (beschikbaarheid, nukken). Er moet een beheergroep komen die zich verantwoordelijk stelt voor de componenten Is een rol en niet zozeer een persoonsgebonden activiteit. Daarom al niet mee eens. Echter wel een concreet POC benoemen om snel ondersteuning/ support te kunnen bieden. Is dit eens of oneens? verder punt is dat de POC's dan wel het grotere en bredere belang moeten kunnen onderkennen. Ik zou verwachten dat dit dus per type component kan verschillen (grote ingewikkelde veelgebruikte hebben een CCB, kleinere simpelere een individueel persoon) TNO-rapport ERROR! REFERENCE SOURCE NOT FOUND. I.4 Error! Reference source not found. Bijlage I Aantal deelnemers Stelling 4: Eens Reserveer bij alle softwareprojecten een standaard-percentage van het budget voor hergebruik om de projectoverschrijdende kosten van hergebruik te financieren. Oneens 5 6 Response: Eens Opmerkingen: - - - - Eens, maar wel een flexibel percentage wat afhangt van o.a. gebruik van bestaande componenten. Eens, denk aan een bepaald percentage van het voordeel dat ermee behaald wordt, oftewel ontwikkelkosten minus integratiekosten. Eens. Het klinkt hetzelfde als belasting. Niemand vindt het leuk, maar het is wel nodig om project(individu) overschrijdende acties te bekostigen. Oppassen dat het geen zwart gat wordt. Eens. Projectoverschijdende kosten zullen projectoverschijndend betaald moeten worden. Heb wel wat problemen met een vast percentage, daar zou wat meer onderhandelingsruimte in moeten zitten. Eens: Dit is de enige methode om te zorgen voor een stabiele financiele basis voor hergebruik. Maar een vast percentage is misschien te hard. Wellicht is een minimum percentage beter. Projecten die veel hergebruiken moeten dan meer betalen op basis van bv. de hoeveelheid en grote van de componenten. Eens: maar er moet dan ook betaald worden aan de projecten voor de gebouwde herbruikbare componenten. Response: Oneens Opmerkingen: - - - - - - Oneens, doet geen recht aan de verschillende soorten projecten waarin wel of niet sprake is van hergebruik. Van de andere kant is het voor een PL dan wel extra motiverend om nog iets terug te krijgen voor hetgeen hij toch al heeft betaald. Oneens. Voor sommige projecten wellicht wel bruikbaar idee, maar wel afhankelijk van budget en financieringsvorm. Beter: per project bekijken wat de beste oplossing is, maar linksom of rechtsom moet het onderhoud natuurlijk wel gefinancierd worden. Oneens: er zouden baten uit hergebruik berekend moeten worden en deze zouden deels de pot in moeten. Hoe anders kan ons mgt. enthousiast worden/blijven over hergebruik? Oneens, de componenten zijn al ontwikkeld en hoeven dus niet meer te worden gefinancierd. Wanneer deze kunnen worden hergebruikt is dit mooi meegenomen. Ik zou zelf vooral voor pay for use zijn omdat je daarmee een eerlijkere prijsstelling krijgt en ik zou willen meenemen dat je ook geld terugkrijgt voor de investering die je evt. doet om juist nieuwe componenten op te leveren cq. bestaande componenten te verbeteren. Oneens, alleen projecten die gebruik maken van herbruikbare componenten dienen een bedrag af te staan aan de beheerdergroep van herbruikbare s/w componenten. Dit bedrag kan gebruikt worden voor beheer en bekostigen nieuwe herbruikbare componenten. Oneens. Andere projecten die 'jouw' componenten hergebruiken moeten betalen voor incorporeren van component in hun project (als dit kosten met zich meebrengt) en ook betalen voor aanpassingen (door direct de betrokken personen uren te laten schrijven op het project). Als de component direct gebruikt kan worden, betalen andere projecten dus niks. Soms heb je er voordeel van (als je kan hergebruiken) en soms zal je zelf voor een herbruikbare component zorgen (en kost het je project geld). ERROR! REFERENCE SOURCE NOT FOUND. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid J.1 Bijlage J Financiële scenario’s hergebruik voor M&S In deze bijlage zijn de gehanteerde formules, uitleg, input en berekeningen te vinden. Te hanteren cijfers Tabel 42 toont een overzicht van de kengetallen die in deze business case gehanteerd worden. Tabel 43 toont een overzicht met de schattingen die zijn gehanteerd. Kengetal Waarde Softwareprojecten op jaarbasis Fulltime software engineers 20 (zowel grote als kleine) 25 (1600 uur per jaar per medewerker) (45 in totaal binnen M&S) Uurtarief software engineer 100 EURO per uur (Integrale kostprijs) Kosten van black box hergebruik 20% Kosten van white box hergebruik 67% Kosten herbruikbaar ontwikkelen 150% Bron TNO-D&V TNO-D&V TNO-D&V Theorie § 3.3.4 Theorie § 3.3.4 Theorie § 3.3.4 Tabel 42 - Gehanteerde (harde) kengetallen in de 'hergebruik business case'. Aspect Toelichting Kosten onderhoud & beheer Dit zijn de kosten voor onderhoud en beheer, oftewel bugfixing en CM + Versiebeheer. Binnen het EBF is dit circa 600 uur op jaarbasis. Hier wordt er vanuit gegaan dat het afhankelijk is van verzameling herbruikbare artefacten. Kosten Dit zijn de kosten die worden gemaakt bij de sturing van de sturing consumptie. De reviewprocedure en de tijd die software architecten consumptie kwijt zijn bij het meelopen binnen de projecten. Dit zijn de kosten die worden gemaakt bij de sturing van de Kosten productie. De uren die de software architecten en engineers van de sturing hergebruikstuurgroep kwijt zijn bij het meekijken binnen de productie projecten en het opstellen en beoordelen van SRS’s en SDD’s. Totale Dit is het aantal ontwikkeluren van de totale verzameling verzameling herbruikbare artefacten. Dit wordt o.a. gebruikt om de kosten voor onderhoud en beheer te schatten. Kosten Benodigde tijd om de projecten te ondersteunen bij hergebruik. ondersteuning Naarmate er meer ervaring ontstaat met de artefacten zal dit dalen. Er wordt vanuit gegaan dat circa 50% van de projecten ondersteuning nodig heeft. Afhankelijk van de mate van hergebruik binnen een project wordt er 8 uur als gemiddelde tijd aangenomen. Tabel 43 - Gehanteerde schattingen in de 'hergebruik business case'. Schatting 10% op jaarbasis van de originele ontwikkeluren. 16 uur gemiddeld per project 24 uur per gemiddeld project 10.000 uur 50% van 16 uur is 8 uur ondersteuning per project. ERROR! REFERENCE SOURCE NOT FOUND. J.2 Bijlage J Gehanteerde formules Aspect Identifier Aantal software engineers Kosten Black box hergebruik (%) Kosten White box hergebruik (%) Ontwikkeluren van de totale verzameling herbruikbare artefacten (uren) Onderhoud herbruikbare artefacten (% van geïnvesteerde ontwikkeluren) Overhead ratio voor kosten onderhoud bij white box hergebruik Investering in ontwikkeling herbruikbare artefacten (% van aantal SE-uren) Tarief software engineer (Euro’s per uur) Aantal werkzame uren per software engineer ( uren op jaarbasis) Hergebruikpercentage (percentage t.o.v. normale softwareontwikkeling) Percentage black box hergebruik (percentage van totale hergebruik) Percentage white box hergebruik (percentage van totale hergebruik) Aantal projecten (op jaarbasis) Kosten voor sturing consumptie (uren) Kosten voor sturing productie (uren) Kosten voor ondersteuning aan projecten (uren) SE KBB KWB TU PO OR IHG KSE X2 X3 X4 X5 X6 X7 X8 X9 DCA Deze besparing komt voor uit de besparing op black box hergebruik en de besparing op white box hergebruik. De urenbesparing van beide opgeteld keer het uurtarief van de software engineer vormt de besparing op de ontwikkelkosten. DCA = (SE*X2*X3*X4*(1-KBB) + SE*X2*X3*X5*(1-KWB))*KSE Een voorbeeld: DCA = (25*1600*30%*90%*(1-0,2) + 25*1600*30%*10%*(1-0,67))*100 DCA = (8640 + 396) * 100 = € 903.600 SCA De besparing op het onderhoud wordt gevormd een percentage van de bespaarde uren minus de onderhoudsuren van de gehele verzameling en een overhead die afhankelijk is van de hoeveelheid hergebruik en de verhouding tussen black box en white box hergebruik. Indien een project meer white box hergebruik toepast zal het immers ook meer werk kosten om een fout op te sporen en te verhelpen. De volgende ratio’s worden gehanteerd: 10% overhead voor BB:WB 90:10 30% overhead voor BB:WB 60:40 50% overhead voor BB:WB 30:70 Deze overhead ratio wordt aangeduid met OR SCA = (((SE*X2*X3)*PO) – (TU*PO+(SE*X2*X3)*PO*OR))*KSE ERROR! REFERENCE SOURCE NOT FOUND. Afstudeerscriptie - Hergebruik van software artefacten bij TNO Defensie en Veiligheid J.3 Een voorbeeld: SCA = (25*1600*20%*10%– (10.000*10%+25*1600*20%*10%*10%))*100 SCA = (800 – (1.000 + 80)) * 100 SCA = € 28.000 negatief Reuse Costs De kosten voor hergebruik bestaan uit de ontwikkelingskosten voor nieuwe herbruikbare software artefacten en de kosten van de activiteiten van de hergebruikstuurgroep. De uren voor de activiteiten van de hergebruikstuurgroep zijn redelijk ruim, zoals is te zien in Tabel 43. Ontwikkelingsuren nieuwe herbruikbare artefacten Sturingsuren productie per project Sturingsuren consumptie per project Ondersteuningsuren per project + Totaal aantal uren Reuse Costs = ((SE*X2*IHG) + ((X7+X8+X9)*X6)) * KSE Een voorbeeld: Reuse Costs = ((25*1600*2,5%) + ((16 + 24 + 8)*20)) * 100 Reuse Costs = (1.000 + 960) * 100 Reuse Costs = € 196.000,Scenario 1 – 20% - 30% - 40% hergebruik op DCA en SCA Black box - white box ratio = 90:10 DCA = (25*1600*20%*90%*(1-0,2) + 25*1600*20%*10%*(1-0,67))*100 DCA = 602.400 DCA = (25*1600*30%*90%*(1-0,2) + 25*1600*30%*10%*(1-0,67))*100 DCA = 903.600 DCA = (25*1600*40%*90%*(1-0,2) + 25*1600*40%*10%*(1-0,67))*100 DCA = 1.204.800 SCA = (25*1600*20%*10%– (10.000*10%+25*1600*20%*10%*10%))*100 SCA = -28.000 SCA = (25*1600*30%*10%– (10.000*10%+25*1600*20%*10%*10%))*100 SCA = 8.000 SCA = (25*1600*40%*10%– (10.000*10%+25*1600*20%*10%*10%))*100 SCA = 44.000 Scenario 2 – 90-10 / 60-40 / 30-70 ratio Black box en White box Hergebruikpercentage is 30% DCA = (25*1600*30%*90%*(1-0,2) + 25*1600*30%*10%*(1-0,67))*100 DCA = 903.600 ERROR! REFERENCE SOURCE NOT FOUND. J.4 Bijlage J DCA = (25*1600*30%*60%*(1-0,2) + 25*1600*30%*40%*(1-0,67))*100 DCA = 734.400 DCA = (25*1600*30%*30%*(1-0,2) + 25*1600*30%*70%*(1-0,67))*100 DCA = 525.600 SCA = (25*1600*30%*10%– (10.000*10%+25*1600*30%*10%*10%))*100 SCA = 8.000 SCA = (25*1600*30%*10%– (10.000*10%+25*1600*30%*10%*30%))*100 SCA = -16.000 SCA = (25*1600*30%*10%– (10.000*10%+25*1600*30%*10%*50%))*100 SCA = -40.000 Scenario 2 – Invloed investeringen op totale hergebruikkosten Invloed van de investeringen in de ontwikkeling van nieuwe herbruikbare software artefacten op de totale kosten. Reuse Costs = ((25*1600*0%) + ((16 + 24 + 8)*20)) * 100 Reuse Costs = 96.000 Reuse Costs = ((25*1600*2,5%) + ((16 + 24 + 8)*20)) * 100 Reuse Costs = 196.000 Reuse Costs = ((25*1600*5%) + ((16 + 24 + 8)*20)) * 100 Reuse Costs = 296.000 Reuse Costs = ((25*1600*7,5%) + ((16 + 24 + 8)*20)) * 100 Reuse Costs = 396.000 Reuse Costs = ((25*1600*10%) + ((16 + 24 + 8)*20)) * 100 Reuse Costs = 496.000 Toelichting op het hergebruikpercentage Een praktisch voorbeeld; stel dat er van de 20 projecten 5 zijn die een daadwerkelijke besparing van 3500 manuren realiseren door de frameworks en componenten van Kibowi MP of het EBF her te gebruiken. Stel dat er nog zo’n 5 projecten zijn die enkele herbruikbare artefacten hergebruiken en mogelijk ook het framework maar hier een besparing door realiseren van circa 1000 uur. De overige 10 projecten zijn van dusdanige geringe omvang dat de besparing door hergebruik circa 100 á 200 uur zou zijn. De gemiddelde besparing in uren per project is dan: 5×3500 + 5×1000 + 10×150 20 = 1200 En de totale besparing over de 20 projecten is circa 24.000 uur. Dit is echter gemeten naar de geinvesteerde ontwikkeluren. Het is bekend dat het ontwikkelen van herbruikbare software circa 150% van de normale inspanning, hier gerekend als manuren, kost. De besparing is dus circa 24.000 / 1,5 = 16.000 manuren. Nu is het niet zo dat alle herbruikbare artefacten volledig worden hergebruikt, het resultaat zal mogelijk dus lager liggen. Maar het toont wel aan dat hergebruik een flink resultaat realiseert. ERROR! REFERENCE SOURCE NOT FOUND. Distributielijst 1. Universiteit Twente, Dhr. Th. J. G. Thiadens 2. Universiteit Twente, Dhr. K.G. van den Berg 3. Universiteit Twente, Dhr. T. Hartog 4. Universiteit Twente, Bureau Onderwijs Zaken EWI 5. Universiteit Twente, Secretariaat Software Engineering 6. Archief TNO-FEL, in bruikleen aan Dhr. H.J. Borgers 7. Archief TNO-FEL, in bruikleen aan Mevr. D. keus Indien binnen de krijgsmacht extra exemplaren van dit rapport worden gewenst door personen of instanties die niet op de verzendlijst voorkomen, dan dienen deze aangevraagd te worden bij het betreffende Hoofd Wetenschappelijk Onderzoek of, indien het een K-opdracht betreft, bij de Directeur Wetenschappelijk Onderzoek en Ontwikkeling. *) Beperkt rapport (titelblad, managementuittreksel, RDP en distributielijst).