Vous êtes sur la page 1sur 61

Institut Supérieur

d’Informatique

Outils de Travail Collaboratif

Chapitre II: Génie logiciel et


cycles de vie (Rappel)
Niveau: L2 CS

Dr. Narjes Ben Hariz AU: 2022-2023 1


Terminologie

Logiciel Génie

Ingénieur Ingénierie

Génie Logiciel

Dr. Narjes Ben Hariz 2


Logiciel

Dr. Narjes Ben Hariz 3


Logiciel

- Un logiciel est un ensemble d’entités nécessaires au fonctionnement


d’un processus de traitement automatique de l’information.

-Parmi ces entités :

✓des programmes (en format code source ou exécutables) ;

✓des documentations d’utilisation ;

✓des informations de configuration.

Dr. Narjes Ben Hariz 4


Logiciel

Est un produit
● une forme exécutable : séquence d'instructions exécutables par
une machine
● une forme non exécutable : données, documentation
(développement, installation, utilisation et maintenance)

Peut interagir avec des clients, qui peuvent être :


● des opérateurs humains (utilisateurs, administrateurs, etc. ) ;
● d’autreslogiciels ;
● des contrôleurs matériels.

Peut être développé par


● une personne seule;
● une petite équipe;
● un ensemble d’équipes coordonnées.
15
Dr. Narjes Ben Hariz 5
Logiciel
Classification des logiciels

1ère classification

Logiciel générique Logiciel sur


(progiciel) mesure

Système
Système
destiné à un
spécifique
même type
développé
d’application
pour les
et conçu pour
besoins d’un
différents
client
clients

Dr. Narjes Ben Hariz 6


Logiciel
Classification des logiciels

2ème classification

Logiciel
Logiciel système
d‘application
Système d‘exploitation Bureautique
Drivers
Loisir
Outils de développement
Métier
SGBD
Archivage
Logiciel réseau
… …

Dr. Narjes Ben Hariz 7


Logiciel
Classification des logiciels

3ème classification

Logiciel
Logiciel
gratuit Logiciel libre
propriétaire
(freeware)
L'auteur
le code source
autorise
est libre et
L'auteur se l'utilisation et
modifiable,
réserve le la copie par
garantie la
droit de autrui
liberté de
diffuser et de gratuitement,
l’utilisateur
modifier le mais garde le
dans son
logiciel droit de
utilisation d’un
modifier le
logiciel
logiciel

Dr. Narjes Ben Hariz 8


Logiciel
La crise du logiciel

❖ Historiquement, il y a eu une prise de conscience dans les


années 70, appelée la crise du logiciel, dû à un tournant
décisif : c’est à cette époque que le coût de construction du
logiciel est devenu plus important que celui de la
construction du matériel.

▫ Le logiciel n’était pas fiable


▫ Il était incroyablement difficile de réaliser dans des
délais prévus des logiciels satisfaisant leurs cahiers des
charges

Dr. Narjes Ben Hariz 9


Logiciel
La crise du logiciel:
Symptômes

Inadéquation

• Logiciels réalisés ≠ besoins utilisateurs

Délais

• Logiciels souvent livrés en retard

Coûts

• Dépassement du budget prévu

Fiabilité

• Logiciels souvent en panne

Maintenance

• Difficile et coûteuse

Dr. Narjes Ben Hariz 10


Logiciel
La crise du logiciel

C‘est à vous
de continuer

Dr. Narjes Ben Hariz 11


Logiciel
La crise du logiciel

Le Génie Logiciel ❖ La notion de génie logiciel a été


mentionnée pour la première fois lors
d’une conférence concernant la crise
du logiciel en 1968
❖ Conférence à Garmish en Allemagne
(7-10-1968/11-10-1968) sous le
patronage de l’OTAN (Organisation
du Traité de l’Atlantique Nord)

Dr. Narjes Ben Hariz 12


Génie Logiciel
Définition

❖ Le génie logiciel est un domaine des sciences de l’ingénieur dont l’objet d’étude
est la conception, la fabrication, et la maintenance des systèmes informatiques
complexes.

❖ Cherche à établir et à utiliser des principes sains d’ingénierie dans le but de


développer économiquement du logiciel qui satisfait les besoins, qui est
fiable et qui fonctionne efficacement sur des machines réelles (D’après Fritz
Bauer, 1969)

