L’évolution des besoins et des moyens informatiques conduisent les industriels à utiliser des méthodes et des outils de développement de plus en plus élaborés. La maîtrise de tels méthodes et outils permet d’améliorer la productivité et la qualité des logiciels tout en assurant une adéquation de leurs fonctionnalités aux besoins des utilisateurs ainsi qu’une souplesse et une flexibilité de leur exploitation. Ces deux dernières qualités font référence à l’aspect interface homme/machine qui doit se faire naturelle, transparente et instinctive.
Objectifs
La filière Ingénierie des Logiciels intègre tous ces aspects en complétant la formation de base en génie informatique par des enseignements en génie logiciel, systèmes experts, systèmes multi-agents, bases de données et architectures client/serveur.
L’aspect interface homme/machine est intégré à cette formation par l’étude de l’ergonomie du logiciel, des environnements associés (XWindow, Motif, Windows,…) et des interfaces multimédia. Par ailleurs, les architectures client/serveur orientées Web (Internet, Intranet) et en particulier leur utilisation dans le développement des bases de données réparties, occupent une part importante dans les enseignements de la filière Ingénierie des Logiciels.
Compétences développées
- Génie logiciel : En amont de la conception et de la modélisation de l’application future, l’ingénieur de la spécialité Ingénierie logicielle doit avoir la compétence d’analyse des besoins utilisateur pour établir le cahier des charges et les spécifications techniques, avant d’implémenter les solutions proposées. Compétence dans la maîtrise des cycles de développement agiles des SI. Sans oublier les phases importantes : Conception, implémentation, tests, documentation ;
- Programmation : Le cœur du métier de l’ingénieur la spécialité Ingénierie logicielle est la programmation (production de lignes de code suivant des spécifications fonctionnelles et techniques). Une compétence essentielle dans la résolution des problèmes, l’algorithmique avancé, la complexité des algorithmes et notamment la maitrise des différents langages de programmation (C, C++, Java, C#, Python, etc.) ;
- Conception et base de données : Une compétence dans la conception et l’administration des bases de données. L’ingénieur conçoit, gère et administre les systèmes de gestion de bases de données ; il garantit la cohérence, la qualité, la sécurité et l’accessibilité permanente des informations ;
- Développement Web et Mobile : Une compétence qui peut s’atteler à deux grands types de réalisations : coder un site Web et concevoir une application mobile téléchargeable sur un smartphone. Elle implique une grande rigueur, une capacité d’écoute et de compréhension ainsi qu’une adaptation continuelle aux évolutions des technologies et des besoins des clients.
Déroulement des enseignements
Les thèmes abordés par cette filière peuvent donc se présenter en trois groupes.
- Premièrement, les langages, outils et méthodes pour la conception de systèmes Temps-Réel à haute tolérance de pannes ;
- Deuxièmement, le contrôle et la commande, les méthodes et les techniques pour la régulation, l’asservissement et la commande optimale de processus ;
- Enfin, les systèmes programmables industriels, les composants matériels et logiciels pour l’interfaçage de l’ordinateur avec des processus physiques.