Conception préliminaire et générique : plateforme e‐commerce

Conception générique et préliminaire : plateforme e‐commerce

Chapitre 3 Conception

1. Conception générique

La conception générique consiste à élaborer la solution qui répond aux exigences techniques qu’on à spécifié dans la partie « capture des besoins techniques » indépendamment des aspects fonctionnels, produisant un prototype à valider par les utilisateurs techniques.

Elle a comme objectif d’uniformiser et de réutiliser les mêmes mécanismes pour d’autres systèmes.

Position de la conception générique dans le 2TUP

Figure44. Position de la conception générique dans le 2TUP.

La conception générique avec UML s’appuie sur le développement des « Framework » répondant aux spécifications techniques.

Dans la conception orientée objet on aura recours aussi aux design patterns.

L’organisation de l’architecture technique doit répondre aux objectifs de réutilisation, fabrication et déploiement.

Dans notre système, le processus adopté est le suivant:

  • Elaboration du modèle logique de conception technique.
  • Organisation du modèle logique de conception technique.
  • Modèle d’exploitation de la conception technique.

1.1. Elaboration du modèle logique de conception technique

Les classes, interfaces et frameworks techniques sont les briques de construction d’un modèle logique.

Les diagrammes de classes sont la trame centrale autour de laquelle se trouvent les diagrammes dynamiques.

Cette modélisation ne nécessite pas une reproduction exacte dans le code qui va être développé car la conception est avant tout un travail de réflexion de communication en s’appuyant sur des schémas suffisamment précis pour exploiter les possibilités techniques d’une solution et d’en recenser les avantages et inconvénients.

1.1.1. Classes

L’intégrité de conception s’exprime sous la forme d’un ensemble de classes techniques que les concepteurs du projet vont par la suite réutiliser pour développer les différentes composantes fonctionnelles du système.

Ces classes techniques vont être regroupées selon l’architecture choisie, dans des Frameworks techniques où chaque Framework contient un ensemble de classes.

1.1.2. Contrôles d’utilisateur

Tout d’abord, définissons simplement ce qu’est un User Control dans ASP.NET.

Il s’agit simplement d’un composant (Souvent graphique) sous forme de classe et intégré dans la page en cours de développement.

Donc un contrôle utilisateur est une classe et à ce titre elle peut posséder des fonctions, propriétés, procédures, et des variables publiques ou privées.

En revanche, à la différence des classes simples, les contrôles utilisateurs ont une partie présentation et une partie de code.

Le principal objectif de l’utilisation des contrôles utilisateurs est de permettre la réutilisation facile des composants (Formulaires, tableau…) dans d’autres interfaces, frameworks ou système.

1.1.3. Frameworks techniques

En POO, un Framework est composé de classes mères qui seront dérivées et étendues par héritage en fonction des besoins spécifiques à chaque logiciel qui utilisera le Framework.

Ses classes sont organisées conformément à un plan d’architecture et des design patterns.

Le Framework technique ne concerne que les fonctionnalités de la branche droite du processus 2TUP.

1.1.4. Design pattern

Un design pattern est une solution de conception commune à un problème récurrent dans un contexte donné.

L’usage des design patterns apporte donc évolutivité, lisibilité et efficacité aux développements.

1.2. Organisation du modèle logique de conception technique

Sur la branche gauche, l’analyste détaille son problème en classes au niveau de chacune des catégories de son modèle structurel.

Sur la branche droite, l’architecte technique construit pareillement des classes, des mécanismes et des design patterns au sein de frameworks techniques qu’il va organiser dans son modèle logique de conception technique.

Le modèle de conception technique est donc également organisé par packages de classes qui représentent les frameworks développés pour résoudre les problèmes purement techniques, cet aspect purement technique fait que la conception, à ce niveau, est qualifiée de générique.

Le modèle logique est donc organisé suivant les dépendances qui s’établissent entre frameworks techniques.

L’organisation du modèle logique reprend les couches logicielles.

À chaque couche correspond un framework technique, en partie abstrait, qui définit des interfaces de réalisation des responsabilités logicielles:

  • Framework présentation: définit les classes, interfaces, mécanismes de base pour réaliser la gestion des objets.
  • Framework applicatif: il utilise les mêmes éléments pour rafraîchir les vues, charger les modèles de fonctionnement et contrôler les commandes.
  • Framework métier: définit les éléments permettant d’identifier les objets métier et de les gérer en services distribués.
  • Framework accès aux données: définit les mécanismes de chargement, sauvegarde, mise à jour et de recherche d’objets dans une BDD.

