Interrogation individuelle de deuxième année en génie logiciel pour la première partie : documents non autorisés sauf les exemples de diagrammes distribués pour l'étude de cas covoiturage. pour la deuxième partie, documents autorisés : les notes personnelles manuscrites, les polycopiés distribués en cours ou en TD, des extraits de documents mis en ligne sur l'ent. les barèmes sont indicatifs et la durée est de 2 heures première partie : sans les documents (0 points) Question modélisation (2 points) On considère une requête SQL qui soit s'exécuter sur un SGBD relationnel, à quel(s) axe(s) de modélisation (valeurs à mémoriser, fonctions à exécuter, processus à synchroniser) se rapporte-t-elle et pourquoi? Elle se rapporte aux valeurs à mémoriser dans la mesure où la requête aura pour résultat ou pour paramètre des tables du SGBD. Elle se rapporte aux fonctions à réaliser puisque la requête elle même est une fonction. Elle se rapporte à processus à synchroniser dans la mesure où son exécution nécessitera la synchronisation de processus. En particulier l'ouverture en lecture nécessite la mise en place d'une exclusion mutuelle. Question 2 diagramme de classe (2 points) Pour l'application covoiturage, on souhaite modéliser des trajets mais aussi des itinéraires. Un itinéraire étant composé de plusieurs trajets successifs. Proposer 2 modélisations UML d'un itinéraire, l'un utilisant une composition et l'autre un héritage. Solution Serge-A. Mahé et al
solution 2 Question 4 diagramme de cas d'utilisation (2 points) On vous demande de traduire sous la forme d'un diagramme de cas d'utilisation (use cases) l'énoncé suivant : Chaque étudiant, pour attester de sa présence en TD doit porter un badge. Des lecteurs de badge situés dans les salles détectent les étudiants passant à proximité. Par ailleurs la secrétaire du département saisit les absences excusées sur une interface usager. Pour chaque plage horaire d'enseignement figurant sur l'emploi du temps, une table de présences mémorise les absences en précisant pour chaque étudiant s'il a été présent, absent ou excusé. En fin de semestre, un logiciel de gestion pédagogique fait figurer sur le bulletin de notes de chaque étudiant le nombre de ses absences non excusées. Le diagramme ci-dessous est la délimitation événementielle du logiciel de contrôle de présence : Serge-A. Mahé et al 2
Question 5 diagramme de séquence ou d'interaction (4 points) Un usager propose un covoiturage mais au lieu de prendre en compte cette proposition, le service de covoiturage lui offre une place libre dans un covoiturage déjà existant pour éviter de faire rouler une voiture supplémentaire et contribuer ainsi à limiter les embouteillages. Serge:usager intranet IUT Michèle:usager intranet IUT covoiturage:logiciel offrir( 'Croix d'argent', 'Occitanie', demain matin arrivée : 8h5 ) recherchercovoituragesvoisins( offre('serge') ) offre < demande CréerCovoiturage( offre('serge') ) offre publiée offrir( 'Yves du Manoir', 'Occitanie', demain matin arrivée : 8h 30 ) recherchercovoituragesvoisins( offre('michèle') ) offre('serge') trouvée avec une place de libre CréerCovoiturage( demande('michèle') ) inscrire( 'Michèle', covoiturage('serge') ) inscription à confirmer Serge-A. Mahé et al 3
deuxième partie : avec les documents (0 points) On vous demande de proposer des modifications au dossier UML de l'étude de cas COvoiturage pour les mises à jour ci-dessous. Pour donner votre réponse vous pouvez modifier les diagrammes qui vous sont donnés en exemple mais vous pouvez aussi proposer vos propres documents conceptuels si vous préférez. Généralisation du service (3 points) Le service de covoiturage va être proposé maintenant aux étudiants et aux membres du personnel de l'um2. Le serveur restera à l'iut mais les droits d'accès seront vérifiés à l'um2 dont l'iut est une composante (mêmes droits d'accès que pour l'ent). Dans le diagramme de classes (cf partie rouge du MCD). Dans le diagramme de use cases on peut rajouter la connexion à l'ent et au service de covoiturage. Développement durable (3 points) Comme l'um2 s'est engagée dans une démarche de développement durable, le service de covoiturage devra : estimer le bilan carbone du CO-voiturage On souhaite dans un premier temps pouvoir totaliser le nombre de km parcourus par COvoiturage pour chaque jour ouvrable. Il faut estimer la distance de chaque covoiturage. Ce peut être fait lorsque l'on crée un nouveau trajet il faut demander à un serveur externe (celui de Mappy par exemple) de communiquer la distance qui doit être ajoutée comme attribut (cf partie bleue du MCD). La mention chaque jour ouvrable nécessite un nouveau use case (cf use case bleu de la délimitation). évaluer le lien social créé par CO-voiturage On souhaite connaître chaque jour ouvrable le pourcentage des CO-voiturages qui ont pour passagers à la fois des étudiants et des membres du personnel. Via l'ent, on sait si l'usager de covoiturage est étudiant ou membre du personnel. Le use case de la modification précède peut servir à nouveau. réduire le budget transport On veut pouvoir calculer pour chaque jour ouvrable le coût global du CO-voiturage en tenant compte d'un forfait kilométrique dépendant de la puissance fiscale du véhicule utilisé. Exemple : le coût de covoiturage pour une voiture de 5 chevaux fiscaux qui a parcouru une distance d exprimée en km est : d x 0,52. Il suffit de vérifier que le nombre de chevaux fiscaux est un attribut de la classe voiture. Le use case des deux modifications qui précèdent peut resservir. Serge-A. Mahé et al 4
Mise en place d'itinéraires (4 points) Cette opportunité devra entrainer une modification du diagramme de classe (cf question 2) mais aussi autoriser des changements de véhicule. On pourra pour cela proposer un scénario de changement de véhicule au LIRMM. pour un usager allant de la croix d'argent au restaurant universitaire du triolet. Si vous manquez de temps pour cette mise à jour, vous pouvez simplement indiquer les modifications à prévoir Modifications : On considère qu'un trajet est décomposable (cf modification verte du MCD). Un trajet correspond donc parfois à un itinéraire. Pour réaliser un changement il est possible d'intégrer à la recherche de covoiturages voisins la recherche de covoiturages allant moins loin ou plus loin dans la même direction. Ce qui permet le scénario proposé en UML. FIN Serge-A. Mahé et al 5
itinéraire * puissance fiscale forfaitkm : real nombrecv : integer départ * voiture constructeur : string modèle : char covoiturage départ : horaire arrivée : horaire distance() mesureliensocial() coùtdéplacement() trajet distance : integer arrêt arrivée 0.. * réservation place type : string numéro : integer passager e-mail : char conducteur validité : boolean usager de l'ent membre du personnel étudiant Année 2 promo 200 Département informatique IUT de Montpellier 7//200 0.. numéro de permis : string téléphone mobile : string usager covoiturage * * numéro de place : integer numéro minéralogique : string description lieu : string position : trame GPS Serge-A. Mahé et al 6
Serge:usager covoiturage covoiturage:logiciel offrir( 'croix d'argent', 'LIRMM', horaire de fin : 2h ) recherchercovoituragesvoisins( covoiturage ('Serge') ) trouvé passager possible allant au Triolet recherchercovoituragesvoisins( 'LIRMM', 'Triolet', heure d'arrivée : 2h 30 ) inscrire( covoiturage('serge') ) inscrire( offre('lirmm', 'Triolet', arrivée : 2h 5 ) Serge-A. Mahé et al 7