SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Introduction Génie Logiciel
Mr Alaya Raddaoui
AU. 2012/20131 Alaya Raddaoui
Faculté des sciences de Gafsa
Méthodes d’analyse
et de conception
2
Alaya 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
4
Alaya 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 de
langages 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 source
Alaya 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é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
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 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
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…

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Génie Logiciel : les tests
Génie Logiciel : les testsGénie Logiciel : les tests
Génie Logiciel : les tests
 
Cours Génie Logiciel - Introduction
Cours Génie Logiciel - IntroductionCours Génie Logiciel - Introduction
Cours Génie Logiciel - Introduction
 
Maintenance logicielle
Maintenance logicielleMaintenance logicielle
Maintenance logicielle
 
cycle de vie
cycle de vie cycle de vie
cycle de vie
 
CM processus-unifie
CM processus-unifieCM processus-unifie
CM processus-unifie
 
Cycles de vie d'un logiciel
Cycles de vie d'un logicielCycles de vie d'un logiciel
Cycles de vie d'un logiciel
 
Introduction au génie logiciel
Introduction au génie logicielIntroduction au génie logiciel
Introduction au génie logiciel
 
2 TUP
2 TUP2 TUP
2 TUP
 
Modèle en cascade
Modèle en cascadeModèle en cascade
Modèle en cascade
 
Génie Logiciels : Introduction aux architectures
Génie Logiciels : Introduction aux architecturesGénie Logiciels : Introduction aux architectures
Génie Logiciels : Introduction aux architectures
 
Génie Logiciel : Conception
Génie Logiciel : ConceptionGénie Logiciel : Conception
Génie Logiciel : Conception
 
Chp1 - Introduction à l'AGL
Chp1 - Introduction à l'AGLChp1 - Introduction à l'AGL
Chp1 - Introduction à l'AGL
 
Metrique
MetriqueMetrique
Metrique
 
Test de logiciels
Test de logiciels Test de logiciels
Test de logiciels
 
Qualification Et Cycle De Vie Du Logiciel
Qualification Et Cycle De Vie Du LogicielQualification Et Cycle De Vie Du Logiciel
Qualification Et Cycle De Vie Du Logiciel
 
Métriques de qualité logicielle
Métriques de qualité logicielleMétriques de qualité logicielle
Métriques de qualité logicielle
 
Methodes de gestion de projets - introduction au processus unifié
Methodes de gestion de projets - introduction au processus unifiéMethodes de gestion de projets - introduction au processus unifié
Methodes de gestion de projets - introduction au processus unifié
 
Exposé qualité et test
Exposé qualité et test Exposé qualité et test
Exposé qualité et test
 
UML4
UML4UML4
UML4
 
les metriques de processus, de produit et de qualité
les metriques de processus, de produit et de qualitéles metriques de processus, de produit et de qualité
les metriques de processus, de produit et de qualité
 

Andere mochten auch

Informe salida páramo de guacheneque
Informe salida páramo de guachenequeInforme salida páramo de guacheneque
Informe salida páramo de guachenequeDonseebasH
 
Diseño instruccional sesión 5
Diseño instruccional sesión 5Diseño instruccional sesión 5
Diseño instruccional sesión 5bettypach
 
PRESENTACIÓN DE FUNCIONANDO CON LAS FUNCIONES
PRESENTACIÓN DE FUNCIONANDO CON LAS FUNCIONESPRESENTACIÓN DE FUNCIONANDO CON LAS FUNCIONES
PRESENTACIÓN DE FUNCIONANDO CON LAS FUNCIONESprofetorres
 
Consejos para escribir cuentos tercero
Consejos para escribir cuentos terceroConsejos para escribir cuentos tercero
Consejos para escribir cuentos terceromariel2318
 
Psicopedagogía
PsicopedagogíaPsicopedagogía
PsicopedagogíaDivic04
 
Ppt comunicación enero
Ppt comunicación eneroPpt comunicación enero
Ppt comunicación eneromarlindacrespo
 
2014 10 bilan politiquecongresavignon20141
2014 10 bilan politiquecongresavignon201412014 10 bilan politiquecongresavignon20141
2014 10 bilan politiquecongresavignon20141Francis Mené
 
LA RADIO TECNOLOGÍA II
LA RADIO TECNOLOGÍA IILA RADIO TECNOLOGÍA II
LA RADIO TECNOLOGÍA IIantonirc11
 
Tempête klaus zone sud
Tempête klaus zone sudTempête klaus zone sud
Tempête klaus zone sudFrancis Mené
 
Couleurs inde
Couleurs indeCouleurs inde
Couleurs indeMabe54
 
