De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Introductie zPiet de Vries zPinkRoccade zStudenten TUE.

Verwante presentaties


Presentatie over: "Introductie zPiet de Vries zPinkRoccade zStudenten TUE."— Transcript van de presentatie:

1 Introductie zPiet de Vries zPinkRoccade zStudenten TUE

2 Mijn Vuurdoop Verhaal uit de 60-er jaren zOmvangrijk Simulatieprogramma zTwee tekens voor namen van variabelen zMisbruik common data area zEen goto in elke 3 statements zGeen documentatie zOpdracht: Omzetting van 35- naar 32-bits

3 Doelstelling zInzicht verkrijgen in yDe praktijk van software-ontwikkeling tbv administratieve doeleinden yDe rol die de theorie in de praktijk speelt yDe oorzaken van slechte onderhoudbaarheid yde gevolgen van slechte onderhoudbaarheid

4 Indeling zDe Theorie zDe Praktijk zOorzaken en Gevolgen zOnderhoudbaarheid yWaar gaat het eigenlijk om?

5 De Theorie zGeen Cryptische Code zZwakke Koppeling zVerbergen van techniek zVerduidelijkende Naamgeving zVerduidelijkend Commentaar zSterke Samenhang zModulariteit

6 De Praktijk Steekproef 40 bedrijven zSelecte steekproef, subjectieve interpretatie, maar toch y90% Programmeurs kent theorie niet y9% Programmeurs past theorie niet toe y90% Code slecht onderhoudbaar y9% Code vrijwel niet onderhoudbaar y90% Management heeft er geen oog voor y9% Management ziet geen oplossing

7 De Praktijk Een Voorbeeld zBurgerzaken systeem y1 miljoen regels code, Cobol yInitiele kosten 35 manjaar y15 jaar oud y120 manjaar onderhoud y10 minuten onderhoud per regel yVoornamelijk wettelijke wijzigingen yVeel achterstallig onderhoud

8 Oorzaken Hoge Eisen zSoftware moet yDoen wat er van verwacht wordt yNiet meer en Niet minder yOp (vaak zeer korte) tijd af zijn yBinnen (een groot, maar veel te krap) budget yGrondig gecontroleerd zijn yAan een groot aantal kwaliteitseisen voldoen yHerbruikbaar zijn yOnderhoudbaar zijn zDit is zeldzaam moeilijk

9 Oorzaken Multi-Disciplinaire Aanpak zOpleidingen yFilosoof, Mulo, Bioloog, Zeeman, Socioloog, Chemicus, Sexuoloog, Indisch Informaticus, Wiskundige, Melkcontroleur, Neerlandicus, Hobbyisten, Heao, Materiedeskundigen, Binnenhuisarchitect, Gesjeesden yAkelig weinig informatici zHoge eisen zijn niet waar te maken

10 Gevolgen Homohuwelijk zGevolgen voor GBA yTeksten aanpassen yControles aanpassen yBeperkingen van selectie aanpassen yImpliciete aannames aanpassen zKosten: 2 manjaar

11 Gevolgen Globale Gegevens zFoutmelding: Soms worden wijzigingen niet doorgegeven aan een gekoppeld systeem zOorzaak: Als een ambtenaar zijn werkdag begint met het uitgeven van een paspoort, dan krijgt een globaal gegeven een verkeerde waarde zKosten: 3 manweken van dé specialist voor het vinden van de oorzaak

12 Oorzaken Opleiding is niet voldoende zEen goede programmeur heeft veel ervaring zOpleidingen kunnen geen goede programmeurs afleveren zBedrijven zijn er niet op ingericht om medewerkers op te leiden yOnvoldoende Belang yOnvoldoende Omvang yOnvoldoende Kennis

13 Oorzaken De Programmeur zPreoccupatie met techniek (de oplossing) ipv functionaliteit (de bedoeling) zSterke en te vaak Onbekende Koppeling zHet ontbreken van aandacht voor de lezer zZwakke Samenhang

14 Gevolgen Het genie aan het werk zCobol kent geen variabele arraylengte zIk had verstand van operating systeem zRoutine gemaakt voor dynamische allocatie van geheugen zGoed gestructureerd zGoed gedocumenteerd zHeeft nooit iemand iets van begrepen

15 Gevolgen Handige schermroutine zMaximaal 60 velden zVelden op volgnummer te benaderen zGevolgen: veel herhaling van zetten en vaak hernummering nodig zOplossing: schermdefinitie in tabel opslaan en generieke module zGevolg: volstrekt onbegrijpelijke code omdat de tabel niet generiek genoeg is zKosten per jaar niet te becijferen

