Cours Qualité et Tests Chapitre 2 : Modèles de cycle de Vie et Test

Slides:



Advertisements
Présentations similaires
LES NOMBRES PREMIERS ET COMPOSÉS
Advertisements

LA QUALITE LOGICIELLE Plan du cours La modélisation d’activité 1 h ½
Les Systèmes d’Information Financière Atelier conjoint ACBF / Banque Mondiale / AFRITAC de l’Ouest Gérer l’application dans le temps, sur les plans fonctionnel,
Licence pro MPCQ : Cours
Faculté des Sciences de la Santé
Eléments de Génie Logiciel
M1 MASTER GESTION Séance 3 Pilotage coûts- délais
La Recette La recette.
La Gestion de la Configuration
Présenté à Par. 2 3Termes et définitions 3.7 compétence aptitude à mettre en pratique des connaissances et un savoir-faire pour obtenir les résultats.
Evaluation et suivi sont deux outils de management:
Les points ECVET Outil de communication conçu à partir des documents développés pour l’organisation des réunions du projet.
Classe : …………… Nom : …………………………………… Date : ………………..
J. Paul Gibson Bureau A 207, Le département LOgiciels-Réseaux
1 Les technologies XML Cours 1 : Les Web Services et Architectures Orientées Services Fé vrier Version 1.0 -
Gestion de Projet Pilotage – 3 Reporting
Chapitre 7 : démarche de conception, conduite de projet SI
Les démarches de développement
Les démarches de développement
Les Ateliers de Génie Logiciel
La revue de projet.
BTS SIO SLAM 5 Introduction à la gestion de projet
MIAGE MASTER 1 Cours de gestion de projet
Cycle de vie dun logiciel Origine des erreurs La spécification 50% 40% 10% Le design Le codage.
Utilisation de MS Project 2007
Introduction au Génie Logiciel
le profil UML en temps réel MARTE
Vuibert Systèmes dinformation et management des organisations 6 e édition R. Reix – B. Fallery – M. Kalika – F. Rowe Chapitre 1 : La notion de système.
Algorithmique et Programmation
Parcours de formation SIN-7
Sésame Conseils Bon sens et compétences
METHODE AGIL Présenté par : GRIOUI Haykel MILADI Hedi CHARFI Habib
Feature Driven Development (FDD)
La voyage de Jean Pierre
Tableaux de distributions
Tableaux de distributions
Techniques de test Boulanger Jean-Louis.
IGL301 - Spécification et vérification des exgiences 1 Chapitre 1 Introduction (ref : Bray chapitre 1)
IGL301 - Spécification et vérification des exgiences 1 Chapitre 2 Le processus dingénierie des exigences (ref : Bray chapitre 2)
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Notions de Base Hiver 2002 Petko Valtchev.
Conception des Réalisé par : Nassim TIGUENITINE.
Les étapes du cycle de développement du génie logiciel
ANALYSE METHODE & OUTILS
Investigation des incidents et des accidents
Mise en oeuvre et exploitation
Stratégie d’entreprise - Alstom Transport – Marco Férrogalini
Traitement des demandes clients
Le management de l'IVVQ Processus techniques IVVQ
Supports de formation au SQ Unifié
Université de Sherbrooke
Hatainville Les Moitiers d’Allonne – Tel : Website : stratic.online.com La démarche projet Mars 2001.
Développement d'application rapide GEF492A Automne 2014 [HvV § 3.2.3]
Présentation Finale Spirit 07 / 03 / 2011 Groupe Vert 1 Equipe Verte.
Institut Supérieur des Sciences Appliquées et de Technologie Sousse
Définitions Gestion Exemple
Vérification dans le cycle de vie GEF492A 2014 Référence: [HvV §14.2, 14.9] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et.
2003 (revisé 2008)SEG Chapitre 11 Chapitre 1 “The Systems Engineering Context” Le contexte du génie de systèmes.
Cycles de Vie du Logiciel LFI2 Genie Logiciel/ Gestion de Projets Septembre 2008.
Introduction au Génie Logiciel
Initiation à la conception des systèmes d'informations
Présentation AICHA REVEL INGENIEUR D’ÉTUDE STERIA DEPARTEMENT TRD
IFT 2251 Génie Logiciel Le Processus
OPTIMISATION DE LA PLANIFICATION
Les démarches de développement
Principes et définitions
Sensibilisation aux projets logiciels
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Le Processus Hiver 2002 Petko Valtchev.
Conférence 2TUP Stéphane Barthon 03/12/
Document de spécification d’exigences Normes IEEE et 29148:2011
ISO 9001:2000 Interprétation Article 7 Réalisation du produit
Transcription de la présentation:

