projets dossier de conception logiciel benoit diard

18
Projets Dossier de conception Logiciel Benoit DIARD

Upload: napoleon-paul

Post on 03-Apr-2015

158 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Projets Dossier de conception Logiciel Benoit DIARD

ProjetsDossier de conception

Logiciel

Benoit DIARD

Page 2: Projets Dossier de conception Logiciel Benoit DIARD

Dossier de conception Projet orienté Objet :

MCD Diagramme de classes Diagrammes séquence si découpage en

couches Projet Web ?

Orienté Objet MCD Diagramme de classes Diagrammes séquence si découpage en couches

Non orienté Objet MCD Que faire ?

Page 3: Projets Dossier de conception Logiciel Benoit DIARD

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

Page 4: Projets Dossier de conception Logiciel Benoit DIARD

Programmation Web non objet Conseil : s’appuyer sur le modèle

MVC2

Page 5: Projets Dossier de conception Logiciel Benoit DIARD

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

Page 6: Projets Dossier de conception Logiciel Benoit DIARD

MVC Web non objet Concrètement :M : fichiers de traitement php des

formulairesV : formulaires, feuilles de style,

interfaces utilisateur, …C : fichier de redirection,

confirmation, erreur, …

Page 7: Projets Dossier de conception Logiciel Benoit DIARD

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

Page 8: Projets Dossier de conception Logiciel Benoit DIARD

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 ?Réponse : OUIExemple1 : 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; ?>">

Page 9: Projets Dossier de conception Logiciel Benoit DIARD

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

Action (formulaire)

inclusion

Inclusion en utilisant une fonctionFonction()

Lien avec $_get[‘variable’]variable

Page 10: Projets Dossier de conception Logiciel Benoit DIARD

Exemple :

MVC Web non Objet

fonctionsSQL.php surcharge le diagramme.

Le préciser en commentaire et le supprimer du diagramme

Page 11: Projets Dossier de conception Logiciel Benoit DIARD

MVC Web non Objet

Diagrammes de séquence ? Pas indispensable mais la cinématique doit être explicite dans le diagramme de conception web

Page 12: Projets Dossier de conception Logiciel Benoit DIARD

Projet orienté Objet Diagramme de classes :

Diagramme des différentes couches (si découpage en couches)

Page 13: Projets Dossier de conception Logiciel Benoit DIARD

Exemple

0..*

1..1

0..*

0..1

0..*

0..1

Memo

-----

idresumedetaildateestAnnuel

: int: String: String: DateMemo: boolean

MemoCyclique

----

datescycleuniteCycledateFinCycle

: ArrayList: int: int: DateMemo

++

calculDates ()aCycleValide ()

: void: boolean

User

-----

idloginpassnomprenom

: int: String: String: String: String

Categorie

--

idlibelle

: int: String

Importance

----

idlibCourtlibLongcouleur

: int: String: String: Color

Entite

+++

modifie ()supprime ()sauvegarde ()

: int: int: int

Liste

++++++

getListeUser ()getListeCategorie ()getListeImportance ()getListeMemosDuJour ()getListeMemos ()getListeMemosDunJour (Date jour)

: ArrayList: ArrayList: ArrayList: ArrayList: ArrayList: ArrayList

métier

Page 14: Projets Dossier de conception Logiciel Benoit DIARD

Exempleprésentation

Fiche

{abstract}

---

panelOkAnnulerbutOKbutAnnuler

: JPanel: JButton: JButton

+++

{abstract} valide (){abstract} annule (){abstract} setBoundsPanelOkAnnuler ()

: int: int: void

ImportanceFiche

{abstract}

UserFiche

{abstract}

CategorieFiche

{abstract}

--

labLibelletxtLibelle

: JLabel: JTextField

++

{abstract} valide (){abstract} annule ()

: int: int

MemoFiche

{abstract}

MemoCycleFicheCategorieFicheAjout CategorieFicheModif CategorieFicheConsult CategorieFicheSuppr

Liste

JDialog

CategorieListe ImportanceListe UserListe MemoListe

{abstract}

MemoListeJour MemoListeMultiCriteres

Page 15: Projets Dossier de conception Logiciel Benoit DIARD

ExempleDAO

0..*

1..1

DataBaseManager

-------

driverurluserpasswordconnexioninitinstance

: String: String: String: String: Connection: String: DateBaseManager

+++++

<<Getter>>

<<Constructor>>

getInstance ()getConnexion ()deleteInstance ()DataBaseManager ()executeUpdate ()

: DataBaseManager: Connection: void

: int

EntiteDAO

{abstract}

+++++ <<Constructor>>

{abstract} selectAll (){abstract} update (Entite o){abstract} delete (Entite o){abstract} insert (Entite o)EntiteDAO ()

: ArrayList: int: int: int

MemoDAO

++++

selectMemosDuJour ()selectMemos ()selectMemosDunJour (Date jour)getInstance ()

: ArrayList: ArrayList: ArrayList: MemoDAO

UserDAO

+ getInstance () : UserDAO

CategorieDAO

+ getInstance () : CategorieDAO

ImportanceDAO

+ getInstance () : ImportanceDAO

MemoCycleDAO

Page 16: Projets Dossier de conception Logiciel Benoit DIARD

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

Page 17: Projets Dossier de conception Logiciel Benoit DIARD

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, …

Page 18: Projets Dossier de conception Logiciel Benoit DIARD

Versionning

Exemple de règles de version : X.YY.ZZZZX releaseYY major issueZZZZ minor issue (n° de commit SVN) patch