Allouche Mathieu
ALMOUTILLAGE
QUI SUIS-JE ?Founder Shoot4ME solution d’outsourcing photo
Ingénieur et architecte logiciels de formation 15 ans d’expériences
Spécialiste des l’environnement e-CRM, e-Marketing, datamining
Quelques références : C-Discount, Plantes & Jardins, Cultura, MailPerformance…
PLANNING
Cours - 9 septembre 9h00 – 12h00
TD 1 – Test d’outils collaboratifs SaaS - 2h 12 septembre 8h30 – 10h30
TD 2 – Mise en œuvre d’une solution open source - 1h30
12 septembre 10h30 – 12h00
TD 3 - Mise en œuvre d’une solution grand éditeur - env 3h
15 septembre 13h30 – 17h00
SOMMAIRE
o Définition, enjeux, couverture du cours ALM vs PLM
o Panorama cycle de vie d’une application Focus sur les livrables
Focus sécurité : Processus SDL (Security Development Lifecycle) & SD3+C
Points retours experiences et trucs à savoir
o Couverture de l’outillage ALM
o Positionnement des acteurs du marché
o Les évolutions / tendances ALM 2.0
o Littératures
PRÉREQUIS
Connexion à internet
Un compte avec suffisamment de droits pour installer des logiciels
TD 1 :
Une connexion à Internet et 1 navigateur
TD 2 :
Eclipse
TD 3 :
Visual Studio 2013 Ultimate
Compte Microsoft Live actif
ALM & PLM / DÉFINITION
PLM : Product Lifecycle Management. « Gestion du cycle de vie du produit »
ALM : Application Lifecycle Management. « Gestion du cycle de vie d’un logiciel »
Dans les deux cas, cela regroupe toutes les activités dont le but est de créer et maintenir le produit / logiciel jusqu’à sa fin de vie.
Nous allons étudier comment l’ALM régie aujourd’hui la vie d’une application.
POURQUOI FAIRE ?
PANORAMA CYCLE DE VIE
Def. Exig.
Conception / Analyse Implementation Vérification
Lancement Support
Exigences
Spé concept
Développement CorrectionsTests Déploiements MaintenanceSpé fonc
Approche fonctionnelle
PANORAMA CYCLE DE VIE
Def. Exig.
Conception / AnalyseImplementatio
nVérification
Lancement Support
Approche volumique
PANORAMA CYCLE DE VIEApproche sécuritaire
Les sources : ici et livre blanc
FOCUS PROCESSUS SDL / SD3+C :
Secure by Design (sécurisation par conception)
Secure by Default (sécurisation par défaut)
Secure in Deployment (sécurisation dans le déploiement)
Communications
Exigences, Codage, Test, Build, Intégration continue…
(Security Development Lifecycle)
LES LIVRABLES
COUVERTURE DE L’OUTILLAGE ALM
OUTILLAGE ET LIVRABLES
Source : Lucian Precup
GESTION DE PLANNING
Apparue avant l’ALM, les outils de gestion de planning permettent de connaitre l’avancement du projet, le temps restant, et combien de ressources sont nécessaires pour la suite du projet.
La gestion du planning doit s’intégrer à toute les étapes de L’ALM, et être mise à jour régulièrement.
Outils : MS Project, GanttProject, Open workbench
Evolutions collaboratives : Trello, Asana, Clarizen
…
GESTION DES TACHES ET DES TICKETS En relation étroite avec la gestion de planning, le ticketing est une technique parallèle, très utilisée pour séparer et minimiser les impacts des tâches de support sur l’avancement du projet.
Le ticketing permet de mesurer avec précision les impacts, la nature et l’origine des incidents de type bug ou dysfonctionnement. Le ticketing peut être technique et/ou fonctionnel.
Outils : Nagios/GLPI, Trac, GestSup, Project’OR…
Evolutions collaboratives ou externalisées : Zendesk (orienté service)
CONTRÔLE DE CODE SOURCE Permettent la gestion et le versioning des sources.
AUCUN projet ne devrait exister sans contrôle code source.
Vocabulaire à connaitre : Centralisé, décentralisé, commit, shelve, extract, unpanding change, branching, label, merge
Les acteurs : Source Safe, Git, svn, TFS, Mercurial, …
La majorité des logiciels de gestion ALM intègre un gestionnaire de dépôts vers git, svn ou TFS.
+ PETIT FRÈRE : CODE REVIEW La revue de code permet d’identifier des bugs avant de les rencontrer au moyen d’une relecture du code source par un développeur expérimenté.
Vocabulaire à connaitre : Revue de code bloquante, code non-bloquante, formelle, informelle, pair programming, examinateur, Super-review
Les acteurs : Jupiter (éclipse), Code collaborator, Crussible, Bugzilla, Crew (Git), Review board
GESTION DES CONVENTIONS DE CODE ET DE DOCUMENTS Objectif : faciliter la relecteur, la compréhension et la maintenance du code.
Technique : Utilisation d’outil d’analyse statique de code
Quelques outils : FxCop, SonarJ, Checkstyle
Version collaborative : kalistick
Liste assez exhaustive : ici
GESTION DES TESTS FONCTIONNELS, SÉCURITÉ, PERFORMANCES Objectif : gain de temps et satisfaction client. Agir à la source est une économie indéniable.
Vocabulaires : Tests unitaires, tests fonctionnels, tests de charges, profilage, outils d’analyse statique, dynamique, fuzz testing (boite noire), surface d’attaque (boite blanche)…
Quand ? Pendant le développement, à l’archivage, à la compilation et au déploiement
MS Test manager, Quality center, kalistick, J-Unit, dotCover, JaCoCo, clover, .Net Inspector…
Méthodes préventives
GESTION DES COMPILATIONS, DÉPLOIEMENTS ET INTÉGRATIONS CONTINUES Objectif : gain de temps et satisfaction client. Agir à la source est une économie indéniable.
Vocabulaire : environnement de test, de pré-production, production. Règles d’isolation, de sécurité, procédures de déploiement.
Outils : Maven, Jenkins
Méthodes préventives
REPORTING
Réalisation, publication et diffusion de rapports d’activité :
Reporting des activités (tickets, commits, temps passée, …)
Analyse de performance et de productivité.
Partage des rapports en ligne sur des tableaux de bords attrayants.
Les outils : Sharepoint, Birt, JasperReports.
PRODUCTION DE DOCUMENTATIONQuoi : Documentation développeur, support, utilisateur, marketing, commerciale…
Sur quoi : dans le code, sur des wiki, faq, des documents…Comment : CMS versionné
Workflow de relecture et de validation, ajout de metadonnées, espace de partage, gestion de templates, gestion des modifications, gestion des ACL (Access Control List), gestion des notifications
Liaison avec documents, reporting et ticketing (tâches, bugs, élément de travail…)
Les outils : JavaDoc, SandCastle, GhostDoc, Wiki, Sharepoint…
LES ÉVOLUTIONS / TENDANCES ALM 2.0
Collaboratif + Solution en ligne + Réseau social
SOLUTIONS GRAND-ÉDITEUR
Les plus : solutions complétement intégrées et évolutives
Les moins : configuration & cout
Outils éditeurs : IBM Rational, MKS, HP, Serena, Altassian, Rally Software, Urbancode, Microsoft Team Foundation Server Collabnet…
Outils sur-mesure : SAP, Bull, Cap Gemini…
POSITIONNEMENT DES ACTEURS DU MARCHÉ
UN PEU DE LITTÉRATURE & QUELQUES LIENS Peer Reviews in Software de Karl E. Wiegers
La revue de code c’est Agile
Le blog ALM-France.org
Industrialisation des développement - MSDN – Microsoft
Le blog de francois Tonic
Le blog ALM de developpez.com
Le livre blanc ALM 2012 Smile
Etude comparative des outils d’industrialisation