Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
d’information de l’entreprise
P.-A. Sunier
10 octobre 2012 / 24 juillet 2015
http://lgl.isnetne.ch
Table des matières
Le but de l'exercice ArcPizzas est de faire une démarche, basée sur la modélisation, allant de
la compréhension du métier d'une entreprise à la réalisation d'un logiciel de gestion supportant
tout ou parties de ses activités métiers. Conformément à ce but, nous devrons avoir une vision
assez large du métier de l'entreprise mais, plus nous avancerons dans le processus de
modélisation, plus nous restreindrons le périmètre de chacun des modèles. En effet, il n'est
pas envisageable de réaliser un logiciel de gestion conséquent dans ce cours d'initiation à la
modélisation. Toutefois, pour bien confirmer l'intérêt de la démarche, nous finirons par
réaliser le formulaire qui permettra à ArcPizzas de gérer informatiquement son offre de pizza;
nous reproduisons ce formulaire ci-après.
Pour poser les bases de la modélisation, nous allons nous appuyer pour l'essentiel sur le
langage de modélisation UML1 et sur la méthode UP 2 en retirant ce qui nous semble superflu
pour l'exercice et en ajoutant des éléments qui nous semblent pertinents comme les maquettes.
Pour la partie réalisation, nous nous appuierons sur une plateforme d'exécution de type client-
serveur, en l'occurrence, avec Oracle comme serveur de base de données et MS-Access pour
la partie client lourd. Le site Web permettant aux clients de passer des commandes par
Internet, nécessitera une extension de la plate-forme d’exécution.
1
UML – Unified Modeling Language, langage unifié de modélisation proposé par Booch, Rumbaugh et
Jacobson au milieu des années 1990.
2
UP – Unified Process, processus (méthode) unifié de développement de logiciels de gestion proposé par Booch,
Rumbaugh et Jacobson à la fin des années 1990.
3
En tant qu’émetteur d’un message.
2.2.1 Référentiel
2.2.3 Diagrammes
Le système d’information de l’entreprise, abrégé par la suite SI, est un des sous-systèmes
constitutifs de l’entreprise selon l’approche relevant de la systémique.
L’approche systémique nous propose de considérer l’entreprise, en tant que système, formé
de trois sous-systèmes essentiels:
Dans le diagramme d'activité ci-après, nous avons représenté les activités ou actions que
mènent le système d'information et les collaborateurs d'ArcPizzas pour réaliser le service
attendu par le client, en l'occurrence, la fabrication et la livraison de la commande de pizzas.
Dans un souci de simplification, nous n'avons pas montré le cas où le client prend possession
de sa ou ses pizzas au guichet.
Toutefois, ce que nous ne savons ou ne voyons pas par ce diagramme, c'est comment le
pizzaiolo est informé de l'arrivée d'une commande passée par le client.
Selon les règles empiriques énoncées ci-dessus et en nous basant sur le diagramme d'activité
métier Commander Pizza – Organisation, nous avons réalisé le diagramme de cas
d'utilisation ci-dessous.
Ce diagramme est placé dans le modèle ExigencesSI du référentiel. [Voir chapitre 2.2.2
Modèles]
• le premier est le fait du client qui demande la page web de commande de pizzas;
• le deuxième est la page de commande fournie par le système en réponse à la
sollicitation initiale du client;
• le troisième est la saisie d'une sorte de pizzas avec indication de la quantité et ceci
pouvant être répété pour d'autres sortes de pizzas;
• ….
4
UML et UP utilisent le terme de système pour parler de système d'information qui serait plus juste
sémantiquement mais plus contraignant en termes d'écriture et de nommage
Le modèle d'analyse va faire la transition entre les besoins vis-à-vis du système d'information
et la réalisation de logiciels de gestion qui devront satisfaire ces besoins; naturellement, en
situation réelle d'entreprise, il faudra au préalable nous assurer que le gain espéré de cette
informatisation justifie le coût de réalisation du logiciel.
Avant de faire cette transition, il nous faut expliciter quelque peu le système d'information et
plus particulièrement sa partie informatisée (SII 5) que nous avons considéré comme une boîte
noire que des acteurs sollicitent pour obtenir des services [Chapitre 2.3 Qu’est-ce que le
système d’information de l’entreprise?].
La méthode UP nous propose trois éléments de modélisation qui vont nous permettre de faire
le lien entre les concepts évoqués ci-dessus et la réalisation du futur système d'information
informatisé.
5
SII ou Système d'information informatisé: la partie du système d'information qui sera automatisée à l'aide d'un
ou plusieurs logiciels de gestion pour faire simple.
A notre sens, deux diagrammes ou sous-modèles sont essentiels pour produire correctement le
modèle d'analyse; ce sont le modèle ou diagramme de communication pour l'aspect
dynamique du SII et le modèle conceptuel de données ou modèle du domaine pour l'aspect
statique du SII.
Nous nommerons notre Réalisation de cas d'utilisation et notre diagramme Commander par
Internet puisque c'est le cas d'utilisation système Commander par Internet que nous allons
spécifier sous forme d'éléments informatiques: des interfaces, des contrôleurs et des entités de
données.
En plus des éléments informatiques constitutifs du futur système, nous montrons dans notre
diagramme les acteurs qui utilisent le système ou reçoivent des messages de celui-ci et les
messages échangés entre éléments informatiques et aussi entre acteurs et interfaces;
naturellement, les acteurs n'interagissent avec le système qu'au travers des interfaces.
6
Le stockage en vue d'une restitution en tout temps indépendamment des aléas de vie des différents processus de
traitements (contrôleurs et interfaces).
Le modèle conceptuel de données peut être réalisé déjà à partir des entités métiers du
diagramme de communication dans un diagramme ou modèle proposé par UP sous le nom de
Modèle du domaine.
De notre côté pour bien dissocier les problèmes de lecture et écriture de données par la partie
dynamique, traitements, du SII de ceux de la persistance desdites données par la partie
statique du SII, nous réservons les entités métiers et le modèle du domaine pour la partie
traitements et le modèle conceptuel de données pour la partie statique.
Selon la plate-forme d'exécution du logiciel, cette séparation entre modèle du domaine, pour
les traitements, et modèle conceptuel de données ne se justifie pas et alors seul le modèle
conceptuel de données est utilisé.
En plus des entités, marquées du stéréotype 7 «MCD 8» et des associations entre entités, nous
trouvons dans notre modèle les multiplicités ou cardinalités qui qualifient les rôles de chaque
entité participant à une association.
7
Un stéréotype est un classificateur qui permet à tout utilisateur d'UML de spécialiser ou classifier les objets du
référentiel.
1. Une pizza peut être définie par un genre mais pas obligatoirement.
2. Plusieurs pizzas peuvent être du même genre de pizzas; un genre de pizza peut être
créé sans qu'aucune pizza de ce genre n'existe.
Ci-contre, le fragment de
MCD relatif aux pizzas et
genre de pizza; les règles
énoncées précédemment
sont indiquées par valeurs
minimale et valeur
maximale des cardinalités en regard des entités opposées.
• 0..1 côté GenrePizza, signifie:
o 0, cardinalité minimale - une pizza peut exister sans être définie par un genre;
o 1, cardinalité maximale – une pizza ne peut être que d'un seul genre.
Les attributs des entités, comme Prix de Pizza, permettent de décrire les occurrences
d’entités ; un attribut est une donnée élémentaire caractérisée par un type ou un domaine,
positiveMoney pour l’attribut Prix.
Le stéréotype «UID-1» dans les 2 entités signifie que l'attribut qui en est porteur, Nom, est
l'identifiant naturel à partir duquel tout utilisateur du futur système va accéder aux données
(pizzas ou genre de pizzas).
8
Nous utilisons le stéréotype «MCD» pour qualifier les classes d'entités du modèle conceptuel de données.
Notre diagramme de communication Commander par Internet comporte une interface Page
Web de commande; cette page sera créée par le contrôleur Site Web ArcPizzas qui accédera
à l'entité métier Pizza pour créer la liste des pizzas offertes [Voir le diagramme de séquence
du chapitre 5.1].
Lorsque l'on réalise le MCD d'un système ou d'un logiciel, il arrive que l'on ajoute des entités
et/ou des associations qui n'apparaissent pas explicitement dans l'expression des besoins.
Les raisons peuvent en être multiples mais très souvent, il s'agit de créer des entités qui
serviront de références, comme le genre de pizzas; ces entités permettront de normaliser 9 les
données et/ou amener de la souplesse dans la structure 10.
Pour notre cas pratique, nous avons choisi, d'introduire cette notion de genre de pizzas qui
n'est pas demandée et qui pourrait avoir un intérêt pour le client. Dans notre démarche
pédagogique, cette entité GenrePizza nous permettra de créer un premier formulaire de saisie
de données relativement simple 11 et en tous les cas plus simple que celui qui consisterait à la
saisie des commandes par Internet [Maquette réalisé au chapitre 6.1].
La maquette ci-dessous montre simplement ce que devrait être la réalisation de l'écran qui
permettra de faire la saisie de données relative aux entités Pizza et GenrePizza présentées et
discutées en chapitre 5.2.
Nous voyons que chaque pizza est définie par un nom, un descriptif et un prix qui sont les
attributs de l'entité Pizza. L'attribut Nom de l'entité GenrePizza apparait, sous forme de liste
déroulante, pour établir le lien entre la pizza et son genre.
9
La normalisation consiste à s'assurer de l'absence de redondance au sein d'une base de données relationnelles et
ainsi de pouvoir faire des requêtes exemptes de résultats ambigus ou parasites (du bruit).
10
La souplesse dans la structure permettra au système ou au logiciel d'évoluer dans les limites de ladite
souplesse.
11
Une structure table de base et table de référence avec Pizzas comme table de base et GenrePizzas comme
table de référence.
Pour la partie statique, le passage d'un modèle conceptuel, très abstrait, à un modèle logique
relatif à une technologie et donc plus proche de la concrétisation est très souvent
automatisable.
C'est particulièrement le cas, pour la transformation d'un MCD en un modèle relationnel.
Conformément au choix initial [Voir chapitre 1] de nous appuyer sur le modèle relationnel
pour la structure de la base de données et plus particulièrement sur le SGBD 12 Oracle, nous
allons appliquer les règles reconnues de transformation d'un modèle conceptuel de données en
un modèle logique relationnel.
Pour appliquer ces règles, nul besoin de mobiliser les ressources de collaborateurs qualifiés,
un automate peut faire le travail.
Visual Paradigm effectue cette transformation; toutefois la 3ème règle n'est pas rigoureusement
appliquée; comme notre école met un poids important sur la qualité des données, de leur
structure et de leur modélisation, nous ne pouvions nous satisfaire de la solution proposée.
Nous avons développé un plugin 13 pour VisualParadigm qui effectue cette transformation en
respectant scrupuleusement les modalités des trois règles en plus d'autres qui nous sont
propres.
12
SGBD: Système de gestion de base de données
13
Le plugin porte le nom de MVC-CD.
14
Un couple marqueur et valeur comme en XML <nom>Sunier</nom> où dans l'exemple ci-contre, nom est le
marqueur et Sunier la valeur.
Nous pouvons observer la table GenrePizzas au pluriel (valeur marquée tableName) issue de
la transformation de l'entité GenrePizza au singulier.
Dans la table Pizzas, nous pouvons observer :
- La colonne de clé primaire Numero.
- La colonne de clé étrangère référant à la table GenrePizzas et préfixée GPizz (valeur
marquée shortName).
Visual Paradigm a choisi une notation s'inspirant des travaux anglo-saxons 15 relatifs à la
modélisation conceptuelle des données; les traits les plus notoires de cette notation propre à
Visual Paradigm sont:
• Les liens entre tables dessinés en traits pleins pour les liens identifiants et en traits
tillés pour les liens non identifiants.
• Les symboles graphiques {o , | } pour les cardinalités minimales et {- , < } pour les
cardinalités maximales.
• Les symboles graphiques de représentation des colonnes de clés primaires et de
clés étrangères .
15
Bachman, Chen et autres au milieu des années 1970.
Les clés primaires «PK» garantissent l'identification technique de chacun des tuples.
Dans la table GenrePizzas, la valeur 10 de la clé primaire Numero permet d'atteindre sans
ambigüité le tuple 5.
Les identifiants naturels «UID» garantissent eux aussi l'identification de chacun des tuples
mais, à partir de données naturelles, c'est-à-dire significatives pour l'utilisateur.
Pizzas
«PK» «FK» «UID»
Numero GPizz_Numero Nom Description Prix
Tuple 1 1 2 Parma Jambon de Parme 22
Tuple 2 4 2 Indienne Poulet au curry 19
Tuple 3 5 1 Ratatouille Poivrons, aubergines… 17
Les clés primaires sont indispensables pour établir des liens fiables entre tables ou relations
des bases de données relationnelles, les clés primaires se retrouvent comme clés étrangères
dans les tables sources des liens.
Dans la table Pizzas, la valeur 2 de la clé étrangère GPizz_Numero permet d'atteindre sans
ambiguité le tuple de référence de GenrePizzas; la pizza "Indienne" est de genre "Viande".
Remarques:
• Les liens entre tables se font avec les clés primaires «PK» et non avec les identifiants
naturels «UID» car ceux-ci peuvent changer de valeur au cours de leur vie ce qui
obligerait à modifier tous les tuples des tables qui font référence à cette valeur.
• A l'opposé des identifiants naturels, les clés primaires ne changent jamais de valeur
pour justement garantir la stabilité des liens entre tables.
Les prémices des clés étantt posées, nous pouvons maintenant mettre en place le calcul
automatique ou auto incrémentation des clés primaires pour nos deux tables Pizzas et
GenrePizzas.
16
Au sens originel du modèle relationnel et des travaux de Codd, nous devrions parler de relation et non de table
comme nous le faisons usuellement.
Lors de la transformation [Chapitre 7.1.1], le plugin MVC-CD crée deux objets Sequence; les
séquences, sous Oracle, sont des objets autonomes indépendants de toute transaction. De ce
fait, quels que soit le nombre de connexions concurrentes, toute interrogation de la séquence
va rendre une valeur unique indépendamment de toute transaction aboutie ou non; jamais
deux utilisateurs n'obtiendrons une même valeur.
Ci-dessus, nous voyons les séquences associées à chacune des deux tables.
17
SGBD-R: Système de gestion de base de données relationnelle
Le modèle client-serveur
consiste en un serveur de
données accessible via un
réseau interne et un ou des
terminaux intelligents qui
vont héberger l'application.
Ces terminaux passeront
par le réseau pour
soumettre des requêtes de
lectures et écritures de
données au serveur.
L'intelligence des
terminaux ou la capacité
informatique des terminaux
doit réaliser les éléments
informatiques (interfaces et
contrôleurs) que nous
avons identifiés lors de l'analyse. Cette nécessité de capacité informatique des terminaux du
modèle client-serveur nous amène à parler de clients lourds par opposition au modèle multi-
tiers, en vogue, où le terminal ne fait que de présenter les écrans aux utilisateurs et les
traitements de création de formulaire et de contrôle sont effectué par un serveur dit
18
Il serait possible de contourner cette contrainte en créant au sein de MS-ACCESS notre modèle logique de
données; toutefois cette démarche serait excessivement fastidieuse pour ce cours d'introduction.
Notre plate-forme prédéfinie MS-Access & Oracle est de type client/serveur avec MS-
ACCESS comme client lourd et Oracle comme SGBD-R tel qu’illustré ci-dessous.
La communication entre ces deux nœuds d'exécution 19 de constructeurs différents s'appuie sur
une interface de communication de bas niveau (cachée à l'utilisateur). Cette interface nommée
ODBC permet la connexion entre clients et SGBD-R sans que l'une des deux parties ne doive
tenir compte des spécificités de l'autre.
19
UML introduit la notion de nœud d'exécution pour parler de matériels chargés de l'exécution de processus
informatiques.
Remarque:
En plus des tables de notre
schéma/compte, nous voyons
les tables d'autres schémas.
Nous voyons ces tables
d'autres schémas car leurs
prioritaires ont donné des
droits de lecture à tout
utilisateur connecté au SGBD.
Maintenant que nos tables sont liées, nous pouvons utiliser les services standards de MS-
ACCES pour lire et/ou manipuler nos données sachant quelles ont étés créées [Chapitre 8.1]
et peuplées [9.1].
S'agissant de la manipulation de la
table GenrePizzas, voir ci-contre,
nous n'avons rien de particulier à
signaler.
S'agissant de la manipulation
de la table Pizzas, voir ci-
contre, nous sommes dans la
même situation que celle qui
prévalait lorsqu'il s'était agi de
la peupler en chapitre 9.1.
Nous devons connaître la
valeur de clé primaire, non significative pour l'utilisateur, pour référencer le genre de pizza.
Comme indiqué en préambule, les tables étant créées au sein du SGBD-R Oracle [Chapitre
8.1], nous pouvons nous appuyer sur la capacité de MS-Access à créer automatiquement des
interfaces utilisateurs ou
formulaires. Les automates ou
assistants de MS-Access vont
s'appuyer sur la structure de nos
tables liées pour nous proposer
des choix de conception des
formulaires comme l'illustre la
copie d'écran ci-contre.
La conception d'interfaces est possible avec les assistants de MS-Access seulement si les
contraintes de réalisation sont supportées par lesdits assistants.
Lorsque la structure de données se complique, lorsque l'interface utilisateur est spécifique ou
encore lorsque les règle de gestion impactent la logique de saisie de données, il faut réaliser
les modèles graphiques de conception "à la main".
Il est aussi possible de s'appuyer sur les assistants pour produire un modèle graphique initial
et ensuite l'enrichir "à la main".
Les contrôleurs ne nous semblent pas exister en tant qu'objets de conception avec MS-Access.
Pour rappel, les contrôleurs se chargent d'appliquer les règles définissant et accompagnant les
processus de l'entreprise.
Avec MS-Access du code que l'on rajoute aux formulaires respectivement, le développement
de modules en langage Visual Basic permettent de réaliser des contrôleurs au niveau de
l'implémentation.
Toutefois, dans notre souci de nous focaliser sur l’essentiel, nous n’aborderons pas la
problématique de l'implémentation des contrôleurs.
Toutefois, le langage SQL à la norme SQL-92 est relativement pauvre et les règles d'intégrité
des données tant soit peu sophistiquées, par exemple l'auto-incrémentation de notre clé
primaire pour Oracle, ne peuvent pas être prises en charge.
Pour combler ce manque quelques éditeurs de logiciels proposent des APIs 23 (de tables) qui
se chargent d'assurer la mise en place de règles d'intégrité des données complémentaires au
code SQL.
Les APIs de tables ne sont réalisables qu'au sein de SGBD-R qui disposent d'un langage de
programmation 24; naturellement, les APIs de tables étant écrites pour un langage spécifique à
un SGBD-R, elles ne sont à priori pas portables hormis au sein de SGBD-R qui partageraient
un même langage interne de programmation.
Visual Paradigm ne propose pas d'automate pour créer ces APIs de tables; comme les APIs de
tables nous semblent une brique logicielle essentielle, nous avons créé un deuxième Plugin
pour Visual Paradigm qui effectue cette tâche.
20
Modèle de conception de la partie statique du SI à automatiser
21
SQL: Structured Query Language, langage structuré pour la création, la manipulation et le contrôle de SGBD-
R
22
Couramment, la norme ANI SQL-92 appelée aussi SQL2.
23
API: Application Programming Interface, une bibliothèque logicielle offrant un service.
24
Très couramment l'on parle de procédures stockées à l'image des données que l'on stocke dans une base de
données.
La connexion
se fait depuis
Visual
Paradigm en
indiquant la
base de
données cible
et les
paramètres de
compte
respectivement
d'identification.
25
La compilation consiste très succinctement à convertir du code compréhensible par l'humain en code
exécutable par un ordinateur.
Très schématiquement, tous nos objets de conception 26, sont stockés dans
un fichier et MS-Access est capable de passer de la conception (Mode
Création selon MS-Access) à l'exécution (Mode Formulaire selon MS-
Access) sans devoir passer par une implémentation au sens strict.
Ci-dessus notre formulaire de gestion du catalogue des pizzas en mode conception; après
passage en mode exécution, nous disposons directement, ci-dessous, de notre formulaire pour
effectuer des tests.
26
Interfaces et contrôleurs
En phase de test de notre de logiciel de gestion pour ArcPizzas, nous nous appuierons sur
l'opportunité offerte par MS-Access de changement de mode conception à exécution pour
effectuer les tests unitaires directement au sein de l'environnement de conception; les tests
unitaires sont les tests que font les développeurs sur chaque élément informatique produit.
[Voir le chapitre 9.2Partie dynamique – les traitements].
Pour les tests d'intégration 27 et les tests de recette 28, il peut être risqué de fournir un fichier au
sein duquel la conception est visible et modifiable [Voir le chapitre précédent].
Afin de réduire le risque évoqué, il est possible de créer une copie du fichier MS-Access au
sein duquel les actions de conception sont inaccessibles.
La production d'un tel fichier s'apparente à une activité d'implémentation; effectivement, à la
fin de notre processus de copie de fichier, nous obtenons un fichier contenant des éléments
informatiques exécutables et seulement exécutables.
27
Il s'agit de tester les éléments informatiques dans leur contexte global et non plus isolément comme les tests
unitaires.
28
Il s'agit de l'évaluation du logiciel par les utilisateurs finaux.
Le principe du travail de test des données est illustré par le schéma ci-dessus.
Maintenant que nous nous sommes assurés de la réalisation correcte de la structure de notre
base de données, nous pouvons saisir des données de test dans les deux tables Pizzas et
GenrePizzas.
Le simple fait d'ajouter des enregistrements nous a permis de tester le bon fonctionnement de
nos APIs de tables et l'auto-incrémentation des clés primaires.
Le but des tests est de vérifier l'entier des contraintes d'intégrité des données et ceci en toutes
situations: ajout, modification ou suppression de données.
A titre d'illustration, nous reproduisons ci-dessous, la situation et le message d'erreur du
SGBD-R relatif à la saisie dans la table Pizzas d'une référence à GenrePizzas qui n'existe pas
(GPizz_Numero = 46).
Remarque: En situation réelle, nous ne saisissons pas les données de tests mais, nous passons
par des scripts de tests qui peuvent être exécutés à chaque changement de structure.
Le volume des objets informatiques que nous avons conçus étant réduit au seul formulaire ci-
dessous, les tests ne vont concerner que la manipulation 29 de pizzas comme illustré ci-
dessous. Néanmoins, vous pouvez déjà observer, l'auto-incrémentation de la clé primaire,
cachée aux utilisateurs, tout comme l'alimentation de la clé étrangères du genre de pizzas.
Lorsque vous vous connectez au SGBD-R Oracle avec SQL Developper ou avec MS-Access
vous ouvrez une session.
29
La manipulation des données implique la lecture, l'ajout, la modification et la suppression.
Avec MS-Access, le principe est quelque peu différent. Pour l'utilisation que nous en faisons
dans ce cours, chaque manipulation de tuple fait l'objet d'une transaction autonome 30.
10 Liens Internet
[COMP] La complexité
http://complexite.epikurieu.com/
[DICOFR] www.dicofr.com
[VOLLE] http://www.volle.com/ulb/031122/informatisation.htm
[I-1] Wikipedia – Chronologie de l’informatique
http://fr.wikipedia.org/wiki/Chronologie_de_l'informatique
[I-2] Wikipedia – Systémique
http://fr.wikipedia.org/wiki/Systémique
[I-3] Wikipedia – Système d’information
http://fr.wikipedia.org/wiki/Syst%C3%A8me_d'information
[I-4] Wikipedia – Architecture informatique
http://fr.wikipedia.org/wiki/Architecture_informatique
[I-5] Wikipedia – Architecture orientée services
http://fr.wikipedia.org/wiki/Architecture_orient%C3%A9e_services
[I-6] Wikipedia – Urbanisation (informatique)
http://fr.wikipedia.org/wiki/Urbanisation_(informatique)
[I-7] Wikipedia – Enterprise Service Bus
http://fr.wikipedia.org/wiki/Enterprise_Service_Bus
[I-8] Wikipedia – Cloud computing
http://fr.wikipedia.org/wiki/Cloud_computing
30
Envoi systématique d'un COMMIT après chaque manipulation.