cours génie logiciel
Post on 20-Jun-2015
1.209 Views
Preview:
TRANSCRIPT
Introduction Génie Logiciel
Mr Alaya Raddaoui
AU. 2012/20131 Alaya Raddaoui
Faculté des sciences de Gafsa
Méthodes d’analyseet de conception
2Alaya Raddaoui
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
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
4Alaya Raddaoui
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
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
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
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
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
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
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
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
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
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
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
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
17
Les différents types delangages de
programmation
Alaya Raddaoui
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
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
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 sourceAlaya Raddaoui
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
22
Tests et mise au point
Alaya Raddaoui
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
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
Gestion de projet
25 Alaya Raddaoui
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
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
Structuration de l’équipe
Structure traditionnelle d’une équipe:
28 Alaya Raddaoui
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
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
Alaya Raddaoui31
U.M.L. en un clin d’oeil…
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, …)
Alaya Raddaoui33
Permet d’établir divers modèles du système à réaliserFournit des notations (semi-graphiques) : diagrammes…
Les diagrammes peuvent être enrichis par des textesUML 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
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 »)
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
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
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
Alaya Raddaoui38
Syntaxe des Classes et Instances en UML 2
Alaya Raddaoui39
Les attributsDe 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
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
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.
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…
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…
top related