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

Qu'est-ce que le logiciel ?

Le logiciel

Ensemble des programmes, procédés et règles, et éventuellement de la documentation, relatifs au fonctionnement d'un ensemble de traitement de l'information (selon le Larousse 96 et IEEE Std 729).
  • Le logiciel est différent des produits industriels classiques
    • Il est invisible/intangible.
    • Il ne vieillit pas.
    • Il ne s'use pas, il n'est pas détérioré par le test.
    • Il est fabriqué artisanalement.
    • Il est très (trop ?) facile à modifier.
    • Il coûte très (trop ?) cher.
  • « programming in the large »
    • Plusieurs gens.
    • Systèmes complexes.
  • Développement discipliné en équipe
    • Définition des rôles spécifiques : analyste, concepteur, développeur, testeur, etc.
    • Reconnaissance de qualifications.
    • Formation complémentaire.
  • Des processus « répétables »
    • Par exemple, définis à l'ISO 9000, Capability Maturity Model (CMM), "maison", etc.
  • Des cycles de vie
    • Choix de méthodes rigoureuses.
    • Choix de notations spécialisées selon la nature des problèmes.
    • Utilisation d'environnements riches et d'outils supports.

Pourquoi étudier le génie logiciel ?

  • Pourquoi le Génie Logiciel vous concerne ?
  • Reconnaissance de la crise logiciel (OTAN, '68)
    • Le logiciel est difficile à fabriquer !
      • Problèmes budgétaires.
      • Problèmes échéanciers.
      • Problèmes de qualité de produit.
  • Le génie logiciel essaie d'appliquer les principes de l'ingénierie au développement du logiciel.
    • On veut dépasser la simple fabrication artisanale de logiciels.
Génie logiciel : une définition
D'après la norme IEEE 610.12
(1) L'application d'une approche systématique, disciplinée et quantifiable au développement, à l'opération, et à la maintenance du logiciel. C'est-à- dire, l'application de l'ingénierie au logiciel.
(2) L'étude des approches telles que dans (1).
(1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.
(2) The study of approaches as in (1).
D'après « Classical and Object-Oriented Software Engineering with UML and Java » de Schach
Le génie logiciel est une discipline qui a pour but : "La fabrication du logiciel qui est sans faute, qui est livré en respectant le délai et le budget prévus à l'avance, et qui satisfait aux besoins du client."
" Software engineering is a discipline whose aim is the production of fault-freesoftware, delivered on time and within budget, that satisfies the user's needs."

Deux perspectives

  • Processus
    • Comment le logiciel est fabriqué.
  • Produit
    • Ce qui est fabriqué.