Caida de-las-torres-gemelas-el-11-de-septiembre-de-2001
Caida de-las-torres-gemelas-el-11-de-septiembre-de-2001Caida de-las-torres-gemelas-el-11-de-septiembre-de-2001
Caida de-las-torres-gemelas-el-11-de-septiembre-de-2001Iris Tolentino Fuentes
 
La violencia de genero
La violencia de generoLa violencia de genero
La violencia de generoSinPelosL
 
10 prédictions d'expérience client à ne pas rater en 2016 !
10 prédictions d'expérience client à ne pas rater en 2016 !10 prédictions d'expérience client à ne pas rater en 2016 !
10 prédictions d'expérience client à ne pas rater en 2016 !Qubit
 

Andere mochten auch (20)

Tipos de virus
Tipos de virusTipos de virus
Tipos de virus
 
Informe salida páramo de guacheneque
Informe salida páramo de guachenequeInforme salida páramo de guacheneque
Informe salida páramo de guacheneque
 
Diseño instruccional sesión 5
Diseño instruccional sesión 5Diseño instruccional sesión 5
Diseño instruccional sesión 5
 
PRESENTACIÓN DE FUNCIONANDO CON LAS FUNCIONES
PRESENTACIÓN DE FUNCIONANDO CON LAS FUNCIONESPRESENTACIÓN DE FUNCIONANDO CON LAS FUNCIONES
PRESENTACIÓN DE FUNCIONANDO CON LAS FUNCIONES
 
Consejos para escribir cuentos tercero
Consejos para escribir cuentos terceroConsejos para escribir cuentos tercero
Consejos para escribir cuentos tercero
 
Psicopedagogía
PsicopedagogíaPsicopedagogía
Psicopedagogía
 
Ppt comunicación enero
Ppt comunicación eneroPpt comunicación enero
Ppt comunicación enero
 
Museo de ciencias
Museo de cienciasMuseo de ciencias
Museo de ciencias
 
GRADINS POUR CHORALE
GRADINS POUR CHORALEGRADINS POUR CHORALE
GRADINS POUR CHORALE
 
2014 10 bilan politiquecongresavignon20141
2014 10 bilan politiquecongresavignon201412014 10 bilan politiquecongresavignon20141
2014 10 bilan politiquecongresavignon20141
 
La réussite scolaire et les compétences...
La réussite scolaire et les compétences...La réussite scolaire et les compétences...
La réussite scolaire et les compétences...
 
LA RADIO TECNOLOGÍA II
LA RADIO TECNOLOGÍA IILA RADIO TECNOLOGÍA II
LA RADIO TECNOLOGÍA II
 
Tempête klaus zone sud
Tempête klaus zone sudTempête klaus zone sud
Tempête klaus zone sud
 
Tarea 1 UD. 1
Tarea 1 UD. 1Tarea 1 UD. 1
Tarea 1 UD. 1
 
Parte 2
Parte 2Parte 2
Parte 2
 
Couleurs inde
Couleurs indeCouleurs inde
Couleurs inde
 
Redes
RedesRedes
Redes
 
Caida de-las-torres-gemelas-el-11-de-septiembre-de-2001
Caida de-las-torres-gemelas-el-11-de-septiembre-de-2001Caida de-las-torres-gemelas-el-11-de-septiembre-de-2001
Caida de-las-torres-gemelas-el-11-de-septiembre-de-2001
 
La violencia de genero
La violencia de generoLa violencia de genero
La violencia de genero
 
10 prédictions d'expérience client à ne pas rater en 2016 !
10 prédictions d'expérience client à ne pas rater en 2016 !10 prédictions d'expérience client à ne pas rater en 2016 !
10 prédictions d'expérience client à ne pas rater en 2016 !
 

Ähnlich wie Cours génie logiciel

1_Assurance_Qualit_et_Gnie_Logiciel.ppt
1_Assurance_Qualit_et_Gnie_Logiciel.ppt1_Assurance_Qualit_et_Gnie_Logiciel.ppt
1_Assurance_Qualit_et_Gnie_Logiciel.ppthbadir
 
Modelisation agile 03122011
Modelisation agile  03122011Modelisation agile  03122011
Modelisation agile 03122011agnes_crepet
 
Introduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMAIntroduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMALoic Yon
 
Support de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdfSupport de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdfYasushiTsubakik
 
DesignPatternsISI.pdf
DesignPatternsISI.pdfDesignPatternsISI.pdf
DesignPatternsISI.pdfandre543581
 
Méthode d’implémentation efficace des modèles PAC et PAC-Amodeus à l’aide de ...
Méthode d’implémentation efficace des modèles PAC et PAC-Amodeus à l’aide de ...Méthode d’implémentation efficace des modèles PAC et PAC-Amodeus à l’aide de ...
Méthode d’implémentation efficace des modèles PAC et PAC-Amodeus à l’aide de ...IHM'10
 
