CSC4002 : Contrôle continu «Bureau d Étude noté» Date : lundi 5 décembre 2011 Durée : 2H. Coordonnateurs : Christian Bac et Denis Conan

Documents pareils
UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

Nom de l application

TP3 : Manipulation et implantation de systèmes de fichiers 1

«Dire et écrire» pour réaliser une composition en travail collaboratif en géographie. Agnès Dullin, lycée J. Racine 20 rue du Rocher, Paris

AGASC / BUREAU INFORMATION JEUNESSE Saint Laurent du Var - E mail : bij@agasc.fr / Tel : CONSIGNE N 1 :

mailpro mode d'emploi

Conception des systèmes répartis

Vos outils CNED COPIES EN LIGNE GUIDE DE PRISE EN MAIN DU CORRECTEUR. 8 CODA GA WB 01 13

Table des matières Sources

SECTION 5 BANQUE DE PROJETS

Connectiques et Utilisation d un disque dur multimédia MMEMUP

Guide d utilisation de la clé mémoire USB

À propos de Kobo Desktop Télécharger et installer Kobo Desktop... 6

Styler un document sous OpenOffice 4.0

TD3: tableaux avancées, première classe et chaînes

GOL502 Industries de services

MEGA ITSM Accelerator. Guide de Démarrage

Chapitre 2. Classes et objets

Premiers Pas en Programmation Objet : les Classes et les Objets

PLATEFORME ANTI-CORRUPTION AU CAMEROUN

Formation Word/Excel. Présentateur: Christian Desrochers Baccalauréat en informatique Clé Informatique, 15 février 2007

Rappel sur les bases de données

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

B-web V4 MANUEL D UTILISATION. Espace de travail. Clear2Pay Belgium SA B-web V4 Manuel d Utilisation: Espace de travail

espace de partage Explication rapide

Mode d emploi de la clef USB de l I.P.I. Philosophie de la clef USB

Solutions en ligne Guide de l utilisateur

Première expérience?

OUTILS DE GESTION ET D EVALUATION AU POSTE : Collecte/réparation/vente d électroménager. Assistant(e) secrétaire commercial(e)

Indications pour une progression au CM1 et au CM2

Ecran principal à l ouverture du logiciel

Etudier l influence de différents paramètres sur un phénomène physique Communiquer et argumenter en utilisant un vocabulaire scientifique adapté

Cours STIM P8 TD 1 Génie Logiciel

Mode d Emploi. Résult Arc Logiciel de Gestion de Compétitions. Droits d utilisation Informations Générales. 1/. Présentation de Résult Arc

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Projet Active Object

Bibliothèque Numérique de l INSA de Toulouse Mode d emploi des livres électroniques NUMILOG

Les diagrammes de modélisation

2. Pour accéder au Prêt numérique, écrivez dans la barre d adresse de votre navigateur Web.

CREER ET ANIMER SON ESPACE DE TRAVAIL COLLABORATIF

Documentation. Manuel Utilisateur. E-Shop

Algorithmique et programmation : les bases (VBA) Corrigé

Votre Réseau est-il prêt?

2. Pour accéder au Prêt numérique, écrivez dans la barre d adresse de votre navigateur Web.

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Authentification unique Eurécia

TP1 : Initiation à Java et Eclipse

Notice d utilisation

Initiation à Excel. Frédéric Gava (MCF)

Comment consulter les e- books à l Université de Lorraine?

Support de formation Notebook

Ingénérie logicielle dirigée par les modèles

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

MEGA ITSM Accelerator. Guide de démarrage

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

a et b étant deux nombres relatifs donnés, une fonction affine est une fonction qui a un nombre x associe le nombre ax + b

Utilisez Toucan portable pour vos sauvegardes

Le Guide Pratique des Processus Métiers

Zotero est une extension du navigateur Firefox. Il est possible de télécharger Firefox gratuitement sur le site:

Chapitre VI- La validation de la composition.

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Unity Real Time 2.0 Service Pack 2 update

Pour accéder au Prêt numérique

Modélisation et Gestion des bases de données avec mysql workbench

Gérer son Google Drive pour gérer ses informations : le tutoriel

sicareme.com : Tél. :

Utilisation du logiciel ModellingSpace

EXERCICES UML. Modéliser cette situation par un diagramme de cas d utilisation. Consulter planning

