351veloppement pour arcgis, partie 1, professionnaliser sa gestion de … · 2016-08-02 ·...

47
Bien débuter son développement pour ArcGIS, Partie 1, Professionnaliser sa gestion de projet N. Py Journées ESRI SIG2010, Octobre 2010

Upload: others

Post on 18-Jun-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

Bien débuter son développement pour ArcGIS,

Partie 1, Professionnaliser sa gestion de projet

N. Py

Journées ESRI SIG2010, Octobre 2010

Page 2: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

Contexte

Le génie logiciel

Phase d’analyse

Phase de développement: Des méthodes

Phase de développement: Des outils

Phase de livraison

Conclusion

Bien dBien déébuter son dbuter son dééveloppement pour ArcGIS, veloppement pour ArcGIS,

Partie 1, Professionnaliser sa gestion de projetPartie 1, Professionnaliser sa gestion de projet

Page 3: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

33

Le Géomaticien, de + en + informaticienLe Géomaticien, de + en + informaticien

Source: http://georezo.net/wiki/_media/main:formetiers:poster_metier_mathian_2003_2.pdf

Avec cependantdes lacunes enGénie logiciel…

Professionnaliser sa gestion de projet -> ContexteProfessionnaliser sa gestion de projet -> Contexte

Page 4: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

44

ESRI et le développement à façonESRI et le développement à façon

1. Baisse d’emploi des langages de script propriétaire:

1. Avenue, (AV 3.x, 1996 ; v3.3 en ‘Mature support’ depuis 2002)

2. AML (AI v4, 1986 ; AI 9.3.1 = AI 9.3 en ‘General availability depuis 2008)

3. Fin du support VBA après la v9.4/10 (VBA will be available if needed, fully supported but not recommended. )

4. ‘Remplacement’ par desktop add-ins en v9.4/10

2. ArcObjects (AG 8.x, 1999 ; AG 9.3.1 en ‘General availability depuis 2009)

3. Model Builder (AG 9.x, 2004 ; AG 9.3.1 en ‘General availability depuis 2009)

4. Python (AG 9.x, 2004 ; AG 9.3.1 en ‘General availability depuis 2009)

5. Support Web

1. ArcIMS (AIms 4, 2002 ; 9.3.1 en ‘General availability depuis 2009)

2. Web ADF (Java/.Net) (9.2, 2006)

3. APIs Riches (9.3, 2008)

6. Suppport smartphone

1. IPhone

2. Blackberry

3. Androïd

Diversification et ‘complexification’ des

outils

Professionnaliser sa gestion de projet -> ContexteProfessionnaliser sa gestion de projet -> Contexte

Page 5: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

55

Source: http://www.wiki.gis.com/wiki/index.php/File:SDS10Fig2.1_SWEvolution.jpg

Professionnaliser sa gestion de projet -> ContexteProfessionnaliser sa gestion de projet -> Contexte

ESRI et le développement à façon,en image…

ESRI et le développement à façon,en image…

Page 6: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

66

Plus généralement en géomatiquePlus généralement en géomatique

1. Open source se démocratise

2. Et augmente en fonctionnalités

3. Augmentation des besoins, rejoignant la vision GeoDesign ESRI

1. Plus seulement de la représentation

2. Mais de la modélisation

3. Et de la prédiction

4. Augmentation des volumes de données traitées

5. Multiplication des logiciels employés

6. Demande d’automatisation des tâches en hausse

Professionnaliser sa gestion de projet -> ContexteProfessionnaliser sa gestion de projet -> Contexte

Page 7: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

77

Objectif de la présentationObjectif de la présentation

Professionnaliser sa gestion de projet

1. L’acquisition des concepts et du vocabulaire

2. Un aperçu théorique des méthodes des développeurs

3. Dans un contexte ArcGIS et .Net, avec une majorité d’outils open-source

Professionnaliser sa gestion de projet -> ContexteProfessionnaliser sa gestion de projet -> Contexte

Page 8: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

Contexte

Le génie logiciel

Phase d’analyse

Phase de développement: Des méthodes

