UEM Universidade Estadual de Maringá Departamento de Informática Disciplina: 1227/31 Engenharia de Software III Professor Carniel.



Documentos relacionados
Desenvolvimento Ágil de Software

ENGENHARIA DE SOFTWARE I

ISO/IEC 12207: Gerência de Configuração

Scrum. Introdução UFRPE-DEINFO BSI-FÁBRICA DE SOFTWARE

Melhoria no Desenvolvimento Ágil com Implantação de Processo de Integração Contínua Multiplataforma para Java e.net. Hudson

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

GARANTIA DA QUALIDADE DE SOFTWARE

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Aluna: Vanessa de Mello Orientador: Everaldo Artur Grahl

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE

Jonas de Souza H2W SYSTEMS

INTERNET HOST CONNECTOR

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

Plano de Gerenciamento do Projeto

Tópicos. Métodos Ágeis. Histórico; Valores; Métodos Ágeis x Modelos Tradicionais; Exemplo: Referências Bibliográficas.

Microsoft Access XP Módulo Um

Expresso Livre Módulo de Projetos Ágeis

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

XP extreme Programming, uma metodologia ágil para desenvolvimento de software. Equipe WEB Cercomp

Noções de. Microsoft SQL Server. Microsoft SQL Server

MANUAL DE IMPLANTAÇÃO SISTEMA DE INVENTÁRIO CACIC GOVERNO FEDERAL SOFTWARE PÚBLICO

Projeto de Arquitetura

Géssica Talita. Márcia Verônica. Prof.: Edmilson

Sumário 1. SOBRE O NFGoiana DESKTOP Apresentação Informações do sistema Acessando o NFGoiana Desktop

Microsoft Office PowerPoint 2007

Digifort Mobile Manual Version 1.0 Rev. A

Tópicos de Ambiente Web. Modulo 2 Processo de desenvolvimento de um site Professora: Sheila Cáceres

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Uma introdução ao SCRUM. Evandro João Agnes

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução à Computação

Fábrica de Software 29/04/2015

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Manual do Visualizador NF e KEY BEST

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

Manifesto Ágil e as Metodologias Ágeis (XP e SCRUM)

Aprenda as melhores práticas para construir um completo sistema de teste automatizado

Profa. Gislaine Stachissini. Unidade III GOVERNANÇA DE TI

O e-docs foi testado e homologado pela Microsoft via certificadora internacional Verisign.

Desenvolvendo Websites com PHP

O Primeiro Programa em Visual Studio.net

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

Manual do Usuário Certificação

Processos de Desenvolvimento de Software

Planejando o aplicativo

02 - Usando o SiteMaster - Informações importantes

Por que Office 365? Office 365 Por que usar?

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

Como instalar uma impressora?

Em 2012, a Prosoft planejou o lançamento da Versão 5 dos seus produtos.

Ferramenta para gestão ágil

Sistemas de Informação I

Governança de TI. ITIL v.2&3. parte 1

Implantação de um Processo de Medições de Software

Apostila Oultlook 2007 Prof. Fabrício Melo

MANIFESTO ÁGIL. Esses conceitos aproximam-se melhor com a forma que pequenas e médias organizações trabalham e respondem à mudanças.

Aplicação Prática de Lua para Web

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

Autores/Grupo: TULIO, LUIS, FRANCISCO e JULIANO. Curso: Gestão da Tecnologia da Informação. Professor: ITAIR PEREIRA DA SILVA GESTÃO DE PESSOAS

Sistemas de Produtividade

INTRODUÇÃO AOS MÉTODOS ÁGEIS

Versão 7 TraceGP Ágil

Atualizaça o do Maker

Capítulo 2 Introdução à ferramenta Flash

SCRUM: UM MÉTODO ÁGIL. Cleviton Monteiro

Artur Petean Bove Júnior Tecnologia SJC

ANÁLISE COMPARATIVA ENTRE OS MODELOS DE PROCESSO: PROTOTIPAÇÃO, PSP E SCRUM

ANDRÉ APARECIDO DA SILVA APOSTILA BÁSICA SOBRE O POWERPOINT 2007

Guia. PDA e SmartPhones. Windows Mobile, Pocket PC e CE.

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente

Metodologia e Gerenciamento do Projeto na Fábrica de Software v.2

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Operador de Computador. Informática Básica

Após completar este módulo você deverá ter absorvido o seguinte conhecimento: Uma ampla visão do framework Scrum e suas peculiaridades

Manual do Ambiente Moodle para Professores

Software. Bem vindo ao mundo do GED e Tecnologias Digitais. Gerenciamento Eletrônico de Documentos, Softwares, e muito mais...

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

Manual AGENDA DE BACKUP

Figura 1 - Arquitetura multi-camadas do SIE

Gerenciamento de configuração. Gerenciamento de Configuração. Gerenciamento de configuração. Gerenciamento de configuração. Famílias de sistemas

Qualidade de Software

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

Manual de Utilização

Dicas para implantação do Autodesk Vault para pequenas e médias empresas

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

Lógica de Programação

MANUAL DE UTILIZAÇÃO

1 Sumário O Easy Chat Conceitos Perfil Categoria Instalação O Aplicativo HTML...

Universidade Paulista

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

Módulo de projetos ágeis Scrum Módulo de Projetos Ágeis Scrum

IW10. Rev.: 02. Especificações Técnicas

Transcrição:

UEM Universidade Estadual de Maringá Departamento de Informática Disciplina: 1227/31 Engenharia de Software III Professor Carniel Aline Dumalak Carlos Henrique Ribeiro Felipe Del Campo Trabalho do 1º Bimestre

Conteúdo Resumo... 3 Lista de figuras... 4 Lista de tabelas... 4 Introdução... 5 Fundamentação teórica... 6 Ponto de Função... 6 Organização, sistemas e métodos... 8 Processo de Desenvolvimento de Software... 9 CMMI... 9 Controle de Versão... 10 Metodologia (Processo, organização, gerenciamento)... 10 Métodos ágeis... 10 Scrum... 11 XP... 12 Microsoft Robotic Developer Studio... 12 Subversion... 14 DropBox... 15 Visual Studio... 15 Editores e Designers... 16 Ferramentas de compilação e depuração... 16 Ferramentas de implantação... 16 Pronto... 17 Resultados e discussão (Aplicação da metodologia)... 19 Conclusão... 20 Bibliografia... 21

Resumo Vamos comentar sobre a metodologia e a tecnologia que escolhemos para utilizar na criação da aplicação. A escolha da metodologia é fundamental para o sucesso do projeto, pois permitem que tenhamos uma visão geral do sistema, facilitando assim administração dos prazos e melhorando o seu desenvolvimento. Tão importante quanto a metodologia são as ferramentas que podem ser utilizadas para administrá-las. Para esse projeto escolhemos ferramentas atuais de mercado de fácil utilização através do acesso web, que possibilita atualizar e enviar informações em qualquer lugar e qualquer hora. Pronto é a ferramenta que escolhemos para utilizarmos no gerenciamento do método ágil SCRUM, nela ficam armazenados as informações do BACKLOG, calendário das reuniões e outros detalhes. Outra metodologia utilizada é o calculo do custo da aplicação através do Ponto de Função, que possibilita chegar ao valor de mercado e com a vantagem de ser justificado a cada alteração. A escolha da área do projeto foi baseada em tendências de mercado, visando automação de rotinas do cotidiano, levando em consideração a maior preocupação do mundo que é o meio ambiente. Com o objetivo de realizar a coleta de materiais recicláveis desde papel até mesmo lixo radioativo, o RoboClean esta sendo desenvolvido em C# como IDE o Visual Studio Professional 2010 e a tecnologia da Microsoft Robotics.

Lista de figuras Figura 1: Etapas de Contagem da PF... 6 Figura 2: Clico de desenvolvimento do Scrum... 11 Figura 3: Ciclo de desenvolvimento do XP... 12 Figura 4: Arquitetura do DSS... 13 Figura 5: Exemplo de código em VPL... 14 Figura 6: Arquitetura do Subversion... 15 Figura 7: Tela de abertura do Visual Studio... 16 Figura 8: Product Backlog... 17 Figura 9: Sprint Backlog... 17 Figura 10: Kanban do Sprint atual... 18 Lista de tabelas Tabela 1: Funções de dados - Arquivos Lógicos Internos (ALI) (ILF - Internal Logical Files)... 7 Tabela 2: Funções de dados - Arquivos de Interface Externa - AIE... 7 Tabela 3: Funções de Transação... 7 Tabela 4: Funções de Transação - Consultas implícitas... 8 Tabela 5: Conclusão... 8

