Cours Composant 2. Qualité logicielle et spécications algébriques

Dimension: px
Commencer à balayer dès la page:

Download "Cours Composant 2. Qualité logicielle et spécications algébriques"

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 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

Plus en détail

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 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

Plus en détail

Processus d Informatisation

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

Plus en détail

Processus de Développement Logiciel

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

Plus en détail

Conception de circuits numériques et architecture des ordinateurs

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

Plus en détail

Processus de Développement Logiciel

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

Plus en détail

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Logiciel Libre Cours 3 Fondements: Génie Logiciel Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/

Plus en détail

Introduction au génie logiciel

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

Plus en détail

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

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 treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation

Plus en détail

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 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

Plus en détail

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30

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é

Plus en détail

Chapitre 1 : Introduction aux bases de données

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

Plus en détail

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

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

Plus en détail

Les diagrammes de modélisation

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

Plus en détail

Topologie du web - Valentin Bourgoin - http://www.valentinbourgoin.net. Méthodes agiles & SCRUM

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.

Plus en détail

TP1 : Initiation à Java et Eclipse

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

Plus en détail

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

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

Plus en détail

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 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

Plus en détail

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 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

Plus en détail

25/12/2012 www.toubkalit.ma

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).

Plus en détail

Gestion Projet. Cours 3. Le cycle de vie

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

Plus en détail

Cours Gestion de projet

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

Plus en détail

OCL - Object Constraint Language

OCL - Object Constraint Language OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object

Plus en détail

Proposition de sujet de thèse CIFRE EUROCOPTER / LGI2P

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

Plus en détail

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. 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

Plus en détail

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

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

Plus en détail

Technologie Web. Conception de sites Web. Alexandre Pauchet. INSA Rouen - Département ASI. INSA - ASI TechnoWeb : Rappels UML 1/21

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, pauchet@insa-rouen.fr INSA - ASI TechnoWeb : Rappels UML 2/21

Plus en détail

Le génie logiciel. maintenance de logiciels.

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

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

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 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 : Remy.Courdier@univ-reunion.fr Rémy Courdier V2.1 1 Plan du cours Introduction au Génie Logiciel

Plus en détail

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

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

Plus en détail

Recherche dans un tableau

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

Plus en détail

Développement itératif, évolutif et agile

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

Plus en détail

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 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

Plus en détail

Chapitre VI- La validation de la composition.

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

Plus en détail

Formation : Modélisation avec UML 2.0 et Mise en pratique

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

Plus en détail

Génie logiciel (Un aperçu)

Génie logiciel (Un aperçu) (Un aperçu) (sommerville 2010) Laurent Pérochon INRA URH 63122 St Genès Champanelle Laurent.perochon@clermont.inra.fr Ensemble d activités conduisant à la production d un logiciel Sur un échantillon de

Plus en détail

Chapitre I : le langage UML et le processus unifié

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

Plus en détail

Université de Bangui. Modélisons en UML

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

Plus en détail

Méthode Agile de 3 ème génération. 2008 J-P Vickoff

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

Plus en détail

Conditions : stage indemnisé, aide au logement possible, transport CEA en Ile-de-France gratuit.

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

Plus en détail

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 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

Plus en détail

Deuxième partie. Approche globale d'implémentation d'un projet PLM

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

Plus en détail

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 CONSEIL & DÉVELOPPEMENT DE SOLUTIONS E-BUSINESS. Jean-Louis Bénard jlb@businessinteractif. Méthodes agiles www.businessinteractif.com Jean-Louis Bénard jlb@businessinteractif.fr CONSEIL & DÉVELOPPEMENT DE SOLUTIONS E-BUSINESS 0 20 mai 2002 Sommaire Méthodes agiles : une réponse à un malaise?

Plus en détail

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

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

Plus en détail

La Certification de la Sécurité des Automatismes de METEOR

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,

Plus en détail

Conception des bases de données : Modèle Entité-Association

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

Plus en détail

Vérification et Validation

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

Plus en détail

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

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

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.

Plus en détail

UML et les Bases de Données

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..

Plus en détail

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

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

Plus en détail

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

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)

Plus en détail

Gestion de projets logiciels. Xavier Dubuc

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

Plus en détail

Plan. 1 Cycles de développement. 2 Méthodes agiles, principes généraux. 3 Comment se passe un Sprint?

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 (genet@irisa.fr) (STC/RSA) GEN-5 1/ 28 T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 2/ 28 Bibliographie Plan L informatique

Plus en détail

LES INTERFACES HOMME-MACHINE

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

Plus en détail

Méthodologies de développement de logiciels de gestion

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

Plus en détail

