21
Introduction au GL et à la CPOO Le Génie Logiciel & La Conception Orientée Objet 1 - Introduction Idir AIT SADOUNE [email protected] Plateau du Moulon - Gif sur Yvette - France Site web personnel http://wdi.supelec.fr/aitsadoune/ 2017-2018 GL & CPOO @IdirAitSadoune 1/21

Le Génie Logiciel & La Conception Orientée Objet - 1 ...wdi.supelec.fr/aitsadoune/pmwiki/uploads/Main/Cours/CPOO/0... · la conception orientée objet :unsystèmeestun ensemble

  • Upload
    votram

  • View
    225

  • Download
    1

Embed Size (px)

Citation preview

Introduction au GL et à la CPOO

Le Génie Logiciel & La Conception Orientée Objet1 - Introduction

Idir AIT SADOUNE

[email protected]

Plateau du Moulon - Gif sur Yvette - France

Site web personnelhttp://wdi.supelec.fr/aitsadoune/

2017-2018 GL & CPOO @IdirAitSadoune 1/21

Introduction au GL et à la CPOOLe génie logiciel Les méthodes d’analyse et de conception L’approche orientée objet

Dans ce cours

Introduction au GL et à la CPOOLe génie logicielLes méthodes d’analyse et de conceptionL’approche orientée objet

2017-2018 GL & CPOO @IdirAitSadoune 2/21

Introduction au GL et à la CPOOLe génie logiciel Les méthodes d’analyse et de conception L’approche orientée objet

Prochain point à étudier

Introduction au GL et à la CPOOLe génie logicielLes méthodes d’analyse et de conceptionL’approche orientée objet

2017-2018 GL & CPOO @IdirAitSadoune 3/21

Introduction au GL et à la CPOOLe génie logiciel Les méthodes d’analyse et de conception L’approche orientée objet

Introduction

L’informatique intervient partout dans les objets de la vie courante et ce, que cesoit dans l’objet proprement dit, ou bien dans le processus de conception ou defabrication de cet objet.Dans les entreprises, les investissements dans un système d’information serépartissent généralement de la manière suivante : 20 % pour le matériel et 80 %pour le logiciel .

Le matériel est généralement stable et traité à l’extérieur de l’entreprise (achat,configuration, installation, maintenance, ...)Les problèmes liés à l’informatique sont essentiellement des problèmes de logiciel(définition des besoins, conception, développement, maintenance, évolution, ...).

2017-2018 GL & CPOO @IdirAitSadoune 4/21

Introduction au GL et à la CPOOLe génie logiciel Les méthodes d’analyse et de conception L’approche orientée objet

Le logiciel

Un logiciel est un ensemble de programmes (plus grande échelle qu’un simpleprogramme) assurant une tâche ou une fonction complexe (en général plus defonctionnalités qu’un simple programme).

logiciel de comptabilité, logiciel de traitement de vidéos, ...

Un logiciel peut être développé par une seule personne, une équipe, ou unensemble d’équipes coordonnées (en général plus de personnes impliquées quedans le cas d’un simple programme).Le développement d’un logiciel pose d’importants problèmes de conception et decoordination.

le développement monopolise l’essentiel du coût d’un logiciel et conditionne saréussite et sa pérennité.

2017-2018 GL & CPOO @IdirAitSadoune 5/21

Introduction au GL et à la CPOOLe génie logiciel Les méthodes d’analyse et de conception L’approche orientée objet

Problèmes posés par le développement de logiciels (1/2)

En 1995, une étude du Standish Group (365 entreprises totalisant 8 380applications) établissait que :

16,2% seulement des projets étaient conformes aux prévisions initiales,52,7% avaient subi des dépassements en coût et en délai avec diminution du nombredes fonctions offertes,31,1% ont été purement abandonnés durant leur développement.

Pour ces raisons, le développement de logiciels suit des règles encadrant laconception et permettant le travail en groupe et la maintenance du code.

une nouvelle discipline est née : le Génie Logiciel (Software Engineering).

