3. La modélisation en général
Modèles :
Définition :
Un modèle est une représentation abstraite de la réalité
qui exclut certains détails du monde réel.
Utilité :
Reflète ce que le concepteur croit important pour la
compréhension et la prédiction du phénomène modélisé,
les limites du phénomène modélisé dépendent des
objectifs du modèle.
3 Alaya Raddaoui
4. Modèles :
Utilité (suite) :
Permet de réduire la complexité d’un phénomène en
éliminant les détails qui n’influencent pas son
comportement de manière significative.
Modélisation :
Définition :
Processus par lequel on arrive à élaborer un modèle
décrivant un système réel (ou un phénomène du monde
réel).
La modélisation en général
4
Alaya Raddaoui
5. Types de Modélisation :
Modélisation à priori :
Modéliser un système avant sa réalisation (le système
n’existe pas encore).
Objectifs :
Comprendre le fonctionnement du future système.
Mesurer et Maîtriser sa complexité.
Assurer sa cohérence.
Pouvoir communiquer au sein de l’équipe de réalisation.
La modélisation en général
5 Alaya Raddaoui
6. Types de Modélisation :
Modélisation à posteriori :
Modéliser un système après sa réalisation (le
système existe déjà).
Objectifs :
Corriger les erreurs dans l’ancien système.
Faire évoluer l’ancien système.
La modélisation en général
6 Alaya Raddaoui
7. Approches de modélisation pour le logiciel
Approche fonctionnelle :
Approche traditionnelle basée sur l’utilisation des
procédures et des fonctions.
Les grands programmes sont décomposés en sous-
programmes.
Approche orientée objets :
On identifie les éléments du système et on en fait des
objets.
On cherche à faire collaborer ces objets pour qu’ils
accomplissent la tâche voulue.
7 Alaya Raddaoui
8. Approches de modélisation pour le logiciel
Modélisation fonctionnelle :
Approche descendante :
La modélisation du système se base sur les fonctions, et
non pas sur les objets.
On commence par déterminer la fonction globale du
système.
Puis, on décompose la fonction globale du système en
plusieurs sous-fonctions jusqu’à obtenir des fonctions
élémentaires simples à programmer.
Il s’agit d’une démarche descendante.
8 Alaya Raddaoui
9. Approches de modélisation pour le logiciel
Démarche :
• Recenser les fonctionnalités à implanter
Résultat :
•Cahier des charges fonctionnel
On distingue:
•Fonctions de service : besoins des utilisateurs
•Fonctions techniques : requises pour implanter les
fonctions de service
Pour chaque fonction, préciser :
• Son importance
• Des critères de qualité
Application : (language de modélisation) SADT
Analyse fonctionnelle
9 Alaya Raddaoui
10. Approches de modélisation pour le logiciel
Présentation de S.A.D.T. (Structured Analysis and Design Technique)
Représentation sous la forme d’actigrammes :
Contrôle
Décomposition de la « boîte » Activité :
10 Alaya Raddaoui
11. Modélisation fonctionnelle :
Avantages :
Adéquate pour les petits logiciels et les système peu
complexes.
Démarche ordonnée et organisée.
Inconvénients :
Pose des problèmes de structuration de données, car elle est
orientée fonctions.
Produit des logiciels non réutilisables.
Produit des logiciels très difficile à les faire évoluer ou corriger.
Approches de modélisation pour le logiciel
11 Alaya Raddaoui
12. Approches de modélisation pour le logiciel
Modélisation orientée objets :
Approche fondée sur les objets :
Le modèle à produire est décrit en terme d’objets et
non pas en terme de fonctions.
On peut partir des objets du domaine (briques de
base) et remonter vers le système global.
On défini également les interactions et les
collaborations entre les objets du système.
Il s’agit essentiellement d’une approche ascendante.
12 Alaya Raddaoui
13. Démarche
•Analyser les objets intervenant dans le système
Résultat
•Diagramme de classes (objets)
• Ensemble des classes (objets) nécessaires
• Liens entre les classes (objets)
•Méthodes et éventuellement attributs des classes
Applications (languages de modélisation)
•OMT, BOOCH, OOSE, UML
Approches de modélisation pour le logiciel
13 Alaya Raddaoui
14. Modélisation orientée objets :
Avantages :
Démarche naturelle et logique.
Raisonnement par abstraction sur les objets du domaine.
Inconvénients :
Parfois moins intuitive que l’approche fonctionnelle.
Rien dans les concepts de base objets ne précise
comment modéliser la structure objet d’un système de
manière pertinente.
Approches de modélisation pour le logiciel
14 Alaya Raddaoui
15. Objectifs :
Définir la sémantique des concepts.
Définir une notation pour la représentation des concepts.
Définir des règles d’utilisation des concepts et de
construction.
Langages de modélisation :
Adaptés aux système procéduraux (MERISE, …).
Adaptés aux systèmes temps réel (ROOM, SADT, …).
Langages de modélisation
15 Alaya Raddaoui
16. Langages de modélisation
Langages de modélisation (suite):
Adaptés aux systèmes à objets (OMT, Booch, UML, …).
Ateliers de génie logiciel :
Présenter des outils pour la modélisation.
Le rôle de ces outils est primordial pour l’utilisabilité en
pratique des langages ( exemple Rational Rose )
16 Alaya Raddaoui
18. 18
Langages impératifs
•programme = suite d’instructions (éventuellement parallèles)
• exemples : C, C++, ADA, PASCAL, BASIC, etc.
Langages fonctionnels
• programme = composition de fonctions
• exemples : LISP, SISP, CAML, SML
Langages logiques
• programme = ensemble de faits et de règles d’inférence
• exemples : PROLOG, Mercury
Taxonomie de base
Alaya Raddaoui
19. 19
Niveaux de langages
Langage machine / Assembleur
Langage « intermédiaires »
• exemple : C
• structure de l’implantation doit encore être connue
Langage « évolué »
•exemple : ADA, Eiffel, Perl
•structure interne complètement masquée
Langage de quatrième génération (L4G)
Alaya Raddaoui
20. 20
Classification selon le code exécuté
Langage interprété (ex. Perl)
• code exécuté = le source du programme
• chaque instruction est d’abord traduite puis exécutée
• exécution lente, mais mise au point aisée
Langage compilé (ex. C)
•code exécuté = une version en langage machine du
programme
• le source est traduit une fois pour toute
• exécution rapide, mais recompilation nécessaire
à chaque modification
Langage semi-interprété (ex. Java)
•code exécuté = traduction en un pseudo-assembleur du source
Alaya Raddaoui
21. 21
Les langages orientés objet
Idée de base
•Toute donnée est une structure à laquelle sont rattachées
des fonctions appelées méthodes
• Programme = ensemble de données reliées entre elles
Langages concernés : tous
•Perl (impératif interprété)
•Objetive Caml (fonctionnel interprété)
•Eiffel (impératif compilé)
•Java (impératif semi-interprété)
Alaya Raddaoui
23. 23
• Principe du test
- des données en entrée
- un résultat attendu
- une exécution du logiciel obtenu sur les données
- comparaison du résultat obtenu avec le résultat attendu
•Interprétation du test
- si échec : il y a un problème
- si réussite : ??
La notion de test
jeu de test
Alaya Raddaoui
24. 24
Tests unitaires :
•vérification du bon comportement d’une fonction, d’un
module, par rapport à sa spécification
Tests d’intégration :
• vérification du bon fonctionnement de la collaboration entre
modules
Tests fonctionnels :
•vérification globale d’une fonctionnalité du système décrite
lors de l’expression des besoins
Les niveaux de test
Alaya Raddaoui
26. Les différentes tâches
Phases préliminaires
- Estimation de charge
- Ecriture du PQL
- Constitution de l’équipe
En cours de développement
- Mise en place des différentes phases (de la
spécification aux tests)
- Gestion des anomalies
- Contrôle de la qualité
- Suivi de projet26 Alaya Raddaoui
27. Types de projet
D’après Boehm, Trois types de projet :
– Organiques (environnement stable, pas de contraintes
temps réel)
exemples : compilateur, calcul scientifique
– Médians (environnement instable, contraintes temps réel)
exemples : automates programmables, systèmes de régulations
– Imbriqués (environnement très instable, performances
en temps et précision difficiles à atteindre)
27 Alaya Raddaoui
29. Rôles des intervenants (1)
Chef de projet :
- mise en œuvre de la qualité
- assurer le suivi du projet
- coordonner les équipes
- diriger les différentes phases (sauf conception détaillée
et tests unitaires)
Chef d’équipe :
- diriger la conception détaillée et les tests unitaires
- assurer l’interface entre son équipe et le chef de projet
29 Alaya Raddaoui
30. Responsable Assurance Qualité
- Mettre au point le Plan Qualité Logiciel
- Définir les mesures nécessaires et leur interprétation
- Mener le suivi de la qualité
- Indépendant du Chef de Projet
Responsable Gestion de Configuration
- Gérer les différentes versions, les noms, les anomalies
Responsable d’Affaires
- Chiffrer les évolutions envisagées
- Négocier avec le client
Rôles des intervenants (2)
30 Alaya Raddaoui
32. Alaya Raddaoui32
Pourquoi UML ? UML: Version 1.1 en 1997, version 2.0 en 2005.
les méthodes orientées objets sont actuellement en vogue
UML est bien adapté (classes, interfaces, héritage, …)
Pas forcément associé à la programmation objet, peut servir
dans un contexte plus large:
Description des aspects statique (représentation des données)
et dynamiques (comportements + évènements)
Notation devenue un standard de fait Synthèse de notations
antérieures (OMT, OOA/OOD, OOSE, …)
Définie et maintenue par l’OMG (http://www.omg.org)
Consortium de spécification (IBM, Sun, Oracle, HP, Boeing, BEA,…)
À la base de nombreux standards (CORBA, SOAP, MDA, …)
33. Alaya Raddaoui33
Permet d’établir divers modèles du système à réaliser
Fournit des notations (semi-graphiques) : diagrammes…
Les diagrammes peuvent être enrichis par des textes
UML ne fournit pas le mode d’emploi
Quel usage ?
Graphique => outil de communication possible avec les
clients
Modèles partagés par l’équipe de développement
Plusieurs modèles selon les étapes, dans la même
notation
UML se veut
Universel (limité à une notion discrète du temps)
Extensible (via des « stéréotypes » et des « profiles »
Couvre le développement de l’analyse à la conception
UML = Unified Modeling Language
34. Alaya Raddaoui34
Qu’est-ce que UML ?
UML, Version 1.1 : 9 types de diagrammes
3 vues différentes :
UML Version 2.0 ajoute 4 types de diagrammes :
Diagrammes de structure composite, de communication, de paquetages,
de contraintes temporelles (« timing »)
35. Alaya Raddaoui35
Les « cas d’utilisation » en UML 2
Un « cas d'utilisation » :
une fonctionnalité du système
déclenchée par un acteur extérieur
Acteur : tiers qui joue un rôle
En interagissant avec le système :
Il envoie des données / signaux au système
et/ou en reçoit des informations
Il est extérieur au système
36. Alaya Raddaoui36
Les cas d’utilisation décrivent le comportement du système, les interactions
qu’il a avec l’extérieur.
Un système ne fait pas des choses spontanément, mais en réaction à une sollicitation
initiale par un « acteur » extérieur
On doit préciser un cas d’utilisation
en décrivant les flots d’événements à l’aide d’un texte ;
À l’aide de diagrammes de séquences pour préciser graphiquement ces flots
Il faut prendre en compte
Les cas normaux, leurs variantes éventuelles
Les cas « d’erreurs »
Il faudra aussi mettre en évidence les interactions entre fonctionnalités des cas
d’utilisation (diagrammes de séquence)
Les « cas d’utilisation » en UML 2
37. Alaya Raddaoui37
Diagrammes de séquence
Ils correspondent à des « diagrammes système »
le système est vu comme une « boite noire »
Échanges de messages entre les acteurs et le système
jamais entre acteurs (pas du ressort du système !)
ni entre éléments internes au système (conception)
Représentation de la chronologie des échanges
Pas de boucle, branchement !
Un chemin principal, des alternatives,
des cas d’exception, des commentaires
39. Alaya Raddaoui39
Les attributs
De type simple (int, boolean, …) ou primitif (Date) uniquement !
Les liens avec les autres classes d’intérêt sont représentés par les associations
Dans le modèle d’analyse, on les considère comme public (on raffinera à la
conception, ainsi que les méthodes d’accès)
On ne distingue pas les attributs « dérivés » des autres
Les opérations:
dans un premier temps, on ne considère que les opérations principales (liées
aux cas d’utilisation)
on ne les rattache pas à une classe particulière, donc on ne se
préoccupe pas des méthodes à ce niveau (quels paramètres ?)
Syntaxe des Classes et Instances en UML 2
40. Alaya Raddaoui40
Syntaxe des Classes et Instances en UML 2
Cardinalités dans les associations: de la forme
1, 2, ou un nombre entier précis (pas une expression !)
* : un nombre quelconque, éventuellement nul
un intervalle comme 1..*, 0..1, 1..3, (pas 1..N)
on donnera systématiquement les cardinalités
41. Alaya Raddaoui41
Exemple: En guise de cahier des charges…
Une station service ATTOL a plusieurs postes de distribution
soit automatiques (par carte bancaire) ouverts 24h/24
soit manuels (utilisables seulement si la station est ouverte)
Chaque poste est identifié par un numéro.
Chaque poste peut délivrer 3 sortes de carburant. A chaque instant, il en délivre au
plus une sorte.
Chaque poste est muni de 3 compteurs
la quantité de carburant servie
le prix au litre
le prix à payer (qui ne change pas pendant la journée)
Les compteurs affichent 0 s’il n’y a pas de distribution en cours.
42. Alaya Raddaoui42
La station dispose de 3 citernes (une par type de carburant) avec
le niveau courant de carburant,
un niveau d’alerte pour prévenir le gérant qu’elle va être vide
un niveau minimal qui, une fois atteint, ne permet plus de délivrer du
carburant.
Les niveaux d’alerte et minimaux sont les mêmes pour toutes les citernes.
Le système doit garder une trace de tous les achats effectués depuis la
dernière ouverture de la station.
Un opérateur ouvre la station quand il arrive et la ferme quand il part
Exemple: En guise de cahier des charges…
43. Alaya Raddaoui43
Pour utiliser un poste automatique :
Un client insère sa carte bancaire et tape son code
Le système authentifie la carte auprès du service bancaire
En cas de succès, le client choisit un type de carburant et se sert d’un certain
nombre de litres.
Le système enregistre l’achat, envoie un ordre de débit au service bancaire et
remet à zéro les compteurs du poste.
Pour utiliser un poste manuel :
le client choisit son carburant et se sert.
Les caractéristiques de l’achat sont envoyées à l’opérateur.
Lorsque le client a payé en indiquant son numéro de pompe, le pompiste
enregistre l’achat et remet à zéro les compteurs du poste
Exemple: En guise de cahier des charges…