Vous êtes sur la page 1sur 90

Cours d’Analyse et

Conception logicielle
Chapitre 1:
CONCEPTION ORIENTÉE OBJET
Définitions : OMGL

• OMGL = Outils et Modèles pour le Génie Logiciel

• Outil : logiciel supportant une méthode


• Modèle : représentation schématique de la réalité
• Logiciel selon l'arrêté du 22 décembre 1981 : ensemble
des programmes, procédés et règles, et éventuellement
de la documentation, relatifs au fonctionnement d'un
ensemble de traitements de l'information
• Génie Logiciel (ou l'ingénierie des systèmes
d'information) selon l'arrêté du 30 décembre 1983 :
ensemble des activités de conception et de mise en
œuvre des produits et des procédures tendant à
rationaliser la production du logiciel et de son suivi
Définitions : ACSI
• ACSI = Analyse et Conception des Systèmes
d'Information

• Analyse : processus d'examen de l'existant


• Conception : processus de définition de la
future application informatique
• Systèmes d'Information : ensemble des
moyens (humains et matériels) et des méthodes
se rapportant au traitement de l'information
d'une organisation
Définitions : BD
• BD = Bases de Données

• Bases de Données [définition des


informaticiens] : ensemble des données (de
l'organisation) structurées et liées entre elles :
– stocké sur support à accès direct (disque
magnétique)
– géré par un SGBD (Système de Gestion de Bases de
Données)
– accessible par un ensemble d'applications
Définitions (compléments)
• Informatique : science du traitement
automatique et rationnel de l'information
[académie française, 1966]

• Informatique de Gestion : informatisation des


systèmes d'information

• AGL = Atelier de Génie Logiciel (CASE =


Computer Aided Software Engineering) :
ingénierie du logiciel assisté par ordinateur
L’information, indispensable dans le
processus de décision d'une
organisation

• Diminution de l'incertitude
• Liberté de choix
• Cohésion de l'organisation
• Évolutivité par rapport à l'environnement
Qualités requises pour une
information
• Pertinence (mesure la qualité d’une information) :
relation directe entre l’action à accomplir ou la décision à
prendre
– précision : ni trop importante, ni trop faible
– sécurité (pour reconstituer l’information en cas d’accident)
– intégrité (contraintes statiques ou dynamiques)
– confidentialité (protection contre tentatives d’accès)
– non redondance (un seul exemplaire de chaque information)
– Convivialité (qualité de représentation sur support externe et
facilité d’accès par les utilisateurs)
– âge (temps entre enregistrement et sortie des résultats)
– fréquence (nombre de transmissions par unité de temps)
• Cohérence (d’unité, de temps, etc.)
• Rentabilité : coût d’obtention ≤ gain, meilleur service
Définitions : système

• Système : ensemble d'éléments en interaction


dynamique, dont les éléments sont organisés et
coordonnés en vue d'atteindre un objectif, qui évolue
dans un environnement
Un système vu comme une « boîte noire
»
Système : de la « boîte noire » à la
« boîte blanche »

Le système se décompose en sous-systèmes dont on


définit les entrées (issues de l'extérieur ou sorties
d'autres sous-systèmes) et les sorties (à destination de
l'extérieur ou devenant les entrées d'autres
sous-systèmes)
Système : de la « boîte noire » à la
« boîte blanche »
Système : de la « boîte noire
» à la
« boîte blanche »

Chaque sous-système est lui-même un système :


affinages successifs jusqu'à l'obtention d'une « boîte
blanche »
Principales difficultés de l’approche d’un
système par décomposition récursive

• identification du système
• identification des limites du système
• identification des sous-systèmes
• risque de perte engendrée par la
décomposition
• etc.
Définitions : système organisationnel
• Système de Décision (ou pilotage, management, etc.)
– Guide l'organisation vers ses objectifs (activités de planification
et de contrôle) : coordonne, imagine, finalise, élabore objectifs
– Gérer
• Système d'Information
– Intermédiaire entre les systèmes de décision et opérationnel, par
qui transite toute information :
• mémorise l’information (conservation de l'information pour des
besoins ultérieurs),
• traite l’information (rapprochements, calculs, comparaisons),
• fait circuler l’information (accès à la mémoire, échange entre
acteurs)
• Système Opérant (ou logistique, technologique,
physique, de production, etc.)
– Effectue la transformation : reçoit, traite, envoie
– Acheter ; Produire ; Stocker ; Vendre

Remarque : un même employé peut être un acteur de


chacun des trois sous-systèmes
Rôles du système d’information
• Produire les informations légales réclamées par
l'environnement

• Déclencher les décisions programmées

• Fournir des informations aux décideurs pour aider à la


prise de décisions non programmées

• Coordonner les tâches en assurant les communications


au sein du système organisationnel
Connaissances nécessaires en
Informatique de Gestion

• Science de gestion : mise en place du réseau


d'information et de communication (conception du
système d'information)

• Technique informatique : conception et réalisation du


système informatique pour gérer le système
d'information (conception du logiciel)
Définitions : système d’information vs
système informatique

• Le système informatique est la partie informatisée du


système d’information automatisable

système d’information

système d’information automatisable

système informatique
Définitions : système informatique
• Communication
– Système informatique communique directement avec
son environnement (utilisateurs, fichiers d’autres
systèmes via un réseau ou non, etc.)
– Communication entre composants d’une application
(ex. : fichier de mouvement)
• Traitement
– Demandes de traitements issues de l’échange entre
le système informatique et son environnement
– Pilotage des traitements proposés par le système
informatique en gérant les appels aux processus
permettant de les réaliser
• Mémorisation
– Gestion des données par différents modes d’accès
(et stockage aux niveaux logique et physique)
Critères d'un bon système
informatique
• Productivité (en rationalisant le processus
d'informatisation)
– Établissement d'une ligne directrice des informatisations
– Planification et suivi des performances
– Efficacité des études informatiques
– Utilisation judicieuse des technologies
• Qualité
– Conformité de la réalisation par rapport aux besoins
– Documentation correcte
– Adaptabilité
– Fiabilité
– Facilité d'utilisation
• Rentabilité (i.e. gain pour l'organisation relativement au
coût de l'informatisation)
Cycles de vie du logiciel
Cycle de développement et cycle de
vie du logiciel : les phases

• Analyse
Cycle
• Conception
de Cycle
• Réalisation
développement de
• Tests
vie
• Exploitation
• Maintenance
Cycles de vie du logiciel
• Analyse de l'existant et définition des
besoins, du système d'information et du
logiciel

• Conception du système d'information et du


logiciel

• Réalisation (ou codage, programmation) :


traduction des algorithmes dans un
langage compréhensible par un ordinateur
Cycles de vie du logiciel
• Tests :
– vérification du logiciel (i.e. système
informatique)
– validation du logiciel
– vérification du système d'information
– validation du système d'information

Vérification : le produit en cours d’élaboration répond-il à la


définition des besoins ? (est-ce bien le produit ?)
Validation : le produit en cours d’élaboration remplit-il les
fonctionnalités désirées par l'utilisateur ? (est-ce le bon
produit ?)
Cycles de vie du logiciel
• Exploitation : utilisation du logiciel une fois
installé (et dont on fait la recette)

• Maintenance
– Correction des erreurs
– Amélioration des fonctions existantes
– Ajout de nouvelles fonctionnalités
Cycles de vie en cascade (ou en chute
d’eau)

Critiques :
– Recouvrement de phases
– Avancées et retours d’une seule phase du cycle de
développement à la fois
– Impact de la maintenance sur toutes les phases du
développement
– Contacts avec l’utilisateur restreints à la phase
d’analyse
Cycles de développement en V

• Système signifie ici système d'information (manuel et informatisé)


• Modèle de l'AFCIQ (Association Française pour le Contrôle Industriel de
Qualité) avec le vocabulaire suivant : Spécification fonctionnelle \
Conception préliminaire \ Conception détaillée \ Codage / Tests unitaires /
Tests d'intégration / Recette
Chiffres : coût relatif de correction
d'une erreur selon la phase (du cycle de
vie du logiciel) au cours de laquelle elle a
été détectée
Analyse : 1
Conception : 2
Réalisation : 5
Tests : 10
Exploitation et Maintenance : plus de 100

