Vous êtes sur la page 1sur 43

Chapitre-1: U-M-L

Analyse et Conception de Systèmes


Orientés Objet

Presented by M. Aboubicrine Dieng -2023 Université SupDéco


Unified Modeling Language OBJECTIFS DU COURS

 Introduction à l’ingénierie du logiciel

 Principes et objectifs

 Modélisation avec UML(Unified Modeling Language)

 Comprendre les concepts clés de l’approche orientée objet.

 Savoir aborder un problème en se basant sur une approche orientée objet.

 Maîtriser les principaux diagrammes UML qui permettent de concevoir


un système orienté objet. 2

Presented by M. Aboubicrine Dieng


Unified Modeling Language MOTIVATIONS (1/2)

 Systèmes d’information d’une entreprise est composé de matériels et de


logiciels
 80 % de logiciel (software)
 20 % de matériel (hadware)
 Depuis quelques années, la fabrication du matériel est assurée par quelques
fabricants seulement
 Le matériel est relativement fiable
 Le marché est standardisé
 Les problèmes liés à l’informatique sont essentiellement des problèmes de
Logiciel 3

Presented by M. Aboubicrine Dieng


Unified Modeling Language MOTIVATIONS (2/2)

 Un logiciel ou une application est un ensemble de programmes,


qui permet à un ordinateur ou à un système informatique
d’assurer une tâche ou une fonction particulière.
 logiciel de comptabilité, logiciel de gestion des prêts, etc.

Suivant leur taille, ils peuvent être développés par une personne
seule, une petite équipe, ou un ensemble d’équipes coordonnées.
Le développement de grands logiciels par de grandes équipes
pose d’importants problèmes de conception et de coordination.
4

Presented by M. Aboubicrine Dieng


Unified Modeling Language LE GÉNIE LOGICIEL

 Domaine de recherche défini en 1968 lors de la conférence de l’OTAN à


Garmish.
 C’est un métier d’ingénieur qui requiert des principes, des méthodes, des
techniques et des outils.
 Le Génie Logiciel doit prendre en compte les spécificités du logiciel
pour atteindre des qualités telles que
 La correction
 La performance
 La disponibilité
 L’utilisabilité, etc. 5

Presented by M. Aboubicrine Dieng


LE GÉNIE LOGICIEL
 Les principes et techniques de GL s’appliquent mieux aux
Unified Modeling Language

projets de grande taille


Regroupant plusieurs personnes
Devant fournir plusieurs versions
Généralement de longue durée
 Ceci met en évidence la différence entre
 La programmation
 une activité personnelle
Le génie logiciel
6

 une activité d’équipe au sein d’un projet


Presented by M. Aboubicrine Dieng
DÉFINITIONS DU GL
 Le génie logiciel est une démarche d’ingénierie qui traite tous les aspects
Unified Modeling Language
de la production de logiciels.
 du cahier des charges jusqu'aux activités de maintenance.
 dépasse le cadre purement technique.
 Le GL vise à assurer la production de logiciels en respectant les aspects
économiques.
 Coût, échéance, qualité
 Appliquer des connaissances scientifiques à la production de
programmes et de la documentation nécessaire à leur développement,
mise en œuvre et maintenance (Boehm).
 Ingénierie: Proposer des solutions pratiques en appliquant des
connaissances scientifiques pour construire des produits de qualités à un
7

coût et dans les délais déterminés. Presented by M. Aboubicrine Dieng


Unified Modeling Language OBJECTIFS DU GL

 Répondre à un problème causé par deux constatations:

 le logiciel n’était pas fiable,

 il était incroyablement difficile de réaliser dans des délais prévus des


logiciels satisfaisant leur cahier de charges.

 Optimiser le coût de développement du logiciel

 Comment faire des logiciels de qualité?

 Quelles métriques pour jauger la qualité d’un logiciel?


8

Presented by M. Aboubicrine Dieng


Unified Modeling Language QUALITÉS D’UN LOGICIEL
 Utilité

 Utilisabilité

 Fiabilité

 Interopérabilité et compatibilité

 Performance

 Portabilité

 Réutilisabilité
9

 Facilité de maintenance Presented by M. Aboubicrine Dieng


QUALITÉS D’UN LOGICIEL (1/9)
 Utilité:
Unified Modeling Language

 Adéquation entre le besoin effectif de l’utilisateur et les fonctionnalités


