Comment Microsoft participe à la réussite du développement logiciel

En tant que l'une des entreprises de logiciels les plus importantes au monde, Microsoft met un point d'honneur à aider les équipes de développeurs à être efficaces. Ce document présente un vaste choix d'outils, d'environnements de développement, d'infrastructures, d'échantillons de code et de conseils de Microsoft, couvrant tous les aspects du cycle de vie du développement logiciel. Il permet aux individus et aux équipes de concevoir, de créer et de déployer de grands logiciels.

La figure 1 montre le cycle de vie du développement logiciel, de la collecte initiale des exigences du client au lancement du logiciel et à son développement, sa maintenance et ses modifications post-déploiement effectuées de manière itérative et continue. 

Cycle de vie du développement logiciel

Figure 1. Le cycle de vie du développement logiciel

Les sections suivantes sont consacrées à chacun des principaux domaines du cycle de vie du développement logiciel et vous aideront à comprendre les outils et technologies disponibles chez Microsoft et la manière dont ils peuvent vous aider à chaque étape de la conception et du processus de développement.

Planification et analyse des exigences

Cette tâche est généralement associée à l'architecture, mais les équipes de développement sont responsables de la conversion des exigences du client dans une conception pratique pouvant être implémentée dans les contraintes de temps et d'argent et fonctionnant correctement sur le matériel et l'infrastructure disponibles.

La collecte et l'analyse des exigences constitue la première étape, qui implique généralement des outils et applications tels que les programmes Microsoft Office Word et Excel, Visio, Project, etc. Ces exigences peuvent être fournies sous forme de documents, de diagrammes, de schémas, de modèles et de descriptions de l'environnement d'exécution. Microsoft Project et Microsoft Excel sont des outils parfaits pour la planification d'échelles de temps et l'évaluation du coût des projets de développement lors de cette étape initiale. La figure 2 montre un exemple de planification d'un projet à l'aide de Microsoft Project.

Outils de planification et d'évaluation des coûts de Project 

Figure 2. Outils de planification et d'évaluation des coûts de Microsoft Project

Architecture, conception et modélisation

 Lorsque la conception devient plus détaillée, Microsoft Visual Studio comprend une série d'outils facilitant la conception de l'architecture d'une application et la création d'un modèle et de dépendances de déploiement. Cette application peut être utilisée pour modéliser la conception globale et la distribution des composants, puis la superposer à un modèle de l'infrastructure matérielle pour valider la faisabilité de la conception. Elle peut également être utilisée pour générer des diagrammes de dépendance et d'interconnexion de composants, ainsi que des schémas de base de données de modèle à l'intérieur d'un plan détaillé. La figure 3 montre le concepteur de modèle de Visual Studio 2010.

Outils d'architecture et de modélisation de Visual Studio 

Figure 3. Outils d'architecture et de modélisation de Visual Studio

Microsoft propose également des conseils pouvant être utiles lors de la phase de conception. Il s'agit de conseils généraux sur les bonnes pratiques en matière d'architecture, d'informations sur les conceptions classiques de différents types d'applications et d'aide pour évaluer les compromis nécessaires pour que le logiciel réponde aux exigences. La figure 4 montre par exemple une architecture contemporaine classique des applications. Toutes les applications ne contiennent pas l'ensemble de ces fonctionnalités.

Architecture d'application par couches classique

Figure 4. Architecture d'application par couches classique

Des conseils plus détaillés sur la conception d'applications utilisant des technologies spécifiques sont également disponibles, et vont de directives sur les exigences du réseau et de l'infrastructure à des informations plus spécifiques sur les facteurs de déploiement et d'administration pouvant affecter la conception. Par exemple, la documentation des systèmes d'exploitation Windows comprend des conseils sur la disposition du réseau, le placement du serveur, la configuration du système requise et les éléments de déploiement à prendre en compte pour les applications s'exécutant sur le serveur. Tous ces conseils sont importants lors de la conception d'applications logicielles s'exécutant sur la plateforme Microsoft.

Technologies, outils et langages de développement

Microsoft propose une série d'outils et d'environnements de développement conçus pour rendre la rédaction de code pour les nombreux types d'application et les nombreuses technologies plus facile et plus efficace. Le choix de l'environnement de développement dépend du type d'application créée et des langages de programmation utilisés. La figure 5 montre certains des outils et environnements de développement, des technologies, et des langages de programmation disponibles chez Microsoft, ainsi que les types d'applications auxquelles ils sont destinés.

Certains des outils, technologies et langages accessibles aux développeurs 

Figure 5. Certains des outils, technologies et langages disponibles lors du développement

Bien qu'il existe de nombreuses combinaisons différentes de technologies et de langages, la plupart des applications sont conçues pour s'exécuter sur Microsoft .NET Framework. Il s'agit d'une couche située en haut du système d'exploitation et du matériel et fournissant une plateforme plus unifiée pour le code. Quel que soit le langage de programmation .NET utilisé (C# ou Visual Basic par exemple), le code effectue une compilation vers un format standard appelé Microsoft Intermediate Language (MSIL), qui est exécuté par les composants d'exécution de .NET Framework. La figure 6 montre l'architecture et le processus.

Compilation et exécution de code sur .NET Framework

Figure 6. Compilation et exécution de code sur .NET Framework

Cette normalisation de l'infrastructure de développement et d'exécution facilite la rédaction de code car elle masque la majeure partie de la complexité des systèmes sous-jacents. Elle permet également de travailler plus facilement dans différents langages car ils utilisent tous le même ensemble standard de bibliothèques de code, d'objets et d'interfaces de programmation.

Rédaction, compilation et test du code

En termes de développement, Microsoft Visual Studio constitue l'outil principal. Il est disponible dans différentes versions, notamment les éditions Express gratuites pour des types d'applications spécifiques. Visual Studio propose un environnement de développement intégré (IDE, Integrated Development Environment) pouvant être utilisé pour créer des projets et des solutions, rédiger du code, le compiler et l'exécuter, le déboguer, et corriger les erreurs. Visual Studio contient des modèles pour de nombreux types d'applications classiques. Des types supplémentaires sont également pris en charge par les modèles et les infrastructures téléchargeables. La figure 7 montre certains types d'applications.

Sélection d'un type de projet d'application dans Visual Studio 2010 

Figure 7. Sélection d'un type de projet d'application dans Visual Studio 2010

Rédaction de code dans Visual Studio

Visual Studio comprend de nombreuses fonctionnalités facilitant le processus de développement. Vous y trouverez notamment des listes d'objets, de classes et de membres de classes contextuelles, des fonctionnalités d'aide et une documentation intégrées, des assistants pour les tâches courantes, ainsi qu'une assistance complète pour la personnalisation et l'ajout d'outils supplémentaires. Visual Studio est suffisamment puissant pour remplir toutes les tâches clés des développeurs, qui peuvent ajouter leurs plug-ins favoris pour améliorer encore plus leur productivité lors de la création d'applications. La figure 8 montre l'environnement de développement intégré (IDE) pour la création d'applications Silverlight dans Visual Studio.

Développement d'une application Silverlight dans Visual Studio 2010 

Figure 8. Développement d'une application Silverlight dans Visual Studio 2010

Visual Studio comporte des types d'applications bien plus vastes que les applications Web, de bureau, dans le Cloud et pour téléphone courantes. Vous pouvez par exemple l'utiliser pour développer des bibliothèques de classes, des infrastructures, des composants et des extensions pour les applications Office, de type workflow et SharePoint. La figure 9 montre l'environnement de développement des applications SharePoint.

Développement d'une application SharePoint dans Visual Studio 2010 

Figure 9. Développement d'une application SharePoint dans Visual Studio 2010

