Fabrication de logiciel Hier, aujourd’hui, et ……
description
Transcript of Fabrication de logiciel Hier, aujourd’hui, et ……
Fabrication de logicielHier, aujourd’hui, et ……
Jean Claude Derniame
ALS 12 mars 2009 [email protected]
Barry Boehm
• Présentation partiellement inspirée d’un papier invité de Barry Boehm à la 28ème Intl Conf on Software Engineering Shangai Mai 2006
• B Boehm – TRW Professor of Software Engineering at USC, débuta en 55
chez General Dynamic , puis à Rand Corporation, a été directeur de DARPA au DOD, puis professeur …
– Auteur de modèles majeurs (cascade , spirale, Cocomo,
– Leader dans la Communauté Software Process
Génie logiciel
• Définition, basée sur celle de Webster de l'ingénierie
• L’application des sciences et des mathématiques par laquelle les propriétés du logiciel sont utiles.
• Inclut “computer science” et les sciences permettant de rendre les choses utiles aux gens– Sciences du comportement, économie, sciences de gestion, etc.
• Immense
• Focalisera sur la fabrication des grands?? programmes
industriels, militaires etc , hier, aujourd’hui et …..
Motivation et
Contexte
Vue “20éme siècle”
Vue “21éme siècle”
•Conclusions
• Importance d’une perspective historique
Pour quelque chose qui est apparu comme un moyen
d’accélérer les calculs
Puis comme une technologie prometteuse et utile
partout
Puis une science et
… une technologie envahissante!
Motivation et
Contexte
Vue “20éme siècle”
Vue “21éme siècle”
•Conclusions
Pour faire des logiciels, il faut
– Des machines
– Des concepts et des langages
– Des outils variés
– Des ateliers
– Des méthodes et …… Des humains!
–pour atteindre des programmes de qualités différentes:
corrects, fiables, performants, maintenables,
réutilisables, agréables, faciles à apprendre, etc.…
Des machines
• Le métier à tisser de Jacquart, 1801• 1936 “On Computable Numbers with an Application to the
Entscheidungsproblem” par Alan Turing, premier calculateur universel programmable
Machines
Langages
Outils
Ateliers
Procédés
•Premier calculateur réalisé en 1941•Premier calculateur à l’université de Nancy 1957
•IBM 650 (2000 mots de 10 chiffres décimaux)
• Ordinateurs d’institutions
•Premiers ordinateurs personnels début 1980•Apple2, PC,…
Sur papier!!!
Machines aujourd’hui
• Nombre d’ordinateurs personnels dans le monde
• Ont été vendus en 2008: 300 Millions• Présents fin 2008: 1 Milliard
• Présents fin 2 015 : 2 Milliards• Produits depuis l’origine:
2,3 Milliards fin 2008• > 35 000 dans Nancy Université, 4500 INPL• Stockage dans les services centraux de NancyU > 60 téra octets (1012)
Machines
Langages
Outils
Ateliers
Procédés
Explosions
• Explosion du nombre d’utilisateurs• Explosion des usages• Explosion des méthodes, des langages• Explosion de la demande de logiciel!!!!• Explosion de la taille de programmes demandés• Babel…….?
1950’s Thèse: “Faire le logiciel comme le matériel” B Boehm
• Hardware-oriented:– Applications: CALCULS avions, ponts, , circuits
– Economie: Boehm project supervisor, 1955• “We’re paying $600/hour for that computer, and $2/hour for
you, and I want you to act accordingly.”
– Software Processes: SAGE (Semi-Automated Ground Environment)
• 1 Million de lignes de code pour un système de défense aérienne, temps réel, avec beaucoup d’interactions avec les utilisateurs……
• Succès du développement pour un système sans précédent
• Hardware-oriented waterfall-type process
Machines
Langages
Outils
Ateliers
Procédés
• Illisibilité
• Complexité: Royce, “for a $5M procurement, need a 30-page spec for hardware, and a 1500-page spec for software”
• Conformité: distance entre souhaits et réalisation
• Evolutivité: au-delà d’un certain point, impossible à maintenir
• fiabilité.? Sécurité?
• Langages non contraints: un nombre peut aussi bien représenter un temps de voyage, une vitesse, la gravité, etc
1960’s Antithèse: . Software Is Not Like Hardware
Erreurs
• Sources d’érreurs
• Apparition d’un « principe »:
“Un programme est un paquet d’erreurs”
“Un petit programme est un petit paquet d’erreurs”
“Un gros programme est un gros paquet d’erreurs”
1960’s Antithesis
• Matériels non fixés, changements fréquents • La demande excède possibilités des ingénieurs
– Médecine, physique, musique, histoire, arts majeurs– Code-and-fix process – Contre-culture: remise en cause de l’autorité?– “Cowboy programmers” considérés héroiques– Hacker culture (Levy, 1984)
• Propriété collective du code• Libérer logiciel, données, l’accés aux ordinateurs • Programmeurs jugés par “l’élégance” de leur code
1960’s Progrès
• Meilleure infrastructure: OS, compilateurs, utilitaires…
• Départements informatiques• Familles de Produits : OS-360, CAD/CAM,
bibliothèques math/statistiques • Quelques grands succés: Apollo /ex• Bases de la programmation rigoureuse et
professionnalisation
1960’S Eclosion des langages
Selon C.A.R. Hoare “Algol a été une grande amélioration de ses successeurs“
Backus,Naur,Hoare, Dijsktra…
Machines
Langages
Outils
Ateliers
Procédés
Programmation impérative
• Concepts de base des langages • Instruction : quoi faire• Affectation : attribuer une valeur à un nom ( variable)• Itération: recommencer une suite d’instructions
• N fois, • Jusqu’à une certaine condition• Tant qu’une condition est vraie
• Appeler une fonction avec paramètres• TYPE d’une variable: ensemble des valeurs qu’il est permis de lui
affecter
• Programmation structurée• Tout cela contrôlé par le compilateur
Machines
Langages
Outils
Ateliers
Procédés
1960’s à Nancy
• C Pair arrive en 1960, prof en 61 • compilation, théorie de la compilation, langages ( Algol 68),
programmation déductive….. Avec les bons principes qui apparaissent
• J Legras • Analyse numérique, Algol linguistique, puis informatique de gestion
• en 66 une vingtaine de personnes• On travaille sur une CAE 510: 8 K, 1 lecteur de ruban,1 dérouleur de
bande magnétique ou à Grenoble ou dans des banques• Mon premier “grand programme” Programme PERT sur un graphe de 3000 points (N2logN) ~10 000 000 d’opérations de graphe, “mémoire virtuelle”,
12 heures de calcul
1960’s Problèmes
• Problèmes: cf 1968, 1969 NATO Reports– Echecs de nombreux grands systems
– Pénétration de la programmation structurée très lente dans les milieux industriels
– Encore beaucoup de “code spaghetti” non maintenable
– Systèmes non fiables, non diagnostiquables
– Compétences techniques des “programmeurs”
Machines
Langages
Outils
Ateliers
Procédés
1970’s Thèse
• Methodes Structurées – Structured programming (Boehm-Jacopini: GO TO unnecessary)
• Formal programming calculus: Dijkstra, Hoare, Floyd • Analyse descendante Mills, Baker
• Waterfall Methods– “Code and fix“ trop onéreux (100:1 for large systems)….il faut– “Concevoir avant de programmer” (De Marco SD, Jackson
JSD/JSP)– “Spécifier avant de concevoir” (PSL/PSA, SA, SREM)– dire le “quoi” d’abord et le vérifier avant d’aller plus loin
• Algorithmique et structures de données
1970’s: Problèmes avec le modèle “Cascade”
• Interpretation trop littérale des jalons séquentiels– Ne convient pas aux applications interactives
– Jalons passés mais pas validès
• Documentation énorme, difficile à lire, à maintenir
• Ne convient pas avec COTS, ni la réutilisation– Analyse ascendante vs. descendante
• Passage à l’échelle, durée, obsolescence– 3 000 000 Lignes de code source :72 mois en développement séquentiel
= 4 générations d’ordinateurs……et 318 changements majeurs dans les spécifications
Cots: Commercial of the shelf:
Achat sur les rayons du magasin
Machines
Langages
Outils
Ateliers
Procédés
Problèmes avec les méthodes formelles
• Excellentes pour petits programmes , critiques • Plus grands programmes prouvés ~ 10 KSLOC• Preuves montrent la présence de défaults, pas l’absence
– Plus efficaces dans les spécifications
• Généralisation à la communauté des développeurs– Techniques demandent expertise en math , $50/SLOC– Profil programmeur moyen aux US en 1975 :
• 2 ans de college, experience en logiciel• Familier avec 2 langages, applications• Désordonné, rigide, “tout dans la tête”, et difficile à gérer
– En France: mieux ( un peu) moins nombreux ( beaucoup)
1970’s GL à Nancy
• Depuis 67: Plan calcul ordinateurs français: Iris 10, 15, 125, 50, 80
• Contribue à nous laisser à l’écart de la communauté internationale
• Oblige à développer nos propres logiciels: • Programmation récursive (C Pair) • Spécifications algébriques ( JP Finance)• Début des preuves de programmes (P Lescanne)• Civa 1er langage modulaire français et avec atelier en 73 450 000 L• Typ 1er langage français à types abstraits 79 (JCD)
• Peu d’impact international en termes d’utilisation
1980’s Synthèse: Productivité, Réutilisation, Objets
• Problème mondial de productivité, compétitivité– Japon /ex: Toshiba SW-reuse: autos, électronique
• Meilleurs accélérateurs de productivité de SW – Travailler plus vite : outils et environnements
– Travailler mieux: procédés et méthodes
– Travailler moins : réutilisation, simplicité;
programmation par standards, objets, – “Silver bullets” technologiques: AI, transformations,
DWIM, PBE (Do What I Mean; Programming by Example)
1980’s Des langages….Babel
• En 1979 4000 langages avec un compilateur !
• Le DOD a des programmes écrits dans plus de 1000…..
• Standardisation!
• Appel international langage généraliste (algorithmique, calcul scientifique, temps réel, gestion)
• comités d’évaluation dans 12 pays, 2 ans évaluation, sélection, amélioration
• Bull Ichbiah, Cousot, Abrial, …
• Obligatoire(US admin ) pendant 10 ans,
• ailleurs très utilisé pour les grands programmes militaires et/ou industriels et enseigné
Langages
Objets
Outils
Ateliers
Procédés
Dans le même temps d’autres paradigmes
• Programmation et conception par objets• Programmation concurrente• Programmation par agents • Programmation par contraintes • Programmation logique• Langages multiparadigmes
• 2 mots clés: Intégration Interopérabilité
Programmation Objet
• Objet du monde physique ( ou pas) est représenté par: /ex moteur d’une voiture
– Ses attributs ( valeurs caractéristiques/ex)• Etat, puissance, Nbre de tours /mn, etc…
– Les “messages” auxquels il peut “réagir”• Démarrer, accélérer, ralentir, éteindre, etc..
Encapsulés
Langages
Objets
Outils
Ateliers
Procédés
Données
Sous-programmes
Héritage…..Meubles
Attributs communs
Taille, prix, volume, matériaux, couleur, etc…..
Méthodes communes
Acheter, vendre, déplacer, casser, renverser ……
Attributs spécifiques: assise, accoudoirs, ….
Méthodes spécifiques: balancer, s’asseoir ….
Héritage, surcharge
• Si chaise hérite de meuble, tout ce qui a été écrit pour meuble est (ré)utilisable pour une chaise
• Déplacer une chaise s’écrit comme déplacer un meuble: machaise.déplacer même si le traitement est différent “surcharge des méthodes ”
• Les objets sont “typés” : si un nom a été déclaré du type chaise il ne pourra désigner que des chaises, sinon erreur
Langages
Objets
Outils
Ateliers
Procédés
Réutilisation des objets
• Analyse et conception par objets plus “naturelle”• Développement de bibliothèques d’objets• Bonne approche de réutilisation dans un contexte
donné, un langage donné• Portabilité, réutilisation dans contextes différents
devra encore progresser (OK maintenant)
Langages
Objets
Outils
Ateliers
Procédés
1980’s Des outils
• Editeurs de textes sources connaissant la grammaire du langage– Incrémental
– Graphique
– Outils de mesure
• Outils de tests• Générateurs d’éditeurs, d’outils de mesure, de jeu
de tests, de compilateurs, etc…
Langages
Objets
Outils
Ateliers
Procédés
Environnement de programmation
Editeurs
Compilateurs
Ed
de
liens
Debugger
Ode
mesure
Ge
n
de
T
es
ts
Système
Langages
Objets
Outils
Ateliers
Procédés
• Notion apparue ~1970 beaucoup enrichie depuis• Plus d’outils , couvre tout le cycle de vie du
logiciel• Ex demo env Java Netbeans
Langages
Objets
Outils
Ateliers
Procédés
/ex Editeurs de conception Langages
Objets
Outils
Ateliers
ProcédésRecevoir Commande
Honorer Commande
Affecter à commande
Vérifier ligne de commande
Autoriser paiement
Annuler Commande
[Échec]
[Succès]
[Stock affecté à toutes les lignes de cde et payement OK]
[En stock]
[Besoin de Recommander]
[Pas en stock]
*Réapprovisionner stock
Réapprovisionner stock
Pour chaque ligne de cde
Atelier de logiciel
Besoins
Conceptions
Programmation
Vérification
Dis
tri
bu
tio
n
MA
in
te
na
ce
Système
versions assistance sécurité apprentissage
Documentation Configurations Etc….
Langages
Objets
Outils
Ateliers
Procédés
1980’s à Nancy
• 81 Crin 90 personnes Pair part• 81 VAX 750• 84 Dossier INRIA• Preuves de programmes se développent (P Lescanne)• Programmation par contraintes (JJ Chabrier)• Environnements de spécification (JP Finance)• Objets Eiffel ( B Meyer, D Colnet 86)• Outils éditeurs de texte (incrémental, graphique, générateur..), (JCD) • 85 LTR3 Langage temps réel pour la défense nationale (Sita)
• 86 Ateliers: participation à PCTE (Portable Common Tool Environment)Projet européen de plate forme supportant des ateliers ( coût moyen
d’un atelier qqs 100 Homme-année)
• 88 Alf Prototype européen d’atelier centré sur des modèles de procédés
Beaucoup de progrés techniques,
recherche et industrie,
mais….
beaucoup d’échecs, de retards,
d’insatisfactions
Motivation et
Contexte
Vue “20éme siècle”
Vue “21éme siècle”
•Conclusions
Insuffisance, variation, irréalisme
des specifications : 35,9%Pb de support, “d’organisation”
donc de “procédé”:23,5%
Pbs de maîtrise des
Technologie:10,7%
1990’s Langages
2000: • Java, C≠ , Prolog, Python, VHDL, ML, Ruby,
TCL, Php, W-langages ( win dev) ….. et tous les langages du web
Langages
Concepts
Architectures
Plateformes
Procédés
Antithèse
1990’s concepts
• Progrès majeurs dans les procédés et les plates formes
• Inginiérie des domaines,` /ex Businesss Objects• Lignes de produits • UML, • architecture
• Planning vs assistance• Plateformes objets distribués CORBA
Langages
Concepts
Architectures
Plateformes
Procédés
Antithèse
Atelier de logiciel
Besoins
Conceptions
Programmation
Vérification
Dis
tri
bu
tio
n
MA
in
te
na
ce
Système
versions assistance sécurité apprentissage
Documentation Configurations Etc….
Cette plate forme devient de
plus en plus
importante
Langages
Objets
Outils
Ateliers
Procédés
Le modèle en spirale Langages
Concepts
Architectures
Plateformes
Procédés
Antithèse
•Interviews
•Prototypes
•Comité de pilotage
• évaluation validation
• modèle en spirale
•Interviews
•Prototypes
•Comité de pilotage
• évaluation validation
• modèle en spirale
Evaluation
des risquesNouvelles
spec
RéalisationEssais
Enoncé
prototypeExpérimentation
Evaluation
des risques
Procédés: Premières idéesFin des 80’s .
• Ateliers centrés sur des modèles de procédés– “utiliser la connaissance des procédés comme outil d’intégration– Intègre les ressources et les rôles des intervenants
• Support d’exécution des modèles de procédés : “SW processes are SW too” ( L Osterweil)
– Ce qui est bon pour les programmes est bon pour les procédés– Reutilisation, modularité, , architecture, programmation– Créativité? Incertitude?
• Support à la conformité des procédés: – Standards and CMM: Standard national (US) pour évaluer la “maturité“
d’une organisation reposant sur des principes de “bon” développement
Langages
Objets
Outils
Ateliers
Procédés
ALF
• Langage modulaire, multiparadigme (impératif, pre-post, raisonnement, rôles, contrats)
• offrant assistance aux usagers• Quoi faire?• Comment?• Pourquoi en suis-je arrivé là?• Comment réparer?, et si…?• Travailles pour moi
1991 Exemple de référence
• En 91, la communauté US “Software process” organise un challenge entre concepteurs de langages de description de procédés à Tokyo chacun devant décrire le même exemple de développment d’un grand programmeexemple
• ALF 2ème : Réaction des européens présents:
Proposition d’un groupe de recherche Promoter
“ouvrir les procédés à la créativité et l’incertitude des développments”
Financé 7 ans toujours actif
Langages
Concepts
Architectures
Plateformes
Procédés
Antithèse
1990’s Antithèse
• “Time to market”• Individus
Emphase sur programmation individuelle et les interactions plutôt que planning et outils
• Logiciel ouvert, (libre, gratuit?)• Personal Software Process• Apparition des méthodes “Agiles”
– petites itérations, pair-programming, etc
• Applications réparties
PCTE+, PCIS 1
Projet OTAN• Groupe de convergence PCTE avec le projet US• PCIS Portable s-Common Tool Integration Set
• Première version d’une spécification de plateforme multilangage ( Java, C, C++)
multisystème, (Windows, Unix) Sécurisée• 30 personnes, 7 pays, ….. abandonné
Langages
Concepts
Architectures
Plateformes
Procédés
Antithèse
PCIS2
• 95 Tim Lindquist( Phoenix) et moi faisons une proposition spontanée US-DOD, France DGA
d’une plateforme basée sur ces idées mais centrée sur un modèle de procédé simplifié et souple et une organisation différente
• 97 cahier des charges : 1500 outils ≠ , en réseau intervenant sur toute les infos disponibles
• Traçabilité, évolutivité, ouvert, Corba, Java, C++
• 2ans pour les spécifications…..réussi EN 1999 car – définition par un groupe de 10 personnes (Cf Boehm 1955)– 2 U, Sema ( 5 ), Ocean Surveillance Center San Diego (3)– Réalisé par une vingtaine de très bons 22M $
• F abandonne en 2000• US: Surveillance radar de la côte ouest des US et du pacifique
Langages
Concepts
Architectures
Platefrmes
Procédés
Antithèse
Corba, .net,dCom, J2E Langages
Concepts
Architectures
Plateformes
Procédés
Antithèse
Corba : Objets distribués
• Réutilisation ===O==> Partage d’objets implantés ailleurs• Changement d’échelle: mise à disposition d’objets informatiques au
niveau de la planète• Infrastructure “mondiale” + qqs bémols• Migration importante de concepts Intégration ==o==>interopérabilité =o=> location de logiciel
Supporte les 3
Utilisable / informaticiens• Architecture complétée par la notion de “composant” pour faciliter la
réutilisation
Langages
Concepts
Architectures
Plateformes
Procédés
Antithèse
Composants
Un composant logiciel est un élément conforme à un modèle de composant qui peut être déployé et composé indépendemment, sans modification, selon un standard de composition ●Council et Heinmann
Szyperski ajoute Il est décrit uniquement par des interfaces définies
contractuellement et par ses dépendances du contexte
Langages
Concepts
Architectures
Plateformes
Procédés
Antithèse
1990’s Composants
Morceau de programme
Services de la . plateforme
Décrit pour
Humains et
Plateforme
Langages
Concepts
Architectures
Plateformes
Procédés
Antithèse
Composants ( suite)
• Standardisé • + atelier de fabrication, assemblage, déploiement
de composants• + standard de description XML• outils d’intégration vérifiant que tout ce qui est
nécessaire est là, sinon téléchargé• Véritable réutilisation
Langages
Concepts
Architectures
Plateformes
Procédés
Antithèse
Patrons
• Modèles de (module, procédure, composant, ou assemblage de …. ) incomplet
• Correspondant à des situations fréquentes
• À compléter en fonction du contexte
Langages
Concepts
Architectures
Plateformes
Procédés
Antithèse
2000’s début: Opposition Modèles de maturité et Méthodes Agile .
• Prédictabilité et Controle: Modèles de maturité
– Repose sur connaissance explicite et documentée
– Lourd mais vérifiable, “scalable”
• Time to Market et Changements rapides: “Agile”– Repose sur connaissance tacite interpersonelle
– léger, adaptable, non “ scalable”
2000s Déploiement
• Bug de l’an 2000 =o=> “reverse engineering”• Pilotage par les risques: le modèle en spirale se
généralise (B Boehm 1983) Procédés : standard RUP
• Importance de l’architecture
• COTS, open source
• Logiciel devient le premier discriminant compétitif– 80% des fonctionnalités des avions
1990-2000’s à Nancy
• Loria 500 personnes • Programmation coopérative• Entreprise globale• Logiciel sûr• Preuves de programmes • Programmation logique• Nancy-U Espaces numériques de travail: ~30 000 000 lignes sources de logiciels mis à dispositions
(portail, services, bases de données, …)
E N T
Une vue hegelienne de l’évolution
Autonomy ; Bio-Computing
1990's 2010's2000's1970's 1980's1960's1950's
Engineer Software
like Hardware
Risk-Based Agile /Plan
-Driven Hybrids ;
Model-Driven Development
Value -Based Methods ;
Collaboration ; Global
Development ; Enterprise
Architectures
Software Differences ,
Engineer Shortages
Scalability ,Risk Mgmt .
Many defects
Compliance
Time to Market ,Rapid Change
Software Value-Add
COTS
Process Overhead
Scalability
SoftSysE
Software as Craft
Formality , Waterfall
Productivity ; Reuse ;
Objects ;Peopleware
Agile Methods
Plan -Driven
Software Maturity Models
Integrated Sw-Systems Engineering
GlobalSystems
ofSystems
Theses
Syntheses
Antitheses
Prototyping
Risk Mgmt .Domain Engr .
Le marché en 2008
Achat global de produits IT et de services ( ~ revenus des vendeurs) égal à $1 700 milliards 2008, croissant de 6% après un 12% en 2007. Global IT 2008 Market Outlook Forrester Feb 2008 Les augmentations les plus importantes Brésil, Inde, Chine, Russie
Perspectives
Tendances
• Ecrit une fois utilisable partout• Focus sur ce qui a du prix pour l’utilisateur• Logiciel embarqué• Changements rapides• Distribution, mobilité, interopérabilité, location• Systèmes complexes de systèmes: globalisation, entreprise globale
• COTS, logiciel libre, intégration de l’héritage• Logiciels autonomes ( autotests, réparation, etc)• Bio-informatique
“ On demand ” IBM: location temporaire de services, de composants, de machines, d’experts…
Nouveaux paradigmes: agents actifs par ex Conception par modèles, gestion de connaissances,
• Composants deviennent “Web services”• “Web intelligent”• Plus hauts niveaux d’abstraction• Migration du Reductionisme vers Postmodernisme
Métaphores
Nouvelles métaphores:
/ ex Phéronome pour
Auto-test permanent
Audit!
“Principes intemporels”
50’s : Ne pas négliger les sciences
“regarder avant de plonger” : éviter les accords prématurés sur les objectifs
60’s Ne pas négliger les sciences : éviter “cow boy programming”
70’s Eliminer les erreurs le plus tôt possible Determiner et valider les objectifs du système 80’s Il y a plusieurs façons d’améliorer la productivité Concevoir et réaliser par morceaux; expliciter toutes leurs
relations ± Ce qui est bon pour les programmes est bon pour les
procédés Prudence avec les “silver bullets”
90’s “Time is money“ e t représente une valeur pour les “clients” Rendre les logiciels utiles, utilisables et RÉUTILISABLES2000’s Si le changement est rapide: prévoir l’adaptibilité dès la
conception, Considérer et satisfaire TOUS les acteurs du logiciel développé.
- Le génie logiciel n’est plus seulement la programmation!!!!• Pour les 2010’s
Consolider ce que vous savez faireRester à l’écoute des évolutions en permanence
Ne pas croire tout ce qui est écrit- “C’est vrai puisque je l’ai lu sur Internet”
Formation: carrière de nos élèves…..2050…
• Cours continuellement à jour
• Anticiper les tendances futures et y preparer les étudiants
• Séparer principes intemporels des pratiques passagères
• Proposer des (petits) projets relevant des pratiques des grands projets
• Participer à la recherche ; incorporer les résultats
• Apprendre à apprendre
• Formation permanente des praticiens
Exemple de projet
Etudier l’impact du remplacement de bus par des trams dans Etudier l’impact du remplacement de bus par des trams dans une villeune ville
Mise en place réseau local d’ordinateurs en auto-gestion Mise en place réseau local d’ordinateurs en auto-gestion Utilisation d’un outil de travail collaboratif (PFE)Utilisation d’un outil de travail collaboratif (PFE) Atelier de modélisation (tauG2, UPPAAL, Spin)Atelier de modélisation (tauG2, UPPAAL, Spin) Atelier de simulation discrète (javaSimulation)Atelier de simulation discrète (javaSimulation) Atelier de développement professionnel (JavaNetbeans, Atelier de développement professionnel (JavaNetbeans,
javadoc, dreamweaver)javadoc, dreamweaver) Outil de procédé (RUP)Outil de procédé (RUP) Travail en groupe ( 12) tous logiciels ouverts gratuitsTravail en groupe ( 12) tous logiciels ouverts gratuits
MERCI
des questions?