Le processus du logiciel - Université technique de Sofia

Download Report

Transcript Le processus du logiciel - Université technique de Sofia

Le processus du logiciel
Quel est le cycle de vie d’un logiciel et
ses modèles?
Le contenu est basé aux transparents du 7ème édition
de «Software Engineering» de Ian Sommerville
B.Shishedjiev - Génie logiciel
1
Le processus de logiciel
• Activités
– Spécification – qu’est ce que le logiciel doit faire et les
contraintes posées au développement
– Développement - production logiciel
– Validation – vérification si le logiciel est celui qui est
attendu du client.
– Evolution – modification du logiciel en accordance
avec les besoins.
B.Shishedjiev - Génie logiciel
2
Modèles génériques
• Cascade
• Développement évolutif
• Basé à l’assemblage de composants
B.Shishedjiev - Génie logiciel
3
Cascade
Définition des
besoins
Conception
Implementation
et test des
modules
Intégration et test du
système
Exploitation et
maintenance
B.Shishedjiev - Génie logiciel
4
Cascade
• Problèmes
– Il est difficile de séparer les étapes
– On peut l’utiliser quand les besoins sont bien définis
et ils sont stables.
• Avantages
– Bien documenté à chaque phase
• Désavantages
– Rigide (on ne peut pas de répondre au besoins
nouveaux ou modifiés des clients)
B.Shishedjiev - Génie logiciel
5
Processus évolutif
Aperçu de
description
Spécification
Version initiale
Développement
Versions
intermédiaires
Validation
Versions
finale
B.Shishedjiev - Génie logiciel
6
Processus évolutif
• Problèmes
– Manque de visibilité
– Mauvaise structure
– Exige des qualités spéciales des programmeurs
• Application
– Systèmes de petite et moyenne taille
– Parties de grands systèmes
– Systèmes de courte vie.
B.Shishedjiev - Génie logiciel
7
Développement par composants
Spécification
des besoins
Analyse des
composants
Conception avec
réutilisation
B.Shishedjiev - Génie logiciel
Modification
des besoins
Développement
et intégration
Validation
8
Processus itérative
• Approches
– Livrer par incréments
– Développement spirale
B.Shishedjiev - Génie logiciel
9
Livrer par incréments
Définir l’aperçu
des besoins
Développer un
incrément
Affecter les besoins
aux incréments
Valider
l’incrément
B.Shishedjiev - Génie logiciel
Conception de
la architecture
Intégrer
l’incrément
Valider
le système
10
Développement spirale
B.Shishedjiev - Génie logiciel
11
Développement spirale
• Secteurs
–
–
–
–
Préciser les objectifs
Définir et minimiser le risque
Développement et validation
Planifier l’itération suivante
B.Shishedjiev - Génie logiciel
12
Activités – Encore une fois
• Spécification des besoins– qu’est ce que le
logiciel doit faire et les contraintes posées au
développement
• Développement - production du logiciel
• Validation – vérification si le logiciel est celui qui
est attendu du client.
• Evolution – modification du logiciel en
accordance avec les besoins
B.Shishedjiev - Génie logiciel
13
Le processus de définir les besoins
Etude de
faisabilité
Trouver les besoins
et analyse
Spécification
des besoins
Validation
des besoins
Rapport de
faisabilité
Modèles du
système
Besoins d’usager
et du système
Document des
besoins (Cahier
de charge)
B.Shishedjiev - Génie logiciel
14
Conception et implémentation
• C’est le processus de convertir la spécification
en un exécutable logiciel.
• Conception – conception de la structure du
logiciel qui réalise la spécification
• Implémentation – Traduit la structure en un
programme exécutable.
B.Shishedjiev - Génie logiciel
15
Conception
Activités de la conception
Spécification
des besoins
Conception de
l’architecture
Spécification
abstraite
Conception de
l’interface
Conception des
composants
Conception de
la structure
des données
Conception des
algorithmes
Architecture
du système
Spécification
du logiciel
Spécification de
l’interface
Spécification
des composants
Spécification
des données
Spécification
des algorithmes
Produits du projet
B.Shishedjiev - Génie logiciel
16
Modèles graphiques
•
•
•
•
•
•
Modèle objet
Modèle des séquences
Modèle de transition d’états
Modèle structural
Modèle des flux de données
Modèle des activités
B.Shishedjiev - Génie logiciel
17
Programmer et déboguer
• Programmation est un act
individuel.
• Déboguer
Localiser
l’erreur
Conception
la correction
B.Shishedjiev - Génie logiciel
Correction
Test
programme
18
Validation
• Test des composants
• Test du système
• Test acceptant
Test
composants
Test
système
B.Shishedjiev - Génie logiciel
Test
acceptant
19
Validation
Spécification
des besoins
Spécification
du système
Test
acceptant
Projet
détaillé
Plan du test
d’intégration
sous-système
Plan du test
d’intégration
système
Plan du test
acceptant
Услуга
Conception
du système
Test
d’intégration
système
B.Shishedjiev - Génie logiciel
Test du code
des programmes
et composants
Test
d’intégration
sous-système
20
Evolution
Définir les
besoins
Evaluer les systèmes existants
Systèmes
existants
B.Shishedjiev - Génie logiciel
Proposer
changements
Modifier
les systèmes
Système
nouveau
21
Processus de développement unifié
• Rational Unified Process (RUP)
• Perspectives
– Dynamique – les phases dans le temps
– Statique – les activités du processus
– Pratique – les bonnes paratiques
• Phases
–
–
–
–
création (inception) – les faits pour le système et les profits
élaboration – comprendre le domaine et l’architecture
réalisation (construction) – conception et implémentation
passage (transition) – deployer dans l’environnement
opérationnel
B.Shishedjiev - Génie logiciel
22
Processus de développement unifié
P has e i terati on
Incepti on
Elaborati on
B.Shishedjiev - Génie logiciel
Cons tructi on
Transi tion
23
CASE outils
CASE
technology
Tools
Editors
Compilers
Workbenches
Multi-method
workbenches
Integ rated
environments
File
comparators
Analysis and
design
Pr ogramming
Single-method
workbenches
B.Shishedjiev - Génie logiciel
En vironments
Process-centred
environments
Testing
General-purpose
workbenches
Language-specific
workbenches
24
Gestion du projet
• Contraintes
– Le temps
– Le budget
– Le personnel
• Propriétés distinctes
–
–
–
–
Intangible
Exceptionnellement souple (flexible)
Pas standardisé
Unique
B.Shishedjiev - Génie logiciel
25
Activités de la gestion
•
•
•
•
•
•
Ecrire une proposition
Planification et emploi de temps
Calculer les coûts
Suivi et révisions
Sélection et évaluation du personnel.
Ecrire des présentations et rapports.
B.Shishedjiev - Génie logiciel
26
Planification du projet
• C’est une tâche qui est ce déroule du début à la
fin.
• On peut développer plusieurs autre plans qui
aide le plan principal qui concerne l’emploi de
temps et le budget.
–
–
–
–
–
Plan de qualité
Plan de validation
Plan de gestion de configuration
Plan de maintenance
Plan de qualification du personnel
B.Shishedjiev - Génie logiciel
27
Processus de planification
Déterminer les contraintes du projet
Faire évaluation initiale des paramètres du projet
Définir les étapes importantes et leur produits
while le projet n’est pas encore fini or est cancellé loop
Dessine l’emploi de temps
Initier les activités en accord avec l’emploi de temps
Attendre (un certain temps)
Réviser le progresse du projet
Réviser l’évaluation des paramètres du projet
Modifier l’emploi de temps
Renégocier les contraintes et les produits
if ( un problème est apparu ) then
Initier une étude technique et une possible révision
end if
end loop
B.Shishedjiev - Génie logiciel
28
Structure du plan du projet
•
•
•
•
•
•
•
Introduction.
Organisation du projet
Analyse du risque.
Besoins de ressources de matériel et de logiciel.
Décomposition du travail.
Emploi de temps.
Mécanismes de suivi et rapporter.
B.Shishedjiev - Génie logiciel
29
Emploi de temps
• Décomposer le projet en tâches et évaluer le
temps et les ressources exigés pour accomplir
chaque tâche.
• Organiser les tâches en parallèle pour optimiser
l’usage du personnel.
• Minimiser le dépendances pour éviter les retards
causés par une tâche qui attend une autre de
finir.
B.Shishedjiev - Génie logiciel
30
L’emploi de temps
Déterminer les
activités
Déterminer les
dépendances
Evaluer ressources
pour les activités
Nommer du monde
pour les activités
Faire les tableaux
et graphismes
Les graphiques d’activités
Besoins du logiciel
• Problèmes
– Productivité n’est pas proportionnelle au nombre de
gens accomplissent une tâche. Ajout du monde va
créer des problèmes de communication
– L’inattendu arrive toujours. On doit avoir toujours un
peu de réserve.
– C’est trop difficile d’estimer en avant les ressources et
le temps qu’on a besoin de.
B.Shishedjiev - Génie logiciel
31
Dépendances
Activité
Durée (jours)
T1
8
T2
15
T3
15
T4
10
T5
10
T2, T4 (M2)
T6
5
T1, T2 (M3)
T7
20
T1 (M1)
T8
25
T4 (M5)
T9
15
T3, T6 (M4)
T10
15
T5, T7 (M7)
T11
7
T9 (M6)
T12
10
T11 (M8)
B.Shishedjiev - Génie logiciel
Dépendances
T1 (M1)
32
Réseau de Petri
8 day s
1 4 /7 /0 3
15 da y s
M1
T3
15 da y s
T9
T1
5 day s
4 /8/03
T6
M4
2 5 /7 /0 3
4 /7 /0 3
star t
M3
2 5 /8/03
M6
7 day s
2 0 day s
15 day s
T7
T2
25 /7 /0 3
10 da y s
M2
T4
T11
10 day s
M7
T5
5 /9/03
11 /8/03
T10
1 8 /7 /0 3
M8
15 da y s
10 da ys
T12
M5
2 5 day s
Finish
T8
19 /9/03
B.Shishedjiev - Génie logiciel
33
Diagramme des activités
4 /7
11 /7
18 /7
2 5 /7
1 /8
8 /8
1 5 /8
22 /8
2 9 /8
5 /9
12 /9
1 9 /9
Star t
T4
T1
T2
M1
T7
T3
M5
T8
M3
M2
T6
T5
M4
T9
M7
T10
M6
T11
M8
T12
Finish
B.Shishedjiev - Génie logiciel
34
Diagramme de Gant
4 /7
Fred
1 1 /7
18 /7
2 5 /7
1 /8
8 /8
15 /8
2 2 /8
2 9 /8
5 /9
1 2 /9
19 /9
T4
T8
T11
T12
Jan e
T1
T3
T9
Ann e
T2
T6
Jim
Mary
T10
T7
T5
B.Shishedjiev - Génie logiciel
35
Gestion des risques
• Qu’est ce que c’est risque?
La probabilité que quelque circonstances défavorables
vont arriver
• Types de risque
– De projet – affecte l’emploi de temps ou les
ressources
– De produit – affecte la qualité et le comportement du
logiciel
– D’organisation – affecte le l’organisation
B.Shishedjiev - Génie logiciel
36
Gestion des risques
• Identification de risque
• Analyse de risque
– Estimer la probabilité et conséquences;
• Planifier le risque
– Plans d’éviter et minimiser les effet du risque;
• Suivi du risque
B.Shishedjiev - Génie logiciel
37
Gestion des risques
Identification des
risques
Analyse
Liste de risques
potentiels
Liste prioritaire
des risques
B.Shishedjiev - Génie logiciel
Planifier
Suivi
Plans pour
éviter les risques et
d’urgence
Estimer le risk
38
Gestion des risques
• Identification du risque
–
–
–
–
–
Technologiques
Personnel.
Organisation.
Besoins.
Estimation.
• Analyse – La probabilité et les effets du sinistre
– Probabilité – très basse, basse, modérée, haute, très
haute.
– Effets – catastrophique, sérieux, tolérable,
insignifiant.
B.Shishedjiev - Génie logiciel
39
Gestion des risques
• Planifier – pour chaque risque
– Stratégie d’éviter le risque – diminuer la probabilité
– Stratégie de minimisation – minimiser l’effet du
sinistre
– Plan d’urgence – quand l’événement arrive qu’est ce
qu’on doit faire.
• Suivi
– Estimer chaque risque par périodes réguliers pour
voir si la probabilité a changé.
– Estimer les effets de chaque risque
– Ne pas voir peur de discuter les problèmes
B.Shishedjiev - Génie logiciel
40