La plupart des applications professionnelles utilisent une base de données comme source d'information. Visual Studio contient donc des outils facilitant la création de bases de données, la conception de schémas pour les tables, la création de relations, et même le remplissage des tables avec des échantillons de données pour effectuer des tests. Il peut se connecter avec la plupart des serveurs de base de données courants, notamment la gamme complète des éditions de base de données Microsoft SQL Server. La figure 10 montre la manière dont Visual Studio aide à rédiger des procédures stockées pour une base de données.

Utilisation d'une base de données dans Visual Studio 2010 

Figure 10. Utilisation d'une base de données dans Visual Studio 2010

Lorsque vous développez, vous avez souvent besoin d'interagir avec des composants et des infrastructures rédigés par d'autres équipes de développement ou obtenus de fournisseurs tiers. Il est donc utile de comprendre les interfaces et d'être capable d'examiner la structure d'objet de ces composants et infrastructures. Visual Studio comprend des fonctionnalités permettant de parcourir les classes, les objets, les composants et les infrastructures, notamment les classes composant la bibliothèque de classes .NET. La figure 11 montre l'Explorateur d'objets de Visual Studio.

Explorateur d'objets de Visual Studio 2010 

Figure 11. L'Explorateur d'objets de Visual Studio 2010

Débogage, suivi et test dans Visual Studio

Certaines versions de Visual Studio comprennent également des outils permettant d'exécuter des tests d'unités, de profiler le code afin d'optimiser l'efficacité d'exécution et de visualiser la manière dont le code s'exécute sur le matériel sous-jacent. La figure 12 montre par exemple les fonctionnalités d'analyse de code d'exécution de Visual Studio en action.

Visual Studio 2010 affichant l'analyse du code à mesure de son exécution 

Figure 12. Microsoft Visual Studio 2010 affichant l'analyse du code à mesure de son exécution

Visual Studio vous aide également à découvrir et à corriger les erreurs dans le code qui surviennent lors de sa compilation et lors de son exécution. Le compilateur génère des messages d'avertissement et d'erreur détaillés vous permettant d'éviter les types d'erreur courants et de mettre à jour le code afin de corriger les erreurs. Le mécanisme de détection est puissant et configurable. Vous pouvez ainsi choisir quels types d'avertissements, n'empêchant pas le code d'effectuer une compilation mais pouvant affecter les performances, sont signalés. La figure 13 montre la liste d'erreurs affichée par Visual Studio lors de la compilation d'une application.

La liste d'erreurs du compilateur de Microsoft Visual Studio 2010 

Figure 13. La liste d'erreurs du compilateur de Microsoft Visual Studio 2010

L'une des tâches les plus difficiles lors du débogage d'une application consiste à rechercher à quel endroit une erreur se produit. En plus du mode d'exécution ligne par ligne classique qui permet de parcourir le code à mesure de son exécution, Visual Studio 2010 comprend la fonctionnalité IntelliTrace, qui permet de récolter beaucoup plus d'informations sur le processus d'exécution et de répéter les circonstances ayant généré l'erreur. La figure 14 montre la fonctionnalité IntelliTrace de Visual Studio.

Fonctionnalité IntelliTrace de Visual Studio en action 

Figure 14. La fonctionnalité IntelliTrace de Visual Studio en action

Déploiement d'applications avec Visual Studio

Visual Studio contient une série d'outils et de fonctionnalités vous permettant de concevoir des packages d'installation et de déploiement, ainsi que de déployer directement les applications. La compilation pour la publication comprend des fonctionnalités permettant d'indiquer toutes les informations requises pour les assemblys et les ressources. Elle peut également obscurcir le code de manière à le rendre plus difficile à rétroconcevoir, créer des packages Microsoft Installer (MSI), créer des fichiers d'aide et concevoir de nombreux autres types de packages de déploiement. Pour les applications déployées directement vers un hôte d'exécution, telles que les applications Web, Visual Studio inclut des outils de déploiement Web, illustrés dans la figure 15.

