Vous êtes sur la page 1sur 74

Introduction au Génie Logiciel

A. Beugnard Majeure Informatique – INF301 – GL-C2

2 e semestre 2015

Les cours de l’axe GL de l’UV1 - INF301

1. La découverte des objets

2. Les cycles de vie des logiciels

3. UML structurel et héritage

4. UML comportemental et concurrence

Ce qu’on va voir ensemble

1. Le développement logiciel

2. Notion de cycle de vie

3. Notions de qualité

Je vous invite à prendre des

1

2

3

4

Avancement

Le développement logiciel Introduction Métaphore avec le génie civil

Notion de cycle de vie

Notions qualité logiciel

Synthèse

Pourquoi s’intéresser au logiciel ?

Il y en a partoutPourquoi s’intéresser au logiciel ? Montre ; 2 K instructions Téléviseur ; 100 K instructions Automobile

Montre ; 2 K instructionsPourquoi s’intéresser au logiciel ? Il y en a partout Téléviseur ; 100 K instructions Automobile

Téléviseur ; 100 K instructionsau logiciel ? Il y en a partout Montre ; 2 K instructions Automobile ; 150

Automobile ; 150 K instructionsMontre ; 2 K instructions Téléviseur ; 100 K instructions Téléphone mobile ; 150 K instructions

Téléphone mobile ; 150 K instructions; 100 K instructions Automobile ; 150 K instructions Central téléphonique ; 1 M instructions Système

Central téléphonique ; 1 M instructions; 150 K instructions Téléphone mobile ; 150 K instructions Système du Charles de Gaule ;

Système du Charles de Gaule ; 8 M instructions150 K instructions Central téléphonique ; 1 M instructions Guerre des étoiles (projet Reagan) ; 50

Guerre des étoiles (projet Reagan) ; 50 M instructionsinstructions Système du Charles de Gaule ; 8 M instructions Vous en utiliserez Vous en définirez

Vous en utiliserezGuerre des étoiles (projet Reagan) ; 50 M instructions Vous en définirez Vous en réaliserez 5

Vous en définirez(projet Reagan) ; 50 M instructions Vous en utiliserez Vous en réaliserez 5 / 47 A.

Vous en réaliserezReagan) ; 50 M instructions Vous en utiliserez Vous en définirez 5 / 47 A. Beugnard

Des exemples

RobotDes exemples http://www.youtube.com/watch?v=dKZczUDGp_I Ascenseur http://www.youtube.com/watch?v=jYdfMkhuvfw Contrôle

AscenseurDes exemples Robot http://www.youtube.com/watch?v=dKZczUDGp_I http://www.youtube.com/watch?v=jYdfMkhuvfw Contrôle aérien

Contrôle aérienAscenseur http://www.youtube.com/watch?v=jYdfMkhuvfw http://www.youtube.com/watch?v=y-38U_BdTGM Salle contrôle

Salle contrôle métroContrôle aérien http://www.youtube.com/watch?v=y-38U_BdTGM http://www.youtube.com/watch?v=SmBAHr9OJnw 6 / 47 A.

Les deux grands défis

Les deux grands défis Maîtriser la taille des informations/données des systèmes (répartition géographique) des

Maîtriser la taille

des informations/donnéesLes deux grands défis Maîtriser la taille des systèmes (répartition géographique) des équipes 7 / 47

des systèmes (répartition géographique)défis Maîtriser la taille des informations/données des équipes 7 / 47 A. Beugnard Introduction au Génie

des équipesinformations/données des systèmes (répartition géographique) 7 / 47 A. Beugnard Introduction au Génie Logiciel

Les deux grands défis

Maîtriser la tailleLes deux grands défis des informations/données des systèmes (répartition géographique) des équipes Maîtiser la

des informations/donnéesLes deux grands défis Maîtriser la taille des systèmes (répartition géographique) des équipes Maîtiser la durée

des systèmes (répartition géographique)défis Maîtriser la taille des informations/données des équipes Maîtiser la durée maintenir sur 10, 25, 30

des équipesdes systèmes (répartition géographique) Maîtiser la durée maintenir sur 10, 25, 30 ans réutiliser

Maîtiser la duréedes systèmes (répartition géographique) des équipes maintenir sur 10, 25, 30 ans réutiliser 7 / 47

maintenir sur 10, 25, 30 ansgéographique) des équipes Maîtiser la durée réutiliser 7 / 47 A. Beugnard Introduction au Génie

réutiliserdes équipes Maîtiser la durée maintenir sur 10, 25, 30 ans 7 / 47 A. Beugnard

Les deux grands défis

Maîtriser la tailleLes deux grands défis des informations/données des systèmes (répartition géographique) des équipes Maîtiser la

des informations/donnéesLes deux grands défis Maîtriser la taille des systèmes (répartition géographique) des équipes Maîtiser la durée

des systèmes (répartition géographique)défis Maîtriser la taille des informations/données des équipes Maîtiser la durée maintenir sur 10, 25, 30

des équipesdes systèmes (répartition géographique) Maîtiser la durée maintenir sur 10, 25, 30 ans réutiliser

Maîtiser la duréedes systèmes (répartition géographique) des équipes maintenir sur 10, 25, 30 ans réutiliser Difficile dans une

maintenir sur 10, 25, 30 ansgéographique) des équipes Maîtiser la durée réutiliser Difficile dans une donc on simule des comme le

réutiliseréquipes Maîtiser la durée maintenir sur 10, 25, 30 ans Difficile dans une donc on simule

Difficile dans une

donc on simule des

comme le fil rouge

Nature dominante

donnée 6 4 2 1 5 3 interaction algorithme
donnée
6
4
2
1
5
3
interaction
algorithme

1. prévision météo

2. distributeur billets

3. ascenseur

4. logiciel de paie

5. éditeur de texte

6. transformation de fichier

Constats stables depuis 20 ans !

138.59253:Echec 52.19604:Réussite 19% 29% 52% 266.39648:Mitigé
138.59253:Echec 52.19604:Réussite
19%
29%
52%
266.39648:Mitigé

Citations

