Actualites  Archives
Diffusez votre communiqué de presse
 Inscription | Plan du site | 52  visiteurs actifs  
  
     A la Une
  Actualités
  Dossiers
  Coin Technique
  Agenda des salons
  Outils Web

     Référencement
  Référencement professionnel
  Liens commerciaux
  Devis référencement

     Diagnostic
  Popularité Site Web
  Positionnement Moteur
  WebPage Alerte
  Positionnement Google

     Archives
  Sélection
  Expérience qui parle
  Internet quotidien
  Tous les dossiers

     Services
  Mise en conformité de site
  Hébergement
  Communiqués de Presse
  Contenu éditorial
  Webmastering

     Contact
  Nous contacter
  La protection des données personnelles

     Technique
  Merise

     Login
   
    
Inscription

Mot de passe oublié?

     Rechercher
    
   

 Actualités > Sélection


Les apports d'UML sur l'enchaînement des pages Web
Afin de parfaitement gérer l'enchainement de pages web, lors par exemple de la saisie de formulaires multiples, il est nécessaire de mettre à plat les circuits potentiels que peut prendre l'internaute. Les diagrammes d'états-transitions d'UML nous offrent un support de documentation qui se prête largement à ce besoin.

Les trois parties d'un script serveur

Si l'on décortique quelques pages actives, on se rend vite compte qu'il y a toujours 3 parties importantes dans les scripts :

  1. Affichage de l'information : texte, liste, formulaire. C'est sur cette page HTML que l'utilisateur fera des choix : des boutons, des liens sont à sa disposition.
  2. Aiguillage. En fonction d'où provient l'utilisateur et de l'action qu'il a choisie, on définit ce que l'on va faire.
  3. Traitements. C'est dans cette partie que l'on va mettre à jour les informations sur le serveur, que l'on va préparer les listes ou les informations provenant du serveur. C'est la partie réception, terme utilisé en transactionnel.

Ces parties peuvent être dans un même source, dans plusieurs, peu importe ! L'analyse est la même, nous reviendrons sur le découpage plus loin. Prenons quelques conventions de vocabulaire :

  • page HTML : ce qui est envoyé au navigateur, issu en ce qui concerne notre propos de l'exécution d'un script serveur.
  • fichier script : fichier texte contenant certes du HTML amis aussi du code de notre script. Un fichier source peut très bien générer plusieurs pages HTML gébérées en fonction du contexte. Cela sera étudié avec le découpage.

Un exemple : gestion de fiches d'informations

Pour étayer mon propos, je vais prendre l'exemple d'un panneau de gestion de fiches d'information stockées sur le serveur. Aucune option n'est prise ni sur le type de stockage de ces informations, ni sur le langage de script. Un rapide tour des besoins nous donnent ceci :

  • formulaire de recherche ;
  • liste de réponses ;
  • page de détail : fiche en elle-même ;
  • modification ou supression de la fiche ;
  • ajout d'une fiche

Cet exemple courant n'est pas très sophistiqué, mais si on voit vite que les chemins que peuvent emprunter l'utilisateur sont nombreux et il n'est pas du tout possible de les envisager. En effet, sur une page de fiche, il peut cliquer sur un lien et aller voir ailleurs, il peut modifier, supprimer la fiche ou ne rien faire etc.. Il vaut mieux regarder cette application comme un diagramme d'états, un automate d'états finis. Les états sont les pages HTML présentées à l'utilisateur, les actions sont les transitions. Les diagrammes d'états-transitions d'UML nous permettent de présenter clairement nos besoins. Pour en savoir plus sur les diagrammes d'états-transitions, je vous propose la lecture de cette page http://uml.free.fr/cours/i-p20.html, qui fait partie d'un site bien fait qui permet d'appréhender UML dans de bonnes conditions.

Diagramme d'états-transitions de notre exemple

On peut critiquer ce que j'ai envisagé, l'adapter, mais en l'état ce n'est pas très loin de la réalité, et cela suffira à ma démonstration.

diagramme

(Cliquez pour voir le diagramme en plein écran)

Afin de ne pas alourdir le diagramme, les transitions issues de clics sur des liens sortant de notre champ de gestion, équivalents donc à un abandon ne sont pas toutes représentées.

Codage du script serveur

A partir de ce diagramme, l'écriture du code est simple. Nous découpons notre script en trois parties : traitement, aiguillage et affichage. Chacun des états de notre diagramme se retrouve dans ces trois parties. Un identifiant d'état conservé d'une page HTML à l'autre est nécessaire. Il nous servira d'identifiant de page. D'autres informations fonctionnelles doivent sûrement être entretenues, mais je ne m'intéresse qu'à l'aspect technique du code.

Dans chacune des parties, nous avons ou une succession de « if »ou un « switch..case » si le langage le supporte, portant sur la valeur de l'état en cours :

  • Suivant l'état
    • initial
    • formulaire
    • affichage liste
    • etc..

On retrouve bien sûr chacun des états de notre diagramme.

