P r.
J O H R I M U S TA P H A
Méthodes d’analyse et de conception
Il existe de nombreuses méthodes :
• Méthodes fonctionnelles de décomposition hiérarchique, la modélisation est
réalisée à partir de fonctions que doit réaliser le système;
• Méthodes objets , on identifie les objets manipulés par le système, avec leurs
états et leurs comportements.
Approche fonctionnelle
Décomposition fonctionnelle depuis le cahier des charges jusqu’aux sous-
fonctions
Approche fonctionnelle
Exemple de décomposition fonctionnelle d'un logiciel dédié à la gestion d'une
bibliothèque
Approche fonctionnelle
Exemple : Données
vec1 = (3, 4)
vec2 = (1, -3) Fonction
def longueur(v):
return [Link](v[0]**2 + v[1]**2)
long1 = longueur(vec1)
long2 = longueur(vec2)
print(vec1[0]) # Affiche '3'
Approche fonctionnelle
Inconvénient
• Interdépendance des fonctions
• Problème de maintenance
• Difficulté d’évolution du logiciel
Approche objet
Objet
Définition
Un objet représente une entité du monde réel (ou du monde virtuel pour les
objets immatériels) qui se caractérise par une identité, des états significatifs et
un comportement.
Exemple
une personne, une voiture, une maison, ...
Objet
Un objet est composé de
• Identité
• Permet de le distinguer des autres objets
• Attributs (état)
• Aussi appelées champs, variables, données ( Données caractérisant l'objet )
• Méthodes (comportement)
• Aussi appelées opérations, fonctions ( Actions que l'objet peut réaliser )
Classe
Définition
Une classe est l’abstraction d’un ensemble d’objets qui possèdent une structure
identique (les attributs) et un même comportement (les opérations).
Un objet est une instance d’une et une seule classe.
Exemple :
o Karim est une instance de la classe Personne/Employe
o Ford une instance de la classe Voiture
Classe
Nom de la classe : Employé
Attributs
Employe
Numéro
Nom + numero : int
+ nom : string
Age + age : int
tâche + tâche : string
Salaire + salaire : double
+ Engager un employé ()
Opérations
+ Modifier un employé (num : int) : bool
Engager un employé + Renvoyer un employé () : int
Modifier un employé
Renvoyer un employé
Classe
Une classe regroupe des fonctions et des attributs (Encapsulation) qui définissent un
objet. On appelle par ailleurs les fonctions d'une classe des " méthodes ".
Classes
#Utilisation
Vecteur
vec1 = Vecteur(3, 4) # création d'un objet Vecteur + x : float
vec2 = Vecteur(1, -3) # création d'un objet Vecteur + y : float
+ longueur() : float
long1 = [Link]()
long2 = [Link]()
print(vec1.x) # affiche 3
Classes
Une classe est définie par le mot-clé class.
class NomDeLaClasse :
def __init__(self,val1,…): #constructeur des objets
self.attribut1=val1
self.attribut2=val2
def methode1(self,arg1,arg2,..):
<blocs d’instructions>
def methode1(self,arg1,arg2,..):
<blocs d’instructions>
Classes
Exercice : Créons la classe Vecteur
Vecteur
+ x : float
+ y : float
+ longueur() : float
Création d'instances de la classe = objets :
v1 = Vecteur(3, 4) # appel de __init__(..., 3, 4) # aucun argument pour 'self'
Classes
Exercice : Créer la classe Chat Chat
+ nom : string
+ age : int
+ Get_age() : int
+ Parle()
+ Description() : string
Classes
Solution : Créer la classe Rectangle
Rectangle
+ long : float
+ larg : float
+ Périmètre ( ) : float
+ Aire() : float
+ EstCarre() : bool
+ AfficherRectangle() : string
Classes
Solution : Créer la classe Rectangle
Attribut de la classe
On peut définir aussi des attributs pour les classes (class attributes), par affectation. Ils sont
en commun pour toutes les objet crée par la classe. Souvent utilisés pour les « constantes »
Classe : Objet composé
Un objet peut être composé par des autres objets. Exemple : un rectangle est défini
par deux points.
p2
p1
Méthodes spéciales
On a rencontré pour la première fois une méthode spéciale __init__ (le constructeur).
Les méthodes spéciales sont identifiées par deux tirets bas à chaque côtés du nom.
La fonctions repr():
La fonction repr() donne une
représentation textuelle de n’importe
quel objet, sous forme de chaîne.
Méthodes spéciales
La fonctions repr():
Méthodes spéciales
On peut caractériser les opérateurs + - * / < > etc... Pour manipulé les objets. Par
exemple, pour l'operateur + il faut définir une méthode __add__()
Méthodes spéciales
Méthodes spéciales
Exercice : Créer une classe nommée Complexe qui permet de représenter un nombre
complexe, puis définir la méthodes repr et les opérations +,-,*,/,==, <
sachant que z1 <z2 ( si Re(z1)< Re(z2) )
Complexe
+ re : float
+ img : float
+ module( ) : float
+ arg() : float