Académique Documents
Professionnel Documents
Culture Documents
Génie Logiciel 2
Mme CHIKHI .I
2016-2017
Plan
Un Domaine et un Processus
Définition 3 :
Système
Système d’Information
Système Informatique
Logiciel
Plan
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?
Système
d’Information
Système
Informatique
Système
d’Information
automatisé
(logiciel)
Qu’est-ce qu’un logiciel?
16
Qu’est-ce qu’un logiciel?
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?
19
Qu’est-ce qu’un logiciel?
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.
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
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.
Autre
Définition
pour
le Génie Logiciel
Qu’est-ce que le 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 ?
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 ?
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