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
Méthodologie de Méthodologie de développementdé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
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é
Le développementLe développement
PlanPlan
• L’IDEL’IDE
• Les normesLes normes
• Les design patternsLes design patterns
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é, …
L’IDEL’IDE
Alternatives à Visual Studio .netAlternatives à Visual Studio .net
• SharpDevelop/MonoDevelopSharpDevelop/MonoDevelop
• C# BuilderC# Builder
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
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
La casseLa casse
Utilisation des majuscules, minuscules.Utilisation des majuscules, minuscules.
• Pascal casingPascal casing
• Camel casingCamel casing
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 {}
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
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…
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““
Catalogues de design patternsCatalogues de design patterns
Les objectifs ?Les objectifs ?
• L’identificationL’identification
• L’efficacitéL’efficacité
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; } }}
La qualitéLa qualité
PlanPlan
Deux points à surveiller :Deux points à surveiller :
• Le designLe design
• Le codeLe code
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
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
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
Mesurer la qualitéMesurer la qualité
NDepend analyse la qualité de votre NDepend analyse la qualité de votre designdesign
• MétriquesMétriques
• GraphiquesGraphiques
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
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
Le SCMLe SCM(Source Control Management)(Source Control Management)
PlanPlan
• Le principe du SCMLe principe du SCM
• Les principaux outilsLes principaux outils
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
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
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
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)
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
La documentationLa documentation
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
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
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
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
Politique de testsPolitique de tests
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 ““
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
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
NUnitNUnit
Framework de tests unitaires .netFramework de tests unitaires .net
• Interface ConsoleInterface Console
• GUIGUI
• Plugin Visual Studio.NetPlugin Visual Studio.Net
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()]
Processus de buildProcessus de build
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
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, …
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
RécapitulatifRécapitulatif
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