Options de déploiement Web dans Visual Studio 2010 

Figure 15. Options de déploiement Web dans Visual Studio 2010

Autres outils de développement de code

Il existe d'autres outils et environnements de développement pour des tâches, des types d'applications ou des scénarios de développement plus spécifiques. Par exemple, Microsoft WebMatrix (illustré dans la figure 16) est un outil gratuit de création d'applications et de sites Web utilisant la technologie ASP.NET Web Pages. WebMatrix peut concevoir des applications en C#, en Visual Basic ou dans d'autres langages non Microsoft tels que le PHP. Il fournit également un environnement intégré comprenant des fonctionnalités permettant d'utiliser des bases de données et de déployer l'application sur un fournisseur d'hébergement Internet.

Environnement de développement WebMatrix pour les applications et sites Web 

Figure 16. Environnement de développement WebMatrix pour les applications et sites Web

Pour le développement d'applications fonctionnant sur Windows Phone, vous pouvez utiliser les outils de développement Windows Phone gratuits. Ils comprennent une version spécifiquement personnalisée de Visual Studio, ainsi que d'autres outils tels qu'un environnement de développement XNA pour la programmation de jeux, Expression Blend pour la création d'interfaces interactives, des utilitaires de déploiement d'applications sur téléphone et des modèles intégrant les versions complètes de Visual Studio. La figure 17 montre une application Silverlight pour Windows Phone en cours de développement.

Développement d'une application Silverlight pour Windows Phone 

Figure 17. Développement d'une application Silverlight pour Windows Phone

Expression Blend fait partie d'une famille d'outils destinée aux concepteurs graphiques et d'interfaces d'application, mais ces outils sont couramment utilisés pour les tâches de développement. Expression Blend propose par exemple un environnement de développement complet pour les applications de bureau, Web et pour téléphone Silverlight incluant des transitions et d'autres effets graphiques, compositionnels et de mouvement. La figure 18 montre le développement d'une application pour Windows Phone dans Expression Blend.

Conception d'une application Silverlight pour Windows Phone dans Expression Blend 

Figure 18. Conception d'une application Silverlight pour Windows Phone dans Expression Blend

Parmi les nombreux autres outils de développement, on retrouve ceux permettant de vérifier la validité du code, d'effectuer une analyse et des diagnostics d'exécution et de créer des packages de déploiement et de documentation. Même des applications telles qu'Internet Explorer contiennent des outils de développement pouvant être utiles lors du débogage et du test d'applications Web et de code script côté client.   

Enfin, Microsoft propose un large choix de documentation et de conseils sur tous les outils, les technologies et les langages de développement. Microsoft Developer Network (MSDN) constitue la principale source d'informations pour les individus et les équipes réalisant des tâches de développement. Il comprend une documentation conceptuelle permettant de comprendre les technologies, ainsi que des conseils ciblés sur l'utilisation des outils et des langages. Tous les portails des différentes technologies contiennent des vidéos, des guides de procédures pas-à-pas, des échantillons de code et des implémentations de référence facilitant l'apprentissage des technologies et permettant aux développeurs de se mettre à la page plus rapidement.

Révisions, gestion du projet et du code et génération de rapports

Lorsqu'ils travaillent en équipe, les individus doivent partager et suivre les informations dans l'équipe et la gestion de projet. Microsoft fournit des outils et des conseils permettant aux individus d'être efficaces dans un environnement d'équipe, d'accélérer le développement et de gérer son cycle de vie. Team Foundation Server (TFS) et SharePoint Server constituent les principaux outils pour cela. Ce sont tous deux des référentiels pouvant gérer le contrôle de version, fournir un accès à différents réseaux et vous aider à ne pas vous éloigner des objectifs d'un projet.

