2013-14.DE.correction.uml2016-05-01 08:45830 KB
Transcription
2013-14.DE.correction.uml2016-05-01 08:45830 KB
Nom : Prénom : EFREI Année : 2013/2014 Correction DE UML L2/PL2 Durée : 02 heures (Seulement une feuille A4 autorisée. Tous autres et appareil électronique interdits) (Répondez directement sur le sujet) Exercice 1 Questions de compréhension (6 pts : 1,5 point par question) : 1. Citez trois propriétés importantes des méthodes de développement logicielles Objet ? Itératives, incrémentales, réutilisabilité, modularité, etc… 2. Dans une approche de modélisation informatique itérative, citez trois diagrammes UML que l’on peut utiliser dans la phase de conception ? Diagramme de séquence, diagramme de composants et diagramme de déploiement, ... 3. Pour décrire les interactions entre les acteurs et le système, on peut utiliser le diagramme d’interaction de type diagramme de séquence. Nous distinguons le diagramme de séquence en boite noire et le diagramme de séquence en boite blanche. Quelle est la différence entre les deux diagrammes ? Le diagramme de séquence en boîte noire représente les interactions entre le système et les utilisateurs. Il peut être utilisé pour décrire par exemple comment utiliser le système (guide d’utilisation). Le diagramme de séquence en boîte blanche décrit aussi les interactions entre les objets internes du système, donc très utile pour le développeur. 4. Donnez un exemple concret de diagramme de classes utilisant au moins des liens de types association navigable, généralisation/spécialisation, réalisation et contenant aussi au moins une classe association et une classe abstraite ou interface. posséder -prixAchat: Float Bien -idBien: Integer -adresse: String Client Compte -idClient: Integer -numero: Integer -solde: Float +getStatut() Entreprise Partiulier CompteCourant CompteEpargne -statut: String -nom: String -prenom: String -decouvert: Float -taux: Float +getStatut() +getStatut() 1/7 Etude de cas (14 points) GestionHospitalisation Assistance Publique-Hôpitaux de Paris (AP-HP) souhaite développer un système d'information pour gérer le dossier médical d'un patient hospitalisé dans un de ses hôpitaux. Vous avez été retenu pour documenter le système existant en utilisant la notation UML, en vue d’une réalisation en C++ par la suite. La société exige une solution type LAMP (Linux, Apache, MySql, PHP) combinée avec des composants logiciels en C++. 1. Description du domaine L’AP-HP gère plusieurs hôpitaux sur Paris et la région parisienne. Un hôpital est structuré en services (administration, pédiatrie, chirurgie...). Chaque service a un chef de service qui est aussi un médecin. A chaque service sont affectés des médecins spécialistes, des infirmières et des aidessoignantes. Chaque service contient des chambres et des lits. Le dossier médical du patient doit contenir des informations sur son identité, ainsi que sur toutes ses hospitalisations et les soins qu'il a reçus. Le dossier médical du patient doit contenir aussi les hospitalisations effectuées dans d’autres hôpitaux dans le but d’avoir un dossier national du patient unique (DNP). 2. Description de l'application L’application est un logiciel informatique qui doit permettre de constituer le dossier médical d'un patient hospitalisé (on ne gèrera donc pas les patients qui viennent consulter sans être hospitalisés). Le dossier médical est initialisé par une secrétaire médical lorsque le patient est admis pour hospitalisation dans un service. Elle renseigne les informations sur l’admission du patient et lui attribue une chambre dans le service d’hospitalisation. Si le patient a déjà un dossier médical dans l’AP-HP, la secrétaire médicale doit juste mettre à jour les informations du patient (genre : nouvelle mutuelle, changement d’adresse ou de téléphone, etc…). Si le patient est admis pour la première à l’AP-HP, elle doit créer son dossier. Elle enregistre toutes les informations du patient : son numéro de sécurité sociale, adresse, téléphone, mutuelle, personne à contacter, etc… A chaque visite d'un médecin, une infirmière doit saisir dans le dossier médical un compterendu de la visite. Ce compte rendu pourra contenir une prescription et une demande de soin. A chaque fois que le patient reçoit des soins, une infirmière doit les consigner dans le dossier. Vu la sensibilité des informations contenues dans le dossier médical, l’authentification par login et mot de passe des utilisateurs de l’application est indispensable. 3. Travail demandé : 1. Donner le diagramme des cas d’utilisation décrivant le système ci-dessus. 2. Pour l’un des cas d’utilisation ci-dessous, écrivez une description textuelle du cas (scenario nominal, un scenario alternatif, et un scenario d’exception) : Initialiser dossier médical Rechercher patient 3. Modélisez le scenario nominal du cas choisi sous forme d’un diagramme de séquence en boite blanche 4. Modélisez la structure logique du système sous forme d’un diagramme de classes. Un modèle complet comprenant les méthodes utilisées dans le diagramme de séquence précédent est exigé mais sans les constructeurs et accesseurs. 5. Donner le diagramme d’état-transition de la classe Patient. 6. Question bonus : Diagramme de composants de l’application. 2/7 Remarque : Vous êtes évalués sur votre connaissance de la syntaxe UML et la bonne application de la sémantique UML pour décrire les différents aspects fonctionnels, structurels et comportementaux du système à l’étude. Diagramme des cas d’utilisation (4 pts) : Si dossier inexistant System GestionHospitalisation <<extend>> initialiserDossierMedical créerDossierPatient SecretaireMedicale <<include>> s'identifier <<include>> saisir compte-rendu <<extend>> Infirmiere 3/7 consigner soins Description textuelle d’un cas d’utilisation (1,5 pts) : 4/7 Diagramme de séquence en boite blanche (2 pts) : 5/7 Diagramme de classes (5 pts) : Hopital Service -nom: String -codePostal: Integer 0..* 1 1..* Employe -codeService: Integer -nom: String 0..1 Chambre 1..* -numero: String -type: String +affecterPatient() Hospitalisation -dateEntree -dateSortie -compte-rendu: String ChefService 1..* -idEmp: Integer -nom: String -telephone: Integer -login: String -motdepasse: String Lit -numSerie: Integer -typeLit: String 1..* Patient 0..* 0..* Medecin -specialite: String -numPatient: Integer -numSS: Integer -nom: String -mutuelle: String 1 1 Infirmier DossierMedical AideSoignante SecretaireMedicale 6/7 Diagramme d’état-transition de la classe Patient (1,5 pts) : admis en hospitalisation admis en soins H Non gueri ou décédé ? Oui Diagramme de composants (1 pts) : NavigateurInternet Chrome Serveur web Apache Serveur application JBoss Application GestionHospitalisation Serveur BDD MySQL Bon courage 7/7