Projets Dossier de conception Logiciel Benoit DIARD
Dossier de conception Projet orienté Objet : Projet Web ? MCD Diagramme de classes Diagrammes séquence si découpage en couches Projet Web ? Orienté Objet Non orienté Objet Que faire ?
MCD Le SI est un point très sensible dans le développement d’applications de gestion S’appuyer sur le MCD pour concevoir ce SI Valider les champs (attributs) avec le demandeur. Réaliser le dictionnaire des données. Le MCD élaboré et réfléchi doit être soumis au tuteur enseignant Générer le MPD et le script de création de la base adaptée au SGBD choisi
Programmation Web non objet Conseil : s’appuyer sur le modèle MVC2
MVC Web non objet La Vue représente l’ensemble des interfaces clients (fenêtres, formulaires, feuilles de styles …) Le contrôleur contrôle le déroulement de l'application(appel de fenêtre en fonction des interactions …) Le modèle c'est la logique des traitements. L’accès aux données de la BD : c'est une couche supplémentaire, mais on peut la rajouter au modèle si on ne veut pas trop détailler
MVC Web non objet Concrètement : M : fichiers de traitement php des formulaires V : formulaires, feuilles de style, interfaces utilisateur, … C : fichier de redirection, confirmation, erreur, …
MVC Web non Objet Créer un diagramme de conception web et mettre en évidence : Inclusions Fonctions Actions Liens M,V,C Décrire l’ensemble des fonctions et des scripts Cela vous permettra de préparer la documentation
MVC Web non Objet Questions à se poser : doit-on structurer son code ? Faire des fonctions ? Réponse : OUI Exemple : FonctionsBD.php définissant des fonctions réutilisables pour interagir avec la BD Peut-on réutiliser du code ? Exemple1 : formulaires réutilisables pour différentes actions (ajout, modifier) Exemple2 : générateur dynamique d’affichage d’un tableau nxm Remarque : éviter le copier/coller donc il faut structurer. Doit-on mettre du php dans le l’HTML ? Réponse : à éviter le plus possible, appeler un fonction php situé dans un autre fichier plutôt. Exemple : <input type=text value="<?php echo $val; ?>">
MVC Web non Objet Diagramme de conception web Visio 2007 Règles de fléchage : Remarque : Eviter de trop charger le diagramme. Solution : découpage, préciser les inclusions générales Lien variable Lien avec $_get[‘variable’] Action (formulaire) inclusion Fonction() Inclusion en utilisant une fonction
MVC Web non Objet Exemple : fonctionsSQL.php surcharge le diagramme. Le préciser en commentaire et le supprimer du diagramme
MVC Web non Objet Diagrammes de séquence ? Pas indispensable mais la cinématique doit être explicite dans le diagramme de conception web
Projet orienté Objet Diagramme de classes : Diagramme des différentes couches (si découpage en couches)
Exemple métier
Exemple présentation
Exemple DAO
MVC Web Objet Le PHP 5 est orienté Objet Vous pouvez vous aider d’un framework PHP : Aukyla Framework PHP CakePHP PHP on Trax PhpMVC symfony
Conseils règles de nommage Objet : respecter les règles de nommage objet PHP non objet : Vue : formNomFormulaire.html menu.php Consultation.php Modèle : traiteNomFormulaire.php Contrôle : redirection.php, confirmationAction.html, ErreurAction.html, …
Versionning Exemple de règles de version : X.YY.ZZZZ X release YY major issue ZZZZ minor issue (n° de commit SVN) patch