Qualidade de Software com XP, PSP e TSP
Classificado em Tecnologia
Escrito em em
português com um tamanho de 5,04 KB
10. Sobre XP, descreva com suas próprias palavras como a adoção das práticas abaixo podem maximizar a qualidade do produto de software gerado:
- A) Desenvolvimento Guiado por Testes (TDD): Conduzir o desenvolvimento apenas pelo que será efetivamente testado foca o esforço apenas nas funcionalidades do sistema, sem que a equipe gaste energia em "firulas" e outras melhorias cosméticas que só oneram o tempo e a dedicação da equipe;
- B) Build Contínuo / Integração Contínua: Testar e gerar continuamente e de forma automatizada todo o sistema garante a detecção precoce de bugs e outros problemas antes que eles se avolumem;
- C) Programação em Pares (Pair Programming): Quando o desenvolvedor sabe que seu código será revisado e criticado, ele tende a ser mais atencioso com o que faz. Somam-se ainda ao código a experiência e o conhecimento de duas mentes;
- D) Refatoração: Eliminar código redundante e replicado minimiza os esforços de manutenção do software;
- E) Projeto Simples: Código de fácil entendimento pode ser rapidamente alterado, corrigido e estendido por qualquer desenvolvedor versado na linguagem de programação usada e na arquitetura geral do sistema;
- F) Pequenas Versões: Pouco código a ser testado significa poucos bugs a serem identificados e corrigidos e, portanto, maior agilidade na depuração do software;
- G) Semana de 40 Horas: Desenvolvedores que descansam terão a mente em melhor estado e melhor focada na solução de problemas;
- H) Cliente no Local: A validação contínua e frequente pelo cliente do que está sendo construído garante entregas sem surpresas desagradáveis.
11. Sobre PSP, descreva com suas próprias palavras como a adoção dos princípios abaixo podem contribuir para a construção de um software de maior qualidade (escopo atendido, cronograma respeitado, orçamento dentro do previsto e do alocado):
- A) Cada desenvolvedor é único: Estimar prazos com base no grau de conhecimento e de dificuldade de cada desenvolvedor, pelo próprio desenvolvedor, é uma excelente forma de gerar estimativas mais precisas e realistas;
- B) Uso das melhores práticas e ferramentas: Adotar práticas já consagradas e ferramentas já bem testadas e produtivas minimiza problemas na adoção de práticas equivocadas e de ferramentas "bugadas";
- C) Registro do tempo gasto em cada atividade e das dificuldades encontradas: O registro de problemas e soluções implica na solução imediata de problemas já conhecidos. O registro de tempo melhora as estimativas de tempo e esforço necessário para executar atividades já realizadas no passado.
12. Sobre PSP, descreva com suas próprias palavras cada uma das atividades pertinentes ao processo de desenvolvimento de software, segundo o PSP (planning, design, design review, code, code review, compile, test) e o porquê de tais atividades contribuírem para um incremento significativo da qualidade do produto de software entregue ao final do processo:
- Planning: Planejamento do projeto (atividades x tempo, cronograma, recursos necessários, levantamento de requisitos funcionais e não funcionais);
- Design: Análise dos requisitos, projeto e modelagem do sistema (Use Cases e demais diagramas UML estruturais e comportamentais);
- Design Review: Revisão dos Use Cases e diagramas UML para fins de complementação, correção e melhorias diversas;
- Code: Implementação do sistema na linguagem de programação mais apropriada para a construção da aplicação;
- Code Review: Revisão do código para supressão de bugs por inspeção de código e refatoração;
- Compile: Compilação do código e geração da aplicação;
- Test: Testes unitários (automatizados ou não) e de integração (entre os módulos do sistema e entre o sistema e sistemas externos).
13. Sobre TSP, descreva com suas próprias palavras cada um dos princípios do processo TSP e comente sobre o impacto prático de cada um dos princípios no incremento efetivo da qualidade do produto de software entregue ao final do processo:
- A equipe define as metas e os papéis de cada membro nas atividades pertinentes à busca pelos objetivos;
- A estratégia da equipe (a ordem e o grau de importância do que deve ser feito) deve estar alinhada com a alta administração/comercial da empresa;
- A equipe deve empregar um mesmo processo de desenvolvimento, mesmas práticas e ferramentas de software;
- A comunicação dentro da equipe deve ser frequente e promover a troca de experiências e de conhecimentos entre seus membros.