2017-2018 GL & CPOO @IdirAitSadoune 6/21

Introduction au GL et à la CPOOLe génie logiciel Les méthodes d’analyse et de conception L’approche orientée objet

Problèmes posés par le développement de logiciels (2/2)

Besoins des utilisateurs : difficile d’établir et de stabiliser les besoins desutilisateurs (définition et respect des spécifications, respect des délais, difficultés decommunication, environnement instable, évolution des besoins, ...).Malléabilité du logiciel : difficile de modifier un gros programme (difficultés demaintenance, de gestion des évolutions, ...).Documentation : difficile de comprendre l’architecture ou les choix de conceptiond’un logiciel à partir du seul texte source du programme.Complexité des logiciels : provient de plusieurs facteurs (algorithmes implantéscomplexes, complexités du domaine d’application, la taille des logiciels, ...).Évolution de l’informatique au cours du temps : élargissement des domainesd’application, évolution technologique des systèmes informatiques, ... (fiabilité,augmentation des coûts, ...).

2017-2018 GL & CPOO @IdirAitSadoune 7/21

Introduction au GL et à la CPOOLe génie logiciel Les méthodes d’analyse et de conception L’approche orientée objet

Le génie logiciel : définition

Le génie logiciel est un domaine de recherche des sciences de l’ingénieur qui apour objectif de regrouper l’ensemble des activités et de traiter les problèmes liés àla conception, la fabrication et la maintenance d’un logiciel.

Conception : spécification d’un logiciel accomplissant un but et respectant descontraintesFabrication : programmation, documentation et test d’un logicielMaintenance : modification d’un logiciel après la livraison pour corriger des erreurs,améliorer les performances ou ajouter des fonctionnalités

Le génie logiciel a pour objectif de produire de bons logiciels, au meilleur rapportqualité prix .

2017-2018 GL & CPOO @IdirAitSadoune 8/21

Introduction au GL et à la CPOOLe génie logiciel Les méthodes d’analyse et de conception L’approche orientée objet

Mesures de qualité pour un logiciel (1/2)

Comme le génie logiciel a pour objectif de produire de bons logiciels, des critères dequalité ont été définis :

Validité et Fiabilité : aptitude d’un produit logiciel à remplir exactement lesfonctions définies par le cahier des charges et les spécifications.Robustesse : aptitude d’un produit logiciel à fonctionner dans des conditionsanormales.Extensibilité (maintenance) : facilité avec laquelle un logiciel se prête à lamaintenance (modification ou extension de ses fonctions).Réutilisabilité : aptitude d’un logiciel à être réutilisé, en tout ou en partie, dans denouvelles applications.Compatibilité : facilité avec laquelle un logiciel peut être combiné avec d’autreslogiciels.

2017-2018 GL & CPOO @IdirAitSadoune 9/21

Introduction au GL et à la CPOOLe génie logiciel Les méthodes d’analyse et de conception L’approche orientée objet

Mesures de qualité pour un logiciel (2/2)

Efficacité : utilisation optimale des ressources matérielles par le logiciel.Portabilité : facilité avec laquelle un logiciel peut être transféré sous différentsenvironnements matériels et logiciels.Vérifiabilité : facilité de préparation des procédures de test du logiciel.Intégrité : aptitude d’un logiciel à protéger son code et ses données contre desaccès non autorisés.Convivial : facilité d’apprentissage, d’utilisation, de préparation des données,d’interprétation des erreurs et de rattrapage en cas d’erreur d’utilisation.Documenté : disponibilité d’un document de conception, d’un manuel utilisateur,d’un tutoriel ou d’un cours.

2017-2018 GL & CPOO @IdirAitSadoune 10/21

Introduction au GL et à la CPOOLe génie logiciel Les méthodes d’analyse et de conception L’approche orientée objet

Les activités (étapes) liées au développement d’un logiciel (1/3)