• Remarque : plus de 80 % des erreurs sont introduites durant les


phases d'analyse et de conception

• Les coûts de la maintenance corrective (ni adaptative, ni évolutive)


peuvent aller jusqu'à deux fois ceux du développement
Exemple pathologique (système avionique) : coût de développement de
30$ par instruction mais coût de maintenance de 4000$ par instruction
Intervenants : MOA vs MOE
• La maîtrise d'ouvrage (MOA) : les utilisateurs
– Direction générale
– Responsable du service des utilisateurs
– Personnel
– Autres services
– Clients
• La maîtrise d'œuvre (MOE) : les informaticiens,
prestataires de services
– Responsable du service informatique
– Chef de projet
– Analyste
– Développeur
– Personnel de l’exploitation
– Sous-traitants de l'application
L’Approche Fonctionnelle – 1960-1980

▪ Les fonctions du système


 Identifier les fonctions du système
 Découpages en sous-fonctions

▪ Analyse Fonctionnelle
 Fonctions Principales …

▪ Inconvénients :
 Modification de données  modification en cascade de blocs fonctionnels
utilisant ces données
 Evolutivité et maintenabilité parfois difficile
 Données séparées des traitements
 Faible niveau d’abstraction des données

29
L’Approche Orientée Objet– 1980 - …

