Chapitre2

Télécharger au format pptx, pdf ou txt
Télécharger au format pptx, pdf ou txt
Vous êtes sur la page 1sur 36

Université Djillali Liabés de Sidi Bel Abbés

Faculté des Sciences Exactes


Département d’Informatique

Génie Logiciel (L3-ISIL)


« software engineering »

Présenté par:
Djediden Mohamed
[email protected]
CHAPITRE 02-PARTIE 01

LA MODÉLISATION
Rappel sur la Conception
• La conception est un processus créatif visant à développer un logiciel.
• Elle permet d'établir une architecture pour le logiciel en le segmentant en
différentes unités, chacune responsable de fonctionnalités spécifiques.

Conception Globale Conception Détaillée


• Objectif : Fournir une • Objectif : Décrire
vue d'ensemble du précisément chaque
système. composant du système.
• Activités : • Activités :
• Décomposer le système • Spécifications des
en modules. composants (attributs et
• Définir les interfaces méthodes).
entre les modules. • Définir les algorithmes
• Établir l'architecture utilisés.
générale. • Gérer les erreurs et
exceptions.
Modélisation
La modélisation est le processus de création d'un modèle à l'aide d'un langage de
modélisation spécifique.
Modèle : une simplification de la réalité, une abstraction qui offre une vue subjective
d’un concept ou d’un objet.
Pourquoi modéliser un concept ou un objet ?
 Pour mieux le comprendre (comme en physique).
 Pour mieux le construire (comme en ingénierie).
Modélisation graphique

Principe : « Un beau dessin vaut mieux qu'un


long discours »
Pourquoi la Modélisation en génie logiciel ?

La modélisation = spécification + conception


Un modèle est une simplification de la réalité qui aide à mieux comprendre le système
à développer.
Il permet de :
 Visualiser le système tel qu'il est ou tel qu'il devrait être.
 Valider le modèle auprès des clients pour s'assurer qu'il répond à leurs attentes.
 Spécifier les structures de données et le comportement du système.
 Servir de guide pour la construction du système.
 Documenter le système ainsi que les décisions prises durant le processus.
 Elle facilite la réalisation d'un logiciel en répondant aux besoins du client.
La Modélisation en génie logiciel ?

Il existe principalement deux approches de modélisation (démarches


de conception) pour le développement d'un logiciel.
Ces approches sont :
 L’approche fonctionnelle
 L’approche orientée objet.