Présentation PFE Module Article GPAO
Présentation PFE Module Article GPAOPrésentation PFE Module Article GPAO
Présentation PFE Module Article GPAOahmedmiha
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreStéphane Traumat
 
Introduction à NetLogo
Introduction à NetLogoIntroduction à NetLogo
Introduction à NetLogoAlvaro Gil
 
Génie Logiciel.pptx
Génie Logiciel.pptxGénie Logiciel.pptx
Génie Logiciel.pptxLatifaBen6
 
TFS 2012 : un pas vers l'agilité... en avant ou en arrière ?
TFS 2012 : un pas vers l'agilité... en avant ou en arrière ? TFS 2012 : un pas vers l'agilité... en avant ou en arrière ?
TFS 2012 : un pas vers l'agilité... en avant ou en arrière ? Christophe HERAL
 
AgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFSAgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFSAgile Toulouse
 
Processus_Unifie_et_Approche_Agile chapitre 1.pptx
Processus_Unifie_et_Approche_Agile chapitre 1.pptxProcessus_Unifie_et_Approche_Agile chapitre 1.pptx
Processus_Unifie_et_Approche_Agile chapitre 1.pptxinformatiquehageryah
 
SysML (Valtech Days 2008)
SysML (Valtech Days 2008)SysML (Valtech Days 2008)
SysML (Valtech Days 2008)Pascal Roques
 

Ähnlich wie Cours génie logiciel (20)

Uml partie 1
Uml partie 1Uml partie 1
Uml partie 1
 
1_Assurance_Qualit_et_Gnie_Logiciel.ppt
1_Assurance_Qualit_et_Gnie_Logiciel.ppt1_Assurance_Qualit_et_Gnie_Logiciel.ppt
1_Assurance_Qualit_et_Gnie_Logiciel.ppt
 
Modelisation agile 03122011
Modelisation agile  03122011Modelisation agile  03122011
Modelisation agile 03122011
 
Lmo02.ppt
Lmo02.pptLmo02.ppt
Lmo02.ppt
 
Introduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMAIntroduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMA
 
Support de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdfSupport de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdf
 
Methodo support
Methodo supportMethodo support
Methodo support
 
Projet+com02.ppt
Projet+com02.pptProjet+com02.ppt
Projet+com02.ppt
 
Approche Mda
Approche MdaApproche Mda
Approche Mda
 
DesignPatternsISI.pdf
DesignPatternsISI.pdfDesignPatternsISI.pdf
DesignPatternsISI.pdf
 
Méthode d’implémentation efficace des modèles PAC et PAC-Amodeus à l’aide de ...
Méthode d’implémentation efficace des modèles PAC et PAC-Amodeus à l’aide de ...Méthode d’implémentation efficace des modèles PAC et PAC-Amodeus à l’aide de ...
Méthode d’implémentation efficace des modèles PAC et PAC-Amodeus à l’aide de ...
 
Présentation PFE Module Article GPAO
Présentation PFE Module Article GPAOPrésentation PFE Module Article GPAO
Présentation PFE Module Article GPAO
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libre
 
Introduction à NetLogo
Introduction à NetLogoIntroduction à NetLogo
Introduction à NetLogo
 
Génie Logiciel.pptx
Génie Logiciel.pptxGénie Logiciel.pptx
Génie Logiciel.pptx
 
TFS 2012 : un pas vers l'agilité... en avant ou en arrière ?
TFS 2012 : un pas vers l'agilité... en avant ou en arrière ? TFS 2012 : un pas vers l'agilité... en avant ou en arrière ?
TFS 2012 : un pas vers l'agilité... en avant ou en arrière ?
 
AgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFSAgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFS
 
Processus_Unifie_et_Approche_Agile chapitre 1.pptx
Processus_Unifie_et_Approche_Agile chapitre 1.pptxProcessus_Unifie_et_Approche_Agile chapitre 1.pptx
Processus_Unifie_et_Approche_Agile chapitre 1.pptx
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
 
SysML (Valtech Days 2008)
SysML (Valtech Days 2008)SysML (Valtech Days 2008)
SysML (Valtech Days 2008)
 

Cours génie logiciel

  • 1. Introduction Génie Logiciel Mr Alaya Raddaoui AU. 2012/20131 Alaya Raddaoui Faculté des sciences de Gafsa
  • 2. Méthodes d’analyse et de conception 2 Alaya Raddaoui
  • 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
  • 17. 17 Les différents types de langages de programmation 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
  • 22. 22 Tests et mise au point 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
  • 25. Gestion de projet 25 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
  • 28. Structuration de l’équipe Structure traditionnelle d’une équipe: 28 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
  • 31. Alaya Raddaoui31 U.M.L. en un clin d’oeil…
  • 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
  • 38. Alaya Raddaoui38 Syntaxe des Classes et Instances en UML 2
  • 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…