▪ S’inspire du « monde réel » fait d’objets communiquant entre eux


et possédant :
 Des propriétés intrinsèques ou dépendant d’éléments extérieurs
 Des comportements intrinsèques ou dépendant d’éléments extérieurs

▪ Un objet c’est :
 Des données (ou propriétés, attributs)
 Des traitements manipulant ces données et définissant son comportement
(Opérations, méthodes)
 Des échanges de messages avec les autres objets

30
© Copyright Nat System 2016
Un Objet

Ampoule
intensité
Lampe

allumer ()
éteindre()
intensifier()
diminuer()

31
© Copyright Nat System 2016
les Choses ; les Etres ; les évènements

▪ Ce qui est inerte, stable dans le temps,


▪ Classes statique

▪ Ce dont l’état se modifie dans le temps


▪ Classes dynamique

▪ La communication entre ces différents éléments

32
© Copyright Nat System 2016
Entité ; Attribut ; Valeur

▪ Une entité (un objet) est une chose concrète ou abstraite de la


réalité perçue, à propos de laquelle on veut conserver des
informations. Une entité a une existence autonome.

▪ Les attributs sont les propriétés particulières d’une entité. C’est


une qualité. Un attribut peut prendre une ou plusieurs valeurs.

▪ Une valeur est un symbole pour représenter un fait élémentaire.

33
© Copyright Nat System 2016
Entité ; Attribut ; Valeur - Exemples

<voiture, couleur, rouge>


<voiture, marque, Peugeot>

<passant, taille, grande>


<passant, âge, 50>

34
© Copyright Nat System 2016
Entité ; Attribut ; Valeur (suite)

▪ Les attributs peuvent être:


▪ Atomiques : ex prénom, nom, …

▪ Composés : Date de naissance = (jour - mois – année)

▪ Monovalué : Une seule valeur, ex: date de naissance

▪ Multivalué : Plusieurs valeurs, ex: les prénoms.

35
© Copyright Nat System 2016
Stockage des objets en mémoire

▪ Il existe un ensemble de « types primitifs » d’attribut :


▪ Entier codé sur « n » octets
▪ Réel signe + mantis + exposant => « n » octets
▪ Chaîne de caractères de « x » caractères
▪ Etc.

▪ Permet de déterminer la place occupée en mémoire par l’objet