Les professionnels de l’informatique se distinguent des autres par la piètre qualité de leur production. Ils ne fournissent pas de garantie de leurs logiciels, pire, ils dégagent leur responsabilité pour toutes les erreurs que leurs produits pourraient contenir.

Cit. approx. C.A.R. Hoare

Aujourd’hui les problèmes importants (de la production de logiciel) ne sont pas des problèmes techniques, mais des problèmes de gestion. Président d’un groupe de travail du DoD pour l’amélioration de l’acquisition de logiciel

Logiciel / Matériel

Le matériel coûte de moins en moins cher.Logiciel / Matériel Le logiciel est de plus en plus coûteux. 12 / 47 A. Beugnard

Le logiciel est de plus en plus coûteux.Logiciel / Matériel Le matériel coûte de moins en moins cher. 12 / 47 A. Beugnard

Introduction au génie logiciel

Vous avez des bases deIntroduction au génie logiciel mais Programmer n’est pas Concevoir La technique ? nécessaire, mais pas si

mais

Programmer n’est pas Concevoir

La technique ? nécessaire, mais pas si importante que ça !avez des bases de mais Programmer n’est pas Concevoir Le VRAI problème difficile : organisation, gestion

Le VRAI problème difficile : organisation, gestionLa technique ? nécessaire, mais pas si importante que ça ! difficulté de formalisation multitude de

difficulté de formalisationça ! Le VRAI problème difficile : organisation, gestion multitude de paramètres, facteurs gestions des humains

multitude de paramètres, facteurs: organisation, gestion difficulté de formalisation gestions des humains 13 / 47 A. Beugnard Introduction au

gestions des humainsdifficulté de formalisation multitude de paramètres, facteurs 13 / 47 A. Beugnard Introduction au Génie Logiciel

Génie logiciel : définitions

Ensemble de moyens (techniques, méthodes) mis en œuvre pour la construction de systèmes informatiques (à logiciel prépondérant).

Ensemble de moyens (techniques, méthodes) mis en œuvre pour la construction de logiciels.

Les principaux acteurs

Client (MOA)

Analyse les besoinsLes principaux acteurs Client (MOA) Rédige un cahier des charges Fait un appel d’offre Évalue les

Rédige un cahier des chargesLes principaux acteurs Client (MOA) Analyse les besoins Fait un appel d’offre Évalue les réponses Choisit

Fait un appel d’offre(MOA) Analyse les besoins Rédige un cahier des charges Évalue les réponses Choisit un prestataire Suit,

Évalue les réponsesRédige un cahier des charges Fait un appel d’offre Choisit un prestataire Suit, participe Recette le

Choisit un prestatairedes charges Fait un appel d’offre Évalue les réponses Suit, participe Recette le produit Fournisseur (MOE)

Suit, participed’offre Évalue les réponses Choisit un prestataire Recette le produit Fournisseur (MOE) Analyse les besoins

Recette le produitÉvalue les réponses Choisit un prestataire Suit, participe Fournisseur (MOE) Analyse les besoins Répond à un

Fournisseur (MOE)

Analyse les besoinsSuit, participe Recette le produit Fournisseur (MOE) Répond à un appel d’offre (analyse, faisabilité,

Répond à un appel d’offre (analyse, faisabilité, intérêt, prévisions, planification)Recette le produit Fournisseur (MOE) Analyse les besoins Conçoit, réalise Livre le produit 15 / 47

Conçoit, réalisefaisabilité, intérêt, prévisions, planification) Livre le produit 15 / 47 A. Beugnard Introduction au

Livre le produitintérêt, prévisions, planification) Conçoit, réalise 15 / 47 A. Beugnard Introduction au Génie Logiciel

Les principaux objectifs

Client (MOA)

Exprimer des besoinsLes principaux objectifs Client (MOA) Fonctionnels Opérationnels Non-fonctionnels (Qualité) Accepter le produit Valider

FonctionnelsLes principaux objectifs Client (MOA) Exprimer des besoins Opérationnels Non-fonctionnels (Qualité) Accepter le produit

Opérationnelsobjectifs Client (MOA) Exprimer des besoins Fonctionnels Non-fonctionnels (Qualité) Accepter le produit Valider

Non-fonctionnels (Qualité)(MOA) Exprimer des besoins Fonctionnels Opérationnels Accepter le produit Valider (fait ce qu’il faut)

Accepter le produitFonctionnels Opérationnels Non-fonctionnels (Qualité) Valider (fait ce qu’il faut) Fournisseur (MOE) Satisfaire

Valider (fait ce qu’il faut)Non-fonctionnels (Qualité) Accepter le produit Fournisseur (MOE) Satisfaire les besoins Choix de conception

Fournisseur (MOE)

Satisfaire les besoinsle produit Valider (fait ce qu’il faut) Fournisseur (MOE) Choix de conception Choix techniques Programmes,

Choix de conceptionce qu’il faut) Fournisseur (MOE) Satisfaire les besoins Choix techniques Programmes, configurations, données Livre

Choix techniquesFournisseur (MOE) Satisfaire les besoins Choix de conception Programmes, configurations, données Livre le produit

Programmes, configurations, donnéesSatisfaire les besoins Choix de conception Choix techniques Livre le produit Valider (fait ce qu’il faut)