Rappel sur les bases de données

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

Plus en détail

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 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

Plus en détail

Introduction Les processus traditionnels extreme Programming Conclusion. extreme Programming. vers plus d agilité. F. Miller francois.miller@inpg.

Introduction Les processus traditionnels extreme Programming Conclusion. extreme Programming. vers plus d agilité. F. Miller francois.miller@inpg. vers plus d agilité F. Miller francois.miller@inpg.fr FC INPG Octobre 2008 - version 1.0 Introduction Contexte Le monde bouge économie des moyens (humains, financier,...) ; recherche de plus d efficacité

Plus en détail

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 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

Plus en détail

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

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

Plus en détail

CATALOGUE FORMATION. Product Lifecycle Management. Juin 2013

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

Plus en détail

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 ))

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 glorenne@irisa.fr C. Hérault Hydrostop christophe@hydrostop.fr V. Hulin Hydrostop vincent@hydrostop.fr

Plus en détail

Brique BDL Gestion de Projet Logiciel

Brique BDL Gestion de Projet Logiciel Brique BDL Gestion de Projet Logiciel Processus de développement pratiqué à l'enst Sylvie.Vignes@enst.fr url:http://www.infres.enst.fr/~vignes/bdl Poly: Computer elective project F.Gasperoni Brique BDL

Plus en détail

Jean-Pierre Vickoff. 2008 J-P Vickoff

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

Plus en détail

GL - 2 2.1 Le Génie Logiciel

GL - 2 2.1 Le Génie Logiciel GL - 2 2.1 Le Génie Logiciel Lydie du Bousquet Lydie.du-bousquet@imag.fr En collaboration avec J.-M. Favre, I. Parissis, Ph. Lalanda 1 Rappels La production logicielle est une activité complexe de façon

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

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

Plus en détail

Qu'est-ce que le BPM?

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

Plus en détail

Les méthodes itératives. Hugues MEUNIER

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

Plus en détail

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. 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»

Plus en détail

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 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

Plus en détail

Méthodes de développement

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

Plus en détail

Conférence sur les marchés publics informatiques

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 à

Plus en détail

Gé nié Logiciél Livré Blanc

Gé nié Logiciél Livré Blanc Gé nié Logiciél Livré Blanc Version 0.2 26 Octobre 2011 Xavier Blanc Xavier.Blanc@labri.fr Partie I : Les Bases Sans donner des définitions trop rigoureuses, il faut bien commencer ce livre par énoncer

Plus en détail

Vérification formelle de la plate-forme Java Card

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

Plus en détail

Introduction à la modélisation

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

Plus en détail

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr . Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le

Plus en détail

Objets et Programmation. origine des langages orientés-objet

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

Plus en détail

Structurer ses données : les tableaux. Introduction à la programmation

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

Plus en détail

Environnements de développement (intégrés)

Environnements de développement (intégrés) Environnements de développement (intégrés) Tests unitaires, outils de couverture de code Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure

Plus en détail

STAGE IREM 0- Premiers pas en Python

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

Plus en détail

IFT2255 : Génie logiciel

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

Plus en détail

Programmation d'agents intelligents Vers une refonte des fils de raisonnement. Stage de fin d'études Master IAD 2006

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

Plus en détail

Conduite et Gestion de Projet - Cahier des charges

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 toulouse@lipn.univ-paris13.fr 93430 Villetaneuse

Plus en détail

GOL502 Industries de services

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

Plus en détail

Traduction des Langages : Le Compilateur Micro Java

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

Plus en détail

Héritage presque multiple en Java (1/2)

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

Plus en détail

Corrigés des premiers exercices sur les classes

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.

Plus en détail

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 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

Plus en détail

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

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

Plus en détail

Université de Haute Alsace. Domaine. Sciences Humaines et Sociales. MASTER Mention Éducation, Formation, Communication UHA, ULP, Nancy 2

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

Plus en détail

Utilisation d objets : String et ArrayList

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

Plus en détail

Cours Langage C/C++ Programmation modulaire

Cours Langage C/C++ Programmation modulaire Cours Langage C/C++ Programmation modulaire Thierry Vaira BTS IRIS Avignon tvaira@free.fr «v0.1 Rappel Programmation modulaire (1/2) Le découpage d'un programme en sous-programmes est appelée programmation

Plus en détail

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections

Plus en détail

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

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 gauthier.picard@emse.fr

Plus en détail

Annexe : La Programmation Informatique

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

Plus en détail

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

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

Plus en détail

TP3 : Creation de tables 1 seance

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

Plus en détail

THÈSE. Contribution à un processus de réication d'abstractions de communication

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,

Plus en détail