Cours Qualité et Tests Chapitre 2 : Modèles de cycle de Vie et Test Responsables du cours : Héla Hachicha Hatem Ben Sta Inès Ben Jaâfar Année Universitaire : 2012 - 2013

Sommaire Modèles de processus de développement du logiciel Les activités de ces processus

Les facteurs clés en génie logiciel Trois facteurs clés en génie logiciel Personnel : nombre, habiletés, moral Processus: procédures d’accomplissement de travail Technologie: plateforme et domaine Les bons processus aident le personnel à appliquer la technologie De façon efficiente : sans perte de temps, ni effort, ni ressources De façon efficace : tout en obtenant le résultat désiré

Qu’est-ce qu’un processus? Un processus est une suite d’étapes impliquant des activités, des acteurs, des ressources, et des contraintes pour produire un résultat escompté

Le processus de développement de logiciel Un ensemble structuré d’activités nécessaires pour développer un logiciel Un modèle de développement de logiciel est une représentation abstraite d’un processus De nombreux modèles différents mais pour tous : Spécification : on définit ce que le système devra faire Conception et implémentation : on définit l’organisation du système et on l’implémente Validation : on vérifie que le système fait bien ce que veut le client Evolution : on modifie le système en réponse aux changements des besoins du client

Modèles de processus de développement logiciel Un modèle de processus de développement logiciels met en relief : les activités de travail à accomplir pour produire le produit logiciel, l'ordre dans lequel les activités de travail et les tâches doivent être effectuées, les façons dont les activités de travail et les tâches peuvent être superposées et réitérées, et les produits de travail résultants, et les flux entre diverses activités de travail.

Les modèles de processus Chaque élément d'un modèle de processus a Inputs nécessaires Procédures pour l'accomplissement du processus Produits de travail à produire Critères d'acceptation pour les produits des travaux de sortie

Quelques terminologies Un processus est une description de la façon d'accomplir une activité de travail Une procédure est un ensemble d'étapes pour l'accomplissement des tâches d'un processus Une technique est la manière dont un individu accomplit une procédure  Un processus inclut les procédures pour conduire les activités de travail

Un Exemple -- Procédures de réparation de défaut- Correction d'un défaut signalés par les clients implique les procédures suivantes : 1. reproduire la défaillance 2. trouver le défaut 3. corriger l'erreur 4. modifier la suite de tests 5. accomplir le test de régression 6. documenter le correctif 7. mettre à jour d'autres produits de travail, si nécessaires 8. vérifier le code modifié et les documents 9. distribuer le code modifié 10. clôturer le rapport de problème

Problèmes techniques dans les projets logiciels Le développement de produits comprend : L'ingénierie du système L'ingénierie des exigences logicielles Le design du logiciel L’implantation du logiciel La vérification et la validation du logiciel L'intégration et la validation du système

Quelques terminologie La vérification du cycle de vie est le processus de détermination qu'un produit de travail satisfait aux conditions imposées par d'autres produits de travail et processus de travail i.e., est-ce que le produit de travail est complété, correct et cohérent avec les autres produits de travail et processus de travail ? ☛ Sommes-nous en train de faire le bon produit ? La validation du cycle de vie est le processus de détermination qu'un produit de travail satisfait aux besoins prévus de son utilisation lorsqu'il est utilisé par ses utilisateurs dans l'environnement prévu i.e., est-ce que le produit de travail est approprié pour son utilisation ? ☛ Est-ce que nous faisons le produit correctement ? En pratique souvent confondus, ou pris l'un pour l'autre on parle de « V&V » (validation et vérification)

Techniques de vérification Les techniques de vérification incluent : La traçabilité, les révisions, le prototypage, l’analyse, et les tests fonctionnels.

Techniques de validation Les techniques de validation incluent: Les révisons, le test du système, les tests opérationnels, et les démonstrations.

Cycle de vie et Tests Différents modèles de développement logiciel : Le modèle en cascade Modèle en V Développement incrémental (prototypage) Le modèle évolutif Modèle orienté réutilisation Le modèle en spirale Méthode Agile : Extreme Programming (XP) ...

