Si on considère un logiciel comme un édifice, il devient facile de comprendre qu’il est constitué de différents éléments qui interagissent les uns avec les autres. Dès les années 60, on invente ainsi la programmation structurée en concevant un logiciel comme une suite d’étapes représentées par des diagrammes, des organigrammes. Depuis, l’architecture et l’ingénierie du logiciel ont considérablement évolué au rythme des avancées et des besoins technologiques. L’enjeu de l’architecte du logiciel se situe dès lors autant dans la conception que dans la coordination d’une équipe de concepteurs. Objectif : être responsable des normes d’architecture de l’ensemble des projets, de la gestion, de la réutilisation des composants logiciels d’une entreprise concernant non plus une seule application, mais plus souvent tout un système d’information constitué de briques logicielles qui communiquent entre elles.

Architecture et ingénierie du logiciel : quatre grands défis

L’architecture et ingénierie du logiciel se trouve face à quatre grands défis à résoudre :Architecture du logiciel à l'ESIEA

  • Une vision globale du système logiciel à concevoir et donc une vision globale des besoins de l’entreprise. La capacité à anticiper et à résoudre des problèmes issus de l’interaction entre différentes parties d’un système est nécessaire pour que les flux d’information d’une entreprise ne connaissent pas de rupture ni d’erreur qui mettraient en péril la gestion ou la production de cette entreprise. L’architecte doit avoir une vision synthétique du système dont il a la charge, qui est souvent une traduction technique de besoins stratégiques d’une entreprise.
  • Les problématiques d’interopérabilité. Aujourd’hui, dans les entreprises, on a tendance à utiliser une application par tâche à effectuer. Or, il faut que chaque brique logicielle puisse communiquer avec les autres dans des contraintes importantes de productivité, d’intégration et de performance. Ces problématiques souvent épineuses déterminent des choix et des approches qui doivent pour autant rester lisibles, aisées à maintenir et à faire évoluer.
  • La performance. La conception, l’ingénierie du logiciel impliquent de résoudre des problèmes quotidiens, et de mettre en oeuvre parfois en temps réel des solutions recommandées qui n’obèrent pas l’activité de l’entreprise. Il existe de nombreux facteurs influant sur la performance de l’entreprise, voire le confort de travail des développeurs. L’architecte logiciel doit intégrer tous ces facteurs dans son approche, le plus en amont possible de sa réflexion.
  • La fiabilité et la sécurité : une solution informatique doit répondre le mieux possible à des besoins pragmatiques en traitement ou en production de données. Elle doit le faire sur la durée, d’une manière éprouvée. L’architecte informatique doit donc proposer des approches fiables et pérennes, quitte à produire lui-même certaines parties de codes en évaluant précisément chaque avantage et chaque inconvénient des partis-pris retenus.

 

L’architecture et l’ingénierie logicielle : le nerf de la guerre des entreprises en 2016

La professionnalisation et la valorisation des architectes logiciels ou des systèmes d’information sont un enjeu majeur des entreprises en 2016. Leurs activités sont effectivement aujourd’hui sous-tendues par la fiabilité et la lisibilité de leurs systèmes de gestion, de production ou de communication. Les systèmes d’information sont de plus en plus complexes, intégrant un grand nombre de briques en interopérabilité. Appliquer un programme informatique pour le rendre exécutable sur une machine n’est plus suffisant. L’architecte intègre les problématiques propres à l’entreprise afin de répondre à des besoins stratégiques fondamentaux, qui influent directement sur la performance de l’entreprise. Son métier est de comprendre ces enjeux, mais aussi de voir loin pour permettre toute évolution technologique sans douleur. Il doit veiller aux dernières approches en la matière, qui progressent très vite depuis ces dernières années, et s’approprier ces technologies pour les mettre en application efficacement dans un horizon de production réel et souvent vital pour l’entreprise.

 

Programme : 6 modules ESIEA pour devenir un expert reconnu en architecture et ingénierie logicielle

Les objectifs de la majeure AIL proposée par L’ESIEA sont de faire de leurs élèves des ingénieurs recherchés dans la mise en oeuvre de solutions directement applicables dans le monde de l’entreprise.

Avoir une approche centrée sur l’utilisateur. Orienté vers la conception, la réalisation et l’évaluation des Interfaces Graphiques Homme-Machine (IGHM), ce module fait appel aux sciences cognitives, au génie logiciel et aux techniques de programmation.

Maîtriser les différents problèmes de sécurité lors de l’utilisation de primitives de programmation, et comprendre les failles pouvant être exploitées lors d’une attaque.

Comprendre les principes de l’agilité, ses principes et ses gains attendus en intégrant le mieux possible la collaboration avec le client et savoir s’adapter à un contexte spécifique de production.

Apprendre à créer un site ou une application web en utilisant des frameworks modernes (comme Spring Boot) tout en respectant la conception MVC et la création d’API REST.

Maîtriser Androïd Studio et comprendre l’écosystème mobile. Adopter les bonnes pratiques de tests et de développement en créant une application Androïd avancée.

Maîtriser la problématique des échanges de données entre applications et l’importance particulière des données de référence dans le SI d’une entreprise. Étude détaillée de l’approche SOA et place des données de référence (master data) dans un SI.

 

Architecture et ingénierie du logiciel : les compétences visées par l’ESIEA

Les métiers de l’architecture et de l’ingénierie du logiciel étant transversaux, ils demandent un certain nombre de compétences techniques et humaines qui sont au coeur des préoccupations de l’ESIEA à travers ses modules de formation :

  • – Maîtriser l’ensemble des méthodes et outils informatiques permettant la conception, le développement et la mise en oeuvre de logiciels dans leur globalité
  • – La construction et l’analyse d’un système d’information évolutif, performant et fiable répondant aux besoins stratégiques d’une entreprise
  • – Rester en pointe des dernières technologies, y compris concernant les applications web ou mobiles
  • – Être capable de mettre le client tout comme l’utilisateur au centre de toute conception logicielle
  • – Être capable de tester une application, d’en mesurer les avantages et les inconvénients, et de la sécuriser
  • – Posséder de solides notions en ergonomie et en problématiques d’interface homme-machine
  • – Posséder un excellent sens du relationnel et de la pédagogie pour coordonner des équipes, et être capable d’être persuasif pour remporter l’adhésion sur ses choix
  • – Avoir une vision synthétique autant des métiers de l’entreprise que du système d’information, afin d’anticiper l’évolution et les changements en temps réel

 

Les métiers de l’architecture et de l’ingénierie logicielle : de nombreux débouchés dans le monde de l’entreprise

Les métiers visés sont ceux d’architecte des systèmes d’information, d’architecte logiciel, de chef de projet logiciel ou encore d’enseignant-chercheur. Ces métiers sont indispensables au bon fonctionnement de l’entreprise, sachant que les infrastructures informatiques sont renouvelées en moyenne tous les trois à cinq ans. Tous les secteurs recrutent, mais actuellement, notamment, plus précisément ceux liés à l’industrie pétrolière, l’agriculture, la défense qui sont en profonde mutation avec l’intégration des données GPS.
Les experts architecture logicielle formés à l’ESIEA sont certains de trouver un débouché dans tous les secteurs d’activité, que ce soit en France, en Europe ou dans le monde.

 

Expérience Architecte en SI Achitecte logiciel
Débutant 0-1 an 35-38 k€ 29-37 k€
Intermédiaire 2-3 ans 38-43 k€ 37-41 k€
Confirmé 4 ans et + 43-50 k€ 41-50 k€
Salaire en milliers d’euros bruts par an pour la France. Source : APEC, 2013