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.

Entradas relacionadas: