Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
1
INM5151 Été 2015
Projet d‟analyse et modélisation Groupe 20
ALARY, Marc-André ALAM20039200
MATHURIN, Mathieu MATM05059000
SCOTT, Mathy SCOM15079104
DROUIN, Simon DROS04078908
LÉGARÉ, Jean-Philippe LEGJ03059206
ÉTHIER, Maxime ETHM21027405
SPÉCIFICATIONS DES EXIGENCES D’UN LOGICIEL
Travail présenté à
MAKARENKOV, Vladimir
Le 9 juin 2015
Université du Québec à Montréal
2
3
HISTORIQUE DE VERSIONS
# Date Historique Commentaires
1 09/06/2015 Première version de la spécification des exigences.
Document remis dans le cadre du cours INM5151
4
Table des matières
HISTORIQUE DE VERSIONS ................................................................................................................................. 3
LISTE DES FIGURES ............................................................................................................................................... 8
LISTE DES TABLEAUX ........................................................................................................................................... 8
1.0 INTRODUCTION ................................................................................................................................................. 9
1.1 Objectifs du document ................................................................................................................................ 9
1.2 Portée ............................................................................................................................................................... 9
1.3 Définitions, acronymes et abréviations ................................................................................................ 10
1.4 Documents de références ......................................................................................................................... 12
1.5 Aperçu du document .................................................................................................................................. 13
2.0 DESCRIPTION GÉNÉRALE DU LOGICIEL ................................................................................................ 14
2.1 Perspective du produit .............................................................................................................................. 14
2.1.1 Autres parties du système ................................................................................................................ 14
2.1.2 Utilisateurs ............................................................................................................................................ 14
2.1.3 Composantes matérielles .................................................................................................................. 15
2.1.4 Composantes logicielles ................................................................................................................... 15
2.1.5 Télécommunications........................................................................................................................... 16
2.1.6 Contraintes de mémoire primaire et secondaire ......................................................................... 16
2.1.7 Opérateurs ............................................................................................................................................. 17
2.1.8 Adaptation du site d’installation ...................................................................................................... 17
2.2 Vue d’ensemble des fonctions du produit ........................................................................................... 18
2.3 Description des utilisateurs ..................................................................................................................... 19
2.4 Contraintes d’ordre général ..................................................................................................................... 19
2.4.1 Règlements des organismes gouvernementaux, syndicaux, etc. .......................................... 19
2.4.2 Limitations du matériel....................................................................................................................... 19
2.4.3 Interfaces à d’autres applications ................................................................................................... 19
2.4.4 Opérations en parallèle ...................................................................................................................... 19
2.4.5 Fonctions d’audit ................................................................................................................................. 20
2.4.6 Fonctions de contrôle......................................................................................................................... 20
2.4.7 Exigences de langages de programmation .................................................................................. 20
2.4.8 Protocoles de communication ......................................................................................................... 20
2.4.9 Exigences de fiabilité .......................................................................................................................... 20
5
2.4.10 Aspects critiques de l’application ................................................................................................. 20
2.4.11 Considération de sûreté et de sécurité........................................................................................ 20
2.5 Hypothèses et dépendances .................................................................................................................... 21
2.6 Répartitions des exigences ...................................................................................................................... 21
3.0 DESCRIPTION DÉTAILLÉE ........................................................................................................................... 22
Vue d’ensemble des cas d’utilisation (Invité + Membre)......................................................................... 22
................................................................................................................................................................................ 22
3.1 Interface externes ....................................................................................................................................... 23
3.1.1 Chercher un produit ............................................................................................................................ 24
3.1.2 S’enregistrer .......................................................................................................................................... 25
3.1.3 Consulter un produit ........................................................................................................................... 27
3.1.4 S’authentifier ......................................................................................................................................... 28
3.1.5 Ajouter une liste d’épicerie ............................................................................................................... 29
3.1.6 Consulter une liste d’épicerie ........................................................................................................... 30
3.1.7 Calculer le prix d’une liste d’épicerie ............................................................................................. 31
3.1.8 Supprimer une liste d’épicerie ......................................................................................................... 32
3.1.9 Retirer un produit d’une liste d’épicerie ........................................................................................ 33
3.1.10 Ajouter un produit à une liste d’épicerie ..................................................................................... 34
3.1.11 Consulter les commentaires........................................................................................................... 36
3.1.12 Évaluer un commentaire .................................................................................................................. 37
3.1.13 Ajouter un commentaire .................................................................................................................. 38
3.1.14 Modifier un commentaire ................................................................................................................. 39
3.1.15 Supprimer un commentaire ............................................................................................................ 40
3.1.16 Consulter la liste des favoris .......................................................................................................... 41
3.1.17 Ajouter un produit à la liste des favoris ...................................................................................... 42
3.1.18 Retirer un produit de la liste des favoris ..................................................................................... 43
3.1.19 Modifier son compte ......................................................................................................................... 44
3.1.20 Supprimer son compte..................................................................................................................... 45
3.1.21 Démarrer manuellement la collecte de données ....................................................................... 46
3.1.22 Consulter la liste des produits ....................................................................................................... 48
3.1.23 Ajouter un produit ............................................................................................................................. 49
3.1.24 Modifier un produit ............................................................................................................................ 50
3.1.25 Ajouter un prix à un produit ........................................................................................................... 52
6
3.1.26 Modifier le prix d’un produit ........................................................................................................... 53
3.1.27 Supprimer le prix d’un produit ....................................................................................................... 55
3.1.28 Supprimer un produit ....................................................................................................................... 56
3.1.29 Consulter la liste des magasins .................................................................................................... 57
3.1.30 Ajouter un magasin ........................................................................................................................... 58
3.1.31 Modifier un magasin ......................................................................................................................... 59
3.1.32 Activer/désactiver la collecte de données d’un magasin ....................................................... 60
3.1.33 Supprimer un magasin ..................................................................................................................... 61
3.1.34 Consulter la liste des chaînes ........................................................................................................ 62
3.1.35 Ajouter une chaîne ............................................................................................................................ 63
3.1.36 Modifier une chaîne........................................................................................................................... 64
3.1.37 Activer/désactiver la collecte de donnée d’une chaîne ........................................................... 65
3.1.38 Supprimer une chaîne ...................................................................................................................... 66
3.1.39 Consulter la liste des comptes ...................................................................................................... 67
3.1.40 Supprimer un compte ....................................................................................................................... 68
3.1.41 Suspendre ou rétablir un compte Membre ................................................................................. 69
3.1.42 Modifier un compte ........................................................................................................................... 71
3.1.43 Ajouter un compte ............................................................................................................................. 72
3.1.44 Consulter l’horaire de de collecte de données automatisée ................................................. 73
3.1.45 Ajouter une collecte de données automatisée .......................................................................... 74
3.1.46 Modifier une collecte de données automatisée ......................................................................... 75
3.1.47 Supprimer une collecte de données automatisée .................................................................... 76
3.2 Spécifications fonctionnelles .................................................................................................................. 77
3.2.4 Diagramme de classes ..................................................................................................................... 105
3.3 Exigences d’opérations, de communications et de performance ............................................... 106
3.4 Exigences logiques de bases de données ......................................................................................... 106
3.4.1 Types d’informations utilisées par les différentes fonctions ................................................ 106
3.4.2 Fréquence d’utilisation..................................................................................................................... 106
3.4.3 Capacité d’accès ................................................................................................................................ 106
3.4.4 Entités et relations des données ................................................................................................... 106
3.4.5 Contraintes d’intégrité ...................................................................................................................... 107
3.4.6 Exigences de rétention des données ........................................................................................... 107
3.5 Contraintes de conception ..................................................................................................................... 107
7
3.6 Exigences non-fonctionnelles ............................................................................................................... 107
3.6.1 Fiabilité ................................................................................................................................................. 107
3.6.2 Disponibilité ........................................................................................................................................ 107
3.6.3 Sécurité ................................................................................................................................................ 107
3.6.4 Entretien du logiciel .......................................................................................................................... 108
3.6.5 Portabilité ............................................................................................................................................. 108
4.0 INFORMATIONS COMPLÉMENTAIRES ................................................................................................... 108
4.1 Index ............................................................................................................................................................. 108
Aucun. ...................................................................................................................................................................... 108
4.2 Annexes ....................................................................................................................................................... 109
Annexe A - Maquette d‟interface ......................................................................................................................... 109
8
LISTE DES FIGURES Figure 1 - Diagramme du fonctionnement opérationnel 14
Figure 2 - Diagramme des composantes logicielles 16 Figure 3 - Diagramme des cas d‟utilisation (Visiteur + Membre) 22 Figure 4 - Diagramme des cas d‟utilisation (Administrateur) 23
LISTE DES TABLEAUX Tableau 1 - Définitions 10
Tableau 1.1 - Définitions du lexique client 11
Tableau 2 - Acronyme 11
Tableau 3 - Abréviations 11
Tableau 4 - Vue d‟ensemble des fonction d‟ÉconoÉpiceries 18
9
1.0 INTRODUCTION ÉconoÉpiceries est un service en ligne offrant la possibilité aux consommateurs québécois d‟épargner sur le prix de leur panier d‟épicerie.
Sommairement, ÉconoÉpiceries récolte les données variées des diverses épiceries québécoises de manière hebdomadaire et les rend disponibles dans une forme normalisée aux utilisateurs. Un consommateur peut ainsi rapidement comparer les prix de divers articles et sauver sur le prix de son panier en magasinant à rabais.
1.1 Objectifs du document
Le document présent a pour but d‟établir de manière claire les spécifications d‟exigences logicielles (SEL) du nouveau système ÉconoÉpiceries selon la norme IEEE830 [1]. Une étude d‟opportunité précédemment publiée explique plus en détails la raison d‟être d‟un tel système, la situation actuelle du marché québécois et justifie la nécessité d‟un tel service pour les consommateurs.
Le document présent n‟a donc pas pour but de reprendre ces points mais bien de continuer sur ces bases. Une référence à ce document peut être retrouvée au point 1.4 Documents de références [2].
Rapidement, ce document a pour fonction de définir de manière globale les tâches et fonctionnalités que le système d‟ÉconoÉpiceries est destiné à combler, les limitations avec lesquelles il devra opérer ainsi que toute autre informations périphériques jugées utiles aux phases de conception et de développement. Il spécifie précisément les attentes envers le logiciel développé afin d‟en encadrer le développement.
Le document présent n‟est donc pas destiné à tout public. Il requiert une certaine connaissance technique de base et est donc destiné à un public plus technique, soit le personnel impliqué au développement du système d‟ÉconoÉpiceries.
1.2 Portée
Le système développé a été nommé « ÉconoÉpiceries » suite à une consultation de l‟équipe. ÉconoÉpiceries est le premier système en son genre au Québec. Des concepts de services similaires existent déjà de par le monde mais ne sont pas encore présents ici.
Certains sites permettent déjà d‟avoir accès rapidement à toutes les circulaires d‟épicerie d‟une région donnée. Cependant, aucun ne propose une manière simple et rapide de comparer le prix d‟un article dans plusieurs épiceries. C‟est là qu‟ÉconoÉpiceries intervient. ÉconoÉpiceries a pour but de faciliter cette comparaison en évitant au consommateur de devoir lui-même vérifier les circulaires. Le système peut être résumé en trois points : Collecte, normalisation et comparaison. Premièrement, la collecte: ÉconoÉpiceries récolte hebdomadairement les données d‟articles vendus par les diverses épiceries québécoises. Deuxièmement, ÉconoÉpiceries normalise ces multitudes de données en un format standardisé et analysable statistiquement. Troisièmement, ÉconoÉpiceries présente ces données aux consommateurs via des outils en ligne de recherche et comparaison.
10
Voici quelques unes des fonctions que va couvrir le système : Collecte de données automatique et/ou manuelle Normalisation intelligente et création de statistiques pour chaque article Recherche et comparaison d‟articles Gestion d‟utilisateurs Création de listes d‟épiceries Gestion d‟articles favoris Gestion de commentaires et soumission d‟ajustements de prix
Dans le contexte actuel, aucun produit du genre n‟existe. ÉconoÉpiceries vient remplacer une série de services existants inférieurs en sauvant une étape aux consommateurs. À court terme, après le lancement du service, les consommateurs verront très rapidement les bénéfices d‟un tel service, permettant d‟un simple clic de comparer le prix d‟un article désiré. La démarche est simple, beaucoup plus rapide et efficace que la méthode (manuelle) actuelle . ÉconoÉpiceries va permettre de facilement réduire le prix moyen du panier d‟épicerie d‟un consommateur averti.
1.3 Définitions, acronymes et abréviations
Tableau 1 - Définitions
Définition Signification
Article Produit vendu en épicerie
Collecte Processus automatique hebdomadaire de recherche et sauvegarde de données sur les sites d‟épiceries.
Donnée (collecte)
Informations sur un article collectées en ligne et non-traitées, notamment le magasin, le code-barre, le prix et la date d‟échéance.
ÉconoÉpiceries Le système développé
Item Synonyme d‟article
Logique d‟affaire Contraintes logicielles établies par des pratiques d‟affaires plutôt que par des exigences fonctionnelles
Normalisation Processus de transformation de données (collecte) diverses en un format défini par le système.
NoSQL Base de données non-relationnelle
TCP/IP Suite de protocoles internet
Hachage Transformer une chaîne de caractère avec un algorithme pour des raisons de confidentialité
11
Tableau 1.1 - Définitions du lexique client
Définition Signification
Administrateur Un Usager ayant des droits supérieurs dans le système
Usager Une personne ayant un compte
Membre Un Usager non-administrateur
Visiteur Une personne sans compte
Tableau 2 - Acronymes
Acronyme Signification
BDD Base de données
CU Cas d‟utilisation
DS Diagramme de séquence
HTTP Hypertext Transfer Protocol
HTTPS Hypertext Transfer Protocol Secure
I/O Input/Ouput, communications entrantes/sortantes d‟une application avec un élément externe
OS Operating System, système d‟exploitation
SEL Spécifications des Exigences du Logiciel, IEEE830
Tableau 3 - Abréviations
Abréviation Signification
CONOPS Concept of Operations, document décrivant les caractéristiques d‟un système proposé selon la vue d‟un utilisateur du système, étude d‟opportunité
12
1.4 Documents de références
[1] IEEE Recommended Practice for Software Requirements Specifications, IEEE Computer Society, IEEE Std 830-1998 (Revision of IEEE Std 830-1993)
[2] Étude d’opportunité, Marc-André Alary, Mathieu Mathurin, Mathy Scott, Simon Drouin & Jean-Philippe Légaré (2015), Révision 1 (19 mai 2015)
[3] Node.js, En ligne [https://nodejs.org], Consulté le 9 juin 2015
[4] MongoDB, En ligne [https://www.mongodb.org], Consulté le 9 juin 2015
[5] UML 2 et les design patterns, 3e édition, Craig Larman, Person Education (2005)
13
1.5 Aperçu du document
La suite du document est séparée en trois chapitres: Description générale du logiciel, description détaillée et informations complémentaires. Le deuxième chapitre, « Description générale du logiciel », donne une vue d‟ensemble du système : sa perspective, ses fonctions, ses utilisateurs, ses contraintes, ses dépendances et ses exigences.
Le troisième chapitre, « Description détaillée », vient préciser le deuxième à un niveau suffisant détaillé pour permettre d‟avancer la phase de conception du logiciel. Les interfaces externes, les spécifications, les exigences et contraintes y sont définies en plus amples détails.
Le quatrième chapitre, « Informations complémentaires », amène d‟autres informations utiles à la compréhension du document.
14
2.0 DESCRIPTION GÉNÉRALE DU LOGICIEL 2.1 Perspective du produit
Le développement du produit ÉconoÉpiceries permet de récolter, normaliser et rendre facilement accessible à la recherche les données d‟articles vendus dans plusieurs épiceries québécoises. ÉconoÉpiceries permet à l‟utilisateur la consultation, comparaison et soumission de modification de tout article. Le produit est une solution 'tout en un' qui vient remplacer la nécessité d‟autres produits complémentaires dans le système.
Pour bien comprendre la portée fonctionnelle du produit il est important de bien comprendre les composants du système, leurs interfaces avec l‟environnement d‟opération et les éléments externes au système desquels il dépendra.
Figure 1 - Diagramme du fonctionnement opérationnel
2.1.1 Autres parties du système
Le produit ÉconoÉpiceries est une solution tout-en-un, les parties requises à son bon fonctionnement en sont partie intégrante. ÉconoÉpiceries comble la tâche du système à part entière, sans nécessité de dépendances système externes.
2.1.2 Utilisateurs
Pour le fonctionnement du produit, on considère 3 types d‟utilisateurs distincts jouant un rôle sur le système. Le premier, le Visiteur, soit l‟utilisateur ayant les responsabilités et privilèges les plus limitées. Le deuxième, le Membre , soit un Usager possédant un compte ÉcononÉpiceries ayant accès à plus de privilèges que le Visiteur. Le troisième, l‟Administrateur, un Usager possédant le plus haut niveau de privilèges du système.
À noter que le document présent utilise la généralisation Usager pour désigner un Membre et Administrateur lorsqu‟une situation pourrait s‟appliquer au deux types sans aucun impact sur le déroulement normal des fonctions ou sur l‟état actuel du système. Aussi, pour des fins de compréhension, le lexique client sera capitalisé automatiquement au cours de ce document.
15
Rappel de Tableau 1.1 - Définitions du lexique client
Définition Signification
Administrateur Un Usager ayant des droits supérieurs dans le système
Usager Une personne ayant un compte
Membre Un Usager non-administrateur
Visiteur Une personne sans compte
2.1.3 Composantes matérielles
ÉconoÉpiceries est un service en ligne. Il nécessite donc un hébergement. La trafic risque d‟être élevé, le système nécessitera un haute bande passante. De part la nature du fonctionnement d‟ÉconoÉpiceries, au minimum deux serveurs sont à prévoir. L‟un pour le traitement de requêtes webs, l‟autre pour le traitement de requêtes applicatives et le roulement de tâches automatisées.
2.1.4 Composantes logicielles
Le produit ÉconoÉpiceries est développé sur un architecture à 3 couches, soit 3 composantes: un serveur web, un serveur applicatif et une couche d‟accès au donnée, ou base de donnée. Les deux serveurs mentionnés en 2.1.3 servent à isoler le serveur web du reste des composantes systèmes pour un souci d‟isolation et de performance.
La première composante, le serveur web, est une instance Node.js destinée à traiter les requêtes HTTP, gérer l‟affichage des données, des pages, des vues et de gérer les sessions utilisateurs. Node.js est un plate-forme construite sur le moteur d‟exécution JavaScript V8 de Google développé pour Google Chrome. La nature flexible des données gérées par ÉconoÉpiceries combinée au modèle d‟objet JSON de JavaScript et l‟optimisation I/O de Node.js en font un choix parfait pour le serveur gérant une large quantité de requêtes HTTP. Linux est conseillé comme OS, ce n‟est cependant pas une exigence.
La deuxième composante, le serveur applicatif, est aussi une instance de Node.js aussi sous Linux. Le serveur applicatif est séparé en deux sous-composantes: L‟une destinée à la recherche et la logique d‟affaire, l‟autre destinée à la collecte automatique « scraping » des données et la normalisation.
La troisième composante, la base de donnée, est une instance de MongoDB. MongoDB est une BDD nouveau genre faisant partie de la vague NoSQL. Sa nature de stockage document-objet JSON en fait un choix parfait pour une intégration avec Node.js et pour la nature changeante des données récoltées par le produit.
16
Figure 2 - Diagramme des composantes logicielles
2.1.5 Télécommunications
Le produit est un service web, pour son bon fonctionnement un support TCP/IP est requis pour pouvoir utiliser le protocole HTTP. Ce support est natif pour la plupart des OS.
2.1.6 Contraintes de mémoire primaire et secondaire
La demande mémoire, en mémoire vive et espace de stockage, varie principalement selon la charge serveur. On peut cependant prévoir un demande moyenne nécessaire lors des premiers mois après le lancement du produit.
Côté mémoire vive, on suggère un minimum de 2GO répartie entre les composantes. Un minimum de 512MO pour la base de données, 512MO pour le serveur web et 1GO pour le serveur applicatif.
Pour ce qui est de l‟espace de stockage, une bonne partie des données stockées existent sur une base rotative et ont un temps d‟existence limité; L‟utilisation de l‟espace de stockage risque donc d‟être minime, 10GO devraient suffire pour un moment. Par souci d‟intégrité des données, il est conseillé de prévoir soit un espace de sauvegarde de secours, soit une redondance des données, voir même les deux.
17
2.1.7 Opérateurs
L‟Administrateur a accès aux mêmes interfaces qu‟un utilisateur normal, seulement sa vue (web) se voit augmentée de fonctionnalités supplémentaires lui permettant d‟administrer les différentes parties du produit lors de la navigation. De plus, l‟Administrateur a accès à une interface web lui étant réservée lui permettant d‟effectuer des opérations supplémentaires de gestion système sur les données, l‟application, les serveurs et l‟OS.
2.1.8 Adaptation du site d’installation
Une configuration standard de serveur respectant les spécifications matérielles et logicielles mentionnées ci-haut comble parfaitement les besoins du produit. Aucune adaptation du site d‟installation outre la configuration n‟est requise.
18
2.2 Vue d’ensemble des fonctions du produit
Tableau 4 - Vue d’ensemble des fonctions d’ÉconoÉpiceries
Fonction Description
Gestion de produits Les fonctions de gestion de produits serviront principalement aux Administrateurs à ajouter, modifier et supprimer des produits manuellement au système. Ces fonctions servent à entre autres à corriger / modifier les données de la collecte automatique.
Gestion de prix Les fonctions de gestion de prix serviront principalement aux Administrateurs à ajouter, modifier et supprimer des prix de produits manuellement au système. Ces fonctions servent à entre autres à corriger / modifier les données de la collecte automatique.
Consultation de produits
Les fonctions rattachées à la consultation de produits. Les Visiteurs et les Usagers peuvent consulter des produits, voir les prix et les commentaires laissés.
Gestion de comptes Les fonctions de gestion de comptes permettent la création, l‟authentification, la modification et suppression de son compte à un Membre. De plus, un Administrateur peut visionner, modifier, supprimer ou suspendre un compte existant, en plus d‟en créer de nouveaux, admin ou non.
Gestion de listes d‟épiceries
Les fonctions de gestion de listes d‟épiceries permettent aux Usagers de créer, modifier et supprimer des listes d‟épiceries ainsi que d‟y rajouter ou supprimer des produits et d‟en calculer le prix total.
Gestion de favoris Les fonctions de gestion de favoris permettent aux Usagers de sauver dans leur compte leurs produits favoris afin de pouvoir y accéder plus tard.
Gestion de commentaires
Les fonctions de gestion de commentaires permettent aux Usagers de pouvoir commenter un produit et d‟évaluer les autres commentaires. Un Administrateur possède de plus des capacités de modération.
Recherche de produits Les fonctions de recherche permettent aux Visiteurs et Usagers de trouver un produit et le consulter.
Gestion de la mise à jour des données
Les fonctions de gestion de la mise à jour des données permettent aux Administrateurs de modifier l‟horaire de collecte automatique des données.
Gestion de magasins Les fonctions de gestion de magasins permettent aux Administrateurs de modifier les informations des magasins et d‟activer/désactiver la collecte par magasin.
Gestion de chaînes Les fonctions de gestion de chaînes permettent aux Administrateurs de modifier les informations des chaînes de magasins et d‟activer/désactiver la collecte par chaîne de magasins.
19
2.3 Description des utilisateurs
Le Visiteur est un élément externe du système ayant un accès limité au système. Ses responsabilités et privilèges sont restreints au minimum. Il peut rechercher et consulter un produit, créer un compte et s'authentifier. Aucune expertise ou capacité lui est requise outre la qualité d‟être capable d‟utiliser un navigateur web et l‟internet. Ceci est valable pour tout les utilisateurs.
Le Membre est un élément interne du système possédant un compte et étant authentifié. Ses privilèges sont plus élevés que le Visiteur puisqu‟il est authentifié. À ceux du Visiteur se rajoutent les listes d‟épiceries, les produits favoris et les commentaires de produit. Tout comme le Visiteur, seul la capacité de naviguer le web lui est requise.
L‟Administrateur est l‟élément interne du système possédant les responsabilités et privilèges les plus élevés. En plus des privilèges du Membre, l‟Administrateur se voit attribuer les capacités de modération des commentaires, modification des produits, des magasins, des chaînes, des comptes et de la collecte. L‟Administrateur a la responsabilité d‟assurer le bon fonctionnement du système. Une connaissance technique de base lui est requise pour administrer les parties système d‟ÉconoÉpiceries.
2.4 Contraintes d’ordre général
2.4.1 Règlements des organismes gouvernementaux, syndicaux, etc.
La collecte automatisée de donnée sur des sites externes, en anglais « Web Scraping », est une zone grise légale. La pratique n‟est pas particulièrement dénotée illégale par la loi mais entre en possible conflit avec notamment la question de la propriété intellectuelle. De plus, la pratique peut briser les termes d‟utilisation d‟un site web.
2.4.2 Limitations du matériel
Les limitations du matériel vont dépendre de la charge d‟utilisation du serveur, soit le nombre de requêtes concurrentes sur le serveur. Dans notre cas d‟utilisation normale prédit, les spécifications matérielles mentionnées en 2.1.3 et 2.1.6 devraient suffirent. L‟autre point pouvant limiter le système est la bande passante accessible, autant par le serveur que par l‟utilisateur.
2.4.3 Interfaces à d’autres applications
Le système ÉconoÉpiceries n‟est pas dépendant d‟autres applications sur le même serveur, hormis Node.js et MongoDB. Cependant, il est dépendant des applications des épiceries pour la collecte, soit leur site ou une api dans le cas existant.
2.4.4 Opérations en parallèle
Le serveur applicatif gère principalement la recherche mais permet des opérations parallèles, notamment il exécute les opérations automatisées de collecte de données et normalisation.
20
2.4.5 Fonctions d’audit
Le système garde une historique des grandes actions faites par un Usager. L‟historique rend possible le profilage d‟un utilisateur ou d‟une séquence d‟actions afin d‟améliorer le système et de corriger les dysfonctionnements ou écarts détectés.
2.4.6 Fonctions de contrôle
L‟Administrateur a accès à la modification de pratiquement toute donnée et information du système. De plus, il peut modifier les paramètres de la collecte, dont l‟horaire, les chaînes et magasins.
2.4.7 Exigences de langages de programmation
Le choix a été pris de développer la totalité d‟ÉconoÉpiceries, autant client que serveur, en JavaScript afin de faciliter le développement. La forme d‟objet « prototype » extrêmement flexible de JavaScript nous impose peu ou pas de contraintes lors du développement.
2.4.8 Protocoles de communication
Les communications du système seront effectuées à l‟aide du protocole HTTP. Un support de TCP/IP est donc requis.
2.4.9 Exigences de fiabilité
Le service doit être en tout temps disponible. Un durée de fonctionnement de 99% doit être visée (un standard « deux neuf » de haute disponibilité).
Côté données, le système doit s‟assurer que les prix listés sont les même qu‟en magasin. Des incohérences fréquentes rendraient inutile le système.
2.4.10 Aspects critiques de l’application
Il est primordial que la collecte de donnée fonctionne correctement. Sans des informations valides, le reste du système devient inutile pour un utilisateur. La collecte étant lourdement dépendante de la structure des sites des épiceries, une maintenance fréquente devra être effectuée du processus de collecte.
2.4.11 Considération de sûreté et de sécurité
Le système va récolter quelques informations personnelles sur les utilisateurs il est donc important d‟avoir une certaine forme de sécurité en place. Un certificat SSL pour activer la navigation sécurisée est suggéré. Cependant, la portée des informations récoltées est minime et le système n‟engage pas de transactions financières; une modèle de sécurité plus simple peut être utilisé.
21
2.5 Hypothèses et dépendances
Le serveur web et le serveur applicatif, tout deux des instances Node.js, ainsi que l‟instance MongoDB seront hébergés sur un système d‟exploitation Linux. Les deux serveurs seront accessibles via HTTP, la base de donnée tant qu‟à elle ne devrait pas être accessible sur le web.
Les spécifications matérielles spécifiées devraient suffirent à la charge serveur durant la première année d‟exercice d‟ÉconoÉpiceries. La quantité de données gérée devrait grandir de manière constante, relative à la base utilisateur.
Le système a une grand dépendance envers les épiceries. Le moindre changement de leur site et/ou circulaire pourrait empêcher la collecte automatique de fonctionner correctement. Une vérification régulière devra être effectuée pour maintenir ÉconoÉpiceries fonctionnel.
2.6 Répartitions des exigences
Pour la première version d‟ÉconoÉpiceries, certaines fonctionnalités ne seront pas encore implémentées. Quelques exigences peuvent être reportées à la révision suivante. Par exemple, la création d‟une application mobile, la gestion des utilisateurs authentifiés ainsi que les fonctionnalités leurs étant rattachées tel les favoris ne sont pas nécessaires pour la première phase puisque la recherche, le but principal du système, est encore possible.
22
3.0 DESCRIPTION DÉTAILLÉE
Vue d’ensemble des cas d’utilisation (Visiteur + Membre)
Figure 3 - Diagramme des cas d’utilisation (Visiteur + Membre)
23
Vue d’ensemble des cas d’utilisation (Administrateur)
Figure 4 - Diagramme des cas d’utilisation (Visiteur + Membre)
24
3.1 Interface externes
3.1.1 Chercher un produit
ID: CU01
Nom: Chercher un produit
Acteurs: Visiteur, Membre et Administrateur
Objectifs: Permet de chercher et afficher un ou des produits à partir d‟un code à barre (CUP) ou de mots clés.
Résumé: L‟utilisateur entre le code ou les mots clés qui correspondent à sa recherche, ainsi que les différents paramètre comme la région, le magasins,etc.... Le système affiche en retour la liste des produits retrouvés qui correspondent à sa requête.
Type: Primaire
Références: CO2: lancerRecherche
CO3: estCUP
CO4:rechercherProduitParCUP
CO5:rechercherProduitParMotClé
CO6:chercherPrix
Pré-conditions: Aucune
Post-conditions: La liste des produits retournée par la recherche est affichée. Chaque produit peut être consulté, rajouté à la liste des favoris ou à une liste d‟épicerie, si l‟utilisateur est authentifié.
Interactions:
Acteurs Système
1. Entre un code ou des mots clés dans la barre de recherche, choisit les paramètres de recherche désirés et lance la recherche.
2. Affiche à l‟écran un résumé de tous les produits correspondant à la recherche.
Scénarios alternatifs
1. a. Le texte entré est un code CUP
i. Recherche un produit par son code CUP b. Le texte entré n‟est pas un CUP
. Recherche un produit par mot clé 2.
. La liste de produit trouvé est vide . Retourne un message
a. La liste retourné contient au moins un produit
25
. Afficher le résumé de chaque produit
3.1.2 S’enregistrer
ID: CU02
Nom: S‟enregistrer
Acteurs: Visiteur
Objectifs: Permet de se créer un compte Membre
Résumé: Le Visiteur entre ses informations personnelles, dont un nom d‟usager, un courriel et un mot de passe, pour pouvoir accéder à des fonctionnalités supplémentaires telles que sauvegarder ses produits et magasins favoris.
Type: Secondaire
Références: CO7: s‟enregistrer CO8: créerUtilisateur
Pré-conditions: L‟utilisateur n‟est pas authentifié.
Post-conditions:
Le Visiteur devient un Membre.
Interactions:
Acteurs Système
1. Entre les informations personnelles dont un courriel et un mot de passe.
2.
Ajoute le futur Membre dans la BDD et envoie un courriel de confirmation. Affiche à l‟écran les nouvelles fonctionnalités et le nom du Membre.
Scénarios alternatifs
1. a. La création a été complété
i. Affiche la page d‟accueil b. La création n‟a pas été complété
. affiche un message d‟erreur
26
27
3.1.3 Consulter un produit
ID: CU03
Nom: Consulter un produit
Acteurs: Visiteur, Membre et Administrateur
Objectifs: Permet de visualiser un produit en détail
Résumé: L‟utilisateur choisit un produit à consulter. Le système affiche le produit ainsi que tous les détails du produits tel que la description, les statistiques pour le prix du produit, etc...
Type: Primaire
Références: CO9: consulterProduit
Pré-conditions:
Une liste de produits est affichée.
Post-conditions:
Le produit sélectionné est affiché avec tous les détails, sinon un message est affiché disant que le produit est introuvable.
Interactions:
Acteurs Système
1. Sélectionne un produit parmi les produits affichés
2.
Affiche à l‟écran le produit sélectionné ainsi que tous les détails du produit.
28
3.1.4 S’authentifier
ID: CU04
Nom: S‟authentifier
Acteurs: Visiteur
Objectifs: Accéder aux fonctionnalités du compte utilisateur
Résumé: Le Visiteur doit envoyer des informations clés qui permettront au système de l'identifier de façon sécuritaire.
Type: Secondaire
Références: CO1: s‟authentifier
Pré-conditions: L‟utilisateur n‟est pas authentifié.
Post-conditions: Le Visiteur est authentifié comme Membre ou Administrateur et est autorisé à utiliser les fonctionnalités
Interactions:
Acteurs Système
1. Entre son nom d‟usager et son mot de passe.
2.
Vérifie dans la BDD si les informations concordent. Dans le cas positif, affiche les fonctionnalités supplémentaires. Dans le cas contraire, il demande de réessayer jusqu‟au succès.
Scénarios alternatifs
1. a. L‟authentification est valide
i. Affiche la page d‟accueil puis affiche un message de bienvenue b. L‟authentification n‟est pas valide
. Affiche un message d‟erreur
29
3.1.5 Ajouter une liste d’épicerie
ID: CU05
Nom: Ajouter une liste d‟épicerie
Acteurs: Membre, Administrateur
Objectifs: Créer une nouvelle liste de produits pour pouvoir la consulter lorsqu‟on fait l‟épicerie
Résumé: Lorsqu‟un Usager trouve un produit intéressant, il l‟ajoute à sa liste d‟épicerie. Elle contient le produit, son prix et son emplacement.
Type: Secondaire
Références: C010: ajouterListeÉpicerie CO11: créerListeÉpicerie
Pré-conditions: L‟Usager est authentifié.
Post-conditions:
Une liste d‟épicerie est créée
Interactions:
Acteurs Système
1. Clique sur un bouton Créer une liste d‟épicerie
2.
Ajoute une liste d‟épicerie à la BDD
Scénarios alternatifs
1. a. La liste a été créée
i. La liste est affichée b. La liste n‟a pas été créée
. Affiche un message d‟erreur
30
3.1.6 Consulter une liste d’épicerie
ID: CU06
Nom: Consulter une liste d‟épicerie
Acteurs: Membre, Administrateur
Objectifs: Consulter une liste d‟épicerie
Résumé: Un Usager peut consulter une liste d‟épicerie auparavant crée. Elle contient une liste de produits qu‟il a sauvegardé.
Type: Secondaire
Références: C011: consulterListeÉpiceries CO12: obtenirListesÉpiceries CO13:consulterListe CO14:obtenirListe
Pré-conditions:
L‟Usager est authentifié.
Post-conditions:
La liste d‟épicerie est affichée avec tout les produits qu‟elle contient.
Interactions:
Acteurs Système
1. Sélectionne une liste d‟épicerie parmi les listes affichées
2.
Affiche à l‟écran la liste d‟épicerie
31
3.1.7 Calculer le prix d’une liste d’épicerie
ID: CU07
Nom: Calculer le prix d‟une liste d‟épicerie
Acteurs: Membre, Administrateur
Objectifs: Calculer le prix actuel d‟une liste d‟épicerie
Résumé: Lorsque l‟Usager accède à une liste d‟épicerie, il peut faire calculer prix actuel de la liste.
Type: Secondaire
Références: CO15: calculerPrix CO16: obtenirPrix CO17: garderPrixMin CO18: ajouterAuTotal
Pré-conditions: La liste est affichée.
Post-conditions: Le prix de la liste est calculé.
Interactions:
Acteurs Système
1. Clique sur le bouton „Calculer le prix de la liste‟
2.
Calcule le prix de la liste d‟épicerie
3.
Affiche le prix de la liste d‟épicerie
Scénarios alternatifs
1. a. Une chaîne est spécifiée pour calculer les prix
i. Additionne le prix de chaque articles de la liste ayant un prix au magasin de la chaîne le plus près de l‟Usager.
b. Aucune chaîne n‟est spécifiée pour calculer le prix . Additionne le prix le plus bas entre chaque magasin le plus près de
l‟Usager pour chaque articles de la liste
32
3.1.8 Supprimer une liste d’épicerie
ID: CU08
Nom: Supprimer une liste d‟épicerie
Acteurs: Membre, Administrateur
Objectifs: Supprimer une liste d‟épicerie que l'acteur a créée.
Résumé: Après que le Membre a créé sa liste d‟épicerie, il peut la supprimer après avoir fini son épicerie.
Type: Secondaire
Références: CO19: supprimerListeÉpicerie CO20: supprimerListe CO21: demanderConfirmation
Pré-conditions: Une liste d‟épicerie existe.
Post-conditions:
La liste d‟épicerie est supprimée.
Interactions:
Acteurs Système
1. Clique sur le bouton Supprimer la liste d‟épicerie
2.
Supprime la liste d‟épicerie de la BDD et rafraîchit la page
Scénarios alternatifs
1. a. L‟Usager confirme la suppression de la liste
i. Le système supprimer la liste de la BDD b. L‟Usager ne confirme pas la suppression de la liste
. Le système affiche la liste
33
3.1.9 Retirer un produit d’une liste d’épicerie
ID: CU09
Nom: Retirer un produit d‟une liste d‟épicerie
Acteurs: Membre, Administrateur
Objectifs: Retirer un produit d'une liste d'épicerie créée par l'acteur.
Résumé: Un produit existant dans la BDD et ayant été ajouté à la liste d'épicerie personnelle d'un Usager peut ensuite être supprimée de cette même liste.
Type: Secondaire
Références: CO22: retirerProduitÉpicerie CO23: supprimerProduitÉpicerie
Pré-conditions:
Le produit existe dans la liste d‟épicerie.
Post-conditions:
Le produit n'est pas dans la liste.
Interactions:
Acteurs Système
1. Clique sur le bouton 'Retirer' associé au produit.
2.
Supprime le produit de la liste dans la BDD.
Confirme l‟action.
34
3.1.10 Ajouter un produit à une liste d’épicerie
ID: CU10
Nom: Ajouter un produit à une liste d‟épicerie
Acteurs: Membre, Administrateur
Objectifs: Créer une référence entre un produit une liste d'épicerie personnelle.
Résumé: L‟acteur ajoute un produit à sa liste d'épicerie. La banque de donnée crée alors une référence du produit dans la liste de l'usager.
Type: Secondaire
Références: CO24: ajouterUnProduitÉpicerie CO25:récupérerListesÉpicerie CO26: chosirListeÉpicerie CO27: ajouterProduitÉpicerie
Pré-conditions:
Le produit existe dans la BDD.
Post-conditions:
Le produit est ajouté à la liste.
Interactions:
Acteurs Système
1. Clique sur le bouton 'Ajouter' associé au produit désiré.
2.
Ajoute une référence de la liste vers le produit dans la BDD.
Confirme l‟action.
Scénarios alternatifs
1. a. L‟Usager a plus d‟une liste
i. Affiche les listes de l‟Usager ii. L‟Usager choisit une liste iii. Le produit est ajouté à la liste
b. L‟Usager a une seule liste . Le produit est ajouté à la liste
35
36
3.1.11 Consulter les commentaires
ID: CU11
Nom: Consulter les commentaires
Acteurs: Membre, Administrateur
Objectifs: Accéder à tous les commentaires du produit.
Résumé: L'acteur peut accéder aux détails des commentaires associés à un produit. Le système lui fournis alors les informations de ces derniers.
Type: Secondaire
Références: CO28: consulterCommentaires CO29: récupérerCommentaires
Pré-conditions:
Le commentaire existe.
Post-conditions:
Les informations sont affichés.
Interactions:
Acteurs Système
1. Clique sur le bouton „Commentaires‟
2.
Envois toutes les informations des commentaires.
37
3.1.12 Évaluer un commentaire
ID: CU12
Nom: Évaluer un commentaire
Acteurs: Membre, Administrateur
Objectifs: Évaluer un commentaire laisser par un autre Usager
Résumé: L‟acteur peut évaluer un commentaire laisser par un autre Usager
Type: Secondaire
Références: CO30:évaluerCommentaire CO31:ajouterCote
Pré-conditions: Le commentaire existe.
Post-conditions: Le rating du commentaire est ajusté
Interactions:
Acteurs Système
1. Clique sur les boutons 'j'aime', 'je n'aime pas' associés au commentaire.
2.
Comptabilise l‟évaluation du commentaire et actualise le commentaire.
38
3.1.13 Ajouter un commentaire
ID: CU13
Nom: Ajouter un commentaire
Acteurs: Membre, Administrateur
Objectifs: Ajouter un commentaire à un produit
Résumé: L‟acteur peut laisser un commentaire en dessous d‟un produit afficher.
Type: Secondaire
Références: CO32:produireCommentaire CO33:ajouterCommentaire CO34: créerCommentaire
Pré-conditions: Le produit est affiché.
Post-conditions: Le commentaire a été ajouté à la liste de commentaires du produit.
Interactions:
Acteurs Système
1. Clique pour ajouter un commentaire.
2.
Affiche le formulaire de saisie de commentaire.
3. Remplit le formulaire et le soumet.
4.
Ajoute le commentaire à la liste de commentaires du produit.
5.
Confirme l‟ajout.
39
3.1.14 Modifier un commentaire
ID: CU14
Nom: Modifier un commentaire
Acteurs: Membre, Administrateur
Objectifs: Modifier un commentaire
Résumé: L‟acteur peut modifier un commentaire qu‟il a laissé sur un produit.
Type: Secondaire
Références: C035:modifierCommentaire CO36: modificationsCommentaire CO37: mettreAjourCommentaire
Pré-conditions: Le commentaire existe.
Post-conditions: Les modifications ont été apportées au commentaire.
Interactions:
Acteurs Système
1. Clique pour modifier le commentaire.
2.
Affiche le formulaire de modification.
3. Remplit le formulaire et le soumet.
4.
Apporte les modifications.
5.
Confirme l‟action.
40
3.1.15 Supprimer un commentaire
ID: CU15
Nom: Supprimer un commentaire
Acteurs: Administrateur
Objectifs: Supprimer un commentaire
Résumé: L‟acteur peut supprimer un commentaire laissé sur un produit.
Type: Secondaire
Références: CO21: demanderConfirmation CO38: retirerCommentaire CO39: supprimerCommentaire
Pré-conditions: Le commentaire existe.
Post-conditions: Le commentaire a été supprimé de la base de données.
Interactions:
Acteurs Système
1. Clique pour supprimer un commentaire.
2.
Demande la confirmation de la suppression.
3. Confirme la suppression du commentaire.
4.
Supprime le commentaire de la base de données.
5.
Affiche un message de confirmation.
Scénarios alternatifs
1. a. L‟Administrateur confirme la suppression du commentaire
i. Le commentaire est supprimé b. L‟Administrateurne confirme pas la suppression du commentaire
. Le commentaire n‟est pas supprimé
41
3.1.16 Consulter la liste des favoris
ID: CU16
Nom: Consulter la liste des favoris
Acteurs: Membre, Administrateur
Objectifs: Accès une liste de favoris personnelle.
Résumé: Un Usager peux entretenir une liste de produits auxquels il souhaite avoir accès. Il lui est alors possible de consulter cette liste, demandant ainsi au système d'afficher toute information contenue dans celle-ci.
Type: Secondaire
Références: CO40: consulterListeFavoris CO41: récupérerFavoris
Pré-conditions:
Aucune
Post-conditions:
La liste est affichée peu importe si celle-ci est vide ou non.
Interactions:
Acteurs Système
1. Clique sur le bouton 'Afficher favoris'
2.
Affiche la liste de favoris.
42
3.1.17 Ajouter un produit à la liste des favoris
ID: CU17
Nom: Ajouter un produit à la liste des favoris
Acteurs: Membre, Administrateur
Objectifs: Ajouter un produit à la liste.
Résumé: Un Usager ayant recherché un produit qui l'intéresse a la possibilité de garder une référence vers ce produit dans sa liste personnelle de favoris.
Type: Secondaire
Références: CO42:ajouterAuxFavoris CO43: nouveauFavoris
Pré-conditions:
Le produit existe.
Post-conditions:
Le produit est ajouté à la liste.
Interactions:
Acteurs Système
1. Appuie sur le bouton 'Ajouter' associé au produit recherché.
2.
Ajoute une référence vers le produit dans la liste de favoris.
43
3.1.18 Retirer un produit de la liste des favoris
ID: CU18
Nom: Retirer un produit de la liste des favoris
Acteurs: Membre, Administrateur
Objectifs: Retirer un produit de la liste de favoris d‟un Usager
Résumé: L‟acteur peut retirer un produit de ses favoris.
Type: Secondaire
Références: CO44: retirerFavori CO45: supprimerFavori
Pré-conditions: Le produit est présent dans la liste de favoris.
Post-conditions: Le produit n'est plus référé dans la liste de favoris.
Interactions:
Acteurs Système
1. Appuie sur le bouton 'Retirer'
2.
Supprime la référence du produit dans la liste.
44
3.1.19 Modifier son compte
ID: CU19
Nom: Modifier son compte
Acteurs: Membre
Objectifs: Modifier son compte
Résumé: Un Membre peut modifier les informations personnelles de son compte.
Type: Secondaire
Références: CO46: modifierCompte CO47: miseAJourCompte
Pré-conditions: L‟utilisateur doit être authentifé
Post-conditions: Les modifications sont apportées.
Interactions:
Acteurs Système
1. L'utilisateur appuie sur le bouton 'Modifier compte'
2.
Le système affiche un formulaire avec les champs à modifier.
3. L'utilisateur remplis les champs qu'il souhaite modifier.
4.
Le système remplace les informations dans la BDD.
5.
Le système affiche un message de confirmation.
Scénarios alternatifs
1. a. L‟information envoyé est valide
i. Le système affiche un message de confirmation b. L‟information envoyé est invalide
45
. Le système affiche un message d‟erreur
3.1.20 Supprimer son compte
ID: CU20
Nom: Supprimer son compte
Acteurs: Membre
Objectifs: Gestion des comptes.
Résumé: Un Membre peut supprimer son compte de la base de donnée. Les références utilisés dans les favoris et les liste d'épiceries associées au compte seront aussi détruites.
Type: Secondaire
Références:
Pré-conditions: Le compte existe.
Post-conditions: Le compte est supprimé.
Interactions:
Acteurs Système
1. Appuie sur le bouton 'Supprimer compte'
2.
Demande une confirmation.
3. Confirme la demande.
4.
Demande une le mot de passe.
5. Entre le mot de passe.
6.
Authentifie l‟utilisateur.
7.
Supprime le compte.
8.
Affiche la page d‟accueil.
9.
Affiche une message de confirmation.
Scénarios alternatifs
46
1. a. Le Membre confirme la demande de suppression
i. Le système demande l‟authentification du Membre ii. L‟authentification du Membre est valide
1. Le système affiche la page d‟accueuil iii. L‟authentification du Membre est invalide
1. Le système affiche un message d‟erreur b. Le membre ne confirme pas la demande de suppresion
. Le système affiche la page du compte du client
3.1.21 Démarrer manuellement la collecte de données
ID: CU21
Nom: Démarrer manuellement la collecte de données
Acteurs: Administrateur
Objectifs: Gestion des données.
Résumé: L'Administrateur peut lancer la collecte automatisée des donnés d'un magasin en particulier. La circulaire sera alors mise à jour.
Type: Secondaire.
Références:
Pré-conditions:
Aucune
Post-conditions:
La circulaire est mise à jour.
Interactions:
Acteurs Système
1. Démarre la collecte d'un magasin.
2.
Récolte les données sur le site du magasin.
Met à jour la circulaire associée.
Envoie une confirmation lorsque la tâche est terminée.
47
48
3.1.22 Consulter la liste des produits
ID: CU22
Nom: Consulter la liste des produits
Acteurs: Administrateur
Objectifs: Gestion des données.
Résumé: L'Administrateur peut en tout temps consulter la liste de tous les produits du site.
Type: Secondaire
Références:
Pré-conditions: Aucune.
Post-conditions:
La liste est affichée peut importe si cette dernière est vide ou non.
Interactions:
Acteurs Système
1. Appuie sur le bouton 'Afficher liste complète des produits'
2.
Affiche tous les produits.
49
3.1.23 Ajouter un produit
ID: CU23
Nom: Ajouter un produit
Acteurs: Administrateur
Objectifs: Gestion des données
Résumé: L'Administrateur peut ajouter un produit lui même. Les informations sont validés puis stockées dans la BDD.
Type: Secondaire
Références:
Pré-conditions: Aucune
Post-conditions:
Aucune
Interactions:
Acteurs Système
1. Appuie sur 'Ajouter un produit'
2.
Envois un formulaire.
Remplis le formulaire.
Valide les données du formulaire.
Crée le nouveau produit dans la BDD à l'aide des informations validées.
Envois un message de confirmation.
Scénarios alternatifs
1. a. Les informations soumises par l‟Administrateur sont valides
i. Le système affiche un message de confirmation b. Les informations soumises par l‟Administrateur sont invalides
. Le système affiche un message d‟erreur
50
3.1.24 Modifier un produit
ID: CU24
Nom: Modifier un produit
Acteurs: Administrateur
Objectifs: Gestion des données.
Résumé: L'Administrateur peut modifier un produit existant. Les anciennes informations seront remplacés dans la BDD.
Type: Secondaire
Références:
Pré-conditions: Le produit existe.
Post-conditions:
Aucune
Interactions:
Acteurs Système
1. Appuie sur 'Modifier produit'
2.
Fournis un formulaire.
3. Fournis les informations du produit.
4.
Valide les informations.
5.
Modifie les informations dans la BDD.
6.
Envois un message de confirmation.
Scénarios alternatifs
1. a. Les informations soumises par l‟Administrateur sont valides
i. Le système affiche un message de confirmation b. Les informations soumises par l‟Administrateur sont invalides
. Le système affiche un message d‟erreur
51
52
3.1.25 Ajouter un prix à un produit
ID: CU25
Nom: Ajouter un prix à un produit
Acteurs: Administrateur
Objectifs: Ajouter un prix connu qui n‟est pas en circulaires à un produit.
Résumé: L‟Administrateur qui consulte un produit peut y ajouter un prix. Le prix et ses informations sont ajoutés à la base de données.
Type: Secondaire
Références:
Pré-conditions:
Le produit existe.
Post-conditions:
Le prix est ajouté à la base de données.
Interactions:
Acteurs Système
1. Appuie sur “Ajouter un prix”
2. Entre les détails du nouveau prix.
3.
Valides les données et les range dans la base de données.
4.
Affiche un message de confirmation.
53
3.1.26 Modifier le prix d’un produit
ID: CU26
Nom: Modifier le prix d‟un produit
Acteurs: Administrateur
Objectifs: Gestion des données.
Résumé: L'Administrateur peut modifier les information concernant le prix d'un produit. Incluant l'unité ainsi que la date de début et de fin.
Type: Secondaire
Références:
Pré-conditions: Le prix existe et est lié à un produit existant.
Post-conditions:
Le prix est modifié dans la BDD.
Interactions:
Acteurs Système
1. Appuie sur 'Modifier prix'
2.
Envoie un formulaire.
Envois les nouvelles informations concernant le prix.
Modifie les informations dans la BDD.
Affiche un message de confirmation.
Scénarios alternatifs
1. a. L‟authentification de l‟Administrateur est valide
i. Le système affiche un message de confirmation b. L‟authentification de l‟Administrateur est invalide
. Le systeme affiche un message d‟erreur
54
55
3.1.27 Supprimer le prix d’un produit
ID: CU27
Nom: Supprimer le prix d‟un produit
Acteurs: Administrateur
Objectifs: Supprimer un prix d‟un produit.
Résumé: L‟Administrateur supprime un prix d‟un produit qu‟il consultait. Il est effacé de la base de données.
Type: Secondaire
Références:
Pré-conditions: Le prix existe et est lié à un produit existant.
Post-conditions: Le prix est effacé de la base de données.
Interactions:
Acteurs Système
1. Appuie sur “Supprimer prix”
2.
Demande une confirmation.
3. Appuie sur “confirmer”.
4.
Demande le mot de passe de l‟administrateur.
5. Entre son mot de passe.
6.
Confirme l‟authentification.
7.
Supprime le prix de la base de données.
8.
Affiche une confirmation.
Scénarios alternatifs
1. a. L‟authentification de l‟Administrateur est valide
i. Le système affiche un message de confirmation b. L‟authentification de l‟Administrateur est invalide
. Le système affiche un message d‟erreur
56
3.1.28 Supprimer un produit
ID: CU28
Nom: Supprimer un produit
Acteurs: Administrateur
Objectifs: Supprimer un produit.
Résumé: L‟Administrateur supprime le produit qu‟il consultait. Le produit est supprimé de la base de données. Les prix et commentaires qui y sont reliés sont supprimés.
Type: Secondaire
Références:
Pré-conditions: Le produit existe.
Post-conditions: Le produit est supprimé de la base de données.
Interactions:
Acteurs Système
1. L‟administrateur appuie sur “Supprimer”
2.
Demande une confirmation.
3. Appuie sur “Confirmer”.
4.
Demande le mot de passe de l‟administrateur.
5. Entre son mot de passe.
6.
Confirme l‟authentification.
7.
Supprime le produit de la BDD.
8.
Affiche un message de confirmation.
Scénarios alternatifs
1. a. L‟Administrateur confirme la supression
i. Le système demande l‟authentification de l‟Administrateur ii. L‟authentification de l‟Administrateur est valide
57
1. Le système affiche un message de confirmation iii. L‟authentification de l‟Administrateur est invalide
1. Le système affiche un message d‟erreur b. L‟Administrateur ne confirme pas la suppression
. Le système affiche le produit
3.1.29 Consulter la liste des magasins
ID: CU29
Nom: Consulter la liste des magasins
Acteurs: Administrateur
Objectifs: Consulter la liste des magasins du système.
Résumé: Un administrateur fait afficher la liste des magasins.
Type: Primaire
Références:
Pré-conditions: Aucune
Post-conditions: La liste des magasins est affichée.
Interactions:
Acteurs Système
1. Clique pour faire afficher la liste des magasins.
2.
Affiche la liste des magasins.
58
3.1.30 Ajouter un magasin
ID: CU30
Nom: Ajouter un magasin
Acteurs: Administrateur
Objectifs: Ajouter un nouveau magasin.
Résumé: L‟Administrateur ajoute un nouveau magasin d‟une chaîne à la BDD.
Type: Primaire
Références:
Pré-conditions: La chaîne existe.
Post-conditions: Le magasin est ajouté à la base de données.
Interactions:
Acteurs Système
1. Appuie sur “Ajouter magasin”
2.
Affiche un formulaire.
3. Entre les informations du magasin dans le formulaire.
4.
Valide les données et ajoute le magasin à la base de données.
5.
Affiche un message de confirmation.
59
3.1.31 Modifier un magasin
ID: CU31
Nom: Modifier un magasin
Acteurs: Administrateur
Objectifs: Modifier les informations d‟un magasin.
Résumé: Un Administrateur modifie les informations d‟un magasin dans le système.
Type: Primaire
Références:
Pré-conditions: Le magasin existe.
Post-conditions:
Les informations du magasin ont été modifiées.
Interactions:
Acteurs Système
1. Clique pour modifier un magasin.
2.
Affiche le formulaire de modification.
3. Remplit le formulaire et le soumet.
4.
Apporte les modifications.
5.
Affiche un message de confirmation.
60
3.1.32 Activer/désactiver la collecte de données d’un magasin
ID: CU32
Nom: Activer/désactiver la collecte de données d‟un magasin
Acteurs: Administrateur
Objectifs: Permet de désactiver et réactiver la collecte automatique de données d‟un magasin.
Résumé: L‟Administrateur désactive ou active la collecte de données d‟un magasin pour les prochaines collectes.
Type: Secondaire
Références:
Pré-conditions: La collecte de données existe.
Post-conditions:
Le changement d‟état de la collecte de données est enregistré.
Interactions:
Acteurs Système
1. Appuie sur le bouton “Activer/Désactiver”
2.
Change l‟état de la collecte dans la BDD.
3.
Affiche un message de confirmation.
61
3.1.33 Supprimer un magasin
ID: CU33
Nom: Supprimer un magasin
Acteurs: Administrateur
Objectifs: Supprimer un magasin
Résumé: Un Administrateur supprime un magasin du système.
Type: Primaire
Références:
Pré-conditions: Le magasin existe.
Post-conditions: Le magasin a été supprimé.
Interactions:
Acteurs Système
1. Clique pour supprimer un magasin
2.
Demande une confirmation
3. Confirme la suppression.
4.
Demande une authentification.
5. Entre son mot de passe.
6.
Confirme l‟authentification.
7.
Supprime le magasin.
8.
Affiche un message de confirmation.
Scénarios alternatifs
1. a. L‟Administrateur confirme la supression
i. Le système demande l‟authentification de l‟Administrateur ii. L‟authentification de l‟Administrateur est valide
1. Le système affiche un message de confirmation iii. L‟authentification de l‟Administrateur est invalide
1. Le système affiche un message d‟erreur b. L‟Administrateur ne confirme pas la suppression
. Le système affiche l‟information du magasin
62
3.1.34 Consulter la liste des chaînes
ID: CU34
Nom: Consulter la liste des chaînes
Acteurs: Administrateur
Objectifs: Consulter la liste complète des chaînes.
Résumé: L‟Administrateur consulte la liste des chaînes contenues dans la BDD.
Type: Primaire
Références:
Pré-conditions: Il existe des chaînes dans la base de données.
Post-conditions: Toutes les chaînes sont affichées.
Interactions:
Acteurs Système
1. Appuie sur “Consulter toutes les chaînes”
2.
Affiche la liste des chaînes de la BDD.
63
3.1.35 Ajouter une chaîne
ID: CU35
Nom: Ajouter une chaîne
Acteurs: Administrateur
Objectifs: Ajouter une chaîne d‟épiceries
Résumé: Un Administrateur ajoute une chaîne d‟épiceries au système.
Type: Primaire.
Références:
Pré-conditions: Aucune
Post-conditions: La chaîne a été rajoutée au système.
Interactions:
Acteurs Système
1. Clique pour ajouter une chaîne.
2.
Affiche le formulaire d‟ajout.
3. Remplit le formulaire et le soumet.
4.
Ajoute la chaîne au système.
5.
Affiche un message de confirmation.
64
3.1.36 Modifier une chaîne
ID: CU36
Nom: Modifier une chaîne
Acteurs: Administrateur
Objectifs: Modifier une chaîne d‟épiceries
Résumé: Un Administrateur modifie les informations d‟une chaîne d‟épiceries.
Type: Primaire
Références:
Pré-conditions: La chaîne existe.
Post-conditions: La chaîne a été modifiée.
Interactions:
Acteurs Système
1. Clique pour modifier une chaîne.
2.
Affiche le formulaire de modification.
3. Remplit le formulaire et le soumet.
4.
Apporte les modifications.
5.
Affiche une message de confirmation.
65
3.1.37 Activer/désactiver la collecte de donnée d’une chaîne
ID: CU37
Nom: Activer/désactiver la collecte de données d‟une chaîne
Acteurs: Administrateur
Objectifs: Permet de désactiver et réactiver la collecte automatique de données d‟une chaîne.
Résumé: L‟Administrateur désactive ou active la collecte de données d‟une chaîne pour les prochaines collectes.
Type: Secondaire
Références:
Pré-conditions: La collecte de données existe.
Post-conditions:
Interactions:
Acteurs Système
1. Appuie sur le bouton “Activer/Désactiver”
2.
Change l‟état de la collecte dans la BDD.
3.
Affiche un message de confirmation.
66
3.1.38 Supprimer une chaîne
ID: CU38
Nom: Supprimer une chaîne
Acteurs: Administrateur
Objectifs: Supprimer une chaîne
Résumé: Un Administrateur supprime une chaîne d‟épiceries du système.
Type: Primaire
Références:
Pré-conditions: La chaîne existe.
Post-conditions: La chaîne a été supprimée.
Interactions:
Acteurs Système
1. Clique pour supprimer une chaîne.
2.
Demande une confirmation.
3. Confirme la suppression.
4.
Demande une authentification.
5. Entre son mot de passe.
6.
Confirme l‟authentification.
7.
Supprime la chaîne.
8.
Affiche un message de confirmation.
Scénarios alternatifs
1. a. L‟Administrateur confirme la supression
i. Le système demande l‟authentification de l‟Administrateur ii. L‟authentification de l‟Administrateur est valide
1. Le système affiche un message de confirmation iii. L‟authentification de l‟Administrateur est invalide
1. Le système affiche un message d‟erreur b. L‟Administrateur ne confirme pas la suppression
. Le système affiche l‟information de la chaîne
67
3.1.39 Consulter la liste des comptes
ID: CU39
Nom: Consulter la liste des comptes
Acteurs: Administrateur
Objectifs: Consulter la liste des comptes
Résumé: L‟Administrateur fait afficher la liste des comptes
Type: Secondaire
Références:
Pré-conditions: Aucune
Post-conditions: La liste des comptes est affichée.
Interactions:
Acteurs Système
1. Appuie sur “Consulter tout les chaînes”
2.
Affiche la liste des comptes.
68
3.1.40 Supprimer un compte
ID: CU40
Nom: Supprimer un compte
Acteurs: Administrateur
Objectifs: Supprimer un compte
Résumé: Un Administrateur peut supprimer un compte de la base de donnée. Les références utilisés dans les favoris et les liste d'épiceries associées au compte seront aussi détruites.
Type: Secondaire
Références:
Pré-conditions: Le compte existe.
Post-conditions: Le compte est supprimé.
Interactions:
Acteurs Système
1. Appuie sur le bouton 'Supprimer compte'
2.
Demande une confirmation.
3. Confirme la demande.
4.
Demande une authentification.
5. Entre son mot de passe.
6.
Confirme l‟authentification.
7.
Supprime le compte.
8.
Affiche une message de confirmation.
Scénarios alternatifs
1. a. L‟Administrateur confirme la supression
i. Le système demande l‟authentification de l‟Administrateur ii. L‟authentification de l‟Administrateur est valide
1. Le système affiche un message de confirmation iii. L‟authentification de l‟Administrateur est invalide
1. Le système affiche un message d‟erreur b. L‟Administrateur ne confirme pas la suppression
69
. Le système affiche l‟information de l‟Usager
3.1.41 Suspendre ou rétablir un compte Membre
ID: CU41
Nom: Suspendre un compte Usager
Acteurs: Administrateur
Objectifs: Suspendre et rétablir l‟accès à un compte d‟un Usager.
Résumé: L‟administrateur suspend ou rétabli l‟accès à un compte Usager qu‟il était en train de consulter.
Type: Secondaire
Références:
Pré-conditions: Le compte existe.
Post-conditions: Le changement d‟état est sauvegardé.
Interactions:
Acteurs Système
1. Appuie sur “Suspendre/Rétablir”
2.
Demande une confirmation
3. Appuie sur “Confirmer”
4.
Change l‟état du compte
5.
Affiche un message de confirmation
Scénarios alternatifs
1. a. L‟Administrateur confirme
i. L‟état du compte est changé ii. Le système envoit un message de confirmation
b. L‟Administrateur ne confirme pas
70
. Le système affiche le compte de l‟Usager
71
3.1.42 Modifier un compte
ID: CU42
Nom: Modifier un compte
Acteurs: Administrateur
Objectifs: Modifier les informations d‟un compte d‟un Usager.
Résumé: Un Administrateur modifie les informations du compte d‟un Usager.
Type: Secondaire
Références:
Pré-conditions: Le compte existe.
Post-conditions: Le compte a été modifié.
Interactions:
Acteurs Système
1. Appuie sur “Modifier compte”
2.
Affiche un formulaire
3. Modifie les informations voulues dans le formulaire
4.
Valide les nouvelles informations
5.
Enregistre les informations dans la BDD
Affiche un message de confirmation
Scérarios alternatifs
1. a. Les informations du formulaire sont valide
i. Le système affiche un message de confirmation b. Les informations du formulaire sont invalide
. Le système affiche un message d‟erreur
72
3.1.43 Ajouter un compte
ID: CU43
Nom: Ajouter un compte
Acteurs: Administrateur
Objectifs: Ajouter un compte Membre ou Administrateur.
Résumé: L‟Administrateur ajoute un compte Membre ou Administrateur
Type: Secondaire
Références: CU8: créerUtilisateur
Pré-conditions: Aucune.
Post-conditions: Le compte est créé.
Interactions:
Acteurs Système
1. Appuie sur “Ajouter un compte”.
2.
Affiche le formulaire.
3. Remplit le formulaire et le soumet.
4.
Vérifie les informations.
5.
Ajouter le compte.
6.
Affiche un message de confirmation.
Scénarios alternatifs
1. a. Les informations du formulaire sont valide
i. Le système affiche un message de confirmation b. Les informations du formulaire sont invalide
. Le système affiche un message d‟erreur
73
3.1.44 Consulter l’horaire de de collecte de données automatisée
ID: CU44
Nom: Consulter l‟horaire de collecte de données automatisée
Acteurs: Administrateur
Objectifs: Permet de consulter l‟horaire des toutes les collectes de données prévues
Résumé: Un Administrateur
Type: Secondaire
Références:
Pré-conditions: Il existe des collectes de données prévues.
Post-conditions: L‟horaire des collectes est affiché.
Interactions:
Acteurs Système
1. Appuie sur “Horaire des collectes de données”
2.
Affiche l‟horaire de toutes les collectes de données prévues.
74
3.1.45 Ajouter une collecte de données automatisée
ID: CU45
Nom: Ajouter une collecte de données automatisée
Acteurs: Administrateur
Objectifs: Ajouter de nouvelles collectes de données automatiques.
Résumé: Un administrateur ajoute une nouvelle collecte de données.
Type: Secondaire
Références:
Pré-conditions: Doit viser un magasin ou une chaîne existant déjà.
Post-conditions: La nouvelle collecte est ajoutée.
Interactions:
Acteurs Système
1. Appuie sur “Ajouter une collecte”
2.
Affiche un formulaire
3. Entre les informations sur la collecte
4.
Ajoute la collecte à l‟horaire.
5.
Affiche un message de confirmation
75
3.1.46 Modifier une collecte de données automatisée
ID: CU46
Nom: Modifier une collecte de données automatisée
Acteurs: Administrateur
Objectifs: Modifier les informations d‟une collecte de données automatisée
Résumé: Un Administrateur modifie les informations d‟une collecte de donnée qu‟il consultait.
Type: Secondaire
Références:
Pré-conditions: La collecte de données existe
Post-conditions:
Les modifications sont enregistrées
Interactions:
Acteurs Système
1. Appuie sur “Modifier collecte”
2.
Affiche un formulaire
3. Entre les nouvelles informations
Enregistre les modifications
Affiche un message de confirmation
76
3.1.47 Supprimer une collecte de données automatisée
ID: CU47
Nom: Supprimer une collecte de données automatisée
Acteurs: Administrateur
Objectifs: Supprimer une collecte de données automatisée
Résumé: Un administrateur peut supprimer une collecte de donnée automatisée
Type: Secondaire
Références:
Pré-conditions: La collecte de donnée automatisée existe
Post-conditions: La collecte de donnée automatisée est supprimée
Interactions:
Acteurs Système
1. Appuie sur “Supprimer collecte”.
2.
Demande une confirmation.
3. Confirme suppression.
4.
Demande une authentification.
5. Entre son mot de passe.
6.
Confirme l‟authentification.
7.
Affiche message de confirmation.
Scénarios alternatifs
1. a. L‟Administrateur confirme la suppresion
i. Le système demande une authentification ii. L‟authentification de l‟Administrateur est valide
1. Le système affiche un message de confirmation iii. L‟authentification de l‟Administrateur est invalide
1. Le système affiche un message d‟erreur b. L‟Administrateur ne confirme pas la suppresion
. L‟information de la collecte est affiché
77
3.2 Spécifications fonctionnelles
3.2.1.1 Chercher un produit
78
3.2.1.2 S’enregistrer
3.2.1.3 Consulter un produit
79
3.2.1.4 S’authentifier
3.2.1.5 Ajouter une liste d’épicerie
80
3.2.1.6 Consulter une liste d’épicerie
3.2.1.7 Calculer le prix d’une liste d’épicerie
81
3.2.1.8 Supprimer une liste d’épicerie
82
3.2.1.9 Retirer un produit d’une liste d’épicerie
83
3.2.1.10 Ajouter un produit à une liste
3.2.1.11 Consulter les commentaires
84
3.2.1.12 Évaluer un commentaire
3.2.1.13 Ajouter un commentaire
85
3.2.1.14 Modifier un commentaire
3.2.1.15 Supprimer un commentaire
86
3.2.1.16 Consulter la liste des favoris
3.2.1.17 Ajouter un produit à la liste des favoris
87
3.2.1.18 Retirer un produit de la liste des favoris
3.2.1.19 Modifier un compte membre
88
3.2.1.20 Supprimer un compte membre
89
3.2.1.21 Démarrer manuelle la collecte de données
3.2.1.22 Consulter la liste des produits
90
3.2.1.23 Ajouter un produit
91
3.2.1.24 Modifier un produit
92
3.2.1.25 Ajouter un prix à un produit
3.2.1.26 Modifier le prix d’un produit
93
3.2.1.27 Supprimer le prix d’un produit
94
3.2.1.28 Supprimer un produit
3.2.1.29 Consulter la liste des magasins
95
3.2.1.30 Ajouter un magasin
3.2.1.31 Modifier un magasin
96
3.2.1.32 Activer / Désactiver la collecte de données d’un magasin
3.2.1.33 Supprimer un magasin
97
3.2.1.34 Consulter la liste des chaînes
3.2.1.35 Ajouter une chaîne
98
3.2.1.36 Modifier une chaîne
3.2.1.37 Activer / Désactiver la collecte de données d’une chaîne
99
3.2.1.38 Supprimer une chaîne
3.2.1.39 Consulter la liste des comptes Membre
100
3.2.1.40 Supprimer un compte Membre
3.2.1.41 Suspendre un compte Membre
101
3.2.1.42 Modifier un compte
3.2.1.43 Ajouter un compte
102
3.2.1.44 Consulter l’horaire de la collecte de données automatisée
3.2.1.45 Ajouter une collecte de donnée automatisée
103
104
3.2.1.46 Modifier une collecte de données automatisée
3.2.1.47 Supprimer une collecte de données automatisée
105
3.2.4 Diagramme de classes
Figure 1 Diagramme de classes
106
3.3 Exigences d’opérations, de communications et de performance
Quant aux exigences quantitatives, plusieurs facteurs sont à prendre en compte.
Pour pouvoir gérer correctement le système et les demandes de service à clientèle, il va falloir 5 Administrateurs. Donc, il faut pourvoir 5 postes de travail. Deux serveurs seront nécessaires pour le roulement du système. Le premier sera pour traiter les requêtes web et le deuxième pour les requêtes applicatives et le roulement de tâches automatisées ainsi que pour la base de données.
Dans le cas de l'achalandage, on prévoit qu‟il y ait 10 000 utilisateurs par mois. Elle sera plus élevée le soir et les fins de semaines lorsque les familles préparent leur liste d‟épicerie. La performance des affichages des pages devra être en dessous de 5 secondes, sinon les utilisateurs vont penser qu‟il y a un problème.
Concernant la sécurité, le site sera en HTTPS pour pouvoir sécuriser les données des utilisateurs. Les Membres et les Administrateurs devront entrer leur courriel et leur mot de passe pour valider leur identité. De plus, les mots de passes ne seront pas stockés en clair dans la base de données, une fonction de hachage sera appliqué dessus. Donc, même les Administrateurs ne pourront pas voir les mots de passe des Membres.
3.4 Exigences logiques de bases de données
À la suite de la concertation de l‟équipe, on a décidé de prendre une BDD non-relationnelle où toutes les données relatives à l‟application seront stockées.
3.4.1 Types d’informations utilisées par les différentes fonctions
Les types des attributs seront des entiers, des décimaux, des chaînes de caractères, des dates ainsi que des images.
3.4.2 Fréquence d’utilisation
La fréquence de d‟utilisation de la BDD sera environ la même que le site internet puisque le site affiche les informations de la BDD. L‟utilisation de cette dernière sera plus élevée lorsque le crawler va ajouter des éléments à la BDD.
3.4.3 Capacité d’accès
La capacité d‟accès de la BDD directement sera disponible uniquement aux Administrateurs et au serveur applicatif.
3.4.4 Entités et relations des données
Avec MongoDB, il n‟y a pas de relations de données entre-elles. Si elle serait représenté avec des relations, ça serait celui du diagramme de classe de la section 3.2.4.
107
3.4.5 Contraintes d’intégrité
Malheureusement, il n‟y a pas d‟intégrité des données avec MongoDB. Pour la préserver, il faut s‟en assurer au niveau applicatif.
3.4.6 Exigences de rétention des données
Concernant la rétention des données, la BDD va être accessible en tout temps. Ainsi, le site va avoir un taux d‟accessibilité plus élevé.
3.5 Contraintes de conception
ÉconoÉpiceries est un nouveau produit dans un marché non-exploité au Québec. Le produit n‟a pas à continuer sur les bases de normes établies ou sur un système existant, sa conception est donc parfaitement libre de toute contraintes.
Le système n‟a pas de rapports à produire. Le format des données est entièrement nouveau. Il n‟effectue de transactions financières ni ne traite des transactions de données influençant le système avec l‟utilisateur en dehors de ses informations de comptes, la traçabilité des traitements n‟est donc pas une nécessité non plus.
3.6 Exigences non-fonctionnelles
3.6.1 Fiabilité
L‟utilité du système étant directement reliée à la qualité d‟informations gérée par ÉconoÉpiceries, les Administrateurs devront s‟assurer régulièrement de la qualité et fiabilité des données récoltées durant la collecte automatisée.
3.6.2 Disponibilité
ÉconoÉpiceries étant un service en ligne, le produit devra s‟assurer d‟être disponible en tout temps de de viser une cote de haute disponibilité 99% (deux neufs).
3.6.3 Sécurité
Le système va gérer beaucoup de données entrantes et sortantes. Pour maximiser la sécurité des serveurs, une connexion sécurisée est nécessaire. En outre, seul un Administrateur devrait avoir accès à la modification des données de la BDD. Les rôles des Membre à cet effet devraient être limités.
108
3.6.4 Entretien du logiciel
L‟entretien du logiciel va être un élément primordial du système. La base d‟ÉconoÉpiceries, la collecte de données, étant basée sur des éléments externes, la capacité à adapter et maintenir le système va être cruciale.
3.6.5 Portabilité
Le système devra être développé d‟une manière à assurer sa portabilité afin de pouvoir répondre rapidement à une forte augmentation de traffic ou un changement de technologie d‟hébergement, notamment les services d'hébergement d‟application PAAS (Plateform As A Service) et Docker, un technologie de conteneurs logiciels.
4.0 INFORMATIONS COMPLÉMENTAIRES 4.1 Index
Aucun.
109
4.2 Annexes
Annexe A - Maquette d‟interface