Approche fonctionnelle
• Cette approche, inspirée des langages de programmation procéduraux, débute par
un problème complexe que l'on décompose en sous-problèmes.
• Chacun de ces sous-problèmes est ensuite divisé en éléments plus simples jusqu'à
obtenir des tâches facilement compréhensibles et programmables.
• Cela donne lieu à un ensemble de fonctions interconnectées.
• Dans cette méthode, la fonction principale, qui résout le problème, définit
l'architecture du système.
• Bien que cette approche soit logique et ordonnée, facilitant la réduction de la
complexité, elle présente des limites.
• Elle ne favorise pas la réutilisation des composants existants et rend
l'évolution du logiciel plus difficile.
Approche fonctionnelle
Approche orientée objet
• L'approche orientée objet considère le logiciel comme une collection d'objets
distincts, chacun ayant ses propres caractéristiques.
• Ces caractéristiques incluent des attributs (données qui décrivent l'état de l'objet) et
des comportements (fonctions associées à l'objet).
• La fonctionnalité du logiciel résulte des interactions entre ces objets.
• Une spécificité de cette approche est qu'elle regroupe les données et les traitements
associés au sein d'un même objet.
• Contrairement à l'approche fonctionnelle, qui se concentre sur les processus,
l'approche orientée objet s'appuie sur la structure du système, voyant le logiciel
comme un ensemble d'objets interconnectés.
Comparaison (fonctionnelle-orientée objet)
Rappel sur les objets
Un objet est une entité fondamentale en programmation orientée objet.
Exemple : Étudiant : Nom, Prénom, Date de naissance,
Matricule ;CalculerAge(), S'inscrireCours(), CalculerMoyenne().
Il est caractérisé par :
1. Identité : Chaque objet possède une identité unique qui le différencie des
autres, indépendamment de son état. Cette identité est souvent construite à
partir d'un identifiant qui découle naturellement du contexte, comme un code
pour un produit ou un numéro de série pour une voiture.
2. Attributs : Les attributs représentent les données qui définissent l'objet. Ce
sont des variables qui conservent des informations sur son état.
3. Méthodes : Les méthodes décrivent le comportement de l'objet, englobant
l'ensemble des actions qu'il peut effectuer. Ces actions (opérations) sont
souvent liées aux attributs, car elles peuvent dépendre de leurs valeurs ou les
Rappel sur les classes
 Une classe regroupe un ensemble d'objets partageant une structure similaire
(liste des attributs) et un comportement identique (liste des méthodes).
 Les objets sont générés à partir de ces classes. Un objet d'une classe est
également désigné comme une instance de cette classe.
Concepts de base de l’orientée objet:
La conception orientée objet est basée sur trois principaux de concepts:
1. L’encapsulation
2. L’héritage
3. Le polymorphisme.

1-L'encapsulation consiste à cacher les détails internes d'un objet en définissant une
interface. Cette interface représente la façon dont les utilisateurs peuvent interagir
avec l'objet, en spécifiant les services offerts.
L'encapsulation signifie que pour modifier un attribut d'un objet(privés), on doit
passer par ses méthodes(get et set).
Cela garantit que les changements sont contrôlés et que l'intégrité des données est
préservée, car les méthodes peuvent inclure des vérifications ou des règles de gestion
avant d'apporter des
Concepts de base de l’orientée objet:
2-L'héritage est un mécanisme qui permet de transmettre les caractéristiques
(attributs et méthodes) d'une classe à une sous-classe.
Cela signifie qu'une classe peut être spécialisée en d'autres classes, en ajoutant des
caractéristiques spécifiques ou en adaptant certaines.
De plus, plusieurs classes peuvent être regroupées sous une classe générale, ce qui
permet de rassembler les caractéristiques communes d'un ensemble de classes.
Concepts de base de l’orientée objet:
3-Le polymorphisme désigne la capacité d'une méthode à s'appliquer à des objets de
classes différentes.
Cela permet d'utiliser une même interface ou méthode de manière interchangeable,
quel que soit le type d'objet.
Le polymorphisme améliore la généricité et, par conséquent, la qualité du code, car il
permet de traiter différents objets de manière cohérente sans connaître leur type exact
à l'avance.
Exemple : La méthode calculerSurface() permet de calculer la surface de différentes
formes. En appelant cette méthode sur un cercle ou un carré, on obtient le résultat
adapté, montrant ainsi le polymorphisme.
Cercle : calculerSurface() retourne 3.14×r^2.
Carré : calculerSurface() retourne coté×coté.
Les relations entre les classes
1. L'association est une relation entre deux classes où une classe utilise ou
interagit avec une autre. Cette relation peut être unidirectionnelle ou
bidirectionnelle. Une association indique donc qu'il peut y avoir des liens entre
des instances des classes associées.
Une association simple entre deux classes représente une relation structurelle entre
pairs, c'est-à-dire entre deux classes de même niveau conceptuel : aucune des deux
n'est plus importante que l'autre.
Les relations entre les classes
2. L'agrégation est une forme spéciale d'association qui représente une relation
"partie-tout".
Dans cette relation, une classe (le tout) contient une autre classe (la partie), mais la
partie peut exister indépendamment du tout.
Par exemple, une classe Équipe peut agréer plusieurs Joueurs. Si l'équipe est
dissoute, les joueurs peuvent continuer à exister.
Les relations entre les classes
3. La composition est une forme plus forte d'agrégation, où la partie ne peut pas
exister sans le tout.
Si le tout est détruit, la partie l'est aussi.
La suppression de A entraine la suppression de B
Par exemple, une classe Maison peut avoir une classe Chambre. Si la maison est
détruite, les chambres ne peuvent plus exister indépendamment.
Les relations entre les classes
La multiplicité d’une relation
Notation Description Exemple

1 La classe est en relation Une Personne a exactement un


avec un et un seul objet de Passeport.
l'autre classe.

1..* La classe est en relation Un Professeur enseigne au moins un


avec au moins un objet de ou plusieurs Cours.
l'autre classe.

0..* La classe est en relation Une Bibliothèque peut avoir 0 ou


avec 0 ou plusieurs objets plusieurs Livres.
de l'autre classe.

0..1 La classe est en relation Une Personne peut avoir au plus un


avec au plus un objet de Téléphone (mais peut aussi n'en
l'autre classe. avoir aucun).
La multiplicité d’une relation
CHAPITRE 02-PARTIE 02

MODÉLISATION AVEC UML


Historique
Années 80 : Introduction de la séparation entre données et traitements.
Développement de méthodes pour organiser la programmation fonctionnelle, comme
Merise.
Début des années 90 : Émergence de la programmation orientée objet, nécessitant de
nouvelles méthodologies.
Plus de 50 méthodes de modélisation sont créées entre 1990 et 1995.
1994 : Accord sur trois méthodes principales :
• OMT (Object Modeling Technique) de James Rumbaugh : représente les aspects
statiques et dynamiques d’un système.
• OOD (Object-Oriented Design) de Grady Booch : introduit le concept de packages
pour organiser les classes.
• OOSE (Object-Oriented Software Engineering) de Ivar Jacobson : se concentre sur
les besoins des utilisateurs.
Historique
Création d'UML-Unified Modeling Language -(Langage de Modélisation Unifié)
Les "3 Amigos" (Booch, Rumbaugh et Jacobson) collaborent pour développer une
méthode commune.
Reconnaissance de l'importance de l'analyse et de la conception en plus du
développement.
1995 : Publication de la version 0.8 d'UML par Grady Booch et James Rumbaugh.
1996 : Ivar Jacobson rejoint Grady Booch et James Rumbaugh chez Rational pour
continuer à travailler sur UML.
1997 : UML est officiellement reconnu comme un standard de modélisation pour les
systèmes d’information orientés objet par l'OMG (Object Management Group).
UML est adopté dans divers secteurs, notamment :
Systèmes d’information ,Télécommunications, défense , Transport…
Historique

UML 2.5 a été publié en octobre 2012 en tant que


version "en cours" et a été officiellement lancé en
juin 2015.
La version formelle 2.5.1 a été adoptée en
décembre 2017.
UML?
• La description de la programmation orientée objet met en évidence l'importance
du travail conceptuel requis, notamment la définition des classes, de leurs
relations, des attributs et des méthodes, ainsi que des interfaces.
• Avant de se lancer dans l'écriture du code d'une application, il est essentiel
d'organiser ses idées, de les documenter, puis de planifier la réalisation en
définissant les modules et les étapes à suivre.
• Cette phase préparatoire, qui précède l'écriture proprement dite, est ce que l'on
appelle la modélisation, et son résultat est un modèle.
• UML fournit les éléments nécessaires pour construire des modèles qui serviront
de langage pour le projet.
• UML n'est pas une méthode normative, c'est-à-dire qu'il ne définit pas des étapes
précises pour la modélisation.
• Ses créateurs ont choisi de ne pas établir de méthode en raison de la diversité des
contextes.
• Au lieu de cela, UML propose un langage graphique pour représenter et
communiquer les différents aspects d'un système d'information, accompagné de
textes explicatifs.
UML?

UML est un langage graphique qui permet de représenter et


communiquer les différents aspects d'un système d'information,
sans définir de méthode précise pour la modélisation.
Il offre des vues partielles d'un système complexe, facilitant ainsi
la compréhension et la documentation du projet.
Les diagrammes UML
UML (Unified Modeling Language) permet de représenter un logiciel sous ces
différentes perspectives grâce à divers types de diagrammes.
Chaque vue offre un angle spécifique sur le système, facilitant la compréhension et la
communication entre les développeurs et les parties prenantes.
Voici comment UML aborde chacune de ces vues :
1.Vue des cas d'utilisation : Représentée par des diagrammes de cas d'utilisation,
montrant les interactions entre les acteurs et le système.
2.Vue logique : Utilise des diagrammes de classes pour décrire les classes, leurs
attributs et méthodes, ainsi que les relations entre elles.
3.Vue d'implantation : Illustrée par des diagrammes de composants, détaillant les
relations et les dépendances entre les différents modules du logiciel.
4.Vue des processus : Peut être modélisée à l'aide de diagrammes d'activités ou
d'états-transitions, montrant la dynamique et le flux des opérations au sein du
système.
5.Vue de déploiement : Représentée par des diagrammes de déploiement, illustrant
comment le logiciel est déployé dans un environnement matériel et comment les
composants interagissent.
Les diagrammes UML
• UML comprend 14 types de diagrammes, chacun offrant une vue différente
sur des aspects spécifiques d'un système d'information.
• Ces diagrammes sont classés en deux grands groupes :
Les diagrammes UML
Les diagrammes UML –cas d’utilisation-
Les diagrammes UML –séquence-
Les diagrammes UML –Activité-
Les diagrammes UML –Classe-
Références
• Delphine Longuet : https://www.lri.fr/~longuet/Enseignements/16-17/L3-GLA/L3-Preuve2
• Stefano Zacchiroli : https://upsilon.cc/~zack/teaching/1011/gla/
• http://www.charlie-soft.com/Modelisation/GL1.ppt
• C. Ghezzi.Fundamentals of Software Engineering.Prentice Hall, 2nd edition, 2002.
• Farida BRAHIMI , Langage de modélisation unifié
UML , université Mohand Akli Oulhadj de Bouira
• https://laurent-audibert.developpez.com/Cours-UML/?page=introduction-modelisation-
objet#L1-3-2

Vous aimerez peut-être aussi