(taille des types primitifs)

▪ Tout objet est identifié par son référent ou handle qui permet de
déterminer l’adresse physique en mémoire de l’objet

36
© Copyright Nat System 2016
Base de Données Relationnelles

▪ Les « types primitifs » se retrouvent dans les Bases de Données


dites Relationnelles

▪ Mode permanent de stockage des données le plus répandu.

▪ Les données sont stockées en tant qu’enregistrement, dans des


tables, sous forme de couples attribut/valeur, dont une clé
primaire.

▪ Les relations entre tables sont établies par un mécanisme de


jonction de clé primaire de la première table et de clé dite
étrangère de la table à laquelle on désire la relier.
37
© Copyright Nat System 2016
Stockage des objets
en mémoire

Objets dans la mémoire de l’ordinateur


38
© Copyright Nat System 2016
Plusieurs référents pour un même objet

Mécanisme
d’adressage
indirect

Adresse de
l’objet

39
© Copyright Nat System 2016
Objet Composite
▪ Composition : entre eux, les objets peuvent être dans une
relation de composition, où certains se trouvent contenus dans
d’autres.

40
© Copyright Nat System 2016
Changement d’Etats

▪ Le cycle de vie d’un objet, lors de l’exécution du programme


orienté objet, se limite à une succession de changements d’états,
jusqu’à sa disparition pure et simple de la mémoire centrale.
Exemple : la couleur d’un feu de signalisation change constamment d’état de
vert à orange et rouge

Entier couleur Change :


1,2 ou 3 Couleur = (couleur + 1)
If (couleur == 4) couleur =1

Mémoire des Mémoire des


objets opérations

41
© Copyright Nat System 2016
Objets en Interaction

▪ « feu-de-signalisation » parle à « voiture »

Change :
Entier/couleur 3 Couleur = (couleur + 1)
Feu-de-signalisation If (couleur == 4) couleur =1
If (couleur == 1)
voitureDevant changeVitesse(50)

Voiture-vue-dans-la-rue Entier/vitesse 0
changeVitesse(int v)
Vitesse = v

Mémoire des Mémoire des


objets opérations
Changement de couleur du feu induit changement de vitesse de la voiture.
- La méthode change permet la modification de la couleur du feu.
- La méthode changeVitesse permet de changer la vitesse de la voiture.
42
© Copyright Nat System 2016
Classes et Méthodes

▪ La classe réunit tous les attributs et toutes les opérations


qui y accèdent et qui portent sur ceux-ci.

« un modèle représentant une famille d’objets »

▪ Les méthodes sont l’ensemble des opérations portant sur les


attributs de l’objet.
▪ La méthode a la particularité de ne s’exécuter que sur un objet
précis.
▪ L’objet sur lequel s’exécute le code est un argument implicite de la
méthode.

43
© Copyright Nat System 2016
Evènements & Messages

Changement de couleur du feu : c’est un évènement


L’objet « feu » envoi un message aux objets voitures…

▪ L’envoi d’un message revient à informer un ou plusieurs objets


d’un changement d’état.

▪ La réception d’un message par un objet– s’il désire traiter


l’information – provoque l’exécution d’une méthode.

▪ Un message est envoyé soit à un destinataire particulier, soit sur


un bus de messages.

44
© Copyright Nat System 2016
Messages, Evènements & Ecouteur

▪ Un objet peut envoyer un message directement à un second


objet.

▪ Ecouteur d’évènements (listener) :


Un objet peut se mettre à l’écoute d’un changement d’état d’un
autre objet – à l’écoute d’évènements.

45
© Copyright Nat System 2016
Un Objet est une Instance de sa Classe

▪ Une classe est une description d'un ensemble d'objets ayant une
structure de données commune et disposant des mêmes
méthodes.

▪ Les définitions des classes doivent correspondre à des unités


fonctionnelles indépendantes.

▪ Une classe est un modèle d'objet. A l'inverse, un objet a une


réalité matérielle car il possède des champs avec valeurs.