L’art et la manière de construire un logiciel


Dr. Narjes Ben Hariz 13
Génie Logiciel
Objectifs

Bien Le bon
développer logiciel

Maitriser: Celui attendu par les


- Coût utilisateurs
- Délais 7
- Qualité
7

Dr. Narjes Ben Hariz 14


Génie Logiciel
Objectifs

Le génie logiciel vise à garantir que :


● le logiciel respecte sa spécification ;
● la spécification répond aux besoins réels de ses clients ;
● les coûts alloués pour sa réalisation sont respectés ;
● les délais de réalisation sont respectés.
● le logiciel est de bonne qualité.

Dr. Narjes Ben Hariz 15


Génie Logiciel
Construire le bon logiciel

❖ Le génie logiciel est un domaine en pleine évolution qui offre une grande palette
d’outils et de méthodes pour parvenir à construire des logiciels de qualité.

Méthodes,
Techniques Méthodologies

DEVELOPPER
BESOINS ET LOGICIEL
MAINTENIR

Normes
Principes, règles Outils

Dr. Narjes Ben Hariz 16


Génie Logiciel
Construire le bon logiciel

❖ Principe = loi générale régissant un ensemble de phénomènes et


vérifiée par l’exactitude de ses conséquences
❖ Règle = convention qui s’impose dans un cas donné
❖ Technique = Ensemble de moyens pratiques propres à une activité
souvent associée à un savoir-faire .
❖ Méthode = un processus discipliné qui génère un ensemble de modèles
décrivant les différents aspects d’un logiciel en utilisant une notation bien
définie.
❖ Méthodologie = ensemble structuré et cohérent de méthodes et
d’outils permettant de déduire la manière de résoudre un problème.
❖ Norme = un document établi par consensus, qui fournit, pour des
usages communs et répétés, des règles, des lignes directrices ou des
caractéristiques, pour des activités ou leurs résultats, garantissant un
niveau d’ordre optimal dans un contexte donné (extrait du Guide
ISO/CEI 2 ).
Dr. Narjes Ben Hariz 17
Génie Logiciel
Construire le bon logiciel

Outils supportent

Méthodologie
Regroupent et appliquent

Méthodes et techniques

Sont basées sur

Principes

Dr. Narjes Ben Hariz 18


Génie Logiciel
Normes du Génie Logiciel

❖ Comme toute science de l’ingénieur, le GL est régi par des normes.


❖ L’IEEE (Institute of Electrical and Electronics Engineers) a élaboré une
classification des normes du GL ayant la référence ANSI/IEEE 1002 selon le
contenu de ces normes: Produit, Profession, Processus, Notation.
● Produits: les résultats documentés des activités de développement et de
maintenance.
● Processus: décrivent la suite d’actions à entreprendre pour développer un
produit.
● Profession: ces normes traitent des aspects du GL qui en font une profession
(ex: plan d’étude)
● Notation: décrivent le moyen de communication entre les professionnels.
51

Dr. Narjes Ben Hariz 19


Génie Logiciel
Acteurs du Génie Logiciel

❖ Différents acteurs interviennent, parmi lesquels:


● Utilisateurs

● Clients

● Manager/ingénieur d’affaires: gérer la relation avec les clients


● Chef de projet: suivre et superviser toutes les étapes de développement (suivi et contrôle)
● Architecte: S’occupe de l’architecture logicielle
● Analyste: Analyser

● Développeur: Développer
● Maintenance:Maintenir

❖ Ils n’ont pas les mêmes intérêts


❖ Élément clef : la communication
❖ Une personne peut assumer plusieurs rôles.
❖ Plusieurs personnes peuvent assumer un même rôle
Dr. Narjes Ben Hariz 20
Génie Logiciel
Acteurs du Génie Logiciel

Organiser le travail entre différents acteurs est l’un des apports du GL

Dr. Narjes Ben Hariz 21


Cycle de Vie Logiciel

❖ Processus: un ensemble d’activités coordonnées et contrôlées dont le but


est de créer un produit.
❖ Un processus décrit 2 choses importantes:
• Les activités (étapes) (= quoi?)
• L’enchainement des activités (= quand?)

❖ Processus de développement logiciel: appelé aussi cycle de


