Como a Microsoft ajuda no sucesso do desenvolvimento de software

Como uma das maiores empresas de software do mundo, a Microsoft está muito empenhada em auxiliar equipes de desenvolvedores a serem bem-sucedidas. Este documento apresenta uma visão geral da imensa gama de ferramentas, ambientes de desenvolvimento, estruturas, exemplos de código e orientações da Microsoft que cobrem todos os aspectos do ciclo de vida do desenvolvimento de software e ajudam profissionais e equipes a projetar, criar e implantar software de excelente qualidade.

A Figura 1 mostra o ciclo de vida do desenvolvimento de software, desde a coleta inicial dos requisitos do cliente até o lançamento do software e o desenvolvimento, a manutenção, e a modificação iterativos e contínuos após a implantação. 

ciclo de vida do desenvolvimento de software

Figura 1. O ciclo de vida do desenvolvimento de software

As próximas seções concentram-se em cada uma das principais áreas do ciclo de vida do desenvolvimento de software e ajudarão você a compreender as tecnologias e ferramentas disponíveis da Microsoft e como elas podem auxiliar em cada etapa do processo de design e desenvolvimento.

Planejamento e análise de requisitos

Embora essa seja uma tarefa normalmente relacionada à arquitetura, as equipes de desenvolvimento terão a responsabilidade de transformar os requisitos do cliente em um design prático que possa ser implementado dentro das restrições de custo e de prazo e que funcione bem no hardware e na infraestrutura disponíveis.

Coletar e analisar os requisitos é a primeira etapa e geralmente envolve ferramentas e aplicativos como os programas do Microsoft Office Word, Excel, Visio, Project, entre outros. Os requisitos podem ser fornecidos como documentos, diagramas, esquemas, modelos e descrições do ambiente de tempo de execução. O Microsoft Project e o Microsoft Excel são ferramentas ideais para planejar escalas de tempo e orçar projetos de desenvolvimento nessa etapa inicial. A Figura 2 mostra um exemplo de como planejar um projeto usando o Microsoft Project.

Ferramentas de planejamento e de orçamento de projeto 

Figura 2. Ferramentas de planejamento e de orçamento de projeto da Microsoft

Arquitetura, design e modelagem

 Quando é necessário um design mais detalhado, o Microsoft Visual Studio tem uma série de ferramentas que facilitam o projeto da arquitetura de um aplicativo e a criação de dependências de modelo e de implantação. Ele pode ser utilizado para modelar o design geral e a distribuição dos componentes e, depois, sobrepor isso em um modelo da infraestrutura de hardware para validar a viabilidade do design. Ele também pode ser usado para gerar dependência de componente e diagramas de interconexão e para modelar esquemas de banco de dados como parte do plano detalhado. A Figura 3 mostra o designer de modelos do Visual Studio 2010.

Ferramentas de arquitetura e modelagem do Visual Studio 

Figura 3. Ferramentas de arquitetura e modelagem do Visual Studio

A Microsoft também oferece orientação para auxiliar na etapa de design. Isso inclui orientação geral sobre boas práticas de arquitetura, informações a respeito dos designs típicos para diferentes tipos de aplicativos e ajuda na avaliação das compensações necessárias para assegurar que o software atenda aos requisitos. Por exemplo, a Figura 4 mostra uma arquitetura contemporânea típica para aplicativos. Nem todos os aplicativos conterão todos esses recursos.

Arquitetura típica de aplicativo em camadas

Figura 4. Arquitetura típica de aplicativo em camadas

Uma orientação mais detalhada sobre o design de aplicativos para usar determinadas tecnologias também está disponível e abrange desde recomendações sobre requisitos de rede e infraestrutura até informações mais específicas a respeito de fatores de implantação e administração que podem afetar o design. Por exemplo, a documentação dos sistemas operacionais Windows inclui orientação sobre layout de rede, posicionamento de servidores, requisitos de sistema e considerações de implantação referentes aos aplicativos que serão executados no servidor. Tudo isso é importante para projetar aplicativos que serão executados na plataforma Microsoft.

Tecnologias, ferramentas e linguagens de desenvolvimento

A Microsoft oferece uma série de ferramentas e ambientes de desenvolvimento projetados para tornar a criação de código para as inúmeras tecnologias e tipos de aplicativo mais fácil e eficiente. A escolha do ambiente de desenvolvimento depende do tipo de aplicativo que está sendo criado e das linguagens de código utilizadas. A Figura 5 mostra algumas ferramentas e ambientes de desenvolvimento, tecnologias e linguagens de desenvolvimento da Microsoft que estão disponíveis, bem como os tipos de aplicativos para os quais se destinam.

Algumas das tecnologias, ferramentas e linguagens disponíveis para desenvolvedores 

Figura 5. Algumas das tecnologias, ferramentas e linguagens utilizadas durante o desenvolvimento

Apesar de existirem muitas combinações diferentes de tecnologias e linguagens, a maioria dos aplicativos são criados para execução no Microsoft .NET Framework. Trata-se de uma camada sobre o sistema operacional e o hardware que propicia uma plataforma mais unificada para código. Independentemente da linguagem de código .NET usada (como C# ou Visual Basic), o código é compilado em um formato padrão chamado MSIL (Microsoft Intermediate Language) executado pelos componentes de tempo de execução do .NET Framework. A Figura 6 mostra a arquitetura e o processo.

Compilação e execução de código no .NET Framework

Figura 6. Compilação e execução de código no .NET Framework

Essa padronização da estrutura de desenvolvimento e tempo de execução facilita a criação do código, pois oculta grande parte da complexidade dos sistemas paralelos. Ela também facilita o trabalho em diferentes linguagens porque todas elas usam o mesmo conjunto padrão de bibliotecas de código, objetos e interfaces de programação.

Criação, compilação e teste do código

Em termos de desenvolvimento, o Microsoft Visual Studio é a principal ferramenta. Ele está disponível em diversas versões, inclusive nas edições Express gratuitas de determinados tipos de aplicativos. O Visual Studio disponibiliza um ambiente de desenvolvimento integrado (IDE) que pode ser utilizado para criar projetos e soluções e para criar, compilar, executar e depurar o código e resolver erros. O Visual Studio contém modelos para muitos tipos de aplicativos comuns e tipos adicionais suportados pelos modelos e estruturas disponíveis para download. A Figura 7 mostra alguns desses tipos de aplicativos.

Selecionando um tipo de projeto de aplicativo no Visual Studio 2010 

Figura 7. Selecionando um tipo de projeto de aplicativo no Visual Studio 2010

Escrevendo código no Visual Studio

O Visual Studio tem muitos recursos que ajudam no processo de desenvolvimento. Entre eles estão listas pop-up de objetos, classes e membros de classe, recursos de ajuda e documentação integrados, assistentes para realizar tarefas comuns e suporte completo para personalizar e conectar outras ferramentas. O Visual Studio é robusto o suficiente para realizar todas as tarefas básicas de desenvolvimento, adicionando seus plug-ins favoritos para melhorar ainda mais a produtividade na criação de aplicativos. A Figura 8 mostra o IDE para criar aplicativos Silverlight no Visual Studio.

Desenvolvendo um aplicativo Silverlight no Visual Studio 2010 

Figura 8. Desenvolvendo um aplicativo Silverlight no Visual Studio 2010

Os tipos de aplicativo disponíveis no Visual Studio incluem muito mais do que os aplicativos comuns para Web, área de trabalho, nuvem e telefone. Ele pode ser usado, por exemplo, para desenvolver bibliotecas de classes, estruturas, componentes e extensões para aplicativos do Office, aplicativos baseados em fluxo de trabalho e aplicativos SharePoint. A Figura 9 mostra o ambiente de desenvolvimento para aplicativos SharePoint.

Desenvolvendo um aplicativo SharePoint no Visual Studio 2010 

Figura 9. Desenvolvendo um aplicativo SharePoint no Visual Studio 2010

A maioria dos aplicativos de negócios usam um banco de dados como fonte de informação, e o Visual Studio inclui ferramentas que facilitam a criação de bancos de dados, o design dos esquemas para tabelas, a criação de relações e até mesmo o preenchimento de tabelas com dados de exemplo para fins de teste. Ele pode se conectar à maioria dos servidores de bancos de dados comuns, incluindo toda a gama de edições de banco de dados do Microsoft SQL Server. A Figura 10 mostra como o Visual Studio ajuda a criar procedimentos armazenados para um banco de dados.

Trabalhando com um banco de dados no Visual Studio 2010 

Figura 10. Trabalhando com um banco de dados no Visual Studio 2010

No trabalho de desenvolvimento, muitas vezes você precisa fazer a interface com componentes e estruturas criados por outras equipes de desenvolvimento ou adquiridos de outros fornecedores. Conhecer as interfaces e investigar a estrutura de objeto desses componentes e estruturas é muito útil. O Visual Studio tem recursos para localizar classes, objetos, componentes e estruturas, inclusive as classes que compõem a biblioteca de classes do .NET. A Figura 11 mostra o Visual Studio.

Pesquisador de Objetos do Visual Studio 2010 

Figura 11. O Pesquisador de Objetos do Visual Studio 2010

Depuração, rastreamento e teste no Visual Studio

Dependendo da versão, o Visual Studio também inclui ferramentas para executar testes de unidade, moldar o código para maximizar a eficiência do tempo de execução e ver como o código é executado no hardware paralelo. A Figura 12 mostra os recursos de análise do código em tempo de execução do Visual Studio em ação.

O Visual Studio 2010 mostrando a execução da análise de código 

Figura 12. O Microsoft Visual Studio 2010 mostrando a execução da análise de código

O Visual Studio também ajuda a descobrir e corrigir erros no código que ocorrem durante a compilação e no tempo de execução. O compilador gera mensagens de erro e avisos detalhados que ajudam a evitar tipos comuns de erro e atualizar o código para corrigi-los. O mecanismo de detecção é eficaz e pode ser configurado, o que permite escolher quais tipos de avisos que não impedem a compilação do código, mas podem afetar o desempenho, sejam comunicados. A Figura 13 mostra a lista de erros que o Visual Studio exibe ao compilar um aplicativo.

A lista de erros do compilador do Microsoft Visual Studio 2010 

Figura 13. A lista de erros do compilador do Microsoft Visual Studio 2010

Uma das tarefas mais difíceis da depuração de um aplicativo é encontrar o local onde ocorre um erro. Assim como o modo de execução linha a linha comum que permite passar pelo código enquanto ele é executado, o Visual Studio 2010 tem o recurso IntelliTrace, que permite coletar muito mais informações sobre o processo de execução e repetir as circunstâncias que causaram o erro. A Figura 14 mostra o recurso IntelliTrace do Visual Studio.

O IntelliTrace do Visual Studio em ação 

Figura 14. O IntelliTrace do Visual Studio em ação

Implantando aplicativos com o Visual Studio

O Visual Studio contém uma gama de ferramentas e recursos que ajudam a criar pacotes de instalação e de implantação e implantar aplicativos diretamente. A compilação para liberação inclui recursos para especificar todas as informações necessárias para os assemblies e recursos e pode obscurecer o código para dificultar bastante os processos de engenharia reversa, criação de pacotes MSI (Microsoft Installer), criação de arquivos de ajuda e compilação de vários outros tipos de pacotes de implantação. Para aplicativos que são implantados diretamente em um host de tempo de execução, como aplicativos Web, o Visual Studio inclui as ferramentas de implantação da Web, mostradas na Figura 15.

Opções de implantação da Web disponíveis no Visual Studio 2010 

Figura 15. Opções de implantação da Web disponíveis no Visual Studio 2010

Outras ferramentas de desenvolvimento de código

Existem outros ambientes e ferramentas de desenvolvimento disponíveis para tarefas mais específicas, tipos de aplicativos ou determinados cenários de desenvolvimento. Por exemplo, o Microsoft WebMatrix (Figura 16) é uma ferramenta gratuita para criar sites e aplicativos Web usando a tecnologia de páginas da Web do ASP.NET. O WebMatrix pode criar aplicativos em C#, Visual Basic ou em outras linguagens que não foram desenvolvidas pela Microsoft, como PHP. Ele também oferece um ambiente integrado que inclui recursos para trabalhar com bancos de dados e implantar o aplicativo em um provedor de hospedagem na Web.

Ambiente de desenvolvimento do WebMatrix para sites e aplicativos Web 

Figura 16. Ambiente de desenvolvimento do WebMatrix para sites e aplicativos Web

Para desenvolver aplicativos que executem no Windows Phone, você pode usar as Ferramentas de Desenvolvimento do Windows Phone, que são gratuitas. Elas incluem uma versão personalizada especial do Visual Studio e outras ferramentas, como um ambiente de desenvolvimento XNA para programação de jogos, o Expression Blend para criar interfaces interativas, utilitários para implantar aplicativos no telefone e modelos que se integram às versões completas do Visual Studio. A Figura 17 mostra um aplicativo Silverlight para Windows Phone em desenvolvimento.

Desenvolvendo um aplicativo Silverlight para Windows Phone 

Figura 17. Desenvolvendo um aplicativo Silverlight para Windows Phone

O Expression Blend é um dos componentes de uma família de ferramentas voltadas para designers gráficos e de interface de aplicativo, mas normalmente essas ferramentas são usadas para tarefas de desenvolvimento. Por exemplo, o Expression Blend oferece um ótimo ambiente de desenvolvimento para aplicativos Silverlight para área de trabalho, Web e telefone que incluem transições e outros efeitos gráficos de movimento e composição. A Figura 18 mostra o desenvolvimento de um aplicativo para Windows Phone no Expression Blend.

Criando uma interface de aplicativo Silverlight para Windows Phone no Expression Blend 

Figura 18. Criando uma interface de aplicativo Silverlight para Windows Phone no Expression Blend

Entre as muitas outras ferramentas de desenvolvimento, estão aquelas usadas para verificar a validade de um código, fazer análise e diagnóstico do tempo de execução e criar pacotes de implantação e de documentação. Até mesmo aplicativos como o Internet Explorer contêm ferramentas de desenvolvimento que podem ser úteis para depurar e testar código de script de cliente e aplicativos Web.   

Para finalizar, a Microsoft disponibiliza uma infinidade de documentações e orientações sobre todas as ferramentas, tecnologias e linguagens de desenvolvimento. O Microsoft Developer Network (MSDN) é a principal fonte de informação para profissionais e equipes que executam tarefas de desenvolvimento. Ele inclui documentação conceitual que ajuda a compreender as tecnologias e orientação direcionada sobre como usar as ferramentas e linguagens. Todos os portais das diferentes tecnologias incluem vídeos, guias com orientações passo a passo, código de exemplo e implementações de referência que facilitam o aprendizado da tecnologia e ajudam os desenvolvedores a começar a trabalhar rapidamente.

Análises, gerenciamento de projetos e de código e relatórios

Quando trabalham fazendo parte de uma equipe, as pessoas devem compartilhar informações e trabalhar com elas no gerenciamento de projetos e equipes. A Microsoft oferece ferramentas e orientação para ajudar os profissionais a ser bem-sucedidos em um ambiente de equipe, acelerar o desenvolvimento e gerenciar o ciclo de vida do desenvolvimento. As principais ferramentas usadas para essa finalidade são o TFS (Team Foundation Server) e o SharePoint Server. Ambas são repositórios que podem gerenciar o controle de versão, fornecer acesso em diferentes redes e ajudar a manter um projeto dentro dos objetivos.

O principal objetivo do Team Foundation Server são as tarefas de gerenciamento de projetos e de desenvolvimento. Ele contém muitas funções para criar repositórios de código com controle de versão completo, recurso de check-out e check-in e links e bifurcações de código para permitir compilações periódicas do aplicativo inteiro. Ele também fornece itens de trabalho com base em modelos configuráveis, fluxo de trabalho, relatórios e muitos outros recursos relacionados. É um ambiente ideal para aplicativos grandes e complexos durante o desenvolvimento, mas funciona igualmente bem para equipes e projetos menores.

Os integrantes da equipe conectam-se ao TFS usando o Visual Studio ou outras ferramentas compatíveis, que automaticamente gerenciam o check-out e o check-in de arquivos, o acesso somente leitura a arquivos e a capacidade de criar e se conectar a instantâneos do repositório (como ilustrado na Figura 19).

Conectando-se a um formulário do Team Foundation Server do Visual Studio 2010 

Figura 19. Conectando-se a um formulário do Team Foundation Server do Visual Studio 2010

Durante a fase inicial de design do aplicativo e ao longo do ciclo de vida do desenvolvimento, vários integrantes da equipe podem criar e manter no TFS relatos que descrevam as tarefas, comentários, planos e quaisquer outras informações úteis sobre o projeto. Os relatos podem incluir estimativas de prazo e informações sobre término para que tanto os profissionais individuais quando os gerentes saibam rapidamente qual é o estado do ciclo de desenvolvimento do projeto. A Figura 20 mostra a página de visão geral dos relatos de um projeto no TFS.

Usando relatos no TFS para monitorar e gerenciar o ciclo de desenvolvimento 

Figura 20. Usando relatos no TFS para monitorar e gerenciar o ciclo de desenvolvimento

O TFS também pode oferecer muitas informações sobre o andamento geral, o status da compilação e bugs no software através de uma série de portais. Ele é especialmente útil para monitorar a qualidade do software em termos dos planos de teste e das falhas encontradas no software em qualquer etapa do processo de desenvolvimento. A Figura 21 mostra alguns dos relatórios gráficos que podem ser gerados pelo TFS.

Usando o TFS para monitorar a qualidade do software em desenvolvimento 

Figura 21. Usando o TFS para monitorar a qualidade do software em desenvolvimento

O SharePoint é o segundo tipo de repositório disponível da Microsoft. Ele é basicamente um repositório de documentos e informações, sendo mais apropriado para o gerenciamento da documentação de projetos. Ele oferece recursos de integração com muitos aplicativos do Microsoft Office, o que o torna o repositório ideal para ser usado por arquitetos, designers e gerentes de projetos ao longo do ciclo de vida de desenvolvimento do software. Ele também oferece uma infinidade de modelos de repositório internos e para download, recursos de personalização completos e disponibilidade entre redes e a Internet para amplo acesso de equipes geograficamente dispersas. A Figura 22 mostra o SharePoint utilizado como repositório de documentação.

O SharePoint como repositório de documentos e informações 

Figura 22. O SharePoint como repositório de documentos e informações

Resumo

A Microsoft oferece uma imensa gama de softwares e ferramentas que dão suporte aos processos de design, desenvolvimento e implantação de software. Para arquitetos e designers, existem ferramentas para modelar aplicativos e ambientes de tempo de execução, gerenciar a documentação e interagir com as partes interessadas.

No caso das tarefas de desenvolvimento, ferramentas e ambientes de desenvolvimento especializado integrados e autônomos conferem o mais alto nível de suporte, facilidade de uso e extensibilidade para simplificar o máximo possível todas as etapas do processo. Existem ferramentas para criar código e trabalhar com bancos de dados e para compilar, testar, rastrear e depurar o código.

Entre as demais ferramentas e ambientes que podem ser usados durante o processo de desenvolvimento estão repositórios de códigos e documentos, ferramentas de gerenciamento de projetos e ferramentas para gerar relatórios. Além disso, a Microsoft oferece uma vasta gama de diferentes tipos de orientação para tarefas de arquitetura, desenvolvimento, administração e teste que ajudam a projetar, criar e executar os melhores softwares.