Introdução As tragédias ocasionadas por fenômeno da natureza estão cada vez mais comuns, o exemplo mais recente é o do Japão que atingiu milhares de pessoas e que até hoje sofre com o problema da radiação. E o lixo, que cresce cada vez mais no mundo todo, não há espaço adequado suficiente para o seu armazenamento. Pensando na qualidade de vida da população e visando aumentar a preservação do meio ambiente deixando de extrair matéria prima da natureza ajudando a evitar o esgotamento dos seus recursos naturais, criamos o projeto do RoboClean. O projeto visa potencializar a reciclagem dos materiais como: papel, plástico, vidro, alumínio e até mesmo material radioativo. Hoje existem cooperativas de reciclagem, mas na maioria delas o local da separação não é adequado e expõem os trabalhadores a riscos. A exemplo do Japão onde as pessoas são obrigadas a separar o lixo minuciosamente sob multa e acabam pagando para outra pessoa realizar a separação do lixo para ela. Aplicação que esta em desenvolvimento visa automatizar os movimentos robôs para realizar as mesmas funções que uma pessoa, identificando os objetos através das cores e colocando na lixeira reciclável da cor correspondente. Para concluir esse objetivo o robô executará ações como: andar, virar a direita, esquerda e abaixar. Após o termino do recolhimento dos materiais o usuário poder solicitar o envio da contagem dos produtos através do WebService. Para produtos radioativos será desenvolvida uma função especial para o recolhimento. Nossa empresa visa o bem estar dos seus clientes e para alcançar a qualidade do seu produto utilizamos metodologia atual de mercado, métricas como a contagem de ponto de função para custos compatíveis e a implantação do CMMI inicialmente a meta é atingir no nível II.

Fundamentação teórica Ponto de Função Surgida em 1979, como resultado de um projeto desenvolvido por Allan Albrecht, pesquisador da IBM, a Análise de Pontos de Função (APF) é uma técnica para a medição de projetos de desenvolvimento de software, visando estabelecer uma medida de tamanho, em Pontos de Função (PF), considerando a funcionalidade implementada, sob o ponto de vista do usuário. A medida é independente da linguagem de programação ou da tecnologia que será usada para implementação. Sob esse contexto, os objetivos da APF são: 1. Medir a funcionalidade solicitada pelo usuário, antes do projeto de software, de forma a estimar seu tamanho e seu custo; 2. Medir projetos de desenvolvimento e manutenção de software, independentemente da tecnologia utilizada na implementação, de forma a acompanhar sua evolução; 3. Medir a funcionalidade recebida pelo usuário, após o projeto de software, de forma verificar seu tamanho e seu custo, comparando-os com o que foi originalmente estimado; A APF se baseia na contagem de Pontos de Função para estabelecer a medida de tamanho de um produto de software. De forma resumida, o diagrama a baixo ilustra o processo de contagem: Figura 1: Etapas de Contagem da PF Perceba que as funcionalidades são separadas em duas categorias: Funções de Dados e Funções de Transação, conceito que será apresentado mais adiante. De qualquer forma, é necessário identificar as funções a serem contadas. Após sua identificação, estas são classificadas quanto à sua complexidade funcional, a qual admite três níveis: Baixa, Média e Alta. Para realizar esta classificação, sempre é considerado o estado final das funcionalidades, ou seja, a complexidade da função após as alterações envolvidas. Efetuada a classificação, são calculados os pontos de função não ajustados das

funcionalidades através da aplicação dos pesos de acordo com a tabela específica de cada função. Tabela 1: Funções de dados - Arquivos Lógicos Internos (ALI) (ILF - Internal Logical Files) Total: 29 Pontos de Função não ajustados ID - CRSw ALI Compl. PF 1 Usuário S 7 2 Configuração Robô S 7 3 Parametrização de Cenários C 15 4 5 Tabela 2: Funções de dados - Arquivos de Interface Externa - AIE Total: 7 Pontos de Função não ajustados ID - CRSw AIE Compl. PF 1 WebService M 7 Tabela 3: Funções de Transação Total: 20 Pontos de Função não ajustados ID - CRSw Caso de uso/fluxo Tipo Compl. PF - - 1 Identificar o tipo de lixo SE C 7 2 Tratamento especial para lixo que possuem EE C 6 material radioativo 3 Contar a quantidade de material recolhido por lixeira SE C 7

Tabela 4: Funções de Transação - Consultas implícitas Total: 8 Pontos de Função não ajustados ID - CRSw Nome Tipo Compl. PF 1 Consulta os produtos recolhidos por período M 4 2 Consulta tempo por atividade M 4 3 Tabela 5: Conclusão Tipo de função PF Funções de dados 36 Arquivos Lógicos Internos 29 Arquivos de Interface Externa 7 Funções de Transação 20 Módulo I 20 Consultas implícitas 8 Interfaces de software 1,24 Total de PF não ajustados 65 Serão gastos 65 pontos de função para desenvolver a proposta inicial do projeto. Organização, sistemas e métodos Para (Oliveira, 2005) a responsabilidade básica da área de Sistemas, Organização e Métodos é a de executar as atividades de levantamento, análise, elaboração e implementação de sistemas administrativos na empresa. O objetivo é o de criar ou aprimorar métodos de trabalho, agilizar a execução das atividades, eliminar atividades em duplicidade, padronizar, melhorar o controle, fazer o gerenciamento dos processos e solucionar problemas, também chamados de patologias organizacionais. Segundo (Cury, 2005) a função de Organização e Métodos é uma das especializações de Administração que tem como objetivo a renovação organizacional. Ela modela a empresa, trabalhando sua estrutura (organograma), seus processos e métodos de trabalho. Dentre as atividade de organização e métodos, as mais comuns são: (Caldas, 1999) Desenho, racionalização e normatização de processos e procedimentos organizacionais; Desenho, formalização e mudança da estrutura organizacional; Normatização e racionalização do uso do espaço físico e layout na empresa.

Processo de Desenvolvimento de Software Um processo de desenvolvimento de software é um framework que habilitaria você a construir um software de qualidade. (Pilone, 2008) Um processo é um conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto de software, sendo considerado um dos principais mecanismos para se obter um software de qualidade e cumprir corretamente os contratos de desenvolvimento. O processo de desenvolvimento de software tem sido objetivo de vários padrões, que visam certificar as empresas como possuidoras de um processo. Dentre eles se encontram o CMMI, SPICE, ISO 12207 e MPS/BR. CMMI É um modelo de referência que contém práticas necessárias à maturidade em disciplinas específicas e é baseado nas melhores práticas para desenvolvimento e manutenção de produtos. Possui representações que permitem visualizar o quanto uma empresa é madura na utilização dos seus processos chamados de níveis do CMMI. Uma empresa básica no processo possui nível 0. (Wibas CMMI Browser, 2011) Desenvolvido pelo SEI (Instituto de Engenharia de Software) da Universidade Carnegie Mellon, localizada em Pittsburgh, Pensilvânia. Requisitos para implantação do CMMI nível II: Gerenciamento de Requisitos - REQM (Requirements Management) Planejamento de Projeto - PP (Project Planning) Acompanhamento e Controle de Projeto - PMC (Project Monitoring and Control) Medição e Análise - MA (Measurement and Analysis) Garantia da Qualidade de Processo e Produto - PPQA (Process and Product Quality Assurance) Gerência de Configuração - CM (Configuration Management) Risco para implantação do projeto: Falta de foco dos colaboradores nos objetivos; Falta de comunicação;

Irresponsabilidade perante os compromissos (reuniões, treinamentos, etc.); Custo elevado com orçamentos; Considerável aumento de orçamentos e prazos (erro de estimativa); Ausência de participantes do projeto; Controle de Versão É um software com a finalidade de gerenciar diferentes versões no desenvolvimento de sistemas, possibilitando o registro de toda a evolução do projeto, como cada alteração de arquivo, quem fez e quando. Permite que desenvolvedores trabalhem em paralelo no projeto e posteriormente façam um merge do projeto, e ainda permite uma variação no projeto, pois enquanto uma equipe trabalha na versão 1.0 do sistema, outra já pode desenvolver a versão 2.0. (Conceitos Básicos de Controle de Versão de Software, 2011) Metodologia (Processo, organização, gerenciamento) Métodos ágeis Método ágil é um conjunto de metodologias para o desenvolvimento de software que segue os seguintes valores: Indivíduos e interações mais que processos e ferramentas Software em funcionamento mais que documentação abrangente Colaboração com o cliente mais que negociação de contratos Responder a mudanças mais que seguir um plano (Agile Manifesto, 2011) Os métodos ágeis aparecem como uma alternativa aos métodos tradicionais, que começam com um levantamento e análise completa dos requisitos seguida, pelo projeto de alto nível, desenvolvimento e inspeção. Que na verdade nem sempre funciona como deveria, pois, clientes mudam de opinião mesmo depois de todos os requisitos recolhidos e todos os diagramas feitos, as exigências tendem a mudar no meio do desenvolvimento e quando requisitos são alterados é difícil acomodar as mudanças. (Cohen, 2004) Os métodos ágeis são desenhados para: a) Produzir a primeira entrega em semanas, para receber um rápido feedback sobre o projeto. b) Usar soluções simples, para diminuir o custo de alterações. c) Sempre aumentar a qualidade do projeto, diminuindo o custo das próximas iterações.

d) Testar continuamente, erros encontrados mais cedo são mais baratos de serem corrigidos. (Abrahamsson P., 2002) Scrum Scrum é um framework ágil para projetos complexos, ele foi originalmente formalizado para projetos de desenvolvimento de software, mas pode ser aplicada também a equipes de manutenção de software ou como uma abordagem geral de gerenciamento de projetos. (Scrum Alliance, 2011) O framework resumidamente segue os seguintes passos (Figura 1): a) O Product Owner cria uma lista priorizada, o Product Backlog; b) Durante uma reunião ente Product Owner, o Scrum Master e a equipe de desenvolvimento, é decidido quais itens da Product Backlog entram na Sprint então é criada a Sprint backlog. c) A equipe tem o tempo do Sprint - geralmente entre 2 e 4 semanas - para completar o trabalho, durante esse tempo são feitas reuniões diárias chamadas Daily Scrum. d) No final da Sprint é feita uma reunião para entrega do trabalho realizado de acordo com a Sprint Backlog, também temos reuniões de sprint review e retrospective. Figura 2: Clico de desenvolvimento do Scrum Termos: Product Owner é quem representa o negócio. Product Backlog é uma lista dos requisitos do sistema, coisas que o cliente deseja, descritas utilizando a terminologia do cliente. Scrum Master é quem mantém os processos. Daily Scrum é uma reunião diária entre a equipe e o Scrum Master, onde os participantes falam sobre o que fizeram o que vão fazer e as dificuldades que estão encontrando ou os impedem de continuar.

XP XP (extreme Programming) é uma metodologia ágil para equipes que irão desenvolver softwares com requisitos vagos e em constantes mudanças adotando estratégias de constantes acompanhamento e realização de vários pequenos ajustes durante o desenvolvimento de software (Extreme Programming, 2011) Os principais valores do XP são comunicação, simplicidade, feedback, coragem e respeito e tem como princípios básicos feedback rápido, presumir simplicidade, mudanças incrementais, abraçar mudanças e trabalho de alta qualidade. (Extreme Programming, 2011) No XP valoriza-se muito a criação de teste unitário e a constante refatoração do código visando a qualidade interna do produto. (Extreme Programming, 2011) A Figura 3 mostra o ciclo de vida de um projeto com XP. Microsoft Robotic Developer Studio Figura 3: Ciclo de desenvolvimento do XP O Microsoft Robotic Developer Studio é um ambiente para desenvolvimento de aplicações robóticas entre uma variedade de hardwares. (Microsoft Robotic Studio, 2011) Os Principais componentes do Microsoft Robotic Studio são CCR (Concurrency and Coordination Runtime) e o DSS (Decentralized Software Services). (Johns, 2008) O CCR é uma biblioteca que fornece classes e métodos para auxiliar com concorrência, coordenação e falhas. Com ela é possível escrever segmentos de códigos que operam independentemente e se comunicam por passagem de mensagens. (Johns, 2008)

O DSS permite que classes e métodos executem em paralelo em diferentes processos e máquinas. Uma aplicação construída com DSS consiste de vários serviços independentes rodando em paralelo. Cada serviço pode ser uma função realizada pelo robô, como processar imagens, calcular distancias, etc. A Figura 4 mostra a organização do módulo de DSS. (Microsoft Robotic Studio, 2011) Figura 4: Arquitetura do DSS DSS usa o protocolo HTTP e o DSSP (Decentralized Software Services Protocol) para integração entre componentes. O DSSP é um protocolo baseado no SOAP. (Microsoft Robotic Studio, 2011) O MRDS também possui um ambiente para simulação visual, para poder realizar testes. Ele é totalmente 3D e possui simulação de física. (Johns, 2008) O ambiente pode ser programado utilizando as linguagens C++, C# e Visual Basic. A Microsoft também disponibilizou uma linguagem visual para a programação dos serviços chamada VPL (Visual Programming Language) onde pessoas não especializadas em programação podem criar seus robôs. A Figura 5 mostra um exemplo de código escrito em VPL. (Microsoft Robotic Studio, 2011) (Johns, 2008)

Figura 5: Exemplo de código em VPL Subversion É um Sistema de Controle de Versão gratuito e open-source, e tem como principais características o controle de versão de diretórios, histórico de versões, commits atômicos, controle de versão de metadados e branching e tagging eficientes. (Controle de Versão com Subversion, 2011) Na Figura 6 podemos ver a arquitetura do subversion. De um lado fica o subversion com todos os dados versionados e do outro a aplicação cliente que acessa esses dados. (Controle de Versão com Subversion, 2011)

Figura 6: Arquitetura do Subversion DropBox É um sistema online, que possibilita o compartilhamento de arquivos entre vários computadores. Ele possui um sistema simples de controle de versão. (Dropbox, 2011) Visual Studio O Visual Studio compartilha um único ambiente de desenvolvimento integrado (IDE) que é composto de vários elementos: a barra de menu, barra de ferramentas padrão, várias janelas de ferramentas encaixadas ou ocultas automaticamente no lado esquerdo, inferior e direito, bem como a área de edição. A janela de ferramentas, os menus e as barras de

ferramentas disponíveis dependem do tipo de projeto ou arquivo em que você está trabalhando. (Network) Editores e Designers Figura 7: Tela de abertura do Visual Studio O editor e designers que você usa dependem do tipo de arquivo ou documento que você está criando. O editor de texto é o processador de texto básico da IDE, enquanto o editor de código é editor básico de código fonte. Outros editores, como o editor CSS, designer de HTML e o designer de página da Web, compartilham muitos dos recursos encontrados no editor de código, juntamente com melhorias específicas do tipo de código ou marcação suportada. Alguns editores, como o de Designer de página Web e Designer XAML, também fornecem um modo de exibição híbrido que lhe permite visualizar gráfico e código de um arquivo simultaneamente. Este modo de exibição é chamado modo divisão. Ferramentas de compilação e depuração O Visual Studio fornece um conjunto robusto de ferramentas de compilação e debug. Com a configuração de compilação, você pode selecionar os componentes que irão compilar, excluir aqueles você não irá compilar e determinar como os projetos selecionados serão criados e em que plataforma. Você pode ter configurações de compilação para soluções e projetos. Ferramentas de implantação O Visual Studio fornece duas estratégias de implantação diferentes: ClickOnce e Windows Installer. Com o ClickOnce, você pode publicar o aplicativo para um local centralizado e o usuário instala ou executa o aplicativo a partir desse local. Com a implantação do Windows Installer, você empacota o aplicativo em um arquivo setup.exe e distribui esse arquivo para os usuários; eles executam o arquivo setup.exe para instalar o aplicativo.

