Vous êtes sur la page 1sur 13

MINISTRE

DE LENSEIGNEMENT SUPRIEUR ET DE LA RECHERCHE SCIENTIFIQUE


UNIVERSIT DALGER 1
FACULT DES SCIENCES
DPARTEMENT MATHMATIQUE ET INFORMATIQUE

SECTION: B

Module : Programmation Oriente Objet



Plan :
CHAPITRE 1 : Concepts et dfinition

Programme ?
Programmation ?
Langages de programmation ?
Bref historique des langages
Paradigmes de programmation ?
Logiciel
Gni logiciel
Facteur de qualit dun logiciel

CHAPITRE 1 : Concepts et dfinition


I) Programme :
Un programme est une suite dinstructions destines tre excutes le plus
souvent par un ordinateur
Un programme reoit en entre des donnes, la squence dinstructions
effectue un traitement sur ces donnes pour obtenir en sortie des rsultats

Donnes (input)

Rsultat (output)

Traitement

II) Programmation :

Cest lactivit qui permet lcriture de programmes informatiques


Trois tapes sont ncessaires pour crire un programme :
1) Conception dalgorithme
2) criture du code source : la traduction de lalgorithme vers un langage de
programmation
3) Gnration du code excutable (binaire) : les instructions crites dans un
langage de programmation (code source) ne sont pas excutables directement
par la machine (le processeur)
Dans une opration de traduction du code source vers le code binaire est
ncessaire deux types de traduction existent :
La compilation : le compilateur prend en entre le code source et gnre en
sortie un code binaire excutable sous forme de ficher.
Linterprteur : il excute la rol les instructions de code source code Source
sans gnration du fichier excutable binaire
Compilation ou
Programmation

Traduction
Interprtation

ALGORITHME

Code source

Code source


III) langages de programmation :
Un langage de programmation est une notation prcise conventionnelle
permettant dcrire et dimplmenter des algorithmes sur des machines.
1) Gnration des langages de programmation :

Langages bas niveaux

Les premiers ordinateurs avaient des architectures matrielle et unit de calcul


non standardis et la seule manire dcrire des programmes tait le langage
machine pure (binaire)
1re gnration : langages binaires qui diffrent dune architecture une
autre
2me gnration : langage utilisant quelques symboles au dessus de la
couche matrielle utilis pour lever un peu la difficult des langages
binaires 23-02-2016
3me gnration : langage indpendant des processeurs des machines
Langages assez proche du langage humain (gnralement l'anglais).
Langages impratifs. Exemple : C, Pascal, ...
REMARQUES :

Il existe d'autre gnrations de langage : 4,5 et 6me gnration

Les paradigmes de langage de programmation :

Paradigme : manire de penser


de voir les choses

Impratif

Procdural
Programmation :

Fonctionnel
Lisp, CAML, SCHEME
Logique
Prolog, Logo
POO

2) Paradigmes de programmation :
Un paradigme est une manire de raisonner et de raliser une solution un
problme en programmation.
Ils existent plusieurs paradigmes de programmation sont :
Programmation imprative : (procdurale):
Squence d'instructions excuter


