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

introduction à la conception Orientée Objet

introduction à la conception Orientée Objet 1 introduction à la conception Orientée Objet IUP GEII 2ème année marcel@univ-tours.fr http://www.blois.univ-tours.fr/ marcel 2 plan cours 1. motivations génie logiciel 2. concepts et techniques orientés

Plus en détail

Un peu d'organisation. Conception et Programmation par Objets HLIN406. Sommaire. Pourquoi vous parler de conception par objets? Notion de modélisation

Un peu d'organisation. Conception et Programmation par Objets HLIN406. Sommaire. Pourquoi vous parler de conception par objets? Notion de modélisation Un peu d'organisation Conception et Programmation par Objets HLIN406 Marianne Huchard, Clémentine Nebut LIRMM / Université de Montpellier 2 Premières semaines Contrôle des connaissances Supports 2015 Sommaire

Plus en détail

Conduite de projets et architecture logicielle

Conduite de projets et architecture logicielle s et architecture logicielle ABCHIR Mohammed-Amine Université Paris 8 15 février 2011 1/36 ABCHIR Mohammed-Amine (Université Paris 8) Conduite de projets et architecture logicielle 15 février 2011 1 /

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

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

Description et illustration du processus unifié

Description et illustration du processus unifié USDP Description et illustration du processus unifié Définit un enchaînement d activités Est réalisé par un ensemble de travailleurs Avec des rôles, des métiers Avec pour objectifs de passer des besoins

Plus en détail

Cours de Génie Logiciel

Cours de Génie Logiciel Cours de Génie Logiciel Sciences-U Lyon MDE Model Driven Engineering http://www.rzo.free.fr Pierre PARREND 1 Mai 2005 Sommaire MDE : principe MDE et le génie logiciel MDE et UML MDE et les Design Patterns

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

Pratique de logiciels de planification

Pratique de logiciels de planification Pratique de logiciels de planification MASTER TECHNOLOGIE & HANDICAP Université Paris 8 Sommaire Introduction Organisation d un projet Les principaux axes de la planification Gestion des tâches Gestion

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 2 : CYCLES DE VIE ET MÉTHODES DE GESTION DE PROJET

CHAPITRE 2 : CYCLES DE VIE ET MÉTHODES DE GESTION DE PROJET CHAPITRE 2 : CYCLES DE VIE ET MÉTHODES DE GESTION DE PROJET UE Gestion de Projet Master 1 STIC 2015/2016 Céline Joiron celine.joiron@u-picardie.fr 2 Introduction Un aspect fondamental de la conduite de

Plus en détail

Cours de Génie Logiciel

Cours de Génie Logiciel Cours de Génie Logiciel Sciences-U Lyon Gestion de Projet Informatique http://www.rzo.free.fr Pierre PARREND 1 Mars 2005 Sommaire Gestion de projet informatique Cycle de vie du logiciel Modèles de Méthodes

Plus en détail

Bases de la programmation orientée objet en Java

Bases de la programmation orientée objet en Java Bases de la programmation orientée objet en Java Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-33 Avant propos Difficultés...

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

Université Laval Faculté des sciences et de génie Département d'informatique et de génie logiciel IFT-3101. Travail pratique #2

Université Laval Faculté des sciences et de génie Département d'informatique et de génie logiciel IFT-3101. Travail pratique #2 Université Laval Faculté des sciences et de génie Département d'informatique et de génie logiciel IFT-3101 Danny Dubé Hiver 2014 Version : 11 avril Questions Travail pratique #2 Traduction orientée-syntaxe

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

WildCAT : un cadre générique pour la construction d'applications sensibles au contexte

WildCAT : un cadre générique pour la construction d'applications sensibles au contexte WildCAT : un cadre générique pour la construction d'applications sensibles au contexte Pierre-Charles David France Télécom, Recherche & Développement Réunion Adapt, Paris 2006-04-06 Plan 1 Introduction

Plus en détail

Modèle d implémentation

Modèle d implémentation Modèle d implémentation Les packages UML: Unified modeling Language Leçon 5/6-9-16/10/2008 Les packages - Modèle d implémentation - Méthodologie (RUP) Un package ou sous-système est un regroupement logique

Plus en détail

Introduction au développement du logiciel

