Vous êtes sur la page 1sur 26

INSTITUT NATIONAL DES TELECOMMUNICATIONS

ET DES TECHNOLOGIES DE LINFORMATION ET


DE LA COMMUNICATION

CHAPITRE 3
LE LOGICIEL

) (

Plan Chapitre 3

Diffrents types de logiciel



Les programmes systme

Les Systmes dexploitation

Les programmes de traduction

Les programmes utilisateur

- notion dalgorithme

- notion de pseudo-code

- notion dorganigramme

Diffrentes formes de programmation

Lexique

Composants Logiciel
Un ordinateur est certes compos dun ensemble dlments

constituant le matriel ou Hardware mais qui ne peuvent


fonctionner que grce un ensemble de programmes et
donnes constituant le logiciel ou Software.
Lutilisation dun ordinateur ncessite diffrents types de
programmes parmi lesquels on peut citer :
- Les programmes systme
- Les programmes applicatifs
- Les programmes de traduction
- Les programmes utilisateur
..

Composants Logiciel
Les Programmes Systme (SYSTEM PROGRAMS )
Ce sont des programmes assez complexes conus pour
lexploitation et le contrle de tous les lments
constituant lordinateur.
Ces programmes ont t conus par les constructeurs de
machines ou des entreprises de dveloppement des
logiciels.
Les programmes systme peuvent tre diviss en 2
grandes parties : les programmes des systmes
dexploitation (Operating Systems) et les programmes
de traduction (Translating Programs).

Composants Logiciel
Les Programmes Systme (SYSTEM PROGRAMS )

Composants Logiciel
Les Systmes dexploitation (Operating systems)

Un systme dexploitation est un ensemble de programmes responsables de lutilisation, de


lexploitation de la machine et du contrle de toutes les oprations entre la machine et
lutilisateur.
Un systme dexploitation est compos dun ensemble de programmes, de donnes et de
tableaux permettant la facilit dutilisation de tous les composants de lordinateur par
diffrents utilisateurs.
Aussi, les programmes composant un systme dexploitation permettent de contrler les
diffrents lments de la machine et de coordonner entre eux ceci afin que lutilisateur en
profite au maximum en un laps de temps.

Les principales fonctions dun Systme dexploitation

Gestion des ressources de la machine : UC, Units E/S, MC, Donnes, Communications
Interface entre le Hardware et lutilisateur.
Partage des ressources entre diffrents utilisateurs.
Contrle des oprations dE/S
Chargement des programmes et donnes des mmoires secondaires en MC.
Sauvegarde des programmes et donnes de la MC en mmoires secondaires.
Gestion des anomalies hardware et des erreurs software ( Capacit mmoire insuffisante,
Disque satur, Fichier inexistant).
Assure la protection des programmes et des donnes des diffrents utilisateurs.
Facilit lutilisation des diffrentes units dE/S.
..

Composants Logiciel
Les diffrents types de Systmes dexploitation

Le dveloppement rapide des ordinateurs a permis de concevoir diffrents types de systmes


dexploitation dont des systmes :
- Multiprogrammation (MultiProramming System),
- Multi-Utilisateur (Multi-User System),
- Temps partag (Time-Sharing System),
- Temps Rel (Real Time System),
- Multitraitement (MultiProcessing System),
- Distribus (Distributed System)
Les principaux systmes dexploitation sont : MULTICS (IBM), CP/CMS (IBM), UNIX
(AT&T BELL LABS),PC-DOS (IBM), MS-DOS, WINDOWS95, WINDOWS98,
WINDOWS2000, WINDOWS XP (MICROSOFT), Systme dexploitation MacIntosh
(Apple).....
Un systme dexploitation peut faire appel des programmes pour des traitements
spcifiques, entre autres :
- des programmes de traduction (Translating Programs) : qui sont utiliss pour
les langages de programmation (compilateurs, interprteurs)
- des programmes utilitaires (Utility Programs) : qui sont utiliss pour des
taches spcialises (Tri, Fusion, Compression.).
- des programmes bibliothque (Library Programs) : ce sont des sous-programmes du
genre Procdures ou Fonctions stockes dans des mmoires secondaires et qui
peuvent tre utilises dans des programmes utilisateurs ou autres (SQR, SQRT, SIN...)

Composants Logiciel

Les Programmes de traduction (Translating Programs)


Pour un utilisateur, le dialogue avec un ordinateur se fait au moyen
de langages de programmation (PROGRAMMING LANGUAGES).
Un langage de programmation est un ensemble dinstructions, de
codes et de rgles syntaxiques qui contribuent la programmation
de solutions de problmes.
Un langage de programmation est constitu de diffrents types
dinstructions dont : des instructions dE/S, de comparaison,
dexpressions arithmtiques, dassignation, de rptition.
Il existe plusieurs catgories de langages de programmation :
langages machine, langages assembleur, langages volus,
langages non procduraux, langages orients Internet.

Composants Logiciel
Les Programmes de traduction (Translating Programs)
Le langage machine (Machine Language)

Le langage machine est le langage interne de lordinateur.


Le langage machine est le seul langage compris par lordinateur du fait que cest un
langage binaire (il est compos uniquement de chiffres binaires 0 et 1);
Il sexcute directement sans lutilisation de traducteur.
Le langage machine peut varier dune machine une autre (suivant le type dUC ou
Microprocesseur).
Lutilisation dun langage machine par un utilisateur ncessite des connaissances trs
approfondies sur larchitecture de lordinateur.

Le langage assembleur (Assembly Language)

Le langage assembleur est un langage proche du langage machine mais avec


lutilisation de noms symboliques dsignant des oprations ou des variables facilitant
leur comprhension par les utilisateurs (ADD, MUL, SUB, DIV, MOVE.).
Bien sr, ce type de langage est troitement dpendant de la machine; donc, le langage
assembleur diffre dune machine une autre suivant le type de processeur.
Comme le langage machine, ce genre de langage ncessite des connaissances
approfondies sur larchitecture de lordinateur.
Un programme crit en langage assembleur ncessite une traduction en langage
machine laide dun programme spcial dnomm "ASSEMBLEUR.

Composants Logiciel
Les Programmes de traduction (Translating Programs)
Les langages volus (Hign Level Languages)

Le langage machine et la langage assembleur sont des langages dpendants de la


machine et aussi assez compliqus pour de simples utilisateurs.
Pour ces raisons, il a fallu concevoir des langages indpendants des machines
(portables) et surtout simples utiliser par la plupart des utilisateurs (trs proche
de la langue anglaise).
Ce type de langages ont t dsigns comme "des langages volus ou des
langages de haut niveau (High Level Languages) en raison de leur indpendance
de larchitecture matrielle de lordinateur.
Un programme crit dans un langage volu ncessite, pour tre excut, sa
traduction en langage machine par un programme spcial dnomm
"COMPILATEUR" ou "INTERPRETEUR.
Un compilateur ou un interprteur permet la dtection des erreurs syntaxiques
dun programme SOURCE (crit en langage volu) puis sa traduction en
programme OBJET (reprsent en langage machine) afin dtre prt pour tre
excut.

Composants Logiciel
Les Programmes de traduction (Translating Programs)
Principaux langages volus (suivant leur apparition)

Le Langage BASIC (BASIC LANGUAGE : Beginnerss All Purpose Symbolic


Instruction Code) : cest lun des premiers langages volus conus pour les
dbutants; facile et rapide apprendre; ncessite lutilisation dun Interprteur
BASIC.
Le Langage FORTRAN (FORTRAN LANGUAGE : Formula Translator) :
cest un langage volu conu pour les mathmaticiens et les scientifiques. Ncessite
lutilisation dun compilateur FORTRAN.
Le Langage COBOL (COBOL LANGUAGE : COmmon Business Oriented
Language) : cest un langage volu conu pour la gestion, la comptabilit et
lutilisation des diffrentes organisations des fichiers. Ncessite lutilisation dun
compilateur COBOL.
Le Langage PASCAL (PASCAL LANGUAGE) : ce langage qui a t dvelopp
en 1971 par Nicklaus Wirth, a t conu spcialement pour tre facilement tudi en
utilisant la programmation structure. Peut rsoudre des oprations arithmtiques
trs complexes. Ncessite lutilisation dun compilateur PASCAL.

Composants Logiciel
Les Programmes de traduction (Translating Programs)
Principaux langages volus (suivant leur apparition)

Le Langage C (C LANGUAGE) : ce langage a t dvelopp en 1972 par Dennis


Ritchie des laboratoires Bell. Il est trs utilis actuellement du fait de sa puissance
dans lutilisation de la programmation structure ainsi que des instructions de
gestion des diffrents composants de la machine : il se substitut en tant que langage
volu, au langage assembleur. Cest dailleurs avec le langage C qua t
dvelopp le systme dexploitation UNIX. Ncessite lutilisation dun compilateur
C.
Dautres langages volus utilisant la programmation structure ont t utiliss par
le pass : ADA, PL/1, ALGOL.
Les langages de programmation Orients Objet (Object Oriented
Programming Languages) et les langages de programmation Visuelle (Visual
Programming Languages) : contrairement aux langages volus orients
programmation structure, les langages de programmation orients objet se sont
dvelopps ces dernires annes en utilisant la notion dobjet, de classe, de mthode,
de graphisme On peut citer les langages de programmation orients objet tels que
C++, JAVA et les langages de programmation visuelle tels que : VISUAL C,
VISUAL PASCAL, VISUAL BASIC.

Composants Logiciel
Les Programmes de traduction (Translating Programs)
Principaux langages volus (suivant leur apparition)

Les langages de programmation non procduraux (Non Procedural


Languages) : orients vers la gestion des bases de donnes (Utilisation des
systmes de gestion des bases de donnes pour le stockage, le traitement et la
rcupration des donnes laide de langages de dfinition de donnes ou SQL :
Structured Query Language) et des systmes experts (on peut citer les langages
PROLOG, LISP qui sont utiliss dans les systmes dintelligence artificielle).
Mais ce genre de langages sont toujours en cours de dveloppement.

Les langages de programmation orients Internet : la conception de sites


Web peut se faire dune manire statique avec des langages genre HTML
(HyperText Mark-Up Language) ou dune manire dynamique avec des
langages genre PHP (Personal Home Page ou Pre-HyperTexte-Processor ou
Hypertext Preprocessor), JAVASCRIPT..

Composants Logiciel
Les Programmes Utilisateur (USER PROGRAMS )
La rsolution de problmes par ordinateur dbute tout dabord par
lexcution de plusieurs tapes logiques faisant partie dun cycle de
dveloppement de logiciel (Software Development Cycle) : Analyse du
problme, rsolution logique du problme laide de solutions
algorithmiques (et/ou organigrammes), traduction de lalgorithme en
programme crit dans un des langages de programmation, test et excution
du programme.
Ce cycle de dveloppement de logiciel fait partie de la technique de
dveloppement de logiciel plus connue sous le nom de Gnie logiciel ou
Software Engineering.

Les algorithmes qui permettent de dcrire les solutions logiques au problme


pas pas seront ensuite traduits par lutilisateur ou le programmeur en un
ensemble dinstructions qui formeront des programmes informatiques crits
dans un des langages de programmation.
Ces programmes seront excuts instruction par instruction (Step by Step)
afin de fournir les rsultats prvus.

Composants Logiciel
Les Programmes Utilisateur (USER PROGRAMS )
Cycle de dveloppement de logiciel (Software Development
Cycle) :

Composants Logiciel
Les Programmes Utilisateur (USER PROGRAMS )
Analyse du problme : type de problme pos, importance du
problme pos afin de dfinir des solutions (si le problme est
mal explicit, il est difficile dimaginer des solutions afin
dobtenir des rsultats au problme pos.
Conception de solutions logiques (Algorithmes) : la rsolution de
problmes par ordinateur sous-entend la conception dune mthode
logique de description squentielle (Pas--Pas : Step-By-Step) des
diffrentes oprations qui se terminent par un nombre fini de pas.
Cette mthode logique sappelle un ALGORITHME
(ALGORITHM) permet une description prcise de la solution au
problme pos sous forme de rgles, de pas ou dtapes excuter (du
dbut jusqu la fin) et ceci afin dobtenir les vrais rsultats de la
solution au problme pos.
Un algorithme est compos de 3 structures de contrle logiques :
- la structure logique squentielle (Sequential Logic Structure)
- la structure logique alternative (Decision Logic Structure)
- la structure logique rptitive (Loop Logic Structure)

Composants Logiciel
Les Programmes Utilisateur (USER PROGRAMS )
Exemples simples dAlgorithmes

Exemple 1 (Algorithme structure logique squentielle)


Problme pos : calcul de la moyenne dun tudiant
Pas 1 : Dbut
Pas 2 : Lire Nom_et_Prnom_tudiant
Pas 3 : Lire Note1, Note2
Pas 4 : Moyenne = (Note1+Note2)/2
Pas 5 : Ecrire Nom_et_Prnom_tudiant, Moyenne
Pas 6 : Fin

Exemple 2 (Algorithme structure logique rptitive)


Problme pos : calcul de la somme de 10 chiffres (de 1 10) : 1+2+3+..+10
Pas 1 : Dbut
Pas 2 : I 0
Pas 3 : S 0
Pas 4 : Rpter
II+1
SS+I

Jusqu I =10
Pas 5 : Ecrire S
Pas 6 : Fin

Composants Logiciel

Les Programmes Utilisateur (USER PROGRAMS )


Dautres outils peuvent tre utiliss afin de rsoudre les
problmes par ordinateur. Les plus populaires sont les
organigrammes et les pseudo-codes.
Les Organigrammes (Flowcharts) : un organigramme
est lquivalent dun algorithme mais sous forme
graphique. Chaque tape ou pas dun algorithme est
reprsent sous une forme symbolique graphique
standard. Les principaux symboles graphiques sont
regroups dans le tableau suivant :

Composants Logiciel
Les Programmes Utilisateur (USER PROGRAMS )
Les principaux symboles utiliss dans des organigrammes (Flowcharts)

Composants Logiciel
Les Programmes Utilisateur (USER PROGRAMS )
Exemples simples dorganigrammes
Lalgorithme structure logique rptitive de l exemple 2 (Calcul de la somme de 10 chiffres) peut
tre symbolis par lorganigramme suivant :
ORGANIGRAMME
ALGORITHME
Pas 1 : Dbut
Pas 2 : I 0
Pas 3 : S 0
Pas 4 : Rpter
II+1
SS+I
Jusqu I =10
Pas 5 : Ecrire S
Pas 6 : Fin

Composants Logiciel
Les Programmes Utilisateur (USER PROGRAMS )

Les Pseudo-Codes (Pseudo-Code) : un pseudo-code est


lquivalent dun algorithme mais sous forme dexpressions qui
ressemblent la langue naturelle facile apprendre (franaise,
anglaise, arabe.). Exemples dexpression utilises dans les
exemples prcdents 1 et 2 : Lire, Ecrire, Si, Rpter, Read, Print,
If
Traduction de lorganigramme ou du pseudo-code en programme

A des fins dexcution, le programmeur ou lutilisateur devra


traduire lorganigramme ou le pseudo-code en instructions dans un
des langages de programmation (Pascal, C, Basic) : ce sera un
programme source (Source Program). A laide dun traducteur
(Compilateur, Interprteur), ces instructions (qui forment le
programme source) seront traduites en langage machine appel
programme objet (Object Program) qui sera prt pour tre excut.

Composants Logiciel
Les Programmes Utilisateur (USER PROGRAMS )

Les tapes suivantes dans un cycle de dveloppement de logiciel sont ncessaires


afin de garantir les vrais rsultats de la solution au problme pos : test de la
solution (test du programme), maintenance du programme (possibilit dajout ou
de suppression de taches), documentation du programme (permet lutilisation du
programme par diffrents utilisateurs : commentaires, guide dutilisation).
Mthodes de dveloppement des diffrentes formes de programmation
Il est souvent ncessaire de poser la question suivante : Comment rsoudre
facilement diffrents problmes par ordinateur afin dacqurir les rsultats
escompts???
La solution consiste dcomposer un problme assez complexe en un ensemble de
petits problmes (sous-problmes) faciles solutionner appeles MODULES .
Ceci facilitera lcriture non du programme mais de sous-programmes , leur
correction, leur modification et leur maintenance.
Les des diffrentes formes de programmation sont les suivantes : la
Programmation modulaire, la Programmation structure, la Programmation de
Haut-en-Bas, la Programmation Orient-Objet et la Programmation Visuelle.

Composants Logiciel
Les Programmes Utilisateur (USER PROGRAMS )
La Programmation Modulaire (Modular Programming) : Le
programme sera dcompos en un ensemble de petits programmes ou
modules : ce sont des sous-programmes, des procdures, des
fonctions). Le programme principal (module principal) permet
dappeler ( laide dinstructions dappel) des sous-programmes
(procdures ou fonctions) qui peuvent tre crits et excuts dune
manire indpendante.

Composants Logiciel
Les Programmes Utilisateur (USER PROGRAMS )

La Programmation Structure (Structured


Programming) : Pour le programmeur ou un utilisateur,

la programmation structure est un moyen dviter les


branchements inconditionnels (instruction Allez ou Goto)
qui compliquent la comprhension et la maintenance dun
programme. La programmation structure permet la
comprhension dun programme dune manire trs aise
avec lutilisation des 3 structures de contrle logiques : la
structure logique squentielle (Sequential Logic
Structure), la structure logique alternative (Decision
Logic Structure) avec lutilisation du SI (IF condition
Then ..Else ) et la structure logique rptitive
(Loop Logic Structure) avec lutilisation du POUR
(FOR..), REPETER (DO .UNTIL) et TANT QUE
(WHILE.).

Composants Logiciel
Les Programmes Utilisateur (USER PROGRAMS)
La Programmation de Haut-en-Bas (Top-Down Programming) :
Le programme sera organis par lutilisateur en un module principal
(programme principal) suivi de plusieurs modules (sous-programmes)
de niveau intermdiaire qui peuvent tre eux-mmes dcomposs en
dautres modules plus petits auxquels une tache bien prcise leur est
assign; chaque module peut tre crit et excut indpendamment des
autres modules.
La Programmation Orient-Objet (Object-Oriented
Programming) : ce genre de programmation est trs utilise
actuellement. Avec la programmation traditionnelle, les instructions
sont dcrites pas--pas jusqu la prsentation des rsultats. Tandis
que la programmation orient objet ncessite lutilisation de la notion
dobjet qui peut dsigner une donne ou un ensemble de donnes et
dinstructions qui peuvent affecter sur ces donnes.
La Programmation Visuelle (Visual Programming) : aussi ce genre
de programmation est trs utilise. Le programme est dcrit avec la
notion dobjet mais sous une forme graphique laide de fentres, de
boutons, dicnes, de figures.

LEXIQUE

Principaux Mots-cls informatique en Franais, en


Anglais et en Arabe.
(A Voir en TD ou en TP)