Cycle de vie - Modèle en cascade

Caractéristiques du modèle en cascade (date des années 70) (mais reste pertinent) Séquentiel Importance du contrôle du processus rétro-actions validation, vérification, tests Vérification : Le système est conforme à la spécification Validation : Le système répond aux exigences du client  Inspections et tests Tests On exécute le système avec des cas de tests issus de la spécification de données réelles du système futur

Les phases de test Tests unitaires Tests d’intégration Les composants sont testés individuellement Tests d’intégration Test du système global Tests de recette Test avec des données clients pour vérifier que le système répond aux exigences du client

Critique du modèle en cascade que peut-on lui reprocher ? Modèle trop séquentiel – dure trop longtemps Validation trop tardive : les tests sont prévus tardivement et remise en question coûteuse des phases précédentes Sensibilité à l'arrivée de nouvelles exigences – refaire toutes les étapes

Le modèle linéaire en Cascade avec des révisions de jalons

Avantages de l’approche en Cascade Le modèle en Cascade nécessite : Le développement des exigences avant le design Le design avant l'écriture du code L’écriture du code avant de l'intégrer Le test des programmes après leur intégration Les révisions de jalons

Cycle de vie - modèle en V

Caractéristiques du modèle en V Tâches effectuées en parallèle – horizontalement : préparation de la vérification Ex. : dès que la spécification fonctionnelle est faite : (↑) plan de tests de qualification plan d'évaluation des performances documentation utilisateur – verticalement : développement des modules Ex. : dès que la conception globale est validée : (↑) conception détaillée des modules programmation et tests unitaires

Cycle de vie - modèle en V

Le modèle en V Le modèle en V illustre un problème du modèle en Cascade : Si l’on se base sur les tests en cascade seuls, les défauts créés en premier seront détectés en dernier lieu

Les coûts relatifs à la correction d’un défaut logiciel

Certaines réalités sur le développement logiciel 1. Les exigences changent toujours en raison de: Changement des attentes des clients et des besoins des utilisateurs Analyse initiale inadéquate des exigences Compréhension et aperçu deviennent plus clairs par l'expérience Évolution de la technologie Évolution de la situation compétitive Rotation du personnel : ingénierie, gestion, marketing, clientèle 2. Le design n'est jamais correct dès le premier coup Le design est un processus créatif, de résolution de problèmes 3. Les démonstrations fréquentes de la progression et d'alerte précoce des problèmes sont souhaitables

Développement itératif L'itération est le processus par lequel le résultat souhaité est développé par des cycles répétés En génie logiciel, une approche itérative permet la révision et l’ajout, étape par étape, des produits de travail Différents types de modèles itératifs supportent : La révision et l’ajout des exigences La révision et l’ajout de design La révision et l’ajout du code Le test d’une partie du système et ainsi de suite

Développement itératif Les objectifs de développement itératif sont les suivants : fréquentes démonstrations de la progression alerte précoce des problèmes capacité d’intégrer les changements de façon élégante Quatre types de modèles de développement itératif : 1. Construction-incrémentale : code-test-demo itératif 2. agile : satisfaire aux exigences opérationnelles itérativement 3. évolutif : le développement exploratoire 4. spirale : la gestion des risques

Le processus de construction-incrémentale

L’approche de construction-incrémentale Le design est partitionné en une série de construits par priorité chaque construit ajoute des capacités à la base existante par ordre de priorité chaque construit produit une version démontrables généralement sur une base hebdomadaire Les parties les plus critiques sont construites en premier et, testées/démontrées le plus souvent

Critères de partitionnement Critique-de-sûreté: caractéristiques de sûreté en premier lieu Critique-de-sécurité : les couches de sécurité en premier lieu Usage intensif des données: schéma des données en premier lieu Usage intensif de l'utilisateur : interface utilisateur en premier lieu Autres?

Techniques de validation Révision par les pairs Test Démonstration Analyse

Directives pour le développement incrémental des construits Construire une version "officielle" de démonstration chaque semaine les développeurs peuvent réaliser des construits "sandbox" le plus fréquemment Construire des versions du produit en fonction de la priorité des exigences construire et tester les parties les plus critiques en premier Accomplir des révisions et des tests indépendants de chaque version Intégrer les changements des exigences dans des construits subséquents Reconcevoir si le travail à refaire dépasse 20% de l'effort lorsqu’on développe deux construits successifs du produit Re-travail évolutif excessif : changement des exigences Re-travail rétrospectif excessif : partitionnement mauvais de design Re-travail correctifs excessif : mauvais codage