Organisation des Frameworks techniques

Figure45. Organisation des « Frameworks techniques ».

1.3. Description des Frameworks techniques

1.3.1. Framework Présentation

Gérer la communication avec l’utilisateur pour la saisie des données, l’affichage et l’impression.

Il ne s’y fait pas de traitement autre qu’une validation élementaires des données saisies.

Cette couche sera composée de vues ou interfaces web générées par ASP.NET et chaque interface est représentée par des formulaires, tableaux, menu, boutons…

1.3.2. Framework Applicatif

clavierGérer le déroulement des fonctionnalités du logiciel et la communication avec les autres applications et services.

Il n’y a pas de vérification de règles de gestion ni de calculs complexes.

Cette partie n’est pas visible par l’utilisateur du système.

Elle permet de regrouper les interfaces précédentes quiexécutent certaines commandes et actions afin de communiquer avec la couche métier.

1.3.3. Framework Métier

Gérer les informations associées aux catégories d’objets et appliquer les règles de calculs et de gestion.

Cette couche va comporter la liste de tous les services métier correspondant aux cas d’utilisation et faisant liaison entre les commandes de l’utilisateur et la couche de données.

1.3.4. Framework Accès aux données

Gérer l’accès aux données persistantes provenant de notre base de données gérée par un SGBD.

Le serveur d’application hébergeant notre plate‐forme contient plusieurs applications et notre application dispose de plusieurs fonctionnalités chose qui devrait causer l’alourdissement des temps de réponses aux requêtes.

Ceci dit on a pris compte de cette contrainte et nous avons proposé la solution de « Sessions » qui offrira la possibilité de partage et d’intégrité entre plusieurs utilisateurs.

2. Conception préliminaire

Cette étape est la plus importante du processus 2TUP vu qu’elle représente le coeur.

En effet dans cette étape nous allons enfin quitter les deux branches droite et gauche afin de faire la fusion entre les deux études technique et fonctionnelle.

Cependant, nous allons développés les catégories d’analyse en couches logicielles conformément au modèle retenu de la solution technique tout en restant le plus indépendant possible des outils de développement.

Afin d’aboutir à cela, nous allons s’organiser selon les modèles suivants:

  • Modèle de déploiement.
  • Modèle d’exploitation.
  • Modèle logique.

Situation de la conception préliminaire dans le 2TUP

Figure46. Situation de la conception préliminaire dans le 2TUP.

2.1. Modèle de déploiement

C’est le premier niveau de conception car c’est lui qui permet d’organiser les environnements de Travail sur le réseau. Pour cela nous allons modéliser notre architecture par un diagramme de déploiement:

Diagramme de deploiement

Figure47. Diagramme de déploiement.

2.2. Modèle d’exploitation

A partir du modèle de déploiement on peut définir les composants qui seront affectés aux exploitants du système (définition des applications).

On va essayer de concevoir le modèle d’exploitation tout en intégrant les résultats de la conception générique.

On définira ensuite les interfaces qui doivent être élaborées par les développeurs et qui correspondent aux besoins.

2.2.1. Définition des applications

Les applications se déterminent par regroupement des fonctions de l’utilisateur, tout en respectant la définition des postes de travail.

Définition des applications dans le modèle d'exploitation.

Figure48. Définition des applications dans le modèle d’exploitation.

a) Application Administration

Elle contient comme fonctionnalités les cas d’utilisation suivant:

– Suivi des utilisateurs.
– Suivi des rôles.
– Statistiques.

b) Application commerciale

– Gestion des produits.
– Gestion des catégories.
– Gestion des marques
– Suivi des fournisseurs.
– Suivi des stocks.
– Marketing.

c) Application Achat en ligne

– Suivi des commandes.
– Panier.
– Suivi des clients.
– Facturation.
– Paiement en ligne.

2.2.2. Définition des composants métier

Afin de décrire cela on va modéliser le diagramme de composants qui a comme rôle la définition des composants logiciels ainsi que leurs relations.

Dans notre démarche il est nécessaire d’identifier les composants métier de notre système. Pour ça on va devoir recenser les différentes catégories d’analyse.