Livre le produitChoix techniques Programmes, configurations, données Valider (fait ce qu’il faut) Vérifier (bien faire le

Valider (fait ce qu’il faut)Programmes, configurations, données Livre le produit Vérifier (bien faire le travail) 16 / 47 A. Beugnard

Vérifier (bien faire le travail)données Livre le produit Valider (fait ce qu’il faut) 16 / 47 A. Beugnard Introduction au

Objectifs de ce cours

Contexte du développement logicielObjectifs de ce cours Exemples et problèmes Pourquoi c’est difficile Les étapes d’un cycle de vie

Exemples et problèmesObjectifs de ce cours Contexte du développement logiciel Pourquoi c’est difficile Les étapes d’un cycle de

Pourquoi c’est difficileContexte du développement logiciel Exemples et problèmes Les étapes d’un cycle de vie Les exigences d’un

Les étapes d’un cycle de vielogiciel Exemples et problèmes Pourquoi c’est difficile Les exigences d’un système Des outils du développement

Les exigences d’un systèmePourquoi c’est difficile Les étapes d’un cycle de vie Des outils du développement logiciel 17 /

Des outils du développement logicielLes étapes d’un cycle de vie Les exigences d’un système 17 / 47 A. Beugnard Introduction

Objectif : construire une maison

D’après C. Chartier-Kastler, Précis de conduite de projet informatique Comment construire une maison ?

Vous possédez un terrain

Vous possédez un terrain

Vous avez une idée de la maison souhaitée

Vous avez une idée de la maison souhaitée

Vous possédez un terrain Vous avez une idée de la maison souhaitée Et maintenant ?
Et maintenant ?

Et maintenant ?

De nombreuses questions

Quelles tâches accomplir ? Dans quel ordre ?De nombreuses questions Qui faire intervenir ? Comment les synchroniser ? Quels outils utiliser ? Quand

Qui faire intervenir ? Comment les synchroniser ?questions Quelles tâches accomplir ? Dans quel ordre ? Quels outils utiliser ? Quand ? Avec

Quels outils utiliser ? Quand ? Avec des experts ?ordre ? Qui faire intervenir ? Comment les synchroniser ? Quels plans réaliser ? Ont-ils des

Quels plans réaliser ? Ont-ils des liens entre eux ?? Quels outils utiliser ? Quand ? Avec des experts ? Existe-t-il des contraintes administratives ?

Existe-t-il des contraintes administratives ?? Quels plans réaliser ? Ont-ils des liens entre eux ? Comment suivre les opérations ?

Comment suivre les opérations ?entre eux ? Existe-t-il des contraintes administratives ? Comment effectuer la recette ? Quand payer ?

Comment effectuer la recette ?administratives ? Comment suivre les opérations ? Quand payer ? Quels matériaux choisir ? 19 /

Quand payer ?suivre les opérations ? Comment effectuer la recette ? Quels matériaux choisir ? 19 / 47

Quels matériaux choisir ?les opérations ? Comment effectuer la recette ? Quand payer ? 19 / 47 A. Beugnard

De nombreuses réponses

Des tâches connues. Un planning.

Des tâches connues. Un planning.

De nombreux experts. Des documents.

De nombreux experts. Des documents.

Nombreux outils. Nombreux spécialistes.

Nombreux outils. Nombreux spécialistes.

Des plans multiples.

Des plans multiples.

Plan d’occupation des sols. Permis de construire.

Plan d’occupation des sols. Permis de construire.

Présence sur le chantier.

Présence sur le chantier.

spécialistes. Des plans multiples. Plan d’occupation des sols. Permis de construire. Présence sur le chantier.

De nombreuses réponses

Des tâches connues. Un planning.

Des tâches connues. Un planning.

De nombreux experts. Des documents.

De nombreux experts. Des documents.

Nombreux outils. Nombreux spécialistes.

Nombreux outils. Nombreux spécialistes.

Des plans multiples.

Des plans multiples.

Plan d’occupation des sols. Permis de construire.

Plan d’occupation des sols. Permis de construire.

Présence sur le chantier.

Présence sur le chantier.

spécialistes. Des plans multiples. Plan d’occupation des sols. Permis de construire. Présence sur le chantier.

En développement logiciel, c’est pareil !

Des spécificités du logiciel

L’ingénierie du logiciel est un métier récent.Des spécificités du logiciel Le produit : de l’information (copiable, modifiable) Les besoins évoluent avec les

Le produit : de l’information (copiable, modifiable)logiciel L’ingénierie du logiciel est un métier récent. Les besoins évoluent avec les applications qui durent

Les besoins évoluent avec les applications qui durentLe produit : de l’information (copiable, modifiable) Petite Coût du logiciel coût du système contrôlé Un

PetiteLes besoins évoluent avec les applications qui durent Coût du logiciel coût du système contrôlé Un

Coût du logiciel coût du système contrôlé coût du système contrôlé

Un logiciel ne s’use pasPetite Coût du logiciel coût du système contrôlé Difficulté d’exprimer les besoins Croire que savoir

Difficulté d’exprimer les besoinscoût du système contrôlé Un logiciel ne s’use pas Croire que savoir programmer suffit Vitesse d’évolution

Croire que savoir programmer suffitlogiciel ne s’use pas Difficulté d’exprimer les besoins Vitesse d’évolution des technologies Multiplicité des

Vitesse d’évolution des technologiesd’exprimer les besoins Croire que savoir programmer suffit Multiplicité des technologies, des langages, des outils

Multiplicité des technologies, des langages, des outilsprogrammer suffit Vitesse d’évolution des technologies grande conséquence 21 / 47 A. Beugnard Introduction au

grande conséquence

Trois grandes approches

1. Prototypage

MaquetteTrois grandes approches 1. Prototypage Quick and dirty Utile pour comprendre, pas pour fournir un produit

Quick and dirtyTrois grandes approches 1. Prototypage Maquette Utile pour comprendre, pas pour fournir un produit 2. Formalisation

Utile pour comprendre, pas pour fournir un produitgrandes approches 1. Prototypage Maquette Quick and dirty 2. Formalisation Mathématique Preuve Utile pour les

2. Formalisation

Mathématiquecomprendre, pas pour fournir un produit 2. Formalisation Preuve Utile pour les systèmes critiques (mais difficile)

Preuvepas pour fournir un produit 2. Formalisation Mathématique Utile pour les systèmes critiques (mais difficile) 3.

Utile pour les systèmes critiques (mais difficile)fournir un produit 2. Formalisation Mathématique Preuve 3. Modélisation Semi-formel Diagramme, vérification de

3. Modélisation

Semi-formelles systèmes critiques (mais difficile) 3. Modélisation Diagramme, vérification de propriétés L’approche

Diagramme, vérification de propriétéscritiques (mais difficile) 3. Modélisation Semi-formel L’approche industrielle la plus répendue 22 / 47 A.

L’approche industrielle la plus répendueSemi-formel Diagramme, vérification de propriétés 22 / 47 A. Beugnard Introduction au Génie Logiciel

1

2

3

4

Avancement

Le développement logiciel

Notion de cycle de vie

Notions qualité logiciel

Synthèse

Organiser avec un cycle de vie

Pour les grandes phases du développement

Analyse des Besoins Recette Conception système Tests Système Conception Initiale Test d’Intégration Conception
Analyse des Besoins
Recette
Conception système
Tests Système
Conception Initiale
Test d’Intégration
Conception Détaillée
Test Unitaire
Réalisation

Cycle de vie en V

De la

AnalyseDe la Conceptions Réalisation 25 / 47 A. Beugnard Introduction au Génie Logiciel

ConceptionsDe la Analyse Réalisation 25 / 47 A. Beugnard Introduction au Génie Logiciel

RéalisationDe la Analyse Conceptions 25 / 47 A. Beugnard Introduction au Génie Logiciel

De la

Analyse : comment définir ? : comment définir ?

ConceptionsDe la Analyse : comment définir ? Réalisation 25 / 47 A. Beugnard Introduction au Génie

RéalisationDe la Analyse : comment définir ? Conceptions 25 / 47 A. Beugnard Introduction au Génie

De la

AnalyseDe la Comprendre le problème Comprendre les besoins (exigences) Exprime le problème : spécifier Conceptions

Comprendre le problèmeDe la Analyse Comprendre les besoins (exigences) Exprime le problème : spécifier Conceptions Réalisation 25 /

Comprendre les besoins (exigences)De la Analyse Comprendre le problème Exprime le problème : spécifier Conceptions Réalisation 25 / 47

Exprime le problème : spécifier spécifier

Conceptionsles besoins (exigences) Exprime le problème : spécifier Réalisation 25 / 47 A. Beugnard Introduction au

Réalisation(exigences) Exprime le problème : spécifier Conceptions 25 / 47 A. Beugnard Introduction au Génie Logiciel

De la

AnalyseDe la Comprendre le problème Comprendre les besoins (exigences) Exprime le problème : spécifier Conceptions :

Comprendre le problèmeDe la Analyse Comprendre les besoins (exigences) Exprime le problème : spécifier Conceptions : comment définir

Comprendre les besoins (exigences)De la Analyse Comprendre le problème Exprime le problème : spécifier Conceptions : comment définir ?

Exprime le problème : spécifier spécifier

Conceptions : comment définir ? : comment définir ?

Réalisationle problème : spécifier Conceptions : comment définir ? 25 / 47 A. Beugnard Introduction au

De la

AnalyseDe la Comprendre le problème Comprendre les besoins (exigences) Exprime le problème : spécifier Conceptions Trouver

Comprendre le problèmeDe la Analyse Comprendre les besoins (exigences) Exprime le problème : spécifier Conceptions Trouver des solutions,

Comprendre les besoins (exigences)De la Analyse Comprendre le problème Exprime le problème : spécifier Conceptions Trouver des solutions, les

Exprime le problème : spécifier spécifier

Conceptionsles besoins (exigences) Exprime le problème : spécifier Trouver des solutions, les évaluer (architecture)

Trouver des solutions, les évaluer (architecture)(exigences) Exprime le problème : spécifier Conceptions Détailler une solution (en composants) Réalisation 25 / 47

Détailler une solution (en composants)Trouver des solutions, les évaluer (architecture) Réalisation 25 / 47 A. Beugnard Introduction au Génie

Réalisationévaluer (architecture) Détailler une solution (en composants) 25 / 47 A. Beugnard Introduction au Génie Logiciel

De la

AnalyseDe la Comprendre le problème Comprendre les besoins (exigences) Exprime le problème : spécifier Conceptions Trouver

Comprendre le problèmeDe la Analyse Comprendre les besoins (exigences) Exprime le problème : spécifier Conceptions Trouver des solutions,

Comprendre les besoins (exigences)De la Analyse Comprendre le problème Exprime le problème : spécifier Conceptions Trouver des solutions, les

Exprime le problème : spécifier spécifier

Conceptionsles besoins (exigences) Exprime le problème : spécifier Trouver des solutions, les évaluer (architecture)

Trouver des solutions, les évaluer (architecture)(exigences) Exprime le problème : spécifier Conceptions Détailler une solution (en composants) Réalisation :

Détailler une solution (en composants)Trouver des solutions, les évaluer (architecture) Réalisation : comment définir ? 25 / 47 A. Beugnard

Réalisation : comment définir ? : comment définir ?

De la

AnalyseDe la Comprendre le problème Comprendre les besoins (exigences) Exprime le problème : spécifier Conceptions Trouver

Comprendre le problèmeDe la Analyse Comprendre les besoins (exigences) Exprime le problème : spécifier Conceptions Trouver des solutions,

Comprendre les besoins (exigences)De la Analyse Comprendre le problème Exprime le problème : spécifier Conceptions Trouver des solutions, les

Exprime le problème : spécifier spécifier

Conceptionsles besoins (exigences) Exprime le problème : spécifier Trouver des solutions, les évaluer (architecture)

Trouver des solutions, les évaluer (architecture)(exigences) Exprime le problème : spécifier Conceptions Détailler une solution (en composants) Réalisation Codage,

Détailler une solution (en composants)Trouver des solutions, les évaluer (architecture) Réalisation Codage, implantation Configuration,

Réalisation(architecture) Détailler une solution (en composants) Codage, implantation Configuration, Définition des bases

Codage, implantationDétailler une solution (en composants) Réalisation Configuration, Définition des bases de données etc 25 /

Configuration, Définition des bases de donnéesune solution (en composants) Réalisation Codage, implantation etc 25 / 47 A. Beugnard Introduction au Génie

etcimplantation Configuration, Définition des bases de données 25 / 47 A. Beugnard Introduction au Génie Logiciel

à la recette

Tests unitairesà la recette Tests d’intégration Tests système Recette 26 / 47 A. Beugnard Introduction au Génie

Tests d’intégrationà la recette Tests unitaires Tests système Recette 26 / 47 A. Beugnard Introduction au Génie

Tests systèmeà la recette Tests unitaires Tests d’intégration Recette 26 / 47 A. Beugnard Introduction au Génie

Recetteà la recette Tests unitaires Tests d’intégration Tests système 26 / 47 A. Beugnard Introduction au

à la recette

Tests unitaires : comment définir ? : comment définir ?

Tests d’intégrationà la recette Tests unitaires : comment définir ? Tests système Recette 26 / 47 A.

Tests systèmeunitaires : comment définir ? Tests d’intégration Recette 26 / 47 A. Beugnard Introduction au Génie

Recette: comment définir ? Tests d’intégration Tests système 26 / 47 A. Beugnard Introduction au Génie

à la recette

Tests unitairesà la recette Pour validation et vérification par composant Tests d’intégration Tests système Recette 26 /

à la recette Tests unitaires Pour validation et vérification par composant Tests d’intégration Tests système

Pour validation et vérification par composant

Tests d’intégrationunitaires Pour validation et vérification par composant Tests système Recette 26 / 47 A. Beugnard Introduction

Tests systèmeet vérification par composant Tests d’intégration Recette 26 / 47 A. Beugnard Introduction au Génie

Recettevérification par composant Tests d’intégration Tests système 26 / 47 A. Beugnard Introduction au Génie Logiciel

à la recette

Tests unitairesà la recette Pour validation et vérification par composant Tests d’intégration : comment définir ? Tests

à la recette Tests unitaires Pour validation et vérification par composant Tests d’intégration : comment définir

Pour validation et vérification par composant

Tests d’intégration : comment définir ? : comment définir ?

Tests systèmepar composant Tests d’intégration : comment définir ? Recette 26 / 47 A. Beugnard Introduction au

RecetteTests d’intégration : comment définir ? Tests système 26 / 47 A. Beugnard Introduction au Génie

à la recette

Tests unitairesà la recette Pour validation et vérification par composant Tests d’intégration Pour validation et vérification par

Pour validation et vérification par composantà la recette Tests unitaires Tests d’intégration Pour validation et vérification par sous-systèmes Tests système

Tests d’intégrationunitaires Pour validation et vérification par composant Pour validation et vérification par sous-systèmes Tests

Pour validation et vérification par sous-systèmeset vérification par composant Tests d’intégration Tests système Recette 26 / 47 A. Beugnard Introduction

Tests systèmePour validation et vérification par sous-systèmes Recette 26 / 47 A. Beugnard Introduction au Génie

Recettevalidation et vérification par sous-systèmes Tests système 26 / 47 A. Beugnard Introduction au Génie Logiciel

à la recette

Tests unitairesà la recette Pour validation et vérification par composant Tests d’intégration Pour validation et vérification par

Pour validation et vérification par composantà la recette Tests unitaires Tests d’intégration Pour validation et vérification par sous-systèmes Tests système

Tests d’intégrationunitaires Pour validation et vérification par composant Pour validation et vérification par sous-systèmes Tests

Pour validation et vérification par sous-systèmeset vérification par composant Tests d’intégration Tests système : comment définir ? Recette 26 / 47

Tests système : comment définir ? : comment définir ?

Recettepar sous-systèmes Tests système : comment définir ? 26 / 47 A. Beugnard Introduction au Génie

à la recette

Tests unitairesà la recette Pour validation et vérification par composant Tests d’intégration Pour validation et vérification par

Pour validation et vérification par composantà la recette Tests unitaires Tests d’intégration Pour validation et vérification par sous-systèmes Tests système

Tests d’intégrationunitaires Pour validation et vérification par composant Pour validation et vérification par sous-systèmes Tests

Pour validation et vérification par sous-systèmeset vérification par composant Tests d’intégration Tests système Pour validation fonctionnelle complète du

Tests systèmePour validation et vérification par sous-systèmes Pour validation fonctionnelle complète du système Pour

Pour validation fonctionnelle complète du systèmeet vérification par sous-systèmes Tests système Pour validation non- fonctionnelle complète du système

Pour validation non- fonctionnelle complète du système non-fonctionnelle complète du système

(Car les propriétés non-fonctionnelles sont émergentes ) émergentes)

