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 le plan
  • Rôles, événements et artefacts Scrum cartographiés sur les cycles de projets académiques
  • Kanban et gestion basée sur le flux pour les équipes de recherche et d'enseignement
  • Choix des hybrides agiles adaptés aux environnements d'ingénierie et de design

Planification agile et collaboration

  • Rédaction de récits utilisateurs et définition des critères d'acceptation pour les problèmes d'ingénierie
  • Techniques de priorisation du backlog : MoSCoW, valeur par rapport à l'effort, ordre basé sur les risques
  • Planification de sprint et estimation avec des équipes non logicielles
  • Rétrospectives et amélioration continue dans un contexte académique
  • Outils de collaboration et tableaux pour les participants pluridisciplinaires

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
  • Création d'une culture sans faute et de boucles de rétroaction dans les établissements d'enseignement
  • Considérations éthiques, de sécurité et de conformité lors de l'adoption de DevOps dans le milieu académique

Contrôle de version et gestion collaborative du code

  • Fondamentaux de Git pour un travail d'ingénierie et de design reproductible
  • Stratégies de branchement : trunk-based, branches de fonctionnalités et GitFlow simplifié
  • Demandes de fusion (pull requests), revue par les pairs et propriété du code au sein des équipes pédagogiques
  • Gestion des actifs non code : fichiers CAO, 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 compilation

  • Concepts de CI et leur application aux outils d'ingénierie compilés et scriptés
  • Mise en place de compilations automatisées pour les logiciels, les simulations et la documentation
  • Étapes du pipeline : compilation, packaging, 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 en tant que qualité : docstrings, normes README et documents vivants
  • Intégration des portes de qualité dans les pipelines CI sans bloquer les progrès des étudiants

Stratégies de test et conception des tests

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

Automatisation des tests et tests continus

  • Automatisation de l'exécution des tests au sein des pipelines CI/CD
  • Rapports de tests, 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 devoirs de cours en évolution
  • Tests de performance et de charge pour les charges de travail de simulation et de rendu

Concepts de livraison continue et déploiement

  • Fondamentaux de la CD : livraison par rapport au déploiement, environnements et promotion
  • Modes de déploiement : bleu-vert, canari et commutateurs de fonctionnalités
  • Application des principes de la CD pour publier des artefacts de recherche, des sites de cours et des applications
  • Les bases des conteneurs avec Docker pour des environnements d'ingénierie reproductibles
  • Introduction à l'infrastructure en tant que code : gestion déclarative des configurations de laboratoire et de cloud

Observabilité, surveillance et rétroaction

  • 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 rétroaction pour itérer sur les supports pédagogiques et les devoirs de laboratoire
  • Tableaux de bord et alerting adaptés aux contextes éducatifs
  • Vérification post-déploiement et procédures de rollback

Meilleures pratiques de sécurité et de qualité

  • Fondamentaux du codage sécurisé : validation des entrées, authentification et gestion des secrets
  • Scanner des dépendances et gestion des vulnérabilités dans les stacks open source
  • Conformité des licences pour les logiciels utilisés dans l'enseignement et la publication
  • Considérations de confidentialité des données lors de la manipulation 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 de devoirs de projet agiles pour les étudiants en ingénierie des systèmes, génie civil, design et architecture
  • Création de grilles d'évaluation évaluant la qualité du processus parallèlement à la qualité du produit
  • Mise en place de dépôts modèles avec CI pré-configuré pour l'utilisation par les étudiants
  • Étayage 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 le LMS existant, le stockage de fichiers et l'infrastructure de laboratoire
  • Gestion de la dette technique dans les bases de code de recherche à long terme
  • Onboarding des étudiants et du personnel avec des niveaux de compétence technique variables
  • Maintenance de la durabilité lorsque les contributeurs clés diplôment ou changent

Pré requis

  • Une compréhension de base des concepts de développement logiciel
  • Une familiarité avec les flux de travail généraux de l'ingénierie ou du design
  • Une expérience dans l'utilisation des ordinateurs pour des travaux académiques ou basés sur des projets

Public cible

  • Professeurs et chargés de cours des programmes d'ingénierie des systèmes, de génie civil, de design et d'architecture
  • Personnel académique souhaitant moderniser son enseignement avec des pratiques pertinentes pour l'industrie
  • Chefs de recherche et coordinateurs de laboratoire 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