Identification des composants métier de la plate‐forme e‐commerce.

Figure49. Identification des composants métier de la plateforme e‐commerce.

2.2.3. Définition des interfaces

Le recensement des interfaces homme‐machine (IHM) se fait à l’aide des composants cités précédemment.

Ce sont en fait les applications définis qui communiquent entre elle par le biais des IHM.

Le travail qu’on va faire afin de compléter le modèle d’exploitation n’a rien avoir avec UML mais c’est plutôt de dresser une liste de vues attendus avec leurs principales fonctions.

Composants Interfaces Fonctions
Administration

Accueil administrateur Interface d’accueil ayant accès aux fonctionnalités du système.

Ajouter un utilisateur Création et ajout des nouveaux utilisateurs du système.

Lister les utilisateurs Gestion des utilisateurs (liste, modification, désactivation, réaffectation).

Modifier rôles Changer le rôle d’un utilisateur.

Statistiques de la boutique Affichage des statistiques de la plate‐forme.

Commerciale

Accueil commercial Interface d’accueil réservée aux commerciaux.

Ajouter un produit Création des nouveaux produits à commercialiser.

interfaces homme‐machine IHMGestion des produits Gestion des produits (modification, suppression, consultation)

Liste des produits Affichage de la liste de tous les produits par catégorie, marque ou fournisseur.

Ajouter une catégorie Création de nouvelles catégories de produits.

Gestion des catégories Gestion des catégories (modification, suppression, consultation).

Ajouter une marque Création d’une nouvelle marque de produits

Gestion des marques Gestion des marques (modification, suppression, liste, consultation)

Ajouter un fournisseur Création d’un nouveau fournisseur de produits.

Gestion des fournisseurs Gestion des fournisseurs (modification, liste, suppression).

Entrée en stock Saisie des informations sur les nouveaux produits entrés en stock.

Sortie de stock Saisie des informations sur les sorties de stock.

Ajouter des nouveautés Permet d’afficher les nouveaux produits sur la page d’accueil.

Solder un produit Permet de solder un produit en lui affectant un % sur le prix de base.

Achat en ligne

Accueil client Interface d’accueil réservée aux clients.

Inscription Permet aux internautes de s’inscrire et devenir des membres pour pouvoir passer des commandes.

Activation client Activer le compte d’un client et le rediriger vers son espace perso, Modifier profil client Mise à jour des informations du client (modification profil, désactivation compte)

Consulter profil client Affichage des différentes informations concernant le client (commandes, compte, panier, historique).

Liste produits disponibles dans le panier.

Permet au client de consulter les produits qu’il a ajouté au panier, les personnaliser et les valider.

Passer la commande Envoyer la commande souhaitée vers le service commerciale.

Trier les commandes Affichage de la liste des commandes passées selon des critères.

Suivi d’une commande Connaître l’état de la commande à un moment donnée.

Afficher la facture Affichage des factures d’un client.

Information paiement Résumé des informations concernant la commande et la transaction.

Paiement Personnaliser le paiement (mode de livraison, mode de paiement, réaliser le paiement…).

Tableau décrivant la liste des IHM de notre système

Tableau07. Tableau décrivant la liste des IHM de notre système.

3. Conception détaillée

Dans l’étape précédente il manquait le modèle logique qui s’avère être le modèle le plus important des trois, c’est donc pour ça qu’on va le solliciter dans cette étape ou on va récolter le plus d’informations.

Nous allons construire dans cette étape: les classes, méthodes, associations et modèle relationnel qui vont donner directement une image « prête à coder » de la solution.

Situation de la conception détaillée dans le processus 2TUP.

Figure50. Situation de la conception détaillée dans le processus 2TUP.

Nous allons procéder dans cette étape comme suit:

– Conception des classes et leurs attributs.

– Conception des classes associations.

– Conception des méthodes.

– Passage au modèle relationnel.

3.1. Conception des classes et leurs attributs

Tableau08. Liste des classes et leurs attributs.

Liste des classes et leurs attributs

données Code

User

Identifiant user Varchar(50) ID_user

Nom user Varchar(100) Nom_user

Prénom user Varchar(100) Prenom_user

Sexe de user Enum Sexe_user

Adresse user Text Adresse_user

Téléphone user Varchar(50) Tel_user

