Cas d'utilisation
. Le modèle de Use Cases Exercice: Réservation de vacances en ligne Bankcard (paiement par carte de débit) Exercice Réservation sport d hiver en ligne (Futur système) Banksys (paiement par carte de crédit) Station Météo 2
. Le modèle de Use Cases Exercice: Réservation de vacances en ligne Les clients doivent pouvoir réserver une chambre (simple ou double) pour la durée de leur séjour et la payer en ligne par carte de crédit Exercice Les clients doivent pouvoir obtenir des prévisions météorologiques correspondant à la période de leur séjour Les clients peuvent réserver des cours de ski pour débutants Il ne peut y avoir qu un seul cours par jour Le nombre maximum de personnes admises dans un cours est de 0 Des cours dédiés aux enfants peuvent être réservés. L age des enfants doit être fourni afin de permettre d organiser les cours avec des enfants appartenant à la même tranche d age. L annulation et le remboursement de la réservation des chambres et des cours est possible 0 jours avant le début du séjour Ecrire la description textuelle du UC : Réserver Cours de ski + Compléter la premier diagramme des Use Cases!!! 3
. La description textuelle de Use Cases Exercice: Réservation de Vacances en ligne Nom : Réserver cours de ski Brève description : Un client réserve un cours de ski débutant durant la période de son séjour dans l hôtel.... Pré et Post Générales? A déterminer à la fin!!! (après avoir défini les alternatives) 4
. La description textuelle de Use Cases Exercice: Réservation de Vacances en ligne Cas Normal événement déclencheur Client ) Le client montre son intention de réserver un cours Système 2) Affiche la page de Réservation des cours 3) Le client Rentre les séquence événement de fin dates du cours 4) Le client rentre ses infos personnelles 5) Enregistre les infos personnelles 6) Enregistre la réservation 7) Confirme la réservation d interactions 5
. La description textuelle de Use Cases Exercice: Réservation de Vacances en ligne Pré-condition du cas normal: Le client est sur la page web www. et Le site web fonctionne correctement Post-condition du cas normal: Le client a réservé un cours et Le site web fonctionne correctement 6
. La description textuelle de Use Cases Exercice: Réservation de Vacances en ligne Qu est-ce qui peut se passer différemment? Date de réservation des cours <> Date de séjour à l hôtel Le nombre de participants à un cours est > 0 Réserver un cours pour un enfant Client veut faire d autres réservations 7
. La description textuelle de Use Cases Exercice: Réservation de Vacances en ligne Cas alternatif Nom: Réserver Cours pour enfant Flux : Si le client réserve un cours pour enfant alors, entre les points 5 et 6, le client doit rentrer l âge de l enfant et le système doit enregistrer l age de l enfant Pré-condition : Le client veut réserver un cours de ski pour un enfant Post-condition : Le client a réservé un cours de ski pour enfant 8
. Le diagramme de Use Cases Exercice: Réservation de vacances en ligne Diagramme de Use Cases Station météo Demander Prévision météo <<include>> Payer en ligne Réseau BANKCARD Client Hotel lient Cours Réserver Chambre Annuler Chambre Réserver Cours de ski <<include>> <<include>> Entrer Dates <<include>> Réserver Cours <<extend>> pour enfant Réseau BANKSYS Banque Annuler cours Rembourser Webmaster 9
Diagramme de classes 0
2.3 DIAG-CLASS-EX Domaine aérien Exercice Chaque avion est décrit par un modèle ainsi qu'un numéro de série. Ils effectuent des vols entre 2 aéroports. Chaque vol est décrit par un numéro, un instant de départ prévu et effectif, et un instant d'arrivée prévue et effective. De plus, chaque vol est financé par une compagnie aérienne, nécessite un pilote, d'un copilote, d'un radio et d'un ensemble d'hôtesses de l'air de la compagnie. Ces derniers sont identifiés par leur nom. Les informations disponibles sont leur matricule. Les pilotes et copilotes ont aussi un grade. Les passagers, identifiés par leur nom, peuvent réserver un siège pour un vol jusqu'à une heure avant le décollage. Nous disposons aussi de l aéroport de départ et de destination des passagers. Les seules informations utilisées à propos des aéroports sont leur localisation ainsi que la grande ville la plus proche Les compagnies aériennes sont identifiées par leur nom et une abréviation.
Solution Exercice 2 (2/2) Généralisation Compagnie nom : string abbrev : string Pilote grade pilote emploie : string co-pilote..* Personne nom : string Personnel Navigant matricule: string Hôtesse..* affrète {disjoint} Radio sert sur pilote commande passager * embarque * num hdeppre hdepeff harrpre harreff * opère sur Vol départ * : entier : heure : heure : heure : heure * * * Aéroport localisa : string ville : string * * arrivée utilise Avion modèle : string numsérie: entier 2
Solution Exercice 2 (/2) Contraintes Exemple pour pilote emploie..* Pilote nom : string matricule: string grade : string commandant départ Aéroport localisa : string ville : string arrivée {Vol.commandant.employeur = Vol.affréteur} employeur Compagnie nom : string abbrev : string affréteur 0..* 0..* * Vol num : entier hdeppre : heure hdepeff : heure harrpre : heure harreff : heure * {Vol.départ Vol.arrivée} 3
2.5 DIAG-CLASS-EX3 Exercice Domaine aérien : Les pilotes et les copilotes ne sont formés que pour certains types d avions et ne peuvent pas effectuer plus de 20h de vol en 48h. Les hôtesses peuvent embarquer sur tout type d avion et ne peuvent pas effectuer plus de 20h de vol en 48h. Les radios peuvent embarquer sur tout type d avion, et comme ils ont un bon syndicat, il ne peuvent pas effectuer plus de 5h de vol en 48h. Modifiez une sous partie du diagramme pour prendre en compte ces exigences et ajoutez une méthode peutvolersur?() pour le personnel navigant. 4
Solution Exercice 3 Polymorphisme Personnel Navigant matricule : string peutvolersur?(v : Vol) {disjoint} * Pilote grade : string peutvolersur?(v : Vol) Hôtesse Radio peutvolersur?(v : Vol) est formé sur * Type d Avion modèle : string est un * Avion numsérie : string * utilise Vol 5
Diagramme d'activité 6
Diagramme d'activités Un exercice récapitulatif (/5) Ce que demande le client (exigences fonctionnelles) : Contexte de modélisation de processus de maintenance d un futur système (projet pilote), Modéliser la procédure consistant en la gestion des rapports de bugs et des demandes d ajout de fonctionnalités : Réception de la demande ou du rapport, Vérification de la justification ou de l importance de la demande, Encodage de la demande / attribution d un id Envoi vers une équipe de développement, Vérification du développement par une équipe de test, Mise à disposition du patch ou de la nouvelle version Annulation à la demande du chef de projet Pas d exigences non fonctionnelles 7
Diagramme d'activités Un exercice récapitulatif (4/5) utilisateur équipe de développement équipe de test service maintenance système d encodage bug rapport 2 ordre A3. codage de l ordre de dévelop t code ordre A2. préparation du banc de test code 3 A4. vérifier le code rapport [reçu] A3. vérifier le rapport de bug demande [reçu] A6. vérifier la demande d ajout A8. demande de nouv. fonc. demande A5. vérification du code code annula -tion A9. annulation [sinon] A6. vérification du banc 3 4 [correction mineure] A7. création du patch patch patch A2. mettre à disposition le patch [vérif. ok] 4 [sinon] A8. création de la nouvelle version A7. mettre à disposition la nouvelle version [demande ou rapport ok] demande / rapport A5. encodage A. envoi vers une équipe de développement [sinon] demande / rapport id A. créer l ordre de développement binaire binaire ordre A4. envoi vers une équipe de test 2 id A9. stockage A0. génération de l id 8
Diagramme de machine à états 9
6.3.2 Exercice: enveloppe Peut contenir une lettre et être adressée à un destinataire. Opérations:. ouvrir(); 2. fermer(); 3. sceller(); 4. insérer_lettre(lettre l); 5. retirer_lettre(); 6. adresser(adresse a); Trouvez les états. Dessinez la machine. Exercice 0..* Adresse rue numéro code postal pays Enveloppe ouvrir fermer sceller insérer_lettre(lettre l) retirer_lettre adresser(adresse a) 0.. 0.. destinataire 0.. contient Lettre contenu 20
6.3.2 Exercice: Enveloppe Solution ouvrir ouvrir descellée ouvrir fermer ouverte fermée scellée sceller fermer fermée retirer(l)/ contient = {} vide' fermer ouvrir vide insérer(l)/ contient = l pleine sans_ad adresser(a)/ adresse = a avec_ad 2