1.1 - Les principes du GL. 1

1.1.1 - Rigueur. 1

1.1.2 - Séparation des problèmes. 2

1.1.3 - Modularité. 2

1.1.4 - Abstraction. 2

1.1.5 - Anticipation du changement. 2

1.1.6 - Généricité. 2

1.1.7 - Construction incrémentale. 2

1.2 - Qualité logicielle. 3

1.2.1 - Définitions. 3

1.2.2 - Modèle de qualité. 4

1.2.3 - Modèle de McCall 4

1.2.4 - Modèle l’ISO/IEC 9126. 5

 

 

1.1 - Les principes du GL

Les sept principes fondamentaux du GL (proposés par Carlo Ghezzi) sont :

1.      Rigueur,

2.      Séparation des problèmes (« separation of concerns »),

3.      Modularité,

4.      Abstraction,

5.      Anticipation du changement,

6.      Généricité,

7.      Construction incrémentale.

 

1.1.1 -  Rigueur

Ce principe suggère que l’activité de développement de logiciel doit être conduite d’une manière rigoureuse et formelle. La rigueur et la formalité complémente la créativité demandée durant cette activité. Les méthodes et techniques doivent être basées sur les mathématiques.

 

1.1.2 -  Séparation des aspects

Ce principe a pour objectif la maitrise de la complexité en appliquant la stratégie « diviser pour régner » pour résoudre les problèmes. Elle consiste à considérer séparément les différents aspects d’un problème.

Par exemple :

· On peut séparer dans le temps on traitant les différents aspects l’un à la suite de l’autre par exemple l’utilisation de la notion de cycle de vie du logiciel.

· On peut faire une séparation des ‘vues’ que l’on peut avoir d’un système (ex : se concentrer sur l’aspect comportement puis on considère l’aspect structure ..etc),

· Séparation du système en parties (un noyau, des extensions, …),

·  ..etc.

1.1.3 - Modularité

Un système complexe doit être divisé en un ensemble de modules. Ces modules doivent être fortement cohésive et faiblement couplés. Un système qui respecte cette propriété est dit modulaire. Ce type de système facilite la réutilisation et l’évolution.

1.1.4 - Abstraction

L’abstraction consiste à identifier les aspects jugés importants à un moment donné et à ignorer les détails.

Un système peut être représenter à différents   niveaux d’abstraction.

L’abstraction est un outil pour maîtriser la complexité.

1.1.5 - Anticipation du changement