Phase de développement: Des outils

Phase de livraison

Conclusion

Bien dBien déébuter son dbuter son dééveloppement pour ArcGIS, veloppement pour ArcGIS,

Partie 1, Professionnaliser sa gestion de projetPartie 1, Professionnaliser sa gestion de projet

Page 9: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

99

DéfinitionDéfinition

Le terme génie logiciel (en anglais software engineering) désigne l'ensemble des méthodes, des techniques et outils concourant à la production d'un logiciel, au-delà de la seule activité de programmation.

Sourc

e:

htt

p:/

/geekandpoke.t

ypepad.c

om

/geekandpoke/2

010/0

2/this

-tim

e.h

tml

Sou

rce:

http

://w

ww

.com

men

tcam

arc

he.n

et/con

ten

ts/g

en

ie-

log

icie

l/g

en

ie-l

og

icie

l.php

3

Professionnaliser sa gestion de projet -> Le génie logicielProfessionnaliser sa gestion de projet -> Le génie logiciel

Page 10: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

1010

ComposantesComposantes

Phase de livraisonIntégrationDocumentation logiciellePackaging / déploiementRéception

Phase de programmationAlgorithmiqueProgrammationDocumentation Gestion de versionsRefactoringTests unitairesOptimisation du code

Phase d'analyseSpécificationConceptionDéfinition de l'architecture

Source: Inspiré de http://fr.wikipedia.org/wiki/Conception_de_logiciel

Professionnaliser sa gestion de projet -> Le génie logicielProfessionnaliser sa gestion de projet -> Le génie logiciel

Page 11: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

1111

Pourquoi en parler ici ?Pourquoi en parler ici ?

Les méthodes de génie logiciel

Ne sont généralement pas ou peu abordées dans les ouvrages de vulgarisation de

programmation

Or elles permettent de

Garder une trace des:• Besoins

• Problèmes rencontrés

• Réponses apportées

Faciliter:• Maintenance des logiciels

• MàJ des logiciels

• Ré-emploi de morceaux de code

Travailler de façon approfondie• Plusieurs développeurs

• Développement important (2-3 semaines ?)

Faire aboutir le projet

Augmenter la qualité du logiciel produit

Professionnaliser sa gestion de projet -> Le génie logicielProfessionnaliser sa gestion de projet -> Le génie logiciel

Page 12: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

1212

Les risques d’un projet informatiqueLes risques d’un projet informatique

Source inconnue

Professionnaliser sa gestion de projet -> Le génie logicielProfessionnaliser sa gestion de projet -> Le génie logiciel

Page 13: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

Contexte

Le génie logiciel

Phase d’analyse

Phase de développement: Des méthodes

Phase de développement: Des outils

Phase de livraison

Conclusion

Bien dBien déébuter son dbuter son dééveloppement pour ArcGIS, veloppement pour ArcGIS,

Partie 1, Professionnaliser sa gestion de projetPartie 1, Professionnaliser sa gestion de projet

Page 14: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

1414

SpécificationsSpécificationsS

ourc

e:

htt

p:/

/geekandpoke.t

ypepad.c

om

/geekandpoke/2

008/0

2/o

ne-y

ear-

in-a

-2.h

tml

Décrivent de manière formelle et exhaustive le produit informatique àréaliser

Source: http://fr.wikipedia.org/wiki/Sp%C3%A9cification_%28informatique%29

Professionnaliser sa gestion de projet -> La phase d’analyseProfessionnaliser sa gestion de projet -> La phase d’analyse

Page 15: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

1515

ConceptionConception

Sourc

e:

htt

p:/

/fr.

wik

ipedia

.org

/wik

i/M

%C

3%

A9th

odes_d%

27analy

se_et_

de_conceptio

n

La phase de conception

permet de décrire de

manière non ambiguë, le

plus souvent en utilisant

un langage de

modélisation, le

fonctionnement futur

du système, afin d'en

faciliter la réalisation.

-> UML, Merise

Source: http://laurent-audibert.developpez.com/Cours-UML/html/Cours-UML056.html