Introduction au développement du logiciel Introduction au développement du logiciel Vers le génie logiciel Université de Nantes Master Miage M1 Plan 1 Introduction 2 Génie logiciel 3 Projet informatique 4 Méthode de développement 5 Qualité Bibliographie

Plus en détail

Projet Informatique. Philippe Collet. Licence 3 Informatique S5 2014-2015. http://deptinfo.unice.fr/twiki/bin/view/linfo/projetinfo201415

Projet Informatique. Philippe Collet. Licence 3 Informatique S5 2014-2015. http://deptinfo.unice.fr/twiki/bin/view/linfo/projetinfo201415 Projet Informatique Philippe Collet Licence 3 Informatique S5 2014-2015 http://deptinfo.unice.fr/twiki/bin/view/linfo/projetinfo201415 Réalisation d'un développement de taille conséquente? r Firefox? Ph.

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

PRINCIPES et METHODES de SPECIFICATION et de CONCEPTION GLOBALE des SYSTEMES INFORMATISES 10/20/02 1

PRINCIPES et METHODES de SPECIFICATION et de CONCEPTION GLOBALE des SYSTEMES INFORMATISES 10/20/02 1 PRINCIPES et METHODES de SPECIFICATION et de CONCEPTION GLOBALE des SYSTEMES INFORMATISES 10/20/02 1 CYCLE de VIE des SYSTEMES INFORMATISES Expression du besoin Développement du «système» Exploitation

Plus en détail

Tamago: Une plateforme pour des comportements

Tamago: Une plateforme pour des comportements Tamago: Une plateforme pour des comportements d agent sûre Séminaire DESIR Hakim Belhaouari Encadrant: Frederic Peschanski Laboratoire d Informatique de Paris 6 & UMPC Paris Universitas Equipe SMA 18 février

Plus en détail

DS Java 1. 19 novembre 2005

DS Java 1. 19 novembre 2005 DS Java 1 19 novembre 2005 Durée : 2 heures. Documents (notes et polycopiés) autorisés. La rigueur et la propreté seront prises en compte dans l évaluation. Le barème est indicatif. Vous rédigerez vos

Plus en détail

Modélisation Principe Autre principe

Modélisation Principe Autre principe Modélisation Principe : un modèle est une abstraction permettant de mieux comprendre un objet complexe (bâtiment, économie, atmosphère, cellule, logiciel, ). Autre principe : un petit dessin vaut mieux

Plus en détail

Développement de logiciel

Développement de logiciel approche formelle et approche à objets Pascal ANDRE Université de Nantes Master Miage M1 Plan Introduction Développement formel du logiciel Développement du logiciel à objets Projection Développement du

Plus en détail

Bertrand Meyer. UConception et programmation orientées objet. T r a d u i t d e l a n g l a i s p a r P i e r r e J o u v e l o t

Bertrand Meyer. UConception et programmation orientées objet. T r a d u i t d e l a n g l a i s p a r P i e r r e J o u v e l o t UConception et programmation orientées objet Bertrand Meyer T r a d u i t d e l a n g l a i s p a r P i e r r e J o u v e l o t Groupe Eyrolles, 2000, pour le texte de la présente édition en langue française.

Plus en détail

Introduction aux Composants Logiciels

Introduction aux Composants Logiciels Introduction aux Composants Logiciels Christian Pérez LIP/INRIA Année 2010-11 Plan Introduction aux composants logiciels Pourquoi des composants logiciels Notions de composants logiciels Conclusion Survol

Plus en détail

Partie I : Automates et langages

Partie I : Automates et langages 2 Les calculatrices sont interdites. N.B. : Le candidat attachera la plus grande importance à la clarté, à la précision et à la concision de la rédaction. Si un candidat est amené à repérer ce qui peut

Plus en détail

Compilation séparée. Compilation séparée. ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1

Compilation séparée. Compilation séparée. ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1 Compilation séparée Compilation séparée ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1 Compilation séparée Modularité GCC : 4 millions de lignes de code Noyau

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

Modélisation des Systèmes d Information Jean-Yves Antoine

Modélisation des Systèmes d Information Jean-Yves Antoine Modélisation des Systèmes d Information Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine Processus de développement logiciel Jean-Yves Antoine U. Bretagne Sud - UFR SSI - IUP Vannes année 2001-2002

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

Page de garde. UniFr - InfoTeam. Travail de master Méthodologie d ingénierie logicielle adaptée à une PME. Yannick Thiessoz 04.