développement logiciel est un processus qui conduit à la production d’un
logiciel
● Il commence avec la décision de développer un logiciel et se termine avec
la livraison du logiciel et son installation.
● Le cycle de développement est la partie du cycle de vie d’un logiciel
consacrée au développement à proprement parler.

5
Dr. Narjes Ben Hariz 22
Cycle de Vie Logiciel

❖ Cycle de vie d’un logiciel: processus qui démarre par la détection d’un besoin
de développement d’un logiciel et qui se termine par la mise hors service du
logiciel.
❖ Il n’existe pas de cycle de vie idéal:
• Diversité des besoins et des contraintes de qualité.
• Différences de contexte et d’expertise aussi bien des organisations que
des personnes.
❖ L’objectif du cycle de vie est de détecter les erreurs au plus tôt et ainsi de
maîtriser la qualité du logiciel, les délais de sa réalisation et les coûts
associés.

Dr. Narjes Ben Hariz 23


Cycle de Vie Logiciel
Activités

Exploitation &
Avant-projet Retrait
Gestion de

Développement Maintenance
projet

Initiation Planification, Pilotage & Évaluation


du projet Suivi Gestion de qualité

Analyse
Conception

Maintenance &
Implémentation
techniques

Assistance
Activités

retrait
Étude Tests
préalable
Installation
Documentation

Vérification et Validation (V&V)

Gestion des configurations

Cycle de développement du logiciel 8

Cycle de vie du logiciel

Dr. Narjes Ben Hariz 24


Cycle de Vie Logiciel
Modèles de Cycle
de Vie Classique

Modèle en
Cascade
Modèles Linéaires
Modèle en V

Modèles
Classiques Modèle
Incrémental

Modèles Itératifs Modèle en Spirale

Modèle par
Prototypage

Dr. Narjes Ben Hariz 25


Cycle de Vie Logiciel
Modèles de Cycle
de Vie Classique

Modèle en
Cascade
Modèles Linéaires
Modèle en V

Modèles
Classiques Modèle
Incrémental

Modèle par
Modèles Itératifs
Prototypage

Modèle en Spirale

Dr. Narjes Ben Hariz 26


Cycle de Vie Logiciel
Modèle en Cascade

Principe
Analyse

Conception

Codage

Tests unitaires

Intégration
et Tests

Exploitation /
Maintenance

Dr. Narjes Ben Hariz 27


Cycle de Vie Logiciel
Modèle en Cascade

Principe
❖ Chaque étape doit être achevée avant que ne débute la suivante.
❖ Chaque étape permet d’élaborer des produits intermédiaires
❖ Chaque fin d’étape est matérialisée par un événement, où s’exerce une
activité de contrôle (Vérification et Validation) afin d’éliminer au plus tôt
les anomalies des produits réalisés.
❖ Le passage à l’étape suivante est conditionné par le résultat de contrôle
(acceptation, rejet, ajournement)
❖ Les retours en arrière sur les étapes précédentes se limitent à un retour
sur l’étape immédiatement antérieure.

Dr. Narjes Ben Hariz 44 28


Cycle de Vie Logiciel
Modèle en Cascade

Avantages

❖ Facile à utiliser et à comprendre


❖ Un procédé structuré pour une équipe inexpérimentée
❖ Idéal pour la gestion et le suivi de projets
❖ Fonctionne très bien quand la qualité est plus importante que les
coûts et les délais

Dr. Narjes Ben Hariz 29


Cycle de Vie Logiciel
Modèle en Cascade

Inconvénients
❖ Approche purement séquentielle et « simpliste »
❖ Il est rare que le client puisse fournir toutes les spécifications dès le
début du projet.
❖ Le client ne reçoit pas de résultats concrets pendant le
développement du logiciel
❖ Les risques se décalent vers la fin
❖ Très faible implication du client

Dr. Narjes Ben Hariz 30


Cycle de Vie Logiciel
Modèle en Cascade

Quand l’utiliser ?

❖ Quand les besoins sont connus et stables

❖ Quand la technologie à utiliser est maîtrisée

❖ Lors de la création d’une nouvelle version d’un produit existant

❖ Lors du portage d’un produit sur une autre plateforme

Dr. Narjes Ben Hariz 31


Cycle de Vie Logiciel
Modèle en V

Principe V&V
Installation et
Etude Préalable
Test

Spécification Validation
Fonctionnelle

Conception Tests
Globale d’Intégration

