CQP 112 Introduc/on à la programma/on Thème 2 : Architecture d un système informa/que Département d informa/que CQP 112 : Introduc/on à la programma/on
Plan 1. Historique des ordinateurs 2. Composants d un ordinateur 3. Environnement logiciel 4. Développement de logiciels 5. Exercices
1. Historique des ordinateurs q Premier calculateurs dans les années 40 q Développement fulgurent et en cours q U/lisa/on ì, volume î, prix î, puissance ì q Ou/l inanimé apendant ordres (programmes) q Obtenu après analyse- concep/on q Langage de l ordinateur : aride, binaire q Langage de l analyste- programmeur : C++ q Compilateur : traducteur
1. Historique des ordinateurs q Calcul : du la/n «calculi» signifiant «caillou» q Premiers ou/ls de calcul manuel q Abaque (an - 500) q Règle à calcul (1625) q Premiers calculateurs mécaniques q Pascaline : première machine à calculer (1642) q Babbage : concep/on d une machine programmable (1830) q Hollerith : fonde la «Tabula/ng Machine Co», ancêtre de «IBM» (1896).
1. Historique des ordinateurs q Premiers ordinateurs électroniques années 30 q Turing / Flowers (1937-40 Ordinateurs Bombe/ Colossus pour briser les codes allemands) q Zuse (1938-41, travaux méconnus car non- publiés et vendus) q ABC Atanasoff- Berry Computeur (1939) pour résoudre des problèmes mathéma/ques (systèmes d équa/ons)
1. Historique des ordinateurs q Premiers ordinateurs électroniques années 30 q ENIAC (1946 Premier ordinateur électronique à u/lisa/on générale, calcul de trajectoire d obus) è Changements de programme lourds (branchements, commutateurs) q Von Neumann (1945-49 programmes et données en mémoire)
1. Historique des ordinateurs q Évolu/on technologique rapide par la suite q Premier ordinateur à transistor (1956) q Inven/on des circuits intégrés par TI (Texas Inst. 1958) q Premier micro- processeur (1971) q Volume des ordinateurs q Avant 1975, gros et coûteux, restreints à quelques entreprises q Après 1975, débuts des micro- ordinateurs, accessibilité à tous
1. Historique des ordinateurs q Évolu/on technologique q Avant 1939 è manque de technologie q Avant 1975 è taille et consomma/on importante q Après 1975 è début des micro- ordinateurs
1. Historique des ordinateurs q Systèmes d exploita/on q Logiciel gérant les ressources matérielles et logiques de l ordinateur q Apparu après premiers ordinateurs dans les années 60 (OS/360, VM, UNIX, DOS, Windows, Linux, Solaris, MacOS) q Autres développements logiciels q Engelbart (1968) : Interface graphique q Communica/on réseau (> 1970) : Arpanet, ancêtre de TCP/IP q Berners- Lee (> 1990) : Web/Internet, Yahoo, Google, Facebook, etc.
Plan 1. Historique des ordinateurs 2. Composants d un ordinateur 3. Environnement logiciel 4. Développement de logiciels 5. Exercices
2. Composants d un ordinateur Mémoire secondaire (disposi/f de stockage) (disque dur, carte mémoire, clé USB, DVD, CD- ROM, ) Disposi/f d entrée (clavier, souris, écran, ) Ordinateur = Boîte noire Disposi/f de sor/e (écran, imprimante, ) Réseau (communica/on, disposi/f de sor/e spéciale)
2. Composants d un ordinateur Boîte noire Unité centrale de traitement (UCT, CPU, coeur) Matériel = Hardware (processeur, mémoire, périphérique) Mémoire centrale (principale, RAM) Périphérique Logiciel = Sowware (Programme)
2. Composants d un ordinateur q Mémoire centrale q Séquence ordonnée de cellules (0 à N- 1) q N : taille de la mémoire exprimée en Kilo, Mega, Giga, Tera q 1Kilo = 2 10 celulles = 1024 cellules ; q 1Mega = 2 10 Kilo = 2 20 celulles = 1048576 cellules ; q 1 Giga = 2 10 Mega = 2 30 celulles = 1073741824 cellules ;
2. Composants d un ordinateur q Mémoire centrale q Rappel : Langage de l ordinateur binaire q Cellule = 8 bits (0 ou 1) = 1 octet (caractère) q Sur n bits, on peut coder 2 n valeurs dis/nctes q Exemple : 3 bits, 2 3 = 8 valeurs q 000, 001, 010, 011, 100, 101, 110, 111 q Octet (8 bits) peut coder 2 8 = 256 valeurs dis/nctes
2. Composants d un ordinateur q Système binaire ß à décimal ß à hexadécimal q bit de poids fort à gauche q b n b n- 1 b n- 2 b 1 b 0 è b n *2 n + b n- 1 *2 n- 1 + b 1 *2 1 + b 0 *2 q Exemples : 1010 è 1*2 3 +0*2 2 +1*2 1 +0*2 0 = 8+0+2+0 = 10 11001 è 1*2 4 +1*2 3 +0*2 2 +0*2 1 +1*2 0 = 16+8+0+0+1 = 25 q 1010 = 00001010 ; 11001 = 00011001 ; q 25 = 2*10 1 +5*10 0 = 16 + 9 = 16 + 8 + 1 = 1*2 4 +1*2 3 +1*2 0 è 11001 q 25 = 1*16 1 +9*16 0 è 19
2. Composants d un ordinateur q Mémoire centrale q Mot = regroupements de cellules q Caractère (un octet) ; En/er (un mot, 2 ou 4 octets) q Numéro de la cellule = adresse q Accès aux cellules en lecture ou écriture
2. Composants d un ordinateur Boîte noire Unité centrale de traitement (UCT, CPU, coeur) Mémoire centrale (principale, RAM) Périphérique
2. Composants d un ordinateur q Unité Centrale de Traitement q Récupère données et instruc/ons en mémoire centrale q Les place dans ses registres, et fait les traitements q Retourne résultats en mémoire centrale
2. Composants d un ordinateur q Unité Centrale de Traitement q Unité de contrôle (synchronisa/on des composants) q Unité arithmé/que et logique (UAL, ac/ons/calculs élémentaires ) q Registres (généraux, dédiés)
2. Composants d un ordinateur q Registres q Registres généraux : stockage temporaire des données à traiter q Compteur ordinal (PC) : registre dédié (adresse de la prochaine instruc/on) q Registre d instruc/on : registre dédié (stockage de la prochaine instruc/on)
2. Composants d un ordinateur Mémoire secondaire (disposi/f de stockage) (disque dur, carte mémoire, clé USB, DVD, CD- ROM, ) Disposi/f d entrée Unité centrale de traitement Mémoire centrale Disposi/f de sor/e Réseau (communica/on, disposi/f de sor/e spéciale)
2. Composants d un ordinateur q Périphériques q Entrées et Sor/es E/S : communica/on humain ordinateur (clavier, souris, micro, écran tac/le, écran, imprimante) q Mémoire secondaire : mémoire supplémentaire non vola/le, moins rapide, de plus grande capacité que la mémoire centrale (disquepe, disque dur, bande magné/que, CD, DVD, clé USB)
2. Composants d un ordinateur q Mémoire secondaire q Informa/ons organisées en enregistrements è fichiers q Fichier possède un nom permepant de l iden/fier/accéder q Fichier contenu dans Répertoire
2. Composants d un ordinateur q Réseau q Communica/on / Partage des ressources q Ethernet q Sans- fil q Modem q Autres périphériques q Cartes graphiques, autres périphériques spécialisés
Plan 1. Historique des ordinateurs 2. Composants d un ordinateur 3. Environnement logiciel 4. Développement de logiciels 5. Exercices
1. Historique des ordinateurs q Logiciels (sowware) q Logiciel : dérivé du mot logique q Ensemble d informa/ons rela/ves à des traitements effectués automa/quement par un ordinateur (programmes, données, documenta/on)
3. Environnement logiciel q Environnement de développement par/culier suivant le programme et l ordinateur q Système d exploita/on q Applica/ons q Ou/ls de développement (langage, éditeur de texte, compilateur, débuggeur)
3. Environnement logiciel
3. Environnement logiciel q Savoir u/liser efficacement l environnement logiciel q Interagir avec système d exploita/on q Démarrer et savoir u/liser environnements intégrés (éditeur de texte, compilateur, éditeur de lien) Exemples : Xcode, VisualStudio, Code::Blocks q Bien maîtriser syntaxe et séman/que du langage de programma/on
3. Environnement logiciel q Langage de programma/on q Nécessaire pour concré/ser la concep/on q Plusieurs langages pouvant être classés suivant leur distance à la machine q Langage machine (binaire, aride, propre à la machine) q Langage d assemblage (proche du langage machine, peut employer des symboles) q Langage de haut- niveau (plus proche du langage humain, n est pas propre à la machine)
3. Environnement logiciel Code source #!/usr/bin/python # calcul du coût cout = prix + taxes Format texte Interpréteur (une instruc/on à la fois) Résultats Python
3. Environnement logiciel Code source Code source édité Code assembleur Code objet #include <stdio.h> // calcul du coût cout = prix + taxes cout = prix + taxes Load prix Add taxe Store cout 1A5B8EF2 F359C813 4297EEFF Format texte Format texte Format texte Format binaire Code Code Pré- compilateur Compilateur source source édité Code assem- bleur Assembleur Code objet Code objet bibliothèque C++ Résultats Édi/on des liens dynamiques Exécu/on Code objet bibliothèque Programme exécutable Édi/on des liens sta/ques
Plan 1. Historique des ordinateurs 2. Composants d un ordinateur 3. Environnement logiciel 4. Développement de logiciels 5. Exercices
4. Développement de logiciels q Cycle de vie d un logiciel
Introduction Développement de logiciels 4. Développement de logiciels Cycle de vie d un logiciel : Le développement q Cycle de vie d un logiciel Développement Utilisation Mort Maintenance 31/59 Analyse et programmation
4. Développement de logiciels Spécifica/on Énoncé du problème Analyse Document d analyse Concep/on Document de concep/on Implanta/on Programmes Essais Correc/on des erreurs Augmenta/on du coût de détec/on des erreurs
4. Développement de logiciels q Analyse- Concep/on q Clarifier et préciser les ambiguïtés q Déterminer entrées / sor/es du problème (toutes les apentes des u/lisateurs) q Dis/nguer essen/el et détail q Représenta/on du traitement comme une boîte noire (fonc/ons simples, générales et constantes u/lisées) Traitement Entrées Y = F(X) Sor/es
4. Développement de logiciels q Analyse- Concep/on q Décomposi/on du problème (diviser pour régner) q Détailler sous- problèmes/modules au fur et à mesure (raffinement, introduc/on des détails techniques) q Produire et vérifier algorithme pour chaque modules/ tâche en commençant par la principale 1.Module principale 1.1 Acquisi/on entrées 1.2 Traitements 1.3 Affichage
4. Développement de logiciels q Implanta/on q Choix du langage de programma/on q Traduc/on de la concep/on en programme exécutable sur un ordinateur q Indépendance dans l implanta/on des tâches (modules) q Commentaires dans le code
4. Développement de logiciels q Essais (Tests) q Test de chaque tâche séparément pour vérifier conformité à sa spécifica/on q Tests manuels dans un premier temps q Tests automa/ques sur jeu d essai ensuite q Assemblage des modules et test complet du système
Plan 1. Historique des ordinateurs 2. Composants d un ordinateur 3. Environnement logiciel 4. Développement de logiciels 5. Exercices
5. Exercices q Traduc/on de nombres, en bases binaire, décimale, hexadécimale. q Décimale : 149, 38 q Binaire (octet) : 10100111, 00110100 q Hexadécimale : 2A3, 03D
Sources q Introduc/on à la programma/on. M. Le Gonidec. Université du Sud, Toulon- Var. q Analyse et programma/on. Notes de cours. G. Girard. Université de Sherbrooke. q Introduc/on à la programma/on. Notes de cours. M. For/n. Université de Sherbrooke.