PROJETO CEMEA Um trabalho educacional
CEMEA: Objetivo geral A partir de um sistema já existente, temos como missão: Melhorar suas funcionalidades; Documentar tanto o código, quanto suas funções; Acrescentar outras funções a medida que etapas são entregues (para isso foi adotado a Metodologia SCRUM)
CEMEA: Objetivo geral Entender as funcionalidades do software Verificar e consertar falhas funcionais Trocar e documentar o banco de dados Criar um novo padrão para o sistema Dividir e trabalhar os módulos individualmente Otimizar o código
CEMEA: Módulos Cadastro de alunos do projeto Cadastro dos cursos Pesquisa dentro do banco(alunos,cursos) Excluir, adicionar, atualizar os dados Gerar relatórios
CEMEA: Tela de login
CEMEA: Tela Principal
CEMEA: Tela Padrão
CEMEA: Tela Cadastro
Método Ágil SCRUM
SCRUM: Definição Scrum é um processo ágil que permite manter o foco na entrega do maior valor de negócio, no menor tempo possível. Isto permite a rápida e contínua inspeção do software em produção (em intervalos de duas a quatro semanas). A cada duas a quatro semanas todos podem ver o real software em produção, decidindo se o mesmo deve ser liberado ou continuar a ser aprimorado por mais um Sprint.
SCRUM: Definição As necessidades do negócio é que determinam as prioridades do desenvolvimento de um sistema. As equipes se autoorganizam para definir a melhor maneira de entregar as funcionalidades de maior prioridade.
SCRUM: Quem utiliza? Microsoft Yahoo Google Electronic Arts High Moon Studios Lockheed Martin Philips Siemens Nokia Capital One BBC Intuit Time Warner John Deere
SCRUM: Características Equipes que se auto-organizam Evolui em uma série de Sprints mensais Os requerimentos são listados em um Product Backlog Não há prática de engenharia prescrita Usa regras generativas na criação de um ambiente ágil para a entrega de projetos É uma das metodologias ágeis
SCRUM: Sprints Projetos Scrum progridem em uma série de sprints Similar às iterações do XP Ocorre em um período de duas a quatro semanas Um período constante leva a um melhor ritmo O produto é projetado, codificado e testado durante o sprint
SCRUM: Resumo
SCRUM: Resumo Necessita de uma revisão a sprint (periodo de 2 a 4 semanas). Reuniões diárias de 15 minutos. Fornecer um demo ao final de cada sprint. Ao final do sprint são realizados: Sprint Review Meeting. Sprint Retrospective.
Controle de Versão SUBVERSION
Subversion: Por que usar? Registro histórico dos arquivos dos projetos ao longo do tempo. Permite que desenvolvedores trabalhem juntos sem que um atrapalhe o outro. Não é apenas para equipes de desenvolvedores. Pode rodar localmente com muita eficiência. Existem opções totalmente gratuitas (ex. SubVersion). Segurança total na manipulação e alteração do código. Loucura não usar, principalmente quando em mais de um desenvolvedor.
Subversion: Benefícios Backup automático do código fonte (quando usado em computador separado). Recuperação fácil do estado anterior do código quando se faz algo que não ficou bom. Compartilhamento de código totalmente suave e sem dores de cabeça. Diferentes versões em paralelo (branches). Consultar qualquer versão de um arquivo. Você não precisa mais gritar pelo corredor para saber se alguém está usando o arquivo que você quer editar.
Subversion: Mesmo assim... Algumas pesquisas indicam que cerca de 70% dos desenvolvedores não utilizam nenhum tipo de controle de versão!!!!
Subversion: Será que ele usava?
Subversion: Por que ele? Open Source Roda nas principais plataformas (Windows, Linux) Roda localmente Sucessor natural do CVS Versionamento de diretórios Commits atômicos Acesso via HTTP http://subversion.tigris.org/
Subversion: TortoiseSVN Cliente gráfico do SubVersion para Windows Integrado ao shell Você praticamente só usará ele. http://tortoisesvn.tigris.org/
Subversion: Mod. de Versionamento Lock-Modify-Unlock Ou checkout-edit-checkin; Falsa noção de segurança. Mais problemas do que parece. Desenvolvedores esquecem arquivos travados frequentemente. Você só consegue alterar um arquivo se conseguir destravá-lo. Dificulta uso off-line.
Subversion: Mod. de Versionamento Copy-Modify-Merge Método usado pelo SubVersion. Mais simples e prático. Desenvolvedores podem trabalhar em paralelo no mesmo arquivo. Muito menos problemático do que você pensa. Todo desenvolvedor tem uma cópia de trabalho em sua máquina liberada para edição. Tranqüilo para uso off-line.
Subversion: Ciclo básico de trabalho Atualiza sua cópia de trabalho com os arquivos do servidor Realiza modificações na cópia local Examina modificações Salva suas modificações no servidor Demo
Subversion: Tags (ou labels) Um dos recursos mais importantes do controle de versão. Usadas para marcar um determinado momento do seu repositório com um nome com algum significado mais simbólico. Demo
Subversion: Quando usar tags Use a vontade, não tem efeitos colaterais: Quando você faz um release Antes de fazer uma grande modificação Quando você faz um build automatizado
Subversion: Branches Você usa branches quando precisa trabalhar em duas versões distintas de um projeto ao mesmo tempo. Novas versões: Após o lançamento da versão 1.0 do seu aplicativo, você tem que iniciar o desenvolvimento da versão 2.0 e manter a 1.0. Não tenha medo de usar. Demo
Subversion: Árvore padrão de projeto /cemeaclt /trunk (sua linha atual de desenvolvimento) /braches /tags /cemeasrv /trunk /braches /tags
Subversion: O que controlar? Somente arquivos necessários para o build do aplicativo. Não controle arquivos que são gerados automaticamente, como EXEs, DLLs, DCUs, etc. Arquivos texto (código fonte, HTML, XML) são gerenciados graciosamente. Arquivos binários devem ser controlados apenas em último caso, ou seja, quando não se tem os fontes que os geram. E ainda assim, somente se eles forem necessários para o build do nosso aplicativo.
Subversion: Regras Básicas Só commitar código compilável. Quem quebrar o build tem que sofrer: Fazer café toda manhã; Depositar R$1 no jarro para o chopp da galera no final do projeto; Realizar commits freqüentes, para evitar conflitos. Execute o Diff sempre antes de cada commit para revisar suas alterações. Descreva seus commits o máximo possível.
Subversion: Referências SubVersion (http://subversion.tigris.org) TortoiseSVN (http://tortoisesvn.tigris.org) SVN Book (http://svnbook.org/) Source Control HOWTO (http://software.ericsink.com/scm/source_contr ol.html) Wush.net Hospedagem SubVersion (http://www.wush.net/)
Obrigado! Um agradecimento da equipe CEMEA, por sua atenção. Visitem nosso portal: http://www.assembla.com/spaces/cemea