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