Cours Composant 2. Qualité logicielle et spécications algébriques
|
|
|
- Anaïs Giroux
- il y a 10 ans
- Total affichages :
Transcription
1 UPMC Paris Universitas Master Informatique STL Cours Composant 2. Qualité logicielle et spécications algébriques c Frédéric Peschanski UPMC Paris Universitas 24 février 2008 c Frédéric Peschanski (UPMCCours ParisComposant2. Universitas) Qualité logicielle et spécications24 algébriques février / 39
2 Plan du cours 1 Qualité logicielle Facteurs externes Facteurs internes 2 Méthodologie Approche classique Approche orientée composant 3 Spécications algébriques Introduction Principes de base Complétude et cohérence Dépendances explicites c Frédéric Peschanski (UPMCCours ParisComposant2. Universitas) Qualité logicielle et spécications24 algébriques février / 39
3 Bibliographie Remarque Ce cours est inspiré du travail et des publications de Betrand Meyer (créateur de la conception par contrat et du langage Eiel). Références Livre : Bertrand Meyer, Conception et programmation objet. 2005, Eyrolles Site : c Frédéric Peschanski (UPMCCours ParisComposant2. Universitas) Qualité logicielle et spécications24 algébriques février / 39
4 Notion de qualité logicielle Notion de qualité logicielle peu étudiée en tant que telle malgré son importance. Dicile à aborder objectivement Nous présentons (rapidement) l'étude intéressante de B. Meyer Préliminaires : séparation des rôles Rôle : qui juge de la qualité? Fournisseur du logiciel? Facteurs internes, point de vue plutôt technique Rôle de développeur, point de vue micro Rôle d'architecte, point de vue macro Client (du fournisseur)? Facteurs externes, point de vue moins technique Rôle d'utilisateur Rôle d'acquéreur Question : quels sont les rôles les plus importants? c Frédéric Peschanski (UPMCCours ParisComposant2. Universitas) Qualité logicielle et spécications24 algébriques février / 39
5 Critères d'évaluation Pour chaque facteur de qualité Quelle est sa dénition? Quelle est son importance relative? Comment l'évaluer? du point de vue du fournisseur (évaluation en amont) du point de vue du client (évaluation en aval) Comment l'améliorer/l'optimiser? c Frédéric Peschanski (UPMCCours ParisComposant2. Universitas) Qualité logicielle et spécications24 algébriques février / 39
6 Facteurs externes Du point de vue de l'acquéreur Correction remplir correctement sa tâche, telle que dénie par sa spécication Approches formelles : logiciel sûr Approches formelles légères : conception par contrat, génération automatique de tests, etc. Approches empiriques : test, test, et test Robustesse réagir de façon satisfaisante à des conditions anormales de lenvironnement, prévues (spéciées explicitement) ou non (adaptabilité) Extensibilité facilité de mise-à-jour du logiciel pour intégrer des changements dans les spécications etc. c Frédéric Peschanski (UPMCCours ParisComposant2. Universitas) Qualité logicielle et spécications24 algébriques février / 39
7 Facteurs externes (suite) Du point de vue de l'acquéreur Compatibilité s'intégrer de façon satisfaisante dans l'environnement d'exploitation du client Ecacité utiliser un minimum de ressources de fonctionnement Economie remplir sa tâche au coût le plus bas possible Ponctualité logiciel délivré au client dans les délais prévus, ou avant etc. c Frédéric Peschanski (UPMCCours ParisComposant2. Universitas) Qualité logicielle et spécications24 algébriques février / 39
8 Facteurs internes Du point de vue du fournisseur Simplicité, Modularité, Généricité Découplage, indépendance de la représentation etc. c Frédéric Peschanski (UPMCCours ParisComposant2. Universitas) Qualité logicielle et spécications24 algébriques février / 39
9 Composants et qualité Dans ce cours, nous nous intéressons en particulier aux trusted components, des composants en lesquels on puisse avoir conance Le critère de qualité primordial est la correction. Prérequis spécications précises, claires et vériables (donc formelles) spécications (co-)algébriques vériabilité des implémentations vis-à-vis des spécications conception par contrats (vérif. dynamique) et logique de Hooare (vérif. statique) c Frédéric Peschanski (UPMCCours ParisComposant2. Universitas) Qualité logicielle et spécications24 algébriques février / 39
10 Cycles de développement classiques Cycle en cascade (dépassé) Cycle en V (courant) Analyse des besoins Spécications Conception architecturale Conception détaillée Recette Tests de validation Tests d'intégration Tests unitaires Cycles semi-itératifs (Y,λ,Rup) Cycles de maintenance Implémentation février / 39
11 Cycles de développement agiles Cycles itératifs (RAD) extreme Programming (XP) Program rst (think later) Test-driven Pair programming (code & review) Refactoring (conception au l de l'eau) Client involved etc. autres Cycles agiles (AM,AUP,etc.) février / 39
12 Cycle de développement orienté composant Component-based Software Engineering (CBSE) Architecture logicielle : identication en amont des composants logiciels Componentisation Croiser les spécications avec l'existant (emphase sur la réutilisabilité) bibliothèques de composants Développement de nouveaux composants approches descendantes (en V ou semi-itératif) approches ascendantes (agile, XP) Phase de composition ou assemblage (intégration) février / 39
13 Cycle de développement : trusted components Dance cours : approche globalement ascendante, localement descendante Modélisation globale par composition (au niveau spécications) Modélisation locale par ranement formel : 1 Spécications algébriques des services (interfaces de composants) 2 Conception par contrat des implémentations 3 Code critique : vérications formelles en logique de Hoare Packaging et intégration via OSGi février / 39
14 Spécications formelles Besoins Langage de spécication permettant de décrire ce que doit faire un composant logiciel : de façon précise et non-ambigüe ( formalisation) indépendemment des implémentations de façon cohérente et vériable sans surspécier (notion de complétude) Approche formelle légère utilisation de spécications (co-)algébriques, lointain héritier des types de données abstraits (ADT) + relativement simples d'utilisation, base des contrats - expressivité relativement limitée février / 39
15 Principes Fondations Ensembles et fonctions du premier ordre Logique typée du premier ordre Notion d'observation (vision co-algébrique) Spécication Brique élémentaire : le Service devant être proposé par le fournisseur à ses clients indépendant des implémentations plusieurs implémentations du même service une meme implémentation peut requérir/fournir plusieurs services Cahier des charges minimal (et formel) pour les implémentations février / 39
16 Format des spécications Service : nom du service spécié Types : dépendances des types élémentaires Require : dépendances de services Observators : fonctions d'observation de l'état... Constructors : fonctions de construction... Operators : fonctions de modication... Observations : Axiomes d'observation... Types élémentaires : boolean, int, double, String, etc. février / 39
17 Exemple : les cuves quantity Tank Pipe c Frédéric Peschanski (UPMCCours ParisComposant2. Universitas) Qualité logicielle et spécications 24algébriques février / 39
18 Service cuve Questions Quel est le nom du service? Que veut-on observer sur chaque fournisseur du service? février / 39
19 Service cuve Questions Quel est le nom du service? Que veut-on observer sur chaque fournisseur du service? Service : Tank Types : boolean,double Observators : getquantity : [Tank] double isempty : [Tank] boolean février / 39
20 Service cuve Questions Quel est le nom du service? Que veut-on observer sur chaque fournisseur du service? Service : Tank Types : boolean,double Observators : getquantity : [Tank] double isempty : [Tank] boolean Signature des observateurs nomobs : [Service] T 1... T n T février / 39
21 Service cuve Questions Quel est le nom du service? Que veut-on observer sur chaque fournisseur du service? Service : Tank Types : boolean,double Observators : getquantity : [Tank] double isempty : [Tank] boolean Signature des observateurs nomobs : [Service] T 1... T n T Remarque : [Service] signie ce Service (this) février / 39
22 Constructeurs Question Comment construire une Cuve? février / 39
23 Constructeurs Question Comment construire une Cuve? Service : Tank Types : boolean,double Observators : getquantity : [Tank] double isempty : [Tank] boolean Constructors : init : [Tank] février / 39
24 Constructeurs Question Comment construire une Cuve? Service : Tank Types : boolean,double Observators : getquantity : [Tank] double isempty : [Tank] boolean Constructors : init : [Tank] Signature des constructeurs init : T 1... T n [Service] février / 39
25 Operateurs Question Comment manipuler une Cuve? février / 39
26 Operateurs Question Comment manipuler une Cuve? Service : Tank Types : boolean,double Observators : getquantity : [Tank] double isempty : [Tank] boolean Constructors : init : [Tank] Operators : ll : [Tank] double [Tank] pump : [Tank] double [Tank] février / 39
27 Operateurs Question Comment manipuler une Cuve? Service : Tank Types : boolean,double Observators : getquantity : [Tank] double isempty : [Tank] boolean Constructors : init : [Tank] Operators : ll : [Tank] double [Tank] pump : [Tank] double [Tank] Signature des opérateurs nomop : [Service] T 1... T n [Service] février / 39
28 Fonctions partielles Questions Quels sont les domaines de dénition des observateurs, constructeurs et opératurs? Quelle est l'approche de spécication? favoriser le client : approche permissive favoriser le fournisseur : approche défensive février / 39
29 Fonctions partielles Questions Exemple Quels sont les domaines de dénition des observateurs, constructeurs et opératurs? Quelle est l'approche de spécication? favoriser le client : approche permissive favoriser le fournisseur : approche défensive approche défensive Service : Tank Types : boolean,double Observators : getquantity : [Tank] double isempty : [Tank] boolean Constructors : init : [Tank] Operators : ll : [Tank] double [Tank] precondition : ll(b,q) require q 0 pump : [Tank] double [Tank] precondition : pump(b,q) require q 0 getquantity(b) q 0 février / 39
30 Fonctions partielles Questions Exemple Quels sont les domaines de dénition des observateurs, constructeurs et opératurs? Quelle est l'approche de spécication? favoriser le client : approche permissive favoriser le fournisseur : approche défensive approche permissive Service : Tank Types : boolean,double Observators : getquantity : [Tank] double isempty : [Tank] boolean Constructors : init : [Tank] Operators : ll : [Tank] double [Tank] precondition : ll(b,q) require q 0 pump : [Tank] double [Tank] precondition : pump(b,q) require q 0 février / 39
31 Résumé : fonctions Signature des fonctions nomfunct : T 1... T n T precondition nomfunct(x 1,..., x n) require P où P est une formule logique du premier ordre avec x 1,..., x n des variables quantiées universellement sur leur domaine T 1,..., T n Remarque par défault, P true février / 39
32 Observations : dénitions Dénitions préliminaires Expression bien formée composition de fonctions respectant les types de domaines de dénitions (ex. : pump(ll(b, q 1 ), q 2 )) Expression d'observation expression bien formée dont la fonction de niveau principal est un observateur (ex. : getquantity(pump(ll(b, q 1 ), q 2 ))) Formule bien formée expression bien formée à valeur booléenne (ex. : getquantity(pump(ll(b, q 1 ), q 2 )) > 0) Observation égalité de type O = E où O est une expression d'observation de type T et E une expression à valeur dans T (ex. : getquantity(pump(ll(b, q 1 ), q 2 )) = getquantity(b) + q 1 q 2 )) février / 39
33 Observations : objectifs Objectifs Spécier, en tant qu'axiomes, les observations minimales permettant de caractériser de façon cohérente (et optionnellement complète) la sémantique du service spécié. Important les observations sont des expressions axiomatiques, on ne doit pas pouvoir les déduire les unes des autres. Approche méthodologique 1 Essayer de minimiser les observateurs invariants 2 Observer, avec les observateurs non dérivables, les diérentes possibilités de construction 3 Croiser chaque observateur non dérivable avec chaque opérateur février / 39
34 Phase 1 : minimisation des observateurs Objectif principal Essayer de minimiser les observateurs Objectif secondaire Relier les observations entre elle lorsque cela fait sens (invariants utiles). invariants février / 39
35 Phase 1 : minimisation des observateurs Objectif principal Essayer de minimiser les observateurs Objectif secondaire Relier les observations entre elle lorsque cela fait sens (invariants utiles). invariants Exemple retour aux cuves Service : Tank etc. Observations : [invariants] // catégorie des observations isempty(b) = ( getquantity(b) = 0 ) // minimisation getquantity(b) 0 // invariant février / 39
36 Phase 1 : minimisation des observateurs Objectif principal Essayer de minimiser les observateurs Objectif secondaire Relier les observations entre elle lorsque cela fait sens (invariants utiles). invariants Exemple retour aux cuves Service : Tank etc. Observations : [invariants] // catégorie des observations isempty(b) = ( getquantity(b) = 0 ) // minimisation getquantity(b) 0 // invariant Remarque inutile d'observer isempty dans la suite février / 39
37 Phase 2 : observer les constructeurs Objectif décrire les observations minimales sur les constructeurs février / 39
38 Phase 2 : observer les constructeurs Objectif décrire les observations minimales sur les constructeurs Service : Tank etc. Observations : [invariants] isempty(b) = ( getquantity(b) = 0 ) getquantity(b) 0 [init] getquantity(init(b)) = 0 février / 39
39 Phase 2 : observer les constructeurs Objectif décrire les observations minimales sur les constructeurs Service : Tank etc. Observations : [invariants] isempty(b) = ( getquantity(b) = 0 ) getquantity(b) 0 [init] getquantity(init(b)) = 0 Remarque on suppose que chaque expression respecte les domaines de dénitions (sinon on ne peut pas écrire l'expression correspondante) février / 39
40 Phase 3 : observer les opérateurs Objectif décrire les observations minimales sur les opérateurs février / 39
41 Phase 3 : observer les opérateurs Objectif décrire les observations minimales sur les opérateurs Service : Tank etc. Observations : [invariants] isempty(b) = ( getquantity(b) = 0 ) getquantity(b) 0 [init] getquantity(init(b)) = 0 [ll] getquantity(ll(b,q)) = getquantity(b) + q [pump] getquantity(pump(b,q)) = getquantity(b) q février / 39
42 Phase 3 : observer les opérateurs Objectif décrire les observations minimales sur les opérateurs Service : Tank etc. Observations : [invariants] isempty(b) = ( getquantity(b) = 0 ) getquantity(b) 0 [init] getquantity(init(b)) = 0 [ll] getquantity(ll(b,q)) = getquantity(b) + q [pump] getquantity(pump(b,q)) = getquantity(b) q Remarque approche défensive (préconditions plus fortes, observations/postconditions plus faibles) février / 39
43 Phase 3 : observer les opérateurs Objectif décrire les observations minimales sur les opérateurs Service : Tank etc. Observations : [invariants] isempty(b) = ( getquantity(b) = 0 ) getquantity(b) 0 [init] getquantity(init(b)) = 0 [ll] getquantity(ll(b,q)) = getquantity(b) + q [pump] getquantity(pump(b,q)) = max(0,getquantity(b) q) Remarque approche permissive (préconditions plus faibles, observations/postconditions plus fortes) février / 39
44 Cohérence et complétude Analyse d'un service Cohérence On peut déduire au plus une valeur de chaque observation Complétude On peut déduire au moins une valeur de chaque observation Objectifs La cohérence est primordiale. Toute incohérence est un bug de spécication. La complétude est importante mais est parfois dicile, voir impossible, à obtenir. En pratique, on acceptera donc si c'est justié de sous-spécier. En revanche, on essaiera dans la mesure du possible de ne pas sur-spécier (élimination des redondances). Remarque en CPS on donnera des arguments essentiellement informels concernant la cohérence et la complétude. février / 39
45 Interactions Les spécications de service permettent de décrire l'interface interne des composants (fournisseurs/implémenteurs du service). Il nous manque la description de l'interface externe ou contexte d'utilisation du service. Prérequis certains services ont besoins (require) d'autres services pour être spéciés. Exemple le tuyau (Pipe) reliant deux cuves. Dans ce cas, on ajoute la section Require aux spécications et on observe explicitement les services requis. Service : nom du service etc. Require : services requis etc. février / 39
46 Exemple : service tuyau Service : Pipe Require : Tank Types : boolean, double, null Observators : getquantity : [Pipe] double const getcapacity : [Pipe] double const getintank : [Pipe] Tank const getouttank : [Pipe] Tank isopenin : [Pipe] boolean isopenout : [Pipe] boolean Constructors : init : Tank Tank double [Pipe] precondition init(i,o,c) require I null O null c > 0 Operators : switchin : [Pipe] [Pipe] precondition switchin(p) require isopenout(p) switchout : [Pipe] [Pipe] precondition switchout(p) require isopenin(p) ush : [Pipe] [Pipe] precondition ush(p) require isopenin(p) isopenout(p) c Frédéric Peschanski (UPMCCours ParisComposant2. Universitas) Qualité logicielle et spécications 24algébriques février / 39
47 Constantes Un observateur constant est décoré par le mot clé const Pour un observateur C constant, il est uniquement nécessaire de décrire les observations de C sur les constructeurs. Pour un service s et un opérateur op qui n'est pas un constructeur, on aura implicitement : C(op(s,...)) = C(s,...) février / 39
48 Constantes Un observateur constant est décoré par le mot clé const Pour un observateur C constant, il est uniquement nécessaire de décrire les observations de C sur les constructeurs. Pour un service s et un opérateur op qui n'est pas un constructeur, on aura implicitement : C(op(s,...)) = C(s,...) Par exemple, si on retire le const de l'observateur getcapacity de capacité de tuyau : [init] getcapacity(init(i,o,c)) = c [switchin] février / 39
49 Observations Service : Pipe etc. Observations : [invariants] getquantity(p) 0 getcapacity(p) isopenin(p) xor isopenout(p) [init] getquantity(init(i,o,c)) = 0 getcapacity(init(i,o,c)) = c getintank(init(i,o,c)) = I getouttank(init(i,o,c)) = O isopenin(init(i,o,c)) = false isopenout(init(i,o,c)) = false [switchin] getquantity(switchin(p)) =? etc.? février / 39
50 Observations Service : Pipe etc. Observations : [invariants] getquantity(p) 0 getcapacity(p) isopenin(p) xor isopenout(p) [init] getquantity(init(i,o,c)) = 0 getcapacity(init(i,o,c)) = c getintank(init(i,o,c)) = I getouttank(init(i,o,c)) = O isopenin(init(i,o,c)) = false isopenout(init(i,o,c)) = false [switchin] getquantity(switchin(p)) =? etc.? Comment exprimer les interactions entre les cuves et le tuyau? février / 39
51 Observations composées Important observation des interactions entre services On sépare clairement : la cause qui est l'opérateur (ou le constructeur) du service courant que l'on souhaite spécier La conséquence interne ou modication (changement d'état observable) du service spécié La conséquence externe qui correspond à la modication d'un service externe Par exemple : cause ouverture de la porte d'entrée du tuyau (opérateur switchin) conséquence interne remplissage du tuyau conséquence externe la cuve d'entrée se vide au moins partiellement février / 39
52 Observation externe On peut spécier une observation externe de plusieurs façon : utiliser un observateur obs du service externe S par S.obs ex. : Tank.getQuantity(... ) utiliser un opérateur ou constructeur op du service externe par S.op. Dans ce cas, cela sous-entend que l'on eectue exactement la conjonction des observations spéciées pour l'opérateur op. ex. : Tank.ll(T,q) correspond à Tank.getQuantity(Tank.ll(T,q))= Tank.getQuantity(T)+q février / 39
53 Exemple : observation externe directe cause ouverture de la porte d'entrée du tuyau (opérateur switchin) conséquence interne remplissage du tuyau d'un volume v conséquence externe la cuve d'entrée se vide du volume v On pose avail(p) def = getcapacity(p) getquantity(p) la capacité de remplissage actuelle du tuyau. On pose également v def = min(tank.getcapacity(getintank(p)), avail(p)) le volume maximum déversable de la cuve vers le tuyau.... [switchin] getquantity(switchin(p)) = getquantity(p) + v Tank.getQuantity(getInTank(switchIn(P))) = Tank.getQuantity(getInTank(P)) - v Tank.getQuantity(getOutTank(switchIn(P))) = Tank.getQuantity(getOutTank(P)) Important : en plus d'observer ce qui change (ex. InTank) il est nécessaire d'observer ce qui ne change pas (ex. OutTank). février / 39
54 Exemple : opérateur externe cause ouverture de la porte d'entrée du tuyau (opérateur switchin) conséquence interne remplissage du tuyau d'un volume v conséquence externe la cuve d'entrée se vide du volume v On pose avail(p) def = getcapacity(p) getquantity(p) la capacité de remplissage actuelle du tuyau. On pose également v def = min(tank.getcapacity(getintank(p)), avail(p)) le volume maximum déversable de la cuve vers le tuyau.... [switchin] getquantity(switchin(p)) = getquantity(p) + v getintank(switchin(p))) = Tank.pump(getInTank(P),v) getouttank(switchin(p)) = getouttank(p) février / 39
55 Fin Fin février / 39
Analyse,, Conception des Systèmes Informatiques
Analyse,, Conception des Systèmes Informatiques Méthode Analyse Conception Introduction à UML Génie logiciel Définition «Ensemble de méthodes, techniques et outils pour la production et la maintenance
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
Processus d Informatisation
Processus d Informatisation Cheminement de la naissance d un projet jusqu à son terme, deux grandes étapes : Recherche ou étude de faisabilité (en amont) L utilisateur a une idée (plus ou moins) floue
Processus de Développement Logiciel
Processus de Développement Logiciel Cours M14 Pierre Gérard Université de Paris 13 IUT Villetaneuse Formation Continue Licence Pro SIL - 2007/2008 Table des matières 1 Des besoins au code avec UML 1 2
Conception de circuits numériques et architecture des ordinateurs
Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot Année universitaire 2014-2015 Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Codage des nombres en base 2, logique
Processus de Développement Logiciel
Processus de Développement Logiciel Cours M14 Pierre Gérard Université de Paris 13 IUT Villetaneuse Formation Continue Licence Pro SIL LA TE X Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel
Logiciel Libre Cours 3 Fondements: Génie Logiciel
Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli [email protected] Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/
Introduction au génie logiciel
Introduction au génie logiciel Guillaume Laurent ENSMM 2007 G. Laurent (ENSMM) Introduction au génie logiciel 2007 1 / 36 Plan du cours 1 Problématique du génie logiciel 2 Méthodes de développement logiciel
Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme
Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes [email protected] 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation
GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET
GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET 1 Tianxiao LIU Licence Professionnelle Réseaux & Sécurité Université de Cergy-Pontoise http://depinfo.u-cergy.fr/~tliu/lpg.php PLAN Objectif et
INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30
Examen intra 20 février 2014 17:30 à 20:30 Nom, prénom : Code permanent : Répondez directement sur le questionnaire. Question #1 5% Quelle influence peut avoir le typage dynamique sur la maintenabilité
Chapitre 1 : Introduction aux bases de données
Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données
Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)
Modularité Extensions Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) généricité modules de première classe : peuvent être
Les diagrammes de modélisation
L approche Orientée Objet et UML 1 Plan du cours Introduction au Génie Logiciel L approche Orientée Objet et Notation UML Les diagrammes de modélisation Relations entre les différents diagrammes De l analyse
Topologie du web - Valentin Bourgoin - http://www.valentinbourgoin.net. Méthodes agiles & SCRUM
Méthodes agiles & SCRUM 1/ Pourquoi les méthodes agiles? Définition d une méthode agile. Fondamentaux. Quand les utiliser? 2/ SCRUM En quoi est-ce une méthode agile? Sprints et releases. Le Product Owner.
TP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les
Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml
OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire
INF2015 Développement de logiciels dans un environnement Agile Examen final hiver 2015
INF2015 Développement de logiciels dans un environnement Agile Examen final hiver 2015 Question #1 Quelle technique de mise sous test devons-nous utiliser si nous voulons simuler le comportement d'une
basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML
basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes
25/12/2012 www.toubkalit.ma
25/12/2012 www.toubkalit.ma 1 Définition Exemple des méthodes agiles Valeurs Principes Le cycle itératif et incrémental (Itération/Sprint) Schéma de travail Méthode Scrum. Méthode XP (Extreme programming).
Gestion Projet. Cours 3. Le cycle de vie
Gestion Projet Cours 3 Le cycle de vie Sommaire Généralités 3 Séquentiel 7 Itératif/Incrémental 17 Extreme Programming 22 Que choisir? 29 Etats Transverse 33 Cours 3 2006-2007 2 Généralités Cours 3 2006-2007
Cours Gestion de projet
Cours Gestion de projet Méthodes de conduite de projet Version Date Auteur V1.8 Septembre 2007 Pascal HEYER 1 Méthodes de conduite de projet Ce document est publié sous la licence libre Creative Commons-BY-NC-SA
OCL - Object Constraint Language
OCL - Object Constraint Language Laëtitia Matignon [email protected] Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object
Proposition de sujet de thèse CIFRE EUROCOPTER / LGI2P
EUROCOPTER SAS Groupe EADS Marignane Ecole des Mines d Alès Laboratoire de Génie Informatique et d Ingénierie de Production LGI2P Nîmes Proposition de sujet de thèse CIFRE EUROCOPTER / LGI2P Titre Domaine
Exemple d Application des Méthodes Agiles au Développement d un Produit Software. Jean-Marc Bodart, Océ Software Laboratories Namur SA
Exemple d Application des Méthodes Agiles au Développement d un Produit Software CETIC, 21 avril 2004 Jean-Marc Bodart, Océ Software Laboratories Namur SA April 21, 2004 Plan Les sociétés Océ et Océ Software
Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e
P r o b l é m a t i q u e OCL : O b j e c t C o n s t r a i n t L a n g u a g e Le langage de contraintes d UML Les différents diagrammes d UML permettent d exprimer certaines contraintes graphiquement
Technologie Web. Conception de sites Web. Alexandre Pauchet. INSA Rouen - Département ASI. INSA - ASI TechnoWeb : Rappels UML 1/21
INSA - ASI TechnoWeb : Rappels UML 1/21 Technologie Web Conception de sites Web Alexandre Pauchet INSA Rouen - Département ASI BO.B.RC.18, [email protected] INSA - ASI TechnoWeb : Rappels UML 2/21
Le génie logiciel. maintenance de logiciels.
Le génie logiciel Définition de l IEEE (IEEE 1990): L application d une approche systématique, disciplinée et quantifiable pour le développement, l opération et la maintenance de logiciels. Introduction
Cours 1 : La compilation
/38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas [email protected] PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà
Analyse et Conception objet du logiciel Analyse et conception objet du logiciel : Méthode de conception objet et notation UML.
Analyse et conception objet du logiciel : Méthode de conception objet et notation UML Rémy Courdier Email : [email protected] Rémy Courdier V2.1 1 Plan du cours Introduction au Génie Logiciel
Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;
CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe
Recherche dans un tableau
Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6
Développement itératif, évolutif et agile
Document Développement itératif, évolutif et agile Auteur Nicoleta SERGI Version 1.0 Date de sortie 23/11/2007 1. Processus Unifié Développement itératif, évolutif et agile Contrairement au cycle de vie
Compte-rendu de projet de Système de gestion de base de données
Compte-rendu de projet de Système de gestion de base de données Création et utilisation d'un index de jointure LAMBERT VELLER Sylvain M1 STIC Université de Bourgogne 2010-2011 Reponsable : Mr Thierry Grison
Chapitre VI- La validation de la composition.
Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions
Formation : Modélisation avec UML 2.0 et Mise en pratique
Formation : Modélisation avec et Mise en pratique Durée : sur 4 Jours soit 28 heures ou sur 5 Jours soit 35 heures Présentation Stage UML (Unified Modeling Language) est la notation standard qui s'est
Génie logiciel (Un aperçu)
(Un aperçu) (sommerville 2010) Laurent Pérochon INRA URH 63122 St Genès Champanelle [email protected] Ensemble d activités conduisant à la production d un logiciel Sur un échantillon de
Chapitre I : le langage UML et le processus unifié
I. Introduction Les méthodes d analyse orientées objet sont initialement issues des milieux industriels. La préoccupation dominante de leurs auteurs est le génie logiciel, c est-àdire les principes et
Université de Bangui. Modélisons en UML
Université de Bangui CRM Modélisons en UML Ce cours a été possible grâce à l initiative d Apollinaire MOLAYE qui m a contacté pour vous faire bénéficier de mes connaissances en nouvelles technologies et
Méthode Agile de 3 ème génération. 2008 J-P Vickoff
PUMA Essentiel Méthode Agile de 3 ème génération 1 Structure de la présentation PUMA Essentiel méthode Agile de 3 ème génération Quelques principes Agiles Principales pratique Agile de pilotage Structure
Conditions : stage indemnisé, aide au logement possible, transport CEA en Ile-de-France gratuit.
Proposition de stage de BAC+4 ou BAC+5 Pro ou Recherche Etude comparative des outils de vérification d'algorithmes parallèles Logiciels (LSL), localisé à Palaiseau (Essonne), développe les outils d'aide
C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement
C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement des objets d'une classe Utilisation d'une classe Droit
Deuxième partie. Approche globale d'implémentation d'un projet PLM
Deuxième partie Approche globale d'implémentation d'un projet PLM 71 Introduction L'enjeu économique autour de la réduction et de l'optimisation du développement des produits est important pour les entreprises
Méthodes agiles. www.businessinteractif.com CONSEIL & DÉVELOPPEMENT DE SOLUTIONS E-BUSINESS. Jean-Louis Bénard jlb@businessinteractif.
Méthodes agiles www.businessinteractif.com Jean-Louis Bénard [email protected] CONSEIL & DÉVELOPPEMENT DE SOLUTIONS E-BUSINESS 0 20 mai 2002 Sommaire Méthodes agiles : une réponse à un malaise?
Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer
Le Processus RUP Database Administrator Project Leader H. Kadima Performance Engineer Release Engineer Analyst Designer / Developer Tester Table des matières 1. De l artisanat à l industrialisation de
La Certification de la Sécurité des Automatismes de METEOR
1 La Certification de la Sécurité des Automatismes de METEOR 2 un mot sur METEOR 3 Le projet METEOR, c'est... un système automatique complexe fortement intégré matériel roulant, équipements électriques,
Conception des bases de données : Modèle Entité-Association
Conception des bases de données : Modèle Entité-Association La modélisation d un problème, c est-à-dire le passage du monde réel à sa représentation informatique, se définit en plusieurs étapes pour parvenir
Vérification et Validation
Vérification et Validation Génie Logiciel Master 1 II Mihaela Sighireanu Objectifs I. Introduire la vérification et la validation (V&V) du logiciel et comprendre leurs différences. II.Définir le plan de
Agence Nationale de Certication Electronique Signature électronique SPECIFICATION TECHNIQUE DE LA SIGNATURE ÉLECTRONIQUE Mai 2011 Version v1.0 Maha SLITI,Mahmoud TOUNSI,Akram SOLTANI 2011 Agence Nationale
Premiers Pas en Programmation Objet : les Classes et les Objets
Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.
UML et les Bases de Données
CNAM UML et les Bases de Données UML et les Bases de Données. Diagramme de classes / diagramme d objets (UML)...2.. Premier niveau de modélisation des données d une application...2.2. Les éléments de modélisation...2.2..
3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes
PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason
Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004
Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)
Gestion de projets logiciels. Xavier Dubuc
Gestion de projets logiciels Résumé blocus Xavier Dubuc 16 janvier 2011 1 Table des matières 1 Planification (PERT-GANTT) 3 1.1 Définitions............................................. 3 1.2 Analyse un
Plan. 1 Cycles de développement. 2 Méthodes agiles, principes généraux. 3 Comment se passe un Sprint?
Plan nitiation au Génie Logiciel Cours 5 ntroduction au π développement agile T. Genet ([email protected]) (STC/RSA) GEN-5 1/ 28 T. Genet ([email protected]) (STC/RSA) GEN-5 2/ 28 Bibliographie Plan L informatique
LES INTERFACES HOMME-MACHINE
LES INTERFACES HOMME-MACHINE 1 ère Partie : Introduction aux Interfaces Homme-Machine 2 ème Partie : Notions de base sur les Sciences Cognitives 3 ème Partie : Recommandations ergonomiques 4 ème Partie
Méthodologies de développement de logiciels de gestion
Méthodologies de développement de logiciels de gestion Chapitre 5 Traits caractéristiques des deux approches de méthodologie Présentation réalisée par P.-A. Sunier Professeur à la HE-Arc de Neuchâtel http://lgl.isnetne.ch
Rappel sur les bases de données
Rappel sur les bases de données 1) Généralités 1.1 Base de données et système de gestion de base de donnés: définitions Une base de données est un ensemble de données stockées de manière structurée permettant
Conduite de projets SI. Les méthodes «Agiles» N QUAL/1995/3660e ORESYS
Conduite de projets SI Les méthodes «Agiles» N QUAL/1995/3660e ORESYS Agilité : de quoi parle-t-on? Agilité de l entreprise Urbanisme Architectures SOA Agilité du SI ERP Plateformes applicatives agiles
Introduction Les processus traditionnels extreme Programming Conclusion. extreme Programming. vers plus d agilité. F. Miller francois.miller@inpg.
vers plus d agilité F. Miller [email protected] FC INPG Octobre 2008 - version 1.0 Introduction Contexte Le monde bouge économie des moyens (humains, financier,...) ; recherche de plus d efficacité
SCRUM BUT, LE LIVRE BLANC. De la problématique de mener un projet AGILE dans une organisation classique
SCRUM BUT, LE LIVRE BLANC De la problématique de mener un projet AGILE dans une organisation classique Résumé Alors que les demandes de conduite de projet en AGILITE sont de plus en plus fréquentes, les
Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...
Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez
CATALOGUE FORMATION. Product Lifecycle Management. Juin 2013
CATALOGUE FORMATION Product Lifecycle Management Juin 2013 s de formation ENOVIA V6 ENOVIA V6 Plateforme Collaborative 5 ENOVIA V6 Installation et Administration 9 ENOVIA V6 Implémentation et Développement
1.5 0.5 -0.5 -1.5 0 20 40 60 80 100 120. (VM(t i ),Q(t i+j ),VM(t i+j ))
La logique oue dans les PME/PMI Application au dosage de l'eau dans les bétons P.Y. Glorennec INSA de Rennes/IRISA [email protected] C. Hérault Hydrostop [email protected] V. Hulin Hydrostop [email protected]
Brique BDL Gestion de Projet Logiciel
Brique BDL Gestion de Projet Logiciel Processus de développement pratiqué à l'enst [email protected] url:http://www.infres.enst.fr/~vignes/bdl Poly: Computer elective project F.Gasperoni Brique BDL
Jean-Pierre Vickoff. 2008 J-P Vickoff
Agilité étendue Jean-Pierre Vickoff 1 Structure de la présentation PUMA Essentiel méthode Agile de 3 ème génération Le mouvement Itératif-Incrémental (Agile) Agilité étendue au SI et PUMA Essentiel Entreprise
GL - 2 2.1 Le Génie Logiciel
GL - 2 2.1 Le Génie Logiciel Lydie du Bousquet [email protected] En collaboration avec J.-M. Favre, I. Parissis, Ph. Lalanda 1 Rappels La production logicielle est une activité complexe de façon
Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère
L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la
Qu'est-ce que le BPM?
Qu'est-ce que le BPM? Le BPM (Business Process Management) n'est pas seulement une technologie mais, dans les grandes lignes, une discipline de gestion d'entreprise qui s'occupe des procédures contribuant
Les méthodes itératives. Hugues MEUNIER
Les méthodes itératives Hugues MEUNIER INTRODUCTION. Toute les méthodes ont le même but : la maîtrise du budget, du planning et de la qualité des projets de développement informatique Plusieurs approches
Agile Maroc 24 Novembre 2010. Méthodes agiles. Thierry Cros. http://etre-agile.com. Agile Maroc 24 novembre 2010
Agile Maroc 24 Novembre 2010 Méthodes agiles Thierry Cros 1 Thierry Cros 10 ans déjà... 2010 Création Extreme Programming France 2009 SigmaT Les Agilistes Toulousains 2010 Membre de «Fédération Agile»
Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé. http://www.rzo.free.fr
Cours de Java Sciences-U Lyon Java - Introduction Java - Fondamentaux Java Avancé http://www.rzo.free.fr Pierre PARREND 1 Octobre 2004 Sommaire Java Introduction Java Fondamentaux Histoire de Java Machine
Méthodes de développement
1 / 9 Méthodes de développement Méthodes agiles 1 - Introduction... 2 2 -Le manifeste agile et les méthodes agiles... 2 2.1 Le manifeste agile... 2 2.2 Les méthodes agiles... 3 3 - Caractéristiques communes
Conférence sur les marchés publics informatiques
Conférence sur les marchés publics informatiques Un moyen fiable pour aboutir à un appel d offres sans accroc : les processus métier comme pièce maîtresse d un projet informatique, de l adjudication à
Gé nié Logiciél Livré Blanc
Gé nié Logiciél Livré Blanc Version 0.2 26 Octobre 2011 Xavier Blanc [email protected] Partie I : Les Bases Sans donner des définitions trop rigoureuses, il faut bien commencer ce livre par énoncer
Vérification formelle de la plate-forme Java Card
Vérification formelle de la plate-forme Java Card Thèse de doctorat Guillaume Dufay INRIA Sophia Antipolis Cartes à puce intelligentes Java Card : Environnement de programmation dédié. Dernières générations
Introduction à la modélisation
Formation INRA-ACTA-ICTA Introduction à la modélisation Les modèles mathématiques pour l agronomie et l élevage 2 nde session, du 28 novembre au 1 er décembre 2005 - Informatique et modèles - Nathalie
Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. [email protected]
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 [email protected] LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
Objets et Programmation. origine des langages orientés-objet
Objets et Programmation origine des langages orientés-objet modularité, encapsulation objets, classes, messages exemples en Java héritage, liaison dynamique G. Falquet, Th. Estier CUI Université de Genève
Structurer ses données : les tableaux. Introduction à la programmation
Structurer ses données : les tableaux Introduction à la programmation Plan du document Introduction Introduire la notion de type Types primitifs Types composés Tableaux de type primitif Page 2 Notion de
Environnements de développement (intégrés)
Environnements de développement (intégrés) Tests unitaires, outils de couverture de code Patrick Labatut [email protected] http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure
STAGE IREM 0- Premiers pas en Python
Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer
IFT2255 : Génie logiciel
IFT2255 : Génie logiciel Chapitre 6 - Analyse orientée objets Section 1. Introduction à UML Julie Vachon et Houari Sahraoui 6.1. Introduction à UML 1. Vers une approche orientée objet 2. Introduction ti
Programmation d'agents intelligents Vers une refonte des fils de raisonnement. Stage de fin d'études Master IAD 2006
vendredi 8 septembre 2006 Programmation d'agents intelligents Vers une refonte des fils de raisonnement Stage de fin d'études Master IAD 2006 Benjamin DEVEZE Responsable : M. Patrick TAILLIBERT Plan Plan
Conduite et Gestion de Projet - Cahier des charges
Conduite et Gestion de Projet - Cahier des charges 1 Introduction Sophie Toulouse LIPN - Université Paris 13 +33.1.49.40.40.73 99 av. Jean-Baptiste Clément [email protected] 93430 Villetaneuse
GOL502 Industries de services
GOL502 Industries de services Conception d un service Partie IIb Version 2013 Introduction Conception d un service partie IIb Nous verrons dans ce chapitre Modélisation d un service; Langage de modélisation
Traduction des Langages : Le Compilateur Micro Java
BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant
Héritage presque multiple en Java (1/2)
Héritage presque multiple en Java (1/2) Utiliser deux classes ou plus dans la définition d'une nouvelle classe peut se faire par composition. class Etudiant{ int numero; Diplome d; float passeexamen(examen
Corrigés des premiers exercices sur les classes
Corrigés des premiers exercices sur les classes Exercice 2.1.1 utilisation d une classe Voici le texte d une classe représentant de façon sommaire un compte bancaire et les opérations bancaires courantes.
2. Activités et Modèles de développement en Génie Logiciel
2. Activités et Modèles de développement en Génie Logiciel Bernard ESPINASSE Professeur à l'université d'aix-marseille Plan Les Activités du GL Analyse des besoins Spécification globale Conceptions architecturale
Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test
Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite
Université de Haute Alsace. Domaine. Sciences Humaines et Sociales. MASTER Mention Éducation, Formation, Communication UHA, ULP, Nancy 2
Centre Universitaire de Formation des Enseignants & des Formateurs Laboratoire Interuniversitaire de Sciences de l Education et de la Communication Université de Haute Alsace Domaine Sciences Humaines
Utilisation d objets : String et ArrayList
Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons
Cours Langage C/C++ Programmation modulaire
Cours Langage C/C++ Programmation modulaire Thierry Vaira BTS IRIS Avignon [email protected] «v0.1 Rappel Programmation modulaire (1/2) Le découpage d'un programme en sous-programmes est appelée programmation
LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. [email protected] www.cril.univ-artois.fr/~jabbour
LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour [email protected] www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections
Langage et Concepts de ProgrammationOrientée-Objet 1 / 40
Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne [email protected]
Annexe : La Programmation Informatique
GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de
Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :
CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE Projet 2 Gestion des services enseignants G r o u p e : B E L G H I T Y a s m i n e S A N C H E Z - D U B R O N T Y u r i f e r M O N T A Z E R S i
TP3 : Creation de tables 1 seance
Universite de Versailles IUT de Velizy - Algorithmique 2005/2006 TP3 : Creation de tables 1 seance Objectif : Creation et modication de tables dans une base de donnees. Avant de commencer ce TP, terminer
THÈSE. Contribution à un processus de réication d'abstractions de communication
N o d'ordre : 2851 THÈSE présentée devant l'université de Rennes 1 pour obtenir le grade de : Docteur de l'université de Rennes 1 Mention Informatique par Éric Cariou Équipes d'accueil : IRISA/Triskell,
