g: Développement d’applications
g1: Analyser et documenter les besoins en matière d’applications et d’interfaces
Les informaticiennes et informaticiens analysent les besoins identifiés lors de l’entretien avec le client (a1) et les documentent (ingénierie des exigences):
- Dans une première étape, ils consignent les besoins du client sous forme d’exigences techniques et spécifiques à son activité professionnelle. Afin de mieux cerner la perspective des utilisateurs, ils décrivent avec leur équipe et les parties prenantes concernées les groupes cibles et leurs besoins (p. ex. au moyen de personas). Cette phase peut être effectuée dans le cadre d’un workshop. Sur cette base, ils vérifient les exigences techniques devant être remplies par une application et les interfaces (p. ex. interface utilisateur [UI], REST, sensorique, périphérie) quant à leur cohérence, exhaustivité et mesurabilité (critères d’acceptation). Ils consignent les informations relatives aux conditions cadres, au contexte et à la délimitation ainsi que la définition des termes. Si nécessaire, ils complètent les exigences.
- Dans une deuxième étape, ils dressent le catalogue des besoins, c.-à-d. qu’ils trient et regroupent ceux-ci selon des critères spécifiques à l’activité ou au projet (p. ex. besoins fonctionnels, non fonctionnels, qualité). Ils enregistrent les résultats dans le système (p. ex. backlog, issues, use cases, user stories) ou les consignent sur papier et leur attribuent une dénomination explicite (identification).
- Dans une troisième étape, ils évaluent en équipe l’investissement en temps nécessaire, la complexité, le périmètre et la priorisation des lots de travail. Selon la situation, ils coordonnent la procédure avec le responsable de projet ou le propriétaire du produit. En concertation avec les parties prenantes, ils vérifient la validité des exigences définitives et s’assurent qu’il n’y ait pas de malentendus. En cas de changements au cours du développement applicatif, les exigences sont mises à jour (procédure itérative).
Objectifs évaluateurs entreprise
- g1.1: Ils consignent les besoins du client sous forme d’exigences techniques et spécifiques à son activité professionnelle. (C3)
- g1.2: Ils développent en équipe des modèles utilisateur sur la base de personas. (C5)
- g1.3: Ils vérifient les besoins techniques et spécifiques à l’activité professionnelle quant à leur cohérence, exhaustivité et mesurabilité. (C4)
- g1.4: Ils dressent le catalogue des besoins selon des critères spécifiques à l’activité ou au projet et les consignent. (C4)
- g1.5: Ils attribuent une dénomination explicite aux besoins. (C3)
- g1.6: Ils évaluent en équipe l’investissement en temps, la complexité, le périmètre et la priorisation des lots de travail. (C4)
- g1.7: Ils vérifient la validité des besoins avec les parties prenantes concernées. (C3)
- g1.8: Ils documentent en continu les besoins techniques et spécifiques à l’activité professionnelle. (C3)
Modules école professionnelle
- 322 : Concevoir et implémenter des interfaces utilisateur
- 254 : Décrire des processus métier dans son propre environnement professionnel
- 426 : Développer un logiciel avec des méthodes agiles
- 162 : Analyser et modéliser des données
- 164 : Créer des bases de données et y insérer des données
- 321 : Programmer des systèmes distribués
- 346 : Concevoir et réaliser des solutions cloud
- 324 : Prendre en charge des processus DevOps avec des outils logiciels
Modules CIE
- aucun
Modules CIE OPT
- aucun
g2: Vérifier la faisabilité technique des prototypes d’interfaces utilisateur et les développer
Les informaticiennes et informaticiens vérifient la faisabilité technique des prototypes d’interfaces utilisateur et les développent en termes de convivialité:
- Ils reçoivent du mandant ou d’autres partenaires des directives et consignes conceptuelles applicables aux interfaces utilisateur. Sur cette base, ils développent des maquettes ou des modèles d’interfaces fonctionnels (p. ex. mock-up, grid, wireframe) en utilisant des outils graphiques. Selon la situation, ils apportent des adaptations aux ébauches déjà élaborées.
- Ils identifient ensuite les éléments problématiques de l’interface utilisateur, p. ex. les informations interdépendantes ou les composants non standards. Ils vérifient la faisabilité de ces éléments à l’aide de prototypes élaborés sur papier ou au moyen d’outils. Ce faisant, ils tiennent compte de différents aspects tels que l’étendue des informations, les dépendances entre les champs, les éléments d’interaction, la navigation, la réactivité, les règles d’or du design ou l’accessibilité. Ils discutent des éléments techniques non réalisables avec les parties prenantes. Ils leur proposent des solutions et adaptent le prototype en conséquence.
- Sur la base du ou des prototypes, ils développent finalement les interfaces utilisateur fonctionnelles en utilisant des méthodes et des outils actuels.
Modules école professionnelle
- 322 : Concevoir et implémenter des interfaces utilisateur
- 319 : Concevoir et implémenter des applications
- 320 : Programmer orienté objet
- 293 : Créer et publier un site Web
Module CIE
Module CIE OPT
- 223 : Réaliser des applications multiutilisateurs orientées objets (module optionnel)
- 335 : Réaliser une application pour mobile (module optionnel)
- 217 : Concevoir, planifier et mettre en place un service pour l’IoE (module optionnel)
g3: Evaluer et documenter la sécurité des applications et des interfaces
Les informaticiennes et informaticiens évaluent la sécurité des applications et des interfaces et documentent leurs résultats:
- Ils clarifient tout d’abord les questions de sécurité relatives à l’environnement système, p. ex. quelles sont les interfaces existantes, qui sont les utilisateurs de l’application, quels autres systèmes accèdent à l’application, quel est le besoin de protection des données respectivement de l’application (disponibilité, confidentialité, fiabilité, intégrité), quelles directives internes ou prescriptions légales doivent être respectées.
- Sur la base de leur examen, ils déduisent les risques auxquels peuvent être exposées l’application et ses interfaces. A cet égard, ils adoptent une démarche prospective et mettent en évidence les méthodes de menaces et les manipulations possibles provenant de l’extérieur. Ils discutent en équipe des résultats de leur analyse et en tirent les mesures appropriées qu’ils consignent (p. ex. encryptage des données, sécurité d’accès, gestion des identités, escaping). Enfin, ils adaptent le catalogue des exigences en fonction de leurs constats et en discutent avec la partie prenante.
Objectifs évaluateurs entreprise
- g3.1: Ils clarifient les questions de sécurité relatives à l’environnement système de façon prospective et en déduisent les risques potentiels. (C4)
- g3.2: Ils se procurent en équipe ou au sein de la communauté les informations pertinentes relatives à la sécurité (p. ex. OWASP). (C3)
- g3.3: Ils consignent de façon compréhensible les risques de sécurité identifiés et les mesures en résultant. (C3)
- g3.4: Ils expliquent au sein de leur équipe les mesures prises pour sécuriser les applications et les interfaces. (C3)
- g3.5: Ils adaptent le catalogue des exigences en fonction de leurs constats et en discutent avec la partie prenante. (C3)
Modules école professionnelle
- 183 : Implémenter la sécurité d’une application
- 114 : Mettre en œuvre des systèmes de codification, de compression et d’encryptage
- 450 : Tester des applications
- 346 : Concevoir et réaliser des solutions cloud
Module CIE
Modules CIE OPT
- 216 : Intégrer les terminaux IoE dans une plateforme existante (module optionnel)
- 217 : Concevoir, planifier et mettre en place un service pour l’IoE (module optionnel)
- 107 : Mettre en œuvre des solutions ICT avec la technologie blockchain (module optionnel)
g4: Elaborer des variantes de mise en œuvre d’une application et développer la solution sur le plan conceptuel
Les informaticiennes et informaticiens élaborent des variantes de mise en œuvre d’une application et développent un concept de réalisation pour la variante choisie. Dans ce contexte, ils travaillent en étroite collaboration avec leur équipe et les parties prenantes:
- A l’aide d’ébauches et de descriptions, ils présentent tout d’abord les variantes fondamentales en regard de leur implémentation (p. ex. technologies, composants, frameworks, librairies, systèmes). Conjointement avec les parties prenantes respectives, ils établissent une analyse d’utilité compréhensible des différentes variantes avec des critères décisionnels pertinents et évaluables. Sur la base de l’analyse d’utilité, ils conseillent la partie prenante dans sa prise de décision en vue de lui faire adopter la solution optimale. Ce faisant, ils veillent à ce que la solution soit défendable sur les plans éthique et légal. Enfin, ils vérifient la variante choisie, éventuellement sous la forme d’une analyse de faisabilité (→ a3).
- Sur cette base, ils élaborent progressivement un concept de réalisation technique et spécialisé (p. ex. uses cases, composants, couches, déroulement, interfaces, classes, modèle de données). A cet effet, ils analysent les données, procédures, systèmes et interfaces pertinents et documentent leurs résultats. Ils utilisent pour ce faire des outils appropriés, p. ex. le langage de modélisation unifié (UML) ou d’autres diagrammes. Selon la situation, ils peuvent aussi concevoir des adaptations pour des applications existantes.
Objectifs évaluateurs entreprise
- g4.1: Ils présentent, à l’aide d’ébauches et de descriptions, les variantes fondamentales en regard de leur implémentation (C5)
- g4.2: En collaboration avec les parties prenantes, ils établissent une analyse d’utilité compréhensible au moyen de critères décisionnels pertinents et évaluables. (C4)
- g4.3: Ils conseillent la partie prenante dans sa prise de décision quant à la solution optimale, en tenant également compte des aspects éthiques et légaux. (C5)
- g4.4: Ils élaborent un concept de réalisation technique et spécialisé au moyen des outils appropriés. (C5)
- g4.5: Ils effectuent une analyse de faisabilité pour la variante choisie. (C4)
Modules école professionnelle
- 319 : Concevoir et implémenter des applications
- 320 : Programmer orienté objet
- 323 : Programmer de manière fonctionnelle
- 164 : Créer des bases de données et y insérer des données
- 321 : Programmer des systèmes distribués
- 346 : Concevoir et réaliser des solutions cloud
- 306 : Réaliser de petits projets dans son propre environnement professionnel
Module CIE
Modules CIE OPT
- 223 : Réaliser des applications multiutilisateurs orientées objets (module optionnel)
- 335 : Réaliser une application pour mobile (module optionnel)
- 259 : Développer des solutions ICT avec le Machine Learning (module optionnel)
- 216 : Intégrer les terminaux IoE dans une plateforme existante (module optionnel)
- 217 : Concevoir, planifier et mettre en place un service pour l’IoE (module optionnel)
- 210 : Utiliser un cloud public pour des applications (module optionnel)
- 107 : Mettre en œuvre des solutions ICT avec la technologie blockchain (module optionnel)
g5: Implémenter les applications et les interfaces selon le concept en respectant les exigences de sécurité
Sur la base des exigences définies et des ébauches/modèles développés, les informaticiennes et informaticiens implémentent les applications et les interfaces. Il peut s’agir de nouvelles applications ou d’une extension apportée à une application existante:
- Ils mettent tout d’abord en place un environnement de développement et d’exécution approprié. Le concept de réalisation préétabli et les directives de l’entreprise servent de base à cette étape.
- Ils passent ensuite à la programmation du back-end et du front-end selon les exigences définies. A cet effet, ils utilisent les langages de programmation donnés et des outils de développement. Ils testent régulièrement l’implémentation en vue de détecter des erreurs et les corrigent (débogage). Ils veillent à respecter systématiquement les dispositions réglementaires et les directives techniques (p. ex. frameworks, directives de design). Ils se conforment également aux exigences de sécurité.
- Lors de l’implémentation, ils veillent à respecter les conventions de code afin de garantir clarté et traçabilité (p. ex. clean code, coding conventions).
- Ils déposent en continu les éléments programmés dans un système de gestion des logiciels (p. ex. GIT). Ils sont en mesure d’accéder en tout temps aux étapes intermédiaires enregistrées. Ce faisant, ils respectent les directives internes de l’entreprise (p. ex. divisions). Ils apportent ensuite d’éventuelles adaptations au concept de réalisation afin de le maintenir à jour.
- Ils développent rapidement les technologies informatiques. Ils s’informent en continu sur les nouveautés et leurs conséquences (p. ex. quels sont les nouveaux frameworks?) et appliquent les derniers enseignements et avancées technologiques à leur travail quotidien.
Objectifs évaluateurs entreprise
- g5.1: Ils mettent en place un environnement de développement et d’exécution approprié sur la base du concept de réalisation préétabli et des directives de l’entreprise. (C3)
- g5.2: Ils programment de façon efficiente et structurée un back-end au moyen des langages de programmation prédéfinis et conformément aux consignes applicables en l’espèce. (C3)
- g5.3: Ils programment de façon efficiente et structurée un front-end au moyen des langages de programmation prédéfinis et conformément aux consignes applicables en l’espèce. (C3)
- g5.4: Ils vérifient les résultats intermédiaires au regard des exigences (fonctionnel, non fonctionnel, sécurité) et procèdent en continu à des corrections. (C4)
- g5.5: Ils vérifient si les conventions de code sont bien respectées. (C3)
- g5.6: Ils déposent les modifications et extensions de l’implémentation de façon claire et fiable dans un système de gestion des logiciels. (C3)
- g5.7: Ils adaptent le concept de réalisation de façon claire et intelligible. (C3)
Modules école professionnelle
- 319 : Concevoir et implémenter des applications
- 320 : Programmer orienté objet
- 323 : Programmer de manière fonctionnelle
- 293 : Créer et publier un site Web
- 165 : Utiliser des bases de données NoSQL 321: Programmer des systèmes distribués
- 322 : Concevoir et implémenter des interfaces utilisateur
- 183 : Implémenter la sécurité d’une application
- 426 : Développer un logiciel avec des méthodes agiles
- 324 : Prendre en charge des processus DevOps avec des outils logiciels
Modules CIE
- 106 : Interroger, traiter et assurer la maintenance des bases de données
- 294 : Réaliser le front-end d’une application Web interactive
- 295 : Réaliser le back-end pour des applications
Modules CIE OPT
- 223 : Réaliser des applications multiutilisateurs orientées objets (module optionnel)
- 335 : Réaliser une application pour mobile (module optionnel)
- 216 : Intégrer les terminaux IoE dans une plateforme existante (module optionnel)
- 217 : Concevoir, planifier et mettre en place un service pour l’IoE (module optionnel)
g6: Vérifier la qualité et la sécurité des applications et des interfaces
Les informaticiennes et informaticiens vérifient la qualité et la sécurité des applications et des interfaces sur la base de concepts de tests. Ils garantissent ainsi que les applications sont implémentées conformément aux exigences et les erreurs supprimées, et que l’application sera validée pour la mise en production:
- Ils établissent tout d’abord un concept de tests où ils décrivent l’environnement de tests de l’application avec les indications pertinentes (p. ex. système, acteur, données, utilisateurs, autorisations). Ils définissent ensuite les types de tests qui seront utilisés (p. ex. tests unitaires [unit tests], tests d’acceptation des utilisateurs, tests d’intégration, tests de charge/performance ou tests de sécurité.) Sur cette base, ils déterminent les moyens de test appropriés. Ils décrivent ensuite les cas de test (test cases) en relation avec les cas d’utilisation (use cases) et les exigences. Ce faisant, ils adoptent différents angles d’approche (p. ex. valeurs limites, situations d’erreurs). Ils s’assurent que les cas de test définis sont reproductibles (de manière automatisée ou manuelle). Ils définissent les résultats escomptés et les documentent de façon compréhensible.
- Si nécessaire, ils mettent en place un environnement de tests au cours d’une autre étape. Le concept de tests préalablement établi leur sert de base dans ce contexte. Ils implémentent, dans la mesure du possible, des cas de tests automatisables.
- Ils exécutent ensuite tous les cas de test, évaluent le déroulement du test et consignent les résultats dans un rapport. Ils adoptent une démarche rigoureuse et établissent un rapport clair et compréhensible. En cas d’échec des cas de test, ils apportent des mesures correctives au test ou à l’implémentation. Les corrections apportées, ils effectuent de nouveaux tests.
- Ils vérifient l’implémentation en fonction du concept de sécurité défini et, en cas d’écarts avec celui-ci, ils prennent des mesures appropriées en vue d’en respecter les différents points.
Objectifs évaluateurs entreprise
- g6.1: Ils décrivent l’environnement de test d’une application avec toutes les indications pertinentes. (C3)
- g6.2: Ils définissent les moyens de test sur la base des types de test sélectionnés. (C4)
- g6.3: Ils décrivent de façon compréhensible des cas de test reproductibles en relation avec les cas d’utilisation et les exigences, et définissent les résultats escomptés. (C4)
- g6.4: Ils mettent en place un environnement de test approprié selon le concept de tests. (C3)
- g6.5: Ils implémentent les cas de test automatisables en fonction des moyens de test définis. (C4)
- g6.6: Ils exécutent les cas de test intégralement et rigoureusement. (C3)
- g6.7: Ils évaluent le déroulement du test et consignent les résultats de façon compréhensible dans un rapport. (C4)
- g6.8: Ils définissent des mesures correctives et les exécutent. (C4)
- g6.9: Ils vérifient l’implémentation en fonction du concept de sécurité défini et prennent les mesures correctives appropriées. (C4)
Modules école professionnelle
- 183 : Implémenter la sécurité d’une application
- 426 : Développer un logiciel avec des méthodes agiles
- 450 : Tester des applications
- 324 : Prendre en charge des processus DevOps avec des outils logiciels
- 321 : Programmer des systèmes distribués