Vous êtes sur la page 1sur 59

Université Blida -1-

Faculté des Sciences


Département d’Informatique

Génie Logiciel 2

Mme CHIKHI .I

2016-2017
Plan

Qu’est-ce que le génie logiciel ?


Définitions
Qu’est-ce que le logiciel?
Définitions
Caractéristiques
Objectifs
Difficultés
Principes
Plan

Qu’est-ce que le génie logiciel ?


Définitions
Qu’est-ce que le logiciel?
Définitions
Caractéristiques
Objectifs
Difficultés
Principes
Qu’est-ce que le génie logiciel ?
Définition 1 :
Un domaine des sciences de l’ingénieur dont l’objet
d’étude est :
La conception;
La fabrication;
La maintenance de systèmes informatiques
complexes.
Qu’est-ce que le génie logiciel ?
Définition 2 :
Le processus visant la résolution de problèmes posés par un
client :
Le développement et l’évolution de systèmes logiciels
de:
Grande/petite taille;
Haute qualité;
En respectant les contraintes de coûts et de temps.
Qu’est-ce que le génie logiciel ?

Un Domaine et un Processus

Conception, Développement et Maintenance


de
Systèmes Logiciels
Qu’est-ce que le génie logiciel ?

Définition 3 :

Ensemble de moyens (techniques, méthodes) mis en œuvre


pour la construction de systèmes informatiques.

Ensemble de moyens (techniques, méthodes) mis en œuvre


pour la construction de logiciels.
Qu’est-ce que le génie logiciel ?

Génie Logiciel Les notions suivantes :

Système
Système d’Information
Système Informatique
Logiciel
Plan

Qu’est-ce que le génie logiciel ?


Définitions
Qu’est-ce que le logiciel?
Définitions
Caractéristiques
Objectifs
Difficultés
Principes
Qu’est-ce que le génie logiciel ?
Notion de Système ?
Un ensemble d’éléments interagissant entre eux suivant un certains
nombres de principes et de règles dans le but de réaliser un objectif.
L’environnement est la partie du monde extérieure au système.
Un système est souvent hiérarchisé à l’aide de sous-systèmes.
Qu’est-ce que le génie logiciel ?

Notion de Système d’Information ?


L’ensemble des éléments participants à :
La gestion;
Le stockage;
Le traitement;
Le transport et la diffusion de l’information au sein de
l’organisation.
Qu’est-ce que le génie logiciel ?

Notion de Système Informatique ?


L’ensemble des équipements destinés au traitement automatique
de l’information permettant :
Acquérir;
Stocker;
Traiter;
Communiquer des données.
Qu’est-ce que le génie logiciel ?

Notion de Système Informatique :

Hardware Software

Sont indissociables :
Le hardware a besoin du software pour être piloté.
Le software a besoin du hardware pour être exécuté.
Qu’est-ce qu’un logiciel?

Un Logiciel est un Système d’Information Automatisé :


L’ensemble des moyens et des méthodes qui se rapporte au
traitement automatisé des données.
Il constitue la partie logicielle du système informatique.

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


processus de traitement automatique de l’information.
Qu’est-ce qu’un logiciel?

Système
d’Information

Système
Informatique

Système
d’Information
automatisé
(logiciel)
Qu’est-ce qu’un logiciel?

Un logiciel est un produit qui couvre un ensemble organisé


de :
Programmes
Procédés
Documentation
Services

16
Qu’est-ce qu’un logiciel?

Un ensemble d'informations relatives à des traitements


effectués automatiquement par un appareil
informatique.
Y sont incluses les instructions de traitement,
regroupées sous forme de :
Programmes;
Données.

17
Qu’est-ce que le génie logiciel ?
On regroupe sous le terme de logiciel :
Les différentes formes de programmes qui permettent de faire
fonctionner un ordinateur, et de l’utiliser pour résoudre des
problèmes;
Les données qu’ils utilisent;
Les documents qui servent à concevoir ces programmes et ces
données, à les mettre en œuvre, à les utiliser et à les modifier.

Un logiciel :
Programmes
Données
Documentation
Qu’est-ce qu’un logiciel?