46
© Copyright Nat System 2016
Les différents états d’un objet

▪ Les objets changent d’états continûment – ils sont dynamiques et


la valeur de leurs attributs change dans le temps :
▪ Soit par mécanismes qui leur sont propres
▪ Ex : feu de signalisation
▪ Soit en raison d’un interaction avec un autre objet
▪ Ex : Voiture arrêté au feu rouge

Un programme orienté objet se limite à une succession de


changements d’états jusqu’à sa disparition.

47
© Copyright Nat System 2016
Héritage et Taxonomie

▪ Permet de définir une nouvelle classe (sous-classe, classe


descendante) à partir d’une classe existante (super-classe, classe-
mère) à laquelle on ajoute de nouvelles données et de nouvelles
méthodes
▪ Permet la spécialisation de classes existantes
▪ Economie de code
▪ Structuration du code => lisibilité
▪ Héritage multiple
▪ Héritage de plusieurs super-classes

▪ C’est donc une organisation hiérarchique ou taxonomique, (càd


science de la classification).
Héritage et Taxonomie (suite)
Constructeur Destructeur

▪ Les constructeurs servent à construire l'objet en mémoire


▪ Mise en place des données
▪ Association des méthodes avec les champs (seule une copie des méthodes
est gardée en mémoire)
▪ Etablissement du diagramme d’héritage de l’objet

▪ Les destructeurs se chargent de détruire l'instance de l'objet.


▪ La mémoire allouée pour le diagramme d'héritage est libérée

50
Symbole et Emblème

▪ Symbole : signe, être naturel et universel qui peut faire usage


d'emblèmes selon la culture et le temps.

▪ Emblème : élément conventionnel qui est localisé dans une


culture, dans un lieu.

▪ Exemple
▪ Le « Soleil » est un symbole de chaleur, de lumière et de vie.

▪ Le « Soleil » est un emblème d’unité ou encore de la royauté.


Signature

▪ La Théorie des signatures ou principe de signature est une


méthode d'observation des plantes dont les noms, les formes, les
couleurs et les nombres indiquent leur utilisation en médecine.
Signature

▪ La signature de la méthode est ce qui permet de la retrouver dans


la mémoire des méthodes :
▪ Nom de la méthode
▪ Liste ordonnée des types de ses arguments

Surcharge

▪ Toute modification de cette liste pourra donner naissance à une


nouvelle méthode : surcharge de la précédente.

Même nom mais pas les mêmes paramètres


Polymorphisme

▪ Des méthodes ayant le même nom sont redéfinies dans


des classes filles différentes ;
▪ Permet de manipuler des objets sans en connaître totalement
leur type dans un contexte d’héritage (classes dérivées) ;
▪ Permet des tableaux d’éléments hétérogènes ;
▪ Structuration des objets avec des méthodes communes et des
méthodes spécifiques.
Principe de substitution

▪ On peut remplacer un objet de la classe mère par


un objet de la classe fille.
Interface

▪ Une interface est constituée d’une


liste de signatures de méthode qui
pourront faire l’objet d’envoi de
messages.
▪ Cette liste constitue la partie visible
de l’extérieur de la classe.
Hiérarchie

▪ Généralisation : du particulier au général


▪ regrouper les objets présentant des similitudes pour former une classe de
base (classe mère)
▪ mise en facteur commun de certaines structures ou certains
comportements.

▪ Spécialisation : du général au particulier


▪ Nécessité de préciser un objet quand des différences se présentent =
subdivision de la classe mère en classes filles (ou sous classes)
Surcharge

▪ La Surcharge ou sur-définition d’un symbole conduit à plusieurs


significations différentes dans lesquelles on choisit en fonction
du contexte : emblème

▪ Les méthodes usuelles et statiques peuvent être redéfinies.

▪ Plusieurs méthodes peuvent avoir le même nom à condition que


le nombre et le type de leurs arguments permettent au
« langage » d’effectuer un choix, donc, à condition qu’elles aient
des signatures différentes
Classe Anonyme

