Introduction Génie logiciel Philippe Dugerdil Génie logiciel «The disciplined application of engineering, scientific and mathematical principles, methods and tools to the economical production of quality software» Watts S. Humphrey Managing the Software Process, Addison-Wesley, 989 23.09.200 2 Objectifs du cours Règlement général des TPs - Rappel. Comprendre la nécessité d un processus de développement et son rôle. 2. Comprendre et mettre en œuvre les trois premières phases du Processus Unifié (Inception, Elaboration, Construction). 75% - de TP rendus est obligatoire pour être admis à l examen de module 4
Avec le logiciel, on peut tout faire! Besoin d un processus: une métaphore utile Écriture d un ouvrage sur commande Se passant à une époque donnée Sur un thème donné Dans un domaine que vous connaissez mal 5 6 Contrainte Délais et couts fixés à l avance, demandant le travail de plusieurs personnes à la fois. Exigences Risques? Fonctionnelles? Non fonctionnelles? Standards de qualité? 7 8 Comment vous y prendriez-vous? Quelle organisation mettre en place? 2
Organiser le flux de travail Organiser quelles tâches? Trigger Task Ressource Livrable Task2 Ressource Livrable Task3 Ressource Livrable Spécification Analyse Conception Implémentation Test Déploiement Maintenance 9 0 La construction de SI un problème de communication Sur la spécification des SI «In fact, we often do not really understand what we want or how to build it until we have finished» [Humphrey W.S. Managing the Software Process. Addison-Wesley, 989] Utilisateur Informaticien 2 3
Le développement logiciel : résoudre un problème mal défini Etapes de la résolution d un problème Quel est le problème Quelles en sont les difficultés Comment le résoudre Comment s affranchir des difficultés Résoudre Résoudre le problème Debuging d un gros programme Interfacer des systèmes Rôle d un processus Mainenance Y2K Développer un Nouveau logiciel 3 4 Caractérisation des projets dans différents domaines industriels Processus classiques Taux de modification / renouvellement Produits de mode SI Systèmes mécaniques Impact sur le processus et la gestion de projet Waterfall 70 s Spirale fin 80 s Iterations contrôlées mi 90 s Agile (XP, SRUM,..) fin 90 s Construction du Génie civil Temps Stabilité des spécifications 5 6 4
Caractérisation des processus de dvt Le modèle Waterfall élevée Specification Capacité à gérer des projets Analyse Conception Implementation basse basse élevée Capacité à répondre rapidement aux changements ou nouvelles demandes des mandants 7 Test 8 Le modèle spirale Le modèle des Iterations contrôlées 9 Source: GridLab EU project IST-200-3233 20 5
Méthodes «Agiles»: valeurs Individual and interactions over process and role Le modèle Agile (XP) Mettre a jour les estimations Lister les caractéristiques Séparer les caractéristiques en taches indép. Working software over comprehensive documentation Executer les tests d acceptation Estimer le travail Customer collaboration over contract negociation Produire une version Définition des priorités Responding to change over following a plan Intégrer le code Choisir une tache et travailler en paires Developper les Caractéristiques Pour passer les tests Ecrire les tests unitaires 2 Se concentrer sur la valeur Éliminer les livrables non logiciels autant que possible (la doc!) 22 SCRUM RUP Product backlog livrable ~2 semaines sprint sprint sprint sprint sprint 3 roles : Product owner, team, Scrum master 3 documents: Product backlog, Spring backlog, Sprint result 3 meetings: Spring planning, daily meeting, Spring review 24 D après: RUP2000, Rational Software Corp, 2000 Rational-IBM 6
Phases, disciplines et activités Activités (tâche), rôle et artefact Workflow Copyright 987-2003 Rational Software Corporation 25 26 D après: RUP2000, Rational Software Corp, 2000 Caractéristiques de RUP Développer par itération Processus basé sur 6 «best practices». Développer le logiciel itérativement. 2. Gérer les spécifications. 3. Utiliser des architectures basées composants. 4. Modéliser le logiciel visuellement. 5. Vérifier la qualité du logiciel en permanence. 6. Contrôler les modifications du logiciel (versions). 27 28 7
Responsable des réservations Directeur Caissier Réservation chambre Suppression réservation Check-in Changement de chambre Prolongation séjour Règlement de la not e Horloge de l'hôtel Lecteur de carte magnétique Centrale de carte de crédit Incréments des minis projets Modéliser le logiciel visuellement. Pour quoi faire? 29 30 UML.le retour! D abord: dialoguer avec le mandant Réservation chambre Ecran de check in Validati onvi ew OccupationVie w Suppression réservation CheckIn displayvalidation() Personne GestionnaireOccupation Occupation nom() adresse() getoccupationfomnameanddate(string) << co nt rol>> Chec k-in Horloge current Responsable des réservations Changement de chambre Prolongation séjour Horloge de l'hôtel Lecteur de carte magnétique $ Singleton nom,date datedebut() datefin() personne() chambre () di splay() Chambre numero() Caissier Règlement de la note Centrale de carte de crédit Dialogue de demande insertion carte display(model) Sejour Reservation Directeur Affichage Interface lecteur cartes enregistre(reservation) client commandes Utilitaires Communication 3 32 8
Responsable des réservations Directeur Caissier Réservation chambre Suppression réservation Check-in Changement de chambre Prolongation séjour Règl ement de la not e Horloge de l'hôtel Lecteur de carte magnétique Centrale de carte de crédit Ecran de check in Dialogue de demande insertion carte display(model) << co nt rol>> CheckIn displayva lid ati on() GestionnaireOccupation ValidationVi ew getoccupationfomnameanddate(string) $ Singleton Horloge nom,date current Sejour OccupationVie w Occupation datedebut() datefin() personne() chambre() Reservation Personne nom() adresse() Chambre numero() Interface lecteur cartes enregistre(reservation) Responsable des réservations Directeur Client GUI Client Web Caissier Ecran de check in Dialogue de demande insertion carte display(model) client Utilitaires Réservation c hambre Suppression réservation << co nt rol>> CheckIn di spla y() displayva lid ati on () GestionnaireOccupation getoccupationfomnameanddate(string) $ Singleton Serveur Web Check-in Changement de chambre Prolongation s éjour Règlement de la note ValidationView Horloge nom,date Affichage Interface flux données Serveur principal Serveur base de données OccupationVie w current Personne Occupation nom() adresse() datedebut() datefin() person ne() chambre() Chambre di splay() numero() Sejour Horloge de l'hôtel Lecteur de carte magnétique Centrale de carte de crédit Reservation commandes Interface lecteur cartes enregistre(reservation) Communication imprimante Validati onvi ew Ecran de check in << co nt rol>> CheckIn displa y() displayvalid ati on() Dialogue de demande insertion carte display(model) GestionnaireOccupation getoccupationfomnameanddate(string) $ Singleton Horlog e nom,date OccupationVie w current Personne Occupation nom() adresse() datedebut() datefin() person ne () chambre() Cha mbre di splay() numero() Sejour Reservati on Client GUI Client Web Interface lecteur cartes enregistre(reservation) Serveur Web Interface flux données Serveur principal Serveur base de données imprimante puis avec le développeur et finalement la mise en œuvre. Affichage client Trait ement commandes Utilitaires Communication Affichage client Utilitaires Trait ement commandes Communication 33 34 Des modèles élaborés dans un processus formalisé dont le suivi peut être certifié. Que faire? ISO 900 Binaire (obtention / échec) Comment faire? Faire CMM (SEI / CMU) 5 niveaux (initial, reproductible, défini, géré, optimisé) Livrer D après: RUP2000, Rational Software Corp, 2000 35 36 9