Ecole Numérique Ardéchoise

Développer des composants métier

Description de la compétence – processus de mise en œuvre

A partir du dossier de conception, développer la partie dynamique de l’application avec des composants
métier sécurisés, dans un style défensif, et éventuellement en asynchrone, en respectant les bonnes
pratiques de la programmation orientée objet et les règles de nommage décrites dans les normes de
qualité de l’entreprise.
Documenter le code y compris en langue anglaise.
Vérifier par des tests unitaires que les traitements répondent aux fonctionnalités décrites dans le dossier
de conception.
Réaliser les tests de sécurité.
Déterminer une démarche structurée de résolution de problème en cas de découverte d’un
dysfonctionnement lors de l’analyse des résultats des tests unitaires.
Réaliser une veille technologique sur les évolutions techniques des composants métier d’une application.

Contexte(s) professionnel(s) de mise en œuvre

Cette compétence s’exerce seul ou en équipe. Le développement de composants métier s’effectue à partir
d’un dossier de conception et à l’aide de l’environnement de développement défini.

Critères de performance

Les bonnes pratiques de la programmation orientée objet (POO) sont respectées
Les composants métier sont sécurisés
Les règles de nommage sont conformes aux normes de qualité de l’entreprise
Le code source est documenté
Les traitements répondent aux fonctionnalités décrites dans le dossier de conception
Les tests unitaires sont réalisés
Les tests de sécurité sont réalisés
La démarche structurée de résolution de problème est adaptée en cas de dysfonctionnement
Le système de veille permet de suivre les évolutions technologiques et les problématiques de sécurité en
lien avec les composants métier d’une application

Savoir-faire techniques, savoir-faire organisationnels, savoir-faire relationnels, savoirs

Coder dans un langage orienté objet avec un style défensif
Appeler des Web Services dans un composant serveur
Gérer la sécurité de l’application (authentification, permissions, validation des entrées…) dans la partie
serveur
Utiliser des composants d’accès aux données
Utiliser un service distant (Representational State Transfer Application Program Interface (API Rest)
Améliorer à fonctionnalités constantes un code existant (refactoring)
Structurer sa démarche de résolution de problème en cas de dysfonctionnement d’un composant
Utiliser les outils d’analyses statiques de code (par exemple, ceux intégrés au compilateur) et dynamiques
(par exemple débuggeur)
Prenne en place un système de veille technologique permettant de suivre les évolutions technologiques et les problématiques de sécurité en lien avec les composants métier d’une application
Réaliser, avec un outil de tests, un jeu de tests unitaires
Réaliser des tests de sécurité

Travailler en équipe
Écouter, reformuler et faire la synthèse des besoins des utilisateurs
Participer à une réunion de travail avec les utilisateurs
Connaissance des concepts et d’un langage de développement orienté objet
Connaissance des principes et des règles du développement sécurisé
Connaissance des architectures logicielles multicouches réparties sécurisées, y compris avec des microservices
Connaissance du vocabulaire technique associé aux bases de données
Connaissance des différents patrons de conception et d’architecture
Connaissance des modèles de conception relatifs aux accès aux données relationnelles ou non
relationnelles (patrons de conception (Design Pattern), object-relational mapping (ORM), …)
Connaissance du principe de connexion à une base de données à partir d’un logiciel d’interface
(Middleware)
Connaissance des formats de données (fichiers JSON, XML, …)
Connaissance des bases de la cryptographie et des mécanismes de sécurité
Connaissance d’un guide de tests reconnu, par exemple l’Open Web Application Security Project
(OWASP) pour le web
Connaissance du guide de recommandations de mise en oeuvre d’un site Web de l’agence nationale de la
sécurité des systèmes d’information (ANSSI)
Connaissance des principales failles de sécurité des applications web (XSS, CSRF) et de leurs parades
Connaissance des moyens de gestion des identités et des certificats numériques
Connaissance des développements pilotés par les tests (Test-Driven Development (TDD))
Connaissance du vocabulaire professionnel technique en français et en anglais
Connaissance des outils d’analyses de code statiques (par exemple, ceux intégrés au compilateur) et
dynamiques (par exemple débuggeur)
Connaissance des principales sources d’information sur les évolutions technologiques des composants
métier d’une application