▪ Le fait de définir une classe interne, sans lui donner de nom par
dérivation d’un super classe, ou par implémentation d’une
interface.
▪ Elle pourra donc accéder aux méthodes et aux attributs
de la classe l'englobant
/** lasse englobante */
public class ClasseEnglobante {
/* Méthode englobant l'appel à une classe anonyme */
public void methodeEnglobante(){
/** Déclaration et instanciation de la classe anonyme pour un bouton
* Le bouton est déclaré 'final' afin que la classe anonyme puisse y accéder */
final JButton bouton = new JButton("monBouton");
bouton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.out.println(bouton.toString());
}
});
}
}
POO et les langages de programmation

▪ Ada
▪ C++
▪ C#
▪ Delphi
▪ NatStar
▪ JAVA
▪ Perl
▪ PHP
▪ Python
▪ Ruby
▪ VB
▪ Etc.
Conception Procédurale - Conception Objet

Conception Procédurale Conception Objet


▪ Code plus rigide ▪ Code plus modulable
▪ Pensée linéaire ▪ Pensée analogique
▪ Moins lisible ▪ Plus lisible
▪ Découpage en de grandes ▪ Identification des acteurs et de
fonctions imbriquées leurs comportements
▪ Grosse structure de donnée ▪ Données réparties dans les
objets
▪ Plus proche du langage naturel
la_proie.repère(prédateur)
Conception Procédurale - Conception Objet
(suite)

▪ Attention à ne pas confondre la conception avec le langage !

▪ Il n’est pas rare de voir des programmes de « Conception


Procédurale » écrits à l’aide d’un langage « Orienté Objet »
Conception Procédurale

Le découpage logiciel se fait


avec des grands blocs
fonctionnels
Conception Objet

Le découpage du logiciel se fait


entre les classes qui regroupent
les descriptions structurelles
avec les activités
les concernant.
Les classes interagissent
entre elles.
Encapsulation des données

▪ L'encapsulation permet de protéger les données d'un objet.


En effet, il n'est pas possible d'agir directement sur les données
d'un objet. Il est nécessaire de passer par ses méthodes qui jouent
le rôle d'interface obligatoire.
▪ L'appel de méthode est en fait l'envoi d'un message à l'objet.
▪ Vu de l'extérieur, un objet se caractérise uniquement par les
spécifications de ses méthodes.
▪ La manière dont sont réellement implantées les données est sans
importance.
▪ Le fonctionnement interne de l'objet est caché au monde
extérieur.
Encapsulation des données (suite)

▪ Correspond à une déclaration « privé » ou « private »

▪ Renforce la maintenabilité du code

▪ Exemple : l’accès à la conduite de la voiture par le conducteur ne


présuppose pas la connaissance de la conception technologique
du moteur, de l’embrayage, etc.
Visibilité des champs et des méthodes

▪ Visibilité Publique public


▪ accessibles partout

▪ Visibilité Privée private ANGKOR-VAT : 3 enceintes

▪ restreint la portée d'un champ ou d'une méthode au module où il (ou elle)


est déclaré(e).

▪ Visibilité Protégée protected


▪ tout champ ou méthode protégé(e) est accessible dans tous les
descendants, quel que soit le module où ils se situent.
Accesseurs et Mutateurs

Les données membres notées « Privé » ne peuvent pas être manipulées


directement par les méthodes membres des autres classes. Ainsi, pour pouvoir
manipuler ces données membres, il faut des fonctions membres spéciales portant
l'étiquette « Publique ».

▪ Les fonctions membres permettant d'accéder aux données


membres sont appelées accesseurs ou getter

▪ Les fonctions membres permettant de modifier les données


membres sont appelées mutateurs ou setter
La Gestion d’ Exception

▪ Les langages OO intègrent majoritairement la gestion d’exception