16 Oorzaken Vicieuze Cirkel zGoede programmeurs willen geen slechte software onderhouden yZoeken heil in Nieuwbouw, Staffuncties, Management, Consultancy, Technische software zDe meeste onderhoudsprogrammeurs kennen de theorie niet zSlechte software wordt steeds slechter

17 Oorzaken Specialisatie zOnderhoudsprogrammeurs yingegraven specialisten op een subsysteem yonmisbaar en soms geniaal yworden gewaardeerd als ze vertrokken zijn zManagement ybeschikt niet over de voor sturing en verbetering vereiste kennis yverliest alle grip zWork-around zolang het duurt

18 Voorbeeld van een draak Begin is niet erg informatief z ********************* z A-000-HOOFD SECTION. z ********************* HOOFD VERWERKING z A-000. z PERFORM A-000-INIT. z * z PERFORM B-000-INDIKATIE UNTIL EINDE. z * z PERFORM C-000-AFSLUITEN. z * z A-999. z GOBACK. zVervolg wordt er niet beter op

19 z B-000. z IF SGVW-A-NUMMER < SAVE-A-NR z GO B-900. z MOVE SGVW-KEY TO BEGIN-KEY. z MOVE SGVW-A-NUMMER TO SAVE-A-NR z AFI-A-NUMMER. z MOVE 0 TO AFI-SL-INDIKATIE. z MOVE 12 TO AFI-OP. z B-100. z CALL "BXXAFI" USING BXXAFI. z IF AFI-FOUT z MOVE 1 TO EINDE-SW z GO B-999. z IF AFI-A-NUMMER NOT = SAVE-A-NR z IF SGVW-FOUT z MOVE 1 TO EINDE-SW z GO B-999 z ELSE MOVE AFI-A-NUMMER TO SAVE-A-NR z GO B-999. z MOVE 13 TO AFI-OP. z MOVE BEGIN-KEY TO SGVW-KEY. z PERFORM LEES-WRK. z IF SGVW-FOUT z MOVE 1 TO EINDE-SW z GO B-999. z PERFORM C-000-VERWERK-INDIK. z GO B-100. z B-900. z PERFORM LEES-SGVW-NEXT. z IF SGVW-FOUT z MOVE 1 TO EINDE-SW. z B-999. z EXIT.

20 z C-000. z MOVE AFI-AFN-INDIKATIE TO AFN-CODE. z MOVE ZEROES TO LKAFN-SW. z MOVE AFN-KEY TO LKAFN-REC. z CALL "BXOAFN" USING DATA-AREA WORK-AREA. z MOVE LKAFN-REC TO AFN-RECORD. z IF AFN-CODE = ZERO z GO C-999. z C-050. z MOVE ZERO TO BERICHT-SW. z MOVE ZERO TO GV02-SW. z C-100. z MOVE ZERO TO WS-FASE. z MOVE SGVW-KEY TO BEGIN-KEY-KAT. z C-200. z PERFORM I-000-INIT-KAT. z IF ………… AND WS-FASE = 0 OR 2 z GO C-400. z C-300. z PERFORM Z-000-AUTORISATIE. z IF AUTORISATIE z AND WS-FASE = 2 z AND BERICHT z PERFORM K-000-KATEGORIE-NUL. z IF AUTORISATIE z AND WS-FASE = 0 z PERFORM L-000-HISTORIE-NUL. z IF AUTORISATIE z PERFORM E-000-BERICHT-AANMAKEN z MOVE 1 TO BERICHT-SW z KAT-SW. z PERFORM LEES-SGVW-NEXT. z C-400.

21 z * Als SKM-NEW = SKM-OUD, dan verschilt het rubr.nr. eventueel z IF SKM-NEW = SKM-OUD z GO C-300. z * Als SKM-NEW-TM-KAT = SKM-OUD-TM-KAT, dan zijn datum en volgnr z * eventueel verschillend (in dat & vlgnr staan niet alleen data) z IF SKM-NEW-TM-KAT = SKM-OUD-TM-KAT z MOVE WS-FASE TO SV-FASE z PERFORM D-000-CHECK-LEGE-KAT z MOVE SV-FASE TO WS-FASE z GO C-900. z * Als WS-FASE nog geen 1 is, dan is er nog geen historie gelezen z IF WS-FASE NOT = 1 z GO C-500. z MOVE 2 TO WS-FASE. z MOVE BEGIN-KEY-KAT TO SGVW-KEY. z PERFORM LEES-WRK. z IF SGVW-FOUT z MOVE 1 TO EINDE-SW z GO C-900. z GO C-200. z C-500. z * Als SKM-NEW-TM-MUTSRT= SKM-OUD-TM-MUTSRT, dan een andere kateg z * bij dezelfde mutatiesoort (GV01 of GV02) z * Init. nieuwe kategorie en vervolg binnen zelfde bericht z PERFORM D-000-CHECK-LEGE-KAT. z IF SKM-NEW-TM-MUTSRT = SKM-OUD-TM-MUTSRT z GO C-100. z C-900. z IF BERICHT z PERFORM F-000-IDENTIFIKATIE. z * Als SKM-NEW-TM-A-NR = SKM-OUD-TM-A-NR, dan een andere kateg z * Init. nieuwe kategorie en start voor een ander bericht z IF SKM-NEW-TM-A-NR = SKM-OUD-TM-A-NR z GO C-050. z * z C-999. z EXIT.

