Prenez contact avec nous

Plan du cours

Fondements de la pensée Agile

  • Le manifeste Agile et sa pertinence au-delà du logiciel.
  • Comparaison de l'agile avec les modèles traditionnels en cascade et pilotés par la planification.
  • Rôles, événements et artefacts Scrum mappés aux cycles de projets académiques.
  • Kanban et gestion basée sur le flux pour les équipes de recherche et d'enseignement.
  • Choix d'hybrides agiles adaptés aux environnements d'ingénierie et de design.

Planification Agile et collaboration

  • Rédaction de user stories et définition des critères d'acceptation pour les problèmes d'ingénierie.
  • Techniques de priorisation du backlog : MoSCoW, valeur vs. effort, ordonnancement piloté par les risques.
  • Planification de sprint et estimation avec des équipes non logicielles.
  • Rétrospectives et amélioration continue dans un contexte académique.
  • Outils et tableaux de collaboration pour les participants multidisciplinaires.

Introduction à la culture DevOps

  • Définition de DevOps : briser les silos entre le développement et les opérations.
  • Le modèle CALMS : Culture, Automatisation, Lean, Mesure, Partage.
  • DevOps dans les laboratoires de recherche, les équipes de génie civil et les studios d'architecture.
  • Construction d'une culture sans blame et de boucles de feedback dans les institutions éducatives.
  • Considérations éthiques, de sécurité et de conformité dans l'adoption de DevOps dans le milieu académique.

Gestion de version et gestion collaborative du code

  • Fondamentaux de Git pour un travail d'ingénierie et de design reproductible.
  • Stratégies de branches : branche principale, branches de fonctionnalités et GitFlow simplifié.
  • Pull requests, revue par les pairs et propriété du code dans les équipes d'enseignement.
  • Gestion des actifs non liés au code : fichiers CAD, modèles BIM, ensembles de données de simulation.
  • Organisation des dépôts pour les supports de cours et les projets étudiants.

Intégration continue et automatisation de la construction

  • Concepts d'CI et leur application aux outils d'ingénierie compilés et scriptés.
  • Mise en place de constructions automatisées pour les logiciels, les simulations et la documentation.
  • Étapes du pipeline : compilation, empaquetage, linting et vérifications préliminaires.
  • Aperçu des plateformes CI populaires : GitHub Actions, GitLab CI, Jenkins.
  • Gestion des gros artefacts, mise en cache des dépendances et exécution parallèle.

Qualité logicielle et analyse statique

  • Définition de la qualité logicielle : maintenabilité, fiabilité, utilisabilité, efficacité.
  • Métriques de code : complexité cyclomatique, couplage, cohésion et duplication.
  • Outils d'analyse statique pour Python, Java, C++ et scripts d'ingénierie courants.
  • La documentation comme qualité : docstrings, normes README et documentation évolutive.
  • Intégration de portes de qualité dans les pipelines CI sans bloquer la progression des étudiants.

Stratégies de test et conception des tests

  • Pyramide des tests : tests unitaires, tests d'intégration, tests système et tests d'acceptation.
  • Rédaction de tests unitaires pour les calculs d'ingénierie, les simulations et les utilitaires.
  • Fondamentaux du développement piloté par les tests (TDD) et du développement piloté par le comportement (BDD).
  • Mocking des systèmes externes : capteurs, API, solveurs d'éléments finis.
  • Structuration des suites de tests pour les projets d'équipes multidisciplinaires.

Automatisation des tests et tests continus

  • Automatisation de l'exécution des tests dans les pipelines CI/CD.
  • Rapports de test, seuils de couverture et gestion des tests instables.
  • Tests basés sur les propriétés et fuzzing pour les algorithmes d'ingénierie.
  • Stratégies de tests de régression pour les travaux pratiques de cours en évolution.
  • Tests de performance et de charge pour les charges de travail de simulation et de rendu.

Concepts de livraison et déploiement continus

  • Fondamentaux de CD : livraison vs. déploiement, environnements et promotion.
  • Modèles de déploiement : bleu-vert, canari et interrupteurs de fonctionnalités.
  • Application des principes de CD pour publier des artefacts de recherche, des sites de cours et des applications.
  • Fondamentaux des conteneurs avec Docker pour des environnements d'ingénierie reproductibles.
  • Introduction à l'infrastructure as Code : gestion déclarative des configurations de laboratoire et de cloud.

Observabilité, surveillance et feedback

  • Journalisation, métriques et traçage pour les logiciels académiques et les simulations.
  • Mise en place d'une surveillance légère pour les projets étudiants et les outils de recherche.
  • Utilisation des données de feedback pour itérer sur les supports d'enseignement et les travaux pratiques.
  • Tableaux de bord et alertes appropriés pour les contextes éducatifs.
  • Vérification post-déploiement et procédures de retour arrière.

Meilleures pratiques de sécurité et de qualité

  • Fondamentaux du codage sécurisé : validation des entrées, authentification et gestion des secrets.
  • Analyse des dépendances et gestion des vulnérabilités dans les piles open source.
  • Conformité des licences pour les logiciels utilisés dans l'enseignement et la publication.
  • Considérations relatives à la confidentialité des données lors de la gestion des données des étudiants et de la recherche.
  • Construction d'une culture consciente de la sécurité dans les programmes d'ingénierie et de design.

Traduction des pratiques en modules d'enseignement

  • Conception d'assignations de projets agiles pour les étudiants en systèmes, génie civil, design et architecture.
  • Création de grilles d'évaluation qui évaluent la qualité du processus ainsi que celle du produit.
  • Mise en place de dépôts modèles avec CI pré-configuré pour l'utilisation par les étudiants.
  • Échafaudage progressif des concepts DevOps tout au long du semestre.
  • Évaluation des équipes étudiantes à l'aide de métriques réelles de qualité et d'automatisation.

Sélection de la chaîne d'outils et contraintes académiques

  • Évaluation des outils gratuits et open source pour les départements soucieux du budget.
  • Intégration avec LMS existants, stockage de fichiers et infrastructure de laboratoire.
  • Gestion de la dette technique dans les bases de code de recherche à long terme.
  • Intégration des étudiants et du personnel enseignant ayant des niveaux techniques variés.
  • Maintenir la durabilité lorsque les contributeurs clés diplômés ou tournent.

Pré requis

  • Une compréhension de base des concepts de développement de logiciels.
  • Une familiarité avec les workflows généraux de l'ingénierie ou du design.
  • De l'expérience dans l'utilisation des ordinateurs pour un travail académique ou basé sur des projets.

Audience cible

  • Professeurs et chargés de cours provenant des programmes d'ingénierie des systèmes, de génie civil, de design et d'architecture.
  • Personnel académique cherchant à moderniser son enseignement avec des pratiques pertinentes pour l'industrie.
  • Responsables de recherche et coordonnateurs de laboratoires intégrant la technologie dans le curriculum.
 42 Heures

Nombre de participants


Prix par participant

Nos clients témoignent (2)

Cours à venir

Catégories Similaires