Conception
Tests Unitaires
Détaillée

Codage

Dr. Narjes Ben Hariz 32


Cycle de Vie Logiciel
Modèle en V

Principe
❖ Processus linéaire dérivé du modèle en cascade qui met l’accent sur la
vérification et la validation
❖ En plus de l’enchaînement des étapes successives, ce cycle met en relation
des étapes plus éloignées.
❖ Les premières étapes du cycle doivent préparer les dernières étapes,
essentiellement les activités de vérification et de validation.
❖ On insiste sur la partie test, réalisée à chaque étape et permettant de
s’assurer que le composant correspond à la description
• obligation de concevoir les jeux de test et leurs résultats ;
• réflexion et retour sur la description en cours.
Dr. Narjes Ben Hariz 33
Cycle de Vie Logiciel
Modèle en V

Principe
❖ Deux sortes de dépendances entre étapes :
● Traits continus : correspondent à l’enchaînement du modèle de
la cascade, les étapes se déroulent séquentiellement en suivant
le V de gauche à droite
● Traits non continus : Une partie des résultats de l’étape de
départ est utilisée directement par l’étape d’arrivée.

Par exemple : à l’issue de la conception globale, le protocole


d’intégration et les jeux de tests d’intégration doivent être
complètement décrits.

Dr. Narjes Ben Hariz 34


Cycle de Vie Logiciel
Modèle en V

Avantages
❖ Une meilleure spécification

❖ Evite d’énoncer une propriété qu’il est impossible de vérifier objectivement une
fois le logiciel réalisé.

❖ Prévenir les erreurs

❖ Obligation de concevoir les jeux de tests et leurs résultats oblige à une réflexion
et à des retours sur la description en cours.

❖ Une meilleure planification du projet:

❖ Les étapes de la branche droite du V peuvent être mieux préparés et planifiés.


Dr. Narjes Ben Hariz 35
Cycle de Vie Logiciel
Modèle en V

Inconvénients

❖ Le client ne reçoit pas de résultats concrets pendant le

développement du logiciel

❖ Les validations intermédiaires n’empêchent pas la transmission

des insuffisances des étapes précédentes.

❖ Ne gère pas les activités parallèles

❖ Ne gère pas explicitement les changements des spécifications


Dr. Narjes Ben Hariz 36
Cycle de Vie Logiciel
Modèle en V

Quand l’utiliser ?

❖ Quand le produit à développer à de très hautes exigences de qualité

❖ Quand les besoins sont connus à l’avance

❖ Les technologies à utiliser sont connues à l’avance

Dr. Narjes Ben Hariz 37


Cycle de Vie Logiciel
Modèles de Cycle
de Vie Classique

Modèle en
Cascade
Modèles Linéaires
Modèle en V

Modèles
Classiques Modèle
Incrémental

Modèles Itératifs Modèle en Spirale

Modèle par
Prototypage

Dr. Narjes Ben Hariz 38


Cycle de Vie Logiciel
Modèle incrémental

incrément3
Principe Incréments
délivrés
incrément2

incrément1
❖ A été proposé dans les années 80
noyau

❖ Incrément= version
temps

❖ Chaque incrément est une construction partielle du logiciel

❖ Trie les spécifications par priorités et les regroupent dans des groupes
de spécifications

❖ Chaque incrément implémente un ou plusieurs groupes jusqu’à ce que


la totalité du produit soit finie

Dr. Narjes Ben Hariz 39


Cycle de Vie Logiciel
Modèle incrémental

Principe
Analyse des Conception
besoins architecturale

Conception
détaillée d’un Codage d’un Validation de
incrément
incrément l’incrément

Intégration

Validation du
système
6
8
Système final
Dr. Narjes Ben Hariz 40
Cycle de Vie Logiciel
Modèle incrémental

Principe

❖ Un seul sous-ensemble des composants est développé à la fois


• Un logiciel noyau est tout d’abord développé puis,
• Des incréments sont successivement développés et intégrés
❖ Permet d’éviter de tout concevoir, de tout coder et de tout tester
❖ Les spécifications du logiciel sont figées et connues, l’étape de
conception globale est terminée

Dr. Narjes Ben Hariz 41


Cycle de Vie Logiciel
Modèle incrémental

Avantages

❖ Développement de fonctionnalités à risque en premier