Exemple d’un construit incrémental Implanter un compilateur

Avantages de développement incrémental des construits Permettre des démonstrations précoces et continues de la progression Les composants construits en premier sont les plus testés Possibilité d’intégrer certains changements aux exigences dans des versions ultérieures Fournir un avertissement précoce des problèmes calendrier, techniques, etc. Permettre des compromis sur les caractéristiques et le calendrier pendant le développement au moment de la livraison Autoriser une meilleure allocation des ressources en personnel que la cascade Fournir des livraisons par incrément aux clients, s’il est souhaitable

Livraison incrémentale des construits Livrer des versions au début nous permet d’obtenir très tôt un feedback des utilisateurs Permet de livrer le produit dans les délais avec la plupart des fonctionnalités avec une planification systématique pour les versions ultérieures Au moment de la livraison, il est préférable d'être à 100% complété avec 80% de la plupart des fonctionnalités importantes du produit que d'être à 80% complété avec 100% des fonctionnalités et ne rien offrir

Gérer le développement incrémental des construits La gestion est plus complexe que celle dans l'approche en cascade: Plus de « parties » à diverses étapes de développement Plus de communication et de coordination Un système automatisé de contrôle de versions est essentiel Décision de façon au quelle la validation incrémentale va être traitée

Le modèle évolutif Utilisé dans la cas où il est (presque) impossible de spécifier à l’avance une première version stable des exigences Détails de chaque cycle:

Directives pour le développement évolutif Utilisé lorsque les exigences ne peuvent pas être spécifiées à l'avance la plupart du temps Cycles évolutifs se termine lorsque Le projet est converti en une approche incrémentale ou, le projet est annulé parce qu'il est infaisable ou, le produit est livré Utiliser une approche évolutive indique que le projet a un risque très élevé

L’approche spirale Le processus de développement en spirale est un modèle de méta-niveau pour les modèles de développement itératif Des activités antérieures sont revisitées, révisées, et raffinées à chaque passage de la spirale Chaque cycle d'un modèle en spirale comporte quatre étapes: Etape 1 - déterminer les objectifs, les alternatives, et des contraintes Étape 2 - identifier les risques pour chaque alternative et choisir l'une des alternatives Étape 3 - mettre en œuvre la solution (l’alternative) choisie Étape 4 - évaluer les résultats et le plan pour le prochain cycle de la spirale Les cycles continuent jusqu’à ce que les objectifs souhaités soient atteints (ou jusqu'à ce que le temps et les ressources sont utilisées)

Un modèle évolutif en spirale

Un modèle incrémental en spirale

Leçons apprises Un cadre du processus de développement est un modèle de processus générique qui peut être ajusté et adapté pour répondre aux besoins des différents projets. Le processus de développement pour chaque projet logiciel doivent être conçus avec le même soin utilisé pour la conception du produit. Le design du processus se fait mieux en ajustant et en adaptant des modèles de processus de développement et des cadres de processus bien- connus , tout comme le design des produits qui se fait mieux en ajustant et en adaptant des styles architecturaux et des cadres architecturaux bien connus. Il ya plusieurs modèles de processus de développement de logiciels bien connus et largement utilisés, incluant le modèle en cascade, incrémental, évolutif, agile, et le modèle spiral. Il ya différentes façons d'obtenir les composants logiciels nécessaires; différentes façons pour obtenir les composants logiciels nécessitent un mécanisme différent de la planification, de mesure et de contrôle. Les phases de développement d'un projet logiciel peuvent être entrelacées et réitérées de diverses manières.

Leçons apprises Les processus de développement itératif offrent les avantages suivants: L'intégration continue, La vérification et la validation itérative d’un produit évolutif, Des démonstrations fréquentes de la progression, La détection précoce des défauts, L'alerte précoce des problèmes de processus, L’incorporation systématique d’un travail inévitable qui se produit dans le développement du logiciel, et La livraison anticipée des sous-ensembles de capacités (si désiré). Selon le processus de développement itératif utilisé, la durée de l’itération s’étend de 1 jour à 1 mois. Le prototypage est une technique pour acquérir des connaissances, ce n'est pas un processus de développement.