SlideShare une entreprise Scribd logo
1  sur  24
MémoireAudit Technique de codeAnalyses et suivis de qualité Présenté par : Mr TAZI Mehdi  1
Plan 2 Quand l’effectuer ? Quel sont ses axes ? Pourquoi faire ?  C’est Quoi ?  Qui l’effectue et qui est concernés? Méthode de mise en place personnelle Conclusion Méthodes d’analyses et modèles de qualité Audit technique de code Introduction Mise en œuvre de la solution
Introduction Stage effectué au sien d’ALTI ALTI : SSII 1200 collaborateurs Intégration de l’équipe de développement du projet TECK TECK : gérer les processus métier de L’ONF Missions Principales : 	 La Correction des anomalies Participation aux développements et aux évolutions L’optimisation et le « reFactoring » du code. Constatations :  Lenteur dans l’application en générale Difficulté de compréhension et de maintenance du code Audit Technique de code :  Pas une tache facile Pas de standard a suivre 3
Audit technique de code ,[object Object],Identifier les points forts et faibles du système Outil de contrôle et de conseil But Obtenir des  solutions et recommandations Corriger et Améliorer les anomalies  4 Point sur l’existant
Audit technique de code 5 ,[object Object],[object Object]
Audit technique de code ,[object Object]
Surveiller la qualité du code des projets susceptibles d’évoluer dans le temps. ,[object Object],    d’euros 7 Améliorer la qualité de l’application Identifier et anticiper les problèmes de performance et de sécurité Optimiser les développements et la maintenance du code applicatif Optimiser la maintenance corrective et évolutive Augmenter les performances des applications Augmenter la sécurité des applications L’audit technique de code est  reconnu comme un outil incomparable
Audit technique de code 8 Architecture logicielle Respect des normes et des Frameworks utilisés Robustesse /  Fiabilité / Scalabilité Documentation technique Evolutivité Maintenance Performances Sécurité ,[object Object],[object Object]
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 ? 2 1
Audit technique de code ,[object Object]
Une société spécialisée en ingénierie et service informatique (SSII)
Un Freelance10 Compétences  Techniques  avancées Gestionnaire Architecture  de Haut Niveau Organisateur
Audit technique de code ,[object Object]
Acteurs principaux : Les développeurs

Contenu connexe

Tendances

Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)Ardesi Midi-Pyrénées
 
Pfe rapport rabiaa hind 04 06 2012
Pfe rapport   rabiaa hind 04 06 2012Pfe rapport   rabiaa hind 04 06 2012
Pfe rapport rabiaa hind 04 06 2012Olaya Hoyame
 
Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...Addi Ait-Mlouk
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UMLAmir Souissi
 
Conception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTSConception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTSFaissoilMkavavo
 
Memoire de fin d'études pour le diplome de Chef de Projet Informatique et Rés...
Memoire de fin d'études pour le diplome de Chef de Projet Informatique et Rés...Memoire de fin d'études pour le diplome de Chef de Projet Informatique et Rés...
Memoire de fin d'études pour le diplome de Chef de Projet Informatique et Rés...Arnold Stellio
 
Ma présentation PFE
Ma présentation PFEMa présentation PFE
Ma présentation PFELouati Aicha
 
Application web de gestion de recrutement- Recruitement managment system
Application web de gestion de recrutement- Recruitement managment systemApplication web de gestion de recrutement- Recruitement managment system
Application web de gestion de recrutement- Recruitement managment systemSarra ERRREGUI
 
Cours sécurité 2_asr
Cours sécurité 2_asrCours sécurité 2_asr
Cours sécurité 2_asrTECOS
 
INTRODUCTION A BPM
INTRODUCTION A BPMINTRODUCTION A BPM
INTRODUCTION A BPMSaid Sadik
 
Rapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaRapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaNazih Heni
 
Supervision de réseau informatique - Nagios
Supervision de réseau informatique - NagiosSupervision de réseau informatique - Nagios
Supervision de réseau informatique - NagiosAziz Rgd
 
Présentation soutenance
Présentation soutenancePrésentation soutenance
Présentation soutenanceshurongliu
 
Rapport pfe-ayoub mkharbach
Rapport pfe-ayoub mkharbachRapport pfe-ayoub mkharbach
Rapport pfe-ayoub mkharbachAyoub Mkharbach
 
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_webRapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_webSalma Gouia
 
