Fundamentos de Engenharia de Software e Métodos Ágeis

Classificado em Computação

Escrito em em português com um tamanho de 4,12 KB

Desafios no Desenvolvimento de Software

Muitas empresas priorizam a velocidade de implantação em detrimento da qualidade e dos requisitos, pois estes sofrem mudanças rápidas e imprevisíveis. Frequentemente, quando o software é entregue, a necessidade original pode ter mudado, tornando o produto inútil.

Quando não utilizar métodos ágeis

Não são recomendados para grandes sistemas ou engenharia de sistemas críticos, devido à necessidade de rigorosa análise de segurança, proteção e confiabilidade, que exigem adaptações significativas nos métodos ágeis.

Extreme Programming (XP)

Focado na agilidade das equipes e na qualidade dos projetos, o XP apoia-se em três valores fundamentais:

  • Simplicidade: Desde o levantamento de requisitos até a codificação e testes.
  • Comunicação: Obrigatória para evitar lacunas entre equipe, cliente e fornecedor.
  • Feedback: Prática de troca de informações entre membros da equipe e o cliente.

Boas Práticas de XP

  • Cliente sempre disponível para colaborar.
  • Uso de metáforas para facilitar a comunicação.
  • Reuniões de planejamento entre cliente e técnicos.
  • Pequenas versões para detecção precoce de necessidades.
  • Testes de aceitação e simplicidade de projeto.

Atributos de Qualidade do Software

  • Manutenibilidade: Capacidade de evoluir conforme as mudanças do cliente.
  • Confiança: Inclui confiabilidade, proteção e segurança.
  • Eficiência: Uso otimizado de recursos (memória e processador).
  • Usabilidade: Facilidade de uso para o público-alvo.

Internet e Software

A internet transformou o funcionamento dos softwares, permitindo o armazenamento em nuvem. A vantagem é a segurança dos dados, enquanto a desvantagem é a dependência da conectividade.

Test-First (Desenvolvimento Orientado a Testes)

Os testes são elaborados antes da implementação. O desenvolvimento consiste em criar o software para que o teste funcione. A automação é indispensável para a viabilidade desta prática.

Desafios da Engenharia de Software

  • Performance e novos algoritmos.
  • Escalabilidade e manutenção de sistemas complexos.
  • Reutilização de código e certificação profissional.

Modelos de Processo

Desenvolvimento Incremental

Entrega incrementos ao cliente para uso operacional. Permite identificar prioridades, mas exige refatoração constante para evitar a degradação da estrutura do sistema.

Modelo Espiral (Boehm)

Representado como uma espiral onde cada volta é uma fase do processo. Foca no gerenciamento de riscos e na tolerância a mudanças.

RUP (Rational Unified Process)

Oferece visões estáticas e dinâmicas, permitindo que workflows (como modelagem de negócios ou testes) estejam ativos em todas as fases, com intensidades variadas.

Comparativo de Metodologias

  • Métodos Ágeis: Ideais para requisitos voláteis; visam reduzir a burocracia.
  • Scrum: Desenvolvimento em partes gerenciáveis, foco na comunicação e entrega incremental.
  • Métodos Convencionais: Exigem especificação detalhada e equipes pequenas.

Vantagens e Desvantagens do XP

  • Vantagens: Programação em pares (revisão mútua), participação ativa do cliente e simplicidade.
  • Desvantagens: Aumento de custo com programação em pares e dificuldade em manter a simplicidade com mudanças constantes.

Por que não usar protótipos como sistemas de produção?

  1. Impossibilidade de atender requisitos não funcionais (desempenho, segurança).
  2. Falta de documentação, tornando a manutenção a longo prazo inviável.
  3. Degradação da estrutura do sistema devido a mudanças rápidas.
  4. Desalinhamento com os padrões de qualidade organizacional.

Entradas relacionadas: