Microsoft Visual Studio Team System e Projeto Rosário
Por Gustavo Henrique | 12/05/2009 | FilosofiaAmbientes de Desenvolvimento
Um ambiente de desenvolvimento ou IDE (Integrated Development Environment – Ambiente de Desenvolvimento Integrado) é um software que reúne características e ferramentas Gude apoio ao desenvolvimento de software com o objetivo de agilizar este processo.
Geralmente os IDE facilitam a técnica de RAD (Rapid Application Development – Desenvolvimento Rápido de Aplicações), que visa à maior produtividade dos desenvolvedores.
O produto Visual Studio, pode ser descritoessencialmente uma ferramenta RAD, com funcionalidades e características necessárias para fornecer aos desenvolvedores o acesso aos recursos de construção e execução de aplicações providos pela plataforma .NET. (.NET Framework).
Visão geral da plataforma .NET Framework
Segundo a Wikipedia[1], O .NET é uma iniciativa da Microsoft em que visa uma plataforma única para desenvolvimento e execução de sistemas e aplicações. Todo e qualquer código gerado para .NET, pode ser executado em qualquer dispositivo ou plataforma que possua instalado o .NET Framework. O programador deixa de escrever código para um sistema ou dispositivo específico, e passa a escrever para a plataforma .NET.
Um programa é escrito em qualquer das linguagens de programação disponíveis para a plataforma (C# C++VB, etc). O código fonte escrito pelo programador é então compilado pela linguagem escolhida gerando um código intermediário em uma linguagem chamada MSIL (Microsoft Intermediate Language). Este novo código fonte gera um arquivo chamado de Assembly, de acordo com o tipo de projeto. No momento da execução do programa ele é novamente compilado, desta vez pelo JIT (Just In Time Compiler), de acordo com a utilização do programa.
De acordo com LOTAR, 2007, o .Net Framework é um componente integrado Windows que suporta a execução edesenvolvimento de uma nova geração de aplicações e XML webservices, possibilitando uma interação pessoal e integrada com a Internet através de dispositivos inteligentes. Segundo a documentação, o .NET Framework foi projetado com o seguintes objetivos:
- Prover um ambiente consistente de programação orientado a objetos de modo que o código do objeto seja armazenado e executado localmente, mas pode ser armazenado na internet e executado remotamente.
- Prover um ambiente de execução de código que minimiza o desenvolvimento de software e conflitos de versão.
- Prover um ambiente de execução de código que promove execução segura de código inclusive código criado por fontes desconhecidas.
- Prover um ambiente de execução de código que elimine os problemas de desempenho gerados por linguagens de script ou ambientes interpretados.
- Aproveitar o conhecimento do programador em diferentes tipos e aplicações, como aplicações Windows ou Web.
- Construir toda a comunicação em padrões reconhecidos pela indústria para que o .NET Framework possa se integrar com qualquer tipo de código.
Visual Studio Team System
O Visual Studio Team System é uma versão da ferramenta IDEda família de produtos de desenvolvimento, Visual Studio .NET, comercializado pela Microsoft.voltada para times de desenvolvedores.
O Visual Studio é um ambiente de desenvolvimento completo. Os componentes permanecemiguais independentemente da linguagem, o que facilita bastante mudar de projeto e linguagem e ter os mesmos recursos no mesmo lugar.
O Visual Studio oferece ferramentas que possibilitam aos desenvolvedores e demais participantes do processo de desenvolvimento criar rapidamente software utilizando as mais recentes tecnologias Microsoft.
"Além de ser uma excelente ferramenta para os desenvolvedores, o Visual Studio traz um conjunto de produtos voltados para testes, banco de dados, arquitetura e design de software.
O Visual Studio aumenta a produtividade do desenvolvedor, mas, além disso, traz grandes melhorias para apoiar na qualidade, previsibilidade e controle do processo de desenvolvimento de software por meio de metodologia e ferramentas específicas para todos os envolvidos no processo.
O Visual Studio torna realidade a visão da Microsoft de permitir que os desenvolvedores e equipes de desenvolvimento criem aplicações conectadas com experiências atrativas de usuários do Windows, Microsoft Office, dispositivos móveis e a Web", (TURTSCHI, 2002).
Recursos do Visual Studio Team System
De acordo com a MSDN, O Team System consiste basicamente em duas partes. Os Visual Studio Team Editions (Team Edition para arquitetos, desenvolvedores e testadores) instalados na máquina de desenvolvimento são parte do Visual Studio Development IDE e fornecem ferramentas para funções específicas em sua equipe de desenvolvimento. A segunda parte é o TFS (Team Foundation Server) que serve de host para os aspectos centrais do ciclo de vida do Team System, como Version Control, Work-Item Tracking, Team Build, Team Portal e o Data Warehouse que contêm dados sobre os projetos que usam o TFS.
Entre os recursos do Visual Studio Development IDE[2], destacam-se:
·Application Design: Uma interface visual avançada para o projeto de aplicações, que inclui entre suas funcionalidades o intelissence, que é o acesso às bibliotecas de classe e sintaxe disponíveis no .Net Framework;
·Infrastructure and Deployment Modeling: Um serviço de infraestrutura que provê modelagem de implementações incluindo empacotamento de aplicações;
·Deployment Designer: Uma interface para o projeto de implementação;
·Static Analysis: Recurso de análise estática de código;
·Code Metrics: Avaliação de métricas de código;
·Profiling: Ferramenta que permite verificar se partes do código estão usando muita memória ou deixando a aplicação lenta;
·Load Testing: Ferramenta de testes de carga;
·Manual Testing: Ferramenta para testes manuais;
·Web Testing: Ferramenta para teste de aplicações web;
·Code Coverage: recurso que permite avaliar partes do código que não podem ser analisadas em testes de unidade;
·Database Deployment: Base de dados de implantação, que permite controlar os versionamento das implantações realizadas;
·Database Change Management: Banco de dados de gerenciamento de mudanças, que permite controlar alterações nas versões da aplicação;
·Database Testing: Banco de dados de testes, que permite montar bases de testes;
·Database Test Data Generation: Ferramenta que permite gerar dados para base de testes;
O Team Foundation Server utiliza funcionalidades do Sharepoint Server e Project Server da Microsoft e compreende os seguintes recursos para gerenciamento do ciclo de vida de desenvolvimento[3] que são a chave para o trabalho colaborativo (em times):
·Team Version Control: Gerencia o controle de versão das aplicações desenvolvidas pela equipe;
·Team Work Item Tracking: Gerencia o desenvolvimento distribuído de artefatos de software dos projetos da equipe;
·Team Build: Gerencia o processo de construção/compilação dos artefatos desenvolvidos pelo time e sua integração dentro dos projetos;
·Team Reports: Relatórios de desempenho sobre o processo de desenvolvimento dos projetos e dos membros da equipe;
·Team Portal: Portal que agrupa todas as informações necessárias para o gerenciamento das equipes de desenvolvimento (que podem estar distribuídas).
Afigura 01 apresenta uma visão geraldos recursos doVisual Studio Team System:
Figura 01 – Estrutura do Visual Studio Team System
Vantagens e desvantagens mercadológicas do Visual Studio Team na área de Desenvovimento de Software
A identificação de vantagens e desvantagens pode se tornar um assunto abrangente, visto que análises devem levar em conta não somente as questões tecnológicas mas a realidade e as perspectivas de evolução do mercado de desenvolvimento de software.Todavia alguns aspectos mais gerais podem ser enumerados. Entre as vantagens na utilização do produto, podemos citar:
- Aumento da produtividade e melhores resultados em menos tempo;
- Criação de soluções dinâmicas baseadas no Windows, na Web, Dispositivos Móveis e no Office;
- Comunicação mais efetiva entre a equipe de software;
- Garantia de qualidade antes e durante todo o processo de desenvolvimento;
- O número de soluções menor, se comparado a Java, mas são garantidos por um único fabricante e se integram de maneira transparente;
- Várias linguagens de
programação podem ser usadas no desenvolvimento;
O .Net Framework é distribuído em conjunto com o Sistema Operacional Windows; - Integração com COM, COM+, DCOM, além da recente tecnologia Silverlight;
Dentre as diversas vantagens citadas, um diferencial do produto é a capacidade de aumentar a produtividade no desenvolvimento de software, o que pode ser comprovado em diversos estudos de caso em empresas brasileiras. Um destes estudos de caso é o da empresa "Brasília"[4]:
a fabricante de software que atingiu produtividade 32% acima da média a partir do uso da ferramenta. "O resultado positivo é fruto de um trabalho sério, de condições e pessoas preparadas. Mas essas marcas não seriam atingidas sem o uso das soluções da Microsoft", explica Pablo Coelho, diretor da Brasília Soluções Inteligentes.
Com a maturidade do software de código aberto, o Visual Studio compete com soluções livres, o que pode gerar certas desvantagens na utilização da solução, dependendo do modelo de negócios adotado por determinadas empresas:
1. Número menor de soluções públicas e gratuitas, se comparado a Java;
2. Mudanças de versão na plataforma tem causado dores de cabeça por falta de
compatibilidade;
3. Pouco código aberto;
A importância do Visual Studio Team System no ciclo de desenvolvimento
O mercado hoje já está consolidado com os padrões disponíveis que já oferecem ampla segurança do ponto de vista de tecnologia chegando ao o momento de usar a tecnologia para facilitar não somente a codificação, mas incorporar todo o ciclo de desenvolvimento, pois só assim será possível alcançar um produto com qualidade no prazo e no tempo exigido pelo mercado desviando dos já conhecidos problemas ligados aos casos de insucesso na entrega de projetos de software tão relatados em diversas pesquisas realizadas pelo Standish Group (www.standishgroup.com) sobre o histórico dos projetos ao longo dos últimos 10 anos.
Com foco nessa grande demanda do mercado pela profissionalização do ciclo de desenvolvimento que desde 2005 a Microsoft passou a investir no mercado de Application Lifecycle Management (ALM), com o lançamento da plataforma de Visual Studio Team System (VSTS).
Com o modelo de gestão para o ciclo de desenvolvimento oferecido pelo Visual Studio Team System que trabalha em conjunto com a sua metodologia de desenvolvimento, é possível obter de forma integrada, grandes resultados que são muito difíceis de alcançar de forma manual devido aos diversos desafios no dia a dia desenvolvendo software.
Para ter resultados numa plataforma de ALM é necessário projetar a implantação pensando em todo o ciclo de desenvolvimento do seu projeto de forma que possa usar a plataforma de forma estratégica e tenha total aderência com as características do seu projeto.
Para implementação de uma metodologia de ciclo de vida personalizada no Visual Studio, é necessário somente definir um modelo de processo para a mesma e usá-la para cria um projeto de equipe. A configuração, a execução, o monitoramento e o relatório são manipulados automaticamente pelas ferramentas do VSTS.
O Visual Studio Team System oferece um modelo sólido para os mais variados tamanhos de projetos permitindo criar uma personalização para atender clientes pequenos, médios e grandes, respeitando as diferenças de cada cliente.
Hoje em dia, independente do tamanho da empresa, sendo ela pequena ou média ou grande, em algum momento, já deve ter sido levantada a bandeira da terceirização dos projetos de desenvolvimento ou parte deles. Existem cenários em clientes que possuem 09 fornecedores para desenvolvimento e o que poderia ser de imediato uma grande facilidade acaba necessitando de uma série de critérios para o devido acompanhamento.
Com a plataforma de Visual Studio Team System existem mecanismos eficientes para gerenciar os fornecedores externos fazendo com eles sigam os padrões de desenvolvimento do projeto permitindo acompanhamento da qualidade e de todas as entregas.
"Projeto Rosário"- Democratizando o Gerenciamento de Ciclo de Vida de Aplicativos
Atualmente, grande parte do desenvolvimento de aplicativos está disperso ou dependente de diversas áreas nas empresas. Isso gera diversos desafios que podem impactar em perda de produtividade, controle e previsibilidade nos ciclos de desenvolvimento de um software.
O Visual Studio 2010, cujo codinome é Rosário, oferecerá uma solução única que atende todas as pessoas envolvidas no processo de desenvolvimento de uma aplicação, retirando muitas das barreiras que evitam a integração entre equipes e diferentes tecnologias.Alguns dos principais cenários e recursos dessa versão incluirão[5]:
- Gerenciamento e priorização combinados de projetos de TI por meio da integração com o Microsoft Project Server;
- Gerenciamento de vários projetos para um balanceamento de carga de recursos proativo de acordo com as prioridades do negócio;
- Rastreamento completo (incluindo itens de trabalho hierárquicos) para controlar os produtos de um projeto em relação aos requisitos dos negócios e à capacidade de conduzir uma análise de rápido impacto das alterações propostas;
- Métricas e painéis abrangentes para uma visibilidade compartilhada no status do projeto e progresso em relação aos produtos;
- Novos recursos para permitir que desenvolvedores e testadores rapidamente identifiquem, comuniquem, priorizem, diagnostiquem e resolvam bugs;
- Gerenciamento de caso de teste integrado para criar, organizar e gerenciar casos de teste nas equipes de desenvolvimento e teste;
- Automação de teste e orientação para ajudar os desenvolvedores e testadores a se concentrarem em testes no nível comercial, em vez de tarefas repetitivas, manuais;
- Métrica de qualidade para uma decisão de aprovar ou não a versão com relação a se um aplicativo está pronto para produção e foi totalmente testado segundo os requisitos comerciais;
- Rápida integração de equipes remotas, distribuídas, desconectadas e terceirizadas no processo de desenvolvimento;
- Fácil personalização de processo e orientação da Microsoft e de parceiros para corresponder à maneira como a qual sua equipe trabalha
- Suporte integrado para criar pacotes de instalação usando a tecnologia XML do Windows Installer;
- Aprimoramentos na administração de vários servidores, na criação e no controle da origem.
- Ferramentas de modelagem[6]: O Visual Studio Team System Architecture Edition fornecerá umnovo conjunto de ferramentas UML (Unified Modeling Language) na nova versão. Estas ferramentas, que permitem aos desenvolvedores visualizarem os produtos de seu trabalho em diagramas padronizados, ajudarão a preencher a lacuna entre modelos de alto nível e o código da aplicação, enfatizando os benefícios do uso de UML e soluções DSL (Digital Subscriber Line), voltadas à transmissão digital de dados. Adicionalmente, a edição "architecture" fornecerá ricas ferramentas que permitirão aos clientes entender melhor seus sistemas atuais, fornecendo capacidade de visualizar e integrar a infra-estrutura atual facilmente com novos sistemas na camada de modelagem;
Conclusão
Existem diversos conjuntos de metodologias para diferentes tipos de ciclos de vida de desenvolvimento de software. Para implementar essas metodologias com eficiência e consistência, é importante ter as ferramentas do ciclo de vida que automatizam os processos e artefatos das metodologias. O Microsoft VISUAL STUDIO TEAM SYSTEM é um desses sistemas e fornece uma solução atraente para automação e gerenciamento de metodologia.
O Visual Studio Team System implementa uma metodologia usando modelos de processos. Você pode "personalizar" modelos de processo prontos para atender a seus requisitos de metodologia. Contudo, existem algumas funcionalidades, como agregação de relatório, que você não obtém apenas com a "personalização". Para obter isso, você pode "estender" o Visual Studio Team System usando pontos extensíveis.
O Visual Studio Team System é uma solução completa para qualificar um time de desenvolvimento de software. Os recursos que ele oferece para desenvolvedores, testadores, gerentes, etc, são excelentes para a criação de qualquer projeto. E o mais importante: tudo em um único conjunto de ferramentas trabalhando de maneira integrada e inteligente para facilitar as tarefas do dia-a-dia.
Autores:
Gustavo Henrique Dornelas de Deus
Alan Santos
Felipe Augusto da Costa Marques