Skip to content

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