Aller au contenu principal

PLB CONSULTANT : 2. Open Source - Mise en oeuvre de l'Usine Logicielle

Organisme

PLB CONSULTANT

Durée

28 heures

Modalités

Formation
  • Classe virtuelle
  • Présentiel
Évaluation

Travaux pratiques. Étude de cas. Auto-évaluation en début et en fin de formation.

Prix

Inter
La formation en Inter est dispensée pour un groupe de salariés d’entreprises différentes.
1396€ HT / personne
Intra
La formation en Intra est dispensée pour un groupe de salariés d’une seule et même entreprise.
5560€ HT / groupe
4 stagiaires minimum

Public

Pour consulter les public visés, merci de vous référer au programme détaillé de chaque stage.

Pré-requis

Connaissances de base en développement logiciel.

Objectifs pédagogiques

Pour consulter les objectifs pédagogiques, merci de vous référer au programme détaillé de chaque stage.

Programme détaillé

Objectifs pédagogiques :

À la fin de la formation, les participants auront une vision claire du cycle de production du logiciel, des prérequis et outils nécessaires à l’automatisation de la production. Ils auront également eu une présentation et une première utilisation des outils Open Source les plus répandus aussi bien dans le contexte de projet communautaire que de projet d’entreprise.

  • Le premier jour, les particiapants sont sensibilisés à la problématique d’industrialisation du développement logiciel. Les outils socles que sont les systèmes de gestion de version et les outils de construction sont présentés. Des ateliers sont effectués avec Git et Maven.
  • Le deuxième jour est consacré exclusivement aux tests. Les différents types de tests et leurs rôles dans les étapes de construction sont présentés. Des petits ateliers permettent aux particiapants d’appréhender les outils utilisés pour chaque type de test.
  • Le troisième jour est dédié à l’intégration continue et à la qualité, et plus particulièrement aux outils Open Source Jenkins et Sonar. Un pipeline de construction comprenant la compilation, les différents types de test et l’analyse qualité est mis en place avec Jenkins.
  • Le dernier jour se concentre sur le processus de release pour une première version ou une mise à jour de logiciel. Le pipeline précédent est complété par une phase de release incluant les interactions avec le dépôt Git, les sources gérés par Maven et un dépôt d’artefact géré par Nexus. Des ateliers/démonstrations sur les outils de gestion de bugs complètent la formation. Un workflow de traitement d’incident et de mise en production par le pipeline est joué intégralement.

 

À la fin de la formation les participants auront acquis :

  • Une vision claire de tous les outils prenant part à la mise en place d’une usine logicielle
  • Une connaissance approfondie des outils les plus utilisés pour les usines logicielles : Git, Maven, npm, JUnit, Jenkins
  • Une compréhension des différents types de tests appliqués aux logiciels, de leurs rôles et de leurs acteurs
  • Une compréhension des modèles qualité appliqués au logiciel et des métriques associées
  • Une bonne compréhension du processus de release d’un logiciel.

Un projet complet sert de fil conducteur pour illustrer le propos et pour alimenter les ateliers effectués par les participants

 

Public :

Les profils visés pour cette formation sont les architectes, chefs de projets, développeurs.

 

Jour 1 : SCM et Outils de build

 

Introduction

Le concept de l’usine logicielle

Cycle de vie d’un projet : de la spécification à la production

Les principes et apports de l’intégration continue

Relations avec les méthodes agiles, avec DevOps

 

Particularités d’un projet Open Source

Principes des logiciels Open Source, mode de développement, types de licences

Facteurs de réussite d’un projet Open Source

Création de communautés, Outils de communication (blogs, Wikis, Tweets, SlideShare)

Importance de la documentation

 

Le socle transverse, l’outil de SCM

Les outils de gestion de sources : rôles et apports

La solution Git est ses particularités

Modèles de collaboration Gitflow et Fork. Leur contexte d’utilisation

Les outils les plus répandus : GitLab et GitHub

Atelier 1 :

Initialisation d’un dépôt

Création de branches de développement et de branches de features

 

Les outils de construction et les gestionnaires d’artefacts

Les phases classiques de la construction, compilation, test unitaires, packaging

Les phases annexes : génération de code, optimisation, documentation, tests d’intégration, analyse de code

Gestion des dépendances projet, gestionnaires d’artefacts, les dépôts publics et les dépôts d’entreprise

Modèle Maven et pom.xml ; Modèle npm et package.json

Les autres outils Ant, Gradle, Ivy, MSBuild, Composer, Yarn

Mise en place d’un dépôt d’entreprise avec Nexus

Atelier 2 :

Adaptation d’un cycle de build (Maven ou Yarn)

Construction back-end Java ou front-end JavaScript

Commentaires des fichiers produits : classes compilées, résultats des tests

Publication des snapshots dans Nexus

 

Jour 2 : Les Tests Logiciels

 

Introduction

Typologie des tests, types de tests et phases de construction

Les méthodes centrées sur les tests. Principes de l’XP Programming

 

Les tests unitaires

