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