Ecole Numérique Ardéchoise

Développer une interface utilisateur de type desktop

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

À partir du dossier de conception technique contenant la maquette de l’interface utilisateur à développer et à l’aide d’un environnement de développement intégré, éventuellement de langue anglaise, et d’un langage orienté objet, coder, tester, documenter et installer les composants logiciels requis, formulaires et états, afin d’assurer la collecte et la restitution des informations numériques relatives aux besoins du métier de l’utilisateur.
Respecter les bonnes pratiques de la programmation orientée objet et les règles du développement sécurisé.
Rechercher, éventuellement en langue anglaise, des solutions pertinentes pour résoudre des problèmes techniques ou mettre en oeuvre de nouvelles fonctionnalités.
Pratiquer une veille technologique sur la sécurité informatique et les vulnérabilités connues.
Partager le résultat de sa recherche ou de sa veille avec ses pairs.

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

Cette compétence s’exerce seul ou en équipe et s’effectue à partir d’un environnement de développement intégré supportant un langage objet et mettant en œuvre un outil de design pour les formulaires, et pour les états, un générateur d’états.

Critères de performance

  • L’interface est conforme à la maquette de l’application.
  • Les bonnes pratiques de la programmation orientée objet sont respectées.
  • Les programmes sont écrits dans un style défensif qui minimise les vulnérabilités.
  • Un test unitaire est associé à chaque composant, avec une double approche fonctionnelle et sécurité.
  • Le jeu d’essai fonctionnel est complet.
  • Le code source est documenté ou auto-documenté
    Le script d’installation est prévu.
  • L’objet de la recherche est exprimé de manière précise en langue française ou anglaise.
  • La documentation technique de l’environnement de développement, en français ou en anglais, est comprise (sans contre-sens, …).
  • La démarche de recherche permet de résoudre un problème technique ou de mettre en œuvre une nouvelle fonctionnalité.
  • La veille sur les vulnérabilités connues permet d’identifier et corriger des failles potentielles.
  • Le partage du résultat de veille est effectué oralement ou par écrit avec ses pairs.

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

  • Qualifier techniquement, valider la sécurité et utiliser un composant logiciel.
  • Écrire un algorithme.
  • Coder dans un langage objet.
  • Sécuriser son code, en adoptant un style « défensif » (validation systématique des entrées…).
  • Utiliser les normes de codage du langage et auto-documenter le code au moyen du nommage.
  • Gérer de façon complète les erreurs et les exceptions, pour éviter les vulnérabilités.
  • Utiliser les outils d’analyse statique (par exemple, ceux intégrés au compilateur) et dynamique (par exemple débogueur) de code.
  • Corriger les erreurs et remédier aux vulnérabilités détectées.
  • Utiliser les bibliothèques de composants graphiques.
  • Mettre en œuvre un outil de génération d’état.
  • Réaliser un jeu de tests unitaires avec un outil de test (aspect fonctionnel et recherche de vulnérabilité).
  • Documenter le code.
  • Utiliser un environnement de développement intégré y compris en anglais.
  • Utiliser un outil collaboratif de partage de fichiers.
  • Planifier et suivre les tâches de développement.
  • Rechercher une réponse pertinente à une difficulté technique de développement ou à une vulnérabilité identifiée.
  • Rechercher des informations sur des sites Internet, des forums et des FAQ francophones ou anglophones.
  • Contribuer à la mise à jour des bases de connaissances francophones ou anglophones accessibles par Internet.
  • Connaissance du vocabulaire professionnel technique en français et en anglais.
  • Connaissance d’un environnement de développement intégré.
  • Connaissance des modèles de conception relatifs aux interfaces.
  • Connaissance des concepts de la programmation objet.
  • Connaissance des principes et des règles du développement sécurisé.
  • Connaissance des spécificités des langages utilisés par rapport à la sécurité.
  • Connaissance des attaques classiques (débordement de tampon…) et de leurs parades.
  • Connaissance d’un système de gestion de versions.
  • Connaissance des règles de base de la propriété intellectuelle et des différents types de licences logicielles.
  • Connaissance liée aux objets connectés (protocole de communication, …).