Recette(Car les propriétés non-fonctionnelles sont émergentes ) 26 / 47 A. Beugnard Introduction au Génie Logiciel

à la recette

Tests unitairesà la recette Pour validation et vérification par composant Tests d’intégration Pour validation et vérification par

Pour validation et vérification par composantà la recette Tests unitaires Tests d’intégration Pour validation et vérification par sous-systèmes Tests système

Tests d’intégrationunitaires Pour validation et vérification par composant Pour validation et vérification par sous-systèmes Tests

Pour validation et vérification par sous-systèmeset vérification par composant Tests d’intégration Tests système Pour validation fonctionnelle complète du

Tests systèmePour validation et vérification par sous-systèmes Pour validation fonctionnelle complète du système Pour

Pour validation fonctionnelle complète du systèmeet vérification par sous-systèmes Tests système Pour validation non- fonctionnelle complète du système

Pour validation non- fonctionnelle complète du système non-fonctionnelle complète du système

(Car les propriétés non-fonctionnelles sont émergentes ) émergentes)

Recette : comment définir ? : comment définir ?

à la recette

Tests unitairesà la recette Pour validation et vérification par composant Tests d’intégration Pour validation et vérification par

Pour validation et vérification par composantà la recette Tests unitaires Tests d’intégration Pour validation et vérification par sous-systèmes Tests système