Un logiciel est un transformateur d’information.


Cette information peut être :
Simple : un bit de données;
Complexe : une présentation multimédia.

19
Qu’est-ce qu’un logiciel?

Un logiciel peut interagir avec des clients, qui peuvent être :


Des opérateurs humains : utilisateurs, administrateurs, etc.
D’autres logiciels ;
Des contrôleurs matériels.
Qu’est-ce qu’un logiciel?
Classification de logiciels :

21
Qu’est-ce qu’un logiciel?
Classification de logiciels :
Produits logiciels génériques :
Systèmes autonomes commercialisés auprès de tout client souhaitant
les acheter
Exemples : office, photoshop, etc.
Produits logiciels adaptés aux clients :
Logiciels commandés par des clients spécifiques pour répondre à
leurs propres besoins.
Exemples : logiciel de contrôle de traffic aérien, logiciels de contrôle de
dispositifs matériels, etc.

Quelle est la différence ?


22
Qu’est-ce qu’un logiciel?
Classification de logiciels :
Différence au niveau de la spécification :
Produits logiciels génériques :
La spécification de ce que doit faire le logiciel est maîtrisée par
le développeur.
Les décisions concernant les changements du logiciel sont
faites par le développeur.
Produits logiciels adaptés aux clients :
La spécification de ce que doit faire le logiciel est maîtrisée par
le client de ce logiciel.
C’est le client qui décide des changements qu’il souhaite y
apporter.

23
Qu’est ce que le Génie Logiciel?
Variété des types de systèmes logiciels :
Gros systèmes de gestion / systèmes d’information :
Le plus souvent des systèmes transactionnels construits autour
d’une base de données;
Systèmes temps réel :
Doivent répondre à des événements dans des limites de temps
prédéfinies et strictes ;
Systèmes distribués sur un réseau de machines :
Distribution des données et/ou des traitements
Systèmes embarqués et systèmes critiques :
Interfacés avec un système à contrôler.
Plan

Qu’est-ce que le génie logiciel ?


Définitions
Qu’est-ce que le logiciel?
Définitions
Caractéristiques
Objectifs
Difficultés
Principes
Qu’est-ce qu’un logiciel?
Caractéristiques :
Un objet immatériel.
Ne s’use pas :
Il devient obsolète :
Par rapport au :
Contexte technique;
Autres logiciels, etc.
Le logiciel est facile à reproduire.
Pas de difficulté de duplication.
Ses fonctionnalités sont difficiles à figer au départ et souvent
remises en cause.
Facilité apparente de modification (versatilité) mais difficulté à
limiter les impacts d’une modification.
26
Qu’est-ce qu’un logiciel?

Impacts Positifs du logiciel ?


Le logiciel a amélioré le quotidien de plusieurs manières :
Le logiciel accélère les traitements;
Le logiciel résout des problèmes complexes rapidement;
Capacité de calcul, de stockage et de traitement incroyables;

27
Qu’est-ce qu’un logiciel?
Le logiciel réalise une spécification
son comportement vérifie un ensemble de critères qui
régissent ses interactions avec son environnement.

Que doit faire le Spécification d’un


logiciel ? logiciel

La spécification d’un logiciel peut prendre de nombreuses formes.


La complexité et les dimensions de la spécification peuvent varier
énormément en fonction de :
L’environnement d’utilisation du logiciel.
Des objectifs auxquels il répond.
Qu’est-ce que le génie logiciel ?

Autre
Définition
pour
le Génie Logiciel
Qu’est-ce que le Génie Logiciel?

Le génie logiciel vise à garantir que :


La spécification répond aux besoins réels de ses clients.
Le logiciel respecte sa spécification ;
Les coûts alloués pour sa réalisation sont respectés ;
Les délais de réalisation sont respectés.
Qu’est-ce que le Génie Logiciel?
Qu’est ce que le Génie Logiciel?
Le GL est en forte relation avec presque tous les autres
domaines de l’informatique :
Langages de programmation : modularité, orientation
objet, etc.
Bases de données : modélisation des données, etc.
Informatique théorique : automates, réseaux de Petri, etc.
Le GL est aussi en relation avec d’autres disciplines de
l’ingénieur :
Ingénierie des systèmes et gestion de projets;
Sûreté et fiabilité des systèmes, etc.
Plan

