Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Équipe de
développement
Langage de
Modélisation Processus unifié
Introduction
Un tel langage doit être utilisé dans le cadre d'un processus logiciel
complet.
Performance
Les logiciels doivent satisfaire aux contraintes de temps d'exécution
Solutions :
- Logiciels plus simples;
- Veiller a la complexité des algorithmes;
- Machines plus performantes.
Portabilité
Un même logiciel doit pouvoir fonctionner sur plusieurs machines;
Solutions :
- Rendre le logiciel indépendant de son environnement d'exécution;
- Machines virtuelles.
Génie Logiciel
2.2. Qualités attendues d’un logiciel
Réutilisabilité
On peut espérer des gains considérables car dans la plupart des
logiciels :
- 80 % du code est du « tout venant » qu'on retrouve a peu prés
partout;
- 20 % du code est spécifique;
Solutions :
- Abstraction, généricité (ex : MCD générique de réservation);
- Construire un logiciel a partir de composants prêts a l'emploi.
Facilité de maintenance
Un logiciel ne s'use pas;
Pourtant, la maintenance prend une très grosse partie des efforts
de développement.
Génie Logiciel
2.2. Qualités attendues d’un logiciel
Maintenance corrective
Corriger les erreurs : défauts d'utilité, d'utilisabilité, de fiabilité...
- Identifier la défaillance, le fonctionnement;
- Localiser la partie du code responsable;
- Corriger et estimer l'impact d'une modification.
Remarques
- La plupart des corrections introduisent de nouvelles erreurs;
- Les coûts de correction augmentent exponentiellement avec le
délai de détection;
- La maintenance corrective donne lieu a de nouvelles livraisons.
Génie Logiciel
2.2. Qualités attendues d’un logiciel
Maintenance adaptative
Ajuster le logiciel pour qu'il continue a remplir son rôle compte
tenu du l‘évolution des :
- Environnements d'exécution;
- Fonctions à satisfaire;
- Conditions d'utilisation.
Ex : changement de SGBD, de machine…
Donc:
Les activités logicielles doivent être réalisées rigoureusement à travers :
Suivi de processus adaptés;
Utilisation correcte des techniques adaptés.
Le Génie Logiciel
2.4. Principes du génie logiciel
Principe 2 : la décomposition en sous-problèmes
Dans le but de :
Décomposer les problèmes pour n’en traiter qu’un seul à la fois;
Simplifier les problèmes (temporairement) pour aborder leur
complexité progressivement.
Le Génie Logiciel
2.4. Principes du génie logiciel
Principe 3 : la modularité
C’est une instance cruciale du principe de décomposition des
problèmes.
On recherche
Faible couplage
Forte cohésion
Le Génie Logiciel
2.4. Principes du génie logiciel
Principe 4 : l’abstraction
%& # '
Etude de faisabilité
Déterminer si le développement est faisable, compte tenu de
attentes et de la difficulté de développement.
Etude de marché : déterminer s'il existe un marché potentiel pour
le produit.
Les étapes d’un cycle de vie d’un logiciel
Spécification
Déterminer les fonctionnalités que doit posséder le logiciel et
leurs contraintes
Collecte des exigences : obtenir de l'utilisateur ses exigences
pour le logiciel;
Analyse du domaine : déterminer les tâches et les structures
qui se répètent dans le problème.
Les étapes d’un cycle de vie d’un logiciel
Non
Pourquoi ?
Les étapes d’un cycle de vie d’un logiciel
! "
Approches
formelles
Organisation du projet
Déterminer comment on va développer le logiciel
Analyse des coûts : établir une estimation du prix du projet;
Planification : établir un calendrier de développement;
Assurance qualité du logiciel : déterminer les actions qui
permettront de s'assurer de la qualité du produit fini;
Répartition des tâches : hiérarchiser les tâches et sous-tâches
nécessaires au développement du logiciel.
Les étapes d’un cycle de vie d’un logiciel
Conception
Activité destinée à produire une solution à un problème
Déterminer la façon dont le logiciel fournit les différentes
fonctionnalités recherchées
Conception générale
Conception architecturale : déterminer la structure du
système;
Conception des interfaces : déterminer la façon dont les
différentes parties du système agissent entre elles.
Conception détaillée : déterminer les algorithmes pour les
différentes parties du système.
Les étapes d’un cycle de vie d’un logiciel
Implémentation (Codage)
Activité plus traditionnelle de programmation ou
d’implémentation du résultat de la conception dans un langage
exécutable (ou plusieurs langages).
Il s’agit du codage dans un langage de programmation, càd de la
traduction des structures de données et des algorithmes définis dans
la phase de conception.
Les étapes d’un cycle de vie d’un logiciel
Tests
Essayer le logiciel sur des données d'exemple pour s'assurer qu'il
fonctionne correctement
Tests unitaires : faire tester les parties du logiciel par leurs
développeurs;
Tests d'intégration : tester pendant l'intégration;
Tests de validation : pour acceptation par l'acheteur;
Tests système : tester dans un environnement proche de
l'environnement de production;
Tests Alpha : faire tester par le client sur le site de
développement;
Tests Bêta : faire tester par le client sur le site de production;
Tests de régression : enregistrer les résultats des tests et les
comparer a ceux des anciennes versions pour vérifier si la
nouvelle n'en a pas dégrade d'autres.
Les étapes d’un cycle de vie d’un logiciel
Livraison
Fournir au client une solution logicielle qui fonctionne
correctement
Installation : rendre le logiciel opérationnel sur le site du
client;
Formation : enseigner aux utilisateurs a se servir du logiciel;
Assistance : répondre aux questions des utilisateurs.
Les étapes d’un cycle de vie d’un logiciel
Maintenance
Comprenant toutes les actions correctives (maintenance
corrective) et évolutives (maintenance évolutive) sur le logiciel;
Mettre a jour et améliorer le logiciel pour assurer sa productivité;
Pour limiter le temps et les coûts de maintenance, il faut porter
ses efforts sur les étapes antérieures.
Documents produits dans le cycle de vie
Documents produits
Cahier des charges
Est le document le plus important puisqu’il est la référence
obligée de tout le développement;
Il contient le contexte, les besoins du client et leurs
évolutions, en décrivant les fonctionnalités désirées;
Définit les clauses techniques, les clauses de qualité et les
clauses administratives applicables à la fourniture recherchée;
Ecrit en langage informel.
Documents produits dans le cycle de vie
Documents produits
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
Inconvénients
Rigide (on ne peut pas de répondre au besoins nouveaux ou
modifiés des clients)
Modèles de cycle de vie d’un logiciel
Le modèle en V
Modèles de cycle de vie d’un logiciel
Le modèle en V
Avantages
Plus réactif que le modèle en cascade
Forte structuration des étapes de test
Inconvénients
Hypothèse de stricte séparation entre implantation et
spécification
Logiciel délivré seulement à la fin du projet
Modèles de cycle de vie d’un logiciel
Le modèle en incrémental
Modèles de cycle de vie d’un logiciel
Le modèle incrémental
Le modèle en Spirale
Un modèle mixte
A chaque cycle, recommencer : Consultation du client, Analyse des
risques, Conception, Implémentation, Tests, Planification du prochain
cycle
Modèles de cycle de vie d’un logiciel
Le modèle en Spirale
Avantages
Combine les avantages des modèles en cascade /V;
Tient compte de la nature itérative d’un projet;
Une plus grande attention sur la réutilisabilité;
Meilleure élimination des erreurs;
Objectifs de qualité pris en compte et intégré;
Maintenance et développement dans un même contexte.
Inconvénients
Difficile à comprendre sans être expert technique;
Nécessite capacité à bien analyser les risques;
Nécessite gestionnaires compétents.
Modèles de cycle de vie d’un logiciel
Le modèle évolutif
Versions
Aperçu de Développement intermédiaires
description
Versions
Validation finale
Modèles de cycle de vie d’un logiciel
Le modèle évolutif
Inconvénients
Le principal défaut de ce modèle est de ne pas construire un
produit adapté aux besoins du client.
Un travail complexe de configuration et d’adaptation peut être
nécessaire.
Modèles de cycle de vie d’un logiciel
En réalité
Il n’y a pas de modèle idéal car tout dépend des circonstances
Le modèle incrémental est risqué car il ne donne pas beaucoup
de visibilité sur le processus complet.
Souvent, un même projet peut mêler différentes approches,
exemple :
spirale pour les sous-systèmes à haut risque ;
cascade pour les sous systèmes bien connus et à faible risque.
Méthodes de développement logiciels
d’un logiciel.
UP ( Unified Process)
Définition du processus unifié
&'$
( !% !
Itérative
Incrémentale
Pilotée par les cas d’utilisation
Centrée sur l’architecture et la réduction des risques
Produit de qualité
Un bref historique du RUP
Le RUP est une instance spécifique et très détaillée d'un processus plus
générique décrit par Ivar Jacobson, Grady Booch et James Rumbaugh
dans le manuel pédagogique The Unified Software Development
Process.
La méthode RUP (Concept et vocabulaire)
) !
3* ) # # # ) % # -. % - )
5 3 # 4
3 6) # # -. # #
# # 37
3
# # )
# *
# 8#
#
# )
39 # -. ' # :) - # # -. # # -
# ' # 3
- ))
# 4
# ; -$ : <
3 + # -. # #
) 3 # 4 -
La méthode RUP (Concept et vocabulaire)
Rôle
Activité
Analyste
Cas d’utilisation -. # #
Responsable de
Artéfact
paquetage des
Cas d’utilisation
cas d’utilisation
La méthode RUP (Concept et vocabulaire)
&* $ ! # &
Livraison de qualité
Travail en équipe
Principes de RUP
Le processus Unifié Rational décrit comment appliquer les
six directives de l’ingénierie logicielle
Contrôler le
Changement
Principes de RUP
+ ! ,# -
! .
/ 0 !
! !
1 !
Cycle de vie du RUP
+ !
/ 0 !
! !
1 !
2
Ou se situe RUP ?
Les avantages de RUP
Traçabilité à partir des Uses Cases jusqu’au déploiement grâce à
l’utilisation de l’UML,
Approche basée sur l’architecture
Gestion des risques dans les projets, autrement dit les risques sont
atténués dés le début du projet car la planification est complète et
détaillé,
Cadre propice à la réutilisation,
Le changement est mieux géré, car il est possible de recadrer le
projet après une itération.
Vérification constante de la qualité
Les inconvénients de RUP
3$
eXtreme Programming
Une méthode de développement agile, orientée projet
informatique et dont les ressources sont régulièrement
actualisées.
Destinée à accélérer la réalisation des projets de type
flexible.
$ 0
& ! 6 ! ,4 0 5.
Facteur de qualité
Acquisition d’expérience
* % #
• Programmation en binôme
• Responsabilité collective du code
• Règles de codage
• Intégration continue
? # - ) & #
• Client sur site
• Rythme durable
• Livraisons fréquentes
• Planification itérative
Principaux facteurs de succès de XP
8 !
1 % 9
Itératif
développement, tests…
1'$
1'$
* # # * # #
# + / ' #
La méthode 2TUP
$ 0
' #
#
- " #$
# @
'
# # -
- % +
# + /
La méthode 2TUP
La méthode 2TUP
7 ) ) # )
/
#
=) ) / )) # )
)
. ) # -
. - / # . +# # ? #
# + / @ ) #
/ - ) # - , #/
) - - # #
% - -
/ # - ) -. #
# # # # /
) #
La méthode 2TUP
7 ) ) # )
- # #
% +
#") %
+
+
#
- # #
-. # + - + -
)# )#
% %
' # # + /
. # # . # # ) $ -
# ) # # # #
) $ -
- ' # -
" #$ # # #
" #$ ) # #
La méthode 2TUP dans la pratique
! 0
9# - A A
) ' # # + /
* + - !) ' #
+ * -. # #
# + /
#
* !) ' # -
-- # . +# #
- # - > - # # * -. # #
# # - # # + /
La méthode 2TUP dans la pratique
2 :
) -$ -$
# # #/ -" /
* !
)
#
#
# # # #
6) #
-. # #
) -
6)# # > - #
La méthode 2TUP
! 6 %! !
* )# * )# * )#
/ ) - #
-$ -
- ) #D
0 B C # + / ) # #
( # ' # #
-$ / 2 #
( # ' #
)) #-
) # #") * )# (E
Les apports de la méthode 2TUP
Capitalisation de la connaissance
de l’entreprise
Itératif
les prototypes
Les points faibles de la méthode 2TUP
du changement…