Département de génie informatique et génie logiciel

L'ingénieur logiciel

Rôle de l'ingénieur logiciel

Le génie logiciel applique les principes et techniques d'ingénierie à la conception de systèmes logiciels, intégrés et à grande échelle. L'ingénieur logiciel doit  maîtriser la théorie et les méthodes de l'informatique. Si les ingénieurs logiciels possèdent un vaste bagage en matériel informatique, ils se spécialisent dans la conception, la maintenance et le développement des systèmes et des produits logiciels. Ils sont généralement responsables de l'élaboration et de la gestion des projets à grande échelle où la sécurité du public, ainsi que la maintenance et l'évolution des systèmes de logiciel, sont d'une importance primordiale. En mars 2001, l’Ordre des ingénieurs du Québec a reconnu officiellement cette spécialisation qu’est le génie logiciel.

En plus des tâches administratives inhérentes au suivi de tout projet d’ingénierie dans les domaines qui incombent à son champ d’exercice, l’ingénieur logiciel doit être en mesure d’effectuer les tâches professionnelles spécifiques suivantes :

  • Analyser et pouvoir spécifier les besoins et les exigences du développement d’un produit logiciel ou d’un système logiciel;
  • Concevoir des logiciels tout en assurant d’abord l’intérêt du public, puis celui de ses clients, à partir de spécifications conformes aux besoins;
  • Développer des produits logiciels ou des systèmes basés sur des logiciels en suivant les normes professionnelles adéquates;
  • S’assurer par des tests adéquats que les produits logiciels sont conformes aux spécifications énoncées;
  • Si nécessaire, voir à l’entretien et à la certification logicielle.

L’encadrement de ces activités doit se faire dans un contexte de planification des coûts et des ressources.

Voici les compétences requises par l'ingénieur logiciel:

  • Compréhension des fondements et principes fondamentaux de l’informatique.
    Avant tout, il faut former un ingénieur qui pourra performer dans l’industrie au cours des trente prochaines années. En s’appuyant sur des aspects (fondements) théoriques solides, ces connaissances permettront à l’ingénieur logiciel de s’adapter aux changements rapides de la technologie. Avec le temps, l’ingénieur logiciel doit devenir autodidacte;
  • Capacité à se bâtir une discipline personnelle pour agir avec maturité et expérience.
    C’est aussi la capacité que possède un individu à exercer une «gestion de soi» efficace. L'ingénieur logiciel doit exercer la profession d’ingénieur avec professionnalisme;
  • Maîtrise d’un ensemble de connaissances (polyvalence).
    L’ingénieur logiciel doit posséder des connaissances scientifiques, techniques, économiques, sociales et humaines. La connaissance des autres disciplines du génie est un atout important, car il doit résoudre des problèmes complexes appartenant à des domaines d’applications divers et spécialisés;
  • Compréhension et maîtrise des modèles et techniques standardisés.
    L'ingénieur logiciel doit comprendre et appliquer des modèles et des techniques standardisés qui permettent l’analyse et l’identification des problèmes qui ont trait à la conception, au développement, à la vérification, à la validation et à la mise en service de produits logiciels;
  • Capacité à résoudre des problèmes technologiques souvent complexes.
    L’ingénieur logiciel doit se familiariser rapidement avec le domaine d’application et réaliser une évaluation critique nécessaire pour produire une solution conforme aux besoins du client. Ceci met en valeur le leadership, la pratique de négociations, l’esprit de synthèse en vue de clarifier les exigences;
  • Capacité à travailler en équipe, à planifier et à gérer des projets.
    Il doit à capable de travailler efficacement individuellement et en équipe en vue de développer des produits logiciels de qualité. Ceci implique une facilité de communication et une capacité à respecter des échéanciers. L’ingénieur logiciel doit pouvoir non seulement travailler en équipe, mais il doit avoir également suffisamment de leadership pour la motiver et la diriger;
  • Ouverture, créativité et sens critique.
    L'ingénieur logiciel doit être capable de trouver des compromis acceptables permettant de concevoir un logiciel réalisable, en tenant compte des ressources disponibles, qu’elles soient budgétaires, temporelles ou humaines.