Pronto 2011) Pronto é um sistema de controle de tarefas baseado no método ágil Scrum. (Pronto, Como não temos a possibilidade de trabalharmos sempre reunidos e nem temos um escritório para montar quadros, com Kanban, usamos o Pronto para o gerenciamento distribuído do projeto. Nele definimos o Product backlog e a Sprint Backlog, a partir dai temos a possibilidade de acompanharmos o que está sendo feito e o que já está pronto do nosso projeto. O pronto foi feito usando as tecnologias Java e Postgres, por isso devemos ter um servidor de aplicativo e um banco de dados PostgreSQL. (Pronto, 2011) Figura 8: Product Backlog Figura 9: Sprint Backlog

Figura 10: Kanban do Sprint atual

Resultados e discussão (Aplicação da metodologia) Utilizando o Scrum com XP podemos manter um ciclo de desenvolvimento ágil, pois por ser um sistema que não conhecemos muito, precisamos de iterações curtas e já codificar para podermos ver os erros e aprender com as ferramentas. Para realizar o scrum em uma equipe distruibuida, escolhemos a ferramenta Pronto, que nos deu agilidade e flexibilidade para definir os sprints, product backlog e outros artefatos pela web. O Microsoft Robotic Studio, junto com o Visual Studio, formam uma IDE (Integrated Development Environment), que nos auxilia no desenvolvimento do projeto fornecendo um conjunto de ferramentas que agilizam a codificação e manutenção, como templates de códigos, autocomplete e wizards. Dentre as linguagens disponíveis para utilização com o Microsoft Robotic Studio, escolhemos o C# por ser uma linguagem de fácil aprendizado e ainda sim com grande poder computacional. Para a realização do controle de versão, optamos por utilizar o subversion para o código e artefatos de documentação por ser grátis, open-source, todos da equipe terem conhecimento e ser amplamente utilizado no mercado, o que prova a qualidade da ferramenta. Ele também permite que a equipe esteja distribuída. O Dropbox foi a escolha de versionamento para arquivos mais simples. Por ser uma empresa virtual, é essencial a utilização de técnicas de organização, sistemas e métodos para a organização da empresa e sua administração. Separar os departamentos e funções dentro da empresa é essencial para seu sucesso no mundo globalizado

Conclusão A partir desse estudo, podemos concluir que a aplicação de metodologias ágeis, junto com ferramentas para apoio da equipe, proporcionou um ótimo ambiente de trabalho, nos proporcionando a oportunidade de construção de um projeto de mais qualidade. Pela utilização de tecnologias grátis, podemos reduzir o custo da construção do projeto e minimizar seu risco. Por ser uma empresa virtual, onde todos os colaboradores trabalham online, foram vitais ferramentas como o Pronto, Subversion e Dropbox. A utilização da técnica de Ponto de Função possibilitou a conclusão de um prazo e custos para o projeto muito aproximado do real.

Bibliografia (Abril de 2011). Fonte: Microsoft Robotic Studio: http://www.microsoft.com/robotics (Abril de 2011). Fonte: Agile Manifesto: http://www.agilemanifesto.org/iso/ptbr/ (Abril de 2011). Fonte: Scrum Alliance: http://www.scrumaliiance.org/pages/what_is_scrum (Abril de 2011). Fonte: Controle de Versão com Subversion: http://svnbook.redbean.com/nightly/pt_br/index.html (Abril de 2011). Fonte: Dropbox: http://www.dropbox.com/ (Abril de 2011). Fonte: Wibas CMMI Browser: http://www.cmmi.de/#el=cmmi/0/head/folder/folder.cmmi (Abril de 2011). Fonte: Extreme Programming: http://www.extremeprogramming.org/ (Abril de 2011). Fonte: Pronto: http://pronto.bluesoft.com.br/ Conceitos Básicos de Controle de Versão de Software. (Abril de 2011). Fonte: Pronus Engenharia: http://www.pronus.eng.br/artigos_tutoriais/gerencia_configuracao/conceitos_basicos_controle _versao_centralizado_e_distribuido.php?pagnum=1 Abrahamsson P., S. O. (2002). Agile Software Development Methods. VTT Publications. Caldas, M. P. (1999). O Triste Destino da Área de O&M. São Paulo. Cohen, D. L. (2004). An Introduction to Agile Methods. In Advances in Computers. New York: Elsevier Science. Cury, A. (2005). Organização e métodos: uma visão holística. São Paulo: Atlas. Johns, K. T. (2008). Professional Microsoft Robotics Developer Studio. Network, M. D. (s.d.). Ambiente de desenvolvimento integrado. (http://msdn.microsoft.com/library/ms165088(vs.100).aspx). Oliveira, D. (2005). Sistemas, organização e métodos: uma abordagem gerencial. São Paulo: Atlas. Pilone, D. e. (2008). Head First Software Development. O'Reilly Media.