Académique Documents
Professionnel Documents
Culture Documents
Génie Logiciel
● Logiciel :
⁻ Objet manufacturé complexe avec ses propres techniques de
fabrication(programme informatiques, document associée, nécessaire pour
développer, exploiter et maintenir ses programmes)
⁻ Entités…
• manuel d’utilisateurs, spécifications,
• codes (source, binaires), librairies,
• dossiers de conceptions, jeux de tests
• … nécessaires au fonctionnement d’un processus de traitement
automatique de l’information
Généralités sur le GL
●G é n i e L o g i c i e l
– expression née à la conférence OTAN en 1968
● Méthodes, techniques e t outils …
… conception e t réalisation …
… logiciels de qualité industrielle
– Travail en équipe
– Taille conséquente des logiciels
– Haute qualité escomptée (correction, fiabilité, robustesse,
performance, qualité IHM, facilité de vérification et de
maintenance, documentation, etc.)
Généralités sur le GL
Définitions(4) : Génie Logiciel
● G é n i e Logiciel
– Discipline informatique dont l’objet est de
construire des logiciels de taille ou de
complexité considérables, amenés à évoluer
durant leur vie (plusieurs années)
●
G é n i e Logiciel
– « Établissement et utilisation de bons principes de génie
pour réaliser des logiciels économiques, fiables et
efficaces sur des machines réelles » (F. Bauer)
P ro g ra m m a t io n G L ( g ran d s projets)
(petits projets)
Utilisateur développeur Nombreux, < > des
développeurs
Conséq erreurs, Faibles, par l’usage Lourdes, soigneuse et
validation complète
Déploiement 1 machine En réseau, postes
hétérogènes
Interface, doc. Util Minimale Explicite, complète
Maintenance, doc tech Facile Difficile à organiser,
indisp.
Gestion des versions 1 seule en cours Multiplicité des config et
des postes de travail
Généralités sur le GL
Evolution de l’informatique (1) : Années 50
Les débuts:
• Prix du matériel élevé, peu d’utilisateurs
• Petits programmes (batch, peu distribués)
• Utilisateur = programmeur
• La programmation suffit pour le développement
des logiciels
Généralités sur le GL
Evolution de l’informatique (2) : Années 60 et 70
●
Réseaux et systèmes répartis → complexification
des logiciels
●
Omniprésence des systèmes informatiques
– Produits (appareils, outils de production, contrôle appareils … ) ;
Métiers (traitements de l’information, ordinateurs au travail … ) ;
Activités de la vie privée (courriers, comptes, jeux, …)
• D o m a i n e s : réalisation de logiciels
Complexes (équipe d’ingénieurs)
– …
Problématique du GL
●
Pas de garantie de logiciel sans erreurs : la plupart des
logiciels peuvent avoir des erreurs on apprend à vivre
avec …
●
La correction d’une erreur peut en introduire d’autres
●
Coût d’une erreur est d’autant plus élevé que celle-ci
est découverte tard
Généralités sur le GL
Objectifs du GL
● Bonne construction du bon logiciel
– Maîtrise des
●
Coûts
●
Délais
● Risques
●
Qualité
- Résultat : un logiciel respectant des critères (de qualité)
● généraux
● externes
● internes
● Étude des lois suivies par les logiciels
Généralités sur le GL
Bénéfices escomptés du GL
– Dépendances vis-à-vis
● L’environnement d’exécution
●
D’autres applications
Généralités sur le GL
Facteurs de choix des techniques de GL (2)
● Facteurs liés au processus de développement
– Partenariat
● Développement en interne
● Sous-traitance
●
Commande …
– Compétence et disponibilité des intervenants;
– Technologie
– Déploiement (unitaire, selon la cible, selon les
fonctions)
– Contraintes de budget et de délai
Généralités sur le GL
Facteurs de choix des techniques de GL (3)
● Facteurs liés à l’utilisation du logiciel
– Criticité ;
Durée de vie
● Brève (une utilisation, utilisation limitée dans le temps)
● Très longue
• Voie méthodologique
- Méthodes de travail strictes
- Largement éprouvées
- Non nécessairement (raisonnablement) rigoureuses
●
Rigueur (de la part des intervenants dans la
conception), utiliser les outils dédiés s’il y en a
●
Décomposition (séparation) des problèmes :
considérer séparément différents aspects d’un
problème afin d’en maîtriser la complexité
●
Modularité : décomposition du logiciel en
composants discrets (cohérents, faible couplage,
ne communiquant que le strict nécessaire)
Généralités sur le GL
●
Abstraction : utiliser des concepts généraux plutôt
que sur les cas particuliers (niveaux de détails).
Utilisation de types abstraits
● Anticipation des évolutions
●
Généricité : regroupement des fonctionnalités
semblables en une seule paramétrable
●
Construction incrémentale
QUESTIONS?