Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
qualite_logiciel [2014/10/15 10:17] gbdivers créée |
qualite_logiciel [2017/04/26 17:50] (Version actuelle) gbdivers |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ^ Chapitre précédent ^ [[programmez_avec_le_langage_c|Sommaire principal]] ^ Chapitre suivant ^ | + | ^ [[chaines|Chapitre précédent]] ^ [[programmez_avec_le_langage_c|Sommaire principal]] ^ [[histoire|Chapitre suivant]] ^ |
- | ====== Avant-propos : la qualité logicielle ====== | + | Il est facile de penser que l'apprentissage d'un langage, c'est l'apprentissage d'une syntaxe, ce qui aboutit très rapidement à penser que pour bien programmer, il faut se focaliser sur la qualité de la syntaxe. Or, ce n'est pas particulièrement nécessaire, puisque c'est justement le rôle du compilateur de vérifier et valider la syntaxe. |
+ | |||
+ | La qualité d'un programmeur est sa capacité à imaginer des solutions pertinentes à des problématiques posées et à concevoir un code de qualité implémentant ces solutions. La qualité logicielle est donc au centre d'une approche moderne de la programmation. | ||
+ | |||
+ | ====== Introduction à la qualité logicielle ====== | ||
Vous avez appris à réaliser des calculs et à afficher le résultat avec ''cout''. C'est un bon début, puisque par définition, c'est le rôle d'un ordinateur de réaliser automatiquement des calculs et opérations logiques. Cependant, on voit vite une limite. Imaginez que vous devez réutiliser le résultat d'un premier calcul dans un second calcul, comment faire ? | Vous avez appris à réaliser des calculs et à afficher le résultat avec ''cout''. C'est un bon début, puisque par définition, c'est le rôle d'un ordinateur de réaliser automatiquement des calculs et opérations logiques. Cependant, on voit vite une limite. Imaginez que vous devez réutiliser le résultat d'un premier calcul dans un second calcul, comment faire ? | ||
Ligne 31: | Ligne 35: | ||
Cela commence à être pénible de devoir réécrire le premier calcul à chaque ligne. Imaginez maintenant que vous ne souhaitez plus calculer la somme de 123 et 456, mais la somme de 321 et 654. Que se passe-t-il ? Il faut modifier chaque ligne, cela prend du temps et vous risquez de faire une erreur en recopiant le premier calcul. | Cela commence à être pénible de devoir réécrire le premier calcul à chaque ligne. Imaginez maintenant que vous ne souhaitez plus calculer la somme de 123 et 456, mais la somme de 321 et 654. Que se passe-t-il ? Il faut modifier chaque ligne, cela prend du temps et vous risquez de faire une erreur en recopiant le premier calcul. | ||
- | On comprend vite que cette méthode, bien que correcte au niveau syntaxe, pose des problèmes. L’écriture d'un code C++ qui compile n'est pas suffit pour créer un programme correct. Il faut également écrire un code qui respecte un certain nombre de règles de qualité pour les logiciels (//Software quality//). | + | On comprend vite que cette méthode, bien que correcte au niveau syntaxe, pose des problèmes. L’écriture d'un code C++ qui compile n'est pas suffisant pour créer un programme correct. Il faut également écrire un code qui respecte un certain nombre de règles de qualité pour les logiciels (//Software quality//). |
Il existe plusieurs définitions des règles de qualité logicielle, nous allons voir rapidement celle de la norme [[http://en.wikipedia.org/wiki/ISO/IEC_9126|ISO/IEC 9126]]. Un logiciel de qualité doit être : | Il existe plusieurs définitions des règles de qualité logicielle, nous allons voir rapidement celle de la norme [[http://en.wikipedia.org/wiki/ISO/IEC_9126|ISO/IEC 9126]]. Un logiciel de qualité doit être : | ||
Ligne 37: | Ligne 41: | ||
* **fonctionnel**, c'est-à-dire qu'il doit répondre aux besoins des utilisateurs ; | * **fonctionnel**, c'est-à-dire qu'il doit répondre aux besoins des utilisateurs ; | ||
* **fiable**, c'est-à-dire qu'il doit donner les résultats attendus ; | * **fiable**, c'est-à-dire qu'il doit donner les résultats attendus ; | ||
- | * **conviviale**, c'est-à-dire qu'il doit être facile d'utilisation ; | + | * **convivial**, c'est-à-dire qu'il doit être facile d'utilisation ; |
* **efficace**, c'est-à-dire qu'il doit être le plus performant possible en utilisant le minimum de ressources possible ; | * **efficace**, c'est-à-dire qu'il doit être le plus performant possible en utilisant le minimum de ressources possible ; | ||
* **maintenable**, c'est-à-dire qu'on doit pouvoir facilement le corriger ou lui ajouter des fonctionnalités ; | * **maintenable**, c'est-à-dire qu'on doit pouvoir facilement le corriger ou lui ajouter des fonctionnalités ; | ||
Ligne 50: | Ligne 54: | ||
<note info>**DRY Don’t Repeat Yourself** | <note info>**DRY Don’t Repeat Yourself** | ||
- | On utilise souvent l'acronyme DRY (ne pas se répéter) pour résumer cette problématique. Même s'il est assez simple de copie-coller des lignes de code plusieurs fois, ce peut devenir compliqué - et source potentielle d'erreurs - lorsque vous aurez besoin de modifier les lignes de code que vous avez copié. Il sera donc préférable de factoriser votre code au maximum.</note> | + | On utilise souvent l'acronyme DRY (ne pas se répéter) pour résumer cette problématique. Même s'il est assez simple de copier-coller des lignes de code plusieurs fois, ce qui peut devenir compliqué - et source potentielle d'erreurs - lorsque vous aurez besoin de modifier les lignes de code que vous avez copié. Il sera donc préférable de factoriser votre code au maximum.</note> |
- | ^ Chapitre précédent ^ [[programmez_avec_le_langage_c|Sommaire principal]] ^ Chapitre suivant ^ | + | ^ [[chaines|Chapitre précédent]] ^ [[programmez_avec_le_langage_c|Sommaire principal]] ^ [[histoire|Chapitre suivant]] ^ |
- | {{tag> Cours C++}} |