Ingénierie logicielle
Présentation de la filière :
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.
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.
Cette filière s’intéresse aux compétences requises par la conception de systèmes informatiques qui s’intègrent dans des procédés et systèmes de natures diverses. Parmi ces derniers, nous pouvons mentionner l’utilisation de calculateurs au sein de procédés industriels et la présence d’ordinateurs dans les véhicules intelligents. Dans les deux cas mentionnés, l’ordinateur effectue des tâches de contrôle et de commande automatique ainsi que de supervision et de diagnostic, exigeant un haut degré de fiabilité et une forte tolérance aux pannes. De plus, la conception de telles applications nécessite la prise en compte du temps : la réponse de l’ordinateur doit être correcte du point de vue fonctionnel, mais doit aussi se produire “au bon moment”. D’où l’importance des connaissances appartenant au domaine de l’informatique Temps-Réel. Sont également importantes les connaissances relatives à la commande de procédés ainsi qu’aux interfaces matérielles entre l’ordinateur embarqué et son environnement physique.
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.
Les compétences de la spécialité Ingénierie logicielle
- 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 et
- 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.
Les compétences de la Recherche scientifique :
- Être capable de faire un état de l’art des travaux de recherche liés à une thématique et
- Se doter de l’esprit critique et de l’analyse de la littérature
- Bien mener à terme un projet de recherche appliquée.
- Travailler en groupe
Résultats d’apprentissage :
Les résultats d’apprentissage sont de trois types ; Connaissances, compétences et soft skills comme résumé dans le tableau suivant :
Connaissances Techniques : | Compétences Techniques : | Soft Skills (Compétences Comportementales) : |
|
|
|