Principes du test unitaire, Les outils xUnit

Assertions, Matchers

Données de test, méthodes de call-back setUp et tearDown

Isolation de classes, Mocking et Stub, Pattern IoC et injection de dépendances

Atelier 3 :

Écriture d’une classe de test

Exécution dans l’IDE (jUnit ou Karma/Jasmine) et exécution par l’outil de construction

 

Les tests d’intégration

Principes du test d’intégration

Les systèmes embarqués (bases de données et serveurs)

Problématique de déploiement, l’exemple d’Arquilian

Atelier 4 :

Écriture d’une classe de tests d’intégration et intégration dans le cycle de construction

Exécution par l’outil de construction

 

Les tests fonctionnels

L’approche boîte noire des tests fonctionnels

Clients Web et clients JavaScript

Exemple de Selenium, Protractor, JMeter

Atelier 5 :

Tests de l’API Rest via JMeter, Tests de l’interface par Protractor

 

Phase de recette et tests d’acceptance

Objectifs des tests d’acceptance, le BDD

Rôle du client dans les tests d’acceptance, tests d’acceptance et méthodes agiles

L’exemple de Cucumber

Atelier 6 :

Mise en place d’un test d’acceptance

 

Jour 3 : L’intégration continue

 

Introduction

Principes de l’intégration continue, le serveur d’intégration continue

Le serveur comme outil de communication

Les étapes de mise en place

Provisionnement de ressources et relation avec les outils DevOps

La référence Jenkins, les autres outils

 

Le serveur Jenkins

Principes de plugins

Intégration avec GitHub, GitLab

Répartition des responsabilités avec Nexus, SonarQube

Les différents types de jobs

Enchaînement des jobs, passages de paramètres, jobs multi-configuration, récupération d’artefacts

Architecture maître/esclave et distribution des jobs

Atelier 7 :

Configuration système Jenkins et outils associés, Création de jobs

 

Analyse continue de la qualité

Métriques internes / métriques externes

Facteurs de qualité et métriques standards

La plateforme SonarQube

Tests de performance avec JMeter

Intégration dans Jenkins

Atelier 8 :

Configuration Sonar, Intégration de l’analyse, Création de jobs

 

Jour 4 : La mise en production

 

Release d’un logiciel

Numérotation des versions, gestion des tags

Branche de préparation de release

Publication des artefacts

Automatisation des releases avec Git/Maven/Nexus

Atelier 9 :

Automatisation du processus de release

 

Pipeline de déploiement

Déploiement continu et approche DevOps

Les pipelines appliqués aux branches GitFlow

Phase de promotion manuelle dans les pipelines

Tests post-déploiement

Atelier 10 :

Pipeline complet de déploiement Jenkins avec promotion manuelle

 

Révision de produit

Outils de suivi des bugs (Bugzilla, Trac, Jira)

Workflows de traitement

Revue de code avec Git

Gestion de backlog et de milestones

Atelier/Démonstration :

Workflow de traitement d’un ticket

 

Retours utilisateurs

Outils de suivi des utilisateurs

Gestion des retours utilisateurs

Outils d’animation de communauté

Atelier/Démonstration :

Produits de suivi de communauté

 

Étude de cas

Un projet quasiment complet sert de support aux ateliers. À chaque atelier, il est demandé aux participants de comprendre le code fourni et de le compléter afin d’atteindre l’objectif de l’énoncé. Cette méthodologie favorise une compréhension en profondeur de l’implémentation fournie dans un délai relativement court.

À la fin de chaque atelier, la correction complète est commentée. Le projet corrigé dans son intégralité peut alors servir de référence lors du retour du stagiaire dans son contexte professionnel.

Fonctionnellement, le projet propose une plateforme d’échange de fichiers entre membres d’une communauté. Il est composé d’un back-end REST Java (SpringBoot) et d’un front-end JavaScript (Angular 4). Les participants peuvent alors choisir la technologie dans laquelle ils sont les plus à l’aise lors des ateliers.

Sessions

Filtrer les résultats

Aucun résultat pour cette recherche

Modalités pédagogiques
Formation synchrone se déroulant avec la présence physique du (des) formateur(s) et du (des) apprenant(s) réunis dans un même lieu de formation.
Formation combinant des séquences en présentiel et des séquences à distance synchrones ou asynchrones.
Formation à distance, asynchrone, s’appuyant sur une plateforme d’apprentissage, pouvant être complétée par d’autres modalités de formation à distance (visio-conférence…)
Formation à distance, synchrone, s’appuyant sur un dispositif de visio-conférence. La classe virtuelle recrée à distance les conditions d’une formation en salle traditionnelle.
Type de formation
La formation en Inter est dispensée pour un groupe de salariés d’entreprises différentes.
La formation en Intra est dispensée pour un groupe de salariés d’une seule et même entreprise.
Options
Les compétences professionnelles visées par la formation sont validées via un test permettant d’obtenir une certification officielle.
Ces sessions ne peuvent être ni annulées ni reportées par l’organisme de formation.

0 résultat