pour une « sécurité maximum du code ». En JAVA, la non-prise en
compte de l’exception provoque une erreur.
▪ Le mécanisme le plus courant est le « try-catch »
VB-NET
Try
[ tryStatements ]
[ Exit Try ]
[ Catch [ exception [ As type ] ] [ When expression
]
[ catchStatements ]
[ Exit Try ] ] JAVA
[ Catch ... ] try {
[ Finally …
[ finallyStatements ] ] } catch (ArithmeticException e) {
End Try …
}

}
Statique

Il existe des cas où une instance de classe est inutile. Le terme


statique (static) permet d’indiquer qu’une méthode peut s’exécuter
sans avoir à instancier la classe qui la contient.

Exemple :
Méthode retournant le plus petit de deux nombres.
MOA et MOE
▪ MOA – Maître d’ouvrage
Le maître d’ouvrage ou MOA est la personne ou le groupe qui exprime le
besoin. Il précise les objectifs, les délais et le budget alloué.
Dans « ouvrage » il faut comprendre le produit qui sera livré à la fin du projet.

Connaissances fonctionnelles

▪ MOE – Maître d’œuvre


Le maître d’œuvre ou MOE est la personne ou le groupe qui assure la
production du projet dans le respect des délais, du budget et de la qualité
attendue.
Spécifications fonctionnelles et techniques
2 ème
Partie
UML
Unified Modeling Language - UML

▪ UML est un langage de modélisation graphique à base de


pictogrammes conçu pour fournir une méthode normalisée pour
visualiser la conception d'un système.

▪ UML n’est pas une méthode – c’est un langage


UML (suite)
▪ UML est standardisé par l’organisation
Object Management Group : http://www.omg.org

▪ UML est utilisé pour spécifier, visualiser, modifier et construire


les documents nécessaires au bon développement
d'un logiciel orienté objet.

▪ UML offre un standard de modélisation, pour représenter


l'architecture logicielle.

▪ Il permet de générer du code dans un langage objet :


C++, C#, JAVA, Python, PHP, etc.
▪ Les différents éléments représentables sont :
▪ Activité d'un objet/logiciel
▪ Acteurs
▪ Processus
▪ Schéma de base de données
▪ Composants logiciels
▪ Réutilisation de composants

▪ Grâce aux outils de modélisation UML, il est également possible


de générer automatiquement une partie de code, par exemple en
langage C++, PHP, Java, … à partir des divers documents réalisés.
Historique : Évolution de UML

UML d'après les «amigos»

0.8 ->0.9
0.9->0.91->1.0
Jim Rumbaugh Grady Booch Ivar Jacobson 1.0->1.1->1.2->1.3->1.4

1.5

OMT Booch Objectory

2.0
13

UML

x.y

Comprendre la logique d’évolution d’UML.


Devant et derrière, Avant et après ...

Méthode = Langage(s) + Démarche + Outils

OMT
procédés UML SA/RT
SADT

industriels
de production
de logiciels et de
ERD Merise
systèmes.
DFD
DFD
etc.
JSD
Les outils UML (CASE / IDE)

•Fonctionnalités courantes
▪ Edition des modèles et diagrammes UML
▪ Gestion du dictionnaire de données
▪ Génération de code C++, Java,...
▪ Rétro-conception à partir de code existant

•Quelques exemples
▪ Rational Rose de Rational Software (www.rational.com)
▪ Software Through Pictures d’AONIX (www.ide.com)
▪ Cayenne Class Designer de Cayenne Software
(www.cayennesoft.com)
▪ AMC Designer, Poseidon, Visual Design, Spark
(www.cayennesoft.com)
• 17 ▪ …
▪ UML se décompose en plusieurs parties :

1. Les vues : ce sont les observables du système.


Elles décrivent le système d'un point de vue donné, qui peut être
organisationnel, dynamique, temporel, architectural, géographique,
logique, etc.
En combinant toutes ces vues, il est possible de définir
(ou retrouver) le système complet.

2. Les diagrammes : ce sont des ensembles d'éléments graphiques.


Ils décrivent le contenu des vues, qui sont des notions abstraites.
Ils peuvent faire partie de plusieurs vues.

