Ingénierie logicielle

Un(e) ingénieur(e) logiciel, ça fait quoi? | Génie-inc

Technologie Du Génie Informatique E-conception Banque D'Images Et Photos Libres De Droits. Image 71230420.

Génie Informatique De Site Web Dans Le Rédacteur De Code Utilisant La Langue De PHP Image stock - Image du langage, page: 144271971

genie informatique - Horizon International Sarl

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) :
  • Génie Logiciel : Une compréhension approfondie des méthodes, des modèles et des processus de développement logiciel, y compris l’analyse des besoins, la conception, la programmation, les tests et la maintenance.
  • Architecture Logicielle : Une expertise dans la conception d’architectures logicielles, la gestion des dépendances et la prise en compte de la modularité et de la scalabilité.
  • Méthodes Agiles et DevOps : Une connaissance approfondie des méthodes agiles et de l’approche DevOps pour une livraison rapide et efficace de logiciels.
  • Qualité Logicielle : Une maîtrise des techniques d’assurance qualité et de test pour garantir la fiabilité, la sécurité et les performances des logiciels.
  • Sécurité Informatique : Une connaissance avancée des principes de sécurité liés au développement de logiciels et à la protection des données sensibles.

 

  1. Conception Logicielle : Capacité à concevoir des architectures logicielles efficaces en tenant compte des besoins des utilisateurs et des contraintes techniques.
  2. Développement Logiciel : Compétences en programmation avancée dans différents langages et environnements de développement.
  3. Tests et Validation : Capacité à élaborer des stratégies de test, à exécuter des tests et à valider les fonctionnalités logicielles.
  4. Intégration Continue et Déploiement : Compétences pour l’intégration continue, le déploiement automatisé et la gestion des versions logicielles.
  • Travail d’Équipe : Capacité à collaborer efficacement au sein d’équipes interdisciplinaires pour atteindre des objectifs communs.
  • Communication : Compétences en communication claire et concise pour expliquer des concepts techniques et collaborer avec des équipes non techniques.
  • Résolution de Problèmes : Capacité à analyser et à résoudre des problèmes complexes liés au développement et à la maintenance de logiciels.

 

Défiler vers le haut
Need Help? Chat with us