MémoireAudit Technique de codeAnalyses et suivis de qualité<br />Présenté par : Mr TAZI Mehdi <br />1<br />
Plan<br />2<br />Quand l’effectuer ?<br />Quel sont ses axes ?<br />Pourquoi faire ? <br />C’est Quoi ? <br />Qui l’effect...
Introduction<br />Stage effectué au sien d’ALTI<br />ALTI : SSII 1200 collaborateurs<br />Intégration de l’équipe de dével...
Audit technique de code<br /><ul><li>Définition de l’audit Technique en générale </li></ul>Identifier les points forts et ...
Audit technique de code<br />5<br /><ul><li>Types d’audits techniques </li></li></ul><li>Audit technique de code<br /><ul>...
Audit technique de code<br /><ul><li>L’audit de code, pourquoi faire ?
Surveiller la qualité du code des projets </li></ul>susceptibles d’évoluer dans le temps.<br /><ul><li>Les grands projets ...
Audit technique de code<br />8<br />Architecture logicielle<br />Respect des normes et des Frameworks utilisés<br />Robust...
Mise en place d’une PIC et de suivi de qualité
Suivre les évolutions à chaque intervention sur le code et à chaque livraison
Utile dans le cadre de la sous-traitance
Boite noire
Pas d’indicateurs
Avoir des mesures plus claires
Audit de code approfondi
Identifier le maximum de problèmes
Proposer des solutions
Demande du temps d’elaboration
Quand l’effectuer ? </li></ul>2<br />1<br />
Audit technique de code<br /><ul><li>Qui l’effectue ?
Une société spécialisée en ingénierie et service informatique (SSII)
Un Freelance</li></ul>10<br />Compétences <br />Techniques <br />avancées<br />Gestionnaire<br />Architecture <br />de Hau...
Audit technique de code<br /><ul><li>Qui est concerné ?
Acteurs principaux : Les développeurs
Upcoming SlideShare
Loading in …5
×

Audit technique de code

8,789 views

Published on

Sujet de mémoire : Audit technique de code

Published in: Technology