Analyse et étude de faisabilité des besoins : l’expression, le recueil, la formalisationdes besoins du client et des contraintes, et l’estimation de la faisabilité de cesbesoins (lister les résultats attendus en termes de fonctionnalités, de performance,de robustesse, de maintenance, de sécurité, d’extensibilité...) ;Conception ou Spécification : décrire de manière non ambiguë (modéliser) lefonctionnement futur du système afin d’en faciliter la réalisation ;

Spécification du système : description des fonctionnalités du système ;Conception de l’architecture : description de la structure générale du système ;Conception détaillée : description des composants, des algorithmes et des structuresde données ;

Codage (Implémentation ou mise en œuvre) : programmation dans un langageinformatique des fonctionnalités définies lors des phases d’analyse et de conception ;

2017-2018 GL & CPOO @IdirAitSadoune 11/21

Introduction au GL et à la CPOOLe génie logiciel Les méthodes d’analyse et de conception L’approche orientée objet

Les activités (étapes) liées au développement d’un logiciel (2/3)

Validation : s’assurer que le logiciel produit est de qualité (analyse statique, preuveformelle, revue de code, tests, ...) ;

Tests unitaires : vérification individuelle de la conformité des différents modules dulogiciel par rapport aux spécifications ;Tests d’intégration : vérification de l’interfaçage des différents modules du logiciel ;

Qualification : vérification de la conformité du logiciel par rapport auxspécifications initiales et aux besoins du client ;Documentation : production des informations nécessaires pour l’utilisation dulogiciel et pour les développements ultérieurs ;Mise en production : déploiement sur site du logiciel ;Maintenance et Évolution : maintenances corrective (correction des défauts),évolutive (ajout de nouvelles fonctionnalités) et adaptative (portage sur unenouvelle plate-forme) sur le logiciel.

2017-2018 GL & CPOO @IdirAitSadoune 12/21

Introduction au GL et à la CPOOLe génie logiciel Les méthodes d’analyse et de conception L’approche orientée objet

Les activités (étapes) liées au développement d’un logiciel (3/3)

Les projets de l’ingénierie logicielle sont généralement de grande taille etnécessitent une équipe de développement bien structurée. La gestion de projet seretrouve naturellement liée au aux activités du génie logiciel.

2017-2018 GL & CPOO @IdirAitSadoune 13/21

Introduction au GL et à la CPOOLe génie logiciel Les méthodes d’analyse et de conception L’approche orientée objet

Le cycle de vie d’un logiciel

Le cycle de vie d’un logiciel définit un séquencement des différentes étapes(activités) du développement d’un logiciel. C’est un processus qui permet decontrôler le développement d’un logiciel de sa conception à sa disparition.Il existe différents modèles organisant les différentes activités d’un cycle de vie :

modèle de cycle de vie en cascade,modèle de cycle de vie en V,modèle de cycle de vie en spirale,modèle par incrément, ...

Il existe autant de modèles que d’entreprises et ils s’adaptent au contexte dudéveloppement.

2017-2018 GL & CPOO @IdirAitSadoune 14/21

Introduction au GL et à la CPOOLe génie logiciel Les méthodes d’analyse et de conception L’approche orientée objet

Prochain point à étudier

Introduction au GL et à la CPOOLe génie logicielLes méthodes d’analyse et de conceptionL’approche orientée objet

2017-2018 GL & CPOO @IdirAitSadoune 15/21

Introduction au GL et à la CPOOLe génie logiciel Les méthodes d’analyse et de conception L’approche orientée objet

Définition et Intérêt

Une méthode d’analyse et de conception est une démarche qui a pour objectifla formalisation des différentes étapes du développement d’un système(essentiellement l’analyse et la conception) afin de rendre ce développement plusfidèle aux besoins du client.Une méthode d’analyse et de conception fournit une méthodologie et desnotations standards qui aident à concevoir des logiciels de qualité.

Une méthode d’analyse et de conception permet d’assister une ou plusieurs étapesdu cycle de vie du logiciel.

2017-2018 GL & CPOO @IdirAitSadoune 16/21

