MÉTHODES ET OUTILS DE DÉVELOPPEMENT LOGICIEL
|
|
|
- Théophile Marceau
- il y a 10 ans
- Total affichages :
Transcription
1 MÉTHODES ET OUTILS DE DÉVELOPPEMENT LOGICIEL Christine FORCE 1
2 Chapitre 1 INTRODUCTION AUX DÉMARCHES DE DÉVELOPPEMENT LOGICIEL Christine FORCE 2
3 DÉVELOPPEMENT LOGICIEL DÉMARCHES Démarches de recueil des besoins, d'analyse et de conception. Méthodes de construction et d'obtention de la qualité. OUTILS Outils de modélisation, Environnements de développement, AGL, prototypage, gestion de versions et configurations. Langages. GÉNIE LOGICIEL Christine FORCE 3
4 DÉFINITIONS OUTIL UML : Unified Modelling Language, unification (std OMG) des notations de modélisation objet (J. Rumbaugh, G. Booch, I. Jacobson). DÉMARCHES UP : Unified Process (Unified software Development Process) : une démarche générique de développement de logiciel. SCRUM, XP (extreme Programming) : dérivées de UP, développement itératif et adaptatif par étapes courtes (méthodes agiles ). Christine FORCE 4
5 UN LOGICIEL CE N'EST PAS QUE DES PROGRAMMES Documentation Supports de livraison Sources Systèmes Middleware Outils Manuels d'utilisation Christine FORCE 5
6 GÉNIE LOGICIEL : LES ADVERSAIRES Contrats les décideurs Besoins Logiciel Besoins l'informaticien les utilisateurs Christine FORCE 6
7 DEMARCHE DE DEVELOPPEMENT Besoins des Utilisateurs PROCESSUS DE DÉVELOPPEMENT DE LOGICIEL Système Logiciel Besoins des Utilisateurs MODÈLE DESCRIPTIF (Analyse) Comprendre et traduire les besoins MODÈLE PRESCRIPTIF (Technique) Concevoir et construire la solution Système Logiciel Le monde est rempli de choses Modèle d Analyse Modèle Technique Composants logiciels Christine FORCE 7
8 PROCESSUS DE DÉVELOPPEMENT LOGICIEL (Cycle de vie des applications) Processus (démarche) : description des différentes manières d'organiser les activités du développement logiciel. Définir l ordre des travaux pour un projet, Spécifier les modèles et documents (artefacts) à développer et leurs échéances, Attribuer les responsabilités et les rôles dans les équipes, Permettre de suivre et évaluer les produits et les activités du projet. Christine FORCE 8
9 LA CRISE! logiciel livré, mais jamais utilisé avec succès : 47% logiciel payé mais non livré 27% logiciel utilisé mais remanié souvent puis abandonné 19% logiciel utilisé tel que livré 2% logiciel utilisé après modifications 3% Christine FORCE 9
10 LA NOUVELLE CRISE Première crise : 1965 Solutions? (NATO Summer School 1967) : «Software engineering» «Structured programming» «Top-down approaches» Seconde crise : 2000 Solutions? (OMG novembre 2000) : «La Programmation Objets ou la Programmation par Composant ne constituent que des réponses très partielles à la montée en complexité. Seules elles sont aujourd'hui insuffisantes». «MDA : Decouple neutral business models from variable platforms» «Transformations as assets» Christine FORCE 10
11 LES MÉTHODES DE CONCEPTION DE SYSTÈME On distingue deux grandes familles de méthodes : Les méthodes procédurales ou structurées : Séparation des données (base de données) et des traitements qui les manipulent (les programmes) Les méthodes orientées objets : Intègrent au sein d un objet (instance d une classe) les données (attributs) et les comportements (méthodes ou opérations). Les méthodes objets ont remplacé progressivement les méthodes dites structurées. Elles apparaissent à partir des années Christine FORCE 11
12 LES MÉTHODES ORIENTÉES OBJET Chronologie des méthodes OOA: Object Oriented Analysis Shlaer et Mellors OOD: Object Oriented Design Booch OMT : Object Modeling Technique Rumbaugh HOOD : Hierarchical Object Oriented Design Agence Spaciale Européenne OOSE : Object Oriented Software Engineering Jacobson OOA/OOD : Object Oriented Analysis/Object Oriented Design Codd et Yourdon OOM : Orientations Objet dans Merise-1993-Rochfeld Christine FORCE 12
13 TOUT N EST PAS SI SIMPLE Même si les concepts objets sont stables et éprouvés, Et qu ils bénéficient d outils et de langages performants, Même si l approche objets permet de concevoir les logiciels complexes et résistants aux évolutions : L'approche objets est moins intuitive que l'approche fonctionnelle, L'application des concepts nécessite une très grande rigueur, Les langages objets ne guident pas l'utilisation des concepts, Comment distinguer un "bon objet" d'un mauvais? Christine FORCE 13
14 UML, UN LANGAGE POUR : Décrire, visualiser et comprendre le problème, Capturer et utiliser des connaissances pour la résolution du problème, Communiquer avec les utilisateurs et les experts des autres disciplines Spécifier, montrer et construire la solution, Documenter la solution, Quel que soit le domaine d'application. Christine FORCE 14
15 CYCLE DE VIE EN V DU LOGICIEL Demande système validé ETUDE D OPPORTUNITÉ cahier des charges ANALYSE plan de validation simulation, prototypes plan de vérification VALIDATION DU SYSTÉME logiciel testé TESTS FONCTIONNELS CONCEPTION GENERALE plan d'intégration logiciel intégré INTÉGRATION composants testés CONCEPTION DETAILLEE Dossiers de tests TESTS UNITAIRES composants mis au point CODAGE MISE AU POINT Dans ce modèle le principe est simple : chaque phase se termine à une date précise par la production de certains documents ou logiciels. Les résultats sont soumis à une revue approfondie, on ne passe à la phase suivante que s'ils sont jugés satisfaisants. Une étape ne remet en cause que la précédente, ce qui s'avère insuffisant en pratique. Christine FORCE 15
16 CYCLE EN V Pour : Organisation simple et directe, Décomposition du système en sous-systèmes, Vérification ascendante. Contre : But de chaque étape = fabriquer un produit intermédiaire (document papier), soumis à évaluation et utilisé en l état comme point de départ pour l étape suivante. Nombreux documents créés dans un environnement bureaucratique, Rigidité : planification à long terme détaillée, Hypothèse erronée : les exigences sont stables, Validation en fin de cycle (erreurs coûteuses), Effet tunnel (le client ne voit rien avant la fin de la réalisation). Christine FORCE 16
17 ÉVOLUTIONS Processus incrémental : développer par étape, en commençant les fonctions clés. Processus itératif : réaliser les phases du développement en plusieurs itérations. Prototypage : valider les besoins en permettant à l utilisateur de se faire une idée de ce que sera le produit final. Management des exigences : gestion des changements des besoins des utilisateurs. Réutilisation de composants : code, conceptions, descriptions, documents. Gestion des risques : prévoir et éliminer (diminuer) les risques d échecs ou de dysfonctionnement. Christine FORCE 17
18 PROCESSUS UNIFIÉ EN VITESSE LES ACTIVITES SPECIFICATION des exigences Qu'est-ce qu'ils veulent faire avec ce logiciel? J'installe et J'explique ANALYSE du domaine Avec quoi ILS travaillent? DEPLOIEMENT Comment JE vais faire ce logiciel? CONCEPTION de l architecture TESTS Super, ça marche! Chic, JE programme! IMPLEMENTATION Christine FORCE 18
19 PROCESSUS UNIFIE LES PHASES ( s o u s ) P R O J E T Inception (étude d'opportunité) Élaboration Construction Transition Exigences Analyse Conception Implémentation Test Comportement Raffinement global de l'architecture Satisfaction des utilisateurs Christine FORCE 19
20 MÉTHODES AGILES (Scrum, extreme Programming, RAD) Processus plus léger et flexible, Focalisé sur la réalisation, Avec des pratiques réduisant les coûts du changement, Basé sur l expérience des chefs de projet : Travail en équipe, Livraisons fréquentes, Communication accrue avec le client, Relecture et nettoyage du code. Simplicité avec pour règle : "Y're not gonna need it!" Boutons (des pratiques actuelles) tournés jusqu'à 10. Christine FORCE 20
21 Chapitre 2 UML : DIAGRAMMES DE CLASSES Christine FORCE 21
22 DIAGRAMMES DE CLASSES SPECIFICATION DES BESOINS CLASSE A CLASSE AA Diagramme de classes d analyse CLASSE A ANALYSE + A1 : entier - A2 : string # A3: reel Op1 (p1, p2) : string Op2 (p3, p4) : entier Op3 (p6) : reel CLASSE AA +A1 : entier - A2 : string # A3 : reel Op1 (p1, p2) : string Op2 (p3, p4) : entier Op3 (p6) : reel Diagramme de classes Technique Comme la plupart des modèles UML, les diagrammes de classes s utilisent à 2 niveaux CONCEPTION de l architecture IMPLEMENTATION TESTS Christine FORCE 22
23 DIAGRAMME DE CLASSES D ANALYSE Décrire de façon abstraite un ensemble d objets, Factoriser des éléments communs à un ensemble d objets, Décrire le domaine de définition d un ensemble d objets, Identifier les concepts : dresser une liste de choses ou d'idées présentes dans l'environnement (le métier) des utilisateurs, Décrire les relations entre ces concepts (inclusion, utilisation, communication, dérivation ). Christine FORCE 23
24 EXEMPLE : PLANIFICATION 1 Synthèse +Calculer() +CompterRecres() +CompterStatuts() a besoin 1 École +École : string 1 1..* Professeur +Nom : string +Statut : string +AFaire() 1 0..* Impossibilité 1 emploie 1 gère surveille 1..* 1 Planning +localisation : string 1 1..* Récréation +ExisteConflit() Contient Période +Jour : integer +Debut : integer +Fin : string +Recouvrement() Christine FORCE 24
25 DIAGRAMME DE CLASSES TECHNIQUE Il traduit le diagramme du domaine en architecture du logiciel. Il est beaucoup plus détaillé (cf. page suivante). Il donne des informations techniques (méthodes, attributs) Il contient souvent plusieurs modèles : Modèle d Interface Humain Ordinateur (présentation). Modèle application (objets de contrôle, pilotage). Modèle métier (les objets provenant de l analyse). Modèle d'accès aux données (requêtes). Modèle des classes persistantes (modèle relationnel?). Voir un exemple en fin de l étude de cas Christine FORCE 25
26 SYSTÈME DE PLANIFICATION : DIAGRAMME DE CLASSES IMPLÉMENTÉ <<singleton>> EquipeImpl - mecole:string -Professeur:Vecteur -morganisateur:organisateur + ajouterprofesseur() + supprimerprofesseur() + compterprofesseurs() + getprofesseurs() + compterstatuts () + getecole() + setecole() # getorganisateur() # setorganisateur () <<implémente>> <<interface>> Equipe + ajouterprofesseur() + supprimerprofesseur() + compterprofesseurs() + getprofesseurs() + compterstatuts () + getecole() + setecole() 1 * <<implémente>> ProfesseurImpl - mnom : String - Statut : Float - mimpossibilités : Vecteur - msurveillances : Vecteur + ajouterimpossibilité() + supprimerimpossibilité() + compterimpossibilités() + getimpossibilités() + comptersurveillances() + afaire () + getstatut() + setstatut() + getnom() + setnom() # ajoutersurveillance() # supprimersurveillance() # getsurveillance() # surveillanceavecconflit () # impossibilitésavecconflit () # getequipe() # setequipe() <<implémente>> <<interface>> Professeur + ajouterimpossibilité() + supprimerimpossibilité() + compterimpossibilités() + getimpossibilités() + comptersurveillances() + afaire () + getstatut() + setstatut() + getnom() + setnom() <<implémente>> surveille <<Interface>> Serialization <<implémente>> 1 spécifie * <<implémente>> PériodeImpl - Jour :Day - Début : Time - Fin : Time + getjour() + setjour() + getheure() + setheure() + getminute() + setminute() + getdurée() + setdutrée() # chercherrecouvrement () ImpossibilitéImpl <<implémente>> <<Interface>> Impossibilité <<implémente>> UnicastRemote Object COM.cariboulake.util:Observable <<implémente>> + ajouterobserver() + effacerobserver() # setchangé() # avertirobserver() * RécréationImpl + affecterprofesseur() + enleverprofesseur() + estsurveillée() + existeconflit() * PlanningImpl - mlieu : String mrécréations : Vecteur -msurveillée:professeurimpl <<implémente>> <<Interface>> Récréation + affecterprofesseur() + enleverprofesseur() + estsurveillée() + existeconflit() + ajouterrécré() + SupprimerRécré () + compterrécrés() + getrécré () + supprimertoutesrécrés() + getlieu() + setlieu() 1 organise 1 <<singleton>> Organisateur + ajouterplanning() + supprimerplanning() + compterplannings() + getplanning() + compter Récrés() + getequipe() 1 # setequipe() # setchangéetavertir () 1 <<implémente>> <<Interface>> Planning + ajouterrécré() + SupprimerRécré () + compterrécrés() + getrécré () + supprimertoutesrécrés() + getlieu() + setlieu() <<implémente>> <<Interface>> COM.cariboulake.util:RemoteObserver +metajour() * <<Interface>> Organisateur + ajouterplanning() + supprimerplanning() + compterplannings() + getplanning() + compter Récrés() + getequipe() <<Interface>> AffichageSynthèse + rafraîchir() AffichageSynthèseImpl +metajour() + rafraîchir() Planificateur -démarrerserveur () -stopperserveur AffichagePlanning 1 1 Planning. client <<Interface>> Distant <<Interface>> COM.cariboulake.util:ObservableDistant + ajouterobserver() + effacerobserver() Christine FORCE 26
27 PLAN DU CHAPITRE I - CLASSES D ANALYSE II - CLASSES TECHNIQUES III - EXERCICES IV - DIAGRAMMES D'OBJETS Christine FORCE 27
28 I - CLASSES D ANALYSE I - CLASSES D ANALYSE REPRÉSENTATION Classe attributs opérations en analyse on peut indiquer (mais on ne le fait pas toujours) les attributs et les opérations fondamentaux de la classe. nom fonction datenaissance combattre Gaulois exemple Il s agit de décrire les objets du métier de l utilisateur, avec le point de vue et le vocabulaire de cet utilisateur. But : comprendre comment le client travaille et communiquer avec lui (pour vérifier que l on a bien compris). Christine FORCE 28
29 I - CLASSES D ANALYSE ASSOCIATIONS Classe A est associée 4 Classe B Classe A Rôle A Rôle B Classe B Personne travaille pour employeur 4 Société Personne Société employé Au choix : nommage de l association ou nommage des rôles (extrémités) Le nom de l association apparaît en italique sur la ligne qui la symbolise, l usage recommande de choisir une forme verbale active (travaille pour) ou passive (est employé par). Le sens de lecture du nom est indiqué par un triangle ou un signe < ou >. Le rôle décrit comment une classe voit une autre classe, au travers d une association (forme nominale). Christine FORCE 29
30 I - CLASSES D ANALYSE ASSOCIATIONS Parent 1..2 * Enfant établissement Université étudiant Personne employeur enseignant Personne 1..2 parent * enfant Association réflexive Personne Conduire 4 Démarrer 4 Laver 4 Voiture bricoler 4 On peut avoir plusieurs associations entre 2 classes à condition qu elles représentent des concepts différents. Le nommage des rôles prend tout son intérêt lorsque plusieurs associations relient deux classes. Personne propriétaire véhicule Voiture Christine FORCE 30
31 I - CLASSES D ANALYSE MULTIPLICITES 1 * 1..* Classe Classe Classe Exactement 1 Plusieurs (de 0 à n) De 1 à n gaulois 1 * bat Romain conduit Classe optionnel Char m..n Classe Multiplicités Spécifié numériquement tiré par Cheval Exemple Christine FORCE 31
32 I - CLASSES D ANALYSE CLASSES D ASSOCIATION Société * * Personne «classe d association» Emploi salaire Une société emploie plusieurs personnes. Une personne peut être employée par plusieurs sociétés. L attribut "salaire" est porté par l association Exemple de classe d association Les associations plusieurs à plusieurs (*-*) se réifient par des classes d'associations qui permettent de décrire des attributs caractérisant le lien (elles ne modélisent pas des objets). Christine FORCE 32
33 I - CLASSES D ANALYSE ASSOCIATIONS TERNAIRES Professeur 1 1 Salle Professeur 1 1..* Etudiant 1 1 «association ternaire» Cours jour heure 1 Salle Les associations ternaires sont souvent très ambiguës, mais elles servent pour esquisser le modèle, par exemple au début de l analyse. Il faut les transformer en plusieurs associations binaires (en créant des classes d association) * Etudiant Christine FORCE 33
34 ASSOCIATIONS I - CLASSES D ANALYSE Les contraintes expriment les règles de validité, de cohérence ou de sémantique. Une contrainte est une expression entre accolades : {description de la contrainte}. Il existe des contraintes prédéfinies par UML : ordonné, sous-ensemble, ou exclusif (xor). OCL (Object Constraint Language) permet de décrire des contraintes complexes. Homme 0..* élève Personne 0..* délégué {sous ensemble} classe Classe classe est marié à Femme Personne 0..1 Est pacsée à les délégués sont aussi des élèves {ou exclusif} un personne peut être mariée ou pacsée (mais pas les 2) Christine FORCE 34
35 I - CLASSES D ANALYSE ASSOCIATIONS Remplacer une association (agrégation) par un attribut relève de l implémentation, non de la modélisation. On évitera de le faire en analyse pour : Préserver le caractère bidirectionnel de l association. Révéler les cardinalités. Faciliter la compréhension du modèle par les non spécialistes. Préserver l aspect visuel convivial de la représentation. Identifier, grâce au diagramme, l impact que peut avoir le retrait d une classe. Critère : si l on ne peut demander à un élément que sa valeur il s agit d un simple attribut, si l on peut lui poser plusieurs questions, c est un objet. Christine FORCE 35
36 I - CLASSES D ANALYSE GÉNÉRALISATION/SPÉCIALISATION UML emploie le terme de généralisation pour désigner la relation de classification entre un élément général et un élément plus spécifique. La généralisation est souvent réalisée en utilisant la relation d héritage des langages objets. C est une manière de réaliser la classification, mais ce n est pas la seule. La généralisation UML est plus abstraite que l héritage. En italique si abstraite. A la main, on écrit «abstraite» Super- Classe Gaulois Sous-classe 1 Sous-classe 2 Guerrier Druide Barde Christine FORCE 36
37 I - CLASSES D ANALYSE CLASSIFICATION/SPECIALISATION MULTIPLE Une classe peut être spécialisée selon plusieurs critères simultanément. Chaque critère de la généralisation est indiqué par un discriminant. Il permet de spécifier les combinaisons cohérentes de sous classes. Plusieurs sous-classes peuvent partager un même discriminant, elles sont alors disjointes. Une instance dérivée d une super-classe ne peut être instance que d une seule sous classe avec le discriminant commun Discriminant Véhicule Humain Machine Propulsion Milieu {inclusif} A moteur A voile Terrestre Marin Terminator contrainte classification multiple : un objet est instance de plusieurs classes Spécialisation multiple : une classe hérite de plusieurs classes Christine FORCE 37
38 I - CLASSES D ANALYSE CONTRAINTES Plusieurs contraintes peuvent être appliquées aux relations de généralisation : La contrainte {disjoint} ou {exclusif} indique qu une classe descendante d une classe A ne peut être descendante que d une seule sous-classe de A (défaut). La contrainte {chevauchement} ou {inclusif} indique qu une classe descendante d une classe A appartient au produit cartésien des sousclasses de la classe A. Un objet concret est alors construit à partir d une classe obtenue par mélange de plusieurs super-classes. {incomplète} indique une généralisation extensible. {complète} indique qu une instance est forcément d une des sous classes (la super classe est alors abstraite). Christine FORCE 38
39 Produit Produit? I - CLASSES D ANALYSE Animal Produit Normal Produit Dangereux Produit Dangereux Animal QuiMange Chien ChienJaune Herbivore Carnivore Cuisinier Employé Travaille pour 4 Restaurant Serveur Travaille pour 4 Restaurant Maître d Hotel Cuisinier Serveur Maître d Hotel Christine FORCE 39
40 I - CLASSES D ANALYSE PRÉCISIONS En UML, sauf si le contraire est spécifié explicitement, les hypothèses par défaut sont : Héritage multiple : une classe peut hériter de plusieurs superclasses, Classification simple : un objet est instance d'une seule classe, Classification statique : un objet est créé à partir d'une classe et n'en change pas. Toutes les associations de la classe mère s appliquent par défaut aux classes dérivées. Un héritage ne se justifie que si la classe dérivée possède au moins un attribut, une méthode ou une association spécifique. Christine FORCE 40
41 I - CLASSES D ANALYSE COMPOSITION Classe composite Composants Composition : inclusion physique d un objet dans un autre. La durée de vie des composants est identique à celle du composite (si le composite est détruit, les composants aussi). Armorique Livre 1 1..* Village Gaulois Camp Romain 0..* {ordonné} 1..* 1..* page Hutte Tente L élément composite est responsable de la création, de la copie et la destruction de ses composants. Christine FORCE 41
42 I - CLASSES D ANALYSE AGRÉGATION Classe L agrégation ou composition par référence est une forme dégénérée de la composition. C est un lien entre deux classes dont les durées de vie peuvent être indépendantes. L agrégation indique souvent une association impliquant une subordination Camion Equipe Personne est affecté Propriétaire 1..* * 1..* appartient * Chauffeur Joueur immeuble L agrégation est une association transitive Christine FORCE 42
43 I - CLASSES D ANALYSE? Personne 1 Nom Personne +nom Mémoire Gestionnaire DeMémoire Mémoire Gestionnaire DeMémoire Magasin 1 Listede 1..* Clients Client Mémoire - gestionnaire DeMémoire 1..* 1..* Pays Villes Habitants Mémoire ou Gestionnaire DeMémoire Christine FORCE 43
44 II - CLASSES DE CONCEPTION Nom de la classe Attribut : type = valeur initiale Méthode (arguments : type[ = défaut],...) : type de retour signature Nom de la classe + attribut public # attribut protégé - attribut privé ~ att. visible du paquet / attribut dérivé attribut de classe En conception il s agit de représenter l architecture d un logiciel, on montre donc des détails d implémentation. + méthode publique ( ) # méthode protégée ( ) - méthode privée ( ) méthode abstraite ( ) méthode de classe ( ) Visibilité des attributs et des opérations Christine FORCE 44
45 II - CLASSES DE CONCEPTION CONCEPTION : TRADUCTION DES ASSOCIATIONS Les associations se transforment en références (échanges d attributs entre classes) Romain conduit 1 1 Char Romain - identifiantromain : String - nom : String - fonction : String - datenaissance : Date - véhicule : Char + calculage(dn:date) : int + get + set Char - numvéhicule : int - marque : String - dateachat : Date - propriétaire : Romain + addtuning ( ) + get + set Classe d'analyse Classe technique (Conception du logiciel) Christine FORCE 45
46 II - CLASSES DE CONCEPTION CLASSE D ASSOCIATION Société employeur 0..* employé 0..* Personne Société - sociétéid : String - emplois : collection<emploi> + get + set Emploi salaire Emploi - emploiid : String - personne : Personne - société : Société - salaire : Integer + get + set Analyse Conception Personne - personneid : String - emplois : Collection<Emploi> + get + set Christine FORCE 46
47 II - CLASSES DE CONCEPTION ASSOCIATION TERNAIRE Professeur 1 1..* Etudiant Analyse Salle 1 0..* 0..* «association ternaire» Cours jour heure Professeur - professeurid : String - cours : collection<cours> + get + set Etudiant - EtudiantId : String - cours : Collection<> + get + set Salle - salleid : integer - cours : collection<cours> + get + set Cours - coursid : String - salle : Salle - professeur : Professeur - etudiants : Collection<> - jour : Date - heure + get + set Conception Christine FORCE 47
48 Associations navigables dans un seul sens 1 1 Source cible Centurion CampRomain dirige Navigabilité restreinte (on peut aller de la source vers la cible, mais non le contraire) L extrémité du côté de la classe Centurion n est pas navigable : cela signifie que les instances de la classe CampRomain ne stockent d objet du type Centurion. Inversement, la terminaison du côté de la classe CampRomain est navigable : chaque objet centurion possède un attribut de classe CampRomain. Christine FORCE 48
49 EXEMPLE DE NAVIGABILITÉ RESTREINTE II - CLASSES DE CONCEPTION Gaulois +nom +fonction +datenaissance Trophee +type +valeur 1 Analyse gagne > 0..* 0..* Bataille +lieu +date < rapporte Bataille - lieu : String - date : Date - vainqueur : Gaulois - trophees : liste<trophee>. + get + set Gaulois - nom : String - fonction : String - datenaissance : Date - agagne : Collection<Bataille> + getnom () : String + setnom (nom : String). + addbataille (babaorum : Bataille) Trophee - type : String - valeur : Integer + gettype () : String + settype (type : String) + getvaleur() : Integer + setvaleur (valeur : Integer) Conception Christine FORCE 49
50 III EXERCICES BRAIN STORMING Préparer un diagramme de classes montrant au moins 10 relations entre les objets suivants. Inclure les associations, les agrégations et les généralisations. Placer les multiplicités. (a) école, terrain de jeu, proviseur, conseil de classe, salle de classe, livre, élève, professeur, cafétéria, ordinateur, bureau, chaise, porte. (b) château, douve, pont-levis, tour, fantôme, escalier, donjon, plancher, couloir, salle, fenêtre, pierre, seigneur, dame, cuisinier. (c) Automobile, roue, frein, moteur, porte, batterie, silencieux, pot d échappement. Christine FORCE 50
51 PROBLÈME 1 : MEDUSE La médiathèque de l Université des Schtroumfs Erudits (USE) possède des ouvrages. Ils peuvent être des livres, des CD ou des DVD qui existent en plusieurs exemplaires. Les informations à stocker sur un ouvrage dépendent de son type. La médiathèque est gérée par des documentalistes et est fréquentée par des lecteurs. Ces lecteurs sont des étudiants de l USE, des enseignants ou des extérieurs. Ils peuvent emprunter 5 exemplaires au maximum lorsqu ils sont inscrits. Un lecteur ayant commis des abus (rendus en retard, détériorations ) peut être interdit d emprunt (durée décidée par le documentaliste). Pour pouvoir être emprunté, un exemplaire doit être disponible (non emprunté, non réservé). Chaque emprunt a une durée limitée à 4 semaines. Un exemplaire emprunté peut être réservé par un autre lecteur, cette réservation reste effective pendant 2 semaines après la date de retour du livre. Passé ce délai la réservation est annulée. Le documentaliste peut ajouter des ouvrages ou des exemplaires d un ouvrage dans MEDUSE, il peut également en supprimer (perte, vieillissement ). Seul le documentaliste peut exécuter les mises à jour des ouvrages, des lecteurs et des emprunts. Pour chaque exemplaire on conserve l emprunteur courant. Les lecteurs effectuent des recherches sur la discipline, des mots clés, l auteur, le titre, la date de parution... Pour cela ils utilisent MEDUSE en consultation. Christine FORCE 51
52 III - EXERCICES PROBLÈME 2 : RALLYE CLERMONT IRKOUTSK On souhaite construire une application pour un rallye : Un véhicule est caractérisé par la marque, le modèle et la cylindrée. Une voiture est conduite par un pilote aidé d un navigateur. Une moto est conduite par un pilote. Le pilote et le navigateur ont un numéro de licence (affiliation à la fédération) et un numéro de dossard (inscription à la course). De plus, chaque véhicule est rattaché à une équipe (caractéristiques : nom, budget) qui lui fournit assistance et ravitaillement (une même équipe peut gérer plusieurs véhicules de catégories différentes). L équipe est composée de membres officiellement inscrits auxquels on attribue un numéro de badge et contient un responsable (joint à tout moment grâce à son numéro de téléphone mobile), des assistants techniques (spécialités : mécanique, logistique, etc.) et bien sûr les concurrents en charge d un véhicule de l équipe (toujours le même). Christine FORCE 52
53 III - EXERCICES PROBLÈME 2 : RALLYE CLERMONT IRKOUTSK La course se déroule par étapes. Chaque étape est caractérisée par un numéro, le nom de la ville de départ et de la ville d arrivée. Types d étapes : étapes de transition, étapes en ligne et étapes spéciales. Les étapes de transition ne servent qu à permettre aux véhicules de transiter du point d arrivée d une étape au point de départ d une autre. Elles ne rapportent pas de points. Dans une étape en ligne tous les véhicules d une même catégorie partent en même temps et doivent effectuer le même parcours. Une spéciale est un groupe de courtes étapes contre la montre. Le temps du véhicule est obtenu par la somme des temps de chaque étape contre la montre formant la spéciale. Le classement des véhicule est fonction du temps de chaque étape. Christine FORCE 53
54 III - EXERCICES SOLUTION Trouver les classes, éliminer les classes superflues (attributs), trouver un nom, Trouver les associations (verbes ou rôles), Factoriser (généraliser), Tester les chemins d accès aux classes, Itérer et affiner. Christine FORCE 54
55 III - EXERCICES LES ERREURS A EVITER Les classes redondantes (celles qui modélisent des concepts similaires). Les classes qui modélisent des implémentations possibles des éléments du domaine (par exemple un conteneur). Les propriétés non factorisées (on construit souvent le graphe d héritage vers le haut). La multiplication des associations qui crée des chemins redondants entre classes. Christine FORCE 55
56 V - DIAGRAMMES D'OBJETS Décrivent un état possible à un instant t, un cas particulier, une situation concrète, un cas réel. Doivent être conformes au diagramme de classes. Sont souvent établis en parallèle avec les diagrammes de classes. Peuvent être construit avant les diagrammes de classes afin de «découvrir» les classes. Peuvent être utilisés pour : Expliquer un diagramme de classes (donner un exemple). Valider un diagramme de classes (le tester). Christine FORCE 56
57 V - DIAGRAMMES D'OBJETS EXEMPLES 1..2 parent Personne 0..* enfant lynette : parent enfant Personne kayla : Personne tom : Personne Personne Travaille pour 4 Société 1..* 1..* parent lynette: Personne preston : Personne enfant porter : Personne enfant Travaille pour 4 Travaille pour 4 Parker, Penny pizzéria: Société agencepub : Société Christine FORCE 57
58 Chapitre 3 LES DIAGRAMMES DE PAQUET (Package Diagrams) Christine FORCE 58
59 DIAGRAMME DE PAQUET Un paquet (package) UML est une mécanique de groupement. Les classes peuvent être groupées au sein d une même unité, sujet, sous-système d objets en raison de leurs objectifs communs. La notion de paquet peut être appliquée à n importe quel élément du modèle, pas seulement aux classes. Les critères de découpage dépendent de la phase du processus de développement. Christine FORCE 59
60 QU EST-CE QU ON MET DANS UN PAQUET? Découpage fonctionnel : pour attribuer les objectifs et les responsabilités à chaque équipe de réalisation, il est possible de définir des paquets a priori, représentant chacun un sous-système fonctionnel du système à réaliser (Cas d Utilisation). Découpage structurel : classes ayant un lien logique ou une définition voisine (ex : les classes reliées par une relation d héritage). Découpage pratique : pour la lisibilité du modèle ou la facilité d utilisation des AGL. Christine FORCE 60
61 DIAGRAMME DE PAQUET Librairie Graphique IHO Nom symbolique du paquet Domaine Héritage entre paquets : il existe au moins un élément du paquet source qui spécialise (au moins) un élément du paquet cible Dépendance entre paquets : Au moins un élément du paquet source utilise les services d au moins un élément du paquet cible (relation d obsolescence entre les éléments des 2 paquets) Christine FORCE 61
62 EXEMPLE Une dépendance de type «access» signifie que le contenu public de la cible est accessible au paquet source. IHO Emprunt Contrôleur emprunt «access» Librairie graphique «access» IHO liste diffusion Contrôleur liste diffusion Une dépendance de type «import» signifie que le contenu public de la cible est ajouté à l espace de nommage de la source. Biblio «import» Ouvrages «access» Lecteurs «import» «access» AccèsBD {abstrait} Accès Oracle Accès Posgres Christine FORCE 62
63 DIAGRAMME DE PAQUET Biblio Simulateur Biblio Ouvrages Lecteurs Ouvrages Lecteurs Description hiérarchique des paquets : sous forme d arbre ou en montrant les paquets inclus. Simulateur «framework» Stéréotype d'un paquet (framework, toplevel ) Christine FORCE 63
64 CONCEPTION DES PAQUETS Minimiser le couplage inter paquets : Le moins de dépendances possibles. «on ne parle pas aux étrangers»! Maximiser la cohésion intra paquet : Regrouper les éléments en forte relation, Regrouper les classes qui rendent des services de même nature aux utilisateurs, Isoler les classes réellement stables de celles qui risquent d évoluer au cours du projet, Isoler les classes métiers des classes applicatives, Distinguer les classes dont les objets ont des durées de vie différentes. Vérifier les dépendances circulaires. Christine FORCE 64
65 INTERFACES ENTRE PAQUETS L interface d un paquet est l ensemble des classes publiques du paquet. Les interfaces doivent contenir : Seulement l information nécessaire : L interface doit révéler le moins d information possible Toute l information nécessaire : L interface doit donner aux autres modules l information suffisante pour pouvoir utiliser les ressources offertes. Pour favoriser l évolution du système. Cacher les détails de bas niveau (algorithmes, SDD, etc.). Christine FORCE 65
66 Chapitre 4 LES DIAGRAMMES D'ÉTATS (State Machine Diagrams ou diagrammes états-transitions) Christine FORCE 66
67 DIAGRAMMES D'ÉTATS En panne Détruire Réparer casser En Etat de Marche Créer (immatriculation) Les diagrammes d états sont utilisés pour compléter aussi bien le diagramme de classes d analyse que le diagramme de classes technique. Ils sont élaborés pour une classe afin de visualiser le comportement d un objet au cours du temps. CLASSES MODELE D ANALYSE FONCTIONS Modèles de Classes et d Objets Dynamique des Objets Scénarios Fonctionnels Modèle des Processus MODELE TECHNIQUE Christine FORCE 67
68 LES DIAGRAMMES D'ÉTATS Modéliser les objets réactifs : ceux dont le comportement est caractérisé par leur réaction à des événements issus de l'extérieur de leur contexte (envoyés par d autres objets). Spécifier : Les états stables des objets ayant un comportement dynamique complexe, Les événements qui déclenchent les transitions d'états, Les actions qui se réalisent à chaque changement d'état ou à l intérieur d un état. Christine FORCE 68
69 ETATS D UN EXEMPLAIRE DE MEDUSE Exemplaire vol achat Disponible restitution Manquant Après 1 an Création De l objet = Point d entrée unique Emprunt restitution Emprunté Après 1 mois vol Destruction de l objet Événement déclenchant une transition Un état de l objet Christine FORCE 69
70 QUAND FAIT-ON UN DIAGRAMME D ÉTATS? Lorsque les objets d une classe réagissent différemment à l occurrence du même événement et que chaque type de réaction caractérise un état particulier. Un état représente une situation de la vie d un objet pendant laquelle : Il satisfait une certaine condition, Il exécute une certaine activité, Il attend un certain événement. Un état a une durée non négligeable mais finie, variable selon la vie de l objet, en fonction des événements qui lui arrivent. Christine FORCE 70
71 QU EST-CE QU UN ÉVÉNEMENT? Un État Un Événement Un Autre État Signal : événement nommé, déclenché explicitement (exemple : un envoi de message asynchrone). Dans un diagramme d interaction on aura par exemple: Un Objet 1 : événement 2 : réaction Un Autre Objet Appel de méthode : invocation synchrone d une opération. Temporisation : passage du temps exemple : après (after) 10 sec. Changement : modification de conditions exemple : quand (when) température > 100. Christine FORCE 71
72 Un État LES TRANSITIONS Événement [garde] / action Un Autre État Transition gardée : la transition se réalise si l événement se produit et si la garde (ou condition) est vraie. La condition porte sur des informations visibles et accessibles de l objet (paramètres de l evt, valeurs internes, données globales). Gardes : Doivent être mutuellement exclusives pour chaque événement, Doivent couvrir tous les cas. Action : opérations dont le temps d exécution est négligeable ou nul (une action est instantanée). Une action est : non sécable : toute action commencée se termine, déclenchée après l évaluation de la garde, une méthode de la classe de l objet destinataire de l événement. Christine FORCE 72
73 LES ACTIVITÉS Les activités s exécutent à l intérieur des états et peuvent prendre du temps, les activités peuvent être interrompues par l occurrence d un événement. Exemple 1 : une activité cyclique est interrompue par l occurrence d événements. Etat A Do / activité cyclique Evt 1 Evt 2 B C Exemple 2 : une activité séquentielle déclenche une transition automatique (avec garde ici) : une des 2 transitions est déclenchée dès que l activité se termine, selon la valeur de la condition. Etat A Do / activité séquentielle [garde] [garde] B C Christine FORCE 73
74 LES ÉVÉNEMENTS INTERNES Etat A entry / action d entrée on evt / action exit / action de sortie Événement interne (introduit par le mot clé «on») : génère une action qui ne déclenche pas de transition. Evénements spéciaux entry et exit : déclenchent des actions en entrée et en sortie de l état. Saisie mot de passe entry / bloquer les entrées clavier do / gérer caractères saisis on aide / afficher l'aide exit / afficher entrées clavier Exemple Christine FORCE 74
75 INDIQUER LES OPÉRATIONS Evt3/Op7 evt1/op1 Etat A Entry / Op2 Do / Op3 On event / Op5 Exit / Op4 Evt2/Op6 Il y a 7 manières différentes d indiquer «des choses à faire» dans un diagramme d états Christine FORCE 75
76 ÉTAT COMPOSITE (SUPER ÉTAT) téléphone fixe raccroché bouton vert décroché connexion bouton rouge déconnexion décroché retour à l état englobant départ entry/envoyer tonalité exit/ arrêter tonalité Chiffre(n) numérotation partielle etc. entry/numéro.ajouter(n) [Numéro.isValid ()] point d entrée dans le super état Chiffre(n) Christine FORCE 76
77 HISTORIQUE Lavauto historique : indique la mémorisation du dernier sous état visité après 2 mn reprise attente Arrêt d urgence H marche lavage après 4 mn séchage après 2 mn lustrage après 2 mn H* indique que le dernier sous-état visité est mémorisé, quelle que soit la profondeur d emboîtement des sous-états. Christine FORCE 77
78 ÉTATS ORTHOGONAUX Les diagrammes d états permettent de décrire efficacement les mécanismes concurrents grâce à l utilisation d états orthogonaux. Un état orthogonal est un état composite comportant plus d une région, chaque région représentant un flot d exécution. Graphiquement, dans un état orthogonal, les différentes régions sont séparées par un trait horizontal en pointillé allant du bord gauche au bord droit de l état composite. Chaque région peut posséder un état initial et final. Une transition qui atteint la bordure d un état composite orthogonal est équivalente à une transition qui atteint les états initiaux de toutes ses régions concurrentes. Toutes les régions concurrentes d un état composite orthogonal doivent atteindre leur état final pour que l état composite soit considéré comme terminé. Christine FORCE 78
79 ÉTATS ORTHOGONAUX téléphone mobile arrêt Bouton vert Bouton rouge long Charge nulle marche marche bouton vert veille décroché bouton rouge court L objet se trouve dans plusieurs sous-états simultanément batterie chargée quand charge<c1 batterie faible branchement quand charge >C2 batterie en charge Christine FORCE 79
80 VIE DES OBJETS TV Attente basculer basculer Arrêt voiture zappeur boutonenfoncé/send Télé.basculer en panne destruction OU zappeur attente Attente bouton enfoncé Télé. basculer Communication entre objets casse en état de créer marche (immatriculation) réparation Création et de destruction d objet Christine FORCE 80
81 DIAGRAMMES D'ÉTATS Représentation de comportements complexes : Analyse : comportement d'un objet métier, Modélisation d'un comportement prévu, Conception : comportement des objets d une classe du programme. Représentation de tous les états et seulement les états et les transitions valides des objets de la classe. Si pas de transition pour un événement X, l objet ne réagit pas à cet événement dans cet état. Pas de diagramme à moins de 3 états. Christine FORCE 81
82 IMPLÉMENTATION Instructions de type selon ("switch") imbriquées : manière directe qui devient vite peu lisible. Patron de conception State : une classe pour chaque état, un contrôleur délègue le traitement de chaque événement à la classe Etat. Table contenant les états et les actions à effectuer lors des transitions. Christine FORCE 82
83 LE PATRON STATE Context - state setstate() request () State handlerequest() définit la classe abstraite pour encapsuler le comportement associé avec un état particulier du contexte chaque sousclasse ConcreState implémente un comportement associé avec un état du contexte ConcreteStateA handlerequest() ConcreteStateB handlerequest() Christine FORCE 83
84 EXEMPLE : LE LIVRE Livre setetat(etatlivre) emprunt() restitution() vol() aprèsunmois() aprèsunan() EtatLivre emprunt() restitution() vol() aprèsunmois() aprèsunan() Chaque classe concrète fournit le comportement de l objet quand il se trouve dans l état correspondant le contexte a une méthode pour chaque événement, elles ne font que déléguer EtatDisponible EtatEmprunté EtatNonRendu emprunt() vol()* restitution() vol () aprèsunmois()* restitution() aprèsunan()* Le patron État (State) (*) les autres méthodes sont vides ou lèvent une exception Christine FORCE 84
85 EXEMPLE : LE LIVRE État source État cible Événement Garde Action disponible emprunté emprunt disponible Non rendu vol emprunté disponible restitution emprunté non rendu après 1 mois non rendu disponible restitution non rendu État final après 1 an Table des états : on peut construire un interpréteur qui utilise la table à l exécution : plus de travail au départ, mais plus de souplesse. Christine FORCE 85
86 EXERCICE Logiciel pour gérer une station service : Avant de pouvoir être utilisée par le client, chaque pompe à essence doit être armée par le pompiste. La pompe est alors prête, mais ce n est que lorsque le client appuie sur la gâchette du pistolet que l essence est pompée (servie). Si le pistolet est sur son support, même si la gâchette est pressée, l essence n est pas pompée. La distribution d essence au client est terminée quand celui-ci remet le pistolet sur son support. Le débitmètre fournit alors la quantité d essence distribuée. Le client peut payer en liquide, par chèque ou par carte. Le système enregistre le montant et le mode de paiement. En fin de journée les transactions sont transmises au système comptable de la société. Si le niveau de la cuve correspondant à une pompe est inférieur à 5% de la capacité maximale, la pompe ne peut plus être armée. Christine FORCE 86
87 Appareil Photo On souhaite modéliser les fonctions d un appareil photo numérique: Lorsque l appareil est allumé, il se trouve en mode normal avec flash désactivé. Un bouton mode permet de passer du mode normal, au mode paysage, au mode portrait puis à nouveau au mode normal (boucle). Le bouton flash permet d activer le flash automatique, si on appuie à nouveau sur ce bouton flash, l appareil supprimera également les yeux rouges, puis sur une nouvelle pression, le flash se trouve désactivé (boucle). Pour prendre une photo, il y a un gros bouton spécifique, lorsqu il est appuyé l appareil réalise la photo (la stocke en mémoire). Il existe aussi un bouton pour la mise au point, lorsque celui-ci est appuyé l appareil effectue une phase de mise au point qui dure une seconde. L appareil dispose d un bouton de zoom avant et d un bouton de zoom arrière. En restant appuyé sur le bouton de zoom avant, l appareil avance son zoom (jusqu à une position maximale), on relâche ce bouton dès que le zoom est satisfaisant (ou lorsque le zoom ne peut plus avancer). Le bouton de zoom arrière reprend le même principe. Christine FORCE 87
88 Chapitre 5 LES DIAGRAMMES DE CAS D'UTILISATION (Use Case Diagrams ou UC) Christine FORCE 88
89 DIAGRAMMES DE CAS D UTILISATION SPECIFICATION DES BESOINS DIAGRAMMES de CAS d UTILISATION (UC) ANALYSE CONCEPTION de l architecture TESTS IMPLEMENTATION Christine FORCE 89
90 RÔLE DES CAS D UTILISATION Les UC servent à recueillir la définition des besoins exprimés par les utilisateurs DIAGRAMMES DE CAS D UTILISATION CLASSES MODÈLE du DOMAINE FONCTIONS Modèles de Classes et d Objets Dynamique des Objets Scénarios Fonctionnels Modèle des Processus MODÈLE TECHNIQUE Christine FORCE 90
91 L'EXPRESSION DES BESOINS EST UNE TACHE DIFFICILE L'utilisateur au moment de l'expression des besoins L'utilisateur lors de la revue d'analyse L'utilisateur après lecture des documents de conception L'utilisateur le jour de la livraison et installation Christine FORCE 91
92 UN PROBLÈME DE COMMUNICATION Expertise, jargon du métier Indécision, opinion changeante Besoins ambigus, Éléments manquants Schémas souvent incompréhensibles pour les non initiés. Langage énigmatique Descriptions longues et fastidieuses Christine FORCE 92
93 DIFFICULTÉS Définir de QUOI les utilisateurs ont vraiment besoin : Poser le bon problème, Ne pas laisser les utilisateurs se mêler de réalisation, Ne pas inventer des fonctions pour le plaisir. Bannir toute considération de réalisation lors des premières rencontres, Comprendre le besoin de manière globale : Flot incommensurable d'informations (il faut que ) Contradictions entre les utilisateurs. Besoins mouvants. Christine FORCE 93
94 LES CAS D UTILISATION Les cas d utilisation constituent une approche concrète. Les analystes ont souvent utilisé des scénarios pour comprendre les besoins. Ces scénarios étaient traités de manière informelle et rarement documentés. L approche par les Cas d Utilisation place les scénarios au premier plan dans les projets. La démarche est commune aux méthodes objets et aux méthodes traditionnelles. Christine FORCE 94
95 EXEMPLE UC - Définition : objectif ou service que le système doit remplir, motivé par un besoin d'un ou plusieurs acteurs. Distributeur de Billets sujet consulter solde compte Client Acteur : rôle joué par un utilisateur vis à vis du système à concevoir retirer de l argent éteindre/allumer le distributeur ravitailler le coffre Technicien Acteur secondaire Christine FORCE 95
96 QU EST CE QU UN CAS D UTILISATION? Représente une communication typique entre un utilisateur et un système informatique, Identifie une fonctionnalité visible de l utilisateur. S occupe d un objectif élémentaire de l utilisateur. Décrit la communication (données, événements) entre les entités extérieures et le système à concevoir. Le diagramme n'est qu'une "table des matières". Christine FORCE 96
97 ADOPTER LE POINT DE VUE DE L UTILISATEUR Un Cas d Utilisation modélise un service rendu à un utilisateur par le système. Exemple, un traitement de texte, objectifs de l utilisateur : Réaliser une présentation agréable pour un document. Rendre une présentation similaire à une autre. Solutions de l informaticien (appelées interactions système) : Définir un style Changer un style. Copier le style d un document vers un autre. Une interaction (interne au) système correspond à une fonction du logiciel du point de vue de l informaticien, Ce sont des décisions à reporter le plus tard possible. Christine FORCE 97
98 SCÉNARIO Un cas d utilisation est un ensemble de scénarios reliés par un but commun du point de vue de l utilisateur Un scénario est une séquence particulière d enchaînements s exécutant du début à la fin du cas d utilisation. Un cas d utilisation contient en général un scénario nominal (le cas général) et plusieurs : Scénarios alternatifs qui se terminent normalement (les cas particuliers), Scénarios d erreur qui se terminent en échec. Christine FORCE 98
99 ACTEURS on associe un cas d utilisation à chaque suite d événements initiée par un acteur. Pour trouver les acteurs, on cherche : Quelles sont les principales tâches de chaque acteur? L acteur a-t-il à lire, écrire, modifier une information du système? L acteur doit-t-il informer le système de modifications extérieures? L acteur doit-t-il être informé de modifications internes? Quels sont les acteurs secondaires? Y a-t-il des acteurs systèmes (d autres logiciels en interaction)? acteur système Christine FORCE 99
100 RELATIONS ENTRE UC GAB déposer de l argent déposer chèques déposer liquide Syst Info Banque Client Banque Porteur de cartes consulter solde compte retirer de l argent étend (extend) inclut inclut inclut (include) Retirer avec stock de billets insuffisant Identifier client Acteurs systèmes Système Autorisation Christine FORCE 100
101 RELATIONS ENTRE UC Factorisation de comportements communs à plusieurs cas d utilisation mais : intention différente, liaisons différentes avec les acteurs. U1 inclut U2 : U2 est un sous cas appelé en plusieurs points. U2 étend U1 : le comportement de U2 contient celui de U1 : U2 réalise quelque chose de plus que U1. un acteur réalise le cas d utilisation de base et toutes les extensions qui se présentent. U1 généralise U2 : le comportement de U2 hérite celui de U1 (vrai aussi pour les acteurs). Etend : indique les variations d un comportement normal (les cas particuliers importants). Inclut ou Généralise s utilisent pour éviter les répétitions dans la description détaillée des UC. Christine FORCE 101
102 POINT D EXTENSION Porteur de cartes GAB retirer de l argent Point d extension : vérification solde {après avoir demandé le montant} si montant > 100 étend vérifier solde Une extension peut intervenir à un point précis du cas étendu. On l indique dans un compartiment du cas d utilisation, avec une contrainte indiquant le moment où il intervient. On peut indiquer une condition dans une note. Christine FORCE 102
103 GROUPEMENT DES CAS D UTILISATION transaction A B Pour maitriser la quantité et la complexité des UC, on les répartit en plusieurs conteneur, que l on regroupe en paquets. client sécurité maintenance Christine FORCE 103
104 transactions EXEMPLE service Opérations non client Maintenance retirer de l argent Sys Auto recharger distributeur Porteur de carte Client banque Opérations client retirer de l argent consulter solde déposer de l argent Sys Info Banque Opérateur récupérer cartes avalées récupérer Chèques déposés. On peut donner le même nom à deux cas d utilisation différents s ils n appartiennent pas au même paquet. Christine FORCE 104
105 DIAGRAMME DE CONTEXTE STATIQUE L ensemble des UC peut se représenter dans un diagramme d'activités (appelé diagramme de contexte). Porteur de carte Retirer de l argent Système GAB informer Syst. Info Banque déposer, consulter consulter Système Autorisation client Christine FORCE 105
106 EXEMPLE DESCRIPTION DES UC (sommaire d identification) Titre : Retirer de l argent Résumé : ce cas d utilisation permet à un porteur de carte (non client de la banque) de retirer de l argent, si son crédit hebdomadaire le permet. Acteurs : porteur de carte (principal), système d autorisation (secondaire) Date de création, date de mise à jour, version, responsable, etc. On peut ajouter : Fréquence d exécution, sécurité, caractéristiques des acteurs, besoins en ergonomie Christine FORCE 106
107 DESCRIPTION DÉTAILLÉE (description des scénarios) Un cas d'utilisation = un processus complet lié à l'acteur principal (déclencheur) : Pré-conditions : contraintes sous lesquelles le cas peut démarrer, Enchaînement nominal : ex : connexion + calcul + impression... Enchaînements alternatifs et d erreur, Post-conditions : contraintes après la fin du cas d utilisation, Enchaînement = une liste où chaque ligne est : Un message entre un acteur et le système, Une activité réalisée par le système. Christine FORCE 107
108 CAS D'UTILISATION "retirer de l argent " pré-conditions : la caisse du GAB est alimentée. aucune carte ne se trouve déjà dans le lecteur. Scénario nominal : 1. Le porteur de carte introduit sa carte dans le lecteur. 2. Le GAB vérifie si la carte est une carte bancaire. 3. Le GAB demande au porteur de saisir son code. 4. Le GAB compare le code saisi avec celui de la carte. 5. Le GAB demande une autorisation au Sys. d autorisation global 6. Le Sys.Auto. Donne son accord et fournit le solde hebdomadaire. 7. Le GAB demande au porteur le montant du retrait Post-conditions : la caisse du GAB contient moins de billets qu au début du scénario et une transaction a été enregistrée. Christine FORCE 108
109 CAS D'UTILISATION "retirer de l argent " Enchaînement alternatif : A1 : code d identification provisoirement erroné : démarre au point 5 du scénario nominal. 6. Le GAB indique au porteur de carte que le code est erroné pour la 1ère ou la seconde fois. 7. Le GAB enregistre l échec sur la carte Le scénario nominal reprend au point 3. Enchaînement d erreur : E1 : carte non valide : démarre au point 2 du scénario nominal. 3. Le GAB indique au porteur que la carte n est pas valide (illisible, périmée ) et la confisque. Le cas d utilisation est terminé. E2 : code d identification définitivement erroné Christine FORCE 109
110 DÉMARCHES DE CONSTRUCTION Christine FORCE 110
111 BESOINS NON FONCTIONNELS Les UC permettent de spécifier les besoins fonctionnels d un système logiciel. Les besoins non fonctionnels sont des critères de qualité, pour chaque service et pour le système global (norme ISO 9126) : FACILITÉ D UTILISATION : ergonomie, esthétique, facilité d apprentissage, cohérence de l IHO, de la documentation et du matériel de formation. FIABILITÉ : fréquence et sévérité des fautes, facilité de reprise après panne, prédictibilité et précision des résultats. PERFORMANCE (rendement) : temps de réponse, charge, temps de récupération après erreur, quantité de mémoire. MAINTENABILITÉ : testabilité, évolution du système après livraison. Christine FORCE 111
112 MEDUSE (LE RETOUR) La médiathèque de l Université des Schtroumfs Erudits (USE) possède des ouvrages. Ils peuvent être des livres, des CD ou des DVD qui existent en plusieurs exemplaires. Les informations à stocker sur un ouvrage dépendent de son type. La médiathèque est gérée par des documentalistes et est fréquentée par des lecteurs. Ces lecteurs sont des étudiants de l USE, des enseignants ou des extérieurs. Ils peuvent emprunter 5 ouvrages au maximum lorsqu ils sont inscrits. Un lecteur ayant commis des abus (ouvrages rendus en retard, détériorations ) peut être interdit d emprunt (durée décidée par le documentaliste). Pour pouvoir être emprunté, un exemplaire doit être disponible (non emprunté, non réservé). Chaque emprunt a une durée limitée à 4 semaines. Un exemplaire emprunté peut être réservé par un autre lecteur, cette réservation reste effective pendant 2 semaines après la date de retour du livre. Passé ce délai la réservation est annulée. Le documentaliste peut ajouter des ouvrages ou des exemplaires d un ouvrage dans MEDUSE, il peut également en supprimer (perte, vieillissement ). Seul le documentaliste peut exécuter les mises à jour des ouvrages, des lecteurs et des emprunts. Pour chaque exemplaire on conserve l emprunteur courant. Les lecteurs effectuent des recherches sur la discipline, des mots clés, l auteur, le titre, la date de parution... Pour cela ils utilisent MEDUSE en consultation. Christine FORCE 112
113 EXERCICE 2 : POMPE À ESSENCE Un logiciel pour gérer une station service a le fonctionnement suivant : Avant de pouvoir être utilisée par le client, chaque pompe à essence doit être armée par le pompiste. La pompe est alors prête, mais ce n est que lorsque le client appuie sur la gâchette du pistolet que l essence est pompée (servie). Si le pistolet est sur son support, même si la gâchette est pressée, l essence n est pas pompée. La distribution d essence au client est terminée quand celui-ci remet le pistolet sur son support. Le débitmètre fournit alors la quantité d essence distribuée. Le client peut payer en liquide, par chèque ou par carte. Le système enregistre le montant et le mode de paiement. En fin de journée les transactions sont transmises au système comptable de la société. Si le niveau de la cuve correspondant à une pompe est inférieur à 5% de la capacité maximale, la pompe ne peut plus être armée. Christine FORCE 113
114 Chapitre 6 LES DIAGRAMMES DE SEQUENCES Christine FORCE 114
115 COMPORTEMENT DES OBJETS Pour monter ou concevoir le comportement des objets, on a : Les diagrammes d États : comportement d'une classe. Les diagrammes d interactions : échanges de messages entre plusieurs objets, 2 types : Diagramme de Séquences, Diagramme de Communication, Diagrammes d Activités : description d un processus. F2 F3 À UTILISER PARTOUT OÙ ON EN A BESOIN : domaine, exigences, conception détaillée Christine FORCE 115
116 DIAGRAMME DE SEQUENCE SYSTEME = DOCUMENTATION DES CAS D'UTILISATION :GAB :Sys Auto L'interface et l acteur se confondent Porteur de carte introduction carte demande code code (valeur) demande autorisation Système vu comme une boite noire On ne distingue pas flux de contrôle et flux de données demande montant Montant (valeur) demande ticket OK éjection carte récupération carte éjection billets récupération billets Autorisation (solde) Message avec valeur Les labels de flèches sont des événements du domaine de l'application ou des informations échangées exemple du chapitre précédent Christine FORCE 116
117 INCLUSION D UN CAS D UTILISATION Client ConsulterCompte affichersolde : GAB «inclut» UC122 Identifier Client Etc. La relation «inclut» des cas d utilisation permet de structurer les diagrammes Christine FORCE 117
118 DIAGRAMME DE SEQUENCES DE REALISATION EXEMPLE HYPER BASIQUE Dans une application d achats en ligne, la préparation des commandes est lancée via l IHO de l appli. Le client a commandé plusieurs articles : chaque article fait l objet d une ligne de commande. Pour chaque ligne de commande, il faut vérifier que l article est en stock en quantité suffisante (le cas sinon n est pas traité ici). Pour chaque article livré, si le stock est en dessous du seuil critique, on lance un réapprovisionnement. Les «rectangles» sont des OBJETS, c est-à-dire des instances des classes de conception. Ces objets peuvent être nommés. On peut montrer plusieurs objets de la même classe. On peut utiliser une flèche de «retour» d une méthode (seulement dans les cas ou un retour implicite n est pas clair). Christine FORCE 118
119 INTERACTIONS ENTRE OBJETS :Fenêtre Traitement Commande Préparer ( ) Appel d une méthode de l objet cible :Commande * Préparer () Itération :Ligne Commande estenstock () [vrai] :Article EnStock retour Objets à l'intérieur du système condition miseajour () BesoinDeRéapprovisionner ( ) Auto-Délégation Création [enstock()=vrai] [ vrai] new new :Réapprovisionnement :Livraison Christine FORCE 119
120 ITÉRATIONS EN UML 2.0 :Fenêtre Traitement Commande :Commande Préparer ( ) :Ligne Commande :Article EnStock Itération LOOP Préparer () [Pour chaque ligne de commande] estenstock () [vrai] miseajour () BesoinDeRéapprovisionner ( ) [enstock()=vrai] [ vrai] new new :Réapprovisionnement :Livraison Christine FORCE 120
121 ALTERNATIVES EN UML 2.0 :Commande :Ligne Commande :Article EnStock LOOP Préparer () [Pour chaque ligne de commande] estenstock () le «cadre d interaction» peut représenter : une itération (loop) une alternative (alt) une option (opt). ALT miseajour () miseenattente () new [vrai] BesoinDeRéapprovisionner () [vrai] new new [sinon] :Réapprovisionnement :Livraison :ProduitEnAttente Christine FORCE 121
122 DIAGRAMMES DE SÉQUENCES ET PROCESSUS CONCURRENTS Les diagrammes de séquences distinguent deux catégories d envoi de messages : Les envois synchrones pour lesquels l émetteur est bloqué et attend que l appelé ait fini de traiter le message (méthodes), Les envois asynchrones, où l émetteur n est pas bloqué et peut continuer son exécution (processus communiquants). Exemple : objets vérifiant une transaction bancaire : Lorsqu une transaction est créée, elle crée un coordinateur de transaction pour l ensemble des vérifications. Ce coordinateur crée un certain nombre (ici 2) d objets vérificateurs, chacun responsable d une vérification. Les objets vérificateurs peuvent être appelés de manière asynchrone et ils s exécutent en parallèle. Lorsqu un vérificateur se termine correctement, il avertit le coordinateur qui s assure que tous les vérificateurs sont terminés. lorsque tout est OK, un signal est envoyé à la transaction. Christine FORCE 122
123 PROCESSUS CONCURRENTS ET ACTIVATIONS new :Transaction new :Coordinateur new verif1: Vérificateur Transaction vérification : : succès Message asynchrone new verif2: Vérificateur Transaction Activation valide tout est fait? OK tout est fait? OK Empilement d activation L objet s auto détruit Christine FORCE 123
124 PROCESSUS CONCURRENTS ET ACTIVATIONS new :Transaction new :Coordinateur new verif1: Vérificateur Transaction vérification : : échec new Échec verif2: Vérificateur Transaction Transaction invalide Destruction des vérificateurs delete Destruction autre objet d un Christine FORCE 124
125 SYNTAXE :Acteur appeldeméthode () messageasynchrone () retour ( ) [garde] messagegardé () message avec délai objet : Classe Période d activité new Autodélégation : l objet appelle une de ses méthodes Création d objet nouveau:classe Ligne de vie Destruction d objet Christine FORCE 125
126 MEDUSE (LA VENGEANCE) Bibliothèque * Ouvrage * Exemplaire +numéro +état 0..5 * * Lecteur +état /nbemprunt Livre DVD CD Emprunt +date documentaliste Bibliothèque Enregistrer emprunt Représenter l emprunt d un exemplaire par un diagramme de séquences détaillé. On décide que l accès à l application se fait par une interface graphique et qu une classe ControleurBiblio gère les interactions entre l interface et les classes métier. Christine FORCE 126
127 EXERCICE Au lieu de faire la queue pour affranchir vos lettres, vous préférez utiliser le distributeur automatique, il faut : Initialiser le distributeur (p. ex. un bouton sur l écran tactile) Poser une lettre sur la balance, Choisir le tarif d expédition sur l écran tactile, L écran affiche alors le prix et demande si d autres lettres sont à affranchir. Si oui, le même scénario se répète (à partir de poser une lettre), Sinon il faut payer : le montant total s affiche et vous devez introduire les pièces. La monnaie est rendue et les vignettes sont délivrées. NB : Représenter le distributeur sous forme de plusieurs objets. Christine FORCE 127
128 Distributeur 1 sert > * Client Balance Clavier Ecran Monnayeur 1..* achète v Vignette distributeur vendre vignettes Christine FORCE 128
129 <<singleto n>> EquipeImpl -mecole:string -Professeu r:vecte ur -morganis ateur:or ganisateur + ajouterpr ofesse ur() + supprime rprofes seur() + compterp rofess eurs() + getprofes seurs( ) + compters tatuts ( ) + getecole( ) + setecole( ) # getorgan isateur () # setorgan isateur () <<impléme nte>> <<interfac e>> Equipe + ajouterpr ofesse ur() + supprime rprofes seur() + compterp rofess eurs() + getprofes seurs( ) + compters tatuts ( ) + getecole( ) + setecole( ) 1 * <<impléme nte>> Professeur Impl -mnom : Str ing -Statut : Flo at -mimpossi bilités : Vecteur -msurveillances : Vecteur + ajouterim possibi lité() + supprime rimpos sibilité( ) + compterimpossi bilités() + getimpos sibilité s() + compters urveillances() + afaire () + getstatut( ) + setstatut( ) + getnom() + setnom() # ajouters urveillance() # supprim ersurveillance( ) # getsurveillance( ) # surveillanceavecconflit () # impossib ilitésavecconfl it () # getequip e() # setequip e() <<impléme nte>> <<interfac e>> Professeur + ajouterim possibi lité() + supprime rimpos sibilité( ) + compterimpossi bilités() + getimpos sibilité s() + compters urveillances() + afaire () + getstatut( ) + setstatut( ) + getnom() + setnom() <<impléme nte>> surveille <<impléme nte>> 1 * spécifie <<Interfac e>> Serializatio n <<impléme nte>> <<impléme nte>> PériodeIm pl -Jour :Day -Début : Ti me -Fin : Time + getjour() + setjour() + getheure () + setheure () + getminute() + setminute() + getdurée () + setdutrée () # chercher Recouvrement () Impossibili téimpl <<impléme nte>> <<Interfac e>> Impossibili té <<Interfac e>> Distant UnicastRe mote Object <<impléme nte>> COM.caribo ulake.u til:obse rvable + ajouterob server() + effacerob server() # setchang é() # avertirobserver() <<impléme nte>> + affecterp <<Interfac rofesse>> ur() + enleverprofesse Récréation ur() + estsurveillée() + existecon flit() * PlanningIm pl organise + -mlieu ajouterré : Str ing cré() + mrécréati Supprime ons rrécré : Ve cteur () + compterrécrés( ) + getrécré () + supprime rtoute srécrés () + getlieu() + setlieu() <<impléme nte>> 1 * Récréation Impl -msurveillée:profe sseurimpl + ajouterré cré() <<Interfac e>> + Supprime rrécré Planning () + compterrécrés( ) + getrécré () + supprime rtoute srécrés () + affecterp rofesse ur() + getlieu() + enleverprofesse ur() + setlieu() + estsurveillée() + existecon flit() 1 <<singleto n>> Organisate ur + ajouterpl anning( ) + supprime rplanni ng() + compterp lanning s() 1 + getplanni ng() + compter Récrés( ) + getequipe () # setequip e() # setchang éetavertir () 1 <<impléme nte>> 1 <<Interfac e>> COM.caribo ulake.u til:obse rvabledistant + ajouterob server() + effacerob server() 1 1 <<Interfac e>> COM.caribo ulake.u til:rem oteobse rver +metajour () <<Interfac e>> Organisate ur + ajouterpl anning( ) + supprime rplanni ng() + compterp lanning s() + getplanni ng() + compter Récrés( ) + getequipe () * <<Interfac e>> AffichageS ynthèse + rafraîchir () AffichagePl anning 1 1 AffichageS ynthèse Impl +metajour () + rafraîchir () Planificate ur -démarrer Serveur () -stopperse rveur Planning. client Isima OÙ SOMMES NOUS?? Client Porteur de cartes déposer de l argent consulter solde compte retirer de l argent étend GAB inclut stock de billets insuffisant déposer chèques dépose r liquide inclut Identifier client Sys Info Banque Système Autorisation Porteur de carte introduction carte demande code code (valeur) demande montant Montant (valeur) demande ticket OK éjection carte récupération carte éjection billets récupération billets GAB demande autorisation Autorisation (solde) Sys Auto Spécification des besoins : Cas d Utilisation + description détaillée (texte ou diag de Séquences système) 1 Synthèse +Calculer() +CompterRecres() +CompterStatuts() 1 a besoin École 1 +École : string 1 1..* Professeur +Nom : string emploie +Statut : string 1 +AFaire() 1 0..* Impossibilité gère surveille 1..* Période 1 +Jour : integer +Debut : integer +Fin : string +Recouvrement() Planning +localisation : string 1 1..* Récréation +ExisteConflit() Contient marche Bouton vert Veille Batterie Chargée [charge <C1] Quand charge >C2 décroché Bouton rouge court Batterie déchargée branchement Batterie en charge Analyse : Diag. de Classes + États-Transitions : Article en Stock : Ligne : Commande commande LOOP [Pour chaque ligne de commande] Préparer () enstock () ALTERNATIVE [enstock()=vrai] BesoinDeRéapprovisionner () miseajour () [ vrai] new : Réapprovisionnement new : Livraison miseenattente () [sinon] Conception : Classes + Séquences + États-Transitions new : ProduitEnAttente Implémentation Christine FORCE 129
130 Chapitre 10 RETOUR SUR LE DÉVELOPPEMENT DE LOGICIEL Christine FORCE 130
131 SYNTHÈSE : QU'EST-CE QU'ON A? DIAGRAMME Diagramme de Classes et d Objets Diagramme de Cas d'utilisation Diagramme de Séquences Diagramme de Communication Diagramme d'etats Diagramme d'activités Diagramme de Composants Diagramme de Déploiement OBJECTIF Représenter les classes et les relations entre classes : Domaine : structure statique du système étudié ; Technique : architecture du logiciel. Décrire le comportement du système du point de vue de l'utilisateur : fonctionnalités du système, acteurs externes et leurs relations. Décrire la chronologie des messages échangés : objets, scénarios caractéristiques d'envoi de messages Décrire la communication entre les objets par l'envoi et la réception de messages. Décrire le cycle de vie des objets : les états que traverse un objet pendant sa durée de vie. Décrire les processus métiers de haut niveau ou les actions d'une opération complexe Décrire les composants de la STRUCTURE du logiciel Représenter les différents sites qui supportent des composants Christine FORCE 131
132 SYNTHESE : QU'EST-CE QU'ON A? Structure Exigences Implémentation Comportement Christine FORCE 132
133 SYNTHÈSE : QU'EST-CE QU'ON FAIT? ANALYSE : Quel est le problème? Classes du domaine CONCEPTION : Quelle est la solution? Classes du programme Cas d Utilisation :Fenêtre Préparer ( ) objet: Classe Diag. d'interactions IMPLEMENTATION : on fait ce que l'on a dit Objets du monde réel Objets logiciels Mais il y a aussi beaucoup de textes à écrire : définitions, commentaires, explications, glossaires, dictionnaires de données Christine FORCE 133
134 LE PROCESSUS UNIFIE Piloté par les cas d utilisation Use-case driven Un logiciel existe pour servir des utilisateurs, pour le construire on doit connaître ce que ses utilisateurs veulent et ont besoin. Les cas d'utilisation pilotent les développements comme un conducteur pilote une voiture. On peut lâcher les mains quelques secondes, pas plus. ITÉRATIF ET INCRÉMENTAL Les itérations sont des étapes dans le travail et les incréments des extensions du projet. Centré sur l architecture Architecture Centric L'architecture est la forme qu'a le système. l architecture doit permettre la réalisation des cas d utilisation en tenant compte de l environnement (matériel, OS, SGBD, réseau ) Basé sur les composants Component Based Piloté par la prise en compte systématique et permanente des risques Risk driven. Christine FORCE 134
135 ANALYSE DES RISQUES Objectifs Anticiper les aléas qui menacent le projet Mettre en place les mesures de préventions Pour que l occurrence n ait pas lieu Prévoir les mesures de secours Pour atténuer les impacts si l occurrence a lieu Evaluer la gravité/occurrence : Gravité moyenne/ occurrence assez forte Gravité élevée / occurrence faible Christine FORCE 135
136 LE PROCESSUS UNIFIÉ (RAPPEL) (sous) projet Inception (étude d'opportunité) Exigences Élaboration Construction Transition Analyse Conception Implémentation Test Christine FORCE 136
137 Inception (étude d'opportunité) Élaboration Construction Transition INCEPTION Exigences Analyse (OPPORTUNITÉ) Conception Implémentation Test Quel système allons nous construire? (10% des UC) Est-on capable de le construire? (faisabilité, délais, coût) Est-il opportun de le construire? Qu est-ce qui pourrait mettre le projet en péril? (risques) Quelles sont les frontières du système? Quelle pourrait être l architecture? Comment planifier les itérations? QUOI? avec QUI? pour QUAND? pour COMBIEN? Christine FORCE 137
138 ÉLABORATION proposer et argumenter des solutions au besoin exprimé Inception Élaboration Construction Transition (étude d'opportunité) Exigences Analyse Conception Implémentation Test Pour chaque nouvel incrément : Connaissance du métier des clients (contexte), Majorité des cas d'utilisation (80%), Analyse des risques, Modèle conceptuel, Prototypes, Modèle Physique (architecture, solution retenue pour implémenter le modèle conceptuel et les UC). Christine FORCE 138
139 Inception (étude d'opportunité) Élaboration Construction Transition Exigences CONSTRUCTION Analyse Conception Implémentation Test Créer les composants : sources, scripts, puis exécutables. Fournir une version β de l'incrément en cours de développement en plusieurs itérations : Chaque itération est un mini-projet, ce qui permet de remédier aux risques d intégration et de tests en big bang. Chaque itération fournit un produit de qualité, intégré et testé. Christine FORCE 139
140 Inception (étude d'opportunité) Élaboration Construction Transition Exigences Analyse TRANSITION Conception Implémentation Test Mettre le système entre les mains de la communauté des utilisateurs, Améliorer les performances si nécessaire, Réparer les défauts (mais pas de développement pour ajouter des fonctionnalités), Rédiger la documentation utilisateur, Former les utilisateurs et intégrer les retours d'expérience. Christine FORCE 140
141 Inception : JALONS définition des ambitions du projet, estimation des coûts et des délais, exigences décrites par les cas d utilisation primaires, budget approuvé et fonds disponibles. Elaboration : architecture stable, résolution des risques majeurs, adhésion des décideurs (à l architecture et la planification) évaluation des ressources consommées / prévisions. Construction : version assez stable pour être confiée aux utilisateurs (rédaction d un manuel) et accord des décideurs. Christine FORCE 141
142 Inception (étude d'opportunité) Élaboration Construction Transition Exigences Analyse EXIGENCES Conception Implémentation Test Diagrammes de Cas d'utilisation (réunions, interviews), Documentation détaillée des cas d utilisation, Diagrammes de séquences systèmes (scénarios caractéristiques) ou diagrammes d activités, Exigences non fonctionnelles (performance, ergonomie, portabilité, modifiabilité, fiabilité), Prototypes (IHO au minimum). Christine FORCE 142
143 Inception (étude d'opportunité) Élaboration Construction Transition Exigences Analyse ANALYSE Conception Implémentation Test Modèle d'activités Métier : diagrammes d'activités, décrivant les processus de gestion et/ou industriels (existants, futurs). Modèle de Classes métier, Dictionnaire : responsabilité des classes, attributs, opérations, Diagrammes d états des classes d analyse, Validation par les experts du domaine. Christine FORCE 143
144 Inception (étude d'opportunité) Élaboration Construction Transition Exigences Analyse CONCEPTION Conception Implémentation Test Comment construire le logiciel? Identifier les classes qui vont faire partie de l architecture. Découpage de l application en paquets (sous-systèmes). Quelle technologie utiliser? Diagrammes de classes techniques : architecture du logiciel à construire (design patterns), Diagrammes d Interactions : communication des classes pour l'implémentation des cas d utilisation, Diagrammes d'états : comportement des objets du logiciel. Christine FORCE 144
145 CONCEPTION Activité de raffinement progressif (du général aux détails) : Conception de l architecture : identifier les soussystèmes Spécification abstraite : identifier les services et les contraintes de chaque sous-système. Conception de l interface (de programmation) entre sous-systèmes. Conception des composants. Conception des SDD. Christine FORCE 145
146 Inception (étude d'opportunité) Élaboration Construction Transition Exigences Analyse IMPLÉMENTATION Conception Implémentation Test Diagrammes de Paquets, de Composants montrant les classes fortement dépendantes, Diagrammes d'interaction (séquences ou communication) Diagrammes États-Transitions : description détaillée des comportements, Diagrammes de Déploiement. Christine FORCE 146
147 METHODES AGILES Scrum Agile Modelling RAD : Rapid Application Modelling extreme Programming Principes organisation en équipes retours rapides gestion des changements simplicité de conception Qualité Christine FORCE 147
148 SCRUM Scrum n est pas une méthodologie, c est plutôt un cadre à l intérieur duquel il est possible d utiliser différents processus et techniques. Scrum adopte une approche itérative et incrémentale dans le but de rendre le processus plus prévisible, contrôler le risque. Une itération en Scrum s appelle un sprint. Un sprint dure environ 1 mois. Christine FORCE 148
149 Scrum : déroulement d un sprint Avant : réunion de planification (sprint planning meeting), l équipe décide de ce qui va être fait «Quoi?» carnet de produit (product backlog) l équipe détermine comment elle va développer les fonctionnalités décidées «Comment?» carnet de sprint (sprint backlog) Pendant : la mêlée quotidienne (daily scrum) L équipe se rencontre chaque jour pour une réunion d inspection et d adaptation du processus (environ 15mn), Chaque membre de l équipe présente ce qui suit : ce qu il ou elle a accompli depuis la dernière mêlée, ce qu il ou elle va faire d ici la prochaine mêlée, les obstacles à surmonter, s il y a lieu. La mêlée quotidienne améliore la communication et favorise la prise de décision Christine FORCE 149
150 Scrum : déroulement d un sprint Après : revue du sprint (sprint review meeting), l équipe Scrum et les parties prenantes discutent de ce qui a été fait pendant le sprint : Ce qui a été complété Ce qui n a pas été complété Les problèmes rencontrés et leur résolution. elles discutent également de ce qui devra être fait au cours du prochain sprint. Encore après : rétrospective de sprint, inspecter le déroulement du dernier sprint du point de vue des individus, des relations interpersonnelles, des processus et des outils. Succès, améliorations Christine FORCE 150
151 L équipe Scrum (les rôles) Le Scrum Master : «expert» Scrum Guide l équipe dans les pratiques et règles de Scrum. Le propriétaire de produit (product owner) Gère le carnet du produit, Sélectionne et affecte les priorités aux fonctionnalités, S assure de la valeur du travail de l équipe. L équipe (team) : 7 personnes ± 2 transforme le contenu du carnet du produit en un sousensemble de fonctionnalités livrable à la fin du sprint. Contient des membres aux compétences variées (architecture, développement, contrôle qualité, conception d IHO, base de données ) L équipe s organise elle-même. Christine FORCE 151
152 Artefacts de Scrum Carnet du produit (product backlog) : liste des fonctionnalités, technologies, améliorations et correctifs qui correspondent aux changements à apporter au produit lors des livraisons futures. Chaque élément possède : une description, un niveau de priorité et une estimation. Graphique de progression de livraison (Burndown Chart) : mesure ce qui reste à accomplir dans le carnet au fil du temps. Carnet de sprint (sprint backlog) : Contient toutes les tâches nécessaires pour réaliser un sous-ensemble potentiellement livrable du produit. Graphique de progression de sprint (sprint Burndown Chart) : mesure l avancement des tâches à réaliser dans le sprint. Christine FORCE 152
153 ACTIVITES DE SOUTIEN Christine FORCE 153
154 LE PROCESSUS DE TEST Test unitaire, Test d'intégration : cohésion, Test de sous-système : recherche des erreurs d interface, Test du système : vérification de l adéquation aux besoins fonctionnels et non fonctionnels, Test d acceptation ( α ) : erreurs ou omissions dans la définition des besoins = VALIDATION Test dans les conditions définies par le client. Christine FORCE 154
155 IMPORTANCE DU TEST La qualité du test manuel repose sur la pertinence du testeur. Même si le test de logiciel revient cher, l absence de qualité peut être encore plus coûteuse pour l entreprise. Le test n ajoute pas de qualité, il permet de connaître l état du produit aux différents stades de son développement. La création d une équipe de test distincte exige un changement radical de culture : ce n est pas une pratique courante de faire vérifier son travail par quelqu un d autre. Christine FORCE 155
156 TYPES DE TESTS Tests boîte noire ou fonctionnels : scénarios déduits des spécifications fonctionnelles. Test aux limites, Tests de non régression, Tests statistiques : données tirées aléatoirement dans le domaine des entrées en supposant une répartition statistique. Tests boîte blanche ou structurels : exploitation systématique des chemins du logiciel. Test de charge : performance d un système sous une charge maximale (vérifier si le système peut supporter les trafics de pointe). Test de stress : capacité d un système à récupérer lorsqu il est poussé au-delà de ses limites Christine FORCE 156
157 PROCESSUS DE TEST Christine FORCE 157
158 TESTS FONCTIONNELS PRINCIPE Comparer les résultats obtenus avec les résultats attendus. montrer non seulement qu'un logiciel fait ce qu'on attend de lui, mais aussi qu'il ne fait pas ce qu'on en n'attend pas. MÉTHODE Déterminer des classes d'équivalence : Valeurs valides non extrêmes, Valeurs valides extrêmes (aux bornes), Valeurs spéciales, valeurs non valides REGLE Archiver et Automatiser (tests de non régression). Christine FORCE 158
159 CLASSES D'ÉQUIVALENCE classes d'entrée incorrectes classes d'entrées correctes COMPOSANT classes de sortie Une classe = les cas devant être traités identiquement (1 test par classe) Un test peut combiner plusieurs classes valides, Il est nécessaire de réaliser un test individuel par classe invalide. On identifie les classes en analysant la spécification. Pour chaque condition externe, on établit la liste des classes valides et invalides. Christine FORCE 159
160 exemple : CLASSES D'ÉQUIVALENCE spécification : x doit être compris entre 0 et 999, et y entre 0 et 4 : Condition externe Classes valides Classes invalides X Y (1) 0 X 999 (4) 0 Y 4 (2) X<0 (3) X>999 (5) Y 0 (6) Y>4 Jeux de tests valides (1 & 4 : X=10,Y=2) (non compris les tests aux bornes) Invalides (2 : X=-4, Y=3), (3 : X=2000, Y=2), (5 : X=10, Y=-10), (6 : X=6, Y=6) Christine FORCE 160
161 GRAPHE CAUSE - EFFET On identifie des sous-ensembles indépendants de la spécification : Un graphe représentant la totalité de la spécification serait trop complexe, Les conditions sur les entrées (ou les classes d'équivalence) sont identifiées et numérotées, Les sorties produites sont identifiées et numérotées, C1 identité E1 C1 C1 C1 ~ E2 C2 V (et) E1 C2 V (ou) E1 non Symboles de base C3 Christine FORCE 161
162 GRAPHE CAUSE - EFFET Soit M le montant d une proposition et D sa durée : si M < M1 elle est recevable, si M1 M < M2 et D < D1, elle est recevable. C1 : M < M1 C1 E1 C2 : M < M2 C2 C3 ~ V I1 ~ E2 C3 : D < D1 E1 : proposition recevable E2 proposition non recevable Christine FORCE 162
163 GRAPHE CAUSE - EFFET Table de Décision C1 C2 C3 E1 E X X X X X X X X Pour extraire des cas de tests, il suffit de choisir pour chaque ligne contenant un X, des données correspondant aux combinaisons des causes associées. Christine FORCE 163
164 TESTS STRUCTURELS Ne permettent de tester que ce qui figure dans le programme, mais pas de trouver les oublis par rapport à la spécification. Tests unitaires : mesurer une couverture de test sur Blocs d Instructions (IB), Chemins de Décision à Décision (CDD ou DDP ou branches) = transferts de contrôle qui résultent d une décision, Portions Linéaires de Code suivie d un Saut (PLCS ou LCSAJ) Saut = transfert de contrôle qui donne lieu à une rupture de séquence au cours de la lecture d un source. PLCS = suite de nœuds du graphe de contrôle commençant au point d entrée ou à la cible d un saut, finissant à la sortie ou à la cible d un saut et ne comportant aucun saut. Christine FORCE 164
165 PLCS : exemple lire N pour i de 1 à N... fait fin e a b c d Dénombrement : sauts : arcs e, d, c cibles d un saut : (2) (3) (-1) PLCS : p1 : (1) -> (3) e p2 : (1,2,3) -> (-1) p3 : (2) -> (2) d p4 : (1,2) -> (2) d p5 : (3) -> (-1) c p6 : (2,3) -> (-1) c c Christine FORCE 165
166 PLCS : exemple Jeux d'essai Chem. d'exécution nœuds Chem. d'exécution branches Chem. d'exécution PLCS D1 n=3 1,2,2,2,3,-1 a,d,d,d,b,c p4,p3,p6 D2 n 0 1,3,-1 e,c p1,p6 D3 n=1 1,2,3,-1 a,b,c p2 PLCS p1 p2 p3 p4 p5 p6 JE D1 X X X D2 X X D3 X 100% instructions 100% branches 100% PLCS Christine FORCE 166
167 LIMITES DU TEST STRUCTUREL A pair pair B pair impair S 0 1 lire (A,B) x := A mod 2; y := B mod 2; S := 2 * x + y; 1 2 impair pair 2 impair impair 3 Incapacité de démontrer que certaines parties de code sont manquantes, Impossibilité de détecter certaines erreurs sur les données, mais indispensables dans les domaines critiques. Christine FORCE 167
168 TEST DU TEST Le semage de défauts (fault seeding : capacité des tests à trouver les fautes) On «sème» des défauts et on effectue les tests, On compte le nombre de défauts découverts, On estime le nombre de défauts restants. La concurrence : 2 équipes différentes effectuent des tests, On compte les défauts non communs découverts, Les mutants (variante du semage de défauts): On introduit des défauts pour créer des mutants, Les mutants qui ont un comportement différent sont «tués par le tests». Christine FORCE 168
169 TEST DES LOGICIELS OBJETS Premier problème, trouver une unité indépendante de test : Dans les systèmes structurés, chaque procédure ou fonction peut être testée indépendamment. En objet, une méthode n'existe que par rapport à la classe à laquelle elle est attachée. On ne peut pas toujours tester une méthode sans l'appliquer à un objet. Chaque objet possède un état, le contexte dans lequel une méthode est exécutée, est défini par ses paramètres et par l'objet auquel elle est appliquée. Christine FORCE 169
170 TESTS DE CLASSES On teste des séquences de méthodes appliquées à un objet. Graphe d héritage : Tester une classe générale, puis les classes qui la spécialisent, jusqu aux classes feuilles. Mais attention : ce n est pas parce qu une méthode fonctionne bien dans une classe donnée, qu elle fonctionnera aussi bien une fois héritée. Il est difficile de savoir, parmi les tests sélectionnés pour la classe parente, ceux qui peuvent être éliminés et ceux qui doivent être rejoués. Test des paires de fonctions : tous les enchaînements possibles de 2 méthodes. Christine FORCE 170
171 TESTS D INTÉGRATION Le test d intégration consiste à vérifier que les classes clientes utilisent les classes serveurs en conformité avec l interface offerte par la classe serveur. Il faut parfois simuler le comportement d une classe pour pouvoir en tester une autre. On explore les diagrammes de dépendances, On exploite les diagrammes d états : Tester chaque transition d état, et chaque méthode de la classe dans chacun des états où elle est sollicitée. Christine FORCE 171
172 CONCLUSION SUR LE TEST Les méthodes agiles préconisent une utilisation importante du test unitaire. Une famille de frameworks a été développée pour le test unitaire de classes : Junit pour Java, Nunit pour la plateforme.net On utilise les cas d utilisation et les diagrammes d interaction associés pour ordonner et dériver les cas de test. Christine FORCE 172
173 DIAGRAMMES UML ET VUES Le modèle UML d un système peut être étudié sous différentes perspectives (vues). Modèle UML = ensemble de diagrammes décrivant le système développé. Vue = angle particulier sous lequel un participant voit le système ou combinaison de diagrammes intéressant un participant. structure logique implémentation Utilisateur comportement environnement Christine FORCE 173
174 Vue utilisateur : LES VUES D UML Définit les buts et objectifs des clients du système (services). Définit les besoins et contraintes de la solution Vue unificatrice des autres vues : elle sert de référence à leur validation. Vue structure logique structure logique Utilisateur implémentation comportement environnement Décrit les aspects statiques, représentant la structure du problème. Identification des éléments du domaine (classes, attributs, paquets, etc.) et de leurs relations. Christine FORCE 174
175 LES VUES D UML structure logique implémentation Utilisateur Compor tement environnement Vue comportement Décrit les aspects dynamiques, du comportement du problème et de sa solution. Spécifie les interactions et collaborations entre éléments de la solution. Montre la décomposition du système en termes de processus, d interactions entre processus, de synchronisation et de communication entre activités. Christine FORCE 175
176 LES VUES D UML structure logique Implé mentation Vue implémentation : aspects structure et comportement de la solution. réalisation, organisation en composants, contraintes de développement, etc. Vue environnement : aspects de structure et de comportement du contexte dans lequel la solution est réalisée. ressources matérielles (disposition, nature, performance, etc.) et leur utilisation par le logiciel. comportement Utilisateur Environ nement Christine FORCE 176
177 IL N'Y A PAS DE MIRACLE On n'a jamais toutes les informations du premier coup (les itérations dans une phase sont nécessaires). Les choses changent au cours du développement (surtout les exigences). On n'éliminera pas tous les risques comme on l'espérait et de nouveaux apparaissent. Il faudra détruire des lignes de codes écrites pendant l'itération précédente. Christine FORCE 177
178 IL NE FAUT PAS : Penser que Inception = Spécification, Élaboration = Conception, Construction = Codage. Penser que Élaboration = définir rigoureusement des modèles traduits en code pendant la Construction. Essayer de définir la plupart des besoins avant d'entamer la conception ou l'implémentation, etc. Croire que la durée normale d'une itération est de 4 mois et non de 4 semaines. Penser que l'adoption d'uml implique beaucoup d'activités et beaucoup de documents. Essayer de planifier un projet en détail du début à la fin et de prédire toutes les itérations. Christine FORCE 178
179 IL FAUT ALLER VOIR : En français : uml.free.fr (voir les transparents) dept-info.labri.fr/~aimar/enseignement/uml/cours.pdf En anglais : (lien UML) bdn.borland.com/together/modeling/uml/ Christine FORCE 179
180 BIBLIOGRAPHIE Modélisation objet avec UML (2de édition) - Pierre-Alain Muller Eyrolles 2000 UML2 distilled: brief guide to the standard object modelling language (3 ème édition) - Fowler - Addison-Wesley UML Guide de l'utilisateur - G. Booch, J. Rumbaugh, I. Jacobson - Eyrolles Le Processus Unifié de Développement Logiciel - I. Jacobson Eyrolles Introduction au Rational Unified Process - Philippe Kruchten - Eyrolles UML2 et les Design Patterns - Craig Larman - Campus Press 2005 UML2 en action - Pascal Roques, Frank Vallée - Eyrolles 2004 UML2 par la pratique - Pascal Roques - Eyrolles 2004 UML2 B. Charroux, A. Osmani et Y. Thierry-Mieg - Pearson Education 2005 Tête la première : Design Patterns, E. Freeman O Reilly 2005 Christine FORCE 180
181 Christine FORCE 181
Les diagrammes de modélisation
L approche Orientée Objet et UML 1 Plan du cours Introduction au Génie Logiciel L approche Orientée Objet et Notation UML Les diagrammes de modélisation Relations entre les différents diagrammes De l analyse
Chapitre I : le langage UML et le processus unifié
I. Introduction Les méthodes d analyse orientées objet sont initialement issues des milieux industriels. La préoccupation dominante de leurs auteurs est le génie logiciel, c est-àdire les principes et
UML (Diagramme de classes) Unified Modeling Language
UML (Diagramme de classes) Unified Modeling Language Sommaire Introduction Objectifs Diagramme de classes Classe (Nom, attribut, opération) Visibilité et portée des constituants d une classe Association
basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML
basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes
IFT2255 : Génie logiciel
IFT2255 : Génie logiciel Chapitre 6 - Analyse orientée objets Section 1. Introduction à UML Julie Vachon et Houari Sahraoui 6.1. Introduction à UML 1. Vers une approche orientée objet 2. Introduction ti
Analyse,, Conception des Systèmes Informatiques
Analyse,, Conception des Systèmes Informatiques Méthode Analyse Conception Introduction à UML Génie logiciel Définition «Ensemble de méthodes, techniques et outils pour la production et la maintenance
Université de Bangui. Modélisons en UML
Université de Bangui CRM Modélisons en UML Ce cours a été possible grâce à l initiative d Apollinaire MOLAYE qui m a contacté pour vous faire bénéficier de mes connaissances en nouvelles technologies et
Présentation générale de la méthode orientée objet : O.M.T. (Rumbaugh & al.)
Présentation générale de la méthode orientée objet : O.M.T. (Rumbaugh & al.) Bernard ESPINASSE Professeur à l'université d'aix-marseille Plan Introduction Les modèles d'omt Le Modèle Objet (MO) Le Modèle
Diagramme de classes
Diagramme de classes Un diagramme de classes décrit les classes et leurs relations (associations, généralisation/spécialisation, ). classe association méthodes attributs héritage Diagramme de classes :
Cours de Génie Logiciel
Cours de Génie Logiciel Sciences-U Lyon Diagrammes UML (2) http://www.rzo.free.fr Pierre PARREND 1 Avril 2005 Sommaire Les Diagrammes UML Diagrammes de Collaboration Diagrammes d'etats-transitions Diagrammes
Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language
Unified Modeling Language UML Salima Hassas Version Cycle de vie du logiciel Client Besoins Déploiement Analyse Test Conception Cours sur la base des transparents de : Gioavanna Di Marzo Serugendo et Frédéric
Master MIDO 2ème année. Spécification et Conception en UML Maude Manouvrier
Master MIDO 2ème année Spécification et Conception en UML Maude Manouvrier Spécifications initiales Analyse Conception du système Conception des classes Bibliographie Modélisation et conception orientées
GOL502 Industries de services
GOL502 Industries de services Conception d un service Partie IIb Version 2013 Introduction Conception d un service partie IIb Nous verrons dans ce chapitre Modélisation d un service; Langage de modélisation
Rational Unified Process
Rational Unified Process For Christiane DAVOINE-GUHUR Société GICAB - Vannes [email protected] Table des Matières 1 INTRODUCTION... 1 2 LES COMPOSANTS ET LES GRANDS PRINCIPES DU PROCESSUS...
Analyse et Conception objet du logiciel Analyse et conception objet du logiciel : Méthode de conception objet et notation UML.
Analyse et conception objet du logiciel : Méthode de conception objet et notation UML Rémy Courdier Email : [email protected] Rémy Courdier V2.1 1 Plan du cours Introduction au Génie Logiciel
Cours Gestion de projet
Cours Gestion de projet Méthodes de conduite de projet Version Date Auteur V1.8 Septembre 2007 Pascal HEYER 1 Méthodes de conduite de projet Ce document est publié sous la licence libre Creative Commons-BY-NC-SA
Guichet automatique de banque
Guichet automatique de banque Mastère 2004 1 Guichet automatique de banque : GAB Objectif : Illustrer la vue fonctionnelle et particulièrement la définition des cas d utilisation. 1. Spécification du problème
Patrons de Conception (Design Patterns)
Patrons de Conception (Design Patterns) Introduction 1 Motivation Il est difficile de développer des logiciels efficaces, robustes, extensibles et réutilisables Il est essentiel de comprendre les techniques
Table des matières Sources
Table des matières Modélisation objet avec UML... 2 Introduction... 2 Modèle de système informatique :... 2 Pourquoi UML pour la modélisation Objet?... 3 Représentation dynamique du système... 5 Le diagramme
3. UML - Unified Modeling Language Diagrammes statiques
3. UML - Unified Modeling Language Diagrammes statiques Laëtitia Matignon [email protected] Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon
UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013
UML Diagramme de communication (communication diagram) 2013 Diagramme de communication (communication diagram) Utilisation / objectifs Sens Ce diagramme présente des objets, des acteurs, des liens et des
Architecture d'entreprise : Guide Pratique de l'architecture Logique
Guides Pratiques Objecteering Architecture d'entreprise : Guide Pratique de l'architecture Logique Auteur : Version : 1.0 Copyright : Softeam Equipe Conseil Softeam Supervisée par Philippe Desfray Softeam
GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET
GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET 1 Tianxiao LIU Licence Professionnelle Réseaux & Sécurité Université de Cergy-Pontoise http://depinfo.u-cergy.fr/~tliu/lpg.php PLAN Objectif et
Cours STIM P8 TD 1 Génie Logiciel
Cours STIM P8 TD 1 Génie Logiciel Compléments sur UML Intervenant : Anil CASSAM CHENAI Date : 02/02/2012 Objectifs du complément Ce complément sera approfondi en parallèle de plusieurs TD/Cours. Rappels
UML et les Bases de Données
CNAM UML et les Bases de Données UML et les Bases de Données. Diagramme de classes / diagramme d objets (UML)...2.. Premier niveau de modélisation des données d une application...2.2. Les éléments de modélisation...2.2..
Sommaire. G. Pujolle, F. Ravat, C. Soulé-Dupuy, G. Zurfluh
NOTATION UML AVEC RATIONAL ROSE G. Pujolle, F. Ravat, C. Soulé-Dupuy, G. Zurfluh Sommaire 1 GÉNÉRALITES...2 1.1 ENVIRONNEMENT LOGICIEL...2 1.2 LES VUES DU LOGICIEL ROSE...3 1.3 ORGANISATION RECOMMANDÉE...3
Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer
Le Processus RUP Database Administrator Project Leader H. Kadima Performance Engineer Release Engineer Analyst Designer / Developer Tester Table des matières 1. De l artisanat à l industrialisation de
MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»
MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE» Du cours Modélisation Semi -Formelle de Système d Information Du Professeur Jean-Pierre GIRAUDIN Décembre. 2002 1 Table de matière Partie 1...2 1.1
UML (Paquetage) Unified Modeling Language
UML (Paquetage) Unified Modeling Language Sommaire Introduction Objectifs Paquetage Espace de nommage d un paquetage Dépendances entre paquetages 2 Notion introduite véritablement par UML car superficiellement
Qu'est-ce que le BPM?
Qu'est-ce que le BPM? Le BPM (Business Process Management) n'est pas seulement une technologie mais, dans les grandes lignes, une discipline de gestion d'entreprise qui s'occupe des procédures contribuant
Processus d Informatisation
Processus d Informatisation Cheminement de la naissance d un projet jusqu à son terme, deux grandes étapes : Recherche ou étude de faisabilité (en amont) L utilisateur a une idée (plus ou moins) floue
OCL - Object Constraint Language
OCL - Object Constraint Language Laëtitia Matignon [email protected] Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object
Le Guide Pratique des Processus Métiers
Guides Pratiques Objecteering Le Guide Pratique des Processus Métiers Auteur : Version : 1.0 Copyright : Softeam Equipe Conseil Softeam Supervisée par Philippe Desfray Softeam 21 avenue Victor Hugo 75016
3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes
PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason
Cours Base de données relationnelles. M. Boughanem, IUP STRI
Cours Base de données relationnelles 1 Plan 1. Notions de base 2. Modèle relationnel 3. SQL 2 Notions de base (1) Définition intuitive : une base de données est un ensemble d informations, (fichiers),
Projet Active Object
Projet Active Object TAO Livrable de conception et validation Romain GAIDIER Enseignant : M. Noël PLOUZEAU, ISTIC / IRISA Pierre-François LEFRANC Master 2 Informatique parcours MIAGE Méthodes Informatiques
Génie logiciel (Un aperçu)
(Un aperçu) (sommerville 2010) Laurent Pérochon INRA URH 63122 St Genès Champanelle [email protected] Ensemble d activités conduisant à la production d un logiciel Sur un échantillon de
UML est-il soluble dans les méthodes agiles?
Pascal ROQUES Valtech Training UML est-il soluble dans les méthodes agiles? octobre 07 Résumé On entend beaucoup parler actuellement de deux approches ayant l'air fondamentalement opposées : l'approche
Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml
OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire
Ingénérie logicielle dirigée par les modèles
Ingénérie logicielle dirigée par les modèles Destercq Lionel & Dubuc Xavier 17 décembre 2009 Table des matières 1 Introduction 1 2 Diagrammes de classes 1 2.1 Principal..............................................
Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)
Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Module 1 : Programmer une application informatique Durée
Technologie Web. Conception de sites Web. Alexandre Pauchet. INSA Rouen - Département ASI. INSA - ASI TechnoWeb : Rappels UML 1/21
INSA - ASI TechnoWeb : Rappels UML 1/21 Technologie Web Conception de sites Web Alexandre Pauchet INSA Rouen - Département ASI BO.B.RC.18, [email protected] INSA - ASI TechnoWeb : Rappels UML 2/21
Diagrammes de Package, de déploiement et de composants UML
labsticc.univ-brest.fr/pages_perso/babau/ Diagrammes de Package, de déploiement et de composants UML Jean-Philippe Babau Département Informatique, UFR Sciences, Laboratoire Lab-STICC 2 1 Plan Description
Chapitre 1 : Introduction aux bases de données
Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données
Génie Logiciel Avancé Cours 3 Le modèle à objets
Génie Logiciel Avancé Cours 3 Le modèle à objets Stefano Zacchiroli [email protected] Laboratoire PPS, Université Paris Diderot - Paris 7 URL http://upsilon.cc/zack/teaching/1112/gla/ Copyright
Chapitre 5 LE MODELE ENTITE - ASSOCIATION
Chapitre 5 LE MODELE ENTITE - ASSOCIATION 1 Introduction Conception d une base de données Domaine d application complexe : description abstraite des concepts indépendamment de leur implémentation sous
Génie Logiciel. Rappels. C. Crochepeyre Génie Logiciel Rappels 1
Génie Logiciel Rappels C. Crochepeyre Génie Logiciel Rappels 1 INTRODUCTION GL: ingénierie appliquée au logiciel informatique Objectif: la qualité diminution du coût du logiciel et fiabilité Besoin: complexité
Développement itératif, évolutif et agile
Document Développement itératif, évolutif et agile Auteur Nicoleta SERGI Version 1.0 Date de sortie 23/11/2007 1. Processus Unifié Développement itératif, évolutif et agile Contrairement au cycle de vie
1. Considérations sur le développement rapide d'application et les méthodes agiles
Chapitre 1 Introduction 1. Considérations sur le développement rapide d'application et les méthodes agiles 1.1 Rappel Longtemps les méthodes en cascade ou en V ont été opposées aux démarches empiriques
Conception. Génie Logiciel. Renaud Marlet. LaBRI / INRIA http://www.labri.fr/~marlet. (d'après A.-M. Hugues) màj 17/04/2007
1 Génie Logiciel (d'après A.-M. Hugues) Conception Renaud Marlet LaBRI / INRIA http://www.labri.fr/~marlet màj 17/04/2007 2 Position dans le cycle de vie Contexte : étant donnée une spécification (ce que
Chapitre VI- La validation de la composition.
Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions
GOL-502 Industrie de services. Travaux Pratique / Devoir #7
GOL-502 Industrie de services Travaux Pratique / Devoir #7 Version 2012 Modélisation à l'aide du langage UML 1) Diagramme de cas d'utilisation 2) Diagramme de classes 3) Diagramme de séquence 4) Diagramme
Développement d un interpréteur OCL pour une machine virtuelle UML.
ObjeXion Software Prototyping made easy SA au capital de 500 000 F Siret 421 565 565 00015 APE 722Z Téléphone : 03 89 35 70 75 Télécopie : 03 89 35 70 76 L embarcadère 5, rue Gutemberg 68 800 Vieux-Thann,
Le génie logiciel. maintenance de logiciels.
Le génie logiciel Définition de l IEEE (IEEE 1990): L application d une approche systématique, disciplinée et quantifiable pour le développement, l opération et la maintenance de logiciels. Introduction
Créer et partager des fichiers
Créer et partager des fichiers Le rôle Services de fichiers... 246 Les autorisations de fichiers NTFS... 255 Recherche de comptes d utilisateurs et d ordinateurs dans Active Directory... 262 Délégation
Plateforme de capture et d analyse de sites Web AspirWeb
Projet Java ESIAL 2A 2009-2010 Plateforme de capture et d analyse de sites Web AspirWeb 1. Contexte Ce projet de deuxième année permet d approfondir par la pratique les méthodes et techniques acquises
Méthodologies de développement de logiciels de gestion
Méthodologies de développement de logiciels de gestion Chapitre 5 Traits caractéristiques des deux approches de méthodologie Présentation réalisée par P.-A. Sunier Professeur à la HE-Arc de Neuchâtel http://lgl.isnetne.ch
MEGA Application Portfolio Management. Guide d utilisation
MEGA Application Portfolio Management Guide d utilisation MEGA 2009 SP5 R7 2ème édition (novembre 2012) Les informations contenues dans ce document pourront faire l objet de modifications sans préavis
Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2
Langage et Concepts de Programmation Objet Travaux Dirigés no2 Pôle Informatique École Nationale Supérieure des Mines de St-Etienne Vous trouverez plus de détails sur les concepts abordés lors de ce TD
Conception, architecture et urbanisation des systèmes d information
Conception, architecture et urbanisation des systèmes d information S. Servigne Maître de Conférences, LIRIS, INSA-Lyon, F-69621 Villeurbanne Cedex e-mail: [email protected] 1. Introduction
Introduction au génie logiciel
Introduction au génie logiciel Guillaume Laurent ENSMM 2007 G. Laurent (ENSMM) Introduction au génie logiciel 2007 1 / 36 Plan du cours 1 Problématique du génie logiciel 2 Méthodes de développement logiciel
Introduction au Génie Logiciel
Introduction au Génie Logiciel Lydie du Bousquet [email protected] En collaboration avec J.-M. Favre, I. Parissis, Ph. Lalanda Qu est-ce que le logiciel? programme, ensemble d instructions Caractéristiques
Logiciel Libre Cours 3 Fondements: Génie Logiciel
Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli [email protected] Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/
Méthodes de développement. Analyse des exigences (spécification)
1 / 16 Méthodes de développement Analyse des exigences (spécification) 1 -Objectifs de l'analyse des exigences... 2 2 - Approfondissement et formalisation du besoin... 2 2.1 Séparation des besoins, contraintes
Pascal Brunot Hadrien Cambazard UML FOR BUSINESS INTELLIGENCE PROJECT
UML FOR BUSINESS INTELLIGENCE PROJECT Abstract : this document deals with the role of UML into business intelligence projects (like data warehousing). After a quick overview of what UML offers, it focuses
2. Activités et Modèles de développement en Génie Logiciel
2. Activités et Modèles de développement en Génie Logiciel Bernard ESPINASSE Professeur à l'université d'aix-marseille Plan Les Activités du GL Analyse des besoins Spécification globale Conceptions architecturale
Méthodes agiles. www.businessinteractif.com CONSEIL & DÉVELOPPEMENT DE SOLUTIONS E-BUSINESS. Jean-Louis Bénard jlb@businessinteractif.
Méthodes agiles www.businessinteractif.com Jean-Louis Bénard [email protected] CONSEIL & DÉVELOPPEMENT DE SOLUTIONS E-BUSINESS 0 20 mai 2002 Sommaire Méthodes agiles : une réponse à un malaise?
1 Introduction et installation
TP d introduction aux bases de données 1 TP d introduction aux bases de données Le but de ce TP est d apprendre à manipuler des bases de données. Dans le cadre du programme d informatique pour tous, on
Sommaire. Conduite de projet Méthode d analyse et de conception. Processus unifié. Objectifs d un processus de développement
Conduite de projet Méthode d analyse et de conception Processus unifié G. Picard SMA/G2I/ENS Mines Saint-Etienne [email protected] Octobre 2009 Sommaire!!Objectifs d un processus d ingénierie logicielle!
Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :
CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE Projet 2 Gestion des services enseignants G r o u p e : B E L G H I T Y a s m i n e S A N C H E Z - D U B R O N T Y u r i f e r M O N T A Z E R S i
Gé nié Logiciél Livré Blanc
Gé nié Logiciél Livré Blanc Version 0.2 26 Octobre 2011 Xavier Blanc [email protected] Partie I : Les Bases Sans donner des définitions trop rigoureuses, il faut bien commencer ce livre par énoncer
Ingénierie des Modèles. Méta-modélisation
Ingénierie des Modèles Méta-modélisation Eric Cariou Master Technologies de l'internet 2 ème année Université de Pau et des Pays de l'adour UFR Sciences Pau Département Informatique [email protected]
M1 : Ingénierie du Logiciel
M1 : Ingénierie du Logiciel UNIVERSITE PIERRE & MARIE CURIE (PARIS VI) Examen Réparti 2eme partie 16 Mai 2013 (2 heures avec documents : tous SAUF ANNALES CORRIGEES). Barème indicatif sur 20,5 points (max
Business Process Modeling (BPM)
Business Process Modeling (BPM) Mineure SOA Cécile Hardebolle [email protected] Programme 8 nov. 15 nov. Introduction. Enjeux, rôle de l'architecte SI Partie n 1 du cas d'étude Architecture
Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e
P r o b l é m a t i q u e OCL : O b j e c t C o n s t r a i n t L a n g u a g e Le langage de contraintes d UML Les différents diagrammes d UML permettent d exprimer certaines contraintes graphiquement
Comparaison de trois techniques de modélisation de processus: ADONIS, OSSAD et UML
Olivier Glassey Jean-Loup Chappelet Comparaison de trois techniques de modélisation de processus: ADONIS, OSSAD et UML Working paper de l'idheap 14/2002 UER: Management public / Systèmes d'information
CQP Développeur Nouvelles Technologies (DNT)
ORGANISME REFERENCE STAGE : 26572 20 rue de l Arcade 75 008 PARIS CONTACT Couverture géographique : M. Frédéric DIOLEZ Bordeaux, Rouen, Lyon, Toulouse, Marseille Tél. : 09 88 66 17 40 Nantes, Lille, Strasbourg,
LES INTERFACES HOMME-MACHINE
LES INTERFACES HOMME-MACHINE 1 ère Partie : Introduction aux Interfaces Homme-Machine 2 ème Partie : Notions de base sur les Sciences Cognitives 3 ème Partie : Recommandations ergonomiques 4 ème Partie
GL - 2 2.1 Le Génie Logiciel
GL - 2 2.1 Le Génie Logiciel Lydie du Bousquet [email protected] En collaboration avec J.-M. Favre, I. Parissis, Ph. Lalanda 1 Rappels La production logicielle est une activité complexe de façon
Business Intelligence avec SQL Server 2012
Editions ENI Business Intelligence avec SQL Server 2012 Maîtrisez les concepts et réalisez un système décisionnel Collection Solutions Informatiques Table des matières Les éléments à télécharger sont disponibles
Modèle conceptuel : diagramme entité-association
Modèle conceptuel : diagramme entité-association Raison d'être de ce cours «La conception et l'utilisation de bases de données relationnelles sur micro-ordinateurs n'est pas un domaine réservé aux informaticiens.»
C est quoi le SWAT? Les équipes décrites par James Martin s appellent SWAT : Skilled With Advanced Tools.
1- RAD Quelle sont les avantages que apporte la méthode RAD à l entreprise? Une méthode RAD devrait, d après son auteur, apporter trois avantages compétitifs à l entreprise : Une rapidité de développement
Mineure Architectures Orientées Services SOA Business Process Modeling (BPM) Mineure SOA. Business Process Modeling (BPM)
Mineure SOA Business Process Modeling (BPM) Idir AIT SADOUNE [email protected] Idir AIT SADOUNE - Plan 1 Notion de processus? 2 Modélisation des processus? 3 Langages
Méthodologies Orientées-Objet!
MAI NFE103 Année 2013-2014 Méthodologies Orientées-Objet! F.-Y. Villemin ([email protected]) Plan!!Les différentes méthodologies! Démarche! Cycle de vie!!rational Unified Process (RUP)!!La méthode Layman!!Notre
RTDS G3. Emmanuel Gaudin [email protected]
RTDS G3 Emmanuel Gaudin [email protected] PragmaDev Dédiée au développement d un AGL pour le développement des applications temps réel et embarquées. Réseau de partenaires: Formations, Service,
Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA
Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA I. Introduction Suite à une demande des étudiants, il m'est apparu intéressant de montrer, à travers un exemple concret, comment
Besoins utilisateurs. Quelle démarche pour passer des besoins au code? Code. chapitre1 UNIFIED MODELING LANGUAGE. package LogiqueMetier.
chapitre1 Besoins utilisateurs Quelle démarche pour passer des besoins au code?? UNIFIED MODELING LANGUAGE package LogiqueMetier.Gestion; import LogiqueMetier.Catalogue.Livre; import java.util.*;public
et les Systèmes Multidimensionnels
Le Data Warehouse et les Systèmes Multidimensionnels 1 1. Définition d un Datawarehouse (DW) Le Datawarehouse est une collection de données orientées sujet, intégrées, non volatiles et historisées, organisées
Chapitre 1 : Introduction au contrôle de gestion. Marie Gies - Contrôle de gestion et gestion prévisionnelle - Chapitre 1
Chapitre 1 : Introduction au contrôle de gestion Introduction 2 Contrôle de gestion : fonction aujourd hui bien institutionnalisée dans les entreprises Objectif : permettre une gestion rigoureuse et une
2 Grad Info Soir Langage C++ Juin 2007. Projet BANQUE
2 Grad Info Soir Langage C++ Juin 2007 Projet BANQUE 1. Explications L'examen comprend un projet à réaliser à domicile et à documenter : - structure des données, - objets utilisés, - relations de dépendance
ANALYSE D UN SYSTEME D INFORMATION ET EXTENSION DE
Université de Fribourg, Suisse Département d'informatique Bachelor en informatique de gestion ANALYSE D UN SYSTEME D INFORMATION ET EXTENSION DE CELUI-CI PAR DE NOUVELLES FONCTIONNALITES Travail de séminaire
TP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les
Génie Logiciel Orienté Objet UML
Licence Professionnelle en Informatique Génie Logiciel Orienté Objet UML E. Grislin-Le Strugeon E. Adam UVHC ISTV Plan Concepts orientés objet Principes des méthodes OO Qu est-ce que UML? Caractéristiques
Conception des bases de données : Modèle Entité-Association
Conception des bases de données : Modèle Entité-Association La modélisation d un problème, c est-à-dire le passage du monde réel à sa représentation informatique, se définit en plusieurs étapes pour parvenir
Quels outils pour prévoir?
modeledition SA Quels outils pour prévoir? Les modèles de prévisions sont des outils irremplaçables pour la prise de décision. Pour cela les entreprises ont le choix entre Excel et les outils classiques
PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN
PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN 1. DÉVELOPPEMENT D'APPLICATION (CONCEPTEUR ANALYSTE) 1.1 ARCHITECTURE MATÉRIELLE DU SYSTÈME INFORMATIQUE 1.1.1 Architecture d'un ordinateur Processeur,
MEGA ITSM Accelerator. Guide de Démarrage
MEGA ITSM Accelerator Guide de Démarrage MEGA 2009 SP4 1ère édition (juin 2010) Les informations contenues dans ce document pourront faire l objet de modifications sans préavis et ne sauraient en aucune
Évaluation et implémentation des langages
Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation
Développement spécifique d'un système d information
Centre national de la recherche scientifique Direction des systèmes d'information REFERENTIEL QUALITE Procédure Qualité Développement spécifique d'un système d information Référence : CNRS/DSI/conduite-proj/developpement/proc-developpement-si
