M426 V1

Développer un logiciel avec des méthodes agiles

Type
EP obligatoire
Lieu
École professionnelle
Année
2ème année d'apprentissage
PDF
426_1_D%C3%A9velopper%20un%20logiciel%20avec%20des%20m%C3%A9thodes%20agiles.pdf

Compétences PEC liées

Compétence visée par le module

Appliquer des méthodes agiles pour le développement de logiciels dans les cycles de révision.

Situation / objet

Version logicielle fonctionnelle, testée et documentée.

Objectifs opérationnels et connaissances

426.1 Mettre en œuvre une fonctionnalité donnée, dans le cadre d’un projet logiciel, avec une méthode agile. g1 g5 g6 h2
ConnaissanceTexte
426.1.1Connaître une méthode agile pour le développement logiciel.
426.1.2Connaître le contenu et la structure d’un User-Story.
426.1.3Connaître des valeurs et des principes de méthodes agiles.
426.1.4Connaître les limites des méthodes linéaires et agiles.
426.2 Réaliser et tester par étapes les fonctionnalités à l’aide de pratiques agiles dans les cycles de révision prescrits, et présenter en résumé la version logicielle. g1 g5 g6 h2
ConnaissanceTexte
426.2.1Connaître le déroulement et les éléments d’un cycle des versions.
426.2.2Connaître le déroulement et le contenu d’une présentation des versions.
426.2.3Connaître l’importance des versions fonctionnelles de logiciels.
426.2.4Connaître les pratiques (Best Practices) du développement logiciel agile comme par ex. Design, Metapher, Refactoring, Testdriven Development, Continuous Integration, Pair Profgramming, Coding Standards.
426.2.5Connaître les outils appropriés au développement agile pour les Units-Tests, System Integration, System Build, test d’acceptance, etc.
426.3 Mettre en œuvre, de manière ciblée, des échantillons de développement existants et/ou des composants logiciels testés pour résoudre le problème. g1 g5 g6 h2
ConnaissanceTexte
426.3.1Connaître l’importance et la structure des échantillons significatifs de développement.
426.3.2Connaître l’utilité de la réutilisation des composants logiciels existants.
426.3.3Connaître un procédé pour l’évaluation de composants logiciels ainsi que pour résoudre des problèmes donnés.
426.4 Refléter les résultats et le déroulement du travail lors d’un cycle de révision, en déduire les conclusions pour la suite du déroulement. g1 g5 g6 h2
ConnaissanceTexte
426.4.1Connaître un procédé pour refléter les résultats d’un cycle des versions.
426.4.2Connaître des possibilités pour refléter son propre déroulement du travail dans un cycle des versions.
426.4.3Connaître des possibilités pour optimiser la suite du procédé sur la base de la réflexion (SCRUM, ceremony, product backlog issues).
426.5 Mettre à disposition les documents du projet et les codes sources du programme dans un système de gestion des versions. g1 g5 g6 h2
ConnaissanceTexte
426.5.1Connaître les avantages et utilités d’un système de gestion des versions utilisé communément.
426.5.2Connaître les fonctionnalités et l’utilisation d’un système de gestion des versions, ainsi que les possibilités d’y intégrer divers objets.
426.5.3Connaître les différences entre un système de gestion des versions avec accès exclusif et accès parallèle.
426.6 Formuler de manière compréhensive le code source programme selon les conventions. g1 g5 g6 h2
ConnaissanceTexte
426.6.1Connaître les concepts, les règles et procédures d’un Clean-Code.
426.6.2Connaître l’importance du Refactoring pour l’amélioration intuitive de la lisibilité d’un code source programme.

Matrice de compétences

