Fundamentos da Engenharia de Software¶
Abordagem: Ágil¶
Utilizamos o Sommerville para compreendermos qual abordagem, ciclo de vida e processo iriamos utilizar. Primeiramente devemos entender e retomar o contexto da equipe e do projeto:
- Especificação detalhada do projeto no início por restrições da disciplina
- Precisamos de uma estratégia incremental e com feedback frequente já que se trata de um jogo
- Somos uma equipe pequena, co-localizada e capaz de fazer comunicação informal
- O sistema não necessita de uma análise profunda antes de implementar como um sistema em tempo real mas precisa de um planejamento inicial por restrições da disciplina
- As tecnologias disponíveis para a equipe são amplas e com boas ferramentas
- A equipe se encontra na FGA semanalmente no mínimo duas vezes e mantém comunicação informal por chat
- A equipe é inexperiente na produção de jogos
- O sistema está sujeito à regulação externa (disciplina)
Apesar de 3 destes fatores apontarem para uma abordagem dirigida a plano, 5 apontam para uma abordagem ágil, de forma que nosso processo deve ser ágil mas suprir as necessidades que apontaram para uma abordagem dirigida a plano, principalmente um planejamento inicial mais detalhado.
Ciclo de vida: Iterativo e Incremental¶
Por se tratar de um jogo, é necessário jogar para confirmar que ele é divertido. Dessa forma, é necessário feedback frequente do cliente, demandando que o ciclo de vida seja iterativo. Adicionalmente, essas entregas deverão ser incrementais para que o cliente possa mexer na nova parte para ser capaz de dar seu feedback.
- Escopo determinado inicialmente, mas os elementos são integrados progressivamente
- Feedback frequente do usuário
- Mais simples de refinar e melhorar o produto
Processo: RAD¶
O Rapid Application Development, ou Desenvolvimento Rápido de Aplicação, é uma metodologia de desenvolvimento de software que prioriza um ciclo de trabalho curto, iterativo e incremental. Trata-se de um método que foi projetado para substituir as tradicionais técnicas de desenvolvimento, como o modelo cascata, que apresentavam processos mais lentos e pouco flexíveis.
Além disso, o RAD supre a necessidade de planejamento inicial mais detalhado e, como são frequentes as iterações, a equipe que é inexperiente e provavelmente vai cometer erros comuns de quem está aprendendo, vai conseguir errar rápido e aprender rápido para a nova iteração ou na própria prototipação.
- Escolha da abordagem ágil.
- Curto período de tempo para entrega.
- Ter feedbacks constantes em cima de protótipos seria de muita utilidade por se tratar de um jogo.
Referências Bibliográficas¶
1. Livro:
Sommerville, Ian. Engenharia de Software - 10a edição (2019)
2. Livro:
IEEE. Software Engineering Body of Knowledge