48
Méthodologie de Méthodologie de développement développement

Méthodologie de développement

  • Upload
    gamba

  • View
    66

  • Download
    0

Embed Size (px)

DESCRIPTION

Méthodologie de développement. Plan. Introduction Le développement La qualité Le SCM La documentation Les tests unitaires Les builds. Introduction. A quoi servent les méthodologies ? Industrialisation Travail en équipe Gain de qualité/productivité. Le développement. Plan. L’IDE - PowerPoint PPT Presentation

Citation preview

Page 1: Méthodologie de développement

Méthodologie de Méthodologie de développementdéveloppement

Page 2: Méthodologie de développement

PlanPlan

• IntroductionIntroduction

• Le développementLe développement

• La qualitéLa qualité

• Le SCMLe SCM

• La documentationLa documentation

• Les tests unitairesLes tests unitaires

• Les buildsLes builds

Page 3: Méthodologie de développement

IntroductionIntroduction

A quoi servent les méthodologies ?A quoi servent les méthodologies ?

• IndustrialisationIndustrialisation

• Travail en équipeTravail en équipe

• Gain de qualité/productivitéGain de qualité/productivité

Page 4: Méthodologie de développement

Le développementLe développement

Page 5: Méthodologie de développement

PlanPlan

• L’IDEL’IDE

• Les normesLes normes

• Les design patternsLes design patterns

Page 6: Méthodologie de développement

L’IDEL’IDE

Visual Studio .net comme clef de voûte.Visual Studio .net comme clef de voûte.

• Architecture ouverteArchitecture ouverte

• Intellisense, RAD, connectivité, …Intellisense, RAD, connectivité, …

Page 7: Méthodologie de développement

L’IDEL’IDE

Alternatives à Visual Studio .netAlternatives à Visual Studio .net

• SharpDevelop/MonoDevelopSharpDevelop/MonoDevelop

• C# BuilderC# Builder

Page 8: Méthodologie de développement

Les normes Les normes

Indispensables en entreprise, elles Indispensables en entreprise, elles s’appliquent :s’appliquent :

• Au codeAu code

• A la structure du projetA la structure du projet

Page 9: Méthodologie de développement

Normes de codeNormes de code

Permettent une lecture commune.Permettent une lecture commune.

• Les différences de casseLes différences de casse

• Les règles de nomLes règles de nom

• Les règles de formeLes règles de forme

Page 10: Méthodologie de développement

La casseLa casse

Utilisation des majuscules, minuscules.Utilisation des majuscules, minuscules.

• Pascal casingPascal casing

• Camel casingCamel casing

Page 11: Méthodologie de développement

Les règles de nomLes règles de nom

Permettent d’identifier certains types :Permettent d’identifier certains types :

• public interface IDisposable {}public interface IDisposable {}

• public class CustomException {}public class CustomException {}

• public class CustomAttribute {}public class CustomAttribute {}

Page 12: Méthodologie de développement

Les règles de formeLes règles de forme

Elles permettent de spécifierElles permettent de spécifier

• La position des accoladesLa position des accolades

• L’espacement, la tabulationL’espacement, la tabulation

Page 13: Méthodologie de développement

La structure d’un projetLa structure d’un projet

Organisation hiérarchiqueOrganisation hiérarchique

• Les Entreprise Template ProjectsLes Entreprise Template Projects

Reste toujours le bon sens…Reste toujours le bon sens…

Page 14: Méthodologie de développement

Les design patternsLes design patterns

DéfinitionDéfinition

• ““Technique efficace et éprouvée de Technique efficace et éprouvée de conception orientée objetconception orientée objet““

Page 15: Méthodologie de développement

Catalogues de design patternsCatalogues de design patterns

Les objectifs ?Les objectifs ?

• L’identificationL’identification

• L’efficacitéL’efficacité

Page 16: Méthodologie de développement

Exemple de design patternExemple de design pattern

Comment s’assurer qu’il n’existe qu’une Comment s’assurer qu’il n’existe qu’une instance d’une classe : Le Singletoninstance d’une classe : Le Singleton

public class Singleton {

private Singleton() {} private static Singleton m_instance;

public static Singleton Instance { get { if (m_instance == null) m_instance = new Singleton(); return m_instance; } }}

