Introduction au Génie Logiciel

34
Génie logiciel : Conception Orientée Objet avec UML Responsable : Abdelmajid DARGHAM Licence Professionnelle ABD Semestre 5 Année universitaire 2009/2010

description

Ce cours a été réalisé par A. DARGHAM, Professeur à la Faculté des Sciences d'Oujda.

Transcript of Introduction au Génie Logiciel

Page 1: Introduction au Génie Logiciel

Génie logiciel :Conception Orientée Objet avec

UML

Responsable : Abdelmajid DARGHAM

Licence Professionnelle ABD

Semestre 5

Année universitaire 2009/2010

Page 2: Introduction au Génie Logiciel

Chapitre 1 : Introduction au génie logiciel

Page 3: Introduction au Génie Logiciel

Sommaire

Caractérisation du logicielLes facteurs de qualité d’un logicielCycle de vie d’un logicielLa modélisation en généralLa modélisation en génie logiciel

Page 4: Introduction au Génie Logiciel

Caractérisation du logiciel Aspects des systèmes informatiques :

Matériel : • Équipements physiques : processeurs,

Mémoires, périphériques, …etc.• Représente 20% du coût global.

Logiciel : • Programmes : OS, compilateurs, SGBD,

bureautique, gestion, comptabilité, …etc. • Occupe 80% du coût global.

Page 5: Introduction au Génie Logiciel

Caractérisation du logiciel Matériel informatique :

Fabrication : • Assurée par quelques fabricants

seulement. Fiabilité :

• Le matériel est devenu relativement fiable. Standardisation :

• Le marché du matériel est standardisé.

À notre époque, le matériel ne pose pas de vrais problèmes !!!

À notre époque, le matériel ne pose pas de vrais problèmes !!!

Page 6: Introduction au Génie Logiciel

Caractérisation du logiciel Logiciel informatique :

Nature virtuelle : • Le logiciel est un produit immatériel.

Nature technique : • Le logiciel est un objet technique fortement

contraint. Cycle de production particulier :

• La reproduction ne pose pas de problèmes, seule la première copie a un coût.

Les problèmes liés à l’informatique sontessentiellement des problèmes de logiciel !!!

Les problèmes liés à l’informatique sontessentiellement des problèmes de logiciel !!!

Page 7: Introduction au Génie Logiciel

Caractérisation du logiciel La « crise du logiciel » :

Étude sur 8 380 projets de fabrication de logiciels (Standish Group, 1995) : • Succès : 16%;• Problématique : 53% (budget ou délais non

respectés, défaut de fonctionnalités);• Échec : 31% (projets abandonnés).

Le taux de succès décroît avec la taille des projetset la taille des entreprises

Le taux de succès décroît avec la taille des projetset la taille des entreprises

Page 8: Introduction au Génie Logiciel

Caractérisation du logiciel Le génie logiciel (Software Engineering) :

Objectifs : • Comment faire des logiciels de qualité ?• Définir et spécifier les critères de qualité

logicielle.• Maîtriser le processus de fabrication de

logiciels.

Définition : le génie logiciel regroupe les sciences et les technologies qui permettent la construction de

logiciels de qualité.

Définition : le génie logiciel regroupe les sciences et les technologies qui permettent la construction de

logiciels de qualité.

Page 9: Introduction au Génie Logiciel

Les facteurs de qualité d’un logiciel Les facteurs de qualité d’un logiciel :

Correction : • Le logiciel assume correctement ses

fonctionnalités, comme a été définie par sa spécification.

Robustesse :• Le logiciel réagit correctement dans une

situation anormale. Extensibilité :

• Le logiciel présente une grande facilité d’adaptation aux changements de spécifications.

Page 10: Introduction au Génie Logiciel

Les facteurs de qualité d’un logiciel Les facteurs de qualité d’un logiciel :

Réutilisabilité :• Les composants du logiciel peuvent très

bien servir à la construction de nouveaux logiciels.

Compatibilité :• Les éléments du logiciel peuvent être

combinés à d’autres sans problèmes. Portabilité :

• Le logiciel peut être transféré d’un environnement à un autre.

Page 11: Introduction au Génie Logiciel

Les facteurs de qualité d’un logiciel Les facteurs de qualité d’un logiciel :

Efficacité :• Le logiciel consomme le minimum de

ressources tels que le temps d’exécution, l’espace mémoire, la bande passante du réseau, …etc.

Facilité d’utilisation :• Le logiciel présente une grande facilité