Tests d’intégrationunitaires Pour validation et vérification par composant Pour validation et vérification par sous-systèmes Tests

Pour validation et vérification par sous-systèmeset vérification par composant Tests d’intégration Tests système Pour validation fonctionnelle complète du

Tests systèmePour validation et vérification par sous-systèmes Pour validation fonctionnelle complète du système Pour

Pour validation fonctionnelle complète du systèmeet vérification par sous-systèmes Tests système Pour validation non- fonctionnelle complète du système

Pour validation non- fonctionnelle complète du système non-fonctionnelle complète du système

(Car les propriétés non-fonctionnelles sont émergentes ) émergentes)

Recette(Car les propriétés non-fonctionnelles sont émergentes ) Pour validation des conditions opérationnelles 26 / 47 A.

Pour validation des conditions opérationnellesles propriétés non-fonctionnelles sont émergentes ) Recette 26 / 47 A. Beugnard Introduction au Génie Logiciel

Où passe-t-on le plus de temps ?

Activité

1960 1980 2000

Conception

20%

Réalisation

60%

Tests

20%

On passe de plus en plus de temps à concevoir, à réfléchir

Où passe-t-on le plus de temps ?

Activité

1960 1980 2000

Conception

20% 30%

45%

Réalisation

60%

40%

10%