Page de garde. UniFr - InfoTeam. Travail de master Méthodologie d ingénierie logicielle adaptée à une PME. Yannick Thiessoz 04. Page de garde UniFr - InfoTeam Travail de master Méthodologie d ingénierie logicielle adaptée à une PME Yannick Thiessoz 04.2007 Plan Contexte Travail de Master Microsoft Visual Studio Team System Méthodologies

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

PHASE SOUS-PHASE MOA MOE POINTS A TRAITER. besoins. charges. I.A.2 Échéances. I.A.3 Utilisateurs. I.A.4 Besoin fonctionnels. I.A.5 Évolutions à venir

PHASE SOUS-PHASE MOA MOE POINTS A TRAITER. besoins. charges. I.A.2 Échéances. I.A.3 Utilisateurs. I.A.4 Besoin fonctionnels. I.A.5 Évolutions à venir PHASE SOUS-PHASE MOA MOE POINTS A TRAITER I. La définition des I.A. L'expression des besoins Rédige (spécifie les besoins). Consulte / utilise pour rédiger le cahier des I.A.1 Positionnement stratégique

Plus en détail

Sémantique des Langages de Programmation

Sémantique des Langages de Programmation Sémantique des Langages de Programmation Introduction Stefano Guerrini stefano.guerrini@univ-paris13.fr LIPN - Institut Galilée, Université Paris Nord 13 Sup Galillée Informatique, 1ère année 2009 2010

Plus en détail

Méthodes de test. Mihaela Sighireanu

Méthodes de test. Mihaela Sighireanu UFR d Informatique Paris 7, LIAFA, 175 rue Chevaleret, Bureau 6A7 http://www.liafa.jussieu.fr/ sighirea/cours/methtest/ Partie I 1 Propriétés 2 Un peu de génie logiciel de test 3 Eléments Problèmes Point

Plus en détail

Table des matières. Chapitre 1. Introduction... 13 1.1. Objectif... 13 1.2. Rappel... 15 1.3. Synthèse... 16 1.4. Bibliographie...

Table des matières. Chapitre 1. Introduction... 13 1.1. Objectif... 13 1.2. Rappel... 15 1.3. Synthèse... 16 1.4. Bibliographie... Table des matières Chapitre 1. Introduction... 13 1.1. Objectif... 13 1.2. Rappel... 15 1.3. Synthèse... 16 1.4. Bibliographie... 17 Chapitre 2. Du système au logiciel... 19 2.1. Introduction... 19 2.2.

Plus en détail

DÉPLOIEMENT D UN ERP. Cours dispensé pour les L3 MSI Elaboré par : Mehdi M tir 2013/2014 Chapitre 3 : Modélisation des besoins

DÉPLOIEMENT D UN ERP. Cours dispensé pour les L3 MSI Elaboré par : Mehdi M tir 2013/2014 Chapitre 3 : Modélisation des besoins 1 DÉPLOIEMENT D UN ERP Cours dispensé pour les L3 MSI Elaboré par : Mehdi M tir 2013/2014 Chapitre 3 : Modélisation des besoins LA CONDUITE D UN PROJET ERP La conduite d un projet d ERP est différente

Plus en détail

Génie logiciel. Concepts fondamentaux. Bruno MERMET, Université du Havre 1

Génie logiciel. Concepts fondamentaux. Bruno MERMET, Université du Havre 1 Génie logiciel Concepts fondamentaux Bruno MERMET, Université du Havre 1 Nécessité du Génie Logiciel Bruno MERMET, Université du Havre 2 Développement d un logiciel Caractéristiques souhaitées : Adéquation

Plus en détail

En informatique et en particulier en génie logiciel, la qualité logicielle est une appréciation globale d'un logiciel, basée sur de nombreux

En informatique et en particulier en génie logiciel, la qualité logicielle est une appréciation globale d'un logiciel, basée sur de nombreux Introduction En informatique et en particulier en génie logiciel, la qualité logicielle est une appréciation globale d'un logiciel, basée sur de nombreux indicateurs 1. La complétude des fonctionnalités,

Plus en détail

Base de données. Objectifs du cours 2014-05-20 COURS 01 INTRODUCTION AUX BASES DE DONNÉES

