Home | Travaux STAF  STAF 18 / Jacques Monnard

Projet STAF 18: rapport


  1. Membres du projet
  2. Difficultés et changements par rapport aux spécifications
  3. Implémentation
  4. Discussion

1. Membres du projet

Jacques Monnard (email: jacques.monnard@unifr.ch)

top

2. Difficultés et changements par rapport aux spécifications

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:

top

3. Implémentation

L'implémentation proprement dite s'est déroulée en trois étapes principales (cf. plan de travail):

  1. La première étape fut la création de la base de données. Cela a été fait avec Microsoft Access 97. L'avantage d'un tel environnement (par rapport à un système SQL "pur") est qu'il permet de tester interactivement la base de données en cours de création: après avoir ajouté quelques enregistrements, on peut assez rapidement se faire une idée et savoir par exemple quelle devrait être la taille des champs, lesquels sont utiles ou posent problème (cf. point 2), etc. La description des deux tables qui constituent la base de donneés (modules et commentaires) peut être trouvée ici.

  2. Dans une deuxième phase, l'interface du dispositif (sous forme de pages HTML) a été définie. Une première esquisse générale a été produite, d'abord sur papier, puis en HTML, cette dernière ayant servi de point de départ pour l'étape suivante.

  3. La troisième étape a consisté à programmer le dispositif. Pour cela, nous avons utilisé la technologie des "Active Server Pages" (ASP) de Microsoft, qui fonctionne sur un principe similaire à php: on intègre dans le code HTML d'une page web des instructions (en Visual Basic par exemple), qui sont exécutées par le serveur web. Tout comme avec php, les pages ASP ont une extension spéciale (asp), qui indique au serveur qu'elles doivent être traitées avant d'être envoyées au client. Avec de telles pages, on peut par exemple accéder à une base de données, ou afficher des valeurs calculées en fonction de certains paramètres. On peut aussi définir des fonctions, qu'on appelle depuis chaque page pour pouvoir reproduire facilement les mêmes éléments (c'est le cas par exemple pour les en-têtes et pieds-de-page du dispositif implémenté ici).

    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.

top

4. Discussion

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.

top


Home | Travaux STAF  JM, juin 1998