GLIN102 UE GLIN 102 Concepts de base en informatique Année 2012 – 2013 DPT Informatique 2012-2013 11 GLIN102 Rappel cours 1 et 2 • Architecture d’un ordinateur 1 Écran 2 Carte mère 3 CPU (Microprocesseur) 4 Mémoire vive (RAM) 5 Cartes de périphériques 6 Alimentation 7 Lecteur de disques (CD) 8 Disque dur 9 Souris 10 Clavier DPT Informatique 2012-2013 22 GLIN102 Rappel cours 1 et 2 • Organisation en couche Applications Système Matériel DPT Informatique 2012-2013 33 GLIN102 Rappel cours 1 et 2 Pour interagir avec le système, on utilise un interpréteur de commande: Interpréteur textuel Langage de commandes, shell, … Exemples : ls, rm, cd, … Interpréteur graphique Manipulation souris, icône, … Exemples : copier-coller à l’aide de la souris, … DPT Informatique 2012-2013 44 GLIN102 Rappel cours 1 et 2 • Système de gestion de fichier (SGF) – Arborescence – Adresse absolue, relative – Caractères spéciaux: /, ~, ., .. – Opérations sur les fichiers (couper / copier / coller) perso – Droits ... / cours edt td1 IN102 td2 ... algo td1 DPT Informatique 2012-2013 ... 55 GLIN102 Contenu • Généralités et Architecture • Système d’exploitation • Logiciels de base … développement • Web et Réseaux DPT Informatique 2012-2013 66 GLIN102 Logiciels .. développement • Généralités autour de quelques logiciels de base • Développement de logiciel • Vers l’algorithmique DPT Informatique 2012-2013 77 GLIN102 Logiciels .. développement • Généralités autour de quelques logiciels de base • Développement de logiciel • Vers l’algorithmique DPT Informatique 2012-2013 88 GLIN102 Généralités logiciels Logiciels .. développement • Logiciels « bureautique » Ex : suite Open Office / Libre Office Traitement de texte Tableur Présentation • Système de gestion de bases de données SGBD DPT Informatique 2012-2013 99 GLIN102 Généralités logiciels Logiciels .. développement • Traitement de texte Fonctionnalités Saisie texte (suite de caractères) insertion d’objets (image, tableau, etc.) Mise en forme Sauvegarde Publipostage Attention !! Structure et mise en forme doivent être dissociées DPT Informatique 2012-2013 10 10 GLIN102 Généralités logiciels Logiciels .. développement Rapport Chap 1 ... Parag 1 ... Chap 2 ... Parag i Parag 1 ... Texte 1 S-par 1 S-par 2 Chap n Parag 2 ... ... ... Image 1 ... Texte 3 Vers le document structuré … SGML, XML DPT Informatique 2012-2013 11 11 GLIN102 Généralités logiciels Logiciels .. développement Rapport Chap 1 ... Parag 1 ... Chap 2 ... Parag i Parag 1 ... Texte 1 S-par 1 S-par 2 Chap n Parag 2 ... ... ... Image 1 ... Texte 3 Un style peut être défini pour chaque composante de la structure DPT Informatique 2012-2013 12 12 GLIN102 Généralités logiciels Logiciels .. développement • Tableur Fonctionnalités Calculs (bibliothèques de fonctions) Mise en forme et association de graphiques Vision « base de données » simplifiée DPT Informatique 2012-2013 13 13 GLIN102 Généralités logiciels Logiciels .. développement Tableur : définition Un tableur est un logiciel qui manipule des feuilles de calcul Une feuille de calcul est une grille contenant des données, soit saisies, soit calculées Chaque donnée se trouve dans une cellule Différents tableurs existent: Excel (Microsoft Office) Calc (OpenOffice, LibreOffice) Gnumeric Kspread (Koffice) Lotus 1-2-3 DPT Informatique 2012-2013 14 14 GLIN102 Généralités logiciels Logiciels .. développement Tableur Un classeur : un ensemble de feuilles (3 par défaut), stocké dans un fichier Une feuille : une grille composée de cellules 256 colonnes max 65536 lignes max Cellules Feuilles DPT Informatique 2012-2013 15 15 GLIN102 Généralités logiciels Logiciels .. développement • Tableur : les cellules – Chaque cellule peut contenir une donnée : Texte, Nombre, – Date, Formule, … ⇒ Différents formats Elle est repérée par sa position Cellule C3 DPT Informatique 2012-2013 16 16 GLIN102 Généralités logiciels Logiciels .. développement • Tableur : l’adressage – C’est la localisation de la cellule – Formats possibles : • Façon A1 : A1, A2… lettre=colonne chiffre=ligne • Nommage des cellules DPT Informatique 2012-2013 17 17 GLIN102 Généralités logiciels Logiciels .. développement • Tableur : les formules – Une formule permet de calculer automatiquement certaines données – Il faut dans la cellule du résultat indiquer la formule voulue en utilisant les adresses des cellules – Les formules doivent commencer par ‘=‘ – Exemple : • =A2+B7 • =3*D5+B7*A3 DPT Informatique 2012-2013 18 18 GLIN102 Généralités logiciels Logiciels .. développement • Le tableur : recopie de formules – Possibilité de copier les formules (et non les résultats) de manière à éviter de devoir retaper les formules B4 = B2*A4 C4 = C2*B4 => Changement de colonnes B5 = B3*A5 => Changement de lignes C5 = C3*B5 => Changement de lignes et colonnes DPT Informatique 2012-2013 19 19 GLIN102 Généralités logiciels Logiciels .. développement • Exemple : conversion Parfois il ne faut pas changer ! =B1*A4 =B2*A5 =B3*A6 =B4*A7 …. Ici le taux est en B1 et il faudrait donc que les formules conservent cette cellule lors des recopies. =B10*A13 DPT Informatique 2012-2013 20 20 GLIN102 Généralités logiciels Logiciels .. développement • ⇒ Le tableur : adresses relatives/absolues – Par défaut les adresses de type A1 sont dites « relatives » (elles sont modifiées par la recopie). Ex : A1 – Il est possible de les transformer en adresses « absolues » (non modifiées par la recopie) : présence de $. Ex : $A$1 – Adresse mixte ou semi-relative • On peut conserver une lettre (une colonne) relative et un chiffre (une ligne) absolu. Ex : A$1 • Ou conserver une lettre (une colonne) absolue et un chiffre (une ligne) relatif. Ex : $A1 Le ‘$’ précède donc la partie absolue (= non modifiable par recopie) DPT Informatique 2012-2013 21 21 GLIN102 Généralités logiciels Logiciels .. développement • Exemple : conversion La formule est donc : =A4*B$1 Il suffit ensuite de la recopier dans toutes les autres cellules et la conversion est juste. DPT Informatique 2012-2013 22 22 GLIN102 Généralités logiciels Logiciels .. développement • Tableur Notation Calculs 16 14 12 =moyenne(A2:C2) Valeurs 10 Note1 Note2 Note3 Moy 8 6 4 2 10 9 8 9 0 Note 1 Note 2 Note 3 Notes 14 … 10 … 15 13 Graphique associé … DPT Informatique 2012-2013 23 23 GLIN102 Généralités logiciels Logiciels .. développement • Tableur Vision «base de données» Tris, recherches, … Nom Prénom e-mail Laboratoire ABDALLAH AMAR-YAHIA Maha Siham [email protected] LIP 6 AT&T Labs Research AMSALEG ANCIAUX BAHRI Laurent Nicolas Afef [email protected] [email protected] [email protected] [email protected] BAZEX Pierre BELHAJJAME Khalid BENITEZ-GUERRERO Edgard-Ivan [email protected] BERRANI BOBINEAU BOUET Sid-Ahmed Christophe Marinette [email protected] BRUNO BURELLE CALABRETTO Gennaro Marvan Sylvie [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] IRISA-CNRS CAMPUS DE BEAULIEU INRIA U.R. ROCQUENCOURT Université Paris Dauphine LAMSADE IRIT-UPS LSR - IMAG LSR - IMAG BP 72 IRISA-INRIA Campus de Beaulieu LSR - IMAG Université Blaise Pascal - CLERMONT II Complexe scientifique LSR - IMAG Université Paris 11 L.R.I. Bât. 490 LISI-INSA Lyon - Bâtiment Blaise Pascal DPT Informatique 2012-2013 24 24 GLIN102 Généralités logiciels Logiciels .. développement • Présentation Fonctionnalités Structure et mise en forme Animation… DPT Informatique 2012-2013 25 25 GLIN102 Généralités logiciels Logiciels .. développement • SGBD Fonctionnalités Stockage de données Interrogation Gestion de la concurrence Sécurité Des logiciels SGBD Postgres, Oracle, Sql-server …. DPT Informatique 2012-2013 26 26 GLIN102 Logiciels .. développement • Généralités autour de quelques logiciels de base • Développement de logiciel • Vers l’algorithmique DPT Informatique 2012-2013 27 27 GLIN102 Développement logiciels Développement de logiciel • Étapes et cycle de vie d'un logiciel • Conception • Codage en langage de haut niveau et mise au point • Déploiement • Architecture web DPT Informatique 2012-2013 28 28 GLIN102 Développement logiciels Développement de logiciel Un utilisateur de l'informatique peut être tenté d’ « écrire » un logiciel par goût ou nécessité. comment fabrique-t-on un logiciel ? (= programme, application ) Attention ! fabriquer des logiciels importants, c'est un métier : programmeur (analyste-programmeur, ingénieur …) DPT Informatique 2012-2013 29 29 GLIN102 Développement logiciels Étapes du développement On distingue les étapes suivantes : Conception Codage et Mise au point Déploiement fonctions du logiciel ? langage,outils.. ? écrire le code, le tester installation DPT Informatique 2012-2013 30 30 GLIN102 Développement logiciels Étapes du développement Comme des difficultés peuvent conduire à revenir sur les étapes antérieures Conception Codage et Mise au point Déploiement fonctions du logiciel ? langage,outils.. ? écrire le code, le tester installation on parle plutôt de cycle de vie DPT Informatique 2012-2013 31 31 GLIN102 Développement logiciels Conception Dans la phase de conception, on fait la liste des fonctions que doit remplir le logiciel Exemple : un logiciel d'inscription d'étudiants devra permettre • • • • l'inscription d'un étudiant à une mention et à des UE avec contraintes la modification et la suppression lister et compter les étudiants par mention ou UE classer les étudiants par population ayant un emploi du temps compatible et les lister • classer les étudiants d'une population en groupes et les lister. • consulter facilement les inscriptions. DPT Informatique 2012-2013 32 32 GLIN102 Développement logiciels Conception – Si le logiciel est « important », il faut étudier comment il s'insère dans le service, en particulier avec des logiciels existants (analyse). Des méthodes (d’analyse et conception) favorisent le travail en équipe et la production de documents – Si le logiciel est « simple » (une seule fonctionnalité), la conception est « légère » … c'est le cas de la plupart des applications personnelles. DPT Informatique 2012-2013 33 33 GLIN102 Développement logiciels Conception Méthode et Atelier de Génie Logiciel • Avec une méthode (objet par exemple), on identifie : – les classes d'objet nécessaires à l'application, en décrivant progressivement tous les détails – leur interaction fonctionnelle et temporelle Un atelier de génie logiciel (= logiciel) guide l'usage pour un projet donné. Exemples d’AGL Eclipse, PowerAMC, Objecteering, Rational Rose DPT Informatique 2012-2013 34 34 GLIN102 Développement logiciels Codage et mise au point Le codage est l'écriture du programme dans un langage de haut-niveau (C++,Java,PHP …). le choix du langage dépend du goût et du savoir du programmeur et de contraintes extérieures. Exemples : • programme hébergé sur serveur n'acceptant que PHP et le SGBD Mysql • partie de projet écrit en C DPT Informatique 2012-2013 35 35 GLIN102 Développement logiciels Codage et mise au point Pour être exécuté, le programme en langage de hautniveau (programme source) devra être traduit en langage machine (programme exécutable). Les programmes source et exécutable sont des fichiers. Exemple: programme P.c en C++ compilateur gcc programme P (ou P.exe) en langage machine Le compilateur est lui-même un programme exécutable, stocké sous forme de fichier DPT Informatique 2012-2013 36 36 GLIN102 Développement logiciels Codage et mise au point L'écriture du programme peut être faite sous un éditeur de texte. Le programme est une chaîne de caractères. Les éditeurs actuels permettent (Cf Xemacs, Kate) : • la coloration d'éléments syntaxiques (chaînes …) pour mieux voir la structure du programme (dépend du langage !) • la complétion automatique (de nom de fonctions …) • la présentation indentée DPT Informatique 2012-2013 37 37 GLIN102 Développement logiciels Codage et mise au point Pour les professionnels, un atelier (cf. Eclipse) permet de gérer : • tous les types de fichiers d'un projet (img,messages …) • la recompilation automatique des parties concernées • diverses versions d'un projet DPT Informatique 2012-2013 38 38 GLIN102 Développement logiciels Codage et mise au point Pour chaque module d’un logiciel, on effectue les cycles suivants, jusqu'à ce qu'il n'y ait plus d'erreur. édition du programme source génération du programme exécutable essai de l’exécutable Lors d'une erreur à l'exécution, le message indique la cause, le module source incriminé et le numéro de ligne DPT Informatique 2012-2013 39 39 GLIN102 Développement logiciels Codage et mise au point L'erreur majeure des programmeurs débutants est de : • ne pas décomposer en petits modules • vouloir tester l'ensemble plutôt que chaque module Il faut tester chaque module, en construisant un environnement adéquat DPT Informatique 2012-2013 40 40 GLIN102 Développement logiciels Codage et mise au point Principe d'architecture des programmes : il faut séparer le traitement "algorithmique" des entrées-sorties le modèle MVC (model view control) fait cette séparation : m1 e/s m2 e/s m3 e/s Vue m4 modèle contrôle Contrôle m5 modèle Modèle DPT Informatique 2012-2013 41 41 GLIN102 Développement logiciels Codage et mise au point Cette séparation est d'autant plus nécessaire que la partie entrée-sorties, ou interface Homme-Machine (IHM) est souvent plus difficile à programmer que le problème lui-même. DPT Informatique 2012-2013 42 42 GLIN102 Développement logiciels Déploiement • Dans le cas le plus simple, il suffit d'invoquer le programme exécutable. • Pour des applications plus complexes, d'autres « paramètres » sont à ajuster fichier 1 fichier 2 fichier 3 SGBD table 1 table 2 programme DPT Informatique 2012-2013 43 43 GLIN102 Développement logiciels Déploiement Pour des applications avec fichiers ou tables de BD, il faut transporter un répertoire contenant – le programme et les fichiers (de sa responsabilité) – un fichier d'installation désignant les SGBD (ou tierces applications) les noms de fichiers de l'utilisateur des paramètres supplémentaires La tendance est d'écrire ces fichiers d'installation en XML DPT Informatique 2012-2013 44 44 GLIN102 Logiciels .. développement • Généralités autour de quelques logiciels de base • Développement de logiciel • Vers l’algorithmique DPT Informatique 2012-2013 45 45 GLIN102 Vers l’algorithmique 1 Définition 2 Paramètres d'un algorithme 3 Types 4 Exemples DPT Informatique 2012-2013 46 46 GLIN102 Vers l’algorithmique • Définitions 2 Paramètres d'un algorithme 3 Types 4 Exemples DPT Informatique 2012-2013 47 47 GLIN102 Vers l’algorithmique Définitions Un programme (ou application, logiciel) est la matérialisation d'un algorithme, notion que nous allons approfondir ici. Si vous devez programmer, les notions suivantes vous seront indispensables, sinon c'est juste pour la culture générale. DPT Informatique 2012-2013 48 48 GLIN102 Vers l’algorithmique Définitions Algorithme - définition Un algorithme est une application (mathématique) définie par : – – – des compositions successives en nombre fini de fonctions élémentaires DPT Informatique 2012-2013 49 49 GLIN102 Vers l’algorithmique Définitions Explication de la définition – compositions successives (=>pas, étapes) Exemple : sin(a*y+b) suggère fortement de calculer a*y puis (a*y)+b puis sin ((a*y)+b) DPT Informatique 2012-2013 50 50 GLIN102 Vers l’algorithmique Définitions Explication de la définition – en nombre fini chaque opération a un temps fini il y a un nombre fini d'opérations DPT Informatique 2012-2013 51 51 GLIN102 Vers l’algorithmique Définitions Explication de la définition – de fonctions élémentaires un ensemble (fini) de fonctions élémentaires est fourni pour faire tous les algorithmes Cet ensemble est-il 'critique' ? DPT Informatique 2012-2013 52 52 GLIN102 Vers l’algorithmique Définitions Explication de la définition – de fonctions élémentaires surprise ! avec les 4 fonctions ajouter 1 (fonction constante) 0 comparer à zéro projection du ième élément d'un tuple (x1, …,xi, …xn) on peut faire toutes les fonctions 'calculables'. DPT Informatique 2012-2013 53 53 GLIN102 Vers l’algorithmique Définitions Explication de la définition – de fonctions élémentaires c'est pourquoi, un ensemble • • • réduit de fonctions (machine théorique de Türing) de fonctions (jeu d'instructions) de micro-processeurs divers de fonctions de langages de programmation ont le même pouvoir d'expression DPT Informatique 2012-2013 54 54 GLIN102 Vers l’algorithmique Définitions À retenir : un algorithme peut être utilisé comme une (nouvelle) fonction élémentaire Cette caractéristique donne sa puissance au logiciel Il y aura donc une partie définition et une ou des utilisations de l'algorithme (appels, invocations) DPT Informatique 2012-2013 55 55 GLIN102 Vers l’algorithmique 1 Définition • Paramètres d'un algorithme 3 Types 4 Exemples DPT Informatique 2012-2013 56 56 GLIN102 Vers l’algorithmique Paramètres d’un algorithme Paramètres d'entrée et de sortie Un algorithme doit résoudre un problème sur des données qui peuvent varier (trier E …) • Les diverses données fournies à l'algorithme recevront des noms : paramètres d'entrée • Les résultats de l'algorithme aussi : paramètres de sortie Attention : rien à voir avec les entrées-sorties système DPT Informatique 2012-2013 57 57 GLIN102 Vers l’algorithmique 1 Définition 2 Paramètres d'un algorithme • Types 4 Exemples DPT Informatique 2012-2013 58 58 GLIN102 Vers l’algorithmique Types Pour décrire un algorithme, non seulement • il faut nommer les variables et les paramètres, • mais il faut dire quel 'genre' d'objet informatique ils sont. Cette indication est le type (ou classe en langage objet). Exemples : caractère, chaîne de caractères, entier, flottant, booléen, tableau, liste, record (=struct) … DPT Informatique 2012-2013 59 59 GLIN102 Vers l’algorithmique 1 Définitions 2 Paramètres d'un algorithme 3 Types • Exemples DPT Informatique 2012-2013 60 60 GLIN102 Vers l’algorithmique Exemples • Honneur aux anciens le calcul du Pgcd d'Euclide int fonction pgcd (int a, int b) { //calcule le pgcd de a et b entiers strictement positifs tant que a !=b faire si a>b alors a =a-b sinon b = b-a return a } DPT Informatique 2012-2013 61 61