Valid XHTML     Valid CSS2    

DECRA, T.P. 5 :

     Fonctions, cahier des charges et modification d'un gros programme

Décomposition, Conception et Réalisation d'Applications

                    gilles.hunault "at" univ-angers.fr

 

Table des matières cliquable

  1. Gérer la liste des fonctions d'une application

  2. Un cahier des charges pour la prise de rendez-vous

  3. Modifier un "gros" programme

  4. Réécrire un gros programme

 

Il est possible d'afficher toutes les solutions via ?solutions=1 et de les masquer via ?solutions=0.

 

1. Gérer la liste des fonctions d'une application

On trouvera dans l'archive shsp.zip une copie à peu près complète du site sHSPdb qui recense des petites protéines HSP. Cette archive a une taille un peu inférieure à 8 Mo et contient 266 fichiers, dont 52 fichiers PHP (mais qui ne sont pas tous utilisés dans le site).

               non su

On se propose ici de fournir une aide au programmeur sous forme d'une liste des fonctions utilisées à partir du fichier index.php. On voudrait produire dans un premier temps un fichier qui recense les fichiers inclus, les fonctions et l'endroit où elles sont définies, comme dans le fichier shspdb_fns.txt. Ecrire pour cela un script qui utilise un fichier de départ (ici index.php) passé en paramètre et qui construit une telle liste.

Fichier shspdb_fns.txt

Quelle charge de travail supplémentaire serait requise si on voulait produire une interface de ces fonctions comme pour le PHP conceptuel ? Pour mémoire, cette interface est ici.

On commencera bien sûr par se poser la question du langage de programmation à utiliser et par écrire un plan de développement.

Pour cet exercice, on pourra définir un répertoire Shspdb et y rapatrier l'archive comme suit :


     cd     ~/Mes_projets_web
     mkdir  Shspdb
     cd     Shspdb
     wget   http://forge.info.univ-angers.fr/~gh/Decra/shsp.zip
     unzip  shsp.zip
     

Le plan de développement est présenté ici.

Solution :  

 

2. Un cahier des charges pour la prise de rendez-vous

On décide d'aider les enseignants à construire les oraux de présentation de rapport de stage. Ces oraux mettent en présence l'étudiant, le maitre de stage, l'enseignant référent et le directeur de la formation. Sachant que ces oraux se déroulent sur deux jours pour une plage horaire de 9 h à 12 h puis de 14 h à 18 h et que chaque oral occupe un créneau de 30 minutes (20 minutes d'exposé et questions plus 10 minutes de délibération), essayer de définir toutes les fonctionnalités qu'un site de réservation de créneaux devrait avoir, les classes d'objets et les tables de la base de données à créer. On justifiera les choix retenus.

Quel langage serait le plus adapté ?

Quel moteur de base de données serait le plus adapté ?

Seriez-vous capable de quantifier le temps nécessaire au développement de ce site ?

               non su

On essaiera aussi de choisir et de justifier les technologies à utiliser (serveur Lamp, architecture basée sur Node.js, application Django ou ROR...).

Pourrait-on envisager une solution SAAS ('qu'est-ce  ?) comme pour le tournoi de tennis de Roland-Garros ?

Solution :  

 

3. Modifier un "gros" programme

On décide de compléter le site sHSPdb avec l'ajout d'un menu Users afin de fédérer les utilisateurs du site et les personnes intéressées par les petites protéines HSP. Après avoir rapidement tracé les contours d'un tel menu, indiquez quels fichiers doivent être modifiés et quels fichiers devraient être ajoutés. On trouvera dans l'archive shsp.zip une copie à peu près complète du site à modifier. Le fichier sql_hspdb_dump_16_06_06_janus.mysql de cette archive, une fois décompressé (20 Mo), permet de reconstruire la base de données et ses 13 tables.

Si vous deviez implémenter une copie fonctionnelle du site sur votre ordinateur personnel, à quelles contraintes matérielles et techniques seriez-vous confronté(e) ? Comment pourrriez-vous y répondre technologiquement ?

Ce site est-il fonctionnel pour PHP 7 ? Si non, quelles parties faudrait-il changer ?

Solution :  

 

4. Réécrire un gros programme

Après réflexion, le site sHSP n'est pas bien conçu. On voudrait utiliser un framework PHP pour le réécrire. Quel "grand" framework PHP pourrait-on utiliser ?

Réécrire le site sHSP avec le framework PHP de votre choix. A votre avis, combien de temps faut-il pour le faire ?

Solution :  

 

       retour au plan de cours  

 

Code-source PHP de cette page ; code Javascript associé.

 

retour gH    Retour à la page principale de   (gH)