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 logiciels.
Partie de | |
---|---|
Pratiqué par | Ingénieur ou ingénieure logiciel, Ingénieur logiciel de recherche (d) |
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.
Selon l'arrêté ministériel du relatif à l'enrichissement du vocabulaire de l'informatique [Journal officiel du ], le génie logiciel est « l'ensemble des activités de conception et de mise en œuvre des produits et des procédures tendant à rationaliser la production du logiciel et son suivi ».
Est aussi appelée génie logiciel l'ingénierie appliquée au logiciel informatique, c'est-à-dire l'activité par laquelle le code source d'un logiciel est spécifié puis produit et déployé. Le génie logiciel touche au cycle de vie des logiciels. Toutes les phases de la création d'un logiciel informatique y sont enseignées : l'analyse du besoin, l'élaboration des spécifications, la conceptualisation du mécanisme interne au logiciel ainsi que les techniques de programmation, le développement, la phase de test et finalement la maintenance.
Le guide SWEBOK du IEEE définit les champs de connaissance du génie logiciel, comme le Project Management Body of Knowledge (PMBOK) du Project Management Institute (PMI) le fait, pour la gestion de projet.
Le terme anglais « Software » est utilisé la première fois en 1958 par le statisticien John Tukey. Les premières bases du génie logiciel, en anglais « software engineering », sont attribuées à l'informaticienne et mathématicienne Margaret Hamilton, la conceptrice du système embarqué du programme Apollo,:
« Quand j'ai proposé la première fois le terme, personne n'en avait entendu parler auparavant, du moins dans notre monde [NdT: à la NASA]. Pendant assez longtemps ils aimaient me charrier sur mes idées radicales. Ce fut une journée mémorable lorsque l'un des gourous les plus respectés dans le domaine du hardware a expliqué lors d'une réunion qu'il était d'accord avec moi pour dire que le processus de construction d'un logiciel devrait également être considéré comme une discipline d'ingénierie, au même titre que le matériel électronique. Pas à cause de son acceptation du nouveau terme en tant que tel, mais parce que nous avions gagné son approbation et celle des autres personnes présentes dans la salle comme œuvrant dans un domaine d'ingénierie à part entière. »
Le terme « software engineering » a été mentionné publiquement pour la première fois en 1968 pour une conférence organisée par l'OTAN sur le sujet. Il a été repris l'année suivante à une conférence concernant la crise du logiciel. La crise du logiciel est une baisse significative de la qualité des logiciels dont la venue coïncide avec le début de l'utilisation des circuits intégrés dans les ordinateurs : l'augmentation de la puissance de calcul des ordinateurs a permis de réaliser des logiciels beaucoup plus complexes qu'auparavant. En 1972, l'IEEE lance un premier périodique, « Transactions on Software Engineering », consacrant ainsi cette discipline émergente de l'ingénierie.
Les premières tentatives de création de logiciels de grande ampleur ont vite montré les limites d'un travail informel d'ingénieurs logiciel : les produits réalisés ne sont pas terminés dans les temps, coûtent plus cher que prévu, ne sont pas fiables, sont peu performants et coûtent cher en entretien. La baisse du coût du matériel informatique s'accompagnait d'une augmentation du coût du logiciel. Des études se sont penchées sur la recherche de méthodes de travail adaptées à la complexité inhérente aux logiciels contemporains et ont donné naissance au génie logiciel.
Aujourd'hui (en 2004), l'utilisation des méthodes de génie logiciel reste quelque chose de relativement peu répandu dans l'industrie du logiciel. Le programmeur travaille souvent comme un artisan, guidé par son talent, son expérience et ses connaissances théoriques et la crise du logiciel s'apparente à une maladie chronique de l'industrie du logiciel.
Jusqu'en 1985, les ordinateurs appartenaient à des sociétés ou des institutions. Dans les années 1950 à 1960 les logiciels étaient développés par des membres des institutions pour leurs propres besoins, la distribution de logiciel était très limitée, et ceux-ci servaient essentiellement à effectuer des traitements par lots (anglais batch).
En 1970 sont apparus de nouvelles notions telles que le multi-utilisateur, les interfaces graphiques, la programmation concurrente, les bases de données et le temps-réel. Les logiciels sont devenus beaucoup plus sophistiqués qu'auparavant, du fait qu'ils mettent en œuvre et exploitent ces nouveautés. C'est à la même époque que sont apparus les premiers éditeurs de logiciels et que le logiciel est devenu un bien du marché.
Depuis 1973, et a fortiori depuis l'arrivée des ordinateurs personnels en 1980, le logiciel devient un bien de grande distribution, orienté vers le consommateur, par l'arrivée des progiciels — des logiciels prêts-à-porter. Le prix du matériel informatique a également beaucoup diminué, ce qui augmente la proportion du coût du logiciel sur le coût total de l'ordinateur.
Entre 1985 et le début des années 2000, avec l'avènement des systèmes distribués, de l'Internet, de l'architecture client-serveur et du cloud computing, le logiciel passe du statut de produit stand-alone indépendant à celui d'élément d'un ensemble, dans lequel plusieurs ordinateurs et plusieurs logiciels travaillent en collectivité. L'arrivée de la programmation orientée objet et la conception orientée objet transforment le travail des ingénieurs et les logiciels incluent alors des formes d'intelligence artificielle telle que la reconnaissance de forme, la déduction automatique, la traduction automatique et l'exploration de données.
Le génie logiciel s'exerce au travers des diverses professions suivantes :
Les professionnels du génie logiciel sont amenés à travailler dans tous les domaines où le développement de logiciel est nécessaire, par exemple dans les secteurs suivants:
Le génie logiciel repose sur un ensemble de normes de niveau international permettant de définir le champ de connaissance et d'application.
Également, ISO 15504 fourni un ensemble structuré de bonnes pratiques destinées à appréhender, mesurer et améliorer la qualité des produits d'une entreprise d'ingénierie informatique.
Le domaine de connaissances du génie logiciel couvre en particulier le cycle de vie d'un logiciel, les activités clés du cycle de vie — depuis la demande d'un maître d'ouvrage jusqu'à la mise hors service définitive du produit — et l'ordre dans lequel ces activités sont effectuées. Il couvre également les différentes personnes impliquées: technico commercial, les ingénieurs, les acheteurs, les utilisateurs, et le directeur des systèmes d'information.
Selon le SWEBOK les activités clés du cycle de vie d'un logiciel sont : l'analyse fonctionnelle, l'architecture, la programmation, les tests, la validation, la maintenance et la gestion de projet.
Le domaine de connaissance des méthodes concerne l'ordre dans lequel sont effectués les différents travaux de développement d'un logiciel - en cascade, en V, itératif, en sprints ou parallèlement:
Les études en génie logiciel ont également relevé diverses croyances erronées de la communauté des ingénieurs qui ont un impact direct sur leurs méthodes de travail. exemples :
Le génie logiciel empirique est la branche du génie logiciel qui s'intéresse à la validation ou à la réfutation de ces croyances.
This article uses material from the Wikipedia Français article Génie logiciel, which is released under the Creative Commons Attribution-ShareAlike 3.0 license ("CC BY-SA 3.0"); additional terms may apply (view authors). Le contenu est disponible sous licence CC BY-SA 4.0 sauf mention contraire. Images, videos and audio are available under their respective licenses.
®Wikipedia is a registered trademark of the Wiki Foundation, Inc. Wiki Français (DUHOCTRUNGQUOC.VN) is an independent company and has no affiliation with Wiki Foundation.