Page 17: Méthodologie de développement

La qualitéLa qualité

Page 18: Méthodologie de développement

PlanPlan

Deux points à surveiller :Deux points à surveiller :

• Le designLe design

• Le codeLe code

Page 19: Méthodologie de développement

La qualité du designLa qualité du design

L’architecture logicielle : les fondations.L’architecture logicielle : les fondations.

• Architecture en couchesArchitecture en couches

• Casser le couplageCasser le couplage

• Séparation des responsabilitésSéparation des responsabilités

Page 20: Méthodologie de développement

Le design jusqu’à aujourd’huiLe design jusqu’à aujourd’hui

L’évolution des l’architectureL’évolution des l’architecture

• Le mono posteLe mono poste

• Le client serveurLe client serveur

• Le 3 tiersLe 3 tiers

Page 21: Méthodologie de développement

Le design de demainLe design de demain

Les évolutions à suivreLes évolutions à suivre

• Les architectures n-tiersLes architectures n-tiers

• Les Les Service Oriented ArchitectureService Oriented Architecture

• La programmation orientée aspectLa programmation orientée aspect

Page 22: Méthodologie de développement

Mesurer la qualitéMesurer la qualité

NDepend analyse la qualité de votre NDepend analyse la qualité de votre designdesign

• MétriquesMétriques

• GraphiquesGraphiques

Page 23: Méthodologie de développement

La qualité du codeLa qualité du code

Implique une vérification continueImplique une vérification continue

• Suit un ensemble de règlesSuit un ensemble de règles

• Nécessite une rigueur des Nécessite une rigueur des développeursdéveloppeurs

Page 24: Méthodologie de développement

Vérifier la qualitéVérifier la qualité

FxCop pour surveiller le bon respect des FxCop pour surveiller le bon respect des règlesrègles

• Utilise les règles du framework .netUtilise les règles du framework .net

• Permet de créer vos propres règlesPermet de créer vos propres règles

Page 25: Méthodologie de développement

Le SCMLe SCM(Source Control Management)(Source Control Management)

Page 26: Méthodologie de développement

PlanPlan

• Le principe du SCMLe principe du SCM

• Les principaux outilsLes principaux outils

Page 27: Méthodologie de développement

Le principe du SCMLe principe du SCM

Indispensable pour une équipe, il permet Indispensable pour une équipe, il permet en particulier de :en particulier de :

• Gérer les conflits d’accèsGérer les conflits d’accès

• Garde chaque version des fichiersGarde chaque version des fichiers

• Centraliser l’accès aux sourcesCentraliser l’accès aux sources

Page 28: Méthodologie de développement

Les actions du clientLes actions du client

Principales actions du client SCMPrincipales actions du client SCM

• checkout : récupérer un projet en localcheckout : récupérer un projet en local

• commit : envoyer une nouvelle version commit : envoyer une nouvelle version d’un fichierd’un fichier

• update : récupérer la dernière version update : récupérer la dernière version d’un fichierd’un fichier

Page 29: Méthodologie de développement

Le serveur de SCMLe serveur de SCM

• Le serveur doitLe serveur doit– Être sauvegardé– Gérer les droits d’accès des développeurs

• Ne doit pasNe doit pas– Être un poste de développement

Page 30: Méthodologie de développement

Les serveurs de SCMLes serveurs de SCM

Trois serveurs connus de SCM :Trois serveurs connus de SCM :

• Visual Source Safe (VSS)Visual Source Safe (VSS)

• Concurrent Versioning SystemConcurrent Versioning System (CVS) (CVS)

• Subversion (SVN)Subversion (SVN)

Page 31: Méthodologie de développement

Les clients SCMLes clients SCM

Les serveurs disposent de clients qui :Les serveurs disposent de clients qui :

• S’intègrent à Visual Studio .netS’intègrent à Visual Studio .net

• S’intègrent à l’explorerS’intègrent à l’explorer

Page 32: Méthodologie de développement

La documentationLa documentation

Page 33: Méthodologie de développement

Quid de la documentationQuid de la documentation

La documentation doit :La documentation doit :

• Être exhaustiveÊtre exhaustive

