Vous êtes sur la page 1sur 109

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

1
2
HISTORIQUE DE VERSIONS

# Date Historique Commentaires

1 09/06/2015 Première version de la spécification des Document remis dans le cadre du cours
exigences. INM5151

3
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

4
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

5
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

6
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

7
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

8
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.
9
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 Informations sur un article collectées en ligne et non-traitées, notamment le magasin,


(collecte) 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é

10
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é

11
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)

12
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.

13
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.
14
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.

15
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.

16
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.

17
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 Les fonctions rattachées à la consultation de produits. Les Visiteurs et les


produits 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 Les fonctions de gestion de listes d‟épiceries permettent aux Usagers de
d‟épiceries 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 Les fonctions de gestion de commentaires permettent aux Usagers de


commentaires 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 à Les fonctions de gestion de la mise à jour des données permettent aux
jour des données 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.

18
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.

19
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é.

20
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.

21
3.0 DESCRIPTION DÉTAILLÉE
Vue d’ensemble des cas d’utilisation (Visiteur + Membre)

Figure 3 - Diagramme des cas d’utilisation (Visiteur + Membre)


22
Vue d’ensemble des cas d’utilisation (Administrateur)

Figure 4 - Diagramme des cas d’utilisation (Visiteur + Membre)

23
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
24
. 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- Le Visiteur devient un Membre.


conditions:

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

25
26
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é- Une liste de produits est affichée.


conditions:

Post- Le produit sélectionné est affiché avec tous les détails, sinon un message
conditions: 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.

27
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

28
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- Une liste d‟épicerie est créée


conditions:

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

29
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é- L‟Usager est authentifié.


conditions:

Post- La liste d‟épicerie est affichée avec tout les produits qu‟elle contient.
conditions:

Interactions:

Acteurs Système

1. Sélectionne une liste d‟épicerie parmi les listes


affichées

2. Affiche à l‟écran la liste


d‟épicerie

30
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

31
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- La liste d‟épicerie est supprimée.


conditions:

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

32
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é- Le produit existe dans la liste d‟épicerie.


conditions:

Post- Le produit n'est pas dans la liste.


conditions:

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.

33
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é- Le produit existe dans la BDD.


conditions:

Post- Le produit est ajouté à la liste.


conditions:

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

34
35
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é- Le commentaire existe.


conditions:

Post- Les informations sont affichés.


conditions:

Interactions:

Acteurs Système

1. Clique sur le bouton


„Commentaires‟

2. Envois toutes les informations des


commentaires.

36
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.

37
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.

38
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.

39
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é

40
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é- Aucune
conditions:

Post- La liste est affichée peu importe si celle-ci est vide ou non.
conditions:

Interactions:

Acteurs Système

1. Clique sur le bouton 'Afficher favoris'

2. Affiche la liste de favoris.

41
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é- Le produit existe.


conditions:

Post- Le produit est ajouté à la liste.


conditions:

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.

42
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.

43
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

44
. 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

45
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é- Aucune
conditions:

Post- La circulaire est mise à jour.


conditions:

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.

46
47
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- La liste est affichée peut importe si cette dernière est vide ou non.
conditions:

Interactions:

Acteurs Système

1. Appuie sur le bouton 'Afficher liste complète des produits'

2. Affiche tous les produits.

48
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- Aucune
conditions:

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

49
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- Aucune
conditions:

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

50
51
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é- Le produit existe.


conditions:

Post- Le prix est ajouté à la base de données.


conditions:

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.

52
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- Le prix est modifié dans la BDD.


conditions:

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

53
54
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

55
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

56
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.

57
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.

58
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- Les informations du magasin ont été modifiées.


conditions:

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.

59
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- Le changement d‟état de la collecte de données est enregistré.


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.

60
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

61
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.

62
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.

63
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.

64
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.

65
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

66
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.

67
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

68
. 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

69
. Le système affiche le compte de l‟Usager

70
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

71
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

72
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.

73
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

74
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- Les modifications sont enregistrées


conditions:

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

75
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é

76
3.2 Spécifications fonctionnelles

3.2.1.1 Chercher un produit

77
3.2.1.2 S’enregistrer

3.2.1.3 Consulter un produit

78
3.2.1.4 S’authentifier

3.2.1.5 Ajouter une liste d’épicerie

79
3.2.1.6 Consulter une liste d’épicerie

3.2.1.7 Calculer le prix d’une liste d’épicerie

80
3.2.1.8 Supprimer une liste d’épicerie

81
3.2.1.9 Retirer un produit d’une liste d’épicerie

82
3.2.1.10 Ajouter un produit à une liste

3.2.1.11 Consulter les commentaires

83
3.2.1.12 Évaluer un commentaire

3.2.1.13 Ajouter un commentaire

84
3.2.1.14 Modifier un commentaire

3.2.1.15 Supprimer un commentaire

85
3.2.1.16 Consulter la liste des favoris

3.2.1.17 Ajouter un produit à la liste des favoris

86
3.2.1.18 Retirer un produit de la liste des favoris

3.2.1.19 Modifier un compte membre

87
3.2.1.20 Supprimer un compte membre

88
3.2.1.21 Démarrer manuelle la collecte de données

3.2.1.22 Consulter la liste des produits

89
3.2.1.23 Ajouter un produit

90
3.2.1.24 Modifier un produit

91
3.2.1.25 Ajouter un prix à un produit

3.2.1.26 Modifier le prix d’un produit

92
3.2.1.27 Supprimer le prix d’un produit

93
3.2.1.28 Supprimer un produit

3.2.1.29 Consulter la liste des magasins

94
3.2.1.30 Ajouter un magasin

3.2.1.31 Modifier un magasin

95
3.2.1.32 Activer / Désactiver la collecte de données d’un magasin

3.2.1.33 Supprimer un magasin

96
3.2.1.34 Consulter la liste des chaînes

3.2.1.35 Ajouter une chaîne

97
3.2.1.36 Modifier une chaîne

3.2.1.37 Activer / Désactiver la collecte de données d’une chaîne

98
3.2.1.38 Supprimer une chaîne

3.2.1.39 Consulter la liste des comptes Membre

99
3.2.1.40 Supprimer un compte Membre

3.2.1.41 Suspendre un compte Membre

100
3.2.1.42 Modifier un compte

3.2.1.43 Ajouter un compte

101
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

102
103
3.2.1.46 Modifier une collecte de données automatisée

3.2.1.47 Supprimer une collecte de données automatisée

104
3.2.4 Diagramme de classes

Figure 1 Diagramme de classes

105
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.

106
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.

107
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.

108
4.2 Annexes
Annexe A - Maquette d‟interface

109

Vous aimerez peut-être aussi