Ex: C, Pascal, Fortran, Cabol
Programmation fonctionnelle :
Le programme est constitu d''appels imbriqus de fonctions paramtrables.
Ex: Lisp, Shemme, Camel,...
Programmation logique :
Base sur la thorie de la logique mathmatique. exp: Protog
Programmation Oriente Objet :
Un problme dans la POO n'est pas divis sous formes d'autres problmes plus
petit comme c'est le cas dans la programmation procdurale, mais un problme
est dcrit sous forme d'objets qui interagissent les uns avec les autres.
REMARQUE :
Ils existent des langages multi-paradigmes, qui permettent d'utiliser plusieurs
paradigmes dans un seul programme.
24-02-2016
IV- Logiciel :
Un logiciel est un ensemble de programmes interconnectes en vue de fournir
des services informatiques un ou plusieurs utilisateurs.
La cration de logiciel est un processus assez complexe qui doit respecter un
certain nombre d'tapes pour aboutir.
1) la programmation et le cycle de dveloppement d'un
logiciel :
La cration d'un logiciel passe par l'criture des codes sources des programmes
qui le dcomposent. Avant d'arriver l'tape de programmation (criture du
code source)
Il existe d'autres tapes qui prcdent et qui suivent cette tape
En fait, le dveloppement d'un logiciel respecte les tapes suivantes :
1) Spcification des besoins : cette tape va permettre de souligner tous les
besoins, les fonctionnalits et les tches qu'un logiciel doit offrir.
2) Analyse et conception : Cette tape, les donnes doivent tre complt et
analys en vue de concevoir les algorithmes, tracer les modles et crer des
bases de donnes ventuelles
3) Programmation : dans cette tape, on va mettre en uvre la solution trace
dans l'tape prcdente dans un langage de programmation.
4) Tests et vrifications : Cette tape va permettre de dgager les erreurs qui
comporte le logiciel, plusieurs types d'erreurs peuvent tre mise en vidence,
les erreurs syntaxique (dcouvertes lors de la compilation), les erreurs
d'excutions.
Exemple :
- Division par 0

5) Installation et exploitation :
6) Maintenance du logiciel :
Cette tape est trs importante et se prsente souvent plus de 70% de cot du
logiciel.
On peut citer deux types de maintenance :
a) Maintenance corrective : pour corriger les fonctionnalits existantes
b) Maintenance d'extensions : A pour objectif d'intgrer un nouveau besoin
d'un logiciel




Vision
interne

Programmeurs

Vision
externe

Utilisateurs

V- Qualit de logiciel :
Le Gnie logiciel s'intresse la production de logiciel de qualit technique de la
P.O.O aident amliorer la qualit logicielle.
La qualit logiciel est la combinaison de l'amlioration de facteurs qualit
internes et externes.
Les facteurs internes ne sont visibles que par les personnes qui ont accs aux
codes sources du logiciel (programmeur)
On peut citer quelques facteurs interne :
Modularit
Lisibilit
Facilit de modification
Les facteurs de qualits internes sont visibles par les utilisateurs du logiciel, le
but est d'amliorer ces facteurs de qualit, la P.O.O influe directement sur la
qualit interne du logiciel, cette dernire va aider significatives dans
l'amlioration du facteur de qualit externe.
29-02-2016
1) Correction et validit :
Attitude d'un logiciel assurer les fonctionnalits dfinies par les utilisateurs
2) Fiabilit : Attitude d'un logiciel assurer la fonctionne d'une manire
continue
3) Robustesse : Attitude d'un logiciel fonctionner dans des conditions
anormales
4) Rutilisabilit : Attitude d'un logiciel tre rutilis en partie

5) Portabilit : Attitude d'un logiciel fonctionner sur diffrentes plateformes


(systme d'exploitation, 5GB)
6) Maintenabilit : C'est la facilit d'adaptation dun logiciel aux changement
des besoins.

1) Syntaxes de base du Langage Java :


Java est un langage de programmation oriente objet bas sur la syntaxe de
base du langage C. Il utilise des Bibliothques standard assez complte (io,
interface homme-machine, BDD, rseaux, web ...)
Java est un langage compil et interprt :
Compilation: code source (fichier.java) code intermdiaire-bytecode
(fichier.class)
Interprtation : excution du bytecode par la machine virtuelle java (JVM)
La machine virtuelle permet notamment :
Linterprtation du bytecode
Linteraction avec le systme d'exploitation
-> la gestion de sa mmoire ...
Des versions diffrentes de la machine virtuelle existent pour chaque plateforme
(matriel et systme d'exploitation)

2) Types de donnes :
Deux sortes de types:
-> Type primitifs : c'est des types valeur
Nombres entiers:

byte (8 bits),

short (16 bits)


int (32 bits)
long (64 bits)

Nombres relles:

float(32 bits)

double (64 bits)