• Prendre place tout du long du cycle de Prendre place tout du long du cycle de vie du projetvie du projet

Page 34: Méthodologie de développement

De l’utilité de la documentationDe l’utilité de la documentation

Une bonne documentation du code va :Une bonne documentation du code va :

• Implicitement améliorer la qualité du Implicitement améliorer la qualité du code produitcode produit

• Faciliter le travail en équipeFaciliter le travail en équipe

• Rassurer tous les acteurs du projetRassurer tous les acteurs du projet

Page 35: Méthodologie de développement

Les commentaires XMLLes commentaires XML

Le compilateur C# et Visual Studio Le compilateur C# et Visual Studio permettent d’écrire des commentaires permettent d’écrire des commentaires sous forme XMLsous forme XML

• Activable par la saisie de ///Activable par la saisie de ///

• Permet l’exportation du fichier généré Permet l’exportation du fichier généré vers différents outilsvers différents outils

Page 36: Méthodologie de développement

L’outil NDocL’outil NDoc

• Génère une documentation type MSDNGénère une documentation type MSDN

• Prend en entrée un fichier XML VS.NetPrend en entrée un fichier XML VS.Net

• Peut s’intégrer dans un processus de Peut s’intégrer dans un processus de buildbuild

Page 37: Méthodologie de développement

Politique de testsPolitique de tests

Page 38: Méthodologie de développement

Le Le Test Driven DevelopmentTest Driven Development

Le TDD s’articule autour des tests Le TDD s’articule autour des tests unitairesunitaires

• ““ Code, faisant appel à une partie de Code, faisant appel à une partie de code, et analysant son comportementcode, et analysant son comportement ““

Page 39: Méthodologie de développement

Les tests unitairesLes tests unitaires

Le principe des tests unitaires :Le principe des tests unitaires :

• Classe simpleClasse simple

• Mock ObjectsMock Objects– Objets factices dont on contrôle le

comportement à des fins de test

Page 40: Méthodologie de développement

Les tests unitairesLes tests unitaires

D’un point de vue extrême :D’un point de vue extrême :

• Écrire les tests avant les classes ciblesÉcrire les tests avant les classes cibles– Solidifie le développement

• Coûteux en temps et en ressourcesCoûteux en temps et en ressources

Page 41: Méthodologie de développement

NUnitNUnit

Framework de tests unitaires .netFramework de tests unitaires .net

• Interface ConsoleInterface Console

• GUIGUI

• Plugin Visual Studio.NetPlugin Visual Studio.Net

Page 42: Méthodologie de développement

NUnitNUnit

Écrire une librairie de testsÉcrire une librairie de tests

• L’attribut [TextFixture()]L’attribut [TextFixture()]

• L’attribut [SetUp()]L’attribut [SetUp()]

• L’attribut [Test()]L’attribut [Test()]

Page 43: Méthodologie de développement

Processus de buildProcessus de build

Page 44: Méthodologie de développement

Quelle utilité ?Quelle utilité ?

Un processus de build permet de :Un processus de build permet de :

• D’effectuer toutes les étapes du projet D’effectuer toutes les étapes du projet de manière automatiquede manière automatique

• Effectuer ces étapes indépendamment Effectuer ces étapes indépendamment des outils utilisésdes outils utilisés

Page 45: Méthodologie de développement

NAntNAnt

Célèbre outil de buildCélèbre outil de build

• Inspiré du monde JavaInspiré du monde Java

• Grand nombre de tâches disponiblesGrand nombre de tâches disponibles– Compilation– Extraction SCM– Lancement des tests unitaires, …

Page 46: Méthodologie de développement

Le serveur de buildLe serveur de build

Ce dernier permet de :Ce dernier permet de :

• Centraliser les traitementsCentraliser les traitements

• Favoriser la correction des erreursFavoriser la correction des erreurs

Page 47: Méthodologie de développement

RécapitulatifRécapitulatif

Page 48: Méthodologie de développement

Les étapesLes étapes

• Extraction SCMExtraction SCM

• ÉÉcriture d’un code normalisécriture d’un code normalisé

• Vérification du codeVérification du code

• DocumentationDocumentation

• Tests unitairesTests unitaires

• Archivage SCMArchivage SCM