Conception Orientée Objet Des Systèmes D'information: Salma Ksibi
Conception Orientée Objet Des Systèmes D'information: Salma Ksibi
Conception Orientée Objet Des Systèmes D'information: Salma Ksibi
Salma Ksibi
Docteur Ingénieur en Informatique
entrées sorties
Organisation
transformations
4
1. Système d’information
5
Système d’information
Rôle d’un SI :
• produire des informations «légales»
• déclencher des décisions programmées
SD
SI
SO
Une organisation regroupe des individus, aidés de machines, qui remplissent leur fonction
d’exécutant ou de décideur grâce aux informations dont ils disposent.
Par la suite, nous parlerons en général d’entreprise par souci de simplification.
Entreprise = Système
• « Ensemble d’éléments en interaction dynamique, organisé en fonction d’un but » Joël De
Rosnay « Le macroscope », éditions du seuil, 1975,
• L’entreprise est alors considérée comme un ensemble d’éléments (des moyens humains,
matériels, financiers et techniques) en interrelations,
• Toute organisation humaine (l’État, une famille, …) peut être perçue comme un système.
Systèmes d'information 7
L’entreprise: Système ouvert
• Le génie logiciel est un domaine de recherche qui a été défini afin de répondre à un problème qui
s'énonçait en deux constatations :
• Les logiciels n'étaient pas fiables,
• Il était incroyablement difficile de réaliser dans des délais prévus des logiciels satisfaisant leur cahier des charges.
• L'objectif du génie logiciel est d'optimiser le coût de développement du logiciel. L'importance d'une
approche méthodologique s'est imposée à la suite de la crise de l'industrie du logiciel à la fin des années
1970. Cette crise de l'industrie du logiciel était principalement due à :
• l'augmentation des coûts ;
• les difficultés de maintenance et d'évolution ;
• la non-fiabilité ;
• le non-respect des spécifications ;
• le non-respect des délais.
• La conception, Analyse
Maintenance
© S. Ksibi - COO 2020-2021
Système d’information
Outils
Entreprise Informatiques
langage stricte
organisation vivante
contraintes technologiques
problèmes mal définis
14
Système d’information
La nécessité de l’étape de conception
Suivi de principes
15
Modélisation, cycles de vie et méthodes
MODELE EN CASCADE
définition
des besoins
conception
implémentation
tests
utilisation
maintenance 22
Modèles de cycles de vie d'un logiciel
Étapes du cycle de développement
MODELE EN V
définition
validation
des besoins
conception test
du système du système
conception test
des composants des composants
codage
23
Modèles de cycles de vie d'un logiciel
Étapes du cycle de développement
MODELE EN SPIRALE
24
Méthodes d'analyse et de conception
Les méthodes d'analyse et de conception fournissent une méthodologie et des notations standards qui
aident à concevoir des logiciels de qualité. Il existe différentes manières pour classer ces méthodes, dont :
• La distinction entre composition et décomposition :
• Elle met en opposition d'une part les méthodes ascendantes qui consistent à construire un logiciel par composition à partir
de modules existants et, d'autre part, les méthodes descendantes qui décomposent récursivement le système jusqu'à arriver
à des modules programmables simplement ;
• La distinction entre fonctionnelle (dirigée par le traitement) et orientée objet :
• Dans la stratégie fonctionnelle (également qualifiée de structurée) un système est vu comme un ensemble hiérarchique
d'unités en interaction, ayant chacune une fonction clairement définie. Les fonctions disposent d'un état local, mais le
système a un état partagé, qui est centralisé et accessible par l'ensemble des fonctions.
• Les stratégies orientées objet considèrent qu'un système est un ensemble d'objets interagissant. Chaque objet dispose d'un
ensemble d'attributs décrivant son état et l'état du système est décrit par l'état de l'ensemble.
◗UML (Unified Modeling Language), que l'on peut traduire par "langage de modélisation
unifié" : est une notation permettant de modéliser un système de façon standard.
◗Ce langage est né de la fusion de plusieurs méthodes existantes auparavant, et est devenu
la référence en terme de modélisation objet.
◗UML peut être associé à toute démarche de conception de SI : à n’importe quelle étape de
la démarche et avec différents environnements de programmation.
◗Ce n’est pas une méthode de conception mais un langage de modélisation.
◗Couvre le cycle de développement du logiciel de la spécification des besoins à
l’implémentation.
◗Est un support de communication.
© S. Ksibi - COO 2020-2021
Evolution d’ UML
UML0.9 (96)
Statique Fonctionnel
diagramme de classes diagramme d’objets diagramme de cas d’utilisation
diagramme de composants diagramme de
déploiement
Dynamique
diagramme de séquence diagramme de
© S. Ksibi - COO 2020-2021 collaboration diagramme d’états-transitions
diagramme d’activités
Axes de modélisation
APPROCHEOBJETS,
OBJETTYPES,
: CLASSES • ETAT : ENSEMBLE DE VALEURS D ’ATTRIBUTS =
APPLICATION = ENSEMBLE D’OBJETS CONTENU INFORMATIONNEL
AYANT UN COMPORTEMENT ET
ECHANGEANT DES MESSAGES • IDENTIFIANT : IDENTIFIE DE MANIERE UNIQUE
UN OBJET ET N ’EST NI MODIFIABLE NI
REUTILISABLE (INTERNE AU SYSTEME).
ABSTRAIT
CONCRET • COMPORTEMENT: DIFFERENTS MESSAGES
OBJET ETAT AUXQUELS L ’OBJET PEUT REAGIR.
IDENTITE
COMPORTEMENT
Acteur
Retirer Argent
Cas d'utilisation
Client
Consulter Compte
Associations
© S. Ksibi - COO 2020-2021
Système
◗Le système peut être n’importe quel système, non seulement le système
logiciel.
◗Les frontières du système doivent être définies d’une façon claire et précise.
Système
Gérer Article
Reponsable Stock
Définitions:
◗ Les cas d’utilisation décrivent, sous la forme d’actions et de réactions, le comportement d’un
système du point de vue d’un utilisateur.
◗ Uncas d’utilisation est une manière spécifique d’utiliser un système. C’est l’image d’une
fonctionnalité du système, déclenchée en réponse à la stimulation d’un acteur.
◗ Un cas d’utilisation est une unité cohérente représentant une fonctionnalité visible de
l’extérieur. Il modélise donc un service rendu par le système avec un déclenchement, un
déroulement et une fin, pour l’acteur qui l’initie.
◗ Couvrir l’ensemble des fonctions à réaliser afin d’atteindre les objectifs visés.
◗ Objectif et interaction ?
◗ Objectifs des utilisateurs : ce que les utilisateurs attendent du système
◗ Interactions avec le système : les mécanismes permettant de satisfaire ces objectifs.
Nom du cas
d'utilisation
Exemple :
Gérer Stock
• Définition
◗L’acteur représente un rôle joué par une entité externe (personne ou
autre) qui interagit directement avec le système étudié et ce pour
échanger des informations ou changer l’état du système.
◗En réponse à l'action d'un acteur, le système fournit un service qui
correspond à son besoin.
◗L’acteur a un nom, qui le définit, ou qui précise son rôle dans la
transaction décrite.
© S. Ksibi - COO 2020-2021
Acteur
Représentation graphique
nom acteur
Accès à un
batiment
Gérer les
groupes des
Personne personnes
Administrateur
Retrait
Argent
Consulter
Guichetier compte
Système central
Nom acteur
• EXemple
Retrait Aegent
Guichetier
• Relation d’inclusion
◗La relation d’inclusion est définie entre cas d’utilisation.
◗Elleindique qu’une instance du CU source contient aussi le comportement décrit par le CU
destination.
◗Elle a un caractère obligatoire.
◗Elle permet de :
Décomposer les comportements
Définir des comportements partageables entre plusieurs CU
Représentation graphique
<<include>>
C a s d 'u t ilisa t io n 1 cas d'utilisation2
Exemple
<<include>>
Virement Authentification
Personne
• Relation d’extension
◗La relation d’extension définie entre cas d’utilisation indique qu’une instance du CU
source ajoute son comportement au CU destination.
◗Le comportement ajouté est inséré au niveau d’un point d’extension et il est défini dans
le CU destination.
◗La relation d’extension permet de modéliser des variantes de comportement d’un CU
selon les interactions des acteurs et l’environnement du système.
◗Une condition d’extension peut être spécifiée
Représentation graphique
[Condition]
C a s d 'u t ilisa t io n 1 cas d'utilisation2
<<extends>>
Exemple
[ s i M on t an t > 5 0 0 ]
CU général Emprunter
◗À chaque cas d’utilisation doit être associée une description textuelle des
interactions entre les acteurs et le système et les actions que le système doit réaliser en
vue de produire les résultats attendus par les acteurs.
◗Un scénario représente une succession particulière d’enchaînements, s’exécutant du
début à la fin du cas d’utilisation. Un enchaînement étant l’unité de description de
séquences d’actions.
◗Un cas d’utilisation contient en général un scénario nominal et plusieurs scénarios
alternatifs (qui se terminent de façon normale) ou d’erreur (qui se terminent en échec).
◗Le rôle des scénarios dans les diagrammes de CU est de détailler davantage les
interactions Utilisateur/Système et de préparer les diagrammes suivants
(collaboration / séquence) et ce afin de passer progressivement vers
l’implémentation
Scénario nominal :
1.le système vérifie la validité de la carte.
2.Le système vérifie que le crédit de la carte est supérieur ou égal à 1 dinar.
3.Appel du cas « rechercher une cassette»
4.Le client choisi une cassette vidéo
5.Le système, indique d’après la valeur de la carte, pendant combien de temps le client peut
garder la cassette.
6.Le système délivre la cassette
7.Le client prend la cassette
8.Le système rend la carte au client
9.Le client prend sa carte
© S. Ksibi - COO 2020-2021
Description textuelle d’un CU
Scénario alternatif :
A1. Le crédit de la carte est inférieur à 1 dinar
l’enchainement démarre après le point 2 de la séquence nominale:
2.1. Le système indique que le crédit de la carte ne permet pas au client
d’emprunter une vidéo.
2.2. Le système invite le client à aller recharger sa carte au magasin
La séquence nominale reprend au point 8
Scénarios d ’exceptions :
E1. La carte introduite n’est pas valide
L’enchaînement démarre après le point 1 de la séquence nominale:
1.1.Le système indique que la carte n’est pas reconnue
1.2 ©Le distributeur
S. Ksibi - COO 2020-2021
éjecte la carte
Description textuelle d’un CU
Scénarios d ’exceptions (suite):
E2. La cassette n’est pas reprise par le client
L’enchainement démarre après le point 6 de la séquence nominale:
6.1.Au bout de 15 secondes, le système avale la cassette
6.2Le système annule la transaction
6.3Le distributeur éjecte la carte
E3. La carte n’est pas prise par le client
L’enchainement démarre après le point 8 de la séquence nominale:
8.1.Au bout de 15 secondes, le système avale la carte
8.2. Le système consigne cette erreur
E4. Le client a annulé la recherche (il n’a pas choisi de vidéo)
L’enchainement démarre après le point 4 de la séquence nominale:
4.1. Le- COO
© S. Ksibi distributeur
2020-2021 éjecte la carte
Application : librairie en ligne
Développement d’un site web pour une librairie
◗L’objectif fondamental du futur site est de permettre aux internautes de rechercher des
ouvrages par thème, auteur, mots- clés, etc, de se constituer un panier virtuel, puis de pouvoir les
commander directement sur le Web.
Analyse
◗Acteurs
Internaute
◗Cas d’utilisation
Chercher des ouvrages
Gérer son panier
Effectuer une commande
Application : librairie en ligne
Diagramme en deuxième version
Créer un
compte Client
Chercher des
Visiteur ouvrages
Effectuer une
commande
Client
Gérer son
panier
Application : librairie en ligne
Nous remarquons maintenant que les deux acteurs Client et
Visiteur partagent deux cas d’utilisation :
Chercher des ouvrages et
Gérer son panier.
Application : librairie en ligne
Le diagramme devient alors :
Créer un
Visiteur compte Client
Chercher des
ouvrages
Effectuer une
commande
Client
Application : librairie en ligne
◗On pourrait relier les cas d’utilisation des internautes par des relations
d’extension :
La recherche d’ouvrages peut donner lieu à leur mise dans le panier (et
réciproquement !).
La gestion du panier peut donner lieu au passage d’une commande(et
réciproquement !).
◗De même, les différentes possibilités de recherche d’ouvrages seront
modélisées plus finement par une relation de généralisation/spécialisation.
◗Enfin, l’authentification du client est nécessaire au début du passage d’une
commande, du suivi des commandes, ou de la modification des informations
du compte.
Application : librairie en ligne
Le diagramme en version finale
Effectuer une
recherche rapide
Créer un
Visiteur compte Client
◗Une classe regroupe sous un même terme générique et une même représentation, un
ensemble d’objets ou instances ayant :
◗des propriétés (états)
et
◗des comportements (opérations /méthodes)
communs.
client
NOM_CLASSE
+NumClt
+ATTRIBUTS +NomClt
+AdrClt
+OPERATIONS()
+MAJClt()
+numClient +codeProduit
+numCommande +nomClient +desProduit
+dateCommande +prenomClient +typeProduit
+typeClient
Rectangle
Rectangle
+longueur
+longueur +largeur
+largeur surface = longueur*largeur
+/surface +surface()
Niveau Analyse
Niveau Conception
◗Visibilité : +, -, #
◗Arguments : direction nom_argument : type argument [=valeur par défaut]
◗Direction :
◗IN:argument est un paramètre en entrée seule; non modifiable par l’exécution de cette
opération
◗OUT : argument est un paramètre en sortie seule; l’appelant peut récupérer les informations
◗INOUT : argument est en un paramètre en entée-sortie; passe à l’opération et modifiable
◗Propriété :
◗Requête : l’opération ne modifie pas les attributs ;
◗Abstrait : l’opération n’est pas implémentée dans la classe ;
◗Est-feuille : l’opération ne peut pas être redéfinie ;
◗Est-racine : l’opération est définie pour la première fois dans la hiérarchie ;
◗Récursive : l’opération est récursive ;
Produit
Client
+codeProduit
+numClient
+desProduit
+nomClient
+typeProduit
+prenomClient
+typeClient +MAJ_Produit()
+MAJ_Client()
Commande
+numCommande
+dateCommande
+calculTotal()
◗Agrégation
◗Composition
◗Héritage
Association
◗Une association lie une ou plusieurs classes : arité 1 ou plus.
◗Une association peut être :
◗Binaire
◗n-aires
Salle Groupe
• Notion de rôle
•L’extrémité d’une association peut avoir un nom, appelé rôle, qui décrit comment une classe
source voit une classe destination au travers de l’association.
• Relation réflexive
• Une relation réflexive est une relation qui relie une classe à elle-même.
• Représentation & Exemple :
+Rôle2 +Est enfant
CLASSE
+Rôle1 Personne
+Est parent
• Cardinalités
• Exemples:
Entreprise Servcie
1 1..*
Enseignant
1..*
0..* 1..*
Salle Groupe
• Attributs de lien
• Représentent les associations porteuses de données
Passer
Etudiant 1..* 0..* Examen
Note
• Classe d’associations
•Permet de représenter une association par une classe pour définir des attributs et/ou des
opérations dans l’association.
0..* 1..*
Contrat
• Exemple
◗Une commande est passée par un seul client et concerne un ou
plusieurs produits.
◗Un client passe une ou plusieurs commandes.
◗Un produit peut être commandé par plusieurs commandes.
◗Pour chaque produit commandé on doit connaître la quantité
commandée.
Qté_Cdée
© S. Ksibi - COO 2020-2021
Relations entre classes
1..*
1..* 1..*
Vol
+Etat (Fermé,Ouvert)
+DateDepart 2 Aéroport
1..* {Ordered}
+HeureDepart
+DateArrivée
+HeureArrivée
Vol
+Etat (Fermé,Ouvert) Aéroport
+Départ
+DateDepart 0..*
1
+HeureDepart 1
+DateArrivée 0..* +Arrivée
+HeureArrivée
Vol
+Etat (Fermé,Ouvert)
+Départ
+DateDepart 0..* 1
Aéroport
+HeureDepart 0..* +Arrivée 1
+DateArrivée 0..*
+HeureArrivée Escale 0..*
Escale
+HeureDepart
+HeureArrivée
Vol
Réservation +Etat (Fermé,Ouvert)
Passager 1 1 +DateDepart
+HeureDepart
Relative +Annuler() +DateArrivée
Concerne
+Confirmer() +HeureArrivée
• L’agrégation
◗L’agrégationest une forme particulière d’association qui exprime un
couplage plus fort entre classes.
◗Association destinée à construire des objets complexes (composés) à
partir d’objets simples (composants).
◗Agrégation faible : dont la destruction du composé n’entraîne pas la
destruction des composants : les classes sont autonomes.
© S. Ksibi - COO 2020-2021
Relations entre classes
• Formalisme:
• Exemple:
© S. Ksibi - COO 2020-2021
Relations entre classes
• La composition
◗La composition est une relation d’agrégation dans laquelle il existe une
contrainte de durée de vie entre la classe « composé » et la classe « composant
». Autrement dit la suppression de la classe « composé » entraine la
suppression de la ou des classes
• «composant ».
◗C’est une agrégation forte.
◗Une instance de composant ne peut être liée qu’à un seul agrégat.
+composés
Section
Document Chapitre
• Exemple: Figure
• La généralisation
◗La généralisation est la relation entre une classe (superclasse ou classe-mère)
et d’autres classes (sous-classes ou classes-filles) partageant un sous-ensemble
commun d’attributs et/ou d’opérations.
◗La généralisation est un processus de modélisation permettant de rassembler
dans une même classe toutes les propriétés et les méthodes communes, vis à vis
d’autres classes spécialisées regroupant chacun des propriétés propres à un
sous-ensemble d’occurrences de la classe générique.
© S. Ksibi - COO 2020-2021
Relations entre classes
Sous_classe1 Sous_classe2
Bateau
Application
Il est demandé de représenter le diagramme de classes d’une gestion technique de
documents.
Chaque document est composé d’un ou plusieurs feuillets. Un feuillet comporte du texte et
des objets géométriques supportant des opérations de type : sélectionner, copier, couper,
coller et déplacer.
Nous considérons les quatre objets géométriques suivants : cercle, ellipse, carré, rectangle.
Il
est demandé d’utiliser les propriétés de la généralisation et la spécialisation afin de
représenter au mieux ces objets géométriques.
• Corrigé:
1..*
Feuillet
0..* 0..*
Text Objet géométrique
copier()
sélectionner()
couper()
coller()
déplacer()
• Ou-exclusif
•Indique pour un objet donné qu’une seule association est valide.
• Exemple:
Batterie
Portable
Ou-exclusif
Secteur
Véhicule
{chevauchement}
A voile Terrestre Marin
A moteur
Bateau
Enseignant
{Disjoint}
Vacataire Permanant
{incomplet}
Vacataire Permanant
• On peut trouver d’autres instances de la classe Enseignant qui ne sont ni Vacataire ni Permanent
ni Professeur d’enseignement supérieur :
• Instance(Vacataire) U Instance(Permanent) inclus Instance(Enseignant)
{complet}
Vacataire Permanant
La qualification :
◗Elle permet de sélectionner un sous-ensemble d'objets, parmi ceux
participant à une association.
◗Elle est définie par un qualificatif, qui est utilisé avec un objet de la
classe source et permet de sélectionner les objets de la classe cible.
◗Un compte dans une banque appartient à au plus deux personnes. Autrement dit, une instance
du couple {Banque , compte} est en association avec zéro à deux instances de la classe Personne.
◗Mais une personne peut posséder plusieurs comptes dans plusieurs banques. C’est-à-dire qu’une
instance de la classe Client peut être associée à plusieurs (zéro compris) instances du couple
{Banque , compte}.
◗Bienentendu, et dans tous les cas, un instance du couple {Client , compte} est en association
avec une instance unique de la classe Banque.
© S. Ksibi - COO 2020-2021
Chapitre 5
Diagramme de séquence
• L’axe temps dans chaque diagramme est représenté implicitement du haut vers le
bas.
• L’ordre d’envoi des messages est déterminé par sa position sur l’axe vertical du
diagramme.
• Les messages sont représentés par des flèches orientées émetteur-récepteur.
• La disposition des objets sur l’axe horizontale n’a pas de conséquence pour la
sémantique du diagramme.
• L'opérateur "break" est utilisé dans les fragments combinés qui représentent des
scénarios d'exception en quelque sorte.
• Les interactions de ce fragment seront exécutées à la place des interactions
décrites en dessous. Il y a donc une notion d'interruption du flot "normal" des
interactions.
• L'exemple ci-après montre un opérateur « break » : l’utilisateur, lorsque le
distributeur lui demande son code, peut choisir de rentrer son code ou de consulter
l'aide. S’il choisit de consulter l'aide, le flot d'interaction relatif à la saisie du code
est interrompu. Les interactions de l'opérateur break sont « exécutées ».
© S. Ksibi - COO 2020-2021
Réutilisation de séquences : Ref
• Le diagramme de classes
Suivant modélise la structure
interne de la bibliothèque:
• Un acteur adhérent peut emprunter un exemplaire d'une oeuvre donnée. L'emprunt se fait de la façon
suivante : la méthode emprunter est appelée avec un objet de classe Adhérent donné en argument ; s'il
reste des exemplaires dans la bibliothèque, l'un des exemplaires associés à l'oeuvre est extrait via la
méthode extraireExemplaire, une instance de la classe Prêt est créée, puis l'exemplaire extrait de la
bibliothèque est attribué à l'adhérent grâce à l'opération attribuer. S'il restait un exemplaire, l'oeuvre
retourne OK et dans le cas contraire, elle retourne PasOK.
Correction