Base de données. Objectifs du cours 2014-05-20 COURS 01 INTRODUCTION AUX BASES DE DONNÉES 1 Base de données COURS 01 INTRODUCTION AUX BASES DE DONNÉES Objectifs du cours 2 Introduction aux bases de données relationnelles (BDR). Trois volets seront couverts : la modélisation; le langage d exploitation;

Plus en détail

LA DEMARCHE DE PROJET

LA DEMARCHE DE PROJET LA DEMARCHE DE PROJET Baccalauréat STI2D-SIN SIN 1.1 : La démarche de projet Objectifs o Utiliser les outils adaptés pour planifier un projet (Revue de projet, Cartes mentales, Gantt, chemin critique...

Plus en détail

Eléments de syntaxe du langage Java

Eléments de syntaxe du langage Java c jan. 2014, v3.0 Java Eléments de syntaxe du langage Java Sébastien Jean Le but de ce document est de présenter es éléments de syntaxe du langage Java : les types primitifs, les opérateurs arithmétiques

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

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

Compilation séparée. ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1

Compilation séparée. ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1 Compilation séparée ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1 Modularité GCC : 4 millions de lignes de code Noyau Linux : 12 millions de lignes de code

Plus en détail

Les expériences d ERNI dans l univers du management, des processus et des technologies. Experience N 52. Mars 2012 Pas à pas vers de bonnes exigences

Les expériences d ERNI dans l univers du management, des processus et des technologies. Experience N 52. Mars 2012 Pas à pas vers de bonnes exigences Les expériences d ERNI dans l univers du management, des processus et des technologies Experience N 52 Mars 2012 OutsourcINg Pas à pas vers de bonnes exigences Outsourcing 10 11 Pas à pas vers de bonnes

Plus en détail

Les types somme. 1 Préparation du TP. 2 Interface du module Carte. Algorithmes et Programmation Impérative 2. 2.1 Les types de donnees

Les types somme. 1 Préparation du TP. 2 Interface du module Carte. Algorithmes et Programmation Impérative 2. 2.1 Les types de donnees Univ. Lille1 - Licence Informatique 2ème année 2014-15 Algorithmes et Programmation Impérative 2 Les types somme 1 Préparation du TP Dans le prochain TP, vous allez réaliser un programme de jeu de poker

Plus en détail

Positionnement de UP

Positionnement de UP UNIFIED PROCESS Positionnement de UP Unified Process Langage Méthode Outil logiciel UML UP RUP 6 BONNES PRATIQUES développement itératif gestion des exigences architecture basée sur des composants modélisation

Plus en détail

Génie logiciel avancé

Génie logiciel avancé Génie logiciel avancé Mihaela Sighireanu UFR d Informatique Paris Diderot, LIAFA, 175 rue Chevaleret, Bureau 6A7 http://www.liafa.jussieu.fr/ sighirea/cours/genielog/ Spécification formelle: Types de données

Plus en détail

Héritage en java : Calculatrice SDC

Héritage en java : Calculatrice SDC Programmation orientée objet L3 MIAGE Héritage en java : Calculatrice SDC Travail à rendre : le code complet du projet SDC sous forme d une archive tar.gz. L archive comportera trois répertoires : un répertoire

Plus en détail

Résumé du document «Programmes des classes préparatoires aux Grandes Écoles ; Discipline : Informatique ; Première et seconde années - 2013»

Résumé du document «Programmes des classes préparatoires aux Grandes Écoles ; Discipline : Informatique ; Première et seconde années - 2013» Résumé du document «Programmes des classes préparatoires aux Grandes Écoles ; Discipline : Informatique ; Première et seconde années - 2013» I Objectifs Niveau fondamental : «on se fixe pour objectif la

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

Yannick Prié UFR Informatique Université Claude Bernard Lyon 1 M1 MIAGE SIMA / M1 Informatique MIF17 2008 2009

Yannick Prié UFR Informatique Université Claude Bernard Lyon 1 M1 MIAGE SIMA / M1 Informatique MIF17 2008 2009 Yannick Prié UFR Informatique Université Claude Bernard Lyon 1 M1 MIAGE SIMA / M1 Informatique MIF17 2008 2009 Notion de méthode de conception de SI Méthodes OO de conception Généralités sur les méthodes

Plus en détail

Aperçu rapide des méthodes formelles

Aperçu rapide des méthodes formelles Méthodes formelles 1 Aperçu rapide des méthodes formelles Christian Attiogbé Faculté des sciences Université de Nantes Christian.Attiogbe@univ-nantes.fr Méthodes formelles 2 Développement de logiciels

Plus en détail

Correction de programmes : Logique de Hoare

Correction de programmes : Logique de Hoare 16 juillet 2009 Logique et informatique Vis-à-vis de l informatique la logique a au moins 2 rôles : 1 Externe et théorique (fondements de l informatique - Électif en S4) : Logique comme méta-informatique

Plus en détail

Algorithmique et Analyse d Algorithmes

Algorithmique et Analyse d Algorithmes Algorithmique et Analyse d Algorithmes L3 Info Cours 5 : Structures de données linéaires Benjamin Wack 2015-2016 1 / 37 La dernière fois Logique de Hoare Dichotomie Aujourd hui Type Abstrait de Données

Plus en détail

Analyse et conception des Systèmes d Information. La démarche Merise : La Production Logicielle

Analyse et conception des Systèmes d Information. La démarche Merise : La Production Logicielle Analyse et conception des Systèmes d Information La démarche Merise : La Production Logicielle La production du logiciel Place, objectifs et principes directeurs Christophe.Nicolle@u-bourgogne.fr Introduction

Plus en détail

Listes de personnes et calculatrice polonaise inverse en Java

Listes de personnes et calculatrice polonaise inverse en Java Listes de personnes et calculatrice polonaise inverse en Java Université Paris Sud Motivation Le but de cet exercice est de manipuler les listes chaînées et les piles et de voir leur application en analyse

Plus en détail

Chapitre 1. Introduction aux Bases de Données. Cours de Bases de Données. Polytech Paris-Sud. Chapitre 1 : Quelques questions

Chapitre 1. Introduction aux Bases de Données. Cours de Bases de Données. Polytech Paris-Sud. Chapitre 1 : Quelques questions Cours de Bases de Données Chapitre 1 Polytech Paris-Sud Sarah Cohen-Boulakia LRI, Bât 490, Université Paris-Sud 11, Orsay cohen @ lri. fr 01 69 15 32 16 Introduction aux Bases de Données 1 2 Chapitre 1

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

Projet : Plan Assurance Qualité

Projet : Plan Assurance Qualité Projet : Document : Plan Assurance Qualité 2UP_SPEC_DEV1 VERSION 1.00 Objet Ce document a pour objectif de définir la démarche d analyse et de conception objet ainsi les activités liées. Auteur Eric PAPET

Plus en détail

Techniques de Développement

Techniques de Développement Techniques de Développement Quelques définitions relatives au développement de logiciel Sébastien Faucou Université de Nantes (IUT de Nantes, département Informatique) Licence Professionnelle Systèmes

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

Méthode de de gestion de de projets au au SITEL (SPM :: SITEL Project Management)

Méthode de de gestion de de projets au au SITEL (SPM :: SITEL Project Management) Méthode de de gestion de de projets au au SITEL (SPM :: SITEL Project Management) 24.10.2005-1/12 Méthode d organisation simple pour les projets du SITEL Les méthodes d organisation de projets les plus

Plus en détail

Programmation PHP Septembre 2010

Programmation PHP Septembre 2010 IFT1147 Programmation Serveur Web avec PHP Plan La POO en PHP Lecture du chapitre 20. Programmation par objets Introduction à la POO Objets et classes Propriétés Méthodes Private Héritage Polymorphisme

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

BACHELOR OF SCIENCE INFORMATICIEN-NE DE GESTION

BACHELOR OF SCIENCE INFORMATICIEN-NE DE GESTION Informatique de gestion BACHELOR OF SCIENCE HES-SO BACHELOR OF SCIENCE INFORMATICIEN-NE DE GESTION Plans d études et descriptifs des modules Filière à plein temps et à temps partiel Table des matières

Plus en détail

Introduction à la gestion de projets. Laurent Poinsot. Introduction. 26 janvier 2009

Introduction à la gestion de projets. Laurent Poinsot. Introduction. 26 janvier 2009 26 janvier 2009 Le modèle du est une méthodologie de développement logiciel qui est devenue un standard de l industrie logicielle. Ce modèle est constitué de deux phases : l une est dite descendante et

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

Estimation des charges. «Le travail se dilate jusqu à remplir le temps disponible»

Estimation des charges. «Le travail se dilate jusqu à remplir le temps disponible» «Le travail se dilate jusqu à remplir le temps disponible» Le savoir faire du chef de projet Pas d excès d optimisme Retour sur expérience Toujours garder de la marge Identifier les points à risque Ne

Plus en détail

MODÉLISATION DES BESOINS

MODÉLISATION DES BESOINS MODÉLISATION DES BESOINS Diagrammes de cas d utilisation Cas d'utilisation : Use Case (Jacobson) Permettent déxprimer les attentes/besoins des utilisateurs Permettent de définir les limites du système

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

6. Des objets bien conçus

6. Des objets bien conçus Conception objet en Java avec BlueJ une approche interactive 6. Des objets bien conçus David J. Barnes, Michael Kölling version française: Patrice Moreaux Rédigé avec 1.0 Conception objet en Java avec

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

Cours de Génie Logiciel. David Janiszek. Le projet. En résumé. Troisième partie III. Eléments de gestion de projet

Cours de Génie Logiciel. David Janiszek. Le projet. En résumé. Troisième partie III. Eléments de gestion de projet Troisième partie III Eléments de gestion de projet Un projet informatique est l ensemble des activités et des actions à entreprendre pour répondre au besoin d informatisation d un ensemble de tâches dans

Plus en détail

SYSTEMES D INFORMATION & CONCEPTION de BdD

SYSTEMES D INFORMATION & CONCEPTION de BdD SYSTEMES D INFORMATION & CONCEPTION de BdD PLAN CONCEPT DE SYSTEME D INFORMATION MODELISATION D UN SYSTEME D INFORMATION MODELISATION CONCEPTUELLE : les METHODES METHODE SYSTEMIQUE METHODE OBJET L3 Informatique

Plus en détail

Semaine 6 : La notation For

Semaine 6 : La notation For Semaine 6 : La notation For Les fonctions d'ordre supérieur telles que map, atmap ou lter fournissent des constructions puissantes pour manipuler les listes. Mais parfois le niveau d'abstraction requis

Plus en détail

Principes de Paquetage. Packaging et Marketing

Principes de Paquetage. Packaging et Marketing Génie Logiciel Conception Principes de Paquetage Packaging et Marketing La conception Définition Générale : Activité créatrice qui consiste à élaborer un projet, ou une partie des éléments le constituant,

Plus en détail

Bienvenue dans le monde de la construction logicielle

Bienvenue dans le monde de la construction logicielle Chapitre 1 Bienvenue dans le monde de la construction logicielle Sommaire : 1.1 La construction logicielle, qu est-ce que c est? : page 3 1.2 Pourquoi la construction logicielle est-elle importante? :

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

Nb de Pages : 11 Taille : 250 368 octets Version : 1.0. Référence : oepa_ieee730_20050120. Auteurs : Pierre Gallice

Nb de Pages : 11 Taille : 250 368 octets Version : 1.0. Référence : oepa_ieee730_20050120. Auteurs : Pierre Gallice OEPA Traduction de la norme IEEE 730 Nb de Pages : 11 Taille : 250 368 octets Version : 1.0 Référence : oepa_ieee730_20050120 Auteurs : Pierre Gallice Validé par : Antoine Tallon, chef de projet Destinataires

Plus en détail

Introduction aux Bases de Données

Introduction aux Bases de Données Introduction aux Bases de Données I. Bases de données I. Bases de données Les besoins Qu est ce qu un SGBD, une BD Architecture d un SGBD Cycle de vie Plan du cours Exemples classiques d'applications BD

Plus en détail

Table des Matières. Table des Figures 7. Introduction Générale 9. Chapitre 1 - Langages de description d architectures matérielles hybrides 23

Table des Matières. Table des Figures 7. Introduction Générale 9. Chapitre 1 - Langages de description d architectures matérielles hybrides 23 Table des Figures 7 Introduction Générale 9 1. Outils et plate-formes de construction d application 9 2. Intégration de paradigmes de conception dans le cycle de vie 10 2.1. Equilibrage de charge et équilibrage

Plus en détail

UML Diagramme de classes (class diagram) pour le recueil et l analyse des besoins. Emmanuel Pichon 2013 V1.1

UML Diagramme de classes (class diagram) pour le recueil et l analyse des besoins. Emmanuel Pichon 2013 V1.1 UML Diagramme de classes (class diagram) pour le recueil et l analyse des besoins 2013 V1.1 Objectif Diagramme de classes (class diagram) pour le recueil des besoins et l analyse Présenter un ensemble

Plus en détail

Automatisation de la certification formelle de systèmes critiques par instrumentation d interpréteurs abstraits

Automatisation de la certification formelle de systèmes critiques par instrumentation d interpréteurs abstraits 1 d Automatisation de la certification formelle de systèmes critiques par instrumentation d sous la direction de Michaël Périn Soutenance de Thèse de Doctorat Université de Grenoble - Laboratoire Verimag

Plus en détail

Modélisation des données

Modélisation des données 1 2 Démarche classique d un projet informatique Analyse de la situation existante et des besoins ; Création d une série de modèles, qui permettent de représenter tous les aspects importants ; A partir

Plus en détail

Informatiques. Module : Outils RAD

Informatiques. Module : Outils RAD Management de Projets Informatiques Module : Outils RAD Niveau : S4 du L2/ISIL Génie Logiciel Le terme génie logiciel (en anglais software engineering) désigne l'ensemble des méthodes, des techniques et

Plus en détail

Option Informatique Arbres binaires équilibrés

Option Informatique Arbres binaires équilibrés Option Informatique Arbres binaires équilibrés Sujet novembre 2 Partie II : Algorithmique et programmation en CaML Cette partie doit être traitée par les étudiants qui ont utilisé le langage CaML dans

Plus en détail

Projets de Diplôme Bachelor (PDB) HEIG-VD

Projets de Diplôme Bachelor (PDB) HEIG-VD Projets de Diplôme Bachelor (PDB) HEIG-VD Kick-off Février 2011, v 1.6 christian.buchs@heig-vd.ch 1 Contenu 1. Gestion de projet 2. Bilans hebdomadaires 3. Le rapport 4. Activités de test 5. Évaluation

Plus en détail

Programmation en VBA

Programmation en VBA Programmation en VBA Présentation de Visual Basic Visual Basic : Basic : dérivé du langage Basic (Biginner s All purpose Symbolic Instruction Code) des années 60 Visual : dessin et aperçu de l interface

Plus en détail

I. Bases de données. Exemples classiques d'applications BD. Besoins de description

I. Bases de données. Exemples classiques d'applications BD. Besoins de description I. Bases de données Exemples classiques d'applications BD Les besoins Qu est ce qu un SGBD, une BD Architecture d un SGBD Cycle de vie Plan du cours Gestion des personnels, étudiants, cours, inscriptions,...

Plus en détail

Environnements de Développement

Environnements de Développement Institut Supérieur des Etudes Technologiques de Mahdia Unité d Enseignement: Environnements de Développement Mme BEN ABDELJELIL HASSINE Mouna m.bnaj@yahoo.fr Développement des systèmes d Information Syllabus

Plus en détail

Qu est-ce qu une milestone (jalon)? Tâche de durée nulle, sans ressource. Elle est destinée à marquer des moments clés dans un projet.

Qu est-ce qu une milestone (jalon)? Tâche de durée nulle, sans ressource. Elle est destinée à marquer des moments clés dans un projet. Cours Ephec Niv. 2 : Technique et gestion de projet Par Monsieur Bertieaux Année Académique 2014-2015 Réponse aux questions du cours, slide Cours 2_1_Planification Vous avez un projet classique qui se

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

Management par les processus Les facteurs clés de succès. Lionel Di Maggio Master 1 MIAGE

Management par les processus Les facteurs clés de succès. Lionel Di Maggio Master 1 MIAGE Management par les processus Les facteurs clés de succès Lionel Di Maggio Master 1 MIAGE 1 1. Objectifs et définitions 2. Le retour sur investissement des démarches 3. Les éléments structurants 4. Mise

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

Gestion de projet Agile. STS IRIS Module 4.2 - «Gérer et organiser un projet informatique»

Gestion de projet Agile. STS IRIS Module 4.2 - «Gérer et organiser un projet informatique» Gestion de projet Agile Module 4.2 - «Gérer et organiser un projet informatique» Sommaire Introduction Principes et méthodes Agiles Scrum 2 Introduction Gestion de projet : démarche structurante assurant

Plus en détail