Logiciel Libre Cours 3 Fondements: Génie Logiciel
|
|
|
- Baptiste Charles
- il y a 10 ans
- Total affichages :
Transcription
1 Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli [email protected] Laboratoire PPS, Université Paris Diderot URL Copyright 2014 Stefano Zacchiroli Ralf Treinen License Creative Commons Attribution-ShareAlike 4.0 International License Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
2 Outline 1 Algorithmique 2 Génie logiciel 3 Réutilisation, combinaison, coopération Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
3 Rappel du cours 1 Code source : programme écrit par un programmeur dans un langage de programmation (C, Pascal, OCaml,...). Nécessaire pour comprendre ou modifier le programme. Binaire, Exécutable : programme dans le langage de la machine (dépend de l architecture : Pentium, AMD64,...). (Presque) incompréhensible pour des lecteurs humains. Nécessaire pour exécuter le programme. Compilateur : logiciel qui traduit code source en binaire. Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
4 Contenu Cours 2 Qu est-ce que c est l algorithmique Principes du génie logiciel Réutilisation, combinaison, et coopération de logiciels Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
5 Outline 1 Algorithmique 2 Génie logiciel 3 Réutilisation, combinaison, coopération Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
6 L idée algorithmique Problème : Trier une liste d entiers différents, par exemple 1, 17, 5, 12 On veut la mettre en ordre ascendant : 1, 5, 12, 17 Comment résoudre ce problème avec un programme? Le programme doit prendre en entrée (par exemple lire d un fichier) une liste quelconque d entiers ; sortir (par exemple, écrire sur un autre fichier) la liste triée. Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
7 Algorithme Décrire comment organiser le travail pour résoudre une tache Utilise les éléments communs de la programmation instructions primitives, boucles, etc. Indépendant d un langage de programmation concret Peut laisser ouvert certains détails du programme p.ex. : les structures de données ou l ordre d exécution des instructions quand il ne sont pas importants Intuition : la recette derrière le programme D un algorithme au programme : codage / implémentation Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
8 Exemple d un algorithme Première solution du problème de tri : tri à bulles (bubble sort). Tant qu il y a deux éléments successives dans la liste qui ne sont pas dans le bon ordre les inverser. Example (tri à bulles) Étapes : 0 1, 17, 12, 5 Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
9 Exemple d un algorithme Première solution du problème de tri : tri à bulles (bubble sort). Tant qu il y a deux éléments successives dans la liste qui ne sont pas dans le bon ordre les inverser. Example (tri à bulles) Étapes : 0 1, 17, 12, 5 Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
10 Exemple d un algorithme Première solution du problème de tri : tri à bulles (bubble sort). Tant qu il y a deux éléments successives dans la liste qui ne sont pas dans le bon ordre les inverser. Example (tri à bulles) Étapes : 0 1, 17, 12, 5 1 1, 12, 17, 5 Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
11 Exemple d un algorithme Première solution du problème de tri : tri à bulles (bubble sort). Tant qu il y a deux éléments successives dans la liste qui ne sont pas dans le bon ordre les inverser. Example (tri à bulles) Étapes : 0 1, 17, 12, 5 1 1, 12, 17, 5 2 1, 12, 5, 17 Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
12 Exemple d un algorithme Première solution du problème de tri : tri à bulles (bubble sort). Tant qu il y a deux éléments successives dans la liste qui ne sont pas dans le bon ordre les inverser. Example (tri à bulles) Étapes : 0 1, 17, 12, 5 1 1, 12, 17, 5 2 1, 12, 5, , 5, 12, 17 Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
13 Les questions que se posent les informaticiens quand ils voient cet algorithme : Terminaison Est-ce que l exécution s arrête pour n importe quelle liste d entrée? Correction Est-ce que le résultat est bien trié quand l exécution s arrête? Non-déterminisme Il y a des choix à faire (quand il y a plusieurs paires en désordre), est-ce que le choix pris a une conséquence pour le résultat? Complexité Est-ce efficace? Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
14 La stratégie diviser pour régner latin : divide et impera Diviser un problème en plusieurs problèmes : de la même nature, qui sont chacun plus petit que le problème de départ. Résoudre chacun des petits problèmes. Combiner des solutions des petits problèmes pour obtenir la solution du problème du départ. Dire comment résoudre un problème trivial. Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
15 La stratégie diviser pour régner latin : divide et impera Diviser un problème en plusieurs problèmes : de la même nature, qui sont chacun plus petit que le problème de départ. Résoudre chacun des petits problèmes. Combiner des solutions des petits problèmes pour obtenir la solution du problème du départ. Dire comment résoudre un problème trivial. Il s agit d un algorithme récursif. Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
16 Un peu plus concrètement : trier Recette pour trier : 1 Diviser : on choisit une valeur de pivot p et divise une liste donnée l dans deux parties : la liste l 1 des valeurs < p la liste l 2 des valeurs > p 2 Trier l 1 donne r 1, trier l 2 donne r 2. 3 Combiner les résultats : La liste consiste en r 1 d abord, puis p, puis r 2 (pourquoi?) 4 Une liste triviale (longueur 0 ou 1) est déjà triée! Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
17 Comment est-ce que ça marche? Ici : noir : reste à trier, red : déjà trié. Lors de la division en sous-problèmes on écrit l élément pivot directement entre les deux parties, ça facilite la combinaison des résultats! Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
18 Comment est-ce que ça marche? Ici : noir : reste à trier, red : déjà trié. Lors de la division en sous-problèmes on écrit l élément pivot directement entre les deux parties, ça facilite la combinaison des résultats! Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
19 Comment est-ce que ça marche? Ici : noir : reste à trier, red : déjà trié. Lors de la division en sous-problèmes on écrit l élément pivot directement entre les deux parties, ça facilite la combinaison des résultats! Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
20 Comment est-ce que ça marche? Ici : noir : reste à trier, red : déjà trié. Lors de la division en sous-problèmes on écrit l élément pivot directement entre les deux parties, ça facilite la combinaison des résultats! Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
21 Discussion de cet algorithme Terminaison? est-ce qu on peut diviser infiniment? Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
22 Discussion de cet algorithme Terminaison? est-ce qu on peut diviser infiniment? Correction? Est-ce que le résultat est forcement trié? Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
23 Discussion de cet algorithme Terminaison? est-ce qu on peut diviser infiniment? Correction? Est-ce que le résultat est forcement trié? Conséquence du choix de l élément pivot? Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
24 Discussion de cet algorithme Terminaison? est-ce qu on peut diviser infiniment? Correction? Est-ce que le résultat est forcement trié? Conséquence du choix de l élément pivot? Efficacité? Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
25 Discussion de cet algorithme Terminaison? est-ce qu on peut diviser infiniment? Correction? Est-ce que le résultat est forcement trié? Conséquence du choix de l élément pivot? Efficacité? Il s agit ici de quicksort, un des algorithmes de trie les plus rapide (en moyenne), dû à Tony Hoare. Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
26 Bubble sort vs quicksort Video : visualization of quicksort Credits : YouTube user udiprod Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
27 Outline 1 Algorithmique 2 Génie logiciel 3 Réutilisation, combinaison, coopération Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
28 Problèmes du génie logiciel Comment s organiser pour écrire un (grand) logiciel. Grand : > lignes de code Organisation du travail parmi un grand nombre de programmeurs travaillant sur un projet (éventuellement à des endroits différent) Un logiciel n est pas écrit une fois pour l éternité, il évolue toujours ajout de nouvelles fonctionnalités, erreurs, adaptation à des nouveaux environnements,... Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
29 C est un problème très difficile Une citation provocante : Software Engineering is the part of computer science that is too difficult for computer scientists. concerne le processus de création d un logiciel n est lui même pas toujours complètement formel peut quand même profiter d un support par des outils informatiques Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
30 Très grands projets informatiques Exemple : Windows Vista Début du développement : mai 2001 Date de livraison initialement prévue : fin 2003 Date réelle de livraison : janvier 2007 > 50 millions lignes de code plusieurs milliers de programmeurs Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
31 Le modèle traditionnel Comprendre le problème, établir un cahier de charges, établir une spécification du logiciel La nature de la spécification peut varier de très informelle (écrite en langue naturelle) à très formelle (écrite dans un système mathématique). Conception de la structure du logiciel, découpage en unités. Codage (ne prend qu une petite partie du temps total du projet). Tester : Peut servir à détecter des problèmes, mais jamais à assurer l absence de problèmes car on ne peut jamais couvrir tous les cas d utilisation. Il peut être utile de faire tester le programme par une équipe indépendante des programmeurs. Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
32 Le modèle traditionnel (cont.) Documenter : Documentation destinée à des utilisateurs Documentation destinée à des administrateurs de système (p.ex. installation, mise à jour,... ) Documentation destinée à des programmeurs qui veulent modifier le programme (éventuellement pas publiée) Il peut être utile de documenter avant de coder, ou même avant la conception du système. Déploiement Maintenance p.ex. mise à jour, porting, failles de sécurité, changement des besoins,... Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
33 Modèle Cascade Angl. : waterfall model Requirements Product requirements document Design Software architecture Implementation Software Verification Maintenance Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
34 Modèle itératif Modèle plus flexible avec retour en arrière. Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
35 Organiser un programme en unités Nécessité pour les programmes de grande taille. Bonne idée en tout cas. Des personnes différentes peuvent travailler sur les parties différentes (même si elles ne sont pas indépendantes). Compilation séparée. Analyse descendante : Organiser un programme en une hiérarchie d unités, étapes de raffinement successif (separation of concerns). Les langages de programmation différents offrent des moyens différents pour organiser les unités modules, classes, namespaces,... Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
36 Outline 1 Algorithmique 2 Génie logiciel 3 Réutilisation, combinaison, coopération Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
37 Réutilisation de code (par copier-coller) Utiliser une partie d un programme existant pour la rédaction d un nouveau programme. Des nains sur des épaules de géants Bernard de Chartres, XII siècle Nécessite le code source du programme existant. Nécessite le même langage de programmation. Résultat : un nouveau programme monolithique. Problème de licence si on est pas propriétaire du programme existant (voir plus tard le chapitre sur les licences de logiciels). Seulement possible si le programme existant est bien structuré, et permet d extraire facilement un morceau avec une certaine fonctionnalité. Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
38 Réutilisation de code (par copier-coller) exemple On dispose d un programme écrit (par exemple en C) pour trier une liste d entiers. On souhaite écrire un programme qui lit un fichier de données numériques et qui produit un tableau formaté contenant les données dans un ordre ascendant, et en plus leur moyenne. Le programmeur lance son éditeur de texte pour rédiger le programme, puis : Écrire le code pour lire les données d un fichier Inclure textuellement (copier-coller) le programme de trie, éventuellement supprimer les parties inutiles Mettre le code pour calculer la moyenne, et formater le résultat. Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
39 Réutilisation de code (par copier-coller) (cont.) Souvent utilisé en pratique. Inconvénients :? Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
40 Réutilisation de code (par copier-coller) (cont.) Souvent utilisé en pratique. Inconvénients : Code doublé : les mêmes morceaux de code existent en beaucoup de copies dans plein de programmes. Les programmes qui réutilisent du code ne profitent pas des améliorations du code de trie (meilleure performance, réparation d erreurs). Ne marche que pour le même langage de programmation. Pas un bon principe de structuration de code. Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
41 Combinaison au niveau binaire Bibliothèque : logiciel qui n est pas autonome, mais qui fournit des fonctionnalités qui peuvent être utilisées par des autres programmes. Un programme peut utiliser les fonctionnalités fournies par une bibliothèque à travers des appels de procédures qui sont définies dans le code de la bibliothèque. On essaie de fournir des bibliothèques pour des problèmes récurrents. La fonctionnalité fournie par une bibliothèque doit être aussi générique que possible. Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
42 Bibliothèques et langages de programmation Il n est a priori plus nécessaire que le programme qui utilise la bibliothèque, et le code source de la bibliothèque, soient écrits dans le même langage de programmation. L utilisation des bibliothèques écrites dans un autre langage pose en pratique plein de problèmes (qui peuvent être résolus), par exemple la représentation des données. Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
43 Bibliothèque exemple Le programmeur a dans son programme besoin de trier une liste d entiers. Il sait qu il y a une bibliothèque qui fournit des fonctions standard pour traiter des listes d entiers. Le programmeur regarde dans la documentation de la bibliothèque et y trouve une procédure sort qui prend en argument une liste d entiers et qui la trie en ordre ascendant. Dans le programme il suffit d appeler cette procédure, il n est pas nécessaire de connaître le code de la fonction sort dans la bibliothèque. Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
44 Généricité (1) Le programmeur peut avoir des besoins qui sont légèrement différents : Trier dans un ordre descendant au lieu d ascendant. Trier des listes de flottants au lieu d entier. Trier des listes de données structurées, par exemple une donnée peut consister en le nom d un salarié, puis son salaire, puis son ancienneté. Trier une liste de données structurée selon de critères différentes et complexes, par exemple une fois selon le nom, une autre fois selon ancienneté d abord puis salaire quand l ancienneté est la même. Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
45 Généricité (2) Solution : Écrire des bibliothèques avec des fonctions génériques : Fonction qui peut trier une liste de données de n importe quel type (polymorphisme) Fonction de trie qui prend en deuxième argument la procédure qui est utilisée pour comparer deux éléments de la liste (fonction d ordre supérieure) Le degré de généricité possible dépend du langage de programmation. Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
46 Bibliothèques statiques et dynamiques Bibliothèque statique : La compilation du programme utilise le code source du programme + binaire de la bibliothèque. Le compilateur en produit un seul binaire monolithique en faisant une édition de liens statiques. Bibliothèques dynamique : La compilation du programme n utilise que le code source du programme. Le binaire produit contient des appels à des fonctions de la bibliothèque, il faut que la bibliothèque soit installée chez l utilisateur du programme. Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
47 Bibliothèques statiques et dynamiques Installation d un logiciel (en format binaire) : cas statique il y a un seul binaire à déployer qui contient tout qui est nécessaire pour exécuter le programme. Le programme est autonome. cas dynamique le binaire est plus petit, mais il faut assurer que toutes les bibliothèques sont installées chez l utilisateur dans les bonnes versions. Quoi faire quand la bibliothèque change? cas statique il faut recompiler tous les logiciels qui l utilisent, puis déployer cas dynamique il suffit d installer la nouvelle version de la bibliothèque (si l interface binaire (ABI) n a pas changé... ) Stefano Zacchiroli (Paris Diderot) Fondements: génie logiciel / 34
Logiciel Libre Cours 9 Modèles Économiques
Logiciel Libre Cours 9 Modèles Économiques Stefano Zacchiroli [email protected] Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/ Copyright
Environnements et Outils de Développement Cours 1 Introduction
Environnements et Outils de Développement Cours 1 Introduction Stefano Zacchiroli [email protected] Laboratoire PPS, Université Paris Diderot - Paris 7 URL http://upsilon.cc/~zack/teaching/1112/ed6/
Logiciel Libre Cours 2 Fondements: Programmation
Logiciel Libre Cours 2 Fondements: Programmation Stefano Zacchiroli [email protected] Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/
1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : [email protected] Page personnelle : http://www.lri.fr/ hivert
1 de 46 Algorithmique Trouver et Trier Florent Hivert Mél : [email protected] Page personnelle : http://www.lri.fr/ hivert 2 de 46 Algorithmes et structures de données La plupart des bons algorithmes
Évaluation et implémentation des langages
Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation
Machines virtuelles Cours 1 : Introduction
Machines virtuelles Cours 1 : Introduction Pierre Letouzey 1 [email protected] PPS - Université Denis Diderot Paris 7 janvier 2012 1. Merci à Y. Régis-Gianas pour les transparents Qu est-ce qu une
Cours 1 : La compilation
/38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas [email protected] PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà
Entraînement au concours ACM-ICPC
Entraînement au concours ACM-ICPC Concours ACM-ICPC : format et stratégies Page 1 / 16 Plan Présentation Stratégies de base Page 2 / 16 Qu est-ce que c est? ACM-ICPC : International Collegiate Programming
Gé nié Logiciél Livré Blanc
Gé nié Logiciél Livré Blanc Version 0.2 26 Octobre 2011 Xavier Blanc [email protected] Partie I : Les Bases Sans donner des définitions trop rigoureuses, il faut bien commencer ce livre par énoncer
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
En face du commanditaire, on met un chef de projet qui connait le domaine (banque, administration, etc.)
Atelier «Science du projet» séance 4 8 novembre 2008 Compte rendu 1. Sébastien Larribe : la méthode AGILE, méthode de gestion de projet Sébastien Larribe part de l hypothèse que des méthodes de conception,
# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>
94 Programmation en OCaml 5.4.8. Concaténation de deux listes Définissons maintenant la fonction concat qui met bout à bout deux listes. Ainsi, si l1 et l2 sont deux listes quelconques, concat l1 l2 constitue
Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if
Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike
Algorithmes récursifs
Licence 1 MASS - Algorithmique et Calcul Formel S. Verel, M.-E. Voge www.i3s.unice.fr/ verel 23 mars 2007 Objectifs de la séance 3 écrire des algorithmes récursifs avec un seul test rechercher un élément
L informatique en BCPST
L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité
Programmation C. Apprendre à développer des programmes simples dans le langage C
Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités
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
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
Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2
Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................
Cours 1 : Qu est-ce que la programmation?
1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas [email protected] Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre
Chapitre 1 Qu est-ce qu une expression régulière?
Chapitre 1 Qu est-ce qu une expression régulière? Les ordinateurs n ont pas du tout la même conception des textes que nous : pour nous, un texte est un ensemble d idées couchées sur papier. Nous nous en
Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application
Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un
Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)
Objectifs du cours d aujourd hui Informatique II : Cours d introduction à l informatique et à la programmation objet Complexité des problèmes Introduire la notion de complexité d un problème Présenter
Bases de programmation. Cours 5. Structurer les données
Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et
UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.
UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases
LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN
LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN Les contenues de ce document sont la propriété exclusive de la société REVER. Ils ne sont transmis qu à titre d information et ne peuvent en aucun cas
Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie
Chapitre I : Les bases du C++ Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie du logiciel, et ce depuis
Programmes des classes préparatoires aux Grandes Ecoles
Programmes des classes préparatoires aux Grandes Ecoles Filière : scientifique Voies : Mathématiques, physique et sciences de l'ingénieur (MPSI) Physique, chimie et sciences de l ingénieur (PCSI) Physique,
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
Les Licences Libres Ouverture et Protection des Logiciels. Plan
Les Licences Libres Ouverture et Protection des Logiciels Daniel Quintart Avocat au barreau de Bruxelles [email protected] CETIC 1 Plan Préliminaires Première partie Aperçu de la protection des logiciels
Tutoriel : Ecrire un article sur le site de la TEAM GSAS
Tutoriel : Ecrire un article sur le site de la TEAM GSAS Dans ce document vous est présenté comment écrire un article sur le site http://teamgsas.com. Pour créer un article, il suffit d être inscrit sur
IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Dafoe Présentation de la plate-forme UIMA
Laboratoire d Informatique de l université Paris-Nord (UMR CNRS 7030) Institut Galilée - Université Paris-Nord 99, avenue Jean-Baptiste Clément 93430 Villetaneuse, France 11 juillet 2007 Plates-formes
Cours de Programmation 2
Cours de Programmation 2 Programmation à moyenne et large échelle 1. Programmation modulaire 2. Programmation orientée objet 3. Programmation concurrente, distribuée 4. Programmation monadique 5. Les programmes
Debian en milieu professionnel. This document is under the GNU Free Documentation License.
Debian en milieu professionnel This document is under the GNU Free Documentation License. 1 : Plan Présentation du projet Debian Le but de l association Les principes Les moyens et les règles Debian en
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
Logiciel Libre Cours 10 Debian
Logiciel Libre Cours 10 Debian Stefano Zacchiroli [email protected] Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/ Copyright 2014
Contexte et motivations Les techniques envisagées Evolution des processus Conclusion
Vérification de logiciels par analyse statique Contexte et motivations Les techniques envisagées Evolution des processus Conclusion Contexte et motivations Specification Design architecture Revues and
Génie Logiciel Avancé Cours 1 Introduction
Génie Logiciel Avancé Cours 1 Introduction Stefano Zacchiroli [email protected] Laboratoire PPS, Université Paris Diderot - Paris 7 3 Février 2011 URL http://upsilon.cc/zack/teaching/1011/gla/ Copyright
GL - 2 2.2 Processus de développement Cycles de vie
GL - 2 2.2 Processus de développement Cycles de vie Lydie du Bousquet [email protected] En collaboration avec J.-M. Favre, Ph. Lalanda, I. Parissis, Y. Ledru 1 Plan Introduction Modèles en cascade
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
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
Chapitre 2 : Abstraction et Virtualisation
Virtualisation et Cloud Computing Chapitre 2 : Abstraction et Virtualisation Objectifs Présenter la notion de niveaux d abstraction séparés par des interfaces bien définies Description des avantages et
Algorithme. Table des matières
1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............
ACTIVITÉ DE PROGRAMMATION
ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,
11 Février 2014 Paris nidays.fr. ni.com
11 Février 2014 Paris nidays.fr 1 Choisir la bonne architecture logicielle pour automatiser les systèmes de test Jérémy Charavet Ingénieur d Applications, National Instruments France Une architecture logicielle
Présentation du PL/SQL
I Présentation du PL/ Copyright Oracle Corporation, 1998. All rights reserved. Objectifs du Cours A la fin de ce chapitre, vous saurez : Décrire l intéret du PL/ Décrire l utilisation du PL/ pour le développeur
Brique BDL Gestion de Projet Logiciel
Brique BDL Gestion de Projet Logiciel Processus de développement pratiqué à l'enst [email protected] url:http://www.infres.enst.fr/~vignes/bdl Poly: Computer elective project F.Gasperoni Brique BDL
Jade. Projet Intelligence Artificielle «Devine à quoi je pense»
Jade Projet Intelligence Artificielle «Devine à quoi je pense» Réalisé par Djénéba Djikiné, Alexandre Bernard et Julien Lafont EPSI CSII2-2011 TABLE DES MATIÈRES 1. Analyse du besoin a. Cahier des charges
EXPERTS EN DÉVELOPPEMENT ET MODERNISATION DE LOGICIELS WEB ET MOBILES
EXPERTS EN DÉVELOPPEMENT ET MODERNISATION DE LOGICIELS WEB ET MOBILES Groupe AZUR fait la promotion de XI-Factory comme un logiciel FaaS (Factory as a service ou Usine en tant que service) destiné aux
Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme
Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes [email protected] 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation
Certificat Big Data - Master MAthématiques
1 / 1 Certificat Big Data - Master MAthématiques Master 2 Auteur : Sylvain Lamprier UPMC Fouille de données et Medias Sociaux 2 / 1 Rich and big data: Millions d utilisateurs Millions de contenus Multimedia
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
Quelques algorithmes simples dont l analyse n est pas si simple
Quelques algorithmes simples dont l analyse n est pas si simple Michel Habib [email protected] http://www.liafa.jussieu.fr/~habib Algorithmique Avancée M1 Bioinformatique, Octobre 2008 Plan Histoire
Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot
Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,
UE C avancé cours 1: introduction et révisions
Introduction Types Structures de contrôle Exemple UE C avancé cours 1: introduction et révisions Jean-Lou Desbarbieux et Stéphane Doncieux UMPC 2004/2005 Introduction Types Structures de contrôle Exemple
Licence Sciences et Technologies Examen janvier 2010
Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.
Programmation C++ (débutant)/instructions for, while et do...while
Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de
Plan d action SMB d une Approche Agile de la BITM Pour les PME
Plan d action SMB d une Approche Agile de la BITM Pour les PME Personnel, processus et technologie nécessaires pour élaborer une solution rapide, souple et économique Copyright 2013 Pentaho Corporation.
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
Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation
Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des
Représentation des Nombres
Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...
Qualité du logiciel: Méthodes de test
Qualité du logiciel: Méthodes de test Matthieu Amiguet 2004 2005 Analyse statique de code Analyse statique de code Étudier le programme source sans exécution Généralement réalisée avant les tests d exécution
Installation Client (licence réseau) de IBM SPSS Modeler 14.2
Installation Client (licence réseau) de IBM SPSS Modeler 14.2 Les instructions suivantes permettent d installer IBM SPSS Modeler Client version 14.2 en utilisant un licence réseau. Ce présent document
Introduction à la Programmation Parallèle: MPI
Introduction à la Programmation Parallèle: MPI Frédéric Gava et Gaétan Hains L.A.C.L Laboratoire d Algorithmique, Complexité et Logique Cours du M2 SSI option PSSR Plan 1 Modèle de programmation 2 3 4
Propriété intellectuelle en informatique
47 Chapitre 4 Propriété intellectuelle en informatique 1. Introduction Propriété intellectuelle en informatique Nous avons été amenés précédemment à examiner les principes relatifs à la propriété intellectuelle.
Présentation des CMS au CIFOM-EAA
Présentation des CMS au CIFOM-EAA http://www.esne.ch/infogestion/laboratoires/ldi/enseignement/article_0000.html filière informatique de gestion - Dominique Huguenin 1 sommaire Introduction 1 ère partie
Python - introduction à la programmation et calcul scientifique
Université de Strasbourg Environnements Informatique Python - introduction à la programmation et calcul scientifique Feuille de TP 1 Avant de commencer Le but de ce TP est de vous montrer les bases de
Accès instantané aux mots et aux locutions Le dictionnaire électronique offre une traduction rapide d'un mot ou d'une locution
@promt Office 8.0 Description abrégée Spécifiquement conçu pour la maison et les petites entreprises Traduction de documents, de courriers électroniques et de messages instantanés ICQ Traduction de pages
Initiation. àl algorithmique et à la programmation. en C
Initiation àl algorithmique et à la programmation en C Initiation àl algorithmique et à la programmation en C Cours avec 129 exercices corrigés Illustration de couverture : alwyncooper - istock.com Dunod,
Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2
éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........
Plan du cours : Zippers. Des fonctions sur les listes avec position. Des fonctions sur les listes avec position
Plan du cours : Le problème : naviguer efficacement une structure de données Ce qui ne marche pas Ce qui marche : les de Huet Exemples Comment dériver des pour tout type de données Pour en savoir plus
Génie Logiciel Avancé Cours 3 Le modèle à objets
Génie Logiciel Avancé Cours 3 Le modèle à objets Stefano Zacchiroli [email protected] Laboratoire PPS, Université Paris Diderot - Paris 7 URL http://upsilon.cc/zack/teaching/1112/gla/ Copyright
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.
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
Nouveautés CRM 2015 & Migration. By Tanguy Touzard MVP CRM
Nouveautés CRM 2015 & Migration By Tanguy Touzard MVP CRM Nouvelles fonctionnalités Sécurité Recherche Hiérarchies Champs calculés/agrégés Règles métier Processus métier Catalogue produit SLA Information
CESI Bases de données
CESI Bases de données Introduction septembre 2006 Bertrand LIAUDET EPF - BASE DE DONNÉES - septembre 2005 - page 1 PRÉSENTATION GÉNÉRALE 1. Objectifs généraux L objectif de ce document est de faire comprendre
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,
PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN
PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN 1. DÉVELOPPEMENT D'APPLICATION (CONCEPTEUR ANALYSTE) 1.1 ARCHITECTURE MATÉRIELLE DU SYSTÈME INFORMATIQUE 1.1.1 Architecture d'un ordinateur Processeur,
UE Programmation Impérative Licence 2ème Année 2014 2015
UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie [email protected] 2 Programmation Impérative
Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués
International Journal of Engineering Research and Development e-issn: 2278-067X, p-issn: 2278-800X, www.ijerd.com Volume 7, Issue 5 (June 2013), PP.99-103 Solution A La Gestion Des Objets Java Pour Des
1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4
1 Introduction 1-1 Chaîne de développement Algorithm e C+ + Algorigramm e languag e machine binaire Le programme est écrit à l aide de Multiprog sous forme d algorigramme puis introduit dans le microcontrôleur
La solution pour gérer vos connaissances techniques et scientifiques
La solution pour gérer vos connaissances techniques et scientifiques La solution pour gérer, sécuriser et réutiliser vos connaissances techniques et scientifiques TEEXMA est le premier outil collaboratif
PG208, Projet n 3 : Serveur HTTP évolué
PG208, Projet n 3 : Serveur HTTP évolué Bertrand LE GAL, Serge BOUTER et Clément VUCHENER Filière électronique 2 eme année - Année universitaire 2011-2012 1 Introduction 1.1 Objectif du projet L objectif
Twitter et Netvibes pour la veille
Personnaliser sa veille en santé publique Twitter et Netvibes pour la veille Laetitia Haroutunian Documentaliste, Inpes Au programme! Introduction : définitions et enjeux de la veille! Quelques conseils
LOGICIEL DE GESTION DE DOCUMENTS PDF : PROJET INFO 1
LOGICIEL DE GESTION DE DOCUMENTS PDF : PROJET INFO 1 L. POINSOT Contact client : Laurent Poinsot ([email protected]) Résumé : Ce document est le cahier des charges du projet INFO 1.
Master CCI. Compétences Complémentaires en Informatique. Livret de l étudiant
Master CCI Compétences Complémentaires en Informatique Livret de l étudiant 2014 2015 Master CCI Le Master CCI (Compétences Complémentaires en Informatique) permet à des étudiants de niveau M1 ou M2 dans
Quelques éléments de compilation en C et makefiles
Quelques éléments de compilation en C et makefiles Guillaume Feuillade 1 Compiler un programme C Le principe de la compilation consiste à passer d un ensemble de fichiers de code à un programme exécutable
Petit guide des sous-réseaux IP
Petit guide des sous-réseaux IP Robert Hart, [email protected] version française par Laurent Caillat-Vallet, [email protected] v1.0, 31 Mars 1997 Ce document décrit pourquoi et comment découper
Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique
Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation
Éléments de programmation et introduction à Java
Éléments de programmation et introduction à Java Jean-Baptiste Vioix ([email protected]) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-20 Les différents langages informatiques
Cours Composant 2. Qualité logicielle et spécications algébriques
UPMC Paris Universitas Master Informatique STL Cours Composant 2. Qualité logicielle et spécications algébriques c 2005-2008 Frédéric Peschanski UPMC Paris Universitas 24 février 2008 c 2005-2008 Frédéric
UFR d Informatique. FORMATION MASTER Domaine SCIENCES, TECHNOLOGIE, SANTE Mention INFORMATIQUE 2014-2018
UFR d Informatique FORMATION MASTER Domaine SCIENCES, TECHNOLOGIE, SANTE Mention INFORMATIQUE 2014-2018 Objectif L UFR d informatique propose au niveau du master, deux spécialités sous la mention informatique
Libérez votre intuition
Présentation de Qlik Sense Libérez votre intuition Qlik Sense est une application nouvelle génération de visualisation de données en libre-service qui permet à chacun de créer facilement des visualisations
1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)
1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d
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
Manuel de System Monitor
Chris Schlaeger John Tapsell Chris Schlaeger Tobias Koenig Traduction française : Yves Dessertine Traduction française : Philippe Guilbert Traduction française : Robin Guitton Relecture de la documentation
