Ecole Numérique Ardéchoise

Développer la partie dynamique des interfaces utilisateur web ou web mobile

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

À partir d’une interface utilisateur statique web ou web mobile et du dossier de conception, développer
coté client, avec un langage de programmation de scripts, les traitements permettant d’obtenir une
interface utilisateur web dynamique, y compris pour les équipements mobiles.
Améliorer l’expérience utilisateur, y compris pour les personnes en situation de handicap.
Respecter les recommandations de sécurité liées aux applications web et web mobile et la réglementation
en vigueur, y compris celle relative à l’accessibilité.
Documenter le code, y compris en anglais.
Vérifier la qualité du code, éventuellement à l’aide d’un utilitaire de contrôle de qualité de code.
Réaliser un jeu d’essai fonctionnel et les tests unitaires des composants.
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 ou de sécurité.

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

Cette compétence s’exerce seul ou en équipe, à l’aide de l’environnement de développement défini dans
le dossier de conception.

Critères de performance

L’interface utilisateur est conforme au dossier de conception
L’interface est dynamique et l’expérience utilisateur est améliorée, y compris pour les personnes en
situation de handicap.
Les recommandations de sécurité liées aux applications web et web mobile sont respectées
La règlementation en vigueur sont respectées, y compris celle relative à l’accessibilité
Le code est documenté, y compris en anglais (niveau B1 CECRL pour l’anglais)
La qualité du code est vérifiée
Le jeu d’essai fonctionnel est complet et les tests unitaires sont réalisés pour les composants concerné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

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

Coder dans un langage de programmation de script client, en adoptant un style défensif
Gérer les événements de l’interface utilisateur
Utiliser un service distant (Representational State Transfer Application Program Interface : API Rest)
Adapter l’interface à la taille, au type et à la disposition du support
Fluidifier l’interface en utilisant des mécanismes asynchrones de type asynchronous JavaScript and XML
(AJAX), task, thread …
Prendre en compte les contraintes des applications multilingues
Respecter les normes d’accessibilité requises pour le projet
Respecter la charte graphique du cahier des charges
Mettre en place en fonction du projet les mentions légales liées au Règlement Général sur la Protection
des Données (RGPD)
Valider systématiquement les entrées
Gérer dans leur intégralité les erreurs et les exceptions, pour éviter les vulnérabilités.
Utiliser les normes de codage du langage
Réaliser les tests unitaires, éventuellement avec des outils d’automatisation des tests unitaires
Vérifier la qualité du code, éventuellement à l’aide d’un utilitaire de contrôle de qualité de code.

Documenter le code, y compris en anglais (niveau B1 CECRL pour l’anglais)
Structurer sa démarche de résolution de problème en cas de dysfonctionnement de l’interface
Utiliser les outils d’analyses statiques (par exemple, ceux intégrés au compilateur) et dynamiques (par
exemple débuggeur) de code
Mettre en place un système de veille technologique permettant de suivre les évolutions technologies et les problématiques de sécurité en lien avec les langages de développement coté serveur
Adapter l’interface aux exigences du client, en respectant la législation en vigueur
Participer à une réunion de travail avec les utilisateurs
Connaissance des langages et frameworks de scripts client
Connaissance d’une méthode de conception
Connaissance du formalisme des diagrammes de modélisation
Connaissance des bonnes pratiques de la qualité logicielle
Connaissance des concepts de la programmation orientée objet
Connaissance de l’architecture du web et des standards de l’organisme de normalisation W3C
Connaissance des normes ECMAScript et du Document Object Model (DOM) du World Wide Web
Consortium (W3C)
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 (Cross-Site Scripting (XSS), Cross-
Site Request Forgery (CSRF)…) et de leurs parades
Connaissance d’un guide de tests reconnu, par exemple l’Open Web Application Security Project
(OWASP) pour le web
Connaissance de la règlementation relative à l’accessibilité du Référentiel Général d’Amélioration de
l’Accessibilité (RGAA)
Connaissance des réglementations en vigueur concernant la protection des données individuelles RGPD
Connaissance des sources d’information de référence concernant le développement en conformité avec le
RGPD, tels que les guides de la commission nationale de l’informatique et des libertés (CNIL)
Connaissance du site du Centre gouvernemental de veille, d’alerte et de réponse aux attaques
informatiques (CERT-FR)
Connaissance des règles de référencement pour les interfaces web ou web mobile
Connaissance des utilitaires de qualité de code
Connaissances des outils d’automatisation des tests unitaires
Connaissance des bonnes pratiques pour les interfaces utilisateur web et patrons de conception (UX-UI
design)
Connaissance des règles de base de la propriété intellectuelle et des différents types de licences
logicielles
Connaissance des formats de données (fichiers JavaScript Object Notation (JSON), XML, …)
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 liées aux interfaces
utilisateur