Email user Varchar(50) Email_user

Date user Date Date_user

Statut de user Enum Statut_user

Ville user Varchar(50) Ville_user

Pays user Varchar(50) Pays_user

Date_Naissance Date dateNaissance

Code Postal Varchar(50) CodePostal

Utilisateur identifiant utilisateur Varchar(50) ID_util

Compte_user

Identifiant du compte

utilisateur

Varchar(50) ID_compteUser

Pseudo du compte

utilisateur

Varchar(50) Pseudo_compteUser

Mot de passe du compte

utilisateur

Varchar(50) Pass_compteUtil

Rôle

Identifiant du rôle Varchar(50) ID_role

Libellé du rôle Varchar(50) Lib_role

Client

Identifiant du client Varchar(50) ID_client

Type_client Varchar(50) Type_client

Commande

Identifiant de la

commande

Varchar(50) ID_cmd

Date de la commande Date Date_cmd

Montant de la commande Float Montant_cmd

Délai de livraison Int délaiLivr_cmd

Lieu de la livraison Text lieuLivr_cmd

Etat de la commande Enum Etat_cmd

frais de livraison Float PrixTotalLivr

le mode de paiement Varchar(50) modePaiement

le mode de livraison Varchar(50) modeLivr

la devise Varchar(50) devise

Un commentaire sur la

commande

Text Commentaire_cmd

Produit

Identifiant du produit Varchar(50) ID_prd

Libellé du produit Varchar(50) Lib_prd

Description du produit Varchar(50) Description_prd

Prix du produit Float Prix_prd

Devise d’achat du produit Float Devise

Prix du solde Float Solde_prd

Quantité disponible Int quantitéDispo_prd

Image du produit Image Img_prd

Nouveau produit Boolean Nouveaute_prd

Prix de livraison du produit Float Prix_Livr

La taxe du produit Float Taxe

Date d’ajout du produit Date DateAjout

Catégorie

Identifiant de la catégorie Varchar(50) ID_categorie

Libellé de la catégorie Varchar(50) Lib_categorie

Panier

Identifiant du panier Varchar(50) ID_panier

Montant panier Float(4) Total_panier

Etat du panier Enum Etat_panier

Devise du panier Varchar(50) Devise

Facture

Identifiant de la facture Varchar(50) ID_fact

Etat de la facture Varchar(50) Etat‐fact

La date de la facture Date Date_Fact

Commission

l’identifiant de la

transaction

Varchar(50) ID_Transaction

La date de la transaction Date Date_Transaction

Le montant de la

transaction

Float Montant_Commission

Fournisseur

Identifiant du fournisseur Varchar(50) ID_fournisseur

Nom du fournisseur Varchar(50) Nom_fournisseur

Adresse du fournisseur Varchar(100) Adresse_fournisseur

Email du fournisseur Varchar(50) Email_fournisseur

Téléphone du fournisseur Bigint Tel_fournisseur

EntreStock

Identifiant de l’entree en

stock

Varchar(50) ID_Entree

Date de l’entree en stock Datetime Date_Entree

SortieStock

Identifiant de la sortie Varchar(50) ID_sortie

Date de la sortie Datetime Date_sortie

Marque

Identifiant de la marque Varchar(50) Id_Marque

Libellé de la marque Varchar(50) Lib_Marque

Logo de la marque byte[] Logo_Marque

3.2. Conception des classes d’associations

Liste des classes et leurs attributs

Tableau09. Liste des classes d’associations.

Classes Attributs Type de

Associations Classes concernées attributs Signification

Ligne_prd Fournisseur, produit

Permet d’avoir l’état des

entrées du stock.

Ligne_cmd Panier, produit

Enregistre la liste des

produits de chaque panier.

Ligne_Livr Produit, EntreStock

Enregistre les entrées en

stock.

Ligne_Sortie Produit, SortieStock

Enregistre les sorties de stock.

3.3. Conception des méthodes

img

Tableau09. Liste des classes d’associations.

Classes Méthodes

Utilisateurs

ajouter Utilisateur()

modifier Utilisateur()

consulter Utilisateur()

liste Utlisateur()

supprimer Utilisateur()

ExistePseudo()

ReAffecter Utilisateur()

Compte_user

ajouter Compte User()

verifier Compte User()

modifier Compte User()

supprimer Compte User