Introduction au GL et à la CPOOLe génie logiciel Les méthodes d’analyse et de conception L’approche orientée objet

Différent types de méthodes

Il existe différentes manières pour classer les méthodes de conception :

Approches par composition et par décomposition :

les méthodes ascendantes : construire un logiciel par composition à partir de modulesexistants,les méthodes descendantes : décomposer (raffiner) le système jusqu’à arriver à desmodules simples ;

Approches fonctionnelle et orientée objet :la conception fonctionnelle (procédurale) : un système est vu comme un ensemblehiérarchique de fonctions. Les fonctions disposent d’un état local et le système a unétat partagé centralisé et accessible par l’ensemble des fonctions.la conception orientée objet : un système est un ensemble d’objets en interaction.Chaque objet dispose d’un état et d’un comportement, et l’état du système est décritpar l’état de l’ensemble.

2017-2018 GL & CPOO @IdirAitSadoune 17/21

Introduction au GL et à la CPOOLe génie logiciel Les méthodes d’analyse et de conception L’approche orientée objet

Prochain point à étudier

Introduction au GL et à la CPOOLe génie logicielLes méthodes d’analyse et de conceptionL’approche orientée objet

2017-2018 GL & CPOO @IdirAitSadoune 18/21

Introduction au GL et à la CPOOLe génie logiciel Les méthodes d’analyse et de conception L’approche orientée objet

C’est quoi l’approche orienté objet

L’approche orienté objet considère le logiciel (ou le système) comme unensemble d’objets en interaction.Un objet est considéré comme une entité possédant les caractéristiques suivantes :

L’identité : permet de distinguer un objet des autres objets, indépendamment de sonétat (un produit est repéré par un code, une voiture par un numéro de série, etc.) ;Les attributs : caractérisent les données de l’objet. Ce sont des variables stockantdes informations sur l’état de l’objet ;Les méthodes : caractérisent le comportement de l’objet. Elles représententl’ensemble des actions (services) que l’objet est capable d’offrir ou de réaliser.

La Conception Orientée Objet (COO) est la méthode qui conduit à desarchitectures logicielles fondées sur les objets du système, plutôt que sur lafonction qu’il est censé réaliser (approche fonctionnelle/procédurale).

2017-2018 GL & CPOO @IdirAitSadoune 19/21

Introduction au GL et à la CPOOLe génie logiciel Les méthodes d’analyse et de conception L’approche orientée objet

Concepts importants de l’approche objet (1/2)

Une classe est un type de données abstrait qui précise les caractéristiques(attributs et méthodes) communes à toute une famille d’objets et qui permet decréer (instancier) des objets possédant ces caractéristiques.L’héritage est un mécanisme de transmission des caractéristiques d’une classe versune sous-classe.

Une classe peut être spécialisée en définissant une autre classe par ajout denouvelles caractéristiques (l’extension) ou par adaptation de caractéristiquesexistantes.Plusieurs classes peuvent être généralisées en définissant une autre classe parregroupement des caractéristiques communes (factorisation).

2017-2018 GL & CPOO @IdirAitSadoune 20/21

Introduction au GL et à la CPOOLe génie logiciel Les méthodes d’analyse et de conception L’approche orientée objet

Concepts importants de l’approche objet (2/2)

L’encapsulation consiste à masquer les détails d’implémentation d’un objet endéfinissant une interface (une vue externe d’un objet qui définit lesservices/méthodes accessibles aux utilisateurs de l’objet).

L’encapsulation garantit l’intégrité des données (restreindre l’accès direct auxattributs des objets).

Le polymorphisme représente la faculté d’une méthode à pouvoir s’appliquer àdes objets de classes différentes.

Le polymorphisme augmente la généricité et la qualité du code.L’agrégation (ou la composition) est une relation entre deux classes, spécifiantque les objets d’une classe sont des composants de l’autre classe.

L’agrégation permet d’assembler des objets de base, afin de construire des objetsplus complexes.

2017-2018 GL & CPOO @IdirAitSadoune 21/21