d’utilisation (installation + apprentissage + pilotage, tous faciles).

Page 12: Introduction au Génie Logiciel

Cycle de vie d’un logiciel

Utilité du cycle de vie d’un logiciel : Maîtriser le processus d’élaboration de

logiciel.• La qualité du processus de fabrication est

garante de la qualité du produit. Réduire la complexité du logiciel.

Définition : le cycle de vie d’un logiciel (software lifecycle) regroupe les étapes de productiondu logiciel, ainsi que leur ordonnancement.

Définition : le cycle de vie d’un logiciel (software lifecycle) regroupe les étapes de productiondu logiciel, ainsi que leur ordonnancement.

Page 13: Introduction au Génie Logiciel

Cycle de vie d’un logiciel Étapes du cycle de vie :

Étude de faisabilité. Analyse et spécification des besoins. Conception générale :

• Définir l’architecture globale du logiciel. Conception détaillée :

• Déterminer les modules du logiciels. Programmation :

• Coder le logiciel (Implémentation). Tests unitaires :

• Vérifier le fonctionnement de chaque module.

Page 14: Introduction au Génie Logiciel

Cycle de vie d’un logiciel Étapes du cycle de vie :

Tests d’intégration : • Vérifier le fonctionnement de l’ensemble

des modules. Documentation du logiciel :

• Éditer le manuel d’installation et le manuel d’utilisation.

Distribution du logiciel. Maintenance :

• Définir les éléments du logiciel à maintenir.

Page 15: Introduction au Génie Logiciel

Cycle de vie d’un logiciel Les deux Types de maintenances :

Maintenance corrective : • Maintenir pour corriger certaines lacunes

dans le logiciel. Maintenance évolutive :

• Maintenir pour faire évoluer certaines fonctionnalité du logiciel.

Page 16: Introduction au Génie Logiciel

Cycle de vie d’un logiciel Les modèles de cycle de vie du logiciel :

Modèle en tunnel : • Absence de modèle de développement.

Modèle en cascade :• L’enchaînement des étapes est linéaire.

Chaque étape ne commence que lorsque l’étape précédente est terminée.

Modèle en V :• À chaque étape correspond une étape de

test spécifique.• Les tests peuvent être définis avant les

phases de test.

Page 17: Introduction au Génie Logiciel

Cycle de vie d’un logiciel Les modèles de cycle de vie du logiciel :

Modèle itératif :• On commence par développer un sous-

ensemble des fonctionnalités (noyau du logiciel) de manière linéaire (en cascade).

• On itère un modèle linéaire pour développer incrémentalement de plus en plus de fonctionnalités, jusqu’à achèvement du projet.

Page 18: Introduction au Génie Logiciel

Cycle de vie d’un logiciel

Modèle en cascade

Page 19: Introduction au Génie Logiciel

Cycle de vie d’un logiciel

Modèle en V

Page 20: Introduction au Génie Logiciel

La modélisation en général Modèles :

Définition :• Un modèle est une représentation abstraite

de la réalité qui exclut certains détails du monde réel.

Utilité :• Reflète ce que le concepteur croit important

pour la compréhension et la prédiction du phénomène modélisé, les limites du phénomène modélisé dépendent des objectifs du modèle.

Page 21: Introduction au Génie Logiciel

La modélisation en général Modèles :

Utilité (suite) :• Permet de réduire la complexité d’un

phénomène en éliminant les détails qui n’influencent pas son comportement de manière significative.

Modélisation : Définition :

• Processus par lequel on arrive à élaborer un modèle décrivant un système réel (ou un phénomène du monde réel).

Page 22: Introduction au Génie Logiciel

La modélisation en général Types de Modélisation :

Modélisation à priori :• Modéliser un système avant sa réalisation

(le système n’existe pas encore).• Objectifs :

–Comprendre le fonctionnement du future système.

–Mesurer et Maîtriser sa complexité.–Assurer sa cohérence.–Pouvoir communiquer au sein de

l’équipe de réalisation.

Page 23: Introduction au Génie Logiciel

La modélisation en général Types de Modélisation :

Modélisation à posteriori :• Modéliser un système après sa réalisation

(le système existe déjà).• Objectifs :

–Corriger les erreurs dans l’ancien système.

–Faire évoluer l’ancien système.

Page 24: Introduction au Génie Logiciel

La modélisation en génie logiciel Approches de modélisation pour le logiciel :