Les types numriques de java sont tous non signes (Dans C il existe des types
signs : valeurs positives seulement ou ngatives seulement). ==> Valeur initiale
des variables de types entiers=0 ==> Valeur initiale des variables de types
entiers=0.0

caractres:

char (16 bits) Unicode


valeur initiale /0, le caractre dont le code est 0
boolen :

boolean (1 bit) true ou false, valeur initiale=false


Remarque :

JAVA contrairement au C initialise les donnes primitives lors de la


dclaration avant toutes affectation.
-> Les variables de type numrique ou caractres sont initialis 0
-> Les boolens sont initialis false
Types rfrences : les tableaux et les objets, c'est des types rfrences (voir les

rfrences)
Tableaux : diffrents du langage C voire section tableau.
Classe
interface
3) Oprateurs :

: oprateurs arithmtiques
=, +=, -=, *=, /=, %= : oprateurs d'assignation (affectation)
<, >, <=, >=, ==, ! = : oprateurs de comparaison
&&, ||, ! : oprateurs logiques
+, -, *, /, %

07-03-2016

exemple :
int x=3;t=5;
int y = x++; // y va recevoir 3 et x = 4
int z = ++t; /// z va recevoir 6 et t = 6 donc on incrmente t puis on l'affecte y

Conversion entre types primitifs :


La hirarchie des types numriques primitifs du plus bas vers le plus haut est la
suivante : byte-> shorte-> int-> long-> float-> double. Le type boolen est
incompatible.
Sous java, une affectation d'une expression d'un type donn une variable d'un
autre type compatible ncessite une conversion de type.

Constantes et types :
Pour les entiers, un constant entier a part default 2 type int, sauf si le nombre
dpasse la capacit du int, t dans ce cas il est considr comme long

Pour les valeurs relles, par dfaut, ils sont le type double
Conversion implicite :
Soit l'affectation type 1 Var = Expression_type2
Si type1 est plus fort que type2 alors la conversation se ralisera de manire
automatique (ou implicite), sans l'intervention du programmeur ;
Conversion explicite :
Soit l'affectation type1 Var = Expression_type2
Si type1 est le plus faible que type2, l'affectation prcdente dclenche une erreur
de compilation dans ce cas il faut prvoir une conversation explicite en utilisant
l'oprateur de conversion : (type1)
Type1 var=(typz1) expression_type2
Remarque : la conversion explicite peut gnrer une perte d'informations.
Exemple : je veux extraire la partie entire et la partie dcimale d'un nombre
rel.
double x=3.14;
int a; /* variable qui doit contenir la partie entire */
a= (int)x; //a <- 3.
double b; // var qui va contenir la partie dcimale.
b=x-a;
b=x-(int)x; //b <- 0.14
14-03-2016
Expression conditionnelle :
if (condition) { // instruction }
if (condition) { // une seule inst
else { // ins-condi-fausse }

-> else {
-> if (condition) {...}
-> else {....
-> if (condition) { ...} } }
if (condition) {...
} else if (condition) {... }
else if { ... }
else {... }
trait 1
trait 2

var = (exp)

trait 3
trait 4

Switch var {
case 3 {
break; (pour conomiser le temps) }
Rectification:
entier -> l L -> long aprs une constante
rel -> f F-> float / d D -> double
double a = 3o;
= 3D;
=3d;
=(double)3;

21-03-2016

Chapitre 2 : La structuration
Les logiciels sont par nature complexe leurs complexits dpassent souvent les
capacits intellectuelles humain.
La complexit importante des logiciels cre le besoin de stratgie pour la rduire
et le mtriser l'une des stratgies les plus utilises est "deviser pour rgner"
Cette stratgie dans le domaine logiciel est appliqu par la dcomposition de ce
dernier en modules qui permet de rduire la complexit et de mtriser son
dveloppement.
Le gnie logiciel est la discipline qui tudie les mthodes et les bons pratiques
pour offrir les techniques permettant de raliser la meilleure structuration celle
qui s'applique souvent sur deux axes :
elle s'appartient sur le regroupement des
traitements dans des lites identifiables par des sens
fonction et procdure
il s'agit de la programmation oriente objet

Le mot "complexit" signifie les difficults et le besoin en effort pour


comprendre et mener bien une tche
En gnie logiciel, la complexit d'un logiciel est l'effort qui donne les
dveloppeurs pour convaincre et maintenir un logiciel
Deux aspects de la complexit de logiciel :
Il existe plusieurs faons pour mesurer la complexit d'un logiciel. Cependant 2
mesures permettant de reprer le degr de complexit d'un logiciel il s'agit de la
taille est de la structure.
1) La taille : avec la taille, on peut mesurer deux aspects : le code source et la
conception du logiciel le code source se mesure en nombre de ligne on d'octet , il
n'est pas toujours significatif d'ailleurs, on trouve souvent du code source
volumineux avec une complexit rduite, le 2me aspect c'est la taille en thme
de document d'Analyse et conception ce dernier est plus significatif.
2) La structuration de logiciel : la structure est la faon dont le logiciel est
organis en modules. Un nombre de liens importants entre les modules relve
souvent une complexit importante. Deux caractristiques de modalisation rentre
en jeu, ce sont le comptage et la cohsion que nous dtaillions dans la section
suivante.

04-04-2016

Chapitre 3 : Les objets et les classes


1) Introduction :
Compar au programme classique, o la conception d'un programme privilgie
les procdures et les traitements par rapport aux donnes, (que veut-on faire ?),
la programmation oriente objet privilgie les donnes par rapport aux
traitements et considre un programme comme tant un ensemble d'objets
informatiques dcris par une liste de variable et caractrises par des oprations
(traitement).
Dans le cas de la conception et programmation oriente objet, la question qu'il
faut poser est : de quoi parle-t-on ? ou qu'est-ce qu'on manipule comme entit ?
La programmation oriente objet sera donc constitue d'un ensemble d'objets
interagissant entre eux et chacun disposant d'une partie donne et d'une partie
traitement.

2) Description d'un objet :


