OFPPT Office de la Formation Professionnelle et de la Promotion du Travail Direction de la Recherche et de l’Ingénierie de Formation Examen de Fin de formation Filière : CRJJ Durée : 3h :00 Epreuve Barème : Théorique : 40 points Exercice 1: (15 pts) Un centre hospitalier régional souhaite développer une nouvelle application pour la gestion des visites et des séjours d’hospitalisation de patients dans ses services. Tout premier passage d’un patient au sein de l’hôpital, qu’il s’agisse d’une visite ou d’une hospitalisation, implique son inscription. Cette inscription consiste à lui affecter un numéro qui permettra de l’identifier lors de toute nouvelle visite ou hospitalisation ultérieure. Tout patient est également caractérisé par ses nom, prénom, coordonnées postale et téléphonique. Lorsqu’il s’agit d’une simple visite, l’accueil de l’hôpital note le médecin que le patient vient consulter, ainsi que la date et l’heure de la visite. Une fois la visite terminée, le médecin doit reporter dans le dossier patient l’ensemble es actes pratiqués sur le patient, ainsi qu’un compte rendu pour chaque acte. Par exemple, un patient venant consulter le Dr XX pour une douleur persistante à l’épaule pourra être amené à effectuer une radio auprès du docteur YY (ce qui donnera lieu à deux visites et à un acte par visite). Lorsqu’il s’agit d’une hospitalisation, l’accueil de l’hôpital note la date d’entrée du patient, la chambre dans laquelle le patient est hospitalisé, ainsi que le motif du séjour à l’hôpital. Une fois l’hospitalisation terminée, l’accueil enregistre la date de sortie du patient. Il s’avère que pour des raisons évidentes de gestion, lors de l’arrivée du patient, l’accueil enregistre un date prévisionnelle de sortie. C’est cette même date qui est modifiée lors de la sortie effective du patient. Tout au long de l’hospitalisation, le personnel soignant reporte également l’ensemble des actes à pratiquer sur le patient, le médecin qui doit pratiquer chaque acte, ainsi que la date et l’heure de l’acte (exactement de la même manière que pour les visites). Une fois l’acte terminé sur le patient, le médecin ayant pratiqué cet acte doit enregistrer son compte rendu dans le dossier patient. Les autres informations nécessaires à une gestion efficace des visites et des hospitalisations concernent les services, les médecins et les actes. Tout acte est caractérisé par un code, un libellé, une durée prévisionnelle et un coût. Chaque acte correspond à une spécialité précise, elle-même caractérisée par un code et un libellé. Lorsqu’il s’agit d’une hospitalisation, cette durée représente la durée minimale de séjour d’un patient pour cet acte. Les services sont répertoriés avec un code et un nom. Chaque service comprend et gère un certain nombre de chambres. Chaque chambre est caractérisée par un numéro unique (une chambre n’est gérée que par un seul service) et un nombre de lits. On souhaite ainsi pouvoir connaître le nombre de lits dont dispose chaque service, la liste des médecins affectés à chaque service (soit à titre principal, soit pour des visites). Chaque médecin est répertorié avec ses code, nom, prénom, téléphone, Filière : TSDI Niveau : Nom du concepteur : K. DAOUDI GSM : Etablissement : CFMOTI OFPPT Office de la Formation Professionnelle et de la Promotion du Travail numéro de bureau, numéro de bipeur, ses spécialités (un médecin possède au moins une spécialité), le service auquel il est affecté, ainsi que son titre (par exemple, praticien hospitalier, chef de clinique, …). 1. Donner le diagramme des cas d’utilisation propres au système de gestion des hospitalisations des patients de cet hôpital; (6 pts) 2. Donner les scénarios majeurs des cas d’utilisation proposés; (4 pts) 3. Donner le diagramme des classes global de l’application. (5 pts) Vous pourrez poser les hypothèses que vous jugerez nécessaires dans le but de répondre aux problèmes posés. Exercice 2: (6 pts) Soit t un tableau d'entier. Ecrire un programme java qui permet d'afficher les éléments distincts de T, ainsi que leur nombre d'occurrence dans le tableau. Exercice 3 : (12 pts) Entourez la ou les bonnes réponses (seulement la lettre). 1- Quelles sont les méthodes utilisées par une servlet pour gérer les données envoyées par un client via un formulaire HTML ? (1 pt) A. HttpServlet.doHead() B. HttpServlet.doPost() C. HttpServlet.doForm() D. ServletRequest.doGet() E. ServletRequest.doPost() F. ServletRequest.doForm() 2- Comment un développeur gère-t-il la méthode service() de son servlet, lorsque ce dernier étend HttpServlet ? (1 pt) A. Il redéfinit la méthode service(). B. Il redéfinit une méthode doXXX(). C. Il appelle la méthode service() depuis une méthode doXXX(). D. Il appelle la méthode service() depuis la méthode init(). E. Il n’a rien à faire… 3- Sur quels types d’objets peut-on utiliser les méthodes getAttribute() et setAttribute() ? (3 pts) A. HttpSession B. ServletRequest Filière : TSDI Niveau : Nom du concepteur : K. DAOUDI GSM : Etablissement : CFMOTI OFPPT Office de la Formation Professionnelle et de la Promotion du Travail C. ServletResponse D. ServletContext E. ServletConfig F. SessionConfig 4- Soit le code suivant : (1 pt) <html> <body> Le chiffre à deviner est : <%= Math.random();> </body> </html> Qu’affiche cette JSP à la suite de « Le chiffre à deviner est : » ? A. Un nombre aléatoire. B. <%= Math.random() ;> C. Math.random() ; D. Elle n’affiche rien…. 5- Parmi les balises suivantes quelles sont celles que l’on peut utiliser dans une JSP pour afficher la valeur d’une expression Java sur la sortie ? (2 pts) A. <@ > B. <% > C. <%= > D. <%! > E. <%$ > Note : Il manque les % sur la balise fermante. 6- Soit le code de la JSP test.jsp suivant : (1 pt) 1 <html> 2 <head><title>A Comment Test</title></head> 3 <body> 4 <h2>A Test of Comments</h2> 5 <!-- This is Html Hidden Comment --> 6 7 <%-- This is JSP Hidden Comment --%> </body> 8 </html> A l’exécution de test.jsp, devinez quel sera la sortie correspondante ? A. La ligne 5 sera insérée dans la réponse mais pas la ligne 6. B. Les lignes 5 et 6 seront insérées dans la réponse. Filière : TSDI Niveau : Nom du concepteur : K. DAOUDI GSM : Etablissement : CFMOTI OFPPT Office de la Formation Professionnelle et de la Promotion du Travail C. Les lignes 5 et 6 ne seront pas insérées dans la réponse. D. La ligne 6 sera insérée dans la réponse mais pas la ligne 5. 7- Quelle(s) sont(est) les EL valables qui permettent de retourner la property « nom » du bean Etudiant ayant pour scope la session : (2 pts) A. ${Etudiant.nom} B. ${Etudiant.getNom()} C. ${sessionScope.Etudiant["nom"]} D. ${session["Etudiant"].nom} 8- Qu’affiche le code suivant ? (1 pt) <c:forEach step="2" begin="3" end="8" varStatus="status"> <c:if test="${status.first}">[</c:if> ${status.index}, <c:if test="${status.last}">]</c:if> </c:forEach> A. 3,5,7,8, B. [3,5,7,] C. [3,5,7,8,] D. [3,5,7] E. 2,3,4,5,6,7,8 Exercice 4: (7 pts) Cet exercice s’intéresse à la conception d’une application de gestion de club-vidéo à l’aide de J2EE. La gestion des abonnés et du catalogue de films est réalisée à l’aide de composants EJB. Un abonné possède un numéro, un nom et une adresse. Un film possède un titre, un genre (policier, SF, comédie) et une année de sortie. On veut pouvoir créer un abonné et rechercher un abonné à partir de son nom. On veut pouvoir créer un film, rechercher un film à partir de son titre, rechercher les films d’un certain genre et rechercher les films sortis une année donnée. 1- Quel type de composants EJB faut-il utiliser pour les abonnés ? Pourquoi ? Mêmes questions pour les films ? (2 pts) 2- Ecrire les interfaces Java des composants EJB correspondant aux abonnés et aux films. (3 pts) 3- Décrire en français les autres fichiers à écrire pour compléter la gestion des abonnés et des films (le code de ces fichiers n’est pas demandé). Vous expliquerez en 1 ou 2 phrases le contenu de chacun de ces fichiers. (2 pts) Filière : TSDI Niveau : Nom du concepteur : K. DAOUDI GSM : Etablissement : CFMOTI