Une caractéristique essentielle du logiciel est qu’il doit évoluer sinon il devient obsolète (corrections d'imperfections et pour s’adapter à des besoins qui changent).

Ceci demande des efforts particuliers pour prévoir, faciliter et gérer ces évolutions inévitables.

1.1.6 - Généricité

De préférence il faut penser à une solution plus générale (paramétrable ou adaptable). Cette solution aura le potentiel d’être réutilisable.

1.1.7 - Construction incrémentale

De préférence la production doit être faite selon un procédé incrémental qui consiste en une suite des étapes.  Le résultat d’une étape est construit en étendant le résultat de l’étape précédente.

 

1.2 - Qualité logicielle

La qualité est un concept controversé et n’a pas de consensus sur sa définition. La vision de la qualité est subjective et on n’a pas de théorie forte pour l’évaluer. Par exemple comment savoir si une entité (logiciel, développeur, étudiant, équipe, produit…etc) est meilleure que l’autre. Ce qui est sûr est que l’absence de la qualité peut causer des dégâts financiers, affecter la santé et pire même il peut causer des pertes de vies humaines.

Pour prouver ce fait on peut citer quelques fameuses erreurs logicielles et leurs graves conséquences.

1.      Therac-25 : un appareil médical a causé de 6 morts à cause d’un surdosage de radiations due à une erreur logicielle.

2.      Marc Climate Observer : l’écrasement de robot à cause de remplissage de son espace mémoire.

3.      Missile Patriot : l’erreur  a produit une dérivation de 6 mètres par heure. La conséquence est la mort de 28 soldats à Dhahran.

4.      Ariane 5 : réutilisation du code de l’Ariane a causé des pertes estimées de 4, 500 M$.

5.       Crash du réseau AT&T (90's) : 9 heures de blocage du réseau à cause d’une   mise à jour. Ce blocage a causé des pertes de 60M$. La cause de l’erreur est un break manquant.

En 2002, Le National Institute for Standards and Technology (NIST) a estimé que les problèmes logiciels causent annuellement une perte de  60 Milliard de dollars.

1.2.1 - Définitions

Il y ‘a plusieurs définitions :             

- La qualité, c'est le degré d'excellence.

- La qualité, c'est la valeur de quelque chose pour quelqu'un.

 La définition de l’ISO est  : la qualité, c'est un ensemble de traits et de caractéristiques d'un produit logiciel portant sur son aptitude à satisfaire des besoins exprimés ou implicites.

L’IEEE définit la qualité comme suit : la qualité correspond au degré selon lequel un logiciel possède une combinaison d'attributs désirés.

Pressman: la qualité c'est la conformité aux exigences explicites à la fois fonctionnelles et de performance aux standards de développement explicitement documentés et aux caractéristiques implicites qui sont  attendues de tout logiciel professionnellement développés.

Généralement pour avoir une idée complète de la qualité d’un logiciel on utilise un modèle de qualité.

1.2.2 - Modèle de qualité

Le ISO 9126 définit un modèle de qualité comme : « The set of characteristics and the relationships between them, which provide the basis for specifying quality requirements and evaluating quality ».

A partir de cette définition nous comprenons qu’un modèle de qualité fournit une base pour spécifier et évaluer la qualité.

Un modèle de qualité est formé souvent de plusieurs niveaux de lecture. Le premier niveau décrit la qualité selon un point de vue très généraliste. Dans ce niveau on trouve généralement les attributs(facteurs) du produit qui sont intéressants de point de vue d’un  évaluateur de système (e.g., utilisateur,entreprise..etc). Ils sont nommés attributs externes parce qu’ils dépendent aussi de l’environnement. Par exemple la maintenabilité, la portabilité, l’utilisabilité,… etc. Ces facteurs sont généralement groupés selon différentes vues (opération, révision, transition) et sont mesurés indirectement en se basant sur d’autres attributs (critères) qui forment le niveau suivant. Par exemple dans le modèle de McCall (section suivante) le facteur fiabilité est décomposé en cohérence, précision, tolérance aux erreurs et en simplicité. Ces derniers sont mesurés en utilisant des métriques appropriées.

1.2.3 - Modèle de McCall

Ce modèle a été proposé par McCall en 1971 est nommé Facteurs Critères Métriques (FCM).  Il contient 11 facteurs.  Ces facteurs sont définis par vingt-trois critères. Ce modèle est présenté par la Figure 6.



1.1.1 - Modèle l’ISO/IEC 9126 

Ce modèle est composé de 6 caractéristiques (facteurs) divisés eux même en 21 attributs (Figure 7). Les caractéristiques (facteurs) et les sous caractéristiques de la qualité du produit logiciel selon l’ISO/IEC 9126 sont :

  Capacité fonctionnelle (Functionality)

Ensemble d'attributs portant sur l'existence d'un ensemble de fonctions et leurs propriétés données. Les fonctions sont celles qui satisfont aux besoins exprimés ou implicites.

·         Pertinence

·         Exactitude

·         Interopérabilité

·         Sécurité

·         Conformité

  Fiabilité (Reliability)

Ensemble d'attributs portant sur l'aptitude du logiciel à maintenir son niveau de service dans des conditions précises et pendant une période déterminée.

·         Maturité (faible fréquence d'apparition des incidents)

·         Tolérance aux pannes

·         Facilité de récupération : capacité d'un logiciel défectueux à retourner dans un état opérationnel complet (données et connexions réseaux incluses)

  Facilité d'utilisation (Usability)

Ensemble d'attributs portant sur l'effort nécessaire pour l'utilisation et sur l'évaluation individuelle de cette utilisation par un ensemble défini ou implicite d'utilisateurs.

·         Facilité de compréhension

·         Facilité d'apprentissage

·         Facilité d'exploitation

  Rendement (Efficiency)

Ensemble d'attributs portant sur le rapport existant entre le niveau de service d'un logiciel et la quantité de ressources utilisées, dans des conditions déterminées.

·         Comportement temporel : temps de réponse, taux de transactions

·         Utilisation des ressources : mémoire, processeur, disque et réseau

 Maintenabilité (Maintainability)

Ensemble d'attributs portant sur l'effort nécessaire pour faire des modifications données.

·         Facilité d'analyse : identification dans le logiciel de l'origine d'un défaut constaté

·         Facilité de modification

·         Stabilité

·         Testabilité

 Portabilité (Portability)

Ensemble d'attributs portant sur l'aptitude de logiciel à être transféré d'un environnement à l'autre.

·         Facilité d'adaptation à des changements de spécifications ou d'environnements opérationnels

·         Facilité d'installation

·         Coexistence

·         Interchangeabilité : utilisation de greffons



آخر تعديل: الأحد، 13 مارس 2022، 8:09 PM