Rapport Projet de fin d'etude sur le parc informatique
Rapport Projet  de fin d'etude sur le parc informatiqueRapport Projet  de fin d'etude sur le parc informatique
Rapport Projet de fin d'etude sur le parc informatiqueHicham Ben
 
Bpm business process management
Bpm  business process managementBpm  business process management
Bpm business process managementMouna Dhaouadi
 

Tendances (20)

Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
 
Pfe rapport rabiaa hind 04 06 2012
Pfe rapport   rabiaa hind 04 06 2012Pfe rapport   rabiaa hind 04 06 2012
Pfe rapport rabiaa hind 04 06 2012
 
Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UML
 
Conception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTSConception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTS
 
Memoire de fin d'études pour le diplome de Chef de Projet Informatique et Rés...
Memoire de fin d'études pour le diplome de Chef de Projet Informatique et Rés...Memoire de fin d'études pour le diplome de Chef de Projet Informatique et Rés...
Memoire de fin d'études pour le diplome de Chef de Projet Informatique et Rés...
 
Ma présentation PFE
Ma présentation PFEMa présentation PFE
Ma présentation PFE
 
Application web de gestion de recrutement- Recruitement managment system
Application web de gestion de recrutement- Recruitement managment systemApplication web de gestion de recrutement- Recruitement managment system
Application web de gestion de recrutement- Recruitement managment system
 
Cours sécurité 2_asr
Cours sécurité 2_asrCours sécurité 2_asr
Cours sécurité 2_asr
 
INTRODUCTION A BPM
INTRODUCTION A BPMINTRODUCTION A BPM
INTRODUCTION A BPM
 
Rapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaRapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédia
 
La sécurité informatique
La sécurité informatiqueLa sécurité informatique
La sécurité informatique
 
Supervision de réseau informatique - Nagios
Supervision de réseau informatique - NagiosSupervision de réseau informatique - Nagios
Supervision de réseau informatique - Nagios
 
MEMOIRE DE STAGE
MEMOIRE DE STAGEMEMOIRE DE STAGE
MEMOIRE DE STAGE
 
Rapport pfe
Rapport pfeRapport pfe
Rapport pfe
 
Présentation soutenance
Présentation soutenancePrésentation soutenance
Présentation soutenance
 
Rapport pfe-ayoub mkharbach
Rapport pfe-ayoub mkharbachRapport pfe-ayoub mkharbach
Rapport pfe-ayoub mkharbach
 
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_webRapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
 
Rapport Projet de fin d'etude sur le parc informatique
Rapport Projet  de fin d'etude sur le parc informatiqueRapport Projet  de fin d'etude sur le parc informatique
Rapport Projet de fin d'etude sur le parc informatique
 
Bpm business process management
Bpm  business process managementBpm  business process management
Bpm business process management
 

Similaire à Audit technique de code

Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php ALTER WAY
 
Altran soirée du test logiciel - assez des c 05-10-17
Altran   soirée du test logiciel - assez des c 05-10-17Altran   soirée du test logiciel - assez des c 05-10-17
Altran soirée du test logiciel - assez des c 05-10-17Marc Hage Chahine
 
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...TelecomValley
 
Secure Software Development Life Cycle (SSDLC)
Secure Software Development Life Cycle (SSDLC)Secure Software Development Life Cycle (SSDLC)
Secure Software Development Life Cycle (SSDLC)Aymeric Lagier
 
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel  - Introduction Et Bonnes PratiquesIndustrialisation Du Logiciel  - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel - Introduction Et Bonnes PratiquesEmmanuel Hugonnet
 
Industrialisation Du Logiciel Introduction Et Bonnes Pratiques V1.4
Industrialisation Du Logiciel   Introduction Et Bonnes Pratiques   V1.4Industrialisation Du Logiciel   Introduction Et Bonnes Pratiques   V1.4
Industrialisation Du Logiciel Introduction Et Bonnes Pratiques V1.4Emmanuel Hugonnet
 
12-Cours de Géniel Logiciel
12-Cours de Géniel Logiciel12-Cours de Géniel Logiciel
12-Cours de Géniel Logiciellauraty3204
 