Professionnaliser sa gestion de projet -> La phase d’analyseProfessionnaliser sa gestion de projet -> La phase d’analyse

Page 16: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

1616

ArchitectureArchitecture

Sourc

e:

htt

p:/

/geekandpoke.t

ypepad.c

om

/geekandpoke/2

009/1

1/e

nte

rprise-a

rchitectu

re-

made-e

asy-p

art

-1.h

tml

L'architecture informatique décrit la structuration d'un système informatique en termes de composants et d'organisation de ses fonctions.

• Physique VS Logique• Par groupe de composants • informatiques :

• conception logicielle• conception matérielle• concept Middleware• conception réseau

Source: http://fr.wikipedia.org/wiki/Architecture_informatique

Professionnaliser sa gestion de projet -> La phase d’analyseProfessionnaliser sa gestion de projet -> La phase d’analyse

Page 17: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

1717

En résumé,En résumé,

Un bête éditeur de texte peut suffire

à réaliser la phase d’analyse,

à accompagner éventuellement avec

un logiciel capable de générer des diagrammes

Professionnaliser sa gestion de projet -> La phase d’analyseProfessionnaliser sa gestion de projet -> La phase d’analyse

Page 18: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

Contexte

Le génie logiciel

Phase d’analyse

Phase de développement: Des méthodes

Phase de développement: Des outils

Phase de livraison

Conclusion

Bien dBien déébuter son dbuter son dééveloppement pour ArcGIS, veloppement pour ArcGIS,

Partie 1, Professionnaliser sa gestion de projetPartie 1, Professionnaliser sa gestion de projet

Page 19: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

1919

Définition généraleDéfinition générale

Méthode de développement

« Ensemble séquentiel de phases, dont le nom et le nombre sont déterminés en fonction des besoins du projet, permettant généralement

le développement d’un service ou d’un produit »

Source: http://glmd.110mb.com/filessem2/Cycle%20de%20vie%20du%20logiciel%20et%20bonnes%20pratiques%20de%20developpement.pdf

Professionnaliser sa gestion de projet -> La phase de développement -> Des méthodesProfessionnaliser sa gestion de projet -> La phase de développement -> Des méthodes

Page 20: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

2020

Méthode de dév en cascadeMéthode de dév en cascade

Les phases traditionnelles de développement

sont effectuées simplement les unes après

les autres, avec un retour sur les

précédentes, voire au tout début du cycle.

Le processus de développement utilisant un

cycle en cascade exécute des phases qui ont

pour caractéristiques :

de produire des livrables définis au

préalable ;

de se terminer à une date précise ;

de ne se terminer que lorsque les

livrables sont jugés satisfaisants

lors d'une étape de validation-

vérification.

Source: http://www.laboiteaprog.com/article-modele_de_cycle_de_developpement-47-4

Source: http://fr.wikipedia.org/wiki/Cycle_de_d%C3%A9veloppement

Professionnaliser sa gestion de projet -> La phase de développement -> Des méthodesProfessionnaliser sa gestion de projet -> La phase de développement -> Des méthodes

Page 21: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

2121

Méthode de dév en VMéthode de dév en V

Le principe de ce modèle, est que chaque étape de décomposition du système possède une phase de test. Chaque phase du projet à une phase de test qui lui est associée. Beaucoup de tests sont ainsi créés, ce qui implique une réflexion. On sait progressivement si on s'approche de ce que le client désire.

Source: http://www.laboiteaprog.com/article-modele_de_cycle_de_developpement-47-4

Professionnaliser sa gestion de projet -> La phase de développement -> Des méthodesProfessionnaliser sa gestion de projet -> La phase de développement -> Des méthodes

Page 22: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

2222

Méthode de dév en spiraleMéthode de dév en spirale

Un cycle est décomposé en étapes.

Analyse préliminaire pour le premier

cycle; pour les autres cycles, on

détermine les objectifs, contraintes à

partir du résultat du cycle antérieur.

Analyse des risques, création de

prototype

Développement et test

Planification du cycle suivant

Les prototypes créés à chaque cycle

permettent de réduire les risques et de

