Concept fondamental de génie logiciel
1) La caractéristique d’un logiciel
a) Robuste
b) Complexe
c) Invisible
d) Technique de développement non mature => programmation du logiciel
en optant a des techniques de développement de base «une bonne
conception et facilité de la maintenance»
2) Constat
a) Le cout de la maintenance évolutive et corrective constitue la part
importante du cout total
b) Plus de 50% des erreurs découverte en phase de tests provient des erreurs
introduites dans les premières étapes de conception
3) Les plaintes classiques des clients
a) Non-respect du cahier des charges
b) Délais et cout dépassant les prévisions
c) La maintenance corrective et évolutive difficile
d) Non-respect des performances
Développement d’un logiciel
1) Les caractéristiques d’un logiciel de qualité
a) Adéquation avec les besoin
b) Une maintenance aisée
c) Bon marché
d) Rapidement développer
1
2) Les étapes de développement
a) L’analyse et spécification des problèmes
b) La conception
i) Préliminaire : marché du logiciel
ii) Conception détaillé : précisé l’architecture des sous parties
c) Implémentation : le codage
3) Le cycle de vie d’un logiciel
a) Notion d’un cycle de vie
i) Processus couvrant les phases de :
(1) Création d’un produit
(2) Distribution sur le marché
(3) Disparition
b) Le but découpage
i) Maitriser les risques
ii) Maitriser au mieux les délais et les couts
iii) Obtenir une qualité conforme aux exigences
c) Types de cycle de vie
i) Cycle de vie des produits
ii) Cycle de développement d’un logiciel
d) L’intérêt du cycle de vie
i) Cycle de vie et assurance qualité sont fortement liées
ii) S’assurer en performance la validation et la vérification
2
4) Les différentes phases du cycle de vie
a) Définition des objets
i) Le management décide d’acheter ou de fabriquer un nouveau
produit
ii) Définition d’un schéma directeur sois pour la création ou la
rénovation
b) Définition des besoins
i) Etablir le cahier des charges
ii) Le cahier des charges décrit en langage naturel les fonctionnalités du
produit, la contrainte non fonctionnelle
iii) Dans le cas d’un système complexe on peut avoir des sous cahier
des charges
c) Définition de produit
i) Description des spécifications précises des produits faites en
parallèle avec la description des contraintes de réalisation
ii) Dossier de spécification fonctionnel est la première version du
manuel d’utilisateur
iii) L’accord entre le client et le fournisseur sur :
(1) Le produit a réalisé
(2) Les contrainte a obéir
(3) L’utilisation et l’interface utilisateur
iv) Entre la définition du produit et sa réalisation on trouve comme
intermédiaire le dossier d’analyse une première version du glossaire
3
d) Planification et gestion des produits
i) L’accord sur les couts et la durée des projets
ii) Permet le découpage du projet en tâche
(1) Décrire leurs enchainements dans le temps et affecter a chaque
une durée et un effort
iii) La définition de la norme qualité et la méthode de conception et les
règles de teste
iv) Le plan qualité
(1) Le plan projet destiné au développeur
(2) Estimation du cout réel
(3) Un devis destiné aux clients
(4) Les délais et les fournitures
(5) Liste des dépendances extérieures
v) Dans le cas des sous-traitants le dossier de spécification fonctionnel,
le plan projet, le plan qualité termine cette phase
e) Conception globale
i) L’architecture du logiciel ainsi que l’interface des déférents modules
sont définie en parallèle. Rendre les défirent modules des produits
constitué aussi indépendantes que possible pour faciliter le
développement en parallèle
ii) Les produits intermédiaires :
(1) Le dossier de conception
(2) Le plan d’intégration
(3) Le plan de test
(4) Le planning mise à jour
f) Codage et teste unitaire
i) Chaque module est codé et testé indépendamment des autres
ii) Les produits intermédiaires sont :
(1) Les modules codé et testé
(2) La documentation de chaque module
(3) Les résultats des tests unitaires
(4) Le planning mis à jour
4
g) Intégration
i) Chaque module tester et intégrer avec les autres suivant les teste
d’intégration et l’ensemble des tests conformément au plan de test
ii) Produits intermédiaires :
(1) Le logiciel testé
(2) Les tests de régressions
(3) Le manuel d’installation
(4) La version finale du manuel utilisateur
h) Qualification
i) Tester le logiciel dans les conditions normales de l’utilisation
i) Maintenance :
Pendant la phase de maintenance que tous les efforts de la
documentation faite pendant le développement sera particulièrement
apprécié, et de même la transparence de l’architecture et du code
Facteur d’instabilité d’un logiciel
1) Le modèle du cycle de vie ne garantit pas le bon déroulement du projet
2) Types de facteurs d’instabilité
a) Facteur externe
i) Utilisateur et l’environnement évolue
ii) Evolution de la législation et de la technologie
iii) Evolution du marché et la concurrence
b) Facteur interne
i) L’équipe de développement évolue, qualification des individus,
organisation qui gère ce projet
3) Un cycle de vie apport stabilité, contrôle et organisation a une activité qui peut
devenir ingérable
a) Meilleurs estimation du cout et besoins
b) Meilleurs coordination
c) Meilleurs productivité
d) Meilleurs visibilité et compréhension
4) L’adaptation et l’application d’un cycle de vie est signe de maturité pour une
entreprise
5
Modèle d’un cycle de vie d’un logiciel
1) Modèle linaire
a) Modèle linaire
b) Modèle en cascade
c) Modèle V
2) Modèle non linaire
a) Prototypage
b) Modèle incrémentaux
c) Modèle en spiral
Validation du logiciel
1) Définition
a) Assurer la cohérence entre les besoins et le logiciel
b) Garantir au mieux l’absence d’erreur
2) Moyenne
a) Prototype : développer et essayer une partie du logiciel
b) Test : effectuer des essais et vérifier le résultat obtenue par rapport au
résultat attendue
c) Preuve : vérifier mathématiquement la cohérence de la conception du
code par rapport a la spécification
Comparaison des moyennes de validation
1) Conséquence
a) Preuve réservé aux systèmes critère
b) Test et prototypage toujours utilisé
Test de validation
1) Permet de détecter l’erreur dans un logiciel
2) Produire les mêmes résultats lorsqu’on répète les mêmes données avec le
même environnement
3) Doit être exacte et précis
6
Test unitaire
1) Tester le code source
a) Le cas de codage orienté objet
i) Vérifier que chaque classe, package répond bien aux spécifications
ii) Tester chaque méthode avec des valeurs cohérente et incohérente
b) Cas de codage fonctionnel
i) Tester toutes les fonctions avec des valeurs cohérentes et
incohérentes
2) Les types de tests
a) Tests en boite blanche
i) Connaitre la structure de la class/méthode/ fonction
ii) Teste en fonction de la structure interne
iii) Passer par tous les chemins possibles
b) Tests en boite noires
i) Réaliser par une personne déférente
ii) Faire des tests sur les fonctions sans connaitre l’organisation interne
iii) Les but des tests et d’assurer l’exactitude et la robustesse
Le test fonctionnel
Les tests fonctionnels sont toujours des tests en boite noires
Les tests d’intégration
1) Remplacer progressivement les bouchons et les maquettes par des objets
réelles
2) Lors de la phase d’analyse on spécifie l’ordre dans lequel se ferons les
remplacements
3) Plusieurs approches de remplacement
a) Contamination par fonction
b) Contamination par couche
Les tests recettes
On teste l’application comme l’utilisateur
1) Que doit faire le logiciel dans le cas des données conforme et non conforme
2) Tester si le logiciel a les performances que le client attend
7
Les tests de performance
1) On teste :
a) Temps de réponse
b) Nombre d’utilisateur simultané
c) Nombre de transmission par seconde
d) Nombre d’accès aux bases de données par seconde
2) Plusieurs techniques pour faire les tests de performance
a) La pire : l’épreuve de feu
i) Mettre le site en ligne et attendre la catastrophe
b) Incomplète mais utiliser :
i) Mettre le site en ligne pour un petit nombre d’utilisateurs avertis en
suite déduire par comparaison les mesures
c) Les meilleurs :
i) Simulation des charges
Tests de régressions
1) Détecter les erreurs lors de changement apporté dans les programmes d’un
système
2) La figure plan de teste :
a) Codage => teste unitaire
b) Architecture détaillé => teste fonctionnel
c) Architecture général => teste d’intégration
d) L’expression des besoins => teste de recettes
Les outilles de teste
1) Il existe plusieurs outilles automatique de teste :
a) CLIF Java pour tout le système accessible depuis une JVM
b) Open STA une solution d’injection de charge http/HTTPs pour tester les
applications Web
c) TAO PathCrawler, GATel, Junit
8
Assurance et contrôle qualité du logiciel
Définition de qualité logicielle : c’est la satisfaction aux exigences et au
besoin ou attente du client.
1) Qualité logiciel
a) Absence de bugs
b) bas ratio de fautes
c) haute fiabilité
d) le temps moyen entre panne
e) répond au besoin d’utilisateur
2) caractéristique d’un logiciel
a) logiciel jetable
b) logiciel dont la durée de vie est de plusieurs années
c) logiciel dont les pannes a une importance relative
d) logiciel dont la moindre erreur peut avoir des conséquences graves
3) Les conditions de réalisation d’un logiciel de qualité
a) Le contrôle de qualité doit se faire en fur et à mesure
b) La documentation doit se faire pour chaque module
c) Prendre en compte les couts de maintenance
Caractéristique de la qualité d’un logiciel
d) Selon bary et boehem
i) Utilisable en l’état
ii) Maintenable
iii) Portable
e) Selon McCall
i) Une topologie de facteur de qualité selon défirent point de vue
ii) Niveau d’expression de la qualité allons de quantitative au
qualitative d’ou 3 niveau de description de la qualité suivante :
Les facteurs qui sont relative à un besoin
Les critères
Les métriques
9
Facteurs de qualité
1) Fonctionnel
a) Pertinence
b) Adéquation
c) Généralité
2) Utilisateur
a) Confidentialité
b) Couplabilité
c) Efficience
d) Maniabilité
e) Fiabilité
3) Maintenance
a) Maintenabilité
b) Adaptabilité
c) Portabilité
4) Economique
a) Efficacité
Critères de qualité
1) Maniabilité
2) Fiabilité
3) Efficience
4) Confidentialité
5) Couplabilité
6) Maintenabilité
7) Portabilité
8) Banalité d’emplois
9) Efficacité mémoire
10) Efficacité périphérique
11) Efficacité en temps d’exécution
12) Expansibilité
10
13) Exploitabilité
Les métriques
1) Les éléments de mesure
a) Mesure directe et objective
i) Comptage de nombre de ligne du code source
ii) Comptage de nombre d’homme-jours
b) Métrique obtenue par réponse oui/non
i) Cohérence de la représentation de l’écran
ii) Respect de la procédure de signalisation des incidents
iii) Capacité de raccordement satisfaisante
c) Métrique obtenu par enquête
i) Clarté de la présentation des résultats
ii) Apport de l’assurance qualité
iii) Disponibilité du système aux heures de la pointe
2) Métrique technique
a) Métrique du code
i) Ligne du code, nombre d’opérande, nombre d’opérateurs
ii) Complexité cyclomatique
iii) Taux de commentaire
b) Métrique de spécification
i) Cohésion et couplage des modules
ii) Taille de fréquence de communication des données
3) Autres métriques
a) Métrique de processus de gestion
i) Mesure de la capacité a estimé
ii) Mesure lié à la documentation
11
b) Métrique de processus qualité
i) Nombre de revue inspection
Mesure de la complexité
La complexité cyclomatique de McCall
V(f) = e-n+2
V(f)= 1+d
V(f)= nombre de région
La qualité dans conduite de projet
Conduite de projet
1) Développement de SI
2) Planification et suivi
3) Assurance et contrôle qualité
4) Gestion de la configuration
5) Gestion de la documentation
Assurance qualité : la mise en œuvre de la proche qualité
Consiste en un ensemble d’action de prévention des défauts qui accompagne le
processus de logiciel
Contrôle qualité
Mise en œuvre d’une approche qui assure la qualité
Activité du contrôle qualité
1) Ensemble des actions établit et systématique nécessaire pour satisfaire les
exigences relative à la qualité
2) Nécessite une manuelle qualité
3) Les liens entre les déférentes activités :
Assurance qualité
Technologie production logiciel produit fini
12
Contrôle qualité
Manuel qualité : c’est un document décrivant les dispositions général prise par
l’entreprise pour obtenir la qualité de ses produits ou services
1) Organiser e sous partie
a) Organisation de l’entreprise
b) Activité de production et de contrôle technique
c) Activité de gestion
d) Activité de contrôle de qualité
e) le plan type de plan qualité
2) le rôle de la manuelle qualité
Usage interne et externe
Maitrise partout Démenstration
formation technique , Méthode et outil
Plan qualité
Document décrivant les dispositions spécifiques prise par autre valeurs
Plan type de plan qualité
1) but, domaine d’application et responsabilité
2) document applicable et référence
3) terminologie
4) Organisation
5) Démarche de développement
6) Documentation
13
7) Gestion des configurations
8) Gestion de modification
9) Méthodes et outils et règle
10) Contrôle de fournisseur
11) Reproduction, protection livraison
12) Suivi de l’application de plan qualité
14