Qu’est-ce que le génie logiciel ?


Définitions
Qu’est-ce que le logiciel?
Définitions
Caractéristiques
Objectifs
Difficultés
Principes
Qu’est-ce que le Génie Logiciel?
Objectifs :
Le GL se préoccupe des procédés de fabrication des logiciels de
façon à s’assurer que les quatre critères suivants soient satisfaits :
Le système qui est fabriqué répond aux besoins (exigences) des
utilisateurs :
Correction fonctionnelle.
La qualité correspond au contrat de service initial.
La qualité du logiciel est une notion multiforme qui recouvre
plusieurs aspects : validité, etc.
Les coûts restent dans les limites prévues au départ.
Les délais restent dans les limites prévues au départ.
Plan

Qu’est-ce que le génie logiciel ?


Définitions
Qu’est-ce que le logiciel?
Définitions
Caractéristiques
Objectifs
Difficultés
Principes
Difficulté du génie logiciel ?

Difficultés du Génie
Logiciel

Difficultés liées à la
Difficultés liées aux Difficultés
nature du
personnes technologiques
logiciel
Difficulté du génie logiciel ?

Difficultés du Génie
Logiciel

Difficultés liées à la
Difficultés liées aux Difficultés
nature du
personnes technologiques
logiciel
Difficulté du génie logiciel ?

Une modification infime peut avoir des conséquences critiques ;


Les progrès technologiques très rapides peuvent rendre un logiciel caduque ;
Les domaines des entrées des logiciels sont trop grands pour le test exhaustif ;
Les défaillances des programmes sont en général dues à des erreurs humaines ;
On ne sait pas très bien réutiliser les programmes existants ;
Chaque logiciel a son organisation et sa logique propre, etc.
Difficulté du génie logiciel ?

Difficultés du Génie
Logiciel

Difficultés liées à la
Difficultés liées aux Difficultés
nature du
personnes technologiques
logiciel
Difficulté du génie logiciel ?

Ne savent pas toujours ce qu'elles veulent, ou ne savent pas bien


l'exprimer.
Communication difficile entre personnes de métiers différents, etc.
Difficulté du génie logiciel ?

Difficultés du Génie
Logiciel

Difficultés liées à la
Difficultés liées aux Difficultés
nature du
personnes technologiques
logiciel
Difficulté du génie logiciel ?

Courte durée de vie du matériel.


Evolution des outils de développement.
Plan

Qu’est-ce que le génie logiciel ?


Définitions
Qu’est-ce que le logiciel?
Définitions
Caractéristiques
Objectifs
Difficultés
Principes
Qu’est ce que le Génie Logiciel?

Principes Fondamentaux :
Rigueur
Séparation des problèmes
Modularité
Abstraction
Généricité
Construction incrémentale
Anticipation du changement
Qu’est ce que le Génie Logiciel?

Principes Fondamentaux :
Rigueur
Séparation des problèmes
Modularité
Abstraction
Généricité
Construction incrémentale
Anticipation du changement
Qu’est ce que le Génie Logiciel?
Principes Fondamentaux :
Rigueur :
La production de logiciel est une activité créative, mais qui doit se
conduire avec une certaine rigueur.
Le niveau maximum de rigueur est la formalité i.e. le cas où :
Les descriptions et les validations s’appuient sur des notations et lois
mathématiques.
Les principales sources de défaillances d’un logiciel sont d’origine
humaine.
À tout moment, il faut se questionner sur la validité de son action.
Il n’est pas possible d’être formel tout le temps :
Il faut bien construire la première description formelle à partir de
connaissances non formalisées !
Mais dans certaines circonstances les techniques formelles sont utiles.
Qu’est ce que le Génie Logiciel?