BandeCompétenceDébutantIntermédiaireAvancéObjectifs
A1 Connaître les méthodes agiles Je peux expliquer les modèles de processus linéaires tels que le modèle en cascade, le modèle en V et RUP ainsi que les modèles cycliques tels que le modèle en spirale et les différents processus prototypes. Je peux expliquer le « Manifeste Agile » et ses principes et souligner ce qui est bon et où des problèmes peuvent survenir. Je peux reconnaître les modèles de processus linéaires et cycliques et montrer comment le meilleur de tout peut être combiné
426.1
A2 Connaître les méthodes agiles Je peux expliquer le modèle SCRUM avec le processus cyclique, les rôles, les cérémonies (réunions/sessions) et la philosophie de SCRUM Je peux montrer comment un projet peut être formulé en « vision », en « épopées » et en « user stories ». Je peux structurer un projet avec mon équipe dans une démarche SCRUM et planifier les bonnes étapes
426.1
A3 Connaître les méthodes agiles Je peux expliquer les trois aspects de la façon de formuler une exigence dans une phrase pour une user story Je peux décrire une user story conformément au DoR, la classer avec l'équipe et évaluer ses efforts avec des story points (Planning Poker) et déterminer les critères d'acceptation pour celle-ci (DoD) Je peux déterminer la « bonne » intersection entre la user story et les tâches en collaboration avec l'équipe
426.1
B1 Mettre en œuvre une itération agile Je peux interpréter les modules logiciels existants et expliquer où le logiciel doit être étendu pour mettre en œuvre une user story Je peux implémenter le logiciel pour implémenter une user story Je peux adapter un logiciel existant pour implémenter une user story (refactoring)
426.2
B2 Mettre en œuvre une itération agile Je peux expliquer l'importance des logiciels exécutables dans le contexte du développement logiciel agile Je peux présenter la user story que j'ai implémentée à l'aide du logiciel exécutable et montrer que les exigences du DoD ont été respectées. Je peux préparer et réaliser une démo de sprint (incluant un burndown chart).
426.2
C1 Réutiliser les composants Je peux expliquer le principe des composants logiciels (réutilisabilité, répartition des tâches, interfaces) à l'aide d'un exemple Je peux évaluer et sélectionner les composants logiciels d'une application, en tenant compte de la réutilisabilité Je peux identifier les composants logiciels dans une conception, évaluer leur réutilisabilité et les intégrer de manière justifiée
426.3
D1 Réfléchissez et améliorez votre approche Je peux expliquer comment je me prépare pour le Daily Scrum Je peux apporter mes expériences et mes découvertes à la rétrospective et en déduire des mesures d'amélioration appropriées Je peux préparer et diriger une rétrospective, hiérarchiser les connaissances acquises et les traduire en mesures d'amélioration concrètes.
426.4
E1 Appliquer la gestion des versions Je peux cloner un référentiel, valider et transmettre des modifications, ainsi que récupérer et extraire des modifications du serveur et expliquer comment appliquer des branches (par exemple, flux Git). Je peux gérer les demandes de fusion et appliquer des branches spécifiquement (par exemple, flux Git) Je peux résoudre les conflits de fusion, remettre en question de manière critique l'arborescence Git et mettre en œuvre des améliorations (par exemple, rebase, cerise-pick)
426.5
F1 Gérer le code propre et les refactorisations Je peux expliquer ce qui est important pour que le code soit lisible et quelles règles doivent être suivies Je peux rendre le code plus lisible et le refactoriser en appliquant les recommandations Clean Code Pour une meilleure compréhension, je peux décrire les domaines fonctionnels de telle manière que la complexité (cyclomatique) soit démêlée
426.6

Modules liés par compétences PEC

ModuleTitrePEC communes
M324 Prendre en charge des processus DevOps avec des outils logiciels
M321 Programmer des systèmes distribués
g1 g5 g6
M183 Implémenter la sécurité d'une application
g5 g6
M223 Réaliser des applications multi-utilisateurs orientées objets
g5 g6
M295 Réaliser le back-end pour des applications
g5 g6
M322 Concevoir et implémenter des interfaces utilisateur
g1 g5
M346 Concevoir et réaliser des solutions cloud
g1 h2
M106 Interroger, traiter et assurer la maintenance des bases de données
g5
M162 Analyser et modéliser des données
g1
M164 Créer des bases de données et y insérer des données
g1
M165 Utiliser des bases de données NoSQL
g5
M254 Décrire des processus métier dans son propre environnement professionnel
g1