❖ Chaque incrément donne un produit fonctionnel

❖ Le client intervient à la fin de chaque incrément

❖ Utiliser l’approche « diviser pour régner » Le client entre

en relation avec le produit très tôt

Dr. Narjes Ben Hariz 42


Cycle de Vie Logiciel
Modèle incrémental

Inconvénients

❖ Exige une bonne planification et une bonne conception

❖ Exige une vision sur le produit fini pour pouvoir le diviser

en incréments

❖ Le coût total du système peut être cher

Dr. Narjes Ben Hariz 43


Cycle de Vie Logiciel
Modèle incrémental

Quand l’utiliser ?

❖ Quand la plupart des spécifications sont connues à l’avances

et vont être sujettes à de faibles évolutions

❖ Quand on veut rapidement un produit fonctionnel

❖ Pour des projets de longues durées

❖ Pour des projets impliquant de nouvelles technologies

Dr. Narjes Ben Hariz 44


Cycle de Vie Logiciel
Modèle par Prototypage

❖ Prototype= version incomplète du système qui ne répond pas nécessairement


à tous les besoins.
❖ Prototype= un modèle exécutable de tout ou d’une partie d’un logiciel, facile à
mettre en œuvre et à modifier qui va permettre de vérifier rapidement certaines
fonctionnalités en sacrifiant la précision des autres. Il n’est pas construit avec les
mêmes contraintes de qualité que le logiciel final.
❖ Prototypage= technique importante de validation des besoins.
❖ Prototypage= une approche de développement logiciel qui privilégie la préparation
d’une version de travail utilisée comme base d’évaluation, de décision et de
préparation à la version complète.

Dr. Narjes Ben Hariz 45


Cycle de Vie Logiciel
Modèle par Prototypage

Principe
Développer
Ecouter le
le
client
prototype

Evaluer le
prototype

❖ Initialement, les spécifications données par le client sont d’ordre général


❖ Raffinement des spécifications, des fonctionnalités et des performances par des prototypes
successifs
❖ Quand le client donne son accord, le développement suit souvent un cycle de vie linéaire

Dr. Narjes Ben Hariz 46


Cycle de Vie Logiciel
Modèle par Prototypage

Avantages
❖ Pour le client: Une approche où domine l’écoute total du client.
• Le client reçoit des résultats tangibles rapidement
• Le client peut exprimer ses besoins plus facilement
• Le client peut changer d’avis sans conséquences dramatiques
❖ Pour l’utilisateur:
• Expérimentation rapide par les utilisateurs et feedback immédiat
• Former les utilisateurs avant la livraison du système final
❖ Pour l’équipe de développement:
• Meilleure clarification des spécifications
• Amélioration de la COMMUNICATION entre d’une part le client et l’analyste, d’autre part
l’analyste et le concepteur
Dr. Narjes Ben Hariz 47
Cycle de Vie Logiciel
Modèle par Prototypage

Inconvénients

❖Impatience du client qui croît avoir un logiciel final.

❖Problème relatif à la gestion de projet (planification, estimation des

coûts, etc,…)

Dr. Narjes Ben Hariz 48


Cycle de Vie Logiciel
Modèle par Prototypage

Quand l’utiliser ?
❖ Souvent utilisé pour la validation des spécifications MAIS
❖ Peut être aussi utilisé à différentes étapes du cycle de vie. Selon l’étape, les objectifs
du prototypes sont différents.
• Pour montrer la faisabilité
• Valider les interfaces utilisateurs
• etc.

Dr. Narjes Ben Hariz 49


Cycle de Vie Logiciel
Modèle en Spirale

❖ A été proposé par Boehm en 1988


❖ Il met l’accent sur une activité particulière : l’analyse et la gestion
des risques
• Tient compte de la possibilité de réévaluer les risques et les
gérer en cours de développement.
❖ Le développement présente quatre grandes phases qui se
succèdent au fur et à mesure de la construction de la spirale,
❖ Au dernier tour de la spirale, le produit est totalement défini, les
risques résolus et le produit développé.

Dr. Narjes Ben Hariz 50


Cycle de Vie Logiciel
Modèle en Spirale

Principe

Dr. Narjes Ben Hariz 51