Guide de l utilisateur. Faites connaissance avec la nouvelle plateforme interactive de

COURS WINDEV NUMERO 3

PROGRAMME PROVISOIRE. Degré 9 (1CO)

Liseuses et tablettes électroniques

Sommaire. G. Pujolle, F. Ravat, C. Soulé-Dupuy, G. Zurfluh

ACDSee 9 Gestionnaire de photos

UTILISATION DU LIVRE NUMÉRIQUE

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Le langage C. Séance n 4

Installation d un ordinateur avec reprise des données

The Grid 2: Manuel d utilisation

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Guide d utilisation de la bibliothèque en ligne du FMI Création d un livre personnalisé

Modules InnovationCRM

FORMATION MULTIMÉDIA LVE

Comment utiliser RoundCube?

Base élèves : des étiquettes avec OpenOffice 2.0

Les chaînes de caractères

Entraînement au concours ACM-ICPC

UML et les Bases de Données

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Patrons de Conception (Design Patterns)

Documentation. Manuel Utilisateur. E-Shop

A LA DÉCOUVERTE DE ZOTERO 4.0

(Leçon 1) Cours du mardi à FEGERSHEIM, de 09h30 à 11h30.

Utilisation d objets : String et ArrayList

Cours d initiation à la programmation en C++ Johann Cuenin

Les données d un jeu sous Shadow Manager

AIDE à l utilisation du cédérom «L athlétisme à l école» Niveau Primaire SOMMAIRE

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

1. Création du profil

Transcription:

Corrigé et Barème Contrôle de connaissances 2011/2012 des étudiants de 2 è année (EI2) CSC4002 : Contrôle continu «Bureau d Étude noté» Date : lundi 5 décembre 2011 Durée : 2H Coordonnateurs : Christian Bac et Denis Conan Les seuls documents autorisés sont ceux distribués en cours / BE / TP et mis à disposition sur le site Web du module, ainsi que vos notes personnelles. Notes en préambule : le travail doit se faire individuellement ; n oubliez pas d indiquer votre nom sur chaque feuille rendue ; soyez concis et précis, et justifiez vos réponses par des commentaires appropriés ; soyez rigoureux dans la syntaxe UML ; veillez à rendre une copie propre et lisible.

1 Sujet Étudions, analysons et concevons un système de gestion de liseuses (en anglais, e-book readers). Une liseuse (cf. Figure 1) est un dispositif électronique permettant de stocker et de lire des livres et des documents électroniques. La particularité de ces dispositifs est d utiliser une encre électronique au lieu d un écran rétro-éclairé comme celui d un ordinateur classique. Pour information, l encre électronique est une technologie d affichage cherchant à imiter l apparence d une feuille de papier imprimée, le but étant une moindre fatigue occulaire qui permet au lecteur de lire pendant plusieurs heures sans se fatiguer les yeux. Figure 1 Exemple de liseuse (Source de l image : wikimedia avec mot de recherche «liseuse») Une liseuse est un équipement personnel, au même titre qu un téléphone portable, et est donc la propriété d un seul utilisateur. Un utilisateur peut même posséder plusieurs liseuses. Par conséquent, le seul utilisateur du système de gestion de liseuses dans cet exercice est le propriétaire. Dans la suite de l énoncé, le système de gestion de liseuses est appelé LisIT. LisIT sait gérer des documents électroniques dans différents formats, mais, afin de simplifier l étude cas, nous ne considérons que des documents au format PDF. Toujours pour simplifier l étude de cas, nous considérons dans la suite que les documents sont affichés page complète par page complète. Une autre simplification est de considérer que les documents électroniques sont paginés (organisés) avec une seule colonne par page. LisIT gère, pour l utilisateur du système, un ensemble de liseuses appartenant à cet utilisateur. Chaque liseuse contient des documents classés dans des collections, qui possèdent un nom (par exemple, «romans», «science fiction», «documents professionnels»). Le nom identifie la collection. Un document peut appartenir à plusieurs collections et tout document appartient à la collection pré-existante «bibliothèque». Un document est identifié par son code, et possède un titre, des auteurs et un nombre de pages. Une page est constituée d un ensemble de mots. Lorsque l utilisateur lit un document, il peut annoter un ensemble de mots ou une page toute entière. Pour faciliter la recherche d une annotation dans la liste des annotations d un document, chaque annotation possède un nom donné par le lecteur : par exemple, l annotation «mon vers favori» avec le commentaire «le charme, un art de magicien». Ainsi, par exemple, l utilisateur peut formuler l opération suivante : «pour la liseuse Cybook Odyssey, pour le poème Le Chêne et le Roseau de Jean de La Fontaine dont le code est JDLF27, à la page 1, à la ligne 16, pour l expression entre les mots 6 et 8, ajouter l annotation de nom Royaume du vent avec le commentaire référence antique». Pour simplifier, nous supposons que son Télécom SudParis Denis Conan et Christian Bac 5 Décembre 2011 CSC4002 2

