Concevoir une application
Description de la compétence – processus de mise en œuvre
À partir du cahier des charges de la maîtrise d’ouvrage, concevoir fonctionnellement et techniquement une application informatique sécurisée en suivant une démarche de conception. Constituer le dossier de conception, éventuellement en anglais, modélisant, avec des diagrammes, les cas d’utilisation, les classes d’analyse et de conception, décrivant également l’architecture logicielle multicouche répartie en vue du développement de l’application.
Respecter les bonnes pratiques et les règles du développement sécurisé et compléter ce dossier par la description des exigences de sécurité de l’application.
Pratiquer une veille technologique, y compris en anglais, pour résoudre un problème technique ou mettre en œuvre une nouvelle fonctionnalité ainsi que pour s’informer sur la sécurité informatique et les vulnérabilités connues.
Partager le résultat de sa veille avec ses pairs.
Contexte(s) professionnel(s) de mise en œuvre
La conception de l’application pour la partie fonctionnelle se réalise en relation directe avec le client pour les petits projets, ou bien avec une maîtrise d’ouvrage pour les moyens et gros projets. Pour les projets complexes, la conception de la partie technique se fait en relation avec un architecte logiciel. Pour une application sensible, la conception se fait en relation avec un expert sécurité. La modélisation peut être réalisée à l’aide d’un outil de conception et dans le cadre d’une démarche pilotée par les modèles.
Critères de performance
- Les cas d’utilisation couvrent l’ensemble des exigences utilisateur exprimées dans le cahier des charges.
- Les besoins de sécurité de l’application sont identifiés.
- Les besoins d’écoconception de l’application sont identifiés.
- Les classes d’analyse et de conception sont définies.
- L’architecture technique est conforme aux bonnes pratiques d’une architecture répartie sécurisée.
- Le dossier de conception est structuré et documenté en conformité avec la démarche choisie.
- Le rôle de chaque couche dans la stratégie de sécurité est bien défini.
- L’objet de la recherche est exprimé de manière précise en langue française ou anglaise.
- La démarche de recherche permet de résoudre un problème technique ou de mettre en œuvre une nouvelle fonctionnalité.
- La documentation technique liée aux technologies associées, en français ou en anglais, est comprise (sans contre-sens, …).
- 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
- Collecter les besoins des utilisateurs.
- Prendre en compte une analyse de risque.
- Analyser un cahier des charges en identifiant les limites du système, les acteurs et les messages.
- Identifier les besoins de sécurité de l’application.
- Traduire les besoins en diagrammes UML.
- Concevoir la solution à partir des diagrammes UML.
- Adapter l’architecture technique aux besoins des utilisateurs et aux besoins de sécurité.
- Utiliser les patrons de conception (design patterns) et les patrons de sécurité (security pattern).
- Modéliser l’architecture du système, en respectant les principes et patrons de sécurité.
- Améliorer à fonctionnalités constantes la conception d’un code existant (refactoring).
- Pratiquer la conception responsable, en minimisant l’impact de l’application sur la consommation énergétique.
- Rédiger les comptes rendus de réunion, éventuellement en anglais.
- Rédiger un dossier de conception, éventuellement en anglais.
- Planifier les tâches de conception d’une application.
- Suivre l’avancement des tâches de conception.
- Établir des rapports d’activité et de reste à faire.
- Écouter, reformuler et synthétiser les demandes utilisateurs, éventuellement en anglais.
- Participer à une réunion de travail avec les utilisateurs, éventuellement en anglais.
- Connaissance des architectures logicielles multicouches réparties y compris avec des microservices.
- Connaissance du formalisme des diagrammes du langage de modélisation unifié UML.
- Connaissance du développement objet.
- Connaissance d’une démarche de développement logiciel pilotée par les modèles.
- Connaissance des outils principaux de conception et de réalisation du marché tels que logiciels et cadres d’applications.
- Connaissance des principes de l’analyse de risque.
- Connaissance des principales vulnérabilités et attaques contre les architectures multicouches réparties.
- Connaissance des principes et des patrons de sécurité applicables à l’architecture multicouche répartie.
- Connaissance des principes de la conception responsable de services numériques.