Rôle

ajouter Rôle()

modifier Rôle()

liste Rôle()

supprimer Rôle()

Client

Ajouter Client()

Modifier Client()

Consulter Client()

Liste Client()

Desactivate Client()

Activate Client()

Existe Pseudo()

Exist Email Utilisateur()

Commande

Passer Commande()

Modifier Etat Commande()

Consulter Etat Commande()

Consulter Commande()

Liste Commande()

Mettre Ajour Commande()

Produit

Ajouter Produit()

Modifier Produit()

Changer Categorie Produit()

Consulter Produit()

Liste Produit()

Solder Produit()

Nouveaute Produit()

Supprimer Produit()

Catégorie

ajouter Categorie()

modifier Categorie()

liste Categorie()

supprimer Categorie()

Panier

Ajouter Produit Panier()

Ajouter List Produit()

Consulter Produit Panier()

Vider Panier()

Consulter Panier Commande()

Changer Devise Panier()

Retirer Produit Panier()

Facture

etablir Facture()

envoyer Facture()

imprimer Facture()

Marque

ajouter Marque()

modifier Marque()

consulter Marque()

supprimer Marque()

Fournisseur

ajouter Fournisseur()

modifier Fournisseur()

consulter Fournisseur()

supprimer Fournisseur()

EntreStock ajouter Entree Stock()

Sortie Stock ajouter Sortie Stock()

3.4. Conception du modèle relationnel

Cette conception consiste à étudier sous quelle forme sont sauvegardées les instances des classes sur un support physique ou en d’autre terme un SGBD.

L’utilisation d’un SGBD relationnel impose un changement dans la représentation des structures des classes.

Système de gestion de base de données Nous allons faire cette conception en respectant les règles de passage du modèle objet vers le modèle relationnel:

– User (ID_user, nom_user, prenom_user, sexe_user, adresse_user, tel_user, email_user, statut_user, ville_user, pays_user,date_user,code_postale, ID_role)

– Utilisateur (ID_user, ID_util)

– Compte User (ID_compteUser, pseudo_compteUser, pass_compteUser, ID_user)

– Rôle (ID_role, lib_role)

– Client (ID_user, ID_client, type_client)

– Commande (ID_cmd, date_cmd, montant_cmd, delaiLivr_cmd, lieuLivr_cmd, etat_cmd, mode_livr, prixTotalLivr, modePaiement, devise, commentaire_cmd, ID_panier)

– Produit (ID_prd, lib_prd, description_prd, prix_prd, solde_prd, quantiteDispo_prd, img_prd, nouveaute_prd, ID_categorie,ID_Marque)

– Catégorie (ID_categorie, lib_categorie)

– Marque (ID_marque, lib_marque,logo_marque)

– Panier (ID_panier, total_panier, etat_panier,devise)

– Facture (ID_facture, etat_facture,date_Fact, ID_cmd)

– Fournisseur (ID_fournisseur, nom_fournisseur, adresse_fournisseur, email_fournisseur, tel_fournisseur)

– EntreeStock (ID_Entre, Date_Entree)

– SortieStock (ID_Sortie, Date_Sortie, ID_cmd)

– Ligne_prd (ID_fournisseur, ID_prd, dateFour, quantitéFourni,)

– Ligne_cmd (ID_panier, ID_prd, quantité_prd, prix_Vente)

– Ligne_livr (ID_prd, ID_livr, quantite_livr, Prix_achat)

– Ligne_Sortie (ID_prd, ID_sortie, quantite_sortie, Prix_vente)

Pour citer ce mémoire (mémoire de master, thèse, PFE,...) :
📌 La première page du mémoire (avec le fichier pdf) - Thème 📜:
Conception et réalisation d’une plateforme de commerce électronique
Université 🏫: Ecole nationale supérieure d’informatique - Option: Systèmes d’informations & Systèmes Informatiques
Auteur·trice·s 🎓:
Mr SICHAIB & Mr MACHANE

Mr SICHAIB & Mr MACHANE
Année de soutenance 📅: Mémoire de fin d’études pour l’obtention du diplôme d’Ingénieur d’Etat en Informatique - Promotion: 2009 / 2010
Rechercher
Télécharger ce mémoire en ligne PDF (gratuit)

Laisser un commentaire

Votre adresse courriel ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Scroll to Top