22 Oorzaken Nieuwbouw helpt niet zOplossing: onderhoudbare nieuwbouw? zNieuwbouwprogrammeurs yonderhoudsprogrammeurs xkennen de theorie niet yexterne leveranciers xkennen de theorie niet xhebben geen belang bij onderhoudbaarheid

23 Oorzaken Verbetertraject helpt niet zDe noodzaak wordt breed gevoeld zEr wordt veel geinvesteerd in verbetering zMen richt zich vooral op management yprocessen, planning, beheersing, tijd, voorspelbaarheid, verantwoording, specificaties, contracten zAlleen nuttig als de techniek in orde is zIn de praktijk is er vaak nauwelijks effect

24 CMM 5 zegt niet alles Wat gebeurt hier? z MOVE H01-TIME TO SELEKTIE-NR z R z MOVE 01 TO FUNKTIE z CALL "B5385D" USING LINKAGE z IF STATUS-5385 = ZEROES z ADD 1 TO H01-SS z IF H01-SS = 99 z ADD 1 TO H01-MM z MOVE ZEROES TO H01-SS z END-IF z IF H01-MM = 99 z ADD 1 TO H01-HH z MOVE ZEROES TO H01-MM z MOVE ZEROES TO H01-SS z END-IF z MOVE H01-TIME TO SELEKTIE-NR-5385 z GO R z MOVE H01-TIME TO SEL-SELEKTIE-NUMMER.

25 CMM 5 zegt niet alles Twee fouten opgelost z MOVE H01-TIME TO SELEKTIE-NR-5385 z * We need to lock our entry in 5385 z * Try to write a dummy record with the current time as the key z * If not succesfull keep trying with a second more z MOVE 05 TO FUNKTIE z CALL "B5385D" USING LINKAGE z PERFORM UNTIL STATUS-5385 = ZEROES z ADD 1 TO H01-SS z IF H01-SS = 99 z ADD 1 TO H01-MM z MOVE ZEROES TO H01-SS z END-IF z IF H01-MM = 99 z ADD 1 TO H01-HH z MOVE ZEROES TO H01-MM z MOVE ZEROES TO H01-SS z END-IF z MOVE 05 TO FUNKTIE-5385 z CALL "B5385D" USING LINKAGE-5385 z END-PERFORM. z MOVE H01-TIME TO SEL-SELEKTIE-NUMMER.

26 Onderhoudbaarheid Een OrganisatieProbleem zOnderhoud wordt gedaan door Mensen yWat is het belang van de programmeur? xBrood op de plank xEen excuus, waardoor fouten niet verwijtbaar zijn xKwaliteiten ten toon spreiden yWat is het belang van de projectleider? xRisicoreductie xKorte termijnresultaat yWat is het belang van de manager? xDraagvlak xVoorkomen van mislukking op middenlange termijn xKeuze: Kop in het zand of Nek in de strop yWat is het belang van de klant? yWat is het belang van het bedrijf?

27 Onderhoudbaarheid Een Sociaal Probleem zOnderhoud wordt gedaan voor Mensen yOnderhoudbaar programmeren = xCommuniceren met je collega xInvesteren ten behoeve van je collega xOverzicht en Inzicht bewerkstelligen xRekening houden met menselijke zwakheden

28 Onderhoudbaarheid De Heilige Geboden zFocus op de basis van de theorie ySoftware moet goed Leesbaar zijn, begrijpelijk uitleggen hoe een taak uitgevoerd moet worden yComplexiteit moet gereduceerd zijn tot een niveau waarop de Lezer Overzicht heeft over de materie yDocumentatie moet in beide richtingen Traceerbaar zijn


Download ppt "Introductie zPiet de Vries zPinkRoccade zStudenten TUE."

Verwante presentaties


Ads door Google