Un objet est dcrit par un ensemble de trios ayant la forme suivante :
<entit, attribut, valeur>
Exemple :
<voiture1, couleur, rouge>, <voiture1, marque, Toyota>, <voiture1, modle, Yaris>,
<arbre1, type, sapin>, <arbre1, taille, 5m>
Dans les langages informatiques, on stock et on manipule les objets en mmoire
comme tant un ensemble de couples attribut/valeur.

voiture 1

Couleur : Rouge

Marque : Toyota

Modle : Yaris

3) Caractristiques d'un objet informatique :


Un objet informatique est caractris par :
1) Un identifiant unique : valeur unique et invariante.
Un objet informatique tant en mmoire l'adresse de cet espace mmoire
reprsente son identifiant unique.
2) Un tat : l'tat d'un objet est l'ensemble des valeurs des attribues de cet objet.
L'tat d'un objet peut changer.
Il suffit qu'un seul attribut change de valeur pour dire qu'un ovjet a chang d'tat.
3) Un comportement : est dfinie par les attributs de cet objet. Le traitement doit
se raliser par un ensemble de fonctions ou procdures appeles Mthodes.

Les mthodes d'un objet permettant de dfinir la manire de changer l'tat d'un
objet.

4) Reprsentation objets en mmoire :


Lors de la cration d'un objet, un espace mmoire sera louer et rserv.
Il contiendra les valeurs des attributs de cet objet. Les attributs utilisent souvent
les types primitifs et donne la taille des valeurs encoder est connue l'avance
l'adresse mmoire de chaque espace l'avance. Ladresse mmoire de chaque
espace rserv pour un objet donn sera considr comme son identifiant
unique.
Dans les programmes, un objet est accessible par une variable spciale qui
contient l'adresse mmoire o l'objet est stock, on appellera cette variable une
rfrence.
Exemple :
Attributs Valeurs
Rfrences

Espace

mmoire
Couleur: Vert
voiture-vue-dans-la-rue
ma-voiture

Marque: Toyota
Modle: YARIS

Couleur: ....
Marque: ....
Modle: ....