Tests

20%

30% 45%

On passe de plus en plus de temps à concevoir, à réfléchir

Et la maintenance ?

 

D70

D80

F80

D90

Coût

40%

(Source DATAMATION 15/2/1990)

Et la maintenance ?

 

D70

D80

F80

D90

Coût

40% 55%

75% 90%

(Source DATAMATION 15/2/1990)

Et la maintenance ?

 

D70

D80

F80

D90

Coût

40% 55%

75% 90%

Durée de vie augmenteD70 D80 F80 D90 Coût 40% 55% 75% 90% Besoins changent Technologies changent Complexité augmente

Besoins changentD90 Coût 40% 55% 75% 90% Durée de vie augmente Technologies changent Complexité augmente (Source

Technologies changent40% 55% 75% 90% Durée de vie augmente Besoins changent Complexité augmente (Source DATAMATION 15/2/1990) 28

Complexité augmentede vie augmente Besoins changent Technologies changent (Source DATAMATION 15/2/1990) 28 / 47 A. Beugnard

(Source DATAMATION 15/2/1990)

Nature de la maintenance

Correction Suppression des erreurs résiduelles Adaptation Prise en compte des évolutions matérielle et logicielle Amélioration Ajout de fonctionnalité, prise en compte des nouveaux besoins

125.9967:Correction 45.0:Adaptation 20% 25% 260.9967:Amélioration 55%
125.9967:Correction 45.0:Adaptation
20%
25%
260.9967:Amélioration 55%

Des outils et donc des experts (produit)

Pour spécifierDes outils et donc des experts (produit) Mathématique (B, Z, VDM) Semi-formel (UML) Informel (Langue naturelle,

Mathématique (B, Z, VDM)Des outils et donc des experts (produit) Pour spécifier Semi-formel (UML) Informel (Langue naturelle, dessins) Pour

Semi-formel (UML)experts (produit) Pour spécifier Mathématique (B, Z, VDM) Informel (Langue naturelle, dessins) Pour concevoir UML et

Informel (Langue naturelle, dessins)Pour spécifier Mathématique (B, Z, VDM) Semi-formel (UML) Pour concevoir UML et de nombreuses autres notations

Pour concevoirVDM) Semi-formel (UML) Informel (Langue naturelle, dessins) UML et de nombreuses autres notations Outils spécialisés

UML et de nombreuses autres notations(UML) Informel (Langue naturelle, dessins) Pour concevoir Outils spécialisés (pour IHM) Pour réaliser Compilateur

Outils spécialisés (pour IHM)Pour concevoir UML et de nombreuses autres notations Pour réaliser Compilateur (Java et de nombreux autres

Pour réalisernombreuses autres notations Outils spécialisés (pour IHM) Compilateur (Java et de nombreux autres langages) Bases de

Compilateur (Java et de nombreux autres langages)notations Outils spécialisés (pour IHM) Pour réaliser Bases de données Pour tester JUnit Pour intégrer JUnit,

Bases de donnéesréaliser Compilateur (Java et de nombreux autres langages) Pour tester JUnit Pour intégrer JUnit, mock 30

Pour tester(Java et de nombreux autres langages) Bases de données JUnit Pour intégrer JUnit, mock 30 /

JUnitde nombreux autres langages) Bases de données Pour tester Pour intégrer JUnit, mock 30 / 47

Pour intégrerautres langages) Bases de données Pour tester JUnit JUnit, mock 30 / 47 A. Beugnard Introduction

JUnit, mocklangages) Bases de données Pour tester JUnit Pour intégrer 30 / 47 A. Beugnard Introduction au

Des outils et donc des experts (processus)

Pour organiserDes outils et donc des experts (processus) Planification Modélisation de processus ( workflow ) Pour partager

PlanificationDes outils et donc des experts (processus) Pour organiser Modélisation de processus ( workflow ) Pour

Modélisation de processus (workflow ) workflow)

Pour partagerPlanification Modélisation de processus ( workflow ) Forges, outils de gestion de version (RCS, CVS, SVN)

Forges, outils de gestion de version (RCS, CVS, SVN)Modélisation de processus ( workflow ) Pour partager Pour communiquer Courriel Espaces collaboratifs 31 / 47

Pour communiquerForges, outils de gestion de version (RCS, CVS, SVN) Courriel Espaces collaboratifs 31 / 47 A.

Courrielde gestion de version (RCS, CVS, SVN) Pour communiquer Espaces collaboratifs 31 / 47 A. Beugnard

Espaces collaboratifsde gestion de version (RCS, CVS, SVN) Pour communiquer Courriel 31 / 47 A. Beugnard Introduction

CASE tools ; IDE ; AGL ; etc

Des outils proposent d’intégrer tous ces outils divers en une boîte à outils “universelle”. On parle (en français) d’Atelier de Génie Logiciel ou (en anglais) d’Integrated Development Environment

ou de Compter-Aided Software Engineering exemple :

eclipseou de Compter-Aided Software Engineering exemple : nebeans jazz par 32 / 47 A. Beugnard Introduction

nebeansou de Compter-Aided Software Engineering exemple : eclipse jazz par 32 / 47 A. Beugnard Introduction

jazzCompter-Aided Software Engineering exemple : eclipse nebeans par 32 / 47 A. Beugnard Introduction au Génie

par

1

2

3

4

Avancement

Le développement logiciel

Notion de cycle de vie

Notions qualité logiciel

Synthèse

Objectif qualité

Réponse à l’attente du clientObjectif qualité contrôlable à la livraison principale ainsi que lors des livraisons intermédiaires Validation

Objectif qualité Réponse à l’attente du client contrôlable à la livraison principale ainsi que lors des

contrôlable à la livraison principale ainsi que lors des livraisons intermédiaires

Validationprincipale ainsi que lors des livraisons intermédiaires Vérification 34 / 47 A. Beugnard Introduction au

Vérificationainsi que lors des livraisons intermédiaires Validation 34 / 47 A. Beugnard Introduction au Génie Logiciel

Objectif qualité

