Cours Atelier Génie Logiciel AGL
1. Introduction
Alors que le matériel informatique a fait des progrès très rapides, le logiciel, l'autre
ingrédient de l'informatique, traverse toujours une crise qui dure depuis la fin des années
60 du siècle passé. Cette crise peut se percevoir à travers des symptômes tels que :
- le coût de développement d'un logiciel qui est généralement très élevé avec un délai de livraison
rarement respecté ;
- la qualité du produit livré ne satisfait pas souvent les besoins de l’utilisateur ;
- la maintenance du logiciel est difficile, coûteuse et souvent à l'origine de nouvelles erreurs ...etc.
La raison de fond de la crise du logiciel réside dans le fait qu'il est beaucoup plus difficile de créer des
logiciels que le suggère notre intuition. Comme les solutions informatiques sont essentiellement
constituées de composants immatériels on sous-estime facilement leur complexité. Déjà la taille des
programmes montre que cette complexité est souvent bien réelle: un million de lignes pour un logiciel
de commande et de navigation d'un avion moderne, le décuple pour une station orbitale.
Tous ces problèmes ont alors mené à l’émergence d’une discipline appelée « le génie logiciel ».
A partir des années 90 à nos jours, les ateliers de génie logiciel (AGL) sont apparus
comme un moyen plus efficace pour apporter une solution réelle à certains problèmes du
génie logiciel et contribuent nettement à l'amélioration de la productivité et de la qualité
du logiciel, notamment en faisant le suivi des différentes phases du processus logiciel et en
offrant un cadre cohérent et uniforme de production.
2. Qu’est ce que le génie logiciel
Selon wikipédia “Le génie logiciel, l'ingénierie logicielle ou l'ingénierie du logiciel (en anglais:
software engineering) est une science de génie industriel qui étudie les méthodes de travail et les
bonnes pratiques des ingénieurs qui développent des logiciel. Le génie logiciel s'intéresse en particulier
aux procédures systématiques qui permettent d'arriver à ce que des logiciels de grande taille
correspondent aux attentes du client, soient fiables, aient un coût d'entretien réduit et de bonnes
performances tout en respectant les délais et les coûts de construction.”
Autrement dit, le génie logiciel est ``l'art'' de produire de bons logiciels, au meilleur rapport
qualité/prix. Il utilise pour cela des principes d'ingéniérie et comprend des aspects à la fois techniques
et non techniques: le génie logiciel est basé sur des méthodologies et des outils qui permettent de
formaliser et même d'automatiser partiellement la production de logiciels, mais il est également basé
sur des concepts plus informels, et demande des capacités de communication, d'interprétation et
d'anticipation.
L'utilisation du génie logiciel dans la production d'un logiciel qui accompli les besoins attendu en
même temps qu'il satisfait les objectifs d'un processus d'ingénierie est implantée avec un processus par
étapes. Ces différentes étapes forment le cycle de vie d'un logiciel.
2.1 Cycle de vie d’un logiciel
Le « cycle de vie d'un logiciel » (en anglais software lifecycle), désigne toutes les étapes du
développement d'un logiciel, de sa conception à sa disparition. L'objectif d'un tel découpage est de
permettre de définir des jalons intermédiaires permettant la validation du développement logiciel,
c'est-à-dire lla conformité du logiciel avec les besoins exprimés, et la vérification du processus de
développement, c'est-à-dire l'adéquation des méthodes mises en œuvre.
Le cycle de vie du logiciel comprend généralement a minima les activités suivantes :