Recherchez sur tout Techno-Science.net
       
Techno-Science.net : Suivez l'actualité des sciences et des technologies, découvrez, commentez
Catégories
Techniques
Sciences
Encore plus...
Techno-Science.net
Photo Mystérieuse

Que représente
cette image ?
 A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | +
Génie logiciel

Définitions

Si on se réfère à l'arrêté ministériel du 30 décembre 1983 relatif à l'enrichissement du vocabulaire de l'informatique [Journal officiel du 19 février 1984], on appelle Génie Logiciel : "l'ensemble (En théorie des ensembles, un ensemble désigne intuitivement une collection d’objets (les éléments de l'ensemble), « une multitude qui peut être comprise comme un tout »,...) des activités de conception et de mise en œuvre des produits et des procédures tendant à rationaliser la production du logiciel (En informatique, un logiciel est un ensemble d'informations relatives à des traitements effectués automatiquement par un appareil informatique. Y sont inclus les instructions de...) et son suivi". Une définition (Une définition est un discours qui dit ce qu'est une chose ou ce que signifie un nom. D'où la division entre les définitions réelles et les définitions nominales.) plus pratique pourrait être la suivante : Procédures, méthodes, langages, ateliers, imposés ou préconisés par les normes adaptées à l'environnement (L'environnement est tout ce qui nous entoure. C'est l'ensemble des éléments naturels et artificiels au sein duquel se déroule la vie humaine. Avec les enjeux écologiques actuels, le terme environnement...) d'utilisation afin de favoriser la production et la maintenance de composants logiciels de qualité. [Patrick Jaulent, Génie Logiciel, les méthodes, Armand Colin, Paris (Paris est une ville française, capitale de la France et le chef-lieu de la région d’Île-de-France. Cette ville est construite sur une boucle de la Seine, au centre du bassin parisien, entre les confluents de la Marne et de la Seine...), 1992]

L'appellation genie logiciel concerne l'ingénierie (L'ingénierie désigne l'ensemble des fonctions allant de la conception et des études à la responsabilité de la construction et au contrôle des équipements d'une installation technique ou industrielle.) appliquée au logiciel informatique (L´informatique - contraction d´information et automatique - est le domaine d'activité scientifique, technique et industriel en rapport avec le traitement automatique de l'information par des machines telles que les ordinateurs, les...). Cette branche de l'informatique s'intéresse plus particulièrement à la manière dont le code source (Le code source (ou les sources voire le source) est un ensemble d'instructions écrites dans un langage de programmation informatique de haut niveau, compréhensible par un être humain...) d'un logiciel est spécifié puis produit. Le génie logiciel touche au cycle de vie (La vie est le nom donné :) des logiciels. Toutes les phases de la création d'un logiciel informatique y sont enseignées : l'analyse du besoin (Les besoins se situent au niveau de l'interaction entre l'individu et l'environnement. Il est souvent fait un classement des besoins humains en trois grandes catégories : les besoins...), l'élaboration des spécifications, la conceptualisation du mécanisme interne (En France, ce nom désigne un médecin, un pharmacien ou un chirurgien-dentiste, à la fois en activité et en formation à l'hôpital ou en cabinet pendant une durée variable selon...) au logiciel ainsi que des techniques de programmation (La programmation dans le domaine informatique est l'ensemble des activités qui permettent l'écriture des programmes informatiques. C'est une étape importante de la conception de logiciel (voire de matériel, cf. VHDL).), le développement, la phase (Le mot phase peut avoir plusieurs significations, il employé dans plusieurs domaines et principalement en physique :) de test et finalement à la maintenance. Les projets relatifs à l'ingénierie logicielle sont de l'ordre du "Programming in the large", c’est-à-dire que les projets sont généralement de grande envergure (L'envergure est la distance entre les extrémités des ailes. Le terme est valable pour définir un oiseau, un chiroptère, un avion (ou planeur).) et dépassent souvent les 10000 lignes de code. Ces projets nécessitent une équipe de développement bien structurée. La gestion de projet (La gestion de projet ou conduite de projet est une démarche visant à structurer, assurer et optimiser le bon déroulement d'un projet suffisamment...) vient en complément naturel du génie logiciel.

La norme (Une norme, du latin norma (« équerre, règle ») désigne un état habituellement répandu ou moyen considéré le plus souvent comme une règle à suivre. Ce terme générique...) SWEBOK du IEEE définie les champs de connaissance du génie logiciel, comme le PMBOK du PMI (Project Management Institute) le fait, pour la gestion de projet (Un projet est un engagement irréversible de résultat incertain, non reproductible a priori à l’identique, nécessitant le...).

Les compétences et habiletés visées par le génie logiciel

  • la conception et le développement de nouveaux logiciels selon les principes propres à l'ingénierie
  • l'analyse des problèmes en vue (La vue est le sens qui permet d'observer et d'analyser l'environnement par la réception et l'interprétation des rayonnements lumineux.) 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é (Un système est fiable lorsque la probabilité de remplir sa mission sur une durée donnée correspond à celle spécifiée dans le cahier des charges.) ainsi que de l'adaptation et de la viabilité d'un projet logiciel d'un point (Graphie) 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é

Les thématiques et domaines couverts

Les thématiques du génie logiciel recouvrent notamment :

  • les outils et méthodes de spécification de fonctionnalités d'un logiciel
    • les formalismes de modélisation (UML par exemple)
    • les méthodes formelles (Méthode B par exemple)
    • ...
  • les outils et les méthodes de conception de logiciel (La conception de logiciel met en œuvre tout un ensemble d'activités qui à partir d'une demande d'informatisation d'un processus (demande qui peut aller de la simple question orale jusqu'au cahier des charges...)
    • Outil (Un outil est un objet finalisé utilisé par un être vivant dans le but d'augmenter son efficacité naturelle dans l'action. Cette augmentation se traduit par...) de conception, atelier logiciel,
    • Ingéniérie des modèles Kermeta par exemple,
    • Environnement de développement
    • ...
  • la génération automatique (L'automatique fait partie des sciences de l'ingénieur. Cette discipline traite de la modélisation, de l'analyse, de la commande et, de la régulation des systèmes...) de code d'après une spécification formelle.
  • l'utilisation de patrons de conception.
  • l'automatisation de l'optimisation du code.

Quelques disciplines couvertes par le génie logiciel

  • Gestion de la qualité (La gestion de la qualité est l'ensemble des activités qui concourent à l'obtention de la qualité dans un cadre de production de biens ou de services.) du logiciel
  • Architecture (L’architecture peut se définir comme l’art de bâtir des édifices.) de haut niveau
  • Architecture détaillée
  • Analyse/Spécification des besoins
  • Documentation logicielle
  • Établissement de programme de mesure du logiciel
  • Implantation (Le mot implantation peut avoir plusieurs significations :) de norme logicielle (ISO, IEEE)
  • Connaissance dans l'application du CMM/CMMI
  • Les cycles de vie du logiciel
  • Optimisation des interfaces usager
  • Gestion de projet
  • Les métriques

La base de connaissance du génie logiciel

La base de connaissance du génie logiciel est le SWEBOK (Software Engineering Body of Knowledge) châpeauté par l'IEEE. Le SWEBOK n'est pas un guide. Il est un corpus de connaissance.

Outils de production utilisé par le génie logiciel

D'autres domaines sont connexes au génie logiciel dans la mesure où ils partagent des outils communs : description formelle du code, grammaires des langages manipulés. Ces domaines sont par exemple :

  • la compilation ;
  • l'interprétation de code ;
  • la traduction de code d'un langage de programmation (Un langage de programmation est un langage informatique, permettant à un être humain d'écrire un code source qui sera analysé par une machine, généralement un ordinateur. Le code...) vers un autre.
  • un éditeur dédié au langage de programmation
  • les bibliothèques de composants
  • les Outils de Planification (La planification est la programmation d'actions et d'opérations à mener)
  • un outil de Gestion de configuration (La gestion de configuration consiste à gérer la description technique d'un système[1] (et de ses divers composants), ainsi qu'à gérer l'ensemble des modifications apportées au cours de l'évolution du système. La gestion de configuration est utilisée...) pour contrôler les évolutions du code produit
  • des moyens de tester pour vérifier la conformité du code produit
  • des outils de génération de métriques pour caractériser la conformité du code produit

Outils de gestion en relation avec le génie logiciel

Bien que l'on passe du génie de la production à celui de la décision, ces domaines ont un impact tellement important sur l'activité (Le terme d'activité peut désigner une profession.) de génie logiciel qu'ils doivent être mentionnés :

  • La gestion de la qualité permet de contrôler l'organisation (Une organisation est) de la production du code.
  • La qualité repose sur des méthodes.
  • Le management est un modèle et un moyen humain qui a pour but d'améliorer la production.

Les professions du génie logiciel

Le titulaire d'un diplôme (Le diplôme (grec ancien :δίπλωµα, diploma signifiant « plié en deux ») est un acte écrit émanant généralement d'un organisme officiel,...) dans ce domaine peut exercer dans les diverses professions suivantes :

  • Ingénieur (« Le métier de base de l'ingénieur consiste à résoudre des problèmes de nature technologique, concrets et souvent complexes, liés à la conception, à la...) en logiciel
  • Ingénieur au niveau conception de logiciel
  • Ingénieur en informatique

Quelques exemples d'employeurs potentiels

Le titulaire d'un diplome en génie logiciel sera amené a travailler un peu partout où le développement de logiciel (Le développement de logiciel comprend l'ensemble des étapes et processus qui permettent de passer de l'expression d'un besoin informatique à un logiciel fonctionnel et fiable.) sera nécessaire, voici quelques exemples d'employeurs pouvant avoir besoin de personnels spécialisé dans le génie logiciel :

  • Les firmes d'ingénieurs
  • Les firmes de consultant en informatique
  • Les institutions gouvernementales

Bibliographie

  • Strohmeier A., Buchs D., Génie logiciel: principes, méthodes et techniques, Lausanne, PRESSES POLYTECHNIQUES ET UNIVERSITAIRES ROMANDES, 1996.
  • SWEBOK: Software Engeneering Body Of Knowledge, norme IEEE, 2004. Voir SWEBOK.


Audit de sécurité informatique
Test : Test | Génie logiciel | Prise d'empreinte de la pile TCP/IP
Outils : Fuzzing | Rétro-ingénierie | Boîte blanche | Boîte noire | Cryptanalyse
Attaque : Dépassement de tampon (En informatique, un dépassement ou débordement de tampon (en anglais, buffer overflow) est un bogue pouvant être exploité pour violer la politique de sécurité d’un système. Cette technique est couramment utilisée par les...) | Attaque de l'homme (Un homme est un individu de sexe masculin adulte de l'espèce appelée Homme moderne (Homo sapiens) ou plus simplement « Homme »....) du milieu
Protection : Sécurité par l'obscurité
Audit : ISO/CEI 27001 | ISO/CEI 17799
Source: Wikipédia publiée sous licence CC-BY-SA 3.0.

Vous pouvez soumettre une modification à cette définition sur cette page. La liste des auteurs de cet article est disponible ici.