Académique Documents
Professionnel Documents
Culture Documents
SYSTÈME D’INFORMATION
ANALYSE/CONCEPTION OBJET
2
Objectifs du cour :
Acquérir les compétences sur les méthodes et outils d'analyse et de conception
de systèmes d'information.
Savoir Modéliser avant d’entreprendre la construction d’un Système
d’Information
Connaitre et savoir utiliser le langage de modélisation objet UML décrire les
aspects fonctionnel et statique d’un systèmes d'information.
Savoir faire le lien entre les modèles et les bases de données.
Connaitre et appliquer les principes et patrons de conception
3
Sommaire :
Notion de Système d’Information
Concept et Thèmes de l’Orienté Objet
Méthodes – Processus- Langages
UML
Mapping Objet-Relationnel
Ex de méthodes Objet (Processus Unifié)
Principes de Conception- Patrons d’Architecture – Patrons de Conception
4
NOTION DE SYSTÈMES
D’INFORMATION(SI)
NOTION DE SYSTÈMES
D’INFORMATION
5
• Qu’est-ce qu’un SI ?
• Un SI est une combinaison de
personnes, de technologies de
l’information et de processus
métiers pour accomplir un
objectif métier.
• Un SI est une collection de Personnes
composants qui collecte, traite, Acteurs impliqués
stocke des données, et qui fournit dans un Processus
l’information nécessaire à métier
l’exécution des tâches métiers.
Informatique et SI ?
Le système d’information est (en général) partiellement informatisé.
SI Opérationnel
SI Informatisé
Les SI sont utilisés dans chaque domaine fonctionnel du métier (marketing, gestion,
finance, banque, etc.)
Les SI sont généralement constitués de plusieurs applications exploitant des informations
communes. Il sont des tailles et d’envergure variables (de modeste à gigantesque):
Facebook, > 1 000 000 000 de comptes, des centaines de milliards de mises à jours
Google > 100 000 000 000 de documents indexés
NOTION DE SYSTÈMES
D’INFORMATION
7
Typologies des SI
Il existe plusieurs types de SI. Exemple
NOTION DE SYSTÈMES
D’INFORMATION
8
Base de Données
Une base de données est ensemble de données mémorisées sur des supports
accessibles par un ordinateur et simultanément par plusieurs utilisateurs de
façon sélective et en temps très court.
Les BD constituent le cœur du système d’information. Elles sont utilisées à
travers des applications de Bases de données.
Il existe plusieurs types de bases de données
BD Hiérarchiques ou Réseaux : fondées sur une modélisation arborescente des données (≈ 1960)
BD Relationnelles : organisation des données sous forme de tables et exploitation à l’aide d’un
langage déclaratif (≈ 1970/1980)
BD Déductives : organisation de données sous forme de table et exploitation à l’aide d’un langage
logique (≈ 1970/1980).
BD Objets : données sous forme d’instances de classes hiérarchisées (≈ 1990).
XML :structure arborescente (≈ 2000), NOSQL, etc
NOTION DE SYSTÈMES
D’INFORMATION
9
Base de Données
Système de Gestion de Bases de Données (SGBD)
Un SGBD est un ensemble d’outils permettant la création, la manipulation
et l’administration des BD. Exemple : ORACLE, POSTGRESQL.
Principes Fondamentaux
Conforme à la réalité
Unicité: Pas de redondance
Indépendance: Indépendant du modèle de stockage
Concurrence: Gestion des accès simultanés à une même donnée
Performance: Temps d’exécution satisfaisant
Confidentialité: Accessibilité des données dépendant de l’utilisateur
Intégrité: garantie la fiabilité et la cohérence des données
Robustesse: Tolérant aux pannes (problèmes matériels, logiciels ou humains)
NOTION DE SYSTÈMES
D’INFORMATION
10
Base de Données
Conception des BD Relationnelles :
La conception des BD relationnelles suit une démarche en étapes (différents
modèles pour représenter les objets qui composent les systèmes
d’information, les relations existantes entre ces objets ainsi que les règles
sous-jacentes)
Trois étapes principales qui correspondent à trois niveaux d’abstraction
différents : Conceptuel, Logique, Physique
Le niveau conceptuel (e.g. modèle Entité-Association, diagramme de classe
UML) permet l’identification des concepts concrets et abstraits de la réalité
Le niveau logique (e.g. modèle relationnel) permet la formalisation de la
structure des données
Le niveau physique (e.g. système de fichiers, index) concerne le stockage
physique des données, gérée par le SGBD
Le niveau externe (sous-schémas conceptuels) concerne la définition des
« interfaces » d’accès aux données
NOTION DE SYSTÈMES
D’INFORMATION
Base de Données
11
Conception des BD Relationnelles :
Vues Informationnelles
Analyse
Spécification V1 V2 V3
Niveau Externe
Intégration
Normalisation
Modèle Conceptuelle des Données
Optimisation
Dénormalisation
Modèle Logique des Données
Mise en œuvre
Modèle Physique des Données
Concept et Thèmes
de l’Orienté Objet
Concept et Thèmes de l’Orienté Objet
13
Orienté Objet:
Le paradigme « Orienté Objet » consiste en une Organisation du
logiciel sous la forme d’une collection d’objets indépendants
incorporant structure de données et comportement.
Objet
Un objet est une entité discrète et distinguable, concrète ou abstraite
ayant des limites claires et un sens précis dans le contexte du problème
étudié.
Ex: la voiture FF 12567, le PSGE, l'étudiant Pierre KOUMBA
Un objet est caractérisé par :
Une identité qui le distingue logiquement et physiquement des autres.
Un état : valeurs des attributs + liens avec d’autres objets
Un comportement: l’ensembles des opérations applicables à l'objet.
Concept et Thèmes de l’Orienté Objet
14
Classification:
La classification implique le regroupement des objets ayant même structure de
données(attributs) et même comportement(opérations)
Classe:
Une classe est une abstraction décrivant un ensemble d’objets potentiellement
infini ayant des propriétés similaires (attributs), un comportement commun
(opérations), des relations communes avec les autres objets ainsi qu’une même
sémantique
Une classe définit des attributs et des opérations
Instances de la classe : Les objets de la classe
Attributs
Un attribut (aussi appelé variables d’instance) est une caractéristique d’un objet
désignée par un nom permettant de mémoriser une ou plusieurs valeurs, ou un ou
plusieurs identifiants d’objets.
Concept et Thèmes de l’Orienté Objet
15
Classe:
Opérations
Une opération est une action, fonction ou transformation qui peut être
appliquée aux objets ou par les objets dans une classe.
Ex: embaucher, licencier, rémunérer sont des opérations de la classe
Société
Méthode :
Une Méthode est une implémentation d’une opération par une classe.
Une méthode est caractérisée par un en-tête appelé signature
définissant son nom, ses paramètres d’appel et ses paramètres de retour
et par son code
Ex: embaucher(Personne p, String poste )
Concept et Thèmes de l’Orienté Objet
16
Héritage :
L’héritage est le partage de propriétés entre classes sur la base d’une
relation hiérarchique
Super-classe (classe mère)
Sous-classe(classe fille) : spécialisation de la super-classe avec héritage
des propriétés de la super-classe.
Polymorphisme
possibilité de gérer des comportements différents d’une même
opération dans différentes classes
Méthode:
Le Développement d’un SI avec de bonnes garanties de succès
implique l'utilisation dune démarche méthodologique adéquate
(Méthode de Développement).
Une Méthode de développement comporte un Processus de
développement, utilise un ou plusieurs Langages de Modélisation et un
ensemble d’Outils.
Notation (Langage de
Modélisation)
Processus Outils
Méthodes – Processus- Langages
19
Processus de Développement :
Un processus de développement est un ensemble d’étapes à exécuter
selon un ordonnancement permettant d’analyser, et/ou de concevoir,
et/ou d’implémenter des systèmes logiciels.
Un ordonnancement d’étapes peut être en tout ou partie séquentiel, et/ou
parallèle et/ou itératif.
Méthodes – Processus- Langages
20
5. Implémentation
6. Test
Méthodes – Processus- Langages
22
Modélisation
Le développement d’un système logiciel industriel nécessite la création de
plusieurs modèles
Modèle : Un modèle est une Vue abstraite (Simplifiée) d’un système, d’un
problème. Un modèle décrit le système par rapport à un point de vue
spécifique et à un certain niveau d’abstraction .
Un système complexe s’appréhende mieux à travers un petit ensemble de
vues indépendantes
Intérêt des Modèles:
Gérer la complexité du système;
Assurer une cohérence architecturale
Faciliter la communication entre les membres du Projet.
Méthodes – Processus- Langages
23
Langage de Modélisation
Les modèles s'expriment à l’aide d’un ou plusieurs langages de modélisation
Un langage de modélisation rigoureux comporte:
des éléments de modélisation : les concepts de modélisation fondamentaux et leur
sémantique ;
Une Notation : le rendu visuel des éléments de modélisation ;
Des directives : des idiomes pour le bon usage du langage.
UML
Les Grandes lignes de UML
26
Contenu UML
La Sémantique UML
Le Guide Notation UML
Profils :
Processus de Développement,
Modélisation Métier,…
Relations :
association, généralisation, dépendances, etc.
Diagrammes
diagramme des cas d’utilisation, des classes, d’interaction, etc.
Les Grandes lignes de UML
29
Le diagramme de Classes.
Montre les classes du système avec leurs attributs et méthodes ainsi que les
relations et dépendances
Le diagramme d’Objets.
Montre des graphes d’instances (objets) qui peuvent exister pendant
l’exécution du système. Sert à Illustrer des structures de classes
compliquées.
Diagrammes d’Activités
Une forme spéciale de diagramme de transition d’états utilisé pour modéliser
l’état du contrôle
Les Grandes lignes de UML
33
S. KOUSSOUBE
Modèle des Cas d’Utilisation
36
S. KOUSSOUBE
Modèle des Cas d’Utilisation
37
Les Concepts:
Acteur (Notation)
« actor »
Opérateur
SYSCOMPTA
Client
S. KOUSSOUBE
Modèle des Cas d’Utilisation
38
S. KOUSSOUBE
Modèle des Cas d’Utilisation
39
Les Concepts:
Cas d’Utilisation:
Un cas d'utilisation est unité cohérente de fonctionnalité offerte par le
système; il modélise un service rendu par le système
Un cas d’utilisation comprend :
séquence de messages échangés entre le système et des agents externes aux
systèmes (acteurs),
un ensemble d’actions réalisées par le système
Ouvrir un Compte
S. KOUSSOUBE
Modèle des Cas d’Utilisation
40
Les Concepts:
Cas d’Utilisation:
Problèmes récurrents lors de l'identification des cas d’utilisation:
Qu’est-ce qu’un Bon Cas d’Utilisation?
S. KOUSSOUBE
Modèle des Cas d’Utilisation
41
Les Relations:
spécialisation/généralisation d’acteurs
Une généralisation de A vers B spécifie que l’acteur A est une spécialisation
de l’acteur B. : une instance de A peut communiquer avec les mêmes C.U.
que les instance de B.
Agent
Chef Service
S. KOUSSOUBE
Modèle des Cas d’Utilisation
42
Les Relations:
communication, association entre acteurs et cas d’utilisation
Cette relation indique qu’un acteur participe à un cas d'utilisation. La
navigation (si elle existe) indique qui de l’acteur ou du C.U. initie la
communication
A « acteur »
SYSCOMPTA
Agent B
C
Chef Service
S. KOUSSOUBE
Modèle des Cas d’Utilisation
43
Les Relations:
spécialisation/généralisation des cas d'utilisation
Cette relation indique qu’un cas d’utilisation D est un cas spécifique d'un cas
d'utilisation plus général C.
A « acteur »
SYSCOMPTA
Agent B
C
Chef Service D E
S. KOUSSOUBE
Modèle des Cas d’Utilisation
44
Les Relations:
Dépendance (inclusion et extension) entre cas d'utilisation
A inclut F : une instance de A contient le comportement spécifié par F.
G étend E : une instance de E peut être augmentée (sous certaines conditions
spécifiques) par le comportement de G
A « acteur »
SYSCOMPTA
Agent B « includes»
C
F
G
Chef Service D E « extends»
S. KOUSSOUBE
Modèle des Cas d’Utilisation
45
S. KOUSSOUBE
Modèle des Cas d’Utilisation
46
Modèle structurel:
C’est un modèle conceptuel, une vue du système qui montre la structure
des objets (et leurs classes), leurs relations, attributs et opérations.
S. KOUSSOUBE
Le Diagramme des Classes
50
S. KOUSSOUBE
Le Diagramme des Classes
51
S. KOUSSOUBE
Le Diagramme des Classes
52
Classe :
Une classe représente un concept dans le système.
personne, place, chose, concept, événement, écran, ou rapport, etc.
Une classe est le descripteur d’un ensemble d’objets ayant une structure, un
comportement et des relations similaires.
Une classe sert de moule (template) à partir duquel des objets sont créés.
Sur le plan de la programmation, les classes sont les blocs constitutifs d’une application
orientée objet.
S. KOUSSOUBE
Le Diagramme des Classes
53
Classe
Notation : rectangle à trois compartiments
Attributs
Opérations
Classe
Exemple1
Noms + Fenêtre
[propriétés Générales] {abstrait, auteur= SK, statut = testé }
Classe
Attribut d’une classe :
Un attribut est une information (une propriété) relative à un objet stockée par
l’objet ou au moins temporairement maintenue.
Syntaxe UML d'un attribut:
visibilité nom [multiplicité] : Type = val initiale {propriétés}
Visibilité d'un attribut :
+ (public), # (protected), - (private)
Multiplicité:
Nombre d’occurrence (par défaut [1..1])
Exemples: coul[3] : Couleur ; points[2..*] : Point ; adr: Adresse
S. KOUSSOUBE
Le Diagramme des Classes
56
Classe
Attribut d’une classe :
Attribut de classe :
Attribut dans la valeur est partagée par toutes les instances de la classe.
Syntaxe UML: on souligne l’attribut.
Exemple: + taillepardéfaut : Rectangle dans la classe Fenetre.
Attribut dérivé :
Attribut dans la valeur peut être calculée à partir des autres attributs.
Syntaxe UML: on préfixe l’attribut avec le symbole /
Exemple: /age
Propriété
{frozen} : attribut non modifiable
S. KOUSSOUBE
Le Diagramme des Classes
57
Classe
Opération d’une classe:
Un opération est un traitement ou une transformation que l’on peut effectuer sur
les objets d'une classe .
Syntaxe UML d'une opération :
visibilité nom(liste de paramètres) : type de retour {propriétés}
Visibilité d'une opération :
idem que pour les attributs Multiplicité:
paramètres formels d'une opération :
séparés par des virgules.
syntaxe : nature nom : type = valeur par défaut
nature : in , out , inout
S. KOUSSOUBE
Le Diagramme des Classes
58
Classe
Opération d’une classe :
Opération de classe :
Opération qui n'utilise pas de variables d’instances (n’utilise que des attributs de
classe).
Syntaxe UML: on souligne l’opération.
Exemple: + SetTaillepardéfaut (in t: Rectangle) dans la classe Fenetre.
Classe
Opération d’une classe:
S. KOUSSOUBE
Le Diagramme des Classes
60
Classe
stéréotypes des classes:
Les stéréotypes permettent de classifier les classes par rapport à leur rôle dans le
modèle.
S. KOUSSOUBE
Le Diagramme des Classes
61
Classe
stéréotypes des classes:
Stéréotype boundary (frontière) :
caractérise une classe modélisant la communication entre le système et son
environnement. C'est une classe se trouvant à la périphérie du système tout en étant à
l’intérieur du système. Un objet boundary interagit avec les acteurs et les autres
objets:
« boundary »
Exemple FormCreationCompte
Fenêtre (interface utilisateur),
Protocole de Communication (interface système),
Interface Imprimantes
etc.
FormCreationCompte
S. KOUSSOUBE
Le Diagramme des Classes
62
Classe
stéréotypes des classes:
Stéréotype boundary (frontière) :
« boundary » « boundary »
FormCreationCompte Impression
FormCreationCompte
S. KOUSSOUBE
Le Diagramme des Classes
63
Classe
stéréotypes des classes:
Stéréotype entity:
Classe généralement persistante modélisant une information (avec le comportement
associé). C'est une classe passive (non initiatrice d’interactions) qui peut participer à la
réalisation de plusieurs cas d’utilisation.
Exemple
« entity »
Compte Bancaire, Facture
Commande Compte
Facture
etc.
S. KOUSSOUBE
Le Diagramme des Classes
64
Classe
stéréotypes des classes:
Stéréotype Control :
C 'est une classe qui contrôle les interactions d’une collection d’objets. Elle modélise
le comportement spécifique d’un (ou plusieurs) cas d’utilisation. En définitive ce sont
les classes ''control'' qui détiennent la logique applicative.
S. KOUSSOUBE
Le Diagramme des Classes
65
Généralisation/Spécialisation (héritage)
Relation (dépendance, …)
S. KOUSSOUBE
Le Diagramme des Classes
66
S. KOUSSOUBE
Le Diagramme des Classes
67
Classe 1 nom
Classe 2
Association binaire
Classe Classe 1
Classe 2 Classe 3
S. KOUSSOUBE Association
ternaire
Le Diagramme des Classes
68
Association binaire
Employe Commande
est chef de
Association
Réflexive
Client Produit
S. KOUSSOUBE Association
ternaire
Le Diagramme des Classes
69
Abonné emprunte
Document
InfoPrêt
date
S. KOUSSOUBE
Le Diagramme des Classes
70
Abonné emprunte
Document
date_emprunt
S. KOUSSOUBE
Le Diagramme des Classes
71
ordered
Fenêtre Ecran
* visible sur 1
Parcours Ville
1 sequence *
S. KOUSSOUBE
Association: Extrémités
73
Indicateur Signification
0..1 Zéro ou un
1 Un seul
0..* Zéro ou plus
1..* 1 ou plus
n N seulement (n > 1)
0..n 0 à n (n > 1)
1..n 1 à n (n > 1)
S. KOUSSOUBE
Le Diagramme des Classes
74
Agrégation :
association non symétrique dans laquelle une des classe joue un rôle
prédominant par rapport à l’autre
1..* 2..*
Formation Cours
S. KOUSSOUBE
Le Diagramme des Classes
75
Composition:
Agrégation forte, avec une coïncidence du cycle de vie d’une partie avec
celle d’un tout (contenance physique). La multiplicité de l’agrégat <= 1
(Non partage)
1 2..*
Immeuble Appartement
S. KOUSSOUBE
Le Diagramme des Classes
76
Généralisation
La généralisation représente la relation taxonomique entre un élément plus général
(le parent, la superclasse) et un élément plus spécifique (le fils, la sous-classe).
Objectifs de la généralisation:
Prise en charge du polymorphisme
Structuration de la description des objets
Possibilité de réutiliser du code
Contraintes:
Disjoint : Aucun ancêtre ne peut avoir deux fils; son contraire = overlapping
Complet : tous les fils ont été spécifiés; contraire = Incomplet
S. KOUSSOUBE
Le Diagramme des Classes
77
Généralisation
Arbre
{disjoint, incomplet}
Okoumé Ozigo
S. KOUSSOUBE
Le Diagramme des Classes
78
S. KOUSSOUBE
79
Gestion de la Persistance
dans un Contexte SGBDR
S. KOUSSOUBE
Traduction du modèle Objet en Relationnel
80
Mapping Objet-Relationnel
Le mapping Objet-Relationnel consiste à traduire le modèle des
classes en modèle de tables pour implanter une base de données
relationnelle
Il existe plusieurs possibilités de représentions concernant:
La traduction des associations
La traduction de la généralisation
Il faut en outre fournir des détails supplémentaires :
clés primaires,
clés candidates,
valeur null possible?
S. KOUSSOUBE
Traduction du modèle Objet en Relationnel
81
Mapping Objet-Relationnel
Représentation des classes d’objets en Tables
Chaque classe se représente par une (ou plusieurs) tables;
Les objets d’une classes peuvent être découpés horizontalement et/ou
verticalement;
Utilisation ou non d’Ids.
S. KOUSSOUBE
Traduction du modèle Objet en Relationnel
82
Personne
Objet
Modèle
nom N TypeNom
adresse O TypeAdr
S. KOUSSOUBE
Traduction du modèle Objet en Relationnel
83
Mapping Objet-Relationnel
Représentation des Associations Binaires
La représentation d’une association en table ou non dépend de la
multiplicité, des préférences du concepteur (extensibilité, nombre de
tables, compromis de performances)
Une association plusieurs-à-plusieurs se représente tjrs par une table
distincte. Les clés primaires des deux classes et les attributs
d’association sont des attributs de la table de l’association.
Une association un-à-plusieurs se représente:
Soit par une table d’association
Soit en enfouissant une clé étrangère dans la table pour la classe plusieurs
S. KOUSSOUBE
Traduction du modèle Objet en Relationnel
84
Mapping Objet-Relationnel
Représentation des Associations Binaires
Avantages de la fusion d’une association dans une classe:
Moins de tables et
De meilleures performances
Inconvénients de la fusion d’une association dans une classe:
Moins de rigueur dans la conception (l’association se passe entre objets
indépendants de poids égal. encapsulation)
Moindre extensibilité (il est difficile d’obtenir une multiplicité définitive
dans les premières passes de la conception)
Plus de complexité: la représentation asymétrique de l’association
complique les recherches et les mises à jour.
On peut fusionner plus encore une association un-à-un et les deux objets dans une
seule table. Mais Attention aux associations cycliques (A::B, B::C, C::A. Il serait
incorrect de replier ces trois classes et ces trois associations dans une seule table)
S. KOUSSOUBE
Traduction du modèle Objet en Relationnel
85
Modèle Objet
possède_actions Entreprise
Personne
nom nom
adresse adresse
type
nbrActions
adresse adresse
type
Personne
Traduction du modèle Objet en Relationnel
86
Mapping Objet-Relationnel
Représentation des Associations Binaires
S. KOUSSOUBE
Traduction du modèle Objet en Relationnel
87
fonction
Mapping Objet-Relationnel
Représentation des Associations n-naires
Équipe
Lanceur Année
Victoires
défaites
S. KOUSSOUBE
Traduction du modèle Objet en Relationnel
89
S. KOUSSOUBE
90
Bibliographie
91
S. KOUSSOUBE