guider la conception pour obtenir un

système qui répond au besoin du client.

Chaque cycle de la spirale fait en sorte

que le système soit de plus en plus

complet. Source: http://www.laboiteaprog.com/article-modele_de_cycle_de_developpement-47-4

Professionnaliser sa gestion de projet -> La phase de développement -> Des méthodesProfessionnaliser sa gestion de projet -> La phase de développement -> Des méthodes

Page 23: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

2323

Les méthodes ‘agiles’Les méthodes ‘agiles’

S’inscrivent dans le modèle en spirale

Buzzword

RAD, XP, Scrum, Test Driven Dev., Intégration continue

Formées à la base en opposition au modèle classique du

développement en cascade

Les méthodes de développement dites « méthodes agiles » (en

anglais Agile Modeling, noté AG) visent à réduire le cycle de vie du

logiciel (donc accélérer son développement) en développant une

version minimale, puis en intégrant les fonctionnalités par un

processus itératif basé sur une écoute client et des tests tout au

long du cycle de développement. Source: http://www.commentcamarche.net/contents/genie-

logiciel/methodes-agiles.php3

Professionnaliser sa gestion de projet -> La phase de développement -> Des méthodesProfessionnaliser sa gestion de projet -> La phase de développement -> Des méthodes

Page 24: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

2424

Méthode de dév à la RacheMéthode de dév à la Rache

« RACHE: Rapid Application Conception and Heuristic Extreme-programming : méthodologie de génie logiciel qui va vachement bien à vos projets ! »

Source: http://www.cafenware.com/la-rache/

Professionnaliser sa gestion de projet -> La phase de développement -> Des méthodesProfessionnaliser sa gestion de projet -> La phase de développement -> Des méthodes

Page 25: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

2525

Taxonomie des méthodologiesTaxonomie des méthodologies

Source: http://fr.wikipedia.org/wiki/Fichier:TaxonomieM%C3%A9thodologies.PNGChristophe.moustier

Professionnaliser sa gestion de projet -> La phase de développement -> Des méthodesProfessionnaliser sa gestion de projet -> La phase de développement -> Des méthodes

Page 26: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

2626

En résumé,En résumé,

Pour la majorité des géomaticiens, dans le cas de

Petites structures

Petits projets

Faible nombre de personnes réellement impliquées

la méthode de développement à la Rache peut éventuellement

suffire…

Bien que la formalisation entraîne l’adoption de bonnes pratiques et

rende la gestion du projet plus confortable.

Et qu’elle s’avère indispensable dans les autres cas pour assurer un

produit de qualité et évolutif…

Professionnaliser sa gestion de projet -> La phase de développement -> Des méthodesProfessionnaliser sa gestion de projet -> La phase de développement -> Des méthodes

Page 27: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

Contexte

Le génie logiciel

Phase d’analyse

Phase de développement: Des méthodes

Phase de développement: Des outils

Phase de livraison

Conclusion

Bien dBien déébuter son dbuter son dééveloppement pour ArcGIS, veloppement pour ArcGIS,

Partie 1, Professionnaliser sa gestion de projetPartie 1, Professionnaliser sa gestion de projet

Page 28: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

2828

Gestion des tâches, quoi ?Gestion des tâches, quoi ?

Ensemble de fonctionnalités permettant de:

Segmenter un projet en tâches élémentaires

Les attribuer (ressources)

Ne pas en oublier (bloc note!)

Avoir un rapport de leur avancement

Y adjoindre des documents

Accumuler des retours d’expérience (temps passé, problèmes

rencontrés, …)

-> répartir et segmenter le travail en gardant une maîtrise et une vue d’ensemble

-> Des logiciels classiques en gestion de projet (MS Project) à intégrés avec

d’autres outils de génie logiciel (Jira, Trac)

Professionnaliser sa gestion de projet -> La phase de développement -> Des outilsProfessionnaliser sa gestion de projet -> La phase de développement -> Des outils

Page 29: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

2929

Gestion des tâches, quand ?Gestion des tâches, quand ?

De façon logique:

Dès qu’il y a collaboration

Dès que le niveau de complexité dépasse le développeur

Ou quand vous avez une direction tatillonne… ☺

Professionnaliser sa gestion de projet -> La phase de développement -> Des outilsProfessionnaliser sa gestion de projet -> La phase de développement -> Des outils

Sourc

e:

htt

p:/

/ww

w.o

ceanobserv

ato

ries.o

rg/s

paces/

dow

nlo

ad/a

ttachm

ents

/20087430/J

iraT

ask.p

ng

Page 30: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

3030

Gestion de versions, quoi ?Gestion de versions, quoi ?

Permet de gérer les différentes versions du code écrit ainsi que de:

Retrouver une modification du code, son auteur, les

commentaires qu’il y a associés,

Gérer des versions du logiciel, ses évolutions…

Dès le début d’un projet, même petit, même avec un seul

développeur… coût<<<<<bénéfices !

Cf. :

SIG2010_Bien débuter son développement pour ArcGIS,

partie 2, Professionnaliser son code.ppt

http://fr.wikipedia.org/wiki/Gestion_de_versions

Professionnaliser sa gestion de projet -> La phase de développement -> Des outilsProfessionnaliser sa gestion de projet -> La phase de développement -> Des outils

Page 31: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

3131

Gestion de bug, quoi ?Gestion de bug, quoi ?

Centraliser les problèmes/bugs rencontrés

Description

Fonctionnalité touchée

Comment reproduire le dysfonctionnement

Capture d’écran

Message d’erreur

Mais aussi les améliorations demandées

Avec une hiérarchie (bloquant, mineur, …)

Ainsi que la réponse apportée (révision si gestion de version)

Cf. : http://fr.wikipedia.org/wiki/Logiciel_de_suivi_de_probl%C3%A8mes

Professionnaliser sa gestion de projet -> La phase de développement -> Des outilsProfessionnaliser sa gestion de projet -> La phase de développement -> Des outils

Page 32: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

3232

Gestion de bugs, quand ?Gestion de bugs, quand ?

Là encore, de façon logique:

Quand le nombre

d’utilisateurs est élevé

Quand les utilisateurs

sont extérieurs à

l’entreprise

Quand les utilisateurs

sont peu ou pas à même

de décrire le bug par

téléphone…

-> En résumé, quand la

communication entre le

développeur et l’utilisateur est

compliquée.

Professionnaliser sa gestion de projet -> La phase de développement -> Des outilsProfessionnaliser sa gestion de projet -> La phase de développement -> Des outils

Source: http://jira.atlassian.com/secure/attachment/11605/JiraBug2.jpg

Page 33: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

3333

Tests unitaires, quoi ?Tests unitaires, quoi ?

Cf.:SIG2010_Bien débuter son développement pour ArcGIS, partie 2, Professionnaliser son code.ppthttp://fr.wikipedia.org/wiki/Test_unitaire

http://fr.wikipedia.org/wiki/Non-r%C3%A9gression

Ecrire du code pour vérifier du code

S’assurer du fonctionnement d’une partie du logiciel

Répétable

Vérifient l’impact d’une modification du code sur le reste du logiciel

Et donc vérifier la non-régression

Détecter les bugs plus tôt

Argument qualité

Aide au suivi de l’avancement

Professionnaliser sa gestion de projet -> La phase de développement -> Des outilsProfessionnaliser sa gestion de projet -> La phase de développement -> Des outils

Page 34: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

3434

La forgeLa forge

Rassemble:

généralement via une exposition web,

les outils de développement collaboratif

Gestionnaire des tâches

Gestionnaire de version

Gestionnaire de bug

Liés entres-eux (url)

Forum

Exemples: SourceForge, CodePlex, …

Cf.: http://fr.wikipedia.org/wiki/Forge_%28informatique%29

Professionnaliser sa gestion de projet -> La phase de développement -> Des outilsProfessionnaliser sa gestion de projet -> La phase de développement -> Des outils

Page 35: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

3535

Intégration, quoi ?Intégration, quoi ?

Compilation de l’ensemble du projet:

Vérifie que le résultat des modifications du code source ne nuit pas au reste

du logiciel.

Peut être continue, via le lancement automatisé (quotidien, à chaque commit,

…) des tests unitaires.

Cf.: http://fr.wikipedia.org/wiki/Int%C3%A9gration_continue

http://www.martinfowler.com/articles/continuousIntegration.html

http://hudson-ci.org/

http://netbuildconfigurator.codeplex.com/

Professionnaliser sa gestion de projet -> La phase de développement -> Des outilsProfessionnaliser sa gestion de projet -> La phase de développement -> Des outils

Page 36: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

3636

Intégration, quand ?Intégration, quand ?

Projet complexe

Existence

De gestionnaire de version

De tests unitaires

Plusieurs développeurs travaillant concomitamment

Professionnaliser sa gestion de projet -> La phase de développement -> Des outilsProfessionnaliser sa gestion de projet -> La phase de développement -> Des outils

Page 37: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

3737

Tests holistiquesTests holistiques

I.e. grandeur réelle, en situation d’utilisation

Vérifier que tout fonctionne correctement ensemble (// tests unitaires,

spécifiques à un «module»):

Installation

Configurations de machines différentes

Utilisation réelle

Données réelles (en carto, peuvent êtres plus complexes, volumineuses, …)

Aux environs de la beta (beta-testeur !)

Chez ESRI:

http://blogs.esri.com/Dev/blogs/holistictesting/archive/2010/04/09/Holisti

c-Testing-Program-Information.aspx

Professionnaliser sa gestion de projet -> La phase de développement -> Des outilsProfessionnaliser sa gestion de projet -> La phase de développement -> Des outils

Page 38: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

3838

En résumé,En résumé,

La professionnalisation de la phase de développement d’un logiciel

fait appel à des outils spécifiques.

Leur installation ainsi que leur utilisation peuvent s’avérer complexes

et engendrer un surcroit de travail mais apporter du confort et des

gains dans la qualité du logiciel produit voire dans la productivité du

développeur.

La principale difficulté pour le géomaticien consiste alors à définir le

seuil à partir duquel les gains seront supérieurs aux coûts ainsi que

le ROI des outils, plus que variable (gestion de source $ VS

intégration continue $$$$$ par ex)

Professionnaliser sa gestion de projet -> La phase de développement -> Des outilsProfessionnaliser sa gestion de projet -> La phase de développement -> Des outils

Page 39: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

Contexte

Le génie logiciel

Phase d’analyse

Phase de développement: Des méthodes

Phase de développement: Des outils

Phase de livraison

Conclusion

Bien dBien déébuter son dbuter son dééveloppement pour ArcGIS, veloppement pour ArcGIS,

Partie 1, Professionnaliser sa gestion de projetPartie 1, Professionnaliser sa gestion de projet

Page 40: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

4040

Packaging / déploiement, quoi ?Packaging / déploiement, quoi ?

Packaging:

Compilation du code

Mise en relation de l’ensemble des composants: logiciels,

modules, documentation…

Script packaging

Déploiement:

Installer le logiciel chez le client

Aide à la prise en main

Script de déployement

DS2010: DEV54_Deploying Desktop

and Engine Applications in .NET.pdf

Professionnaliser sa gestion de projet -> La phase de livraisonProfessionnaliser sa gestion de projet -> La phase de livraison

htt

p:/

/pro

ceed

ing

s.e

sri.c

om

/lib

rary

/userc

on

f/d

evs

um

mit1

0/t

ech

/tech

_1

9.h

tml

Page 41: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

4141

Packaging / déploiement,

Cas particulier.

Packaging / déploiement,

Cas particulier.

Le code, pour plus de facilité de compréhension, partage des tâches, … a pu être séparé en de multiples dll.

Ces dernières, lors du déploiement, peuvent être incluses dans le programme principal…

Cf.:

« Embed an assembly as a resource, exemplified with Log4Net »

http://www.codeproject.com/KB/DLL/EmbedAssemblyAsResource.aspx