Team Foundation Server est principalement destiné aux tâches de gestion de projet et de développement. Il contient une quantité de fonctions de création de référentiels de code avec un contrôle de version complet, des fonctionnalités d'archivage et de consultation, des liens et des dérivés de code permettant des générations régulières de l'application entière. Il propose également des éléments de travail fondés sur des modèles configurables, le workflow, la génération de rapports, ainsi que de nombreux autres fonctionnalités associées. Il s'agit d'un environnement idéal pour les applications importantes et complexes lors du développement, mais fonctionne tout aussi bien pour les équipes et les projets plus petits.

Les membres d'une équipe se connectent à TFS depuis Visual Studio ou d'autres outils compatibles, et celui-ci gère automatiquement l'archivage et la consultation de fichiers, l'accès en lecture seule aux fichiers et la capacité de créer et de se connecter aux instantanés du référentiel (tel qu'illustré dans la figure 19).

Connexion à Team Foundation Server via Visual Studio 2010 

Figure 19. Connexion à Team Foundation Server via Visual Studio 2010

Lors de la phase de conception initiale de l'application et tout au long du cycle de vie du développement, différents membres de l'équipe créent et gèrent des récits dans TFS, décrivant les tâches, les commentaires, les plans, ainsi que toute autre information utile sur le projet. Ces récits peuvent contenir des approximations de durées et des informations de réalisation afin que les individus et les responsables puissent voir d'un seul coup d'œil l'état du cycle de développement du projet. La figure 20 montre la page d'aperçu des récits d'un projet dans TFS.

Utilisation des récits dans TFS pour contrôler et gérer le cycle de développement 

Figure 20. Utilisation des récits dans TFS pour contrôler et gérer le cycle de développement

TFS peut également fournir une quantité d'informations sur la progression globale, le statut de la génération et les bogues du logiciel via une série de portails. Il est particulièrement utile pour contrôler la qualité du logiciel d'après les plans de test et les erreurs trouvées à n'importe quelle étape du processus de développement. La figure 21 montre certains des rapports graphiques pouvant être générés dans TFS.

Utilisation de TFS pour contrôler la qualité du logiciel en cours de développement 

Figure 21. Utilisation de TFS pour contrôler la qualité du logiciel en cours de développement

SharePoint est le second type de référentiel disponible chez Microsoft. Il s'agit principalement d'un référentiel de documents et d'informations, davantage destiné à la gestion de la documentation d'un projet. Il propose des fonctionnalités d'intégration avec de nombreuses applications Microsoft Office, ce qui fait de lui un référentiel idéal pour les architectes, les concepteurs et les chefs de projet tout au long du cycle de vie de développement du logiciel. Il fournit également une quantité de modèles de référentiels intégrés et téléchargeables, des fonctionnalités de personnalisation complètes, ainsi qu'une disponibilité sur les réseaux et Internet pour un large accès des équipes réparties. La figure 22 montre l'utilisation de SharePoint en tant que référentiel de documentation.

SharePoint en tant que référentiel de documents et d'informations 

Figure 22. SharePoint en tant que référentiel de documents et d'informations

Résumé

Microsoft propose un vaste choix de logiciels et d'outils de prise en charge des processus de conception, de développement et de déploiement d'un logiciel. Des outils permettent aux architectes et aux concepteurs de modéliser des applications et des environnements d'exécution, de gérer la documentation et d'interagir avec les intervenants.

Concernant les tâches de développement, des outils et des environnements de développement spécialisés autonomes ou intégrés fournissent le niveau d'assistance, de simplicité d'utilisation et d'extensibilité le plus élevé afin de simplifier au maximum toutes les étapes du processus. Des outils permettent de rédiger du code et d'utiliser des bases de données, ainsi que de compiler, de tester, de suivre et de déboguer le code.

D'autres outils et environnements utilisés tout au long du processus de développement comprennent des référentiels de code et de documents, des outils de gestion de projet et des outils de génération de rapports. En outre, Microsoft propose un large choix de types de conseils pour les tâches d'architecture, de développement, d'administration et de test afin d'aider à concevoir, à créer et à exécuter de meilleurs logiciels.