Code-inspecties


  Ronald Harmsen
  Frank Oppedijk
Agenda
 Inleiding

 Introductie IfSQ-Level 1 (6 indicatoren)
 Hands-on: inspectie Level 1

 Introductie IfSQ-Level 2 (...
Waarom?
 Fouten vinden in bestaande code
 Fouten voorkómen – door verhoging
  van kwaliteit van toekomstige code
 Inzic...
Voordelen en nadelen
   Geïnspecteerde software levert half zoveel rework op
   Geïnspecteerde software kost 90% minder ...
Soorten code-inspecties
 Formeel
 Lightweight
Formele code-inspectie
 Bijv. Fagan-inspecties
 Meerdere rollen en fasen
 Effectief
   Defect Removal Efficiency ~60%
...
Lightweight code-inspectie
   Bijv. ‘walkthrough’, pair-programming
   Informeel
   Sneller
   Minder effectief (DRE ~...
IfSQ
 Formeel proces; objectief
 Snel
 Op papier
IfSQ: 3 levels
 Level-1: 6 indicatoren (1 min/pagina)
 Level-2: 12 (15) indicatoren (3
  min/pagina)
 Level-3: 19 indic...
IfSQ Level-1: indicatoren
 Work In Progress
   WIP-1—Vague "To Do"
   WIP-2—Disabled Code
   WIP-3—Empty Statement Blo...
IfSQ Level-1: proces
IfSQ Level-1: hands-on
 Voer inspectie uit op uitgereikte code
 Level-1
 20 minuten

 Noot: indicatoren Level-1 staan ...
IfSQ Level-1: hands-on
 Resultaten code-inspectie:
   WIP-1—Vague "To Do":2
   WIP-2—Disabled Code: 38
   WIP-3—Empty ...
IfSQ Level-2: 6 extra indicatoren
 Structured Programming
   SP-3—Routine Too Complex
 Single Point of Maintenance
   ...
IfSQ Level-2: proces
IfSQ Level-2: hands-on
 Voer inspectie uit op zelf
  meegebrachte code
 Level-2
 30 minuten

 Noot: indicatoren Level-...
IfSQ Level-2: rating
 Bereken defect indicators per 1000 LOC
 Bepaal vervolgens de rating:
                    count/kLO...
IfSQ Level-2
 Nog 3 indicatoren
 Minder objectief

 CfC-NC—Not Complete
 CfC-WR—Wrong Result
 CfC-HtM—Hard to Maintain
Vragen?
Upcoming SlideShare
Loading in …5
×

Code inspecties

1,231 views
1,118 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,231
On SlideShare
0
From Embeds
0
Number of Embeds
160
Actions
Shares
0
Downloads
7
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Code inspecties

  1. 1. Code-inspecties Ronald Harmsen Frank Oppedijk
  2. 2. Agenda  Inleiding  Introductie IfSQ-Level 1 (6 indicatoren)  Hands-on: inspectie Level 1  Introductie IfSQ-Level 2 (12 indicatoren)  Hands-on: inspectie Level 2  IfSQ-Level 2: nog 3 indicatoren  Vragen & discussie
  3. 3. Waarom?  Fouten vinden in bestaande code  Fouten voorkómen – door verhoging van kwaliteit van toekomstige code  Inzicht krijgen in betrouwbaarheid en onderhoudbaarheid
  4. 4. Voordelen en nadelen  Geïnspecteerde software levert half zoveel rework op  Geïnspecteerde software kost 90% minder onderhoud  Inspectie vindt 60% meer fouten dan testen  Inspectie is 4x meer effectief dan testen  Developers die code inspecteren zijn minimaal 20% productiever  Code-inspecties kosten tijd  Code-inspecties zijn saai   Code-inspecties kunnen negatief werken op de sfeer in het team
  5. 5. Soorten code-inspecties  Formeel  Lightweight
  6. 6. Formele code-inspectie  Bijv. Fagan-inspecties  Meerdere rollen en fasen  Effectief  Defect Removal Efficiency ~60%  Ter vergelijking: DRE van testen: 35%  Tijdrovend (sneuvelt daardoor vaak)
  7. 7. Lightweight code-inspectie  Bijv. ‘walkthrough’, pair-programming  Informeel  Sneller  Minder effectief (DRE ~50%)  Minder efficiënt? (Formele inspecties meer gefocused; betere payoff)
  8. 8. IfSQ  Formeel proces; objectief  Snel  Op papier
  9. 9. IfSQ: 3 levels  Level-1: 6 indicatoren (1 min/pagina)  Level-2: 12 (15) indicatoren (3 min/pagina)  Level-3: 19 indicatoren (5 min/pagina)
  10. 10. IfSQ Level-1: indicatoren  Work In Progress  WIP-1—Vague "To Do"  WIP-2—Disabled Code  WIP-3—Empty Statement Block  Structured Programming  SP-1—Routine Too Long  SP-2—Nesting Too Deep  Single Point of Maintenance  SPM-1—Magic Numbers
  11. 11. IfSQ Level-1: proces
  12. 12. IfSQ Level-1: hands-on  Voer inspectie uit op uitgereikte code  Level-1  20 minuten  Noot: indicatoren Level-1 staan in boekje en op Quick Reference Card
  13. 13. IfSQ Level-1: hands-on  Resultaten code-inspectie:  WIP-1—Vague "To Do":2  WIP-2—Disabled Code: 38  WIP-3—Empty Statement Block: 5  SP-1—Routine Too Long: 10  SP-2—Nesting Too Deep: 0  SPM-1—Magic Numbers: 31
  14. 14. IfSQ Level-2: 6 extra indicatoren  Structured Programming  SP-3—Routine Too Complex  Single Point of Maintenance  SPM-2—Magic Strings  SPM-3—Copy/Paste Programming  Defensive Programming  DP-1—Parameter Not Checked  DP-2—Status Ignored After Call  DP-3—Unexpected State Not Trapped
  15. 15. IfSQ Level-2: proces
  16. 16. IfSQ Level-2: hands-on  Voer inspectie uit op zelf meegebrachte code  Level-2  30 minuten  Noot: indicatoren Level-2 staan op Quick Reference Card
  17. 17. IfSQ Level-2: rating  Bereken defect indicators per 1000 LOC  Bepaal vervolgens de rating: count/kLOC (min.) count/kLOC (max.) rating 0 0 10 1 1 9 2 4 8 5 9 7 10 19 6 20 49 5 50 99 4 100 199 3 200 499 2 500 999 1 1000 unlimited 0
  18. 18. IfSQ Level-2  Nog 3 indicatoren  Minder objectief  CfC-NC—Not Complete  CfC-WR—Wrong Result  CfC-HtM—Hard to Maintain
  19. 19. Vragen?

×