Principes Fondamentaux :
Rigueur
Séparation des problèmes
Modularité
Abstraction
Généricité
Construction incrémentale
Anticipation du changement
Qu’est ce que le Génie Logiciel?
Principes Fondamentaux :
Séparation des problèmes :
C’est une règle qui consiste à considérer séparément différents
aspects d’un problème :
Objectif : Maîtriser la complexité.
Elle prend une multitude de formes :
Séparations des vues que l’on peut avoir d’un système.
Exemple :
Se concentrer sur l’aspect données avant de considérer
l’aspect traitements.
Séparation du système en parties (sous-systèmes).
etc.
Qu’est ce que le Génie Logiciel?

Principes Fondamentaux :
Rigueur
Séparation des problèmes
Modularité
Abstraction
Généricité
Construction incrémentale
Anticipation du changement
Qu’est ce que le Génie Logiciel?
Principes Fondamentaux :
Modularité :
C’est une instance cruciale du principe de séparation des
problèmes.
Un système est modulaire s’il est composé de sous-systèmes plus
simples, ou modules.
C’est une propriété importante de tous les procédés et produits
industriels (cf. l’industrie automobile).
Que permet la modularité ?
Considérer séparément le contenu du module et les relations
entre modules.
Faciliter la réutilisation de composants bien délimités.
Qu’est ce que le Génie Logiciel?

Principes Fondamentaux :
Rigueur
Séparation des problèmes
Modularité
Abstraction
Généricité
Construction incrémentale
Anticipation du changement
Qu’est ce que le Génie Logiciel?
Principes Fondamentaux :
Abstraction :
Consiste à ne considérer que les aspects jugés importants d’un
système à un moment donné, en faisant abstraction des autres
aspects;
C’est encore un exemple de séparation des problèmes.
Une même réalité peut souvent être décrite à différents
niveaux d’abstraction.
L’abstraction permet une meilleure maîtrise de la
complexité.
Qu’est ce que le Génie Logiciel?

Principes Fondamentaux :
Rigueur
Séparation des problèmes
Modularité
Abstraction
Généricité
Construction incrémentale
Anticipation du changement
Qu’est ce que le Génie Logiciel?

Principes Fondamentaux :
Généricité :
Il est parfois avantageux de remplacer la résolution d’un
problème spécifique par la résolution d’un problème plus
général.
Cette solution générique (paramétrable ou adaptable) pourra
être réutilisée plus facilement.
Un logiciel réutilisable a beaucoup plus de valeur qu’un
composant dédié.
Un composant est générique lorsqu’il est adaptable.
Qu’est ce que le Génie Logiciel?

Principes Fondamentaux :
Rigueur
Séparation des problèmes
Modularité
Abstraction
Généricité
Construction incrémentale
Anticipation du changement
Qu’est ce que le Génie Logiciel?
Principes Fondamentaux :
Construction incrémentale :
Un procédé incrémental atteint son but par étapes en s’en
approchant de plus en plus ;
Chaque résultat est construit en étendant le précédent.
Exemple :
Réaliser d’abord un noyau des fonctions essentielles et
ajouter progressivement les aspects plus secondaires.
Écrire le code source d’une fonction ou module, le compiler, et
passer à la suivante.
Mieux que : Écrire l’ensemble du code source d’un
programme et compiler.
Qu’est ce que le Génie Logiciel?

Principes Fondamentaux :
Rigueur
Séparation des problèmes
Modularité
Abstraction
Généricité
Construction incrémentale
Anticipation du changement
Qu’est ce que le Génie Logiciel?
Principes Fondamentaux :
Anticipation du changement :
La caractéristique essentielle du logiciel, par rapport à d’autres
produits, est qu’il est presque toujours soumis à des changements
continuels :
Pourquoi?
Corrections d’imperfections;
Evolutions en fonction des besoins qui changent.
Ceci requiert des efforts particuliers pour prévoir, faciliter et gérer
ces évolutions inévitables.
Il faut, par exemple :
Faire en sorte que les changements soient les plus localisés
possibles bonne modularité.
Qu’est ce que le Génie Logiciel?

Principes Fondamentaux :
Rigueur
se retrouvent
Séparation des problèmes dans
Modularité toutes les
méthodes et
Abstraction outils du Génie
Généricité Logiciel

Construction incrémentale
Anticipation du changement

Vous aimerez peut-être aussi