Et plus simplement ILMergehttp://www.codeproject.com/KB/dotnet/mergingassemblies.aspx

http://www.microsoft.com/Downloads/details.aspx?familyid=22914587-B4AD-4EAE-87CF-B14AE6A939B0&displaylang=en

http://ilmerge-gui.devv.com/Download.aspx

Professionnaliser sa gestion de projet -> La phase de livraisonProfessionnaliser sa gestion de projet -> La phase de livraison

Page 42: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

4242

RéceptionRéception

Faire constater au client

Que l’ensemble des livrables (exécutables, manuels, …) a été livré

Que les fonctionnalités demandées ont été implémentées

Et qu’en l’état actuel (sans garantir l’absence totale de bugs!), le logiciel est utilisable en production

Passage des cahiers de tests (document présentant des cas d’utilisation, i.e. les manipulations utilisateurs, avec les résultats attendus)

Professionnaliser sa gestion de projet -> La phase de livraisonProfessionnaliser sa gestion de projet -> La phase de livraison

Page 43: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

Contexte

Le génie logiciel

Phase d’analyse

Phase de développement: Des méthodes

Phase de développement: Des outils

Phase de livraison

Conclusion

Bien dBien déébuter son dbuter son dééveloppement pour ArcGIS, veloppement pour ArcGIS,

Partie 1, Professionnaliser sa gestion de projetPartie 1, Professionnaliser sa gestion de projet

Page 44: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

4444

Chez ESRIChez ESRI

Dev Summit 2010:

DEV75 Developer-to-Developer The ESRI Development Process

A ma connaissance, premières communication d’ESRI sur ses méthodes et processus de développement

http://proceedings.esri.com/library/userconf/devsummit10/tech/tech_23.htmlhttp://gisupdates.esri.com/video/devsummit2010/DEV75.wmv

Professionnaliser sa gestion de projet -> ConclusionProfessionnaliser sa gestion de projet -> Conclusion

Page 45: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

4545

ConclusionConclusion

Les méthodes et outils présentés permettent notamment, dès lors qu’ils ont été

mis en place avec succès, d’obtenir une assurance sur la qualité du logiciel

produit tout en facilitant son élaboration.

Pour la première fois, ESRI Inc communique sur ces/ses (!) méthodes de

développement, preuve de la prise de conscience de l’importance que peut

revêtir l’assurance qualité logicielle dans un marché des SIG mouvant,

concurrencé par l’Open Source.

Connaître ces pratiques, voire les adopter, permettra aux géomaticiens

développeurs de mieux interfacer leurs travaux avec le noyau ArcGIS tout en

améliorant la gestion de leurs projets, facteur non négligeable dans le contexte

économique actuel…

Professionnaliser sa gestion de projet -> ConclusionProfessionnaliser sa gestion de projet -> Conclusion

Page 46: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

4646

Quelques autres ressources utilesQuelques autres ressources utiles

Les outils Open Source pour industrialiser les développements en environnements

.NET

http://valtech.developpez.com/articles/dotnet/integration-continue/

L'intégration continue avec CruiseControl.NET

http://defaut.developpez.com/tutoriel/dotnet/cruisecontrol/

L'intégration Continue avec Hudson

http://linsolas.developpez.com/articles/hudson/

Premiers pas dans l'industrialisation : TFS Basic

http://www.microsoft.com/france/vision/mstechdays10/Webcast.aspx?EID=1f3e8482-5dbf-

4c13-b779-b7b40d9235d8

Approches pragmatiques pour industrialiser le développement d’applications

http://blogs.microsoft.fr/clauer/archive/2005/11/12/14515.aspx

Professionnaliser sa gestion de projet -> ConclusionProfessionnaliser sa gestion de projet -> Conclusion

Page 47: 351veloppement pour ArcGIS, partie 1, Professionnaliser sa gestion de … · 2016-08-02 · Contexte Le génie logiciel Phase d’analyse Phase de développement: Des méthodes Phase

Merci

Le DocLud

WargDavid

ClaireLK

ChristelleBenoît

Et les autres

Pour leurs relectures et commentaires