Approche fonctionnelle :• Approche traditionnelle basée sur

l’utilisation des procédures et des fonctions.• Les grands programmes sont décomposés

en sous-programmes. Approche orientée objets :

• On identifie les éléments du système et on en fait des objets.

• On cherche à faire collaborer ces objets pour qu’ils accomplissent la tâche voulue.

Page 25: Introduction au Génie Logiciel

La modélisation en génie logiciel Modélisation fonctionnelle :

Approche descendante :• La modélisation du système se base sur

les fonctions, et non pas sur les objets.• On commence par déterminer la fonction

globale du système.• Puis, on décompose la fonction globale du

système en plusieurs sous-fonctions jusqu’à obtenir des fonctions élémentaires simples à programmer.

• Il s’agit d’une démarche descendante.

Page 26: Introduction au Génie Logiciel

La modélisation en génie logiciel Modélisation fonctionnelle :

Avantages :• Adéquate pour les petits logiciels et les

système peu complexes.• Démarche ordonnée et organisée.

Inconvénients :• Pose des problèmes de structuration de

données, car elle est orientée fonctions.• Produit des logiciels non réutilisables.• Produit des logiciels très difficile à les faire

évoluer ou corriger.

Page 27: Introduction au Génie Logiciel

La modélisation en génie logiciel Modélisation orientée objets :

Approche fondée sur les objets :• Le modèle à produire est décrit en terme

d’objets et non pas en terme de fonctions.• On peut partir des objets du domaine

(briques de base) et remonter vers le système global.

• On défini également les interactions et les collaborations entre les objets du système.

• Il s’agit essentiellement d’une approche ascendante.

Page 28: Introduction au Génie Logiciel

La modélisation en génie logiciel Modélisation orientée objets :

Avantages :• Démarche naturelle et logique.• Raisonnement par abstraction sur les

objets du domaine. Inconvénients :

• Parfois moins intuitive que l’approche fonctionnelle.

• Rien dans les concepts de base objets ne précise comment modéliser la structure objet d’un système de manière pertinente.

Page 29: Introduction au Génie Logiciel

La modélisation en génie logiciel Penser et programmer objet :

COO & POO :• La conception objet doit être dissociée de

la programmation objet.–Les langages à objets ne présentent que

des manières particulières d’implémenter certains concepts. Ils ne valident en rien la conception.

–Il est même possible de concevoir objet et de coder en fonctionnelle (Langage C, par exemple).

Page 30: Introduction au Génie Logiciel

La modélisation en génie logiciel Penser et programmer objet :

COO & POO :• Connaître des langages de programmation

objet comme C++ ou Java n’est pas suffisant.

–Il faut savoir s’en servir en utilisant un moyen de modélisation, d’analyse et de conception objet.

–Sans les langages de haut niveau (donc de modélisation), il est difficile de comparer plusieurs solutions de modélisation objet.

Page 31: Introduction au Génie Logiciel

La modélisation en génie logiciel Utilisation efficace de l’approche objet :

Niveau démarche de modélisation :• Il faut suivre une démarche d’analyse et de

conception objet. –Ne pas effectuer une analyse

fonctionnelle, et se contenter d’une implémentation objet.

Niveau langage de modélisation :• Il faut utiliser un langage de modélisation

qui permet de représenter les concepts abstraits, de limiter les ambiguïtés et de faciliter l’analyse.

Page 32: Introduction au Génie Logiciel

La modélisation en génie logiciel Langages de modélisation :

Objectifs :• Définir la sémantique des concepts.• Définir une notation pour la représentation

des concepts.• Définir des règles d’utilisation des concepts

et de construction. Langages de modélisation :

• Adaptés aux système procéduraux (MERISE, …).

• Adaptés aux systèmes temps réel (ROOM, SADT, …).

Page 33: Introduction au Génie Logiciel

La modélisation en génie logiciel Langages de modélisation :

• Adaptés aux systèmes à objets (OMT, Booch, UML, …).

Ateliers de génie logiciel :• Présenter des outils pour la modélisation.• Le rôle de ces outils est primordial pour

l’utilisabilité en pratique des langages de

Page 34: Introduction au Génie Logiciel

La modélisation en génie logiciel Langages à objets :

Langages de programmation :• SIMULA (1967).• Smalltalk (1972).• C++ (1985).• JAVA (1995).

Méthodes de modélisation :• OMT : Object Modeling Technique.• OOSE : Object Oriented System and

Engineering.