Académique Documents
Professionnel Documents
Culture Documents
Intervenant
17 17 17 Moyennes 11,7693878 10,5851064 15
15,9 15,8 17 Min 3,7 0,3 5
15,8 15,2 17 Max 17 17 17
15,4 14,7 17
14,7 14,6 17
Organisation
13,6 13 16
13,6 13 16
13,4 12,8 16
13,3 12,2 16
Supports : http://www.dil.univ-mrs.fr/~novelli/GL
12,7 10,6 15
12,2 10,3 15
11,9 10,2 15
11,8 10,1 15
11,5 9,8 15
Projet 1
Sujet : mercredi 18 septembre 2013 Données + Traitements
Rendu : mercredi 2 octobre 2013 avant 12h00
Projet 2
Propriétés Propriétés
Sujet : mercredi 2 octobre 2013
statiques dynamiques
Rendu : mercredi 16 octobre 2013 avant 12h00
Projet 3
Sujet : mercredi 16 octobre 2013
Rendu : mercredi 4 décembre 2013 avant 12h00
Les traitements prennent de plus en plus Les données sont au centre du système et persistantes
d’importance
1
Objectif de l’enseignement
Evolution des approches (4/4)
(1/3)
Systèmes d’Information d’Aide à la Décision Méthodologies permettant de mener à bien un
projet informatique complexe et en équipe
Découpage de problèmes difficiles en plusieurs
petits problèmes plus faciles à traiter
Données + Traitements
La vie d’un logiciel ne se limite pas à la
programmation !
2
Bêtisier (3/6) Bêtisier (4/6)
3
Quelques Etudes (3/4) Quelques Etudes (4/4)
Tous ces constats font que les années 70 voient S’il n’est pas simple d’y remédier, les causes de ces
naître une crise de l'industrie du logiciel dont les dysfonctionnements sont cependant faciles à identifier :
principales raisons sont :
une communication difficile :
le non-respect (augmentation) des coûts
jargon utilisateur versus jargon informatique
le non-respect (augmentation) des délais évolution de la manière de voir un problème
l’inadéquation avec les besoins des utilisateurs réflexion utilisateur pas assez mature
le non-respect des spécifications marché, législation et besoin en perpétuelle évolution
la non-fiabilité addition successive d’imprécision dans la communication
entre les individus d’une équipe
les difficultés d'évolution (la complexité avec le nombre d’intervenants)
S’il n’est pas simple d’y remédier, les causes de ces Influence de la taille du projet
dysfonctionnements sont cependant faciles à identifier :
Complexité croissante
4
Complexité croissante du
Qualité du logiciel
logiciel
Complexité croissante du logiciel Privilégier la qualité à l’efficacité
Systèmes offrant de plus en plus de fonctionnalités La prévention des erreurs coûte des dizaines de fois
Exemple : système d’information BD + SIAD moins cher que leur correction
Systèmes distribués : machines hétérogènes en Démarche qualité : ISO 9126
réseau
Qualité externe vs. Qualité interne
Mutation technologique rapide : langages et
Externe : vision client
environnements de développement, O.S.
Interne : vision développeur
Évolutions des besoins du client en cours de projet
Solutions proposées par le génie logiciel
Séparer les aspects fonctionnels et technologiques
Décomposition en sous-systèmes approche objet
Démarche itérative approche objet
5
Génie Logiciel (3/5) Génie Logiciel (4/5)
Définitions du Génie Logiciel (suite) : Pour résumer, nous dirons que :
D’après MC. Gaudel : Le Génie Logiciel est l’art de La motivation première du Génie Logiciel est la réduction
spécifier, de concevoir, de réaliser et de faire évoluer, des coûts de développement du logiciel.
avec des moyens et dans des délais raisonnables, des Le Génie Logiciel est un ensemble de moyens
programmes, des documentations et des procédures (techniques et méthodologiques) permettant la
de qualité en vue d’utiliser un système informatique pour construction de systèmes informatiques répondant
résoudre certains problèmes à des critères de qualité préalablement définis.
Ou encore… : Le Génie Logiciel est l’art et la science de Sa mise en œuvre implique la prise en compte :
concevoir et de construire, avec économie et élégance, des environnements de développement, avec toute la
des applications, des objets, des frameworks et variété d'outils et d'approches dont on peut disposer,
d’autres systèmes informatiques, qui soient corrects, des méthodes et des techniques de gestion de processus,
robustes, extensibles, réutilisables, sûrs, efficaces, des aspects humains au sein de l'équipe de développement
faciles à maintenir et à utiliser.
des relations que celle-ci entretient avec les commanditaires
et les utilisateurs du produit
Projet : Processus :
Ensemble d’activités organisées permettant de créer un Un processus est un savoir-faire associé à une
produit ou un service unique avec une qualité définie dans discipline (par exemple : le développement de
le cadre d’un budget fixé logiciel)
Il s’agit d’un effort temporaire caractérisé notamment par Un processus est un ensemble structuré :
un début et une fin déterminés d’acteurs (concepteur, chef de projet…)
Par qualité définie, on entend un choix de facteurs de d’activités pour chaque acteur (code, planifier…)
qualité déterminés d’artefacts pour chaque activité (exécutable, planning…)
un artefact est le résultat concret d’une activité
de workflows (un workflow = un ensemble d’activités)
Un processus peut lui-même englober des sous-
processus
6
Terminologie (3/5) Terminologie (4/5)
Amélioration du processus :
Spécifications données, complètes et précises
La compétition internationale force les organisations à
livrer des produits et des services de qualité sans cesse
croissants, dans des délais toujours plus courts et à des
prix qui correspondent aux attentes du marché
Analyse descendante décomposition fonctionnelle
Les processus permettent de définir des façons de faire et
d'améliorer constamment ces définitions pour qu'elles
Implémentation un seul langage de programmation
agissent comme levier pour accroître la satisfaction de
la clientèle et la compétitivité d’une entreprise
Plus un processus est mature et maîtrisé, plus ces Validation jeux d’essais
objectifs peuvent être atteints
1 2
Analyse du système Conception Analyse des besoins et spécifications 15 % 6%
Analyse / conception 25 % 5%
Tests et validation 15 % 15 %
Maintenance
Maintenance 15 % 67 %
« programming in the large »
7
Cycle de Vie (1/5) Cascade : inconvénients
8
Spirale Spirale : avantages
9
Méthodes (2/2) METHODES AGILES (1/4)
… C’est l’émergence des méthodes agiles : Objectifs des méthodes agiles :
RAD (Rapid Application Development) Augmenter le niveau de satisfaction client
UP (Unified Process), RUP (Rational Unified Process), 2TUP (Two Faciliter le travail de développement
Tracks Unified Process)
Performance
ASD (Adaptative Software Development)
Qualité
DSDM (Dynamic Software Development Method)
SCRUM (mêlée au rugby) Méthodes adaptatives versus prédictives
sont des approches par la structure et par les besoins Les pratiques des méthodes agiles :
Souvent anciennes, admises et testées "bon sens"
Des approches plus radicales telles que :
Mais en général oubliées "pas de mise en pratique"
XP (eXtreme Programming)
Un exemple significatif : les pratiques relatives aux tests
Crystal Clear
sont pilotées par les besoins et se veulent totalement
incrémentielles et itératives
10
RAD (2/7) RAD (3/7)
RAD – Principe n°1 : Utilisation d’outils performants RAD – Principe n°2 : Forte implication des utilisateurs
d’aide au développement Les utilisateurs ont la responsabilité de la production
AGL de conception de certaines tâches
AGL de réalisation Exemple : expression des besoins
L4G, langages de haut niveau, générateurs de code Comportement "positif" des utilisateurs
Outils de tests participatifs, disponibles, engagés
Poste individuel de travail Utilisateurs centrés sur :
Réseau et travail de groupe les besoins strictement nécessaires
la simplicité des règles de gestion
l'approche "délai"
RAD – Principe n°3 : Equipe informatique de gagneurs RAD – Principe n°4 : Cycle de vie raccourci
L’équipe doit être : Approche de prototypage
réduite Parallélisation
compétente de la conception
soudée de la réalisation
motivée Livraison par versions successives
outillée
11
UP (1/2) UP (2/2)
Processus unifié :
Principes d’UP :
Développé à l’origine par Philippe Kruchten et Ivar 1. Proximité avec les utilisateurs et pilotage par les cas
Jacobson sous la coupe de la société Rational d’utilisation
Le processus unifié est un ensemble structuré de "bonnes 2. Pratique de la modélisation graphique des exigences
pratique" issues de l’expérience 3. Centré sur l’architecture
Le terme Unifié fait d’ailleurs référence à cet aspect fusion 4. Fondé sur la production et l’assemblage de composants
entre les pratiques issues de méthodes antérieures. 5. Développement itératif et incrémental du logiciel (chaque fin
d’itération doit générer un prototype exécutable)
6. Gestion des besoins et des exigences (traçabilité)
7. Souci permanent de la qualité (recettes fréquentes de versions
intermédiaires, automatisation des tests, revus par les pairs)
8. Gestion des risques permanente
9. Gestion des demandes de changement
ASD DSDM
SCRUM XP
Principes d’XP :
SCRUM, 3 phases itérables : initiation, sprint, clôture un représentant du client est intégré à plein temps dans l'équipe
1. La phase d’Initiation permet notamment de définir les backlogs : de développement afin d'atteindre une réactivité optimale, aussi
listes de tâches à réaliser, classées par ordre de priorité bien pour la définition du besoin que pour la validation des
2. La phase de Sprint (30 jours environ), guidée par les backlogs livraisons,
intègre le développement à proprement parler. Il s’agit d’une la programmation se fait en binôme ce qui permet l'appropriation
période durant laquelle l’équipe est isolée de toute influence de l'ensemble du code par l'équipe de développement et le
extérieure, (aucun travail supplémentaire, ni aucune partage de l'expertise,
modification du backlog ne peuvent être ajoutés à un sprint en
l'écriture des tests unitaires se fait avant l'étape de codage, ce
cours).
qui améliore leur efficacité et donc la qualité du code,
3. Le Scrum : chaque jour et pendant 30 min, toute l’équipe
l'intégration est continue dès le début du projet, ce qui supprime
participe à une réunion pour partager les connaissances
les risques associés à cette discipline,
acquises, faire un point sur l’avancement, fournir au
management une visibilité sur la progression du projet. des livraisons fréquentes permettent d'accélérer la convergence
du produit par rapport aux besoins des utilisateurs.
4. Contrôle du processus omniprésent via l’évaluation de quatre
variables : coût, planning, fonctionnalités et qualité.
12
Facteur de qualité PHASE DE LANCEMENT (1/2)
Antoine MARTIN
Ordre du jour de la réunion de lancement :
1) Acteurs tour de table, présentation, coordonnées des Chef de projet de la société M1I
différents acteurs de la MOA et de la MOE Expert fonctionnel
2) Enjeux enjeux généraux, attentes client, indicateurs de
Interlocuteur privilégié
qualité/validation à mettre en place
3) Pilotage comité de pilotage, suivi de projet, protocole de 04 91 ?? ?? ??
communication, reporting, gestion des risques 06 ?? ?? ?? ??
4) Production planning, livrables, cadrage du périmètre
antoine.martin@société.fr
5) Budget échéancier, gestion des évolutions
6) Actions plans d’actions, disponibilité des différents
intervenants (vacances…), dates des prochaines réunions
7) Divers tour de table des questions et remarques des
différents intervenants
13
PILOTAGE (2/2) PRODUCTION
Reporting : Planning :
Planning prévisionnel sous MS-Project par exemple
Suivi et avancement de l’activité,
Tableaux récapitulatifs des dates clés
Suivi des livraisons, suivi financier,
Livrables :
Suivi des anomalies et des évolutions …
Liste des livrables
Gestion des risques : Pour chaque livrable :
Description du processus Responsable et date butoir de la livraison
BUDGET ACTIONS
Echéancier de paiement : Plans d’actions :
Descriptif des prestations Etablir un tableau des actions (tâche, responsable, date butoir,
état)
Pour chaque prestation :
Ce tableau devra intégrer toutes les tâches de démarrage du
Date de facturation, date de règlement projet (rédaction du PAQ, mise à jour du planning, réunions de
Exemple : Recette du lot 1, 29/09/2006, 29/12/2006 travail/précadrage, fournitures de documents ou de livrables,
installation de postes de travail, formation…)
Protocole de gestion des évolutions :
Disponibilité des intervenants
Emission d’une demande d’évolution ou d’une déclaration
Etablir un calendrier sur toute la durée du projet avec les dates
d’anomalie
d’indisponibilité (vacances, formation, contraintes…) des
Qualification d’une évolution (si déclarée anomalie) différents interlocuteurs présents
Emission d’un devis Date des prochaines réunions
Validation d’un devis Etablir un tableau des prochaines réunions sur 2 mois minimum
Intégration d’une évolution au planning avec le type de la réunion, la date, l’heure et le lieu
Divers :
7 idées principales à retenir en terme de gestion de projet :
Cette rubrique a pour objectif essentiel de permettre aux
Toujours garder à l’esprit les enjeux du projet
différents intervenants de s’exprimer écouter
Favoriser un comportement positif et participatif :
Elle peut permettre notamment de relever des inquiétudes Sensibiliser, mobiliser, impliquer les utilisateurs
de la part du client le rassurer Motiver, faire participer, faire "grandir" l’équipe projet
Elle peut permettre également de lever des risques ou Piloter par les risques et les anticiper
problèmes non identifiés établir un plan d’actions pour Évaluer en permanence et de manière rigoureuse le processus :
palier le risque ou résoudre le problème en terme de coût (suivi financier)
en terme de délai (suivi de l’avancement)
en terme d’adéquation (recette utilisateur)
en terme de qualité via des indicateurs quantifiables
Tracer toutes les décisions et gérer les évolutions
Écouter… et agir
Utilisation d’outils
14
CONCLUSION (2/4) CONCLUSION (3/4)
6 idées principales à retenir en terme de conception : 4 idées principales à retenir en terme de réalisation :
Utilisation d’outils Mettre en œuvre les best-practices de programmation :
Favoriser les solutions simples
Conception selon 2 axes : fonctionnel et technique
Mettre en œuvre les principes de développement objet
Points de synchronisation entre ces 2 axes Mettre en œuvre les patterns de conception
Favoriser une architecture de composants Mettre en vigueur les normes de développement
Modélisation visuelle (UML) Capitaliser et mutualiser l’expérience :
Travailler en binôme
Favoriser les solutions simples
Procéder à des réunions de capitalisation (SCRUM)
Documenter suffisamment et régulièrement :
Documenter à mesure
Documenter les changements et les ajouts
Utiliser les outils appropriés :
Outils de développement, frameworks…
Outils de gestion de configuration
Ce que doit faire le système (côté client) « Quoi faire » : comprendre et modéliser le
Document précis spécifiant les fonctionnalités métier
attendues Réflexion métier hors de toute considération technique
Base du contrat commercial avec le client Reste un support de discussion avec le client /
Document facile à comprendre par le client / utilisateur
utilisateur Premier modèle du système (niveau métier)
Exemple : définition de la frontière du système, Identifier les éléments intervenants (hors acteurs) et
description des fonctionnalités du système avec dans le système : fonctionnalités, structures et
scénarii, interactions : enchaînements d’écran relations, états par lesquels ils passent suivant
cas d’utilisation de Jacobson certains événements (diagramme de classes, de
collaboration)
Les spécifications ne sont jamais complètes
ni définitives L’analyse n’est jamais complète mais elle doit
être juste
Evolution du domaine, besoins supplémentaires…
15
Conception Implémentation
Comment faire le système : choix techniques Souvent trop de temps consacré au codage au
Choix d’une architecture technique (matériel, détriment des phases d’analyse et de conception :
logiciel) suivant certaines priorités (facteurs mauvaise pratique parfois très coûteuse…
qualités : robustesse, efficacité, portabilité…) Savoir user de la réutilisation de composants,
Expertise informatique : hors compréhension du voire d’outils de génération de code (mise en
client place automatique du squelette du code à partir
Modèle de l’architecture logicielle du système du modèle système)
Décomposition en sous-systèmes : application
(interfaces), domaine (métier) et infrastructure l’activité de développement sera de plus en plus
(implémentation) tournée vers la
Permet la définition des phases d’implémentation, réutilisation de composants existants
de validation et de maintenance
Validation Maintenance
16