Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Introduction au d´ eveloppement du logiciel
Vers le g´ enie logiciel
Pascal ANDRE
MIAGE Universit´e de Nantes
Master Miage M1
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Plan
1
Introduction2
G´enie logiciel3
Projet informatique4
M´ethode de d´eveloppement5
Qualit´ePascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Bibliographie sommaire
G´en´eralit´es et techniques de base
[AV01a] Pascal Andr´e and Alain Vailly.
Conception de Syst`emes d’Information, Panorama des m´ethodes et des techniques, volume 1 of Collection Technosup.
Editions Ellipses, 2001.
ISBN 2-7298-0479-X.
[MR93] Jos´e Morejon and Jean-Ren´e Rames.
Conduite de projets informatiques.
InterEditions, 1993.
Principes et techniques s’appuyant sur la m´ethode MERISE, ISBN 2-7296-0457-X.
[Vil95] Fran¸coise Villeneuve.
Conduite de projet.
CNRS, 1995.
http://dsi-val.dsi.cnrs.fr/
bureau qualite/qualite/conduit.htm.
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Introduction
De l’id´ ee au code exprimer programmer v´ erifier
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Introduction
De l’id´ ee au code exprimer programmer v´ erifier avec m´ ethode...
dans le bon ordre
´
eviter l’anarchie travailler en groupe
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Introduction
De l’id´ ee au code exprimer programmer v´ erifier avec m´ ethode...
dans le bon ordre
´
eviter l’anarchie travailler en groupe ... et qualit´ e
mod` eles (correct, fiable, ´ evolutif...) processus (efficace, rentable...)
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Introduction
De l’id´ ee au code exprimer
programmer → MODELES
v´ erifier avec m´ ethode...
dans le bon ordre PROCESSUS
´
eviter l’anarchie → GESTION DE PROJET travailler en groupe
... et qualit´ e
mod` eles (correct, fiable, ´ evolutif...)
processus (efficace, rentable...) → QUALITE
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement individuel
→ m´ ethodes ”agiles”, XP
Analyse l´ eg` ere ou dans la ”tˆ ete”
Programmation incr´ ementale et it´ erative sur le test
⇒ probl` emes ` a grande ´ echelle magma d’organisation
dur´ ees al´ eatoires
exp´ erience et capitalisation individuelle
⇒ pas de travail de groupe, pas rationnel
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement individuel
→ m´ ethodes ”agiles”, XP
Analyse l´ eg` ere ou dans la ”tˆ ete”
oublis
erreurs tardives → manque de r´ eflexion
Programmation incr´ ementale et it´ erative sur le test
⇒ probl` emes ` a grande ´ echelle magma d’organisation dur´ ees al´ eatoires
exp´ erience et capitalisation individuelle
⇒ pas de travail de groupe, pas rationnel
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement individuel
→ m´ ethodes ”agiles”, XP
Analyse l´ eg` ere ou dans la ”tˆ ete”
Programmation incr´ ementale et it´ erative sur le test
⇒ probl` emes ` a grande ´ echelle magma d’organisation dur´ ees al´ eatoires
exp´ erience et capitalisation individuelle
⇒ pas de travail de groupe, pas rationnel
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement individuel
→ m´ ethodes ”agiles”, XP
Analyse l´ eg` ere ou dans la ”tˆ ete”
Programmation incr´ ementale et it´ erative sur le test nombreux allers/retours
r´ eactivit´ e → manque d’organisation
⇒ probl` emes ` a grande ´ echelle magma d’organisation dur´ ees al´ eatoires
exp´ erience et capitalisation individuelle
⇒ pas de travail de groupe, pas rationnel
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement individuel
→ m´ ethodes ”agiles”, XP
Analyse l´ eg` ere ou dans la ”tˆ ete”
Programmation incr´ ementale et it´ erative sur le test
⇒ probl` emes ` a grande ´ echelle magma d’organisation dur´ ees al´ eatoires
exp´ erience et capitalisation individuelle
⇒ pas de travail de groupe, pas rationnel
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement individuel
→ m´ ethodes ”agiles”, XP
Analyse l´ eg` ere ou dans la ”tˆ ete”
Programmation incr´ ementale et it´ erative sur le test
⇒ probl` emes ` a grande ´ echelle magma d’organisation dur´ ees al´ eatoires
exp´ erience et capitalisation individuelle
⇒ pas de travail de groupe, pas rationnel
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement en groupe
´
etablir les tˆ aches et les r´ esultats
d´ efinir les acteurs
organiser le d´ eveloppement
g´ erer la communication (documents, m´ edia, ...) superviser le d´ eveloppement
am´ eliorer la qualit´ e
⇒ pour qui ?
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement en groupe
´
etablir les tˆ aches et les r´ esultats d´ efinir les acteurs
organiser le d´ eveloppement
g´ erer la communication (documents, m´ edia, ...) superviser le d´ eveloppement
am´ eliorer la qualit´ e
⇒ pour qui ?
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement en groupe
´
etablir les tˆ aches et les r´ esultats d´ efinir les acteurs
organiser le d´ eveloppement
g´ erer la communication (documents, m´ edia, ...) superviser le d´ eveloppement
am´ eliorer la qualit´ e
⇒ pour qui ?
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement en groupe
´
etablir les tˆ aches et les r´ esultats d´ efinir les acteurs
organiser le d´ eveloppement
g´ erer la communication (documents, m´ edia, ...)
superviser le d´ eveloppement am´ eliorer la qualit´ e
⇒ pour qui ?
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement en groupe
´
etablir les tˆ aches et les r´ esultats d´ efinir les acteurs
organiser le d´ eveloppement
g´ erer la communication (documents, m´ edia, ...) superviser le d´ eveloppement
am´ eliorer la qualit´ e
⇒ pour qui ?
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement en groupe
´
etablir les tˆ aches et les r´ esultats d´ efinir les acteurs
organiser le d´ eveloppement
g´ erer la communication (documents, m´ edia, ...) superviser le d´ eveloppement
am´ eliorer la qualit´ e
⇒ pour qui ?
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement en groupe
´
etablir les tˆ aches et les r´ esultats d´ efinir les acteurs
organiser le d´ eveloppement
g´ erer la communication (documents, m´ edia, ...) superviser le d´ eveloppement
am´ eliorer la qualit´ e
⇒ pour qui ?
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement pour un client
1
ajouter une dimension coˆ ut
2
ajouter de nouvelles ´ etapes
3
modifier le d´ eveloppement
4
pr´ evoir l’assurance qualit´ e, l’automatisation...
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement pour un client
1
ajouter une dimension coˆ ut
analyse de coˆ uts : financier, temporel, humain...
analyse de comp´ etence : technologies requises (formation ?) analyse de performance : rentabilit´ e...
2
ajouter de nouvelles ´ etapes
3
modifier le d´ eveloppement
4
pr´ evoir l’assurance qualit´ e, l’automatisation...
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement pour un client
1
ajouter une dimension coˆ ut
2
ajouter de nouvelles ´ etapes
3
modifier le d´ eveloppement
4
pr´ evoir l’assurance qualit´ e, l’automatisation...
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement pour un client
1
ajouter une dimension coˆ ut
2
ajouter de nouvelles ´ etapes
´
etude d’opportunit´ e
´
etudes de faisabilit´ e analyse de risques gestion des risques d´ ecisions
3
modifier le d´ eveloppement
4
pr´ evoir l’assurance qualit´ e, l’automatisation...
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement pour un client
1
ajouter une dimension coˆ ut
2
ajouter de nouvelles ´ etapes
3
modifier le d´ eveloppement
4
pr´ evoir l’assurance qualit´ e, l’automatisation...
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement pour un client
1
ajouter une dimension coˆ ut
2
ajouter de nouvelles ´ etapes
3
modifier le d´ eveloppement rˆ ole du client
sp´ ecification validation d´ ecisions
4
pr´ evoir l’assurance qualit´ e, l’automatisation...
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement pour un client
1
ajouter une dimension coˆ ut
2
ajouter de nouvelles ´ etapes
3
modifier le d´ eveloppement
4
pr´ evoir l’assurance qualit´ e, l’automatisation...
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement pour un client
1
ajouter une dimension coˆ ut
2
ajouter de nouvelles ´ etapes
3
modifier le d´ eveloppement
4
pr´ evoir l’assurance qualit´ e, l’automatisation...
qualit´ e des r´ esultats (validit´ e, robustesse) = satisfaire le client qualit´ e du processus = respecter d´ elais et coˆ uts
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement par un prestataire
1
ajouter une dimension production
2
ajouter de nouvelles ´ etapes
3
prendre en compte d’autres pr´ eoccupations
4
rentabiliser la production
⇒ produire du logiciel de qualit´ e, rationaliser le d´ evelopperment, rentabiliser les investissements
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement par un prestataire
1
ajouter une dimension production
analyse de coˆ uts : financier, temporel, humain...
analyse de comp´ etence : technologies requises (formation ?) analyse de performance : rentabilit´ e...
2
ajouter de nouvelles ´ etapes
3
prendre en compte d’autres pr´ eoccupations
4
rentabiliser la production
⇒ produire du logiciel de qualit´ e, rationaliser le d´ evelopperment, rentabiliser les investissements
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement par un prestataire
1
ajouter une dimension production
2
ajouter de nouvelles ´ etapes
3
prendre en compte d’autres pr´ eoccupations
4
rentabiliser la production
⇒ produire du logiciel de qualit´ e, rationaliser le d´ evelopperment, rentabiliser les investissements
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement par un prestataire
1
ajouter une dimension production
2
ajouter de nouvelles ´ etapes formations
maintenance des applications (corrective, ´ evolutive)
3
prendre en compte d’autres pr´ eoccupations
4
rentabiliser la production
⇒ produire du logiciel de qualit´ e, rationaliser le d´ evelopperment, rentabiliser les investissements
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement par un prestataire
1
ajouter une dimension production
2
ajouter de nouvelles ´ etapes
3
prendre en compte d’autres pr´ eoccupations
4
rentabiliser la production
⇒ produire du logiciel de qualit´ e, rationaliser le d´ evelopperment, rentabiliser les investissements
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement par un prestataire
1
ajouter une dimension production
2
ajouter de nouvelles ´ etapes
3
prendre en compte d’autres pr´ eoccupations
gestion des ressources humaines (formations, carri` eres) gestion commerciale ou interne des applications
4
rentabiliser la production
⇒ produire du logiciel de qualit´ e, rationaliser le d´ evelopperment, rentabiliser les investissements
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement par un prestataire
1
ajouter une dimension production
2
ajouter de nouvelles ´ etapes
3
prendre en compte d’autres pr´ eoccupations
4
rentabiliser la production
⇒ produire du logiciel de qualit´ e, rationaliser le d´ evelopperment, rentabiliser les investissements
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement par un prestataire
1
ajouter une dimension production
2
ajouter de nouvelles ´ etapes
3
prendre en compte d’autres pr´ eoccupations
4
rentabiliser la production
d´ evelopper en s´ erie (portabilit´ e, ´ evolutivit´ e, g´ en´ eralit´ e) d´ evelopper en partie (r´ eutilisabilit´ e)
automatiser la production
⇒ produire du logiciel de qualit´ e, rationaliser le d´ evelopperment, rentabiliser les investissements
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement par un prestataire
1
ajouter une dimension production
2
ajouter de nouvelles ´ etapes
3
prendre en compte d’autres pr´ eoccupations
4
rentabiliser la production
⇒ produire du logiciel de qualit´ e, rationaliser le d´ evelopperment, rentabiliser les investissements
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e Empilement
Le d´ eveloppement par un prestataire
1
ajouter une dimension production
2
ajouter de nouvelles ´ etapes
3
prendre en compte d’autres pr´ eoccupations
4
rentabiliser la production
⇒ produire du logiciel de qualit´ e, rationaliser le d´ evelopperment, rentabiliser les investissements besoin de m´ ethodes et d’outil de d´ eveloppement besoin de m´ ethodes et d’outil de gestion de projets
= ⇒ une r´ eponse : le G´ enie logiciel
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Plan
1
Introduction2
G´enie logiciel3
Projet informatique4
M´ethode de d´eveloppement5
Qualit´ePascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Le G´ enie logiciel
objectifs
d´ efinition
large spectre : des langages de programmation ` a la gestion d’organisations
soumis ` a l’´ evolution des technologies et des m´ etiers Atelier GL indispensable
´ edition v´ erification
g´ en´ eration automatique documentation
r´ eutilisation personnalisation
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Le G´ enie logiciel
objectifs
mettre en œuvre des moyens pour r´ ealiser du logi- ciel de qualit´ e en respectant des contraintes de coˆ uts.
d´ efinition
large spectre : des langages de programmation ` a la gestion d’organisations
soumis ` a l’´ evolution des technologies et des m´ etiers Atelier GL indispensable
´ edition v´ erification
g´ en´ eration automatique documentation
r´ eutilisation personnalisation
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Le G´ enie logiciel
objectifs d´ efinition
large spectre : des langages de programmation ` a la gestion d’organisations
soumis ` a l’´ evolution des technologies et des m´ etiers Atelier GL indispensable
´ edition v´ erification
g´ en´ eration automatique documentation
r´ eutilisation personnalisation
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Le G´ enie logiciel
objectifs d´ efinition
Le G´ enie Logiciel est l’art de construire indus- triellement du logiciel.
large spectre : des langages de programmation ` a la gestion d’organisations
soumis ` a l’´ evolution des technologies et des m´ etiers Atelier GL indispensable
´ edition v´ erification
g´ en´ eration automatique documentation
r´ eutilisation personnalisation
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Le G´ enie logiciel
objectifs d´ efinition
large spectre : des langages de programmation ` a la gestion d’organisations
soumis ` a l’´ evolution des technologies et des m´ etiers Atelier GL indispensable
´ edition v´ erification
g´ en´ eration automatique documentation
r´ eutilisation personnalisation
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Le G´ enie logiciel
objectifs d´ efinition
large spectre : des langages de programmation ` a la gestion d’organisations
soumis ` a l’´ evolution des technologies et des m´ etiers
Atelier GL indispensable
´ edition v´ erification
g´ en´ eration automatique documentation
r´ eutilisation personnalisation
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Le G´ enie logiciel
objectifs d´ efinition
large spectre : des langages de programmation ` a la gestion d’organisations
soumis ` a l’´ evolution des technologies et des m´ etiers Atelier GL indispensable
´ edition v´ erification
g´ en´ eration automatique documentation
r´ eutilisation personnalisation
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Le G´ enie logiciel
objectifs d´ efinition
large spectre : des langages de programmation ` a la gestion d’organisations
soumis ` a l’´ evolution des technologies et des m´ etiers Atelier GL indispensable
´ edition v´ erification
g´ en´ eration automatique documentation
r´ eutilisation personnalisation
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Evolution du G´ enie logiciel
Langage machine
SGBD relationnels
Entité- Associations
Langages de spécification
Outils d'analyse
Assembleur
Fortran
Algo
Cobol
SGBD
Lisp
Prolog Pascal
Smalltalk
ADA
Langages de conception 1945
1950
1955
1960
1965
1970
1975
1980
1985
1990
XX
Evolution
Langages intégrés ?
?
Bases de connaissances symbolisme
algorithmique traitement
des listes traitement des données maintenance
programmation structurée
systèmes d'information
mécanisme d'inférence réutilisation
abstraction types abstraits modularité généricité
approche descendante
objet sémantique
sémantique
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Plan
1
Introduction2
G´enie logiciel3
Projet informatique4
M´ethode de d´eveloppement5
Qualit´ePascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Projet informatique
Projet d’informatisation =
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Projet informatique
Projet d’informatisation = aspects techniques
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Projet informatique
Projet d’informatisation =
aspects techniques ⇒ m´ ethode de d´ eveloppement
Une m´ ethode est une technique de r´ esolution de probl` emes [Lau86].
Un aspect cl´ e de la m´ ethode est de privil´ egier l’´ etude (l’analyse) avant de commencer ` a concevoir le logiciel.
Il faut bien poser le probl` eme pour bien le r´ esoudre.
Le terme de m´ ethode recouvre plusieurs notions.
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Projet informatique
Projet d’informatisation =
aspects techniques ⇒ m´ ethode de d´ eveloppement philosophie (approche du probl` eme)
d´ emarche (processus) notation (norme, langage) outils
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Projet informatique
Projet d’informatisation =
aspects techniques ⇒ m´ ethode de d´ eveloppement Merise
philosophie (approche du probl` eme) BD relationnelles, Prog structur´ ee d´ emarche (processus)
par niveau, par ´ etapes notation (norme, langage)
E-A-P, Petri, SCOM...
outils
AMCD, WinDesign...
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Projet informatique
Projet d’informatisation =
aspects techniques ⇒ m´ ethode de d´ eveloppement aspects organisationnels
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Projet informatique
Projet d’informatisation =
aspects techniques ⇒ m´ ethode de d´ eveloppement aspects organisationnels ⇒ gestion de projet
La conduite de projet (gestion de projet, management de pro- jet) ”d´ efinit l’environnement n´ ecessaire pour que le projet se d´ eroule dans les meilleurs conditions de coˆ ut, de d´ elais ainsi que de qualit´ e des r´ esultats produits” [MR93].
En plus des m´ ethodes et techniques de d´ eveloppement, des m´ ethodes et techniques de gestion de projet sont mises en œu- vre pour r´ eussir le projet.
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Projet informatique
Projet d’informatisation =
aspects techniques ⇒ m´ ethode de d´ eveloppement aspects organisationnels ⇒ gestion de projet
”La conduite de projet est un processus difficile ` a maˆıtriser car interviennent plusieurs facteurs de risque tels que les coˆ uts et les d´ elais ` a respecter, les technologies ` a maˆıtriser, les ressources humaines ` a g´ erer.” [Vil95].
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Projet informatique
Projet d’informatisation =
aspects techniques ⇒ m´ ethode de d´ eveloppement aspects organisationnels ⇒ gestion de projet
gestion du besoin (d´ efinition, validation, ´ evolution) gestion des ressources et des coˆ uts (planification, suivi, optimisation, capitalisation)
gestion des risques (´ evaluation, suivi, d´ ecision) gestion de la communication entre acteurs gestion de la qualit´ e des r´ esultats produits
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Projet informatique
Projet d’informatisation =
aspects techniques ⇒ m´ ethode de d´ eveloppement aspects organisationnels ⇒ gestion de projet
Projet informatique
gestion du besoin (d´ efinition, validation, ´ evolution) r´ eunions, revues, cahiers des charges
gestion des ressources et des coˆ uts (planification, suivi, optimisation, capitalisation)
humains, mat´ eriels, financiers
gestion des risques (´ evaluation, suivi, d´ ecision) gestion de la communication entre acteurs gestion de la qualit´ e des r´ esultats produits
certification, contrˆ ole qualit´ e
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Projet informatique
Projet d’informatisation =
aspects techniques ⇒ m´ ethode de d´ eveloppement aspects organisationnels ⇒ gestion de projet
→ domaine complexe
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Projet informatique
Projet d’informatisation =
aspects techniques ⇒ m´ ethode de d´ eveloppement aspects organisationnels ⇒ gestion de projet
Dans ce qui suit, on se focalise sur le d´ eveloppement (la m´ ethode au sens large).
La gestion de projet est hors contexte, voir des pointeurs ` a http://www.sciences.univ-nantes.fr/info/perso/
permanents/andre/COURS/cours.html
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Projet - Variantes
Les applications informatiques peuvent se classer en trois cat´ egories majeures :
1
Syst` emes d’information de gestion SIG
2
Syst` emes temps r´ eel STR
3
Syst` emes intelligents, calcul scientifique SI, CS
il y en a d’autres
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Projet - Variantes
Les applications informatiques peuvent se classer en trois cat´ egories majeures :
1
Syst` emes d’information de gestion SIG
2
Syst` emes temps r´ eel STR
3
Syst` emes intelligents, calcul scientifique SI, CS il y en a d’autres
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Projet - Variantes
Les applications informatiques peuvent se classer en trois cat´ egories majeures :
1
Syst` emes d’information de gestion SIG stockage volumineux
nombreux traitements triviaux (consultation, mises-` a-jour) quelques traitements complexes en mise-` a-jour
assurer la coh´ erence des informations
soumis aux ´ evolutions technologiques (distribution, persistance, IHM)
2
Syst` emes temps r´ eel STR
3
Syst` emes intelligents, calcul scientifique SI, CS il y en a d’autres
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Projet - Variantes
Les applications informatiques peuvent se classer en trois cat´ egories majeures :
1
Syst` emes d’information de gestion SIG
2
Syst` emes temps r´ eel STR
3
Syst` emes intelligents, calcul scientifique SI, CS il y en a d’autres
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Projet - Variantes
Les applications informatiques peuvent se classer en trois cat´ egories majeures :
1
Syst` emes d’information de gestion SIG
2
Syst` emes temps r´ eel STR r´ eactivit´ e forte
qualit´ e (sˆ uret´ e, fiabilit´ e...)
traitements souvent simples mais conditions complexes assurer la coh´ erence des ´ ev´ enements (rˆ ole du temps) soumis aux ´ evolutions mat´ erielles (capteurs, actionneurs, environnement)
3
Syst` emes intelligents, calcul scientifique SI, CS il y en a d’autres
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Projet - Variantes
Les applications informatiques peuvent se classer en trois cat´ egories majeures :
1
Syst` emes d’information de gestion SIG
2
Syst` emes temps r´ eel STR
3
Syst` emes intelligents, calcul scientifique SI, CS
il y en a d’autres
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Projet - Variantes
Les applications informatiques peuvent se classer en trois cat´ egories majeures :
1
Syst` emes d’information de gestion SIG
2
Syst` emes temps r´ eel STR
3
Syst` emes intelligents, calcul scientifique SI, CS algorithmes complexes
bases d’information plus ou moins importantes qualit´ e : efficacit´ e
peu soumis aux ´ evolutions technologiques (techniques de programmation, IHM)
il y en a d’autres
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Projet - Variantes
Les applications informatiques peuvent se classer en trois cat´ egories majeures :
1
Syst` emes d’information de gestion SIG
2
Syst` emes temps r´ eel STR
3
Syst` emes intelligents, calcul scientifique SI, CS il y en a d’autres
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Projet - Variantes
Les applications informatiques peuvent se classer en trois cat´ egories majeures :
1
Syst` emes d’information de gestion SIG
2
Syst` emes temps r´ eel STR
3
Syst` emes intelligents, calcul scientifique SI, CS il y en a d’autres
diff´ erents besoins = ⇒ diff´ erentes m´ ethodes
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Plan
1
Introduction2
G´enie logiciel3
Projet informatique4
M´ethode de d´eveloppement5
Qualit´ePascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
M´ ethode de d´ eveloppement (en bref)
M´ ethode =
Mod` eles, produits
+ Processus + Outils
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
M´ ethode de d´ eveloppement (en bref)
M´ ethode =
Mod` eles, produits + Processus
+ Outils
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
M´ ethode de d´ eveloppement (en bref)
M´ ethode =
Mod` eles, produits + Processus
+ Outils
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
M´ ethode de d´ eveloppement (Mod` eles)
Un mod` ele est une interpr´ etation explicite par son utilisateur de l’id´ ee qu’il se fait d’une situation.
Il peut ˆ etre exprim´ e par des math´ ematiques, des symboles, des mots, mais, essentiellement, c’est une description d’entit´ es et de relations entre elles.
Un mod` ele est correct s’il permet de r´ epondre aux questions qu’on se pose.
Un mod` ele est op´ erationnel s’il peut ˆ etre ex´ ecut´ e par une machine.
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
M´ ethode de d´ eveloppement (Mod` eles)
Un mod` ele est une interpr´ etation explicite par son utilisateur de l’id´ ee qu’il se fait d’une situation.
Il peut ˆ etre exprim´ e par des math´ ematiques, des symboles, des mots, mais, essentiellement, c’est une description d’entit´ es et de relations entre elles.
Un mod` ele est correct s’il permet de r´ epondre aux questions qu’on se pose.
Un mod` ele est op´ erationnel s’il peut ˆ etre ex´ ecut´ e par une machine.
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
M´ ethode de d´ eveloppement (Mod` eles)
Un mod` ele est une interpr´ etation explicite par son utilisateur de l’id´ ee qu’il se fait d’une situation.
Il peut ˆ etre exprim´ e par des math´ ematiques, des symboles, des mots, mais, essentiellement, c’est une description d’entit´ es et de relations entre elles.
Un mod` ele est correct s’il permet de r´ epondre aux questions qu’on se pose.
Un mod` ele est op´ erationnel s’il peut ˆ etre ex´ ecut´ e par une machine.
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
M´ ethode de d´ eveloppement (Mod` eles)
Un mod` ele est une interpr´ etation explicite par son utilisateur de l’id´ ee qu’il se fait d’une situation.
Il peut ˆ etre exprim´ e par des math´ ematiques, des symboles, des mots, mais, essentiellement, c’est une description d’entit´ es et de relations entre elles.
Un mod` ele est correct s’il permet de r´ epondre aux questions qu’on se pose.
Un mod` ele est op´ erationnel s’il peut ˆ etre ex´ ecut´ e par une machine.
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
M´ ethode de d´ eveloppement (Mod` eles)
Les ´ el´ ements d’un syst` eme peuvent se classer selon trois aspects majeurs :
1
Structure, donn´ ees = ⇒ Point de vue statique
2
Evolution dans le temps = ⇒ Point de vue dynamique
3
Traitements = ⇒ Point de vue fonctionnel
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
M´ ethode de d´ eveloppement (Mod` eles)
Les ´ el´ ements d’un syst` eme peuvent se classer selon trois aspects majeurs :
1
Structure, donn´ ees = ⇒ Point de vue statique
2
Evolution dans le temps = ⇒ Point de vue dynamique
3
Traitements = ⇒ Point de vue fonctionnel
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
M´ ethode de d´ eveloppement (Mod` eles)
Les ´ el´ ements d’un syst` eme peuvent se classer selon trois aspects majeurs :
1
Structure, donn´ ees = ⇒ Point de vue statique informations
structure contraintes r´ epartition
2
Evolution dans le temps = ⇒ Point de vue dynamique
3
Traitements = ⇒ Point de vue fonctionnel
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
M´ ethode de d´ eveloppement (Mod` eles)
Les ´ el´ ements d’un syst` eme peuvent se classer selon trois aspects majeurs :
1
Structure, donn´ ees = ⇒ Point de vue statique
2
Evolution dans le temps = ⇒ Point de vue dynamique
3
Traitements = ⇒ Point de vue fonctionnel
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
M´ ethode de d´ eveloppement (Mod` eles)
Les ´ el´ ements d’un syst` eme peuvent se classer selon trois aspects majeurs :
1
Structure, donn´ ees = ⇒ Point de vue statique
2
Evolution dans le temps = ⇒ Point de vue dynamique
´
ev´ enements actions
contraintes temporelles concurrence
3
Traitements = ⇒ Point de vue fonctionnel
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
M´ ethode de d´ eveloppement (Mod` eles)
Les ´ el´ ements d’un syst` eme peuvent se classer selon trois aspects majeurs :
1
Structure, donn´ ees = ⇒ Point de vue statique
2
Evolution dans le temps = ⇒ Point de vue dynamique
3
Traitements = ⇒ Point de vue fonctionnel
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
M´ ethode de d´ eveloppement (Mod` eles)
Les ´ el´ ements d’un syst` eme peuvent se classer selon trois aspects majeurs :
1
Structure, donn´ ees = ⇒ Point de vue statique
2
Evolution dans le temps = ⇒ Point de vue dynamique
3
Traitements = ⇒ Point de vue fonctionnel algorithmes
transactions et s´ ecurit´ e assertions (contraintes) parall´ elisme
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Types de sp´ ecification
Les sp´ ecifications peuvent ˆ etre class´ ees selon leur forme ou leur degr´ e de formalisme.
les sp´ ecifications informelles, en langue naturelle, r´ edig´ ees sans contraintes de forme,
les sp´ ecifications standardis´ ees, en langue naturelle, mais avec une structure, un format et des r` egles pr´ ecises (notations, glossaire, index, historique...),
les sp´ ecifications semi-formelles, utilisant un langage de sp´ ecification textuel ou graphique, dot´ e d’une syntaxe pr´ ecise et d’une s´ emantique assez faible),
les sp´ ecifications formelles, exprim´ ees dans un langage ` a syntaxe et s´ emantique pr´ ecises, construites sur une base th´ eorique solide.
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Types de sp´ ecification
Les sp´ ecifications peuvent ˆ etre class´ ees selon leur forme ou leur degr´ e de formalisme.
les sp´ ecifications informelles, en langue naturelle, r´ edig´ ees sans contraintes de forme,
les sp´ ecifications standardis´ ees, en langue naturelle, mais avec une structure, un format et des r` egles pr´ ecises (notations, glossaire, index, historique...),
les sp´ ecifications semi-formelles, utilisant un langage de sp´ ecification textuel ou graphique, dot´ e d’une syntaxe pr´ ecise et d’une s´ emantique assez faible),
les sp´ ecifications formelles, exprim´ ees dans un langage ` a syntaxe et s´ emantique pr´ ecises, construites sur une base th´ eorique solide.
Pascal ANDRE MIAGE
D´eveloppement de logiciel
Introduction G´enie logiciel Projet informatique M´ethode de d´eveloppement Qualit´e
Types de sp´ ecification
Les sp´ ecifications peuvent ˆ etre class´ ees selon leur forme ou leur degr´ e de formalisme.
les sp´ ecifications informelles, en langue naturelle, r´ edig´ ees sans contraintes de forme,
les sp´ ecifications standardis´ ees, en langue naturelle, mais avec une structure, un format et des r` egles pr´ ecises (notations, glossaire, index, historique...),
les sp´ ecifications semi-formelles, utilisant un langage de sp´ ecification textuel ou graphique, dot´ e d’une syntaxe pr´ ecise et d’une s´ emantique assez faible),
les sp´ ecifications formelles, exprim´ ees dans un langage ` a syntaxe et s´ emantique pr´ ecises, construites sur une base th´ eorique solide.
Pascal ANDRE MIAGE
D´eveloppement de logiciel