3. Les modèles d'éléments : ce sont les éléments graphiques des


diagrammes.
Les Diagrammes
▪ UML permet au moyens de diagrammes, de représenter
▪ le cahier des charges du projet,

▪ les classes et la manière dont elles s’agencent entre elle.

▪ Afin d’accompagner le projet tout au long de sa vie il permet,


également, de scruter le programme quand celui-ci s’exécute,
▪ soit en suivant les envois de messages,

▪ soit en suivant à la trace un objet particulier et ses


changements d’état.
Les Diagrammes (suite)

▪ Il permet, finalement, d’organiser les fichiers qui constituent le


projet, ainsi que de penser leur stockage et leur exécution dans
les processeurs.

II y a un diagramme pour chaque phase du projet


Les Diagrammes (suite)

▪ UML définit 13 types de diagrammes – 3 vues


Les Diagrammes (suite)
Nous étudierons les diagrammes suivants :

➢ Diagramme de Cas d’Utilisation User Case Diagram


Vue comportementale / fonctionnelle

➢ Diagramme de Composant Component Diagram


Système vue sous forme de composants réutilisables

➢ Diagramme de Classe Class Diagram


Vue statique de l’architecture du programme : les règles

➢ Diagramme de Séquence Sequence Diagram


Vue dynamique du programme, dans son exécution

➢ Diagramme d’Activité Activity Diagram


Vue des traitements
Diagramme de Cas d’Utilisation – Use Case Diagram

85
© Copyright Nat System 2016
Diagramme de Cas d’Utilisation – Use Case Diagram
▪ C’est la vue de l’utilisateur réputé « non informaticien » - MOA.
▪ Permet de préparer les cas de test.
▪ Il capture le comporte d’un système, d’un sous-système ou tout
simplement d’un comportement tel qu’un utilisateur extérieur
le voit.

▪ Acteur : l’utilisateur du distributeur


▪ Cas d’utilisation : retirer de l’argent
▪ Relation : bidirectionnelle entre
le client et le distributeur

86
© Copyright Nat System 2016
Diagramme de Cas d’Utilisation : Les Relations

▪ Relation d’association
▪ Bidirectionnelle (Association)
▪ Unidirectionnelle (DirectedAssociation)

▪ Relation entre cas d’utilisation


▪ L’inclusion (Include) : cas d’utilisation dans un autre cas
▪ L’Extension (Extend) : extension d’un cas sur un autre
▪ L’héritage (Generalization)

▪ Relation entre acteurs


▪ L’héritage (Generalization)
Diagramme de Cas d’Utilisation : Les Relations (suite)

▪ L’Inclusion (Include) :
Un cas A inclut un cas B si le comportement décrit par le cas A inclut le
comportement du cas B : le cas A dépend de B.
Lorsque A est sollicité, B l’est obligatoirement,
comme une partie de A.

▪ L’Extension (Extend) :
Un cas d’utilisation A étend un cas d’utilisation B
lorsque le cas d’utilisation A peut être
appelé au cours de l’exécution du cas d’utilisation B.
Exécuter B peut éventuellement entraîner l’exécution de A.
Diagramme de Cas d’Utilisation : Liens entre acteurs

▪ Relation d’association

Logiciel de partage de fichier

▪ Relation de généralisation
Le Directeur des ventes « hérite »
du Préparateur de commande

Dans cet exemple, le Directeur


des ventes peut préparer une
commande : le Directeur peut
se substituer au Préparateur.
Système de vente par correspondance
Diagramme de Cas d’Utilisation (suite)

▪ Note
Une note contient une information textuelle comme un commentaire, un
corps de méthode ou une contrainte.

▪ Attention : On n’a pas l’ordre d’exécution des fonctionnalités.

Il peut être nécessaire d’indiquer dans une note « scénario » l’ordre


d’exécution des fonctionnalités.

▪ Le Diagramme de Séquence va nous permettre de représenter


graphiquement un scénario.

Vous aimerez peut-être aussi