20120124 05 - Le Model-based Testing aujourd'hui (Inria)
20120124 05 - Le Model-based Testing aujourd'hui (Inria)20120124 05 - Le Model-based Testing aujourd'hui (Inria)
20120124 05 - Le Model-based Testing aujourd'hui (Inria)LeClubQualiteLogicielle
 
La relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiquesLa relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiquesEric SIBER
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2Christophe Rochefolle
 
Assurance Qualité logicielle
Assurance Qualité logicielleAssurance Qualité logicielle
Assurance Qualité logicielleSylvain Leroy
 
Sécurité dans les contrats d'externalisation de services de développement et ...
Sécurité dans les contrats d'externalisation de services de développement et ...Sécurité dans les contrats d'externalisation de services de développement et ...
Sécurité dans les contrats d'externalisation de services de développement et ...Antonio Fontes
 
Adoption incrémentale des tests dans VS ALM
Adoption incrémentale des tests dans VS ALMAdoption incrémentale des tests dans VS ALM
Adoption incrémentale des tests dans VS ALMGrégory Ott
 
Cleancode / Tocea / Introduction
Cleancode / Tocea / IntroductionCleancode / Tocea / Introduction
Cleancode / Tocea / IntroductionSylvain Leroy
 
La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !Lucian Precup
 
Les tests fonctionnels avec Visual Studio 2010
Les tests fonctionnels avec Visual Studio 2010Les tests fonctionnels avec Visual Studio 2010
Les tests fonctionnels avec Visual Studio 2010Microsoft
 

Similaire à Audit technique de code (20)

Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php
 
Altran soirée du test logiciel - assez des c 05-10-17
Altran   soirée du test logiciel - assez des c 05-10-17Altran   soirée du test logiciel - assez des c 05-10-17
Altran soirée du test logiciel - assez des c 05-10-17
 
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
 
Secure Software Development Life Cycle (SSDLC)
Secure Software Development Life Cycle (SSDLC)Secure Software Development Life Cycle (SSDLC)
Secure Software Development Life Cycle (SSDLC)
 
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel  - Introduction Et Bonnes PratiquesIndustrialisation Du Logiciel  - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
 
Industrialisation Du Logiciel Introduction Et Bonnes Pratiques V1.4
Industrialisation Du Logiciel   Introduction Et Bonnes Pratiques   V1.4Industrialisation Du Logiciel   Introduction Et Bonnes Pratiques   V1.4
Industrialisation Du Logiciel Introduction Et Bonnes Pratiques V1.4
 
12-Cours de Géniel Logiciel
12-Cours de Géniel Logiciel12-Cours de Géniel Logiciel
12-Cours de Géniel Logiciel
 
20120124 05 - Le Model-based Testing aujourd'hui (Inria)
20120124 05 - Le Model-based Testing aujourd'hui (Inria)20120124 05 - Le Model-based Testing aujourd'hui (Inria)
20120124 05 - Le Model-based Testing aujourd'hui (Inria)
 
La relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiquesLa relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiques
 
Les tests de securite devops
Les tests de securite devopsLes tests de securite devops
Les tests de securite devops
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2
 
Assurance Qualité logicielle
Assurance Qualité logicielleAssurance Qualité logicielle
Assurance Qualité logicielle
 
20100121 01 - Présentation Renault
20100121 01 - Présentation Renault20100121 01 - Présentation Renault
20100121 01 - Présentation Renault
 
Sécurité dans les contrats d'externalisation de services de développement et ...
Sécurité dans les contrats d'externalisation de services de développement et ...Sécurité dans les contrats d'externalisation de services de développement et ...
Sécurité dans les contrats d'externalisation de services de développement et ...
 
Adoption incrémentale des tests dans VS ALM
Adoption incrémentale des tests dans VS ALMAdoption incrémentale des tests dans VS ALM
Adoption incrémentale des tests dans VS ALM
 
Adoption incrémentale des tests dans VS ALM
Adoption incrémentale des tests dans VS ALMAdoption incrémentale des tests dans VS ALM
Adoption incrémentale des tests dans VS ALM
 
Cleancode / Tocea / Introduction
Cleancode / Tocea / IntroductionCleancode / Tocea / Introduction
Cleancode / Tocea / Introduction
 
La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !
 
Les tests fonctionnels avec Visual Studio 2010
Les tests fonctionnels avec Visual Studio 2010Les tests fonctionnels avec Visual Studio 2010
Les tests fonctionnels avec Visual Studio 2010
 