Ce qui donne, pour quelques états :

  1. Réception : on traite les informations en fonction de l'état passé de la pag.
    • Suivant l'état
      • initial : rien a priori, des initialisations, etc..
      • formulaire
        • Si "envoyer" recherche sur le serveur des fiches correspondant aux infos du formulaire
      • affichage liste
        • Si "clic" recherche des inforamtions de la fiche afin de pré-remplir le formulaire
      • demande de confirmation
        • "oui" : suppression de la fiche dans l'annuaire serveur
      • etc ..
  2. Aiguillage : on calcule l'état futur utilisé dans la séquence affichage
    • Suivant l'état
      • initial
        • nouvel état : formulaire
      • formulaire
        • Si "envoyer" nouvel état : affichage de liste
      • affichage liste
        • Si "clic" nouvel état : affichage de l'élément
        • Si "nouveau" nouvel état : formulaire vierge
      • etc ..
  3. Affichage
    • Suivant l'état
      • initial :
        • On n'arrive jamais dans l'état initial à l'affichage - du moins tel que j'ai conçu mon application, ce qui me permet dans la partie réception de l'état initial d'effectuer des initialisations. On pourrait très bien envisager un état initial avec affichage d'un menu : recherche par formulaire ou liste complète.
      • formulaire :
        • Affichage du formulaire avec les données de la fiche
      • affichage liste :
        • Utilisation des informations en provenance du serveur et affichage
      • formulaire vierge
        • Affichage du formulaire
      • etc..

Je n'ai pas écrit tout le pseudo-code car cela n'aurait rien apporté à la présentation de ce cas d'école.

Découpage des sources

Combien de sources allons-nous écrire ? Pour ma part, je ne fait qu'un fichier source pour l'équivalent d'un cas d'utilisation. Les liens et les formulaires décrits dans le diagramme pointent toujours vers le même fichier et c'est toujours la même URL qui est utilisée, à la zone de «query» prêt le cas échéant - bien que je préfére l'utilisation des champs cachés ou des sessions.

Mais rien n'empêche de faire plusieurs fichiers. Un inconvénient majeur que je vois à ce découpage multi-fichiers apparaît lors d'évolution, il faudra alors modifier plusieurs fichiers pour prendre en compte le nouvel état et ses transitions. On perd la structuration obtenu lors de notre analyse.

Si les outils de modélisation UML ne génèrent pas encore ce type de code, ils ont pour la plupart des extractions en ASCII (XML par exemple) ou une interface de programmation qui nous permet de développer des générateurs simples.

Conclusion

On peut faire la même chose sans UML, sans diagramme. Mais le diagramme et le support de vocabulaire et d'organisation d'UML permettent de bien clarifier les enchaînements de traitements des pages Web et l'on a une partie de la documentation de l'application, ce qui n'est pas négligeable.

On s'aperçoit aussi que la maintenance d'un tel script est assez facile, l'ajout d'un état consiste « juste » en l'ajout d'un branche supplémentaire à la structure conditionnelle. A partir d'une analyse simple et clairement présentée, on obtient un code propre et bien structuré.

 

Daniel Lucazeau
ajornet.com
Chef de projet Internet

 Imprimer Donner votre avis

Actualités du Net

 
   Sondage
Selon vous, quel est le meilleur moyen d’obtenir du trafic sur un site internet ?
15%Les liens commerciaux
65%Le référencement naturel
8%Les bannières de publicité
4%La publicité hors ligne
8%Les communiqués de presse

   Archives
  La relation client / fournisseur 
  Les relations publiques sur Internet 
  Plus c'est long, plus c'est bon ? 
  Un bilan positif et nuancé de six ans de pratique de l'internet en entreprise 
  Tirez profit du partenariat  
  Bien organiser pour mieux développer  
  Le décryptage du génôme humain : impact sur le secteur des biotechnologies 
  Email et protection de la vie privee  
  Un site web est-il rentable ?  
  Les Metas  
  Pernod Ricard : l'alcool est dangereux pour la santé. 
  7 secrets pour un échec parfait 
  L'achat en ligne est sans risque 
  Révolution - Affiliation 
  Quand les programmes d'affiliation mènent au désastre ... (1/2) 
  Quand les programmes d'affiliation mènent au désastre ... (2/2) 
  L'achat d'espace en ligne 
  Gagner de l'argent avec son site 
  Y a-t'il quelqu'un pour acheter mon site ? (2ème partie) 
  Y a-t'il quelqu'un pour acheter mon site ? (1ère partie)  

 

Sam-Mag - Un site du réseau ACORUS 1996-2007
© Copyright ACORUS All rights reserved.- Mentions légales

Ce site respecte la loi Informatique et Libertés. Pour en savoir plus sur la protection des données personnelles, cliquez

référencement | achat de mot clé | référencement international | web actualités | boutique en ligne | statistiques web | referencement site web
communiqué de presse | référencement internet | référencement gratuit | referencement professionnel | referencement immobilier

 
Webmaster