Réponse à l’attente du clientObjectif qualité contrôlable à la livraison principale ainsi que lors des livraisons intermédiaires Validation

Objectif qualité Réponse à l’attente du client contrôlable à la livraison principale ainsi que lors des

contrôlable à la livraison principale ainsi que lors des livraisons intermédiaires

Validationprincipale ainsi que lors des livraisons intermédiaires Faisons-nous le bon produit ? ( to do the

Faisons-nous le bon produit ? (to do the right thing ) to do the right thing)

VérificationFaisons-nous le bon produit ? ( to do the right thing ) Faisons-nous le produit correctement

le bon produit ? ( to do the right thing ) Vérification Faisons-nous le produit correctement

Faisons-nous le produit correctement ? (to do the thing right)

Qualité et satisfaction

On distingue :

la qualité attendue par le clientQualité et satisfaction On distingue : la qualité voulue par le fournisseur (interprétation de la précédente)

la qualité voulue par le fournisseur (interprétation de la précédente)On distingue : la qualité attendue par le client la qualité réalisée par le fournisseur la

la qualité réalisée par le fournisseurpar le fournisseur (interprétation de la précédente) la qualité perçue par le client 35 / 47

la qualité perçue par le clientde la précédente) la qualité réalisée par le fournisseur 35 / 47 A. Beugnard Introduction au

Qualité et satisfaction

On distingue :

la qualité attendue par le clientQualité et satisfaction On distingue : la qualité voulue par le fournisseur (interprétation de la précédente)

la qualité voulue par le fournisseur (interprétation de la précédente)On distingue : la qualité attendue par le client la qualité réalisée par le fournisseur la

la qualité réalisée par le fournisseurpar le fournisseur (interprétation de la précédente) la qualité perçue par le client Satisfaction = indicateur

la qualité perçue par le clientla précédente) la qualité réalisée par le fournisseur Satisfaction = indicateur de la qualité perçue par

Satisfaction = indicateur de la qualité perçue par le client vis-à-vis de ce qui est attendu

Un brin d’histoire

Contrôle qualité (1910) on retire les produits non conformes Maîtrise de la qualité (1950) on prévient l’apparition de non-conformité (ISO 9000 v 1987-1994) Management de la qualité (1951) la qualité est un outils de management (ISO 9000 v 2000) Amélioration continue (1951) on entre dans une dynamique d’amélioration (CCM, ISO 15504)

Il faut distinguer les premières standardisation des pratiques.

de la

L’Assurance Qualité : Définition

Ensemble des activités préétablies et systématiques mises en œuvre dans le cadre du système qualité et démontrées en tant que de besoin, pour donner la confiance appropriée en ce qu’une entité satisfera aux exigences pour la qualité

(ISO 8402, 1995)

L’Assurance qualité s’applique aux produits (logiciels, matériels, services) ainsi qu’aux processus mis en œuvre.

L’Assurance Qualité : Objectif

La mise en œuvre du processus d’Assurance qualité permet de garantir que

le logiciel élaboré est conforme à ses exigencesdu processus d’Assurance qualité permet de garantir que l’ensemble des processus mis en œuvre se déroulent

l’ensemble des processus mis en œuvre se déroulent conformément aux modalités retenues ( = prévisions) = prévisions)

Elle permet de donner confiance dans la qualité des logiciels produits au chef de projet, à la hiérarchie et au client.

Définir les exigences : le rôle du client

Les fonctionsDéfinir les exigences : le rôle du client Les qualité du service Les qualités du produit

Les qualité du serviceDéfinir les exigences : le rôle du client Les fonctions Les qualités du produit 39 /

Les qualités du produit: le rôle du client Les fonctions Les qualité du service 39 / 47 A. Beugnard

Définir les exigences : le rôle du client

Les fonctionsDéfinir les exigences : le rôle du client Les qualité du service Efficacité Disponibilité Sécurité Passage

Les qualité du serviceDéfinir les exigences : le rôle du client Les fonctions Efficacité Disponibilité Sécurité Passage à l’échelle

Efficacité: le rôle du client Les fonctions Les qualité du service Disponibilité Sécurité Passage à l’échelle

Disponibilitédu client Les fonctions Les qualité du service Efficacité Sécurité Passage à l’échelle Les qualités du

Sécuritéfonctions Les qualité du service Efficacité Disponibilité Passage à l’échelle Les qualités du produit Conformité

Passage à l’échellequalité du service Efficacité Disponibilité Sécurité Les qualités du produit Conformité Portabilité

Les qualités du produitDisponibilité Sécurité Passage à l’échelle Conformité Portabilité Maintenabilité 39 / 47 A.

ConformitéSécurité Passage à l’échelle Les qualités du produit Portabilité Maintenabilité 39 / 47 A. Beugnard

PortabilitéPassage à l’échelle Les qualités du produit Conformité Maintenabilité 39 / 47 A. Beugnard Introduction au

Maintenabilitéà l’échelle Les qualités du produit Conformité Portabilité 39 / 47 A. Beugnard Introduction au Génie

Définir les exigences : le rôle du client

Les fonctionsDéfinir les exigences : le rôle du client Les qualité du service Efficacité Disponibilité Sécurité Passage

Les qualité du serviceDéfinir les exigences : le rôle du client Les fonctions Efficacité Disponibilité Sécurité Passage à l’échelle

Efficacité: le rôle du client Les fonctions Les qualité du service Disponibilité Sécurité Passage à l’échelle

Disponibilitédu client Les fonctions Les qualité du service Efficacité Sécurité Passage à l’échelle Les qualités du

Sécuritéfonctions Les qualité du service Efficacité Disponibilité Passage à l’échelle Les qualités du produit Conformité

Passage à l’échellequalité du service Efficacité Disponibilité Sécurité Les qualités du produit Conformité Portabilité

Les qualités du produitDisponibilité Sécurité Passage à l’échelle Conformité Portabilité Maintenabilité Comment définir ?

ConformitéSécurité Passage à l’échelle Les qualités du produit Portabilité Maintenabilité Comment définir ? booléen ?

PortabilitéPassage à l’échelle Les qualités du produit Conformité Maintenabilité Comment définir ? booléen ? entier ?