Qualite1
Qualite1Qualite1
Qualite1
 

Audit technique de code

Notes de l'éditeur

  1. Bonjour Monsieur PIPARDDonc aujourd'hui je vais présenter mon thème de mémoire qui est l’audit technique de code Mais Avant de commencer je voudrais remercier tout le personnel de l’Ecole ESIAG pour avoir assuré une formation de haute qualité.j‘éspèremonsieur , quema présentation sera a la hauteur de votre attenteSans trop tarder je vais passer directement au plan de cette présentation
  2. Au début je vais commencer par une introduction ou j’expliquerai les raisons qui m’on poussé a choisir ce thèmeEnsuite je présenterai ce qu’est l’audit technique en générale et puis plus spécifiquement celui du code , j’expliquerai aussi les raisons pour les quels on effectue un audit technique de code, les axes traité par ce dernier, quand l’effectuer et les acteurs concernés.Puis je présenterai les méthodes d’analyses utilisées pour sa mise en place ainsi que voir ce qu’est les modèles de qualité et leurs relation avec ces méthodes d’analysesDans le point qui suis je présenterai ma méthodologie personnelle pour la réalisation de l’audit de code(cette méthodologie répond a l’ problématique traiter par le sujet de mémoire « Qu’elles sont les étapes à suivre afin de mettre en place un audit technique de code »)Finalement je présenterai rapidement la solution que j’ai mis en place au sien d’ALTIEt je terminerai cette présentation par une conclusion
  3. Avant de présenter l’audit technique de code je vais déjà définir brièvement ce qu’est déjà l’audit technique en généraleL’audit technique est un outil de contrôle et de conseil qui permet de faire le point sur l'existant une sorted’état des lieux , dans le but d’identifier les points forts et faibles du système étudié et d’Obtenir des solutions et recommandations pour de futurs correction et amélioration des anomalies et problèmes de ce dernier
  4. Donc qu’est ce qu’ est au juste L’audit technique de code ?L’audit de code est un processus qui consiste en une analyse et vérification du code sources de l’application.Il est permet d’optimiser le développement et réduire les coûts et délais. Cette audit se base sur des modèles de qualité a respecter qui définissent des règles adaptés aux demandes de chaque client.
  5. Alors pourquoi effectué un audit de code ?Comme vous le savez monsieurLa surveillance de la qualité du code des grands projets susceptible d’évoluer dans le temps esttrès importanteVue que de tel projets coutent des millions d’euros et aussi que le cout de correction évolue exponentiellement dans le temps,vue que les lignes de code sont de plus en plus nombreuse et donc de plus en plus difficile a comprendre et a maintenirEt c’est d’ailleurs la que l’audit de code s’impose comme un outil incontournablepour :Optimiser les développements et la maintenance du code applicatifAméliorer la qualité de l’applicationOptimiser la maintenance corrective ou évolutiveAugmenter les performances des applicationsAugmenter la sécurité des applicationsIdentifier et anticiper les problèmes de performance et de sécurité.
  6. L’audit technique de code peut traiter différents axes selon le besoin du client, par exemples il peut vérifier si L’architecture logicielle est bien conçu , voir si le système peut s’interfacer et communiquer avec d’autres systèmes externesOu encore vérifier si le code respecte les normes et standard de programmation et des Frameworks utilisés.L’audit de code peut aussi être axé vers les performances afin de mesuré les temps des réponses du systèmeIl peu aussi Mesurer la robustesse, la fiabilité, la scalabilité voir par exemple si le système accepte une monté en charge sans perte de performances (ou encore de vérifier si le systèmes arrive a gérer efficacement les transactions distribués)Vérifier si le système peut facilement accepter des évolutions et de la maintenance par exemple dans le cas du Projet TECK , ONF a attribuer la maintenance du projet a LOGICA plutôt qu’ALTI, l’ONF a donc demandé a ORESYS de réaliser un audit technique de code axé sur la maintenance pour que ALTI effectue les changements qu’il faut.Le client peut avoir aussi comme besoin de Vérifier si la qualité et le pourcentage de présence de la documentation technique est correcte.(Java Doc dans le monde JAVA)L’audit de code peut aussi vérifier les failles de sécurité logique existantes
  7. L’audit technique de code est effectué soit lorsque l’entreprise cherche a voir plus claire sur un système ou lorsqu’elle cherche a faire un suivi de code.Dans le premier cas l’entreprise cherche a voir plus claire sur des systèmes de type« boite noire ».cela veux dire des systèmes ou ’entreprise ne dispose quasiment pas d’indicateurs, et souhaites avoir des mesures plus claires sur ce dernier.Dans ce cas l’auditeur doit effectuer une analyse approfondi du code .afin d’identifier le maximum de problèmes et de proposer d’éventuelles solutionsUne telle prestation est destinée pour une prise de décision et demande du temps pour son élaboration. Le deuxième cas c’est lorsque l’entreprise souhaite faire un suivi de qualité de code du projet. Qu’il s’agisse d’un nouveau ou d’un projet pour la tierce maintenance applicative.Dans ce cas, la mise en place d’une PIC et d’une plateforme de suivis de qualité de code est obligatoire afin de pouvoir suivre d’évolution à chaque intervention sur le code source et à chaque livraison.Ce deuxième cas est particulièrement utile dans le cadre de la sous-traitance.
  8. Maintenant je vais passer aux acteurs concerné par cet auditAlors L’audit technique de code est effectué soit par une SII soit par un freelanceL’auditeur doit avoir des compétences technique avancées , être spécialiste dans le langage utilisé , avoir des connaissances dans l’architecture de haut niveau et du domaine applicative Mais en plus il doit disposer d’un esprit de gestionnaire et d’organisateur
  9. L’audit de code concerne ne concernent pas que les développeurs mais il concerne aussi les décideurs ( chefs de projet et managers)Les développeurs sont les acteurs principaux vue que c’est eux qui implémente les bonnes pratiques de développements et les solutions proposées par les auditeurs et interprète les indicateurs pour effectuer des corrections et des amélioration automatiquement Tandis que les décideurs interprète les résultats de l’audit et prennent des décisions afin de mieux gérer les équipes de développements
  10. Bien évidement l’ajout d’un système pareille, impose une conduite de changement vis-à-vis les acteurs et principalement vis-à-vis les développeurs qui voie l’audit comme un moyen de contrôle et de surveillance plutôt qu’un moyen d’amélioration continue.C’est pour cette raison qu’il est très conseillé au début de choisir que quelques règles et de bien les choisir ,afin de laisser aux développeurs le temps de s’habituer au système.Mais aussi de leurs fournir ces indicateurs afin de leurs permettre de se sentir impliquer dans le travail ce qui les pousserais a corriger automatiquement et efficacement les problèmes détectés.I faut expliquer aux développeurs qu’un tel audit ou un tel suivi de qualité de code permet de faciliter le travail , leurs permettre d’éviter des régressions fréquentes et leurs permettre de corriger rapidement les anomalies rencontrées.
  11. Une question se pose, Mais en quoi consiste réellement l’audit de code ? L’audit de code consiste a effectué un ensemble d’analyses Ou on va étudie d’une part la manière dont le code est structuré autrement dit sa syntaxe et d’autre part comment le code est exécutéCes analyses s’effectue selon 2 méthodes ,une analyse statique et une autre dynamique
  12. l’analyse statique du code est une notion qui permet d’obtenir des informations sur le comportement du programme sans avoir à exécuter ni a compiler le code source. Cette analyse permet de détecter des erreurs de programmation , de conception ,d’identifier des failles de sécurité ,des bugs potentiels , du code suspect, des pratiques risqué ou encore de vérifier si des règles d’écriture et de nommage du code sont respecté.tout cela s’effectue grâce à une analyse et teste de la syntaxe et de sémantique du code sources.
  13. Cette analyse a pour objectif d'évaluer la qualité, lesperformances et la sécurité du code sources, mais aussi de déterminer la facilité ou la difficulté à maintenir ce code .ceci avant toute étude du comportemental du code (analyse dynamique).Par exemples avec une analyse statique on peut détecter les erreurs suivantes :des fuites de mémoire et/ou des problèmes de performancedes variables initialiser mais non utiliséesdes failles de sécurité telle que le “buffer overflow” (dépassement de tampon)de la redondance du code (code copié-collé)de trouver des variables déclaré 2 fois.de détecter des zones de code non utiliséede localiser des méthodes privées jamais appelées
  14. Tandis que L'analyse dynamique est une notion qui permet de simuler l'exécution du code sources d’un programme sur un vrai processeur ou un processeur virtuel.Afin de révéler des erreurs de codage souvent comportementale qui ne sont pas visible avec une analyse statique du code.Une telle analyse permet par exemples de détecter des problèmes :lors de l’ouverture d’un fichier inexistant.de sécurité système: lorsque l’utilisateur ne dispose pas  de droit d'accès en écriture...pointer vers une adresse mémoire non alloué et/ou non permise par le systèmeL’analyse dynamique fait appels principalement a deux techniques : le débogage et le profiling, c’est mécanismes sont actuellement très utilisées par les développeurs vue leurs utilités.
  15. Le Profiling est une technique d'analyse des performances de l’application, elle permet d’offrir des mesures sur la fréquence des appels de méthodes, ou encore la durée de l’appel d’une méthodemais aussi d’identifier les différentes parties critiques du code.Quand a la technique du débogage est une technique qui permet d’exécuter le code source pas à pas avec une possibilité de mise en place de points d'arrêt conditionnelles Et permet donc à un instant “T”, d’observer les opérations en cours, les fichiers ouverts, l’état des registres processeurs ,la pile d'appel mais en plus de modifier le contenu des différentes variables en mémoire, le contenu des zones mémoire, le code source en assembleur et bien d'autres options...
  16. Passant maintenant aux modèles de qualité ou comme on les appelle encore “les bonnes pratiques de développement” qui sont un ensemble de règles bien définies à respecter. Qui on comme finalité de prendre en compte les contraintes du client tout en répondant aux exigences de qualité de développement.Ces modèles permettent d’encadrer les méthodes d’analyses statique et dynamique.parmi les plus connue modèles de qualité je peux cité par exemple le fameu modèle « iso 9126 »
  17. Lors de cette partie je vais présenter ma méthode personnelle pour la réalisation d’un audit technique de code.La méthode que je propose est sous forme d’une liste de démarches à mettre place et à respecter.Au début l’auditeur doit utiliser le modèle de qualité personnel (que j’ai vais définir par la suite) pour orienté et cadrer les analyses qu’il va devoir effectuer ,ces analyses seront effectué pour chaque axe du modèle afin de détecter les problèmes lié au système, l’auditeur est supposé faire une étude approfondie sur ces problèmes afin de proposer les meilleures solutions possibles . Finalement il doit rédiger un rapport avec l’ensemble des problèmes identifier et les solutions proposé.
  18. La première étape des démarches étai l’utilisation du modèle de qualité que j’ai définie, ce modèle est organisé en 3 axesLe premier axe est La modulabilité qui a comme exigences de disposer d’un système ouvertavec une architecture logicielle bien conçu, un code facilement évolutif et modulable.Dans le but de facilement suivre les évolutions de l’application sans trop de changement dans l’architecture, le code doit aussi permettre facilement d’ajouter de nouveaux modules, le système doit pouvoir communiquer avec d’autres systèmes externes, pour cela le code doit utiliser des technologies normalisé afin qu’il est puisse s’interfacer avec d’autres systèmes.L’axe de modulabilité se base principalement sur des métriques comme le nombre de classes….L’axe de capacité requis que le logicielle est des temps de réponses correctes sur les différents supports utilisé(que cela soit des connexion WEB ,ou des requete SQL, ou encore une communication entre composant ( corba ou ejb),l’axe de capacité requis aussiun logicielle stable qui ne plante pas à chaque problème rencontré, et arrive à tourner en a un mode dégradé en cas de problèmes graves et finalement un logiciel avec un niveau de sécurité acceptable.Le dernier axe est La qualité , ila pour but de disposer d’un code bien structuré et simple à comprendre afin de pouvoir y effectuer de la maintenance applicative sans trop de difficulté.
  19. Le 2eme point de la méthodologie étai l’ensemble des analyses a effectué.Ces analyses sont organisé en deux phases qui sont appliquées pour chacune des axes du modèle définis:Une phase in vivo qui correspond a l’analyse dynamique etune phase ex vivo qui correspond a l’analyse statique Les problèmes détectés lors de ces deux phases feront l’objet d’une étude approfondie par l’auditeur qui est supposé proposer les meilleures solutions possibles à ces problèmes.
  20. Donc passons maintenant a ce que j’ai mis en place a l’entreprise , Donc a ALTIj’ai pu réaliser un petit audit technique de code, pour cela j’ai du installer et configurer au début une plateforme d’intégration continue basé sur Hudson et sonar pour les métrique.J’ai aussi installé les plug-ins Findbugs , Cobertura et CheckStyle pour sonar et Eclipse. Puis j’ai utilisé ma méthodologie personnel que j’ai décrite tout a l’heure pour étudier et analyser l’application TECK.Apres cette analyse j’ai pu réaliser un mini rapport ou j’ai répertorier l’ensembles des problèmes détecter et les éventuel solution pour les corriger.Par exemples dans l’application teck j’ai identifier des difficulté de maintenance de l’application mais plus spécifiquement la couche présentation vue qu’elle disposer d’un code avec beaucoup d’imbrication cyclique ou encore du code redondant. comme solution j’ai proposer de créer des classes utilitaire pour éviter les copier coller et de refactoré le code source.Il avait aussi un problème pour l’évolution de l’application vue la non séparation de la couches présentation et traitements.Mon but principale derrière cette audit étai pour des fins d’optimisation, vue que cela fessai partie de mes missions.J’ai donc identifier quelques problème majeurs, tel que l’application effectué plusieurs appels entre le client et le serveur la ou elle pouvait en effectué qu’un seul(cas ajout de plusieurs lignes de demande d’achats)ou encore j’ai remarqué que les fichiers de mapping « dozer » étai mal écrit et donc on récupéré des donnée supplémentaire sans aucun intérêt fonctionnelle.la ou on pouvais juste récupérer juste les information dont l’application avait besoin.Mais ce n’etait pas tout l’application perdais en performance aussi vue qu’elle créé beaucoup d’objet inutile(donc elle occupé de la place en plus en mémoire et perdez du temps lors de leurs création)Ou encore elle perdais du temps a faire des conversions inutile.L’application faisait trop appels a l’introspection même a des endroits ou l’on pouvais éviter cela…..Ce qui ralentissais d’avantage l’application.Niveau securté l’application ne disposai pas de système pour valider et controler les donnée entré.l’une de mes missions etai la creation de PDI pour protocole de document incomplet ou le but etai de verifier les champs obligatoire a la saisie , la validiter des donnée ainsi de suite.Check Style Est un outil qui dispose d’une liste de règles de codage personnalisable (environ 150 règles) afin de vérifier et améliorer la qualité du code. Check Style est capable de :Vérifier la longueur des lignes de codeVérifier la présence de la « Java Doc »Vérifier le respect des standards de nommage Améliorer l'écriture et la qualité du codeFindbugs  Est un outil qui permet d’effectuer une analyse détaillé du code Java, il permet d’identifier des anomalies avancée comme : Détection des mauvaises pratiques de codageL’identification des failles de sécurité comme : utilisation de variables instancié à NULL;Détection des problèmes pouvant causer des régressions dans les performancesProblèmes liés au ThreadCoberturaEst un outil qui permet principalement de mesurer la couverture du code par les tests unitaires.Mais aussi d’analyser les lignes et les branches, ainsi que la complexité McCabeGrace a une intégration avec Sonar, il est tout à fait possible d'obtenir des mesures au niveau du projet, des packages, des classes ou des méthodes.SonarPermet de fournir une analyse complète de la qualité du code grâce à divers métriques. Sonar est capable de gérer différents langages (JAVA, C#, FLEX,…)Sonar est un projet tout en un, grâce à son système de plug-in, sonar permet d’intégrer et tirer profit de la puissance d’outils comme : Check Style, FindBugs, Cobertura…
  21. Nous avons vue lors de cette présentation ce qu’est l’audit technique de code ,les différents axes qu’il peut traiter et les différents acteurs qui sont impliqué, nous avons compris qu’il est impérative de passer par une conduite de changement vis-à-vis ces derniers.Nous avons aussi pris connaissance de l’ensemble des étapes a suivre pour la mise en place d’un tel audit, et nous avons compris qu’un tel audit se base sur les deux méthodes d’analyses (analyse statique et dynamique ) et qu’il est impérativement indispensables de disposer d’un modèle de qualité pour orienté ces analyses.finalement j’ai présenter la solution mise en place a l’entreprise