Home | Travaux STAF | STAF 18 / Jacques Monnard |
Jacques Monnard (email: jacques.monnard@unifr.ch)
Le dispositif réalisé correspond globalement aux spécifications, et sa mise en oeuvre n'a pas posé de difficultés particulières. Il diffère cependant légèrement des spécifications sur deux points:
L'implémentation proprement dite s'est déroulée en trois étapes principales (cf. plan de travail):
A titre d'exemple, le fragment de code ci-dessous montre comment les commentaires sur un module sont affichés (les ordres ASP pour le serveur web sont délimités par <% (instruction à exécuter) ou <%= (affichage d'un résultat dans la page web), et %>, et sont affichés en bleu).
<% Set Conn = Server.CreateObject("ADODB.Connection") 'Création d'un objet "connexion" Conn.Open "modules" 'Connexion à la base de données Set RS = Server.CreateObject("ADODB.RecordSet") 'Création d'un object "record set" sql = "SELECT * FROM modules_comments WHERE modules_comments.module_id = " & tmp & " ORDER BY date_entered DESC" 'Création d'un ordre SQL pour accéder aux commentaires RS.Open sql, Conn, adOpenKeyset,adLockReadOnly 'Exécution de l'ordre SQL If NOT RS.Eof Then %> <TR><TD><B><FONT SIZE="+1">Commentaires</FONT></B><P></TD></TR> <% End if Do While not RS.Eof 'Affichage des commentaires %> <TR><TD COLSPAN="2" BGCOLOR="#E2DEC8"><B><%= RS("title") %></B> (<%= FormatDateTime(RS("date_entered"),vbShortDate) %>)</TD></TR> <TR><TD COLSPAN="2" BGCOLOR="#F7F1E2">De: <%= RS("submitter_name") %> (<A HREF="mailto:<%= RS("submitter_email") %>"><%= RS("submitter_email") %> </A>)</TD></TR> <TR><TD COLSPAN="2" BGCOLOR="#F7F1E2"><%= RS("comment") %></TD></TR> <% RS.MoveNext Loop Rs.Close 'Fermeture du record set Conn.Close 'Fermeture de la connexion %>
Durant cette troisième étape, l'interface définie à l'étape précédente a été adaptée en fonction des tests réalisés.
En ce qui concerne le code d'accès qui permet de modifier un module, il s'agit d'un nombre aléatoire à 6 chiffres (1 million de possibilités), généré automatiquement par le système lors de la création du module. On pourrait imaginer un système plus sophistiqué si cela s'avérait nécessaire.
Pour ce prototype, la liste des disciplines ne contient que 10 branches, et elle devrait être complétée pour un usage réel.
La démarche de type "project management" adoptée pour ce projet place sa réalisation dans un cadre assez strict, qui n'est pas toujours facile à respecter. Cette façon de faire, présente cependant des avantages, même en travaillant seul, car elle oblige à bien réfléchir sur les différents aspects du dispositif (interface, fonctionnement, etc.) avant de commencer à le réaliser (ce qui n'est pas toujours mon cas ;-). De plus, le fait de fixer un calendrier de réalisation précis fournit une motivation fort utile à certains moments, même si elle est plutôt "extrinsèque". Par contre, le fait de devoir respecter les spécifications de manière assez stricte entre un peu en contradiction avec une approche fréquemment utilisée en informatique, celle du prototypage, dans laquelle on crée une première version du logiciel, qu'on teste, qu'on modifie, et ainsi de suite. Pour combiner partiellement ces deux démarches, on peut cependant procéder en deux étapes pour les spécifications: à partir de spécifications définies de manière assez générale, on réalise un prototype qu'on soumet au "client", et on fixe ensuite des spécifications plus précises qui serviront à implémenter la version finale du système.
Pour ce qui est du dispositif lui-même, la spécification avait mentionné la possibilité pour l'utilisateur de charger directement le contenu d'un module (p. ex. un programme) dans la bibliothèque, en indiquant que cette option ne serait pas implémentée. Il est clair cependant qu'une telle fonctionnalité serait très utile, et elle sera probablement mise en oeuvre si la bibliothèque de modules est reprise dans le cadre du site edutech. Mais cela nécessitera une réflexion plus poussée, car différents problèmes sont à résoudre: taille maximale des fichiers autorisés, contrôle d'accès, possibilité de disposer d'une espace disque suffisant pour stocker les modules, etc.
Home | Travaux STAF | JM, juin 1998 |