Cycle de Vie Logiciel
Modèle en Spirale
Principe
❖ Détermination des objectifs
• En terme de fonctionnalité, de performance, de coût,...etc.
• Déterminer les alternatives : développer, réutiliser, acheter, sous-traiter…etc.
• Contraintes : coûts, plannings, … etc.
❖ Identification et évaluation de risques
• Etudier les alternatives de développement
• Identification des risques : technologie non maîtrisées, équipe peu expérimentée,
planning trop serré, …etc.
• Evaluation des risques : voir si les risques peuvent impacter le projet et à quel degré

❖ Développement et test
• Contient pratiquement la plupart des activités : conception, codage, test, … etc.
❖ Planification de la prochaine itération
• Un planning de l’itération
• Un plan de tests
Dr. Narjes Ben Hariz 52
Cycle de Vie Logiciel
Modèle en Spirale
Principe
❖ Détermination des objectifs
• En terme de fonctionnalité, de performance, de coût,...etc.
• Déterminer les alternatives : développer, réutiliser, acheter, sous-traiter…etc.
• Contraintes : coûts, plannings, … etc.
❖ Identification et évaluation de risques
• Etudier les alternatives de développement
• Identification des risques : technologie non maîtrisées, équipe peu expérimentée,
planning trop serré, …etc.
• Evaluation des risques : voir si les risques peuvent impacter le projet et à quel degré

❖ Développement et test
• Contient pratiquement la plupart des activités : conception, codage, test, … etc.
❖ Planification de la prochaine itération
• Un planning de l’itération
• Un plan de tests
Dr. Narjes Ben Hariz 53
Cycle de Vie Logiciel
Modèle en Spirale

Avantages

❖ Limitation du risque à chaque itération;


❖ Modèle réaliste et naturel;
❖ Validation concrète et non sur documents (prototypage);
❖ Conserve le caractère « étapiste » du modèle en cascade mais
l’intègre dans une approche itérative.

Dr. Narjes Ben Hariz 54


Cycle de Vie Logiciel
Modèle en Spirale

Inconvénients

❖ Il est difficile de faire comprendre au client le mode

d’opération de ce modèle;

❖ L’évaluation des risques exige une expertise spécifique;

❖ Modèle moins expérimenté que les autres.

Dr. Narjes Ben Hariz 55


Cycle de Vie Logiciel
Modèle en Spirale

Inconvénients

❖ Il est difficile de faire comprendre au client le mode

d’opération de ce modèle;

❖ L’évaluation des risques exige une expertise spécifique;

❖ Modèle moins expérimenté que les autres.

Dr. Narjes Ben Hariz 56


Cycle de Vie Logiciel
Modèle en Spirale

Quand l’utiliser ?

❖ Le modèle en spirale s'applique essentiellement en interne, lorsque


les clients et les fournisseurs font partie de la même entreprise.
❖ Dans une relation client-fournisseur ordinaire, un contrat doit être
signé donc l'effort doit être estimé à l'avance:
• Ne pas appliquer le modèle en spirale
• Ou bien, il doit être adapté en signant des contrats partiels pour
chaque itération.

Dr. Narjes Ben Hariz 57


Cycle de Vie Logiciel
Les méthodes agiles

Principes
1. Toujours satisfaire le client à travers des livraisons rapides et continues

2. Bien accueillir tous les changements même les tardifs

3. Livrer fréquemment un système fonctionnel

4. Les clients et les développeurs doivent collaborer

5. Conduire le projet autour d’équipes motivées

6. La meilleure méthode de faire circuler l’information c’est le contact direct entre


collaborateurs

7. La première mesure d’avancement c’est un logiciel fonctionnel

Dr. Narjes Ben Hariz 58


Cycle de Vie Logiciel
Les méthodes agiles

Principes

8. Le développement doit être durable et à un rythme constant

9. La bonne conception et l’excellence technique augmentent l’agilité

10. Simplifier au maximum

11. Les meilleurs architectures, besoins et conceptions proviennent

d’équipes qui s’organisent d’elles-mêmes

12. L’équipe s’améliore d’une manière autonome et régulière

Dr. Narjes Ben Hariz 59


Cycle de Vie Logiciel
Les méthodes agiles

Les méthodologies Agiles ...

Dr. Narjes Ben Hariz 60


Cycle de Vie Logiciel
Les méthodes agiles

C‘est à vous
de continuer

Dr. Narjes Ben Hariz 61

Vous aimerez peut-être aussi