Méthodologies de programmation - Débogage

L'identification et la suppression des erreurs d'un programme ou d'un logiciel s'appelle debugging. Le débogage fait idéalement partie du processus de test, mais en réalité, il est effectué à chaque étape de la programmation. Les codeurs doivent déboguer le plus petit de leurs modules avant de continuer. Cela réduit le nombre d'erreurs générées pendant la phase de test et réduit considérablement le temps et l'effort de test. Examinons les types d'erreurs qui peuvent survenir dans un programme.

Erreurs de syntaxe

Syntax errorssont les erreurs grammaticales dans un programme. Chaque langage a son propre ensemble de règles, comme la création d'identificateurs, l'écriture d'expressions, etc. pour l'écriture de programmes. Lorsque ces règles ne sont pas respectées, les erreurs sont appeléessyntax errors. Beaucoup de modernesintegrated development environmentspeut identifier les erreurs de syntaxe lors de la saisie de votre programme. Sinon, il sera affiché lorsque vous compilerez le programme. Prenons un exemple -

Dans ce programme, la variable prod n'a pas été déclarée, ce qui est lancé par le compilateur.

Erreurs sémantiques

Semantic errors sont aussi appelés logical errors. L'instruction ne contient aucune erreur de syntaxe, elle sera donc compilée et exécutée correctement. Cependant, il ne donnera pas la sortie souhaitée car la logique n'est pas correcte. Prenons un exemple.

Regardez la ligne 13. Ici, le programmeur veut vérifier si le diviseur est 0, pour éviter la division par 0. Cependant, au lieu d'utiliser l'opérateur de comparaison ==, l'opérateur d'affectation = a été utilisé. Maintenant, à chaque fois, l'expression «si» sera évaluée à vrai et le programme donnera la sortie comme «Vous ne pouvez pas diviser par 0». Certainement pas ce qui était prévu !!

Les erreurs logiques ne peuvent être détectées par aucun programme; ils doivent être identifiés par le programmeur lui-même lorsque la sortie souhaitée n'est pas atteinte.

Erreurs d'exécution

Les erreurs d'exécution sont des erreurs qui se produisent lors de l'exécution du programme. Cela implique que le programme n'a aucune erreur de syntaxe. Certaines des erreurs d'exécution les plus courantes que votre programme peut rencontrer sont:

  • Boucle infinie
  • Division par '0'
  • Mauvaise valeur entrée par l'utilisateur (par exemple, une chaîne au lieu d'un entier)

Optimisation du code

Toute méthode par laquelle le code est modifié pour améliorer sa qualité et son efficacité est appelée code optimization. Code qualitydétermine la durée de vie du code. Si le code peut être utilisé et maintenu pendant une longue période, transféré d'un produit à l'autre, sa qualité est jugée élevée et sa durée de vie est plus longue. Au contraire, si un morceau de code ne peut être utilisé et maintenu que pendant de courtes durées, par exemple jusqu'à ce qu'une version soit valide, il est considéré comme de mauvaise qualité et a une courte durée de vie.

La fiabilité et la rapidité d'un code déterminent code efficiency. L'efficacité du code est un facteur important pour garantir la haute performance d'un logiciel.

Il existe deux approches pour l'optimisation du code -

  • Intuition based optimization (IBO)- Ici, le programmeur essaie d'optimiser le programme en fonction de ses propres compétences et expérience. Cela peut fonctionner pour les petits programmes mais échoue lamentablement à mesure que la complexité du programme augmente.

  • Evidence based optimization (EBO)- Ici, des outils automatisés sont utilisés pour découvrir les goulots d'étranglement des performances, puis les parties pertinentes sont optimisées en conséquence. Chaque langage de programmation possède son propre ensemble d'outils d'optimisation de code. Par exemple, PMD, FindBug et Clover sont utilisés pour optimiser le code Java.

Le code est optimisé pour le temps d'exécution et la consommation de mémoire car le temps est rare et la mémoire chère. Il doit y avoir un équilibre entre les deux. Sitime optimization augmente la charge de la mémoire ou memory optimization rend le code plus lent, le but de l'optimisation sera perdu.

Optimisation du temps d'exécution

L'optimisation du code pour le temps d'exécution est nécessaire pour fournir un service rapide aux utilisateurs. Voici quelques conseils pour l'optimisation du temps d'exécution -

  • Utilisez des commandes qui ont une optimisation du temps d'exécution intégrée

  • Utilisez le commutateur au lieu de la condition if

  • Minimiser les appels de fonction dans les structures de boucle

  • Optimiser les structures de données utilisées dans le programme

Optimisation de la mémoire

Comme vous le savez, les données et les instructions consomment de la mémoire. Lorsque nous parlons de données, cela fait également référence à des données intermédiaires qui sont le résultat d'expressions. Nous devons également garder une trace du nombre d'instructions composant le programme ou le module que nous essayons d'optimiser. Voici quelques conseils pourmemory optimization -

  • Utilisez des commandes qui ont une optimisation de la mémoire intégrée

  • Gardez au minimum l'utilisation des variables qui doivent être stockées dans les registres

  • Évitez de déclarer des variables globales dans des boucles exécutées plusieurs fois

  • Évitez d'utiliser des fonctions gourmandes en ressources processeur comme sqrt ()