Vous êtes sur la page 1sur 19

Génie logiciel par : HAMDA MENSI

Copyright © , All rights reserved

01/07/10 1
plan

 Analyse de l’existant (crise du logiciel)


 Définition
 Sur le plan théorique
 Opérationnalisation
 Apport du génie logiciel

01/07/10 2
Analyse de l’existant : Crise du logiciel

 La qualité du logiciel livré est souvent déficiente. Le produit ne


satisfait pas les besoins de l’utilisateur, il consomme plus de
ressources que prévu et il est à l’origine de pannes.

 Les performances étaient très souvent médiocres (temps de réponse


trop lents).

 Le non respect des délais prévus pour le développement de logiciels


satisfaisant leurs cahiers des charges.

 Les coûts de développement d’un logiciel sont presque impossible à


prévoir et sont généralement prohibitifs (excessifs)

01/07/10 3
Analyse de l’existant : Crise du logiciel

 L’invisibilité du logiciel, ce qui veut dire qu’on s’aperçoit


souvent que le logiciel développé ne correspond pas à la
demande (on ne peut l’observer qu’en l’utilisant )
(trop tard !).

 La maintenance du logiciel est difficile, coûteuse et souvent


à l’origine de nouvelles erreurs.

 Il est rare qu’on puisse réutiliser un logiciel existant ou un


de ses composants pour confectionner

01/07/10 4
Définition:

 Une discipline qui désigne l'ensemble des méthodes, des


techniques et des outils concourant à la production d'un logiciel

le génie logiciel est l'art de produire de bons logiciels

01/07/10 5
Par quel bout???
 Le logiciel
 L utilisateur , développeur
 L’industrie
 Une science

01/07/10 6
Sur le plan théorique : Les Méthodes

 Analyse
 Conception
 Codage
 Test
 Maintenance

01/07/10 7
Sur le plan théorique : Procédures

 Gestion de projet
 Assurance qualité du logiciel
 Gestion de la configuration du logiciel
 Mesures (métriques)
 Suivi
 Insertion de technologies innovatrices

01/07/10 8
Sur le plan théorique : Des outils (un atelier)

 CASE (Computer Aided Software Engineering) est un


logiciel aidant à la réalisation de logiciels

 éditeurs de texte ( emacs, ...), de diagrammes (TRAMIS


VIEW, X-fig, ...), outils de gestion de configuration (make),
SGBD, compilateurs, debuggers, outils pour la mise en
forme (pretty-printers), la génération de tests, la génération
d'interfaces homme-machine

01/07/10 9
Récap :
Des moyens + des procédures

Atelier

Produire un logiciel

01/07/10 10
Exemple d’approche

 L’approche formelle

01/07/10 11
Méthodes formelles

 « appliquer la logique et la base des


mathématiques à la programmation ».

 Basée sur l’évaluation de formules dès


la spécification.

01/07/10 12
Pourquoi?
 Quand on doit garantir ce que le
programme va et ne va pas faire.
 Guichet automatique bancaire
 système d’assistance médicale
 Quand on ne peut pas se permettre de
construire un prototype pour le tester!

01/07/10 13
Comment?

 Modèle mathématique du programme.


 Abstraction => on cache les détails.

01/07/10 14
Quand?
 Modélisation : spécification plus précise
qu’un bout de code.
 Conception : permet de prouver que la
conception correspond bien au modèle.
 Vérification : permet de prouver que le
système va fonctionner dans tous les
cas(contrairement aux tests, on l’on n’est
jamais sûr d’avoir tout essayé).
01/07/10 15
Opérationnalisation :
 Gérer le cycle de vie du logiciel

 Modélisation UML

 Réutilisation de solutions d'implémentation


Les Design Pattern

 Réutilisation de modèles
Conception Orienté modèle
MDA – Model Driven Architecture

01/07/10 16
Compétences du génie logiciel

 l'analyse des problèmes en vue de la programmation d'une


solution logicielle économique
 l'établissement des objectifs quantitatifs sur le plan de la sécurité,
de l'utilisation, de l'impact sur la productivité, de la maintenance,
de la fiabilité ainsi que de l'adaptation et de la viabilité d'un projet
logiciel d'un point de vue économique
 la mise en œuvre de solutions par des logiciels bien structurés
 la vérification des logiciels dans le respect des objectifs initiaux
 la gestion et la coordination efficace des projets logiciels et de
l'équipe de développement
 l'évaluation du processus de développement et de son niveau de
maturité

01/07/10 17
Thank You

01/07/10 18
Solutions:
 Comment on quantifie la productivité
d’un logiciel?

01/07/10 19