MaintenabilitéLes qualités du produit Conformité Portabilité Comment définir ? booléen ? entier ? réel ? quelle

Comment définir ? booléen ? entier ? réel ? quelle unité quelle signification ?

Définir les exigences : le rôle du client

Les fonctionsDéfinir les exigences : le rôle du client Les qualité du service Efficacité Disponibilité Sécurité Passage

Les qualité du serviceDéfinir les exigences : le rôle du client Les fonctions Efficacité Disponibilité Sécurité Passage à l’échelle

Efficacité: le rôle du client Les fonctions Les qualité du service Disponibilité Sécurité Passage à l’échelle

Disponibilitédu client Les fonctions Les qualité du service Efficacité Sécurité Passage à l’échelle Les qualités du

Sécuritéfonctions Les qualité du service Efficacité Disponibilité Passage à l’échelle Les qualités du produit Conformité

Passage à l’échellequalité du service Efficacité Disponibilité Sécurité Les qualités du produit Conformité Portabilité

Les qualités du produitDisponibilité Sécurité Passage à l’échelle Conformité Portabilité Maintenabilité Comment définir ?

ConformitéSécurité Passage à l’échelle Les qualités du produit Portabilité Maintenabilité Comment définir ? booléen ?

PortabilitéPassage à l’échelle Les qualités du produit Conformité Maintenabilité Comment définir ? booléen ? entier ?

MaintenabilitéLes qualités du produit Conformité Portabilité Comment définir ? booléen ? entier ? réel ? quelle

Comment définir ? booléen ? entier ? réel ? quelle unité quelle signification ? Quelle liste de facteur ? Une multitude !

Quelques facteurs : ISO 9126

Capacité fonctionnelle 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. Fiabilité 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.

Quelques facteurs : ISO 9126

Facilité d’utilisation 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. Rendement 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.

Quelques facteurs : ISO 9126

Maintenabilité Ensemble d’attributs portant sur l’effort nécessaire pour faire des modifications données. Portabilité Ensemble d’attributs portant sur l’aptitude de logiciel à être transféré d’un environnement à l’autre.

Quelques facteurs : ISO 9126

Maintenabilité Ensemble d’attributs portant sur l’effort nécessaire pour faire des modifications données. Portabilité Ensemble d’attributs portant sur l’aptitude de logiciel à être transféré d’un environnement à l’autre.

Point difficile : il y a des conflits entre facteurs ; on ne peut gagner partout ; il faut faire des compromis.

Des exigences aux critères : des choix

Le fournisseur dispose d’une palette

d’outils (de moyens)critères : des choix Le fournisseur dispose d’une palette de savoir faire de bonnes pratiques Ces

de savoir fairefournisseur dispose d’une palette d’outils (de moyens) de bonnes pratiques Ces éléments de solution (technique et

de bonnes pratiquesd’une palette d’outils (de moyens) de savoir faire Ces éléments de solution (technique et organisationnels)

Ces éléments de solution (technique et organisationnels) sont appelés critères Les facteurs mis en évidence par le client vont guider et permettre de justifier les choix de critères

Mesurer l’application des critères

Mesures

produit

service

processus

Objective

     

Réponse

     

(oui/non)

Enquête (0 à 5)

     

Mesurer l’application des critères

Mesures

produit

service

processus

Objective

#LOC

#abort

#HJ

Réponse

cohérence

disponibilité

procédure

(oui/non)

écrans

suffisante

suivie

Enquête (0 à 5)

clarté des

efficacité

apport de

résultats

efficacité

la qualité

Avancement

1 Le développement logiciel

2 Notion de cycle de vie

3 Notions qualité logiciel

4 Synthèse

Conclusion

Ce cours est une introduction

Il insiste sur l’importance de l’organisation La technique est naturellement nécessaire L’organisation est malheureusement indispensable (malheureusement, car moins attrayante pour des étudiants)

Il introduit des éléments de vocabulaire à connaître (qui seront vus et revus pendant le fil rouge)

Vocabulaire

Cycle de vieVocabulaire Planification Spécifier Exigence (Facteur) Critère Métrique Analyse Conception Réalisation Test

PlanificationVocabulaire Cycle de vie Spécifier Exigence (Facteur) Critère Métrique Analyse Conception Réalisation Test

SpécifierVocabulaire Cycle de vie Planification Exigence (Facteur) Critère Métrique Analyse Conception Réalisation Test

Exigence (Facteur)Vocabulaire Cycle de vie Planification Spécifier Critère Métrique Analyse Conception Réalisation Test Intégration

CritèreCycle de vie Planification Spécifier Exigence (Facteur) Métrique Analyse Conception Réalisation Test Intégration

Métriquevie Planification Spécifier Exigence (Facteur) Critère Analyse Conception Réalisation Test Intégration Recette

Spécifier Exigence (Facteur) Critère Métrique Analyse Conception Réalisation Test Intégration Recette

Spécifier Exigence (Facteur) Critère Métrique Analyse Conception Réalisation Test Intégration Recette

Analyse

Conception

RéalisationExigence (Facteur) Critère Métrique Analyse Conception Test Intégration Recette AGL ( IDE ) UML Compilateur Base

Test(Facteur) Critère Métrique Analyse Conception Réalisation Intégration Recette AGL ( IDE ) UML Compilateur Base de

Intégration

RecetteMétrique Analyse Conception Réalisation Test Intégration AGL ( IDE ) UML Compilateur Base de données JUnit

Analyse Conception Réalisation Test Intégration Recette AGL ( IDE ) UML Compilateur Base de données JUnit

Analyse Conception Réalisation Test Intégration Recette AGL ( IDE ) UML Compilateur Base de données JUnit

Analyse Conception Réalisation Test Intégration Recette AGL ( IDE ) UML Compilateur Base de données JUnit

AGL (IDE)

UML

CompilateurRéalisation Test Intégration Recette AGL ( IDE ) UML Base de données JUnit 47 / 47

Base de donnéesTest Intégration Recette AGL ( IDE ) UML Compilateur JUnit 47 / 47 A. Beugnard Introduction

Recette AGL ( IDE ) UML Compilateur Base de données JUnit 47 / 47 A. Beugnard

JUnit