Audit technique de code

  1. 1. MémoireAudit Technique de codeAnalyses et suivis de qualité<br />Présenté par : Mr TAZI Mehdi <br />1<br />
  2. 2. Plan<br />2<br />Quand l’effectuer ?<br />Quel sont ses axes ?<br />Pourquoi faire ? <br />C’est Quoi ? <br />Qui l’effectue et qui est concernés?<br />Méthode de mise en place personnelle<br />Conclusion<br />Méthodes d’analyses et modèles de qualité<br />Audit technique de code<br />Introduction<br />Mise en œuvre de la solution<br />
  3. 3. Introduction<br />Stage effectué au sien d’ALTI<br />ALTI : SSII 1200 collaborateurs<br />Intégration de l’équipe de développement du projet TECK<br />TECK : gérer les processus métier de L’ONF<br />Missions Principales : <br />La Correction des anomalies<br />Participation aux développements et aux évolutions<br />L’optimisation et le « reFactoring » du code.<br />Constatations : <br />Lenteur dans l’application en générale<br />Difficulté de compréhension et de maintenance du code<br />Audit Technique de code : <br />Pas une tache facile<br />Pas de standard a suivre<br />3<br />
  4. 4. Audit technique de code<br /><ul><li>Définition de l’audit Technique en générale </li></ul>Identifier les points forts et faibles<br />du système<br />Outil de contrôle et de conseil<br />But<br />Obtenir des <br />solutions et recommandations<br />Corriger et Améliorer les anomalies <br />4<br />Point sur l’existant<br />
  5. 5. Audit technique de code<br />5<br /><ul><li>Types d’audits techniques </li></li></ul><li>Audit technique de code<br /><ul><li>C’est quoi l’audit de code ?</li></ul>Analyse et vérification <br />du code<br />Optimiser le développement<br /> Réduire les cout et les délais<br />6<br />But<br />Se base<br />Modèles de qualité <br />Adaptée<br />Demandes des clients <br />
  6. 6. Audit technique de code<br /><ul><li>L’audit de code, pourquoi faire ?
  7. 7. Surveiller la qualité du code des projets </li></ul>susceptibles d’évoluer dans le temps.<br /><ul><li>Les grands projets coûtent des millions</li></ul> d’euros<br />7<br />Améliorer la qualité de l’application<br />Identifier et anticiper les problèmes de performance et de sécurité<br />Optimiser les développements et la maintenance du code applicatif<br />Optimiser la maintenance corrective et évolutive<br />Augmenter les performances des applications<br />Augmenter la sécurité des applications<br />L’audit technique de code est reconnu comme un outil incomparable<br />
  8. 8. Audit technique de code<br />8<br />Architecture logicielle<br />Respect des normes et des Frameworks utilisés<br />Robustesse / <br />Fiabilité<br />/<br />Scalabilité<br />Documentation technique<br />Evolutivité<br />Maintenance<br />Performances<br />Sécurité<br /><ul><li>Les Différents axes traités par l’audit de code</li></li></ul><li>Audit technique de code<br />9<br />Voir plus claire<br />Suvi de code<br /><ul><li>Nouveau projet ou un projet pour la TMA
  9. 9. Mise en place d’une PIC et de suivi de qualité
  10. 10. Suivre les évolutions à chaque intervention sur le code et à chaque livraison
  11. 11. Utile dans le cadre de la sous-traitance
  12. 12. Boite noire
  13. 13. Pas d’indicateurs
  14. 14. Avoir des mesures plus claires
  15. 15. Audit de code approfondi
  16. 16. Identifier le maximum de problèmes
  17. 17. Proposer des solutions
  18. 18. Demande du temps d’elaboration
  19. 19. Quand l’effectuer ? </li></ul>2<br />1<br />
  20. 20. Audit technique de code<br /><ul><li>Qui l’effectue ?
  21. 21. Une société spécialisée en ingénierie et service informatique (SSII)
  22. 22. Un Freelance</li></ul>10<br />Compétences <br />Techniques <br />avancées<br />Gestionnaire<br />Architecture <br />de Haut Niveau<br />Organisateur<br />
  23. 23. Audit technique de code<br /><ul><li>Qui est concerné ?
  24. 24. Acteurs principaux : Les développeurs
  25. 25. Acteurs secondaires : Les décideurs (Directeurs, Chefs de projet, Managers)</li></ul>11<br />Architecture<br />Haut Niveau<br />Organisateur<br />
  26. 26. Audit technique de code<br /><ul><li>Conduite de changements</li></ul>12<br /><ul><li>Choix des règles
  27. 27. Fournir les indicateurs pour une
  28. 28. auto correction
  29. 29. implication au travail
  30. 30. Faciliter l’organisation et le travail
  31. 31. Eviter les régressions
  32. 32. Rapidité de corrections</li></li></ul><li>Méthodes d’analyses et modèles de qualité<br /><ul><li>En quoi consiste l’audit de code ?</li></ul>13<br />Analyse Dynamique<br /><ul><li>Audit de code est un ensemble d’analyses
  33. 33. Etude de la syntaxe du code : la manière dont le code est structuré
  34. 34. Etude de l’exécution du code : comment le code est exécuté ?</li></ul>Analyse Statique<br /><ul><li>Ces analyses sont effectuées selon 2 méthodes : </li></li></ul><li>Méthodes d’analyses et modèles de qualité<br />14<br />Erreurs de programmation<br />Erreurs de conception<br />Failles de sécurité<br /><ul><li>L’analyse statique</li></ul>Bugs potentiels<br />Code suspect<br />Obtenir des informations sur le comportement du programme sans « Exécution » ni « Compilation » du code source<br />Sémantique du code source<br />Analyse et teste de syntaxe<br />Pratique risqué<br />Règles d’écritureet de nommage<br />L’analyse statique s’effectue <br />Détecter<br />Identifier<br />vérifier<br />
  35. 35. Méthodes d’analyses et modèles de qualité<br />15<br />Fuites de mémoire et des problèmes de performances<br />Variables initialiser mais non utilisées<br /><ul><li>L’analyse statique</li></ul>Failles de sécurité ( Buffer overflow)<br />Redondance du code ( code copié collé )<br /><ul><li>Objectif :
  36. 36. Evaluer la qualité , les performances et la sécurité du code
  37. 37. Déterminer la facilité ou la difficulté de la maintenance du code
  38. 38. Avant toute étude du comportement du code ( A. Dynamique)</li></ul>Variables déclarées 2 fois<br />Code mort ( zone de code non utilisé )<br />Méthodes privées jamais appelées<br /><ul><li>Exemples : </li></ul>Règles de nommage<br />
  39. 39. Méthodes d’analyses et modèles de qualité<br />16<br />Ouverture d’un fichier inexistant<br />Sécurité du système : Droit d’accès en écriture<br />Pointeur sur une adresse mémoire non alloué<br /><ul><li>L’analyse dynamique</li></ul>Débogage<br />Profiling<br />Analyse Dynamique<br /><ul><li>Simuler l’exécution du code sur un vrai processeur ou un processeur virtuel
  40. 40. Révéler des erreurs de codage comportementale non visibles par une analyse statique </li></ul>détecter<br />
  41. 41. Méthodes d’analyses et modèles de qualité<br />17<br />Fréquences des appels de méthodes<br />Durée des appels de méthodes<br /><ul><li>L’analyse dynamique
  42. 42. Le Profiling: Technique d’analyse de performances
  43. 43. Le Débogage: Exécuter le code source pas a pas.
  44. 44. Point d’ arret conditionnelles</li></ul>Parties<br />critiques<br />du code<br />Les opérations en cours <br />Contenu des variables en mémoire <br />Contenu des zones mémoire <br />Etats des registres <br />Fichiers ouverts <br />Pile d’appels <br />Code source en assembleur <br />Observer et modifier <br />
  45. 45. Méthodes d’analyses et modèles de qualité<br /><ul><li>Modèles de qualité</li></ul>18<br /><ul><li>Les bonnes pratiques de développement
  46. 46. Ensemble de règles bien définies à respecter
  47. 47. Prendre en compte les contraintes du client
  48. 48. Répondre aux exigences de qualité de développement</li></ul>Méthodes d’analyses<br />Modèle de qualité<br />Exemples : iso 9126<br />
  49. 49. Méthodes d’analyses et modèles de qualité<br />19<br />Utilisation du modèle de qualité<br />Analyses selon les axes<br />Rédaction d’un rapport<br /><ul><li>Méthode de mise en place personnelle
  50. 50. Une liste de démarches
  51. 51. A respecter et mettre en place</li></ul>Détection des problèmes<br />Proposition des solutions<br />Etude approfondie<br />
  52. 52. Méthodes d’analyses et modèles de qualité<br />20<br /><ul><li>Méthode de mise en place personnelle
  53. 53. Code bien structuré
  54. 54. Facile à comprendre
  55. 55. Maintenance applicatif
  56. 56. Temps de réponses correcte
  57. 57. [Internet,DB,Component]
  58. 58. Stabilité
  59. 59. Sécurité
  60. 60. Système ouvert
  61. 61. Architecture logicielle
  62. 62. Code Evolutif
  63. 63. Code Modulable</li></ul>Les Trois Axes du modèle :<br />La capacité<br />La qualité<br />La modulabilité<br /><ul><li>Redondance du code
  64. 64. Couverture du code par les testes unitaires
  65. 65. Variables lue avant d’être initialiser
  66. 66. Zone de code non utilisé
  67. 67. Classes et méthodes non documenté
  68. 68. Testes de charges
  69. 69. Testes de performances
  70. 70. Testes de stresse
  71. 71. Nombre classes ,attributs méthodes
  72. 72. Nombre d’agrégation , dépendances, généralisation
  73. 73. Couplage entre les objets
  74. 74. Profondeurs de l’arbre d’héritage</li></li></ul><li>Méthodes d’analyses et modèles de qualité<br /><ul><li>Méthode de mise en place personnel</li></ul>21<br />Qualité<br />Capacité<br />Modulabilité<br />Ex Vivo<br />In Vivo<br />Détection des problèmes<br />
  75. 75. Mise en œuvre de la solution<br /><ul><li>Mise en œuvre de la solution</li></ul>22<br /><ul><li>Installation des outils
  76. 76. FindBugs
  77. 77. Cobertura
  78. 78. CheckStyle
  79. 79. Installation de la PIC
  80. 80. Hudson
  81. 81. Sonar
  82. 82. Analyse et études
  83. 83. Méthodologie personnel
  84. 84. Mise en place d’un rapport
  85. 85. Exemples de problèmes identifié
  86. 86. Difficulté de maintenance de la couche présentation :
  87. 87. Imbrication cyclique des classes
  88. 88. Code redondant ( trop de copié collé )
  89. 89. Refactoring du code,creation de classe utilitaire
  90. 90. Difficulté d’évolution de l’application:
  91. 91. Non séparation des couches « présentation » et « traitements »
  92. 92. Problèmes de performances
  93. 93. De nombreux appels entre le client et le serveur
  94. 94. Fichier de mapping mal écrit
  95. 95. Trop d’objets créé
  96. 96. Trop de conversion entre les objets
  97. 97. Introspection inutile
  98. 98. Problèmes de sécurité fonctionnelle:
  99. 99. PDI : protocole document incomplet</li></li></ul><li>Méthodes d’analyses et modèles de qualité<br /><ul><li>Conclusion</li></ul>23<br /><ul><li>Audit technique de code
  100. 100. Axes traité
  101. 101. Acteurs impliqué
  102. 102. Conduite de changement
  103. 103. Méthodologie
  104. 104. Etapes a suivre
  105. 105. Méthodes d’analyses
  106. 106. Modèle de qualité
  107. 107. Mise en œuvre
  108. 108. Solution</li></li></ul><li>Merci pour votre attention<br />24<br />

×