IUT de Montpellier Département informatique A2 promo 2008
Transcription
IUT de Montpellier Département informatique A2 promo 2008
18/01/2008 IUT de Montpellier Département informatique A2 promo 2008 INTERROGATION DE GENIE LOGICIEL Enseignants: Alain Joubert, Serge-André Mahé, Hugo Potier, Alain Sabatier durée: 3 heures documents autorisés: notes personnelles manuscrites, programmes et diagrammes personnels, documents pédagogiques mis en ligne ou distribués Barèmes indicatifs Partie 1 : questions de cours Question 1 : modélisation d’objets persistants (3 points) Les diagrammes de classe de l’annexe 1 correspondent à la modélisation de deux objets persistants que l’on retrouve non seulement dans le MCD à objets (conception du système d’information) mais aussi dans le MRD (modèle conceptuel de la base de données relationnelle) et les sources du logiciel (programmé en PHP 5 ou en Java). Proposez un identifiant de l'objet participation d’une personne à un événement et ce, dans chacune des trois situations figurées dans l'annexe: − en tant qu’objet persistant, − en tant que nuplet d’une table, − dans la programmation. Question 2 : décomposition du système d'information en processus (3 points) 2-1) En considérant les diagrammes de l’annexe 2, proposez une place pour faire figurer les processus qui réagissent aux deux événements suivants (en justifiant votre réponse): a) clic dans la commande proposition du menu gestion des événements de la fenêtre d'accueil de l’intranet de l'entreprise OMNIPROD. b) clic dans la commande publication du menu gestion des événements de la fenêtre d'accueil de l’intranet de l'entreprise OMNIPROD, 2-2) A partir du moment où la publication de certains événements est réservée à certaines personnes, comment comptez-vous vous y prendre pour autoriser la publication d’un événement aux personnes qui en ont «les droits d'accès»? Question 3: agilité (2 points) Dans la devise du cours orare et operare on indique à l'aide d'une métaphore que la technologie objet permet de modéliser la demande d'utilisation et d'obtenir automatiquement à partir du même document une version ou une maquette de la partie correspondante du logiciel. Prenez comme exemple les diagrammes de classe UML d’une part, les diagrammes états transition UML d’autre part et indiquez comment cela est possible. IUT d’informatique de Montpellier Serge-André Mahé et al 18/01/2008 Partie 2 : développement Question 6 : diagramme états transitions d’utilisation (3 points) Compléter le diagramme d’états transitions de l’annexe 3 avec le cycle de vie (ou processus de développement) que vous avez utilisé pour votre projet tuteuré. Prévoyez au moins trois états et introduisez une boucle de rétroaction qui s'est produite ou qui pourrait se produire. Question 7: diagramme état transition de programmation (5 points) Soit un classe événement dans une application agenda dont le diagramme états transitions est donné à l’annexe 4. On vous demande de modifier cet automate sachant qu’un événement ne peut pas être lancé si : − une semaine avant le début de l'événement, le nombre d'inscrits n’est pas suffisant (un nombre minimum d’inscrits a été fixé au moment de la publication), dans ce cas l’événement est bel et bien annulé. − le compte d'exploitation prévisionnel (qui peut être mis à jour une fois l’événement publié) devient déficitaire, dans ce cas l’événement doit être temporairement ajourné. Question 8: passage à la programmation (4 points) 8-1) Modifiez la programmation de la page PHP/HTML proposée en annexe 5 pour effectuer la mise à jour suivante : lors de la création d’un nouveau membre, on veut vérifier qu’un membre de même nom et de même prénom n’existe pas déjà dans la base de donnée. Si c’est le cas on veut prévenir l’utilisateur. 8-2) Proposez au moins un diagramme de séquences UML qui dans le cas ci-dessus, non seulement prévienne l’utilisateur mais lui permette aussi d’opter pour l’une des options suivantes: - procéder à une mise à jour de la table membre, avec les nouvelles valeurs saisies, - créer un nouveau membre en modifiant la valeur du prénom afin de pouvoir le distinguer du membre qui existe déjà. Dans cette programmation veillera à créer une couche objet (avec un objet événement) facile à programmer notamment avec l’instruction mysql : mysql_fetch_object() ; qui transforme un nuplet directement en objet. FIN IUT d’informatique de Montpellier Serge-André Mahé et al 18/01/2008 ANNEXE 1 auteur * 1 participation personne événement * * <<description>> extrait M CD agenda participation personne participation événement <<description>> extrait M RD agenda 1 * personne événement auteur 1 * participation <<description>> extrait sources agenda IUT d’informatique de Montpellier Serge-André Mahé et al 18/01/2008 ANNEXE 2 logiciel société OM NIPROD intranet agenda comptabilité/ressources/logistique usager contrôle de production <<description>> découpage en sous-systèmes logiciel agenda OM NIPROD validation proposition validation inscription proposer inscrire validation publication usager publier <<description>> délimitation événementielle de l'agenda IUT d’informatique de Montpellier Serge-André Mahé et al