quinta-feira, 7 de junho de 2012

RUP para Concursos - Parte 6 - Fase de Construção e Disciplinas de Implementação e Testes

Nesta fase os principais requisitos já foram identificados e elicitados. O modelo de casos de uso está praticamente completo e a arquitetura já está definida.

Fase de Construção
Na fase de construção a ênfasa vai para as disciplinas de Implementação e Testes.

Essa fase demanda várias iterações e alto paralelismo na equipe. Por isso, o Gerenciamento de Configurações e Mudanças também possui muita ênfase durante a fase de Construção.

O esforço principal é centrato na Implementação e nos Testes, mas ainda podem existir casos de uso a serem especificados. E nessa fase é preciso esclarecer os requisitos restantes. A arquitetura também pode passar por evoluções e ajustes. Assim, as disciplinas de Requisitos e Análise e Design também possuem boa atividade.

A disciplina de Implantação começa a crescer e ter mais atividades. Nela são escritos os manuais de treinamento. As versões preeliminares dos manuais e guias começam a ser feitas na elaboração, mas é na construção que isso acontece com mais ênfase.

A conclusão do desenvolvimento acontece durante a construção com base na arquitetura definida na elaboração.

Segundo o RUP, é um processo de manufatura. Pega-se o projeto e implementa-se conforme projetado. (Na prática é BEM DIFERENTE)

Acontece também uma ênfase  no gerenciamento de recursos e controle de operações para alcançar maior produtividade e qualidade. Essas atividades fazem parte do Gerenciamento de Configuração e Mudanças. O ambiente pode ser caótico em projetos grandes e é preciso uma abordagem sistemática para gerenciar esta fase.

Objetivos
Minimizar custos de desenvolvimento, otimizar recursos e evitar retrabalho. A palavra chave é eficiência.

Disponibilizar as versões úteis (alfa, beta e etc) com rapidez. Os testes ALFA são realizados durante a fase de Construção.

Concluir a análise, o projeto, o desenvolvimento e o teste de todas as funcionalidades.

Verificar e decidir se o software está pronto para implantação.

Principais Artefatos

O Sistema (disciplina de implementação) - O próprio sistema executável, pronto para iniciar os testes beta. Lembrando que os testes beta são executados na Transição.

Plano de Implantação - guia a equipe de implantação e transição para eles disponibilizarem o software. Essa é apenas uma versão inicial do plano, as versões finais são feitas na Transição. Em projetos menores o Plano de Implantação pode estar embutido no Plano de Desenvolvimento de Software.

Conjunto de Testes - Testes implementados e executados para validação e estabilidade das versões (releases)

Disciplina de Implementação

Objetivos
Codificar! Implementar o sistema com qualidade. A qualidade desse código depende da qualidade da Análise e do Projeto que foram feitos nas fases anteriores.

Implementar o código em subsistemas e camadass. As classes devem ser pensadas em termos de componentes para favorecer a reutilização do código.

Testar os componentes desenvolvidos como unidades (testes unitários). Testes unitários são feitos pelos desenvolvedores e não por testadores.

Integrar os componentes gerados pelos implementadores individualmente em um build único. O papel responsável pela integração é o Integrador.

Papeis, Atividades e Artefatos
Implementador - implementa os componentes e faz os testes unitários.
Integrador - integra os códigos e componentes do sistema em um build único.

Artefatos Importantes
O Sistema, Componentes, Builds

Relação Com Outras Disciplinas

Análise e Design fornece a principal entrada para a Implementação através do Modelo de Design (projeto). A implementação do código é feita a partir dessa entrada. Digramas de classes, sequência e etc.

Teste descreve como realizar o teste de integração de cada build. Os testes de integração e os testes Alfa são descritos pela disciplina de testes.

Implantação descreve como utilizar o Modelo de Implementação para empacotar e disponibilizar o sistema em um ambiente, além do preparo dos materiais de treinamento.

Ambiente e Gerenciamento de Projeto funcionam como nos outros resumos.

Disciplina de Testes
Busca responder as seguintes perguntas: você conseguiu implementar a solução que resolve o problema levantado anteriormente? Como você garante que esse código realmente resolve o problema?

Objetivos

Localizar e documentar defeitos na qualidade do software. Testes são feitos para encontrar defeitos e nunca garantem que o sistema está livre de defeitos.

Validar as suposições feitas nas especificações de design e requisito através de uma demonstração de fato. Fala-se que são suposições porque a certeza só aparece após os testes. No levantamento de requisitos os analistas estão supondo que estão fazendo tudo correto.

Validar as funcionalidades dos software de acordo com o projeto e verificar se os requisitos foram implementados de maneira correta.


Papéis, Atividades e Artefatos


Analista de Testes é quem elabora o Plano de Testes. É o plano que define os objetivos dos testes para cada iteração. Se for o caso, pode ser feito um único Plano de Testes Mestre, que serve para todas as iterações.

No Plano de Testes existem os objetivos, a abordagem dos testes (caixa branca ou preta), os tipos de testes (desempenho, funcionais, segurança, etc). O plano també informa quantas pessoas vão trabalhar com isso e quais serão os documentos gerados pelos testes.

Projetista de Testes é quem gera os Casos de Teste, que são gerados a partir dos cenários dos Casos de Uso. Os Casos de Teste são especificações de entradas e saídas, mas os testes ainda precisam ser implementados depois disso.

Testador é quem vai implementar e executar os testes.

Artefato Importante para o Marco - Conjunto de Testes - execução, geração de relatórios e logs de execução dos testes.

Relacionamento Com Outras Disciplinas

Requisitos - fornece os casos de uso para a geração dos casos de teste. Fornece a base para geração dos testes.

Análise e Design: fornece o projeto e a arquitetura que devem ser testados.

Implementação: produz os componentes e builds que serão testados.

As disicplinas de Suporte funcionam como nos outros resumos.
Ambiente: prepara os guias, padrões e ferramentas.
Gerenciamento de Projetos: planeja as atvividades de testes para a iteração.
Gerenciamento de Controle e Mudanças: controlar, gerencia e versiona os artefatos de testes.

Marco da Construção: Capacidade Operacional Inicial
O produto está pronto para ser passado para a equipe de Transição. Todas as funcionalidades foram desenvolvidas e os testes ALFA foram concluídos. Testes ALFA e BETA são testes de aceitação do sistema. O usuário testa o sistema para aceitá-lo.

Os testes ALFA são realizados no final da fase de Construção e conduzidos por um conjunto restrito dos usuários finais, os mais importantes e experiêntes. O teste acontece NO AMBIENTE DE DESENVOLVIMENTO. É um teste controlado.

O manual do usuário é produzido e existe uma descrição do release atual.

Critérios de Avaliação
O produto está estável para ser implantado? Os problemas mais graves foram identificados e resolvidos? O resultado está coerente com o planejado? Os envolvidos estão prontos para a Transição?