====== Diagrammes d'activité ======
===== Exercices d'entraînements (facultatifs) =====
Attention les exercices qui suivent sont très simples. Ils visent seulement à vous aider à vous remémorer le cours pour être prêt à réaliser les exercices suivants qui exigent un peu plus de réflexions.
Extraits de :
* [[http://www.iict.ch/Tcom/Cours/OOP/Livre/UML16.pdf]]
* [[http://laurent-audibert.developpez.com/Cours-UML/html/Cours-UML039.html]]
* [[http://www.nawouak.net/?doc=exercises.uml+ch=activity+lang=fr]]
* [[http://www.umanitoba.ca/faculties/.../faculty/.../exe-diagrams.doc]]
* [[http://www.projectsmart.co.uk/docs/activity-diagrams.pdf]]
Dessiner les diagrammes d'activité répondant aux énoncés suivants //(Pas plus d'une 1/2heure)//:
- Demander l'addition puis si le prix demandé est inférieur à la somme dont on dispose payer l'addition, sinon faire la vaisselle.
- Desserrer le frein à main puis en même temps appuyer sur l'embrayage et passer la première, ensuite en même temps appuyer sur l'accélérateur et relâcher l'embrayage
- A la réception du signal "Train en approche", émettre un signal "allumer les feux clignotant", attendre 10s, Abaisser la barrière
- Réaliser le diagramme suivant en utilisant les partitions mais pas les flots de données et ne prenez pas en compte les multiplicités.
* Develop an activity diagram based on the following narrative((Laissé volontairement en anglais :-D)). The purpose of the Open Access Insurance System is to provide automotive insurance to car owners. Initially, prospective customers fill out an insurance application, which provides information about the customer and his or her vehicles. This information is sent to an agent, who sends it to various insurance companies to get quotes for insurance. When the responses return, the agent then determines the best policy for the type and level of coverage desired and gives the customer a copy of the insurance policy proposal and quote.
- Un chef de projet saisit les informations sur son projet ce qui donne lieu à un document initial de critères, celui-ci est ensuite analysé par l'outil de gestion des projets qui produit un rapport. Le rapport est ensuite envoyée à l'imprimante qui gère en parallèle l'impression du rapport et la gestion des autres demandes d'impression. Lorsque ces deux actions sont terminées le chef de projet peut décider de travailler sur d'autres rapports.
**Quelques guides pour utiliser VP**
* Créer des **actions** dans les diagrammes d'activité (pas des activités en général).
Pour sélectionner **différents contrôles** sous VP :\\
{{:2010_2011:s2:omgl:mod-si:td:selectionactivity.png|}}
* Pour ajouter une condition (Guard) sous VP : \\
{{:2010_2011:s2:omgl:mod-si:td:guard.png|}}
* Pour ajouter un **état** à un objet :\\
specification=> onglet inStates => add (s'il n'y ait pas déjà) => Nom de l'état
Pour le visualiser => Options de la présentation => Show inState => Oui
* Pour orienter la barre de synchronisation :\\
clique droit sur la barre => Orientation
===== Cabinet Médical =====
L'observation d'un cabinet de médecine spécialisée fait apparaître l'activité suivante lors d'un rendez-vous.
Lors de la visite du patient, une première consultation fait l'objet de l'ouverture d'un dossier sur lequel la secrétaire inscrit les informations d'usage concernant le patient. Une fois le
dossier ouvert ou repris, la secrétaire le communique au médecin concerné juste avant la visite du patient. Au cours de l'entretien et de l'examen médical, le médecin complète le dossier par ses observations. La consultation s'achève par l'établissement d'une ordonnance. Une copie numérique de l'ordonnance est mémorisée automatiquement.
Le paiement des honoraires à la secrétaire dépend d'une condition précise. Si le patient est
bénéficiaire d'une mutuelle, ou d'une caisse de cotisation qui prend directement en charge le
montant des honoraires, il n'effectue aucun règlement. Dans ce cas la facture est envoyée à la Sécurité Sociale.
Dans les autres cas, le patient règle lui-même
les honoraires et reçoit en échange un volet de facturation à adresser à sa caisse d'assurance maladie.
- Modéliser le Flot de contrôle (uniquement les actions/activités)
- Compléter le avec le flot de données (les objets apparaissent), prenez en compte les états de la facture.
- Enrichissez le en faisant apparaître les entités ou acteurs responsables des actions par des partitions.
===== La galerie d'art =====
Soit le processus de vente d'une oeuvre d'art :
- Le client valide le contenu du panier
- Le système de ventes en ligne émet un bon de retrait ouvert vers le système de stockage pour les oeuvres et dans le même temps consulte le système de livraison pour connaître les temps d'acheminement prévu du colis;
- Un bon de commande est émis par le système de ventes pour toutes les oeuvres disponibles et en précisant le temps d'acheminement prévu;
- Le client valide ou non la commande
- Si la commande est validée,
* un service de paiement externe prend en charge le paiement et prévient le service de ventes que le paiement a bien été demandé; la commande passe au statut en cours;
* le service de livraison prend en charge l'expédition des oeuvres (cf. ci après) ce qui fait passer la commande dans le mode "en livraison";
* le service de livraison (par le transporteur) notifie le service de ventes lorsque la commande a été livrée,
* la commande passe alors dans l'état clos.
**I. Dessiner le diagramme d'activité** correspondant en prenant en compte les différents systèmes et acteurs mis en jeux, mais sans tenir compte des données dans un premier temps.
**II. Prenez en compte la spécification additionnelle suivante**\\
//E1: Commande non validée dans les temps.//\\
L'enchaînement A1 démarre au point 5 du flot nominal.\\
Si la commande n'est pas validée avant 1/2 heure, la commande est détruite((Pour des raisons de temps, nous ne détaillons pas, mais évident, les articles doivent être remis en stock)).
Le processus termine en échec.
**III. Dans un sous-diagramme **\\
La phrase 2 est une simplification de la réalité. En effet, un bon de retrait ouvert est émis pour chaque oeuvre. Le système de stockage, pour chaque oeuvre disponible, retourne un bon de retrait validé et enregistre la non-disponibilité de l'oeuvre. Pour les oeuvres non-disponibles un bon de retrait invalidé est retourné.
- Créer une activité correspondant à l'action à décomposer (clique droit sur l'action concernée, comportement, créer activité).
- Compléter ce diagramme en introduisant le flot de données.
===== Devoirs =====
Reprendre l'étude de cas de gestion de crise, qui vous a été donnée la semaine dernière et représenter par un diagramme d'activité l'enchaînement des tâches consécutives à un rendez-vous pour réparation d'une voiture. Nous modélisons ainsi les échanges d'informations entre les cas d'utilisation.
{{:omgl:acsi:cours7.gif|}}
Vous pouvez rendre plusieurs diagrammes d'activité à votre convenance, mais au moins un des diagrammes doit inclure le flot des données, et un diagramme doit inclure les partitions.
Voici quelques compléments sur l'étude de cas (Ne pas la compliquer davantage) :
- L'enregistrement d'une déclaration donne lieu à la création d'une entité représentant la //crise//.
- S'il n'y a pas de concordance entre le numéro de téléphone du témoin et son identité, la crise est considérée comme un canular (Nous simplifions!).
- Un expert produit un //plan de missions// sur la base des informations portée par la crise.
- Le coordinateur a alors la charge de traiter les missions en allouant des ressources appropriées à chaque tâche du plan de missions. Il produit un ensemble de //missions//, une par travailleur. Une mission est initialement //en cours//.
- Chaque travailleur va alors signaler l'évolution de sa mission. Nous considérons uniquement les signalements d'évolution de missions suivants: //Echec//, //Réussite//. Les travailleurs sont tenus de signaler auprès du système l’évolution de leur mission avec une fréquence maximum donnée (par exemple, une 1/2 heure). En cas de non signalement, une alerte est levée, la mission est en //En cours// mais //Erreur//. Une mission en cours ne peut être //close// que par le système, par la levée d'un évènement de "clôture" de la mission.
- En même temps que les travailleurs signalent l'évolution de leur mission, le coordonnateur surveille l'ensemble des missions.
- La crise est considérée comme close lorsque le coordinateur le décide. Cela a pour conséquence de clore toutes les missions.
!-
A partir de demandes d’approvisionnement, les acheteurs envoient des demandes de prix aux fournisseurs possibles.
Les fournisseurs envoient des offres. Etudiées en détail et comparées par les acheteurs, ces derniers font un choix.
Le service des achats établit un bon de commande à destination du fournisseur retenu.
Une copie est remise au magasin en vue de la réception, une autre aux services financiers pour les alerter d’un paiement futur aux
fournisseurs.
Quand la livraison arrive, le magasinier contrôle quantitativement la marchandise. Un
contrôle de qualité est effectué par des experts. La livraison est renvoyée en bloc si l’un des contrôles est négatif.
Les contrôles satisfaisants aboutissent à l’entrée en stock des articles. Le magasin établit un bon à
payer aux services financiers. Quand les services financiers reçoivent la facture du fournisseur, ils
vérifient qu’il lui correspond le bon à payer et émettent le chèque de paiement.
-!
===== En savoir plus =====
http://sourcemaking.com/uml/modeling-business-systems/external-view/activity-diagrams
http://www.sparxsystems.com/resources/uml2_tutorial/uml2_activitydiagram.html
http://www.visual-paradigm.com/VPGallery/diagrams/Activity.html