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?
- Impossibilidade de atender requisitos não funcionais (desempenho, segurança).
- Falta de documentação, tornando a manutenção a longo prazo inviável.
- Degradação da estrutura do sistema devido a mudanças rápidas.
- Desalinhamento com os padrões de qualidade organizacional.