offertes par le logiciel

Remplir exactement ses fonctions définies par le cahier des charges et


les spécifications.

 Comment y parvenir?

Communication avec l’utilisateur: en amont, durant et en aval


o Via un langage compréhensible
10

 Travail avec rigueur et avec abstraction Presented by M. Aboubicrine Dieng


QUALITÉS D’UN LOGICIEL (2/9)
 Utilisabilité:
Unified Modeling Language
« Efficacité, convivialité et satisfaction avec laquelle les utilisateurs
accomplissent des tâches dans un environnement particulier »
 Facilité d’apprentissage
 Comprendre ce que l’on peut faire avec le logiciel et savoir le
faire
 Documentation bien rédigée
 Facilité d’utilisation
 Importance de l’effort nécessaire pour interagir avec le logiciel
 Comment atteindre ce but?
Analyser le mode opératoire des utilisateurs 11

Adapter l’ergonomie du logiciel aux utilisateurs. Presented by M. Aboubicrine Dieng


QUALITÉS D’UN LOGICIEL (3/9)
 Fiabilité:
Unified Modeling Language
 Justesse, conformité
 Le logiciel est conforme à sa spécification, les résultats sont ceux
escomptés
 Robustesse, sûreté
 Le logiciel fonctionne convenablement en toutes circonstances, rien de
catastrophique ne peut survenir même en dehors des conditions
d’utilisations prévues.
 Solutions
 Utiliser des méthodes formelles, langage de programmation de haut
niveau
 Équipement matériel de qualité 12

 Vérification et tests (version alpha ou bêta) Presented by M. Aboubicrine Dieng


Unified Modeling Language QUALITÉS D’UN LOGICIEL (4/9)
 Interopérabilité et compatibilité:

 Un logiciel doit pouvoir interagir en synergie avec d’autres logiciels

 Solutions

 Bases de données (indépendance données/traitements)

 Externaliser certaines tâches en utilisant des middlewares

 Utiliser des formats standards (XML) et des protocoles de


communication normalisés (Corba)
13

Presented by M. Aboubicrine Dieng


Unified Modeling Language QUALITÉS D’UN LOGICIEL (5/9)
 Performance:

 Les logiciels doivent satisfaire aux contraintes de temps d’exécution,


de débit, exactitude et complétude des réponses

 Solutions

 Logiciels simples

 Veiller à la complexité des algorithmes et à leur validité

 Machines plus performantes


14

Presented by M. Aboubicrine Dieng


Unified Modeling Language QUALITÉS D’UN LOGICIEL (6/9)
 Portabilité:

 Un logiciel doit pouvoir fonctionner sur plusieurs plateformes

 Indépendance avec le système d’exploitation

 Indépendance avec le matériel (plus difficile)

 Compiler avec 32 bits et exécuter sur 64 bits n’est pas trivial

 Solutions

 Rendre le logiciel le plus possible indépendant de son environnement


d’exécution
15

 Machines virtuelles Presented by M. Aboubicrine Dieng


QUALITÉS D’UN LOGICIEL (7/9)
 Réutilisabilité:
Unified Modeling Language

 Réutiliser du code existant


 Applications, base de données, …
 Rendre le code réutilisable
Modulaire, échangeable,
Solutions
Abstraction, généricité (ex: MCD générique de gestion stock)
 Construire des logiciels à partir de composants
 « Design pattern »
16

Presented by M. Aboubicrine Dieng


Unified Modeling Language QUALITÉS D’UN LOGICIEL (8/9)

 Facilité de maintenance:
 La maintenance absorbe une très grande partie des efforts
Maintenance corrective: corriger les erreurs

 Maintenance adaptative: ajuster le logiciel en fonction de l’évolution


de son environnement

Maintenance perfective: accroître/améliorer les possibilités du logiciels

17

Presented by M. Aboubicrine Dieng


QUALITÉS D’UN LOGICIEL (9/9)
 Facilité de maintenance:
Unified Modeling Language

 Objectifs

 Réduire la quantité de maintenance corrective

 Rendre moins coûteuse les autres maintenances

 Solutions

 Réutilisabilité

 Vérification, tests

 Structures de données complexes et algos simples


18

 Anticiper les changements à venir Presented by M. Aboubicrine Dieng


QUELQUES PRINCIPES DU GL
 Généralisation
Unified Modeling Language

 regroupement d’un ensemble de fonctionnalités semblables en une


fonctionnalité paramétrable (généricité, héritage)

 Structuration

 façon de décomposer un logiciel (utilisation d’une méthode Bottom-up ou


top-down)

 Abstraction

 mécanisme qui permet de présenter un contexte en exprimant les éléments


pertinents et en omettant ceux qui ne le sont pas. 19

Presented by M. Aboubicrine Dieng


PHASES DE RÉALISATION D’UN
SYSTÈME D’INFORMATION

20

Presented by M. Aboubicrine Dieng


PHASES DE DÉVELOPPEMENT D’UN
LOGICIEL
Unified Modeling Language

 Définition des objectifs


 Analyse des besoins et faisabilité
 Spécifications ou conception générale
 Conception détaillée
 Codage (Implémentation ou programmation)
 Tests et validation
 Intégration
 Qualification (ou recette)
 Documentation
 Mise en production (déploiement) 21

 Maintenance Presented by M. Aboubicrine Dieng


Unified Modeling Language DÉFINITION DES OBJECTIFS
 Cet étape consiste à définir la finalité du projet et son inscription dans
une stratégie globale

22

Presented by M. Aboubicrine Dieng


ANALYSE DES BESOINS ET FAISABILITÉ
 Cerner les besoins des clients
Unified Modeling Language

 clarifier, filtrer et organiser les besoins, ne pas chercher l’exhaustivité

 Délimiter les frontières du système

 Spécifier le «quoi» fait par le logiciel

 Étudier la faisabilité du projet

 Faisabilité organisationnelle

 Faisabilité technique

 Faisabilité temporelle
23

 Faisabilité financière Presented by M. Aboubicrine Dieng


SPÉCIFICATIONS OU CONCEPTION
GÉNÉRALE
Unified Modeling Language

 Il s’agit de l’élaboration des spécifications de l’architecture


générale du logiciel
 De l'expression des besoins à la solution informatique
 Spécifications informatiques
 des fonctions

 des données
24

 des interfaces Presented by M. Aboubicrine Dieng


Unified Modeling Language CONCEPTION DÉTAILLÉE
 Cette étape consiste à définir précisément chaque sous-ensemble
du logiciel
 Elaboration des objets du domaine et de ceux de l’application
 Choix des structures de données et algorithmes

25

Presented by M. Aboubicrine Dieng


CODAGE (IMPLÉMENTATION OU
PROGRAMMATION)
Unified Modeling Language

 Traduction des fonctionnalités définies lors des phases de conception


dans un langage de programmation
 Création des modules et des bases de données
 un module pour réaliser une fonctionnalité donnée
 Adaptation et/ ou modification des modules existants
 Intégration des différents modules.
 Exemple : C++, Java, PHP, MySQL…

26

Presented by M. Aboubicrine Dieng


Unified Modeling Language TESTS VALIDATION
 Objectif de cette phase :
 tester/valider les différents artefacts logiciels

27

Presented by M. Aboubicrine Dieng


Unified Modeling Language TESTS VALIDATION
 Tests unitaires: permettent de vérifier individuellement que chaque sous-
ensemble du logiciel implémenté est conforme aux spécifications.

 Tests d’intégration: permettent de vérifier que tous les programmes testés


individuellement fonctionnent bien ensemble.

 Tests systèmes: permettent de vérifier que le système fonctionne correctement


dans les conditions réelles d’utilisation.

 Tests Alpha: faire tester le logiciel par le client sur le site de développement.

 Tests Bêta: faire tester le logiciel par le client sur le site de production.
28

Presented by M. Aboubicrine Dieng


TESTS VALIDATION-EXEMPLES DE
TECHNIQUES
Unified Modeling Language

29

Presented by M. Aboubicrine Dieng


Unified Modeling Language INTÉGRATION, QUALIFICATION
 Combiner les modules et vérifier le produit dans son ensemble
 Essentiellement un problème de test

30

Presented by M. Aboubicrine Dieng


Unified Modeling Language QUALIFICATION (OU RECETTE)

 Vérification de la conformité du logiciel aux spécifications initiales

31

Presented by M. Aboubicrine Dieng


Unified Modeling Language DOCUMENTATION
 Elle vise à produire les informations nécessaires pour l’utilisation du
logiciel et pour des développements ultérieurs

32

Presented by M. Aboubicrine Dieng


Unified Modeling Language MISE EN PRODUCTION ou DÉPLOIEMENT
 Le déploiement correspond à l’installation du produit fini chez le client
 Acteurs : programmeurs, ingénieurs du client, utilisateurs

33

Presented by M. Aboubicrine Dieng


Unified Modeling Language MAINTENANCE
 Elle comprend toutes les actions correctives (maintenance corrective) et
évolutives (maintenance évolutive) sur le logiciel

34

Presented by M. Aboubicrine Dieng


COMMENT RÉUSSIR UN
LOGICIEL?

35

Presented by M. Aboubicrine Dieng


Unified Modeling Language UTILISER DES MÉTHODES
 Objectifs
 Spécifier et planifier les étapes de l’analyse et de la conception
 Composition:
 une démarche: explique la procédure à suivre en exploitant au
mieux les principes de modularité, d’abstraction, de réutilisation,
etc.
 un formalisme de représentation: facilite la communication,
l’organisation et la vérification.
 des modèles: facilitent les retours sur la conception et l’évolution
des applications.
36

Presented by M. Aboubicrine Dieng


Unified Modeling Language NOTIONS DE MODÈLE
 C’est une représentation abstraite et simplifiée (i.e. qui exclut certains
détails) d ’ une entité (phénomène, processus, système, etc.) du monde
réel en vue de le décrire, de l’expliquer ou de le prévoir
 Nous construisons donc des modèles afin de mieux comprendre les
systèmes que nous développons
 Il permet de réduire la complexité d’un système en éliminant les détails
qui n ’ influencent pas son comportement de manière significative
 Il reflète ce que le concepteur croit important pour la compréhension et la
prédiction du phénomène modélisé
 Le code ne permet pas de simplifier/abstraire la réalité
37

Presented by M. Aboubicrine Dieng


EXEMPLES DE MODÈLES PRÉDICTIFS
Modèle météorologique: à partir de données d’observation (satellite . . .),
Unified Modeling Language

il permet de prévoir les conditions climatiques pour les jours à venir.

 Modèle économique: peut par exemple permettre de simuler l’évolution


de cours boursiers en fonction d’hypothèses macro-économiques
(évolution du chômage, taux de croissance . . .)

 Modèle démographique: définit la composition d’un panel d’une


population et son comportement, dans le but de fiabiliser des études
statistiques, d’augmenter l’impact de démarches commerciales, etc.
38

Presented by M. Aboubicrine Dieng


MÉTHODES D’ANALYSE ET DE
CONCEPTION
Unified Modeling Language

 Elles fournissent une méthodologie et des notations standards qui aident


à concevoir des logiciels de qualité
 Il existe de nombreuses méthodes:
 Méthodes fonctionnelles: hiérarchie de fonction
 SADT, SA-SD, etc.
 Méthodes systémiques: séparation des données et des traitements
 Merise, Entité Association, etc.
 Méthodes objets: intégration des données et des traitements dans un
objet unique
 OMT, OOSE, etc.
39

Presented by M. Aboubicrine Dieng


Unified Modeling Language TROP DE MÉTHODES ORIENTÉES OBJETS

 Entre 89 et 94 : le nombre de méthodes orientées objet est passé de 10 à

plus de 50

 Toutes les méthodes avaient pourtant d’énormes points communs (objets,

méthode, paramètres, …

 Au milieu des années 90, G. Booch, I. Jacobson et J. Rumbaugh ont

chacun commencé à adopter les idées des autres. Les 3 auteurs ont

souhaité créer un langage de modélisation unifié. 40

Presented by M. Aboubicrine Dieng


Unified Modeling Language HISTORIQUE

41

Presented by M. Aboubicrine Dieng


Unified Modeling Language Aujourd’hui

 UML est le langage de modélisation orienté objet le plus connu et le


plus utilisé au monde
 UML s’applique à plusieurs domaines
 UML n’est pas une méthode
 Peu d’utilisateurs connaissent le standard, ils ont une vision outillée
d’UML (Vision Utilisateur)
 5% forte compréhension, 45% faible compréhension, 50% aucune
compréhension
 UML est fortement critiqué car pas assez formel
 Le marché UML est important et s’accroît
42

 MDA, UML2.0, IBM a racheté Rational !!! Presented by M. Aboubicrine Dieng


43

Presented by M. Aboubicrine Dieng

Vous aimerez peut-être aussi