nom identifie de manière unique l annotation. En outre, une annotation est attachée à un document, et ce quelques soient les collections auxquelles le document appartient. LisIT gère, pour chaque document, un ensemble de marque-pages (en anglais, bookmarks). Le lecteur peut ajouter ou retirer un marque-page à un document pour retrouver plus rapidement une page lors d une prochaine lecture. Le lecteur associe un nom de son choix (c est-à-dire mnémotechnique) à chaque marque-page. Afin de faciliter la reprise de la lecture d un document à la dernière page parcourue, tout document possède un marquepage de nom «page courante». Lorsque le document n a pas encore été ouvert, le marque page est positionné à la page «0». Une fois encore, c est son nom qui identifie de manière unique le marque-page pour un document donné. En outre, un marque-page est attaché à un document, et ce quelques soient les collections auxquelles le document appartient. LisIT offre une fonctionnalité de synchronisation entre liseuses. Pour ce faire, chaque opération modifiant l état d une liseuse (par exemple, l ajout d un document, la suppression d une annotation) est enregistrée avec une date opérationnelle. Lorsque l utilisateur choisit de synchroniser deux liseuses, LisIT exécute les opérations effectuées sur l une des liseuses sur l autre liseuse. En cas de conflit (par exemple, une annotation modifiée sur l une des liseuses et la même annotation supprimée sur l autre), LisIT demande à l utilisateur de résoudre le conflit en choisissant d exécuter l une des opérations et d ignorer les autres opérations en conflit. Ainsi, l utilisateur doit synchroniser deux à deux ses liseuses afin de minimiser le risque de conflits et de purger la liste des opérations déjà synchronisées. En guise de simplication, le concept d opération est modélisé comme étant constitué d une date d exécution, d un nom d opération ainsi que d une collection d arguments, chaque argument étant une paire (nom, valeur). Avec ces informations, il est possible de rejouer une opération lors d une synchronisation. Par conséquent, les opérations sont totalement ordonnées selon la date d exécution. Une opération appartient à une liseuse lorsqu elle a été «exécutée par cette liseuse». Lorsqu une opération a été exécutée par toutes les liseuses, elle peut être purgée (c est-à-dire supprimée). Important : par conséquent, le système possède deux modes de fonctionnement. Premièrement, l utilisateur utilise une liseuse particulière pour télécharger des documents (c està-dire les ajouter), lire des documents, ajouter des annotations, etc. Deuxièmement, l utilisateur connecte plusieurs liseuses pour effectuer des synchronisations. Dans la suite, les cas d utilisation des deux modes de fonctionnement seront modélisés dans le même diagramme de cas d utilisation. 2 Questions Question 1 : 2pt Après avoir réalisé une analyse du texte au brouillon, ce qui vous a permis de trouver les noms (substantifs) et les verbes correspondant à ce problème, choisir les classes qui vous semblent devoir faire partie de la modélisation de ce problème. Décrire textuellement ces classes et les attributs associés à chaque classe : donner le nom des classes et de leurs principaux attributs (et des explications textuelles uniquement quand cela vous semble nécessaire). Les classes et attributs obtenus après analyse du texte sont les suivants : LisIT : classe «interface» du système, patron de conception Façade Liseuse : nom ; Télécom SudParis Denis Conan et Christian Bac 5 Décembre 2011 CSC4002 3

Document : code, nomfichier, titre, auteurs, nbpages ; Annotation : nom, nummotdébut, nummotfin, commentaire ; Marque-page : nom, numpage ; Collection : nom ; Bibliothèque : ; classe enfant de Collection ; Opération : date, nom ; Argument : nom, arguments ; acteur Utilisateur comme classe du système attributs d association mélangés aux autres attributs On accepte cependant les attributs d association avec des «@» avoir une classe Page avoir une classe Ligne avoir une classe Numéro Barème de correction sur 2 points : 0,5 classe Liseuse 0,5 classe Document 0,5 classe Collection 0,5 classes Annotation et MarquePage Question 2 : 2pt Décrire les acteurs et les fonctionnalités significatives du système par un diagramme de cas d utilisation. La figure suivante présente les acteurs et les cas d utilisation du système. Télécom SudParis Denis Conan et Christian Bac 5 Décembre 2011 CSC4002 4

Ajouter une liseuse Retirer une liseuse Synchroniser deux liseuses Ajouter un document à une liseuse Lire un document Modifier les caractéristiques d un document d une liseuse Retirer un document d une liseuse Ajouter une annotation à un document Lire le commentaire d une annotation Modifier les caractéristiques d une annotation Lecteur Retirer une annotation Ajouter un marque page Accéder à la page repérée par un marque page Modifier les caractéristiques d un marque page Retirer un marque page Créer une collection d une liseuse Ajouter un document à une collection Retirer un document d une collection Retirer une collection d une liseuse plus d un acteur oublis de certains cas d utilisation, notamment sur les liseuses et les collections Barème de correction sur 2 points : 0,5 respect de la notation UML (délimitation du système, icone de l acteur, lien de communication, phrase verbale, cadre ovale autour des cas d utilisation) 0,5 des cas d utilisation pour les liseuses, y compris la synchronisation 0,5 des cas d utilisation pour les documents et les collections 0,5 des cas d utilisation pour les annotations et les marques-pages Télécom SudParis Denis Conan et Christian Bac 5 Décembre 2011 CSC4002 5

Question 3 : 5pt Construire un diagramme de classes qui représente le système. Dans ce diagramme, prenez soin de préciser les noms des associations, les rôles, les multiplicités et les sens de navigation des associations lorsque cela s avère nécessaire. Vous n avez pas besoin de remettre les attributs dans les classes du diagramme de classes. La figure suivante présente le diagramme de classes proposé en guise de corrigé-type. LisIT Liseuse nom code titre auteurs nbpages 1.. Document Collection nomdecollection Opération date nomopération Bibliothèque Annotation nom numpage nummotdébut nummotfin commentaire 1.. MarquePage nom numpage nombreuses associations redondantes erreur de multiplicité entre la classe Document et la classe MarquePage erreur de multiplicité entre la classe Document et la classe Collection classes Page, Ligne, et Mot pas de classe Bibliothèque, mais une multiplicité 1.. multiplicité de Collection vers Liseuse multiplicité de Document vers liseuse nom valeur Argument Barème de correction sur 5 points : 0,5 pas d erreur de notation UML (classe, nom association, généralisation spécialisation, agrégation, etc.) 0,5 la plupart des multiplicités sont correctes (1 erreur tolérée) 0,5 la classe du patron Façade LisIT 0,5 la classe Liseuse 0,5 l association entre Document et Collection 0,5 l association entre Document et Annotation, voire via la classe Page 0,5 l association entre Document et MarquePage, voire via la classe Page 0,5 la classe Argument avec la classe Opération 0,5 prise en compte de la collection Bibliothèque Télécom SudParis Denis Conan et Christian Bac 5 Décembre 2011 CSC4002 6

0,5 peu d associations en trop ou manquantes Question 4 : 3pt opération. Construire le diagramme de machines à états de la classe modélisant une La figure suivante présente le diagramme de machine à états de la classe Opération. EnConstruction entrée : constructeur() ÀSynchroniser nouvelle synchronisation : exécuter() EnDestruction choix suppression suite à un conflit [opération exécutée par toutes les liseuses] dessiner un diagramme d activité plutôt qu un diagramme de machine à états transition vers l état final avant la destruction du système, état qui ne permet pas d aller vers l état final, une seule transition avec plusieurs conditions et événements au lieu de plusieurs transitions. pas d états «EnConstruction» et «EnDestruction», introduire un état «EnConflit» pour une phase de résolution de conflit Barème de correction sur 3 points : 1 respect de la notation UML (boîte, flèches, événement[condition]/action) + respect de la présence état initial et état final, et absence d état ne permettant pas d aller vers l état final 0,5 présence état <<~Asynchroniser~>> 0,5 transition avec condition exécution sur toutes les liseuses 0,5 transitions avec événement de choix de suppression 0,5 événement de nouvelle synchronisation Question 5 : 5pt Donner le diagramme de communications ou de séquence ou de communications qui correspond au cas d utilisation : «pour la liseuse Cybook Odyssey, pour le document JDLF27, à la page 1, à la ligne 16, pour l expression entre les mots 6 et 8, ajouter l annotation de nom Royaume du vent avec le commentaire référence antique». Nous vous conseillons de détailler les actions correspondant à ce cas d utilisation sous forme textuelle avant de réaliser le diagramme. La figure suivante présente le diagramme de séquence associé au cas d utilisation. La description informelle du cas d utilisation est la suivante : recherche de la liseuse (identifiant = nom) recherche du document (identifiant = code) vérification que l annotation n existe pas (identifiant = nom) si liseuse existe et document existe et annotation n existe pas, créer l annotation Télécom SudParis Denis Conan et Christian Bac 5 Décembre 2011 CSC4002 7

:LisIT l:liseuse d:document <<new>> :Annotation ajouterannotation(args1) l = correspondreliseuse("cybook Odyssey"):Liseuse opt [l!= null] ajouterannotation(args2) d = correspondredocument("jdlf27"):document opt [d!= null] ok=ajouterannotation(args3) a = correspondreannotation( "Royaume du vent"):annotation opt [a == null] <<create(args3)>> opt [ok == true] <<new>> :Opération <<create(args4)>> loop(i,i < args4.length,) <<create( args4[i].nom, args4[i].valeur)>> <<new>> :Argument args1 = "Cybook Odyssey", "JDLF27", "Royaume du vent", 6, 8, "référence antique" args2 = "JDLF27", "Royaume du vent", 6, 8, "référence antique" args3 = "Royaume du vent", 6, 8, "référence antique" args4 = [("liseuse", "Cybook Odyssey"), ("document", "JDLF27"), ("annotation", "Royaume du vent"), ("motdebut", "6"), ("motfin", "8"), ("commentaire", "référence antique")] non-respect du séquencement ou des numérotations, non-respect de la notation UML : objet, etc., pas de test de valeurs retournées ou pas d utilisation des valeurs retournées, pas de fragment avec condition ou pas de condition sur les messages, non respect des liens du diagramme de classes. diagramme de communications, autre expression selon le diagramme de classes. Barème de correction sur 5 points : non notation de la création de l opération non notation de la création des instances d association (dans les copies) Télécom SudParis Denis Conan et Christian Bac 5 Décembre 2011 CSC4002 8

1 respect de la notation UML (objet, classe, condition, fragment, etc.) 1 logique correcte, même si seulement exprimée dans l explication textuelle; 1 conformité au diagramme de classes (parcours d associations existantes et navigabilité possible) 0.5 recherche de la liseuse 0.5 recherche du document 0.5 test de non-existence de l annotation 0.5 création de l annotation Question 6 : 3pt Nous nous intéressons à la conception de la classe qui permet de décrire un document. Écrire le prototype et l algorithme du constructeur de cette classe. constructeur(c: string, t: string, a: string, n: int, l: @liseuse, b: @Bibliotheque) { code = c titre = t auteurs = a nbpages = n liseuse = l annotations = Collection @Annotation vide pagecourante = createmarquepage( page courante, 0); marquepage = Collection @MarquePage contenant uniquement pagecourante collections = Collection @Collection vide bibliotheque = b } non conforme au diagramme de classes, notamment par rapport aux navigations, attributs sans valeur affectée, oubli de la collection pour traduire la multiplicité, selon le diagramme de classe. Barème de correction sur 3 points : 0,5 conformité avec les attributs donnés dans la question 1 0,5 conformité avec le bon nombre d association du diagramme de classes 0,5 conformité avec les multiplicités du diagramme de classes 0,5 conformité avec les navigabilités du diagramme de classes 0,5 tous les attributs possèdent une valeur et la bonne On ne fait pas de différence entre collection nulle et collection vide Télécom SudParis Denis Conan et Christian Bac 5 Décembre 2011 CSC4002 9