O conteúdo a seguir não é essencial ao usuário de DOG, que não necessita dele para conseguir produzir jogos distribuídos usando a solução construída. Ele é voltado a quem deseja conhecer mais a fundo o projeto e a implementação de DOG.
DOG foi produzido a partir da abordagem Beyond, de desenvolvimento orientado a componentes, apresentada no livro “Desenvolvimento orientado a componentes com UML”, e também apresentada no curso em vídeo com mesmo título, ambos de autoria de Ricardo Pereira e Silva, desenvolvedor de DOG. Seguindo a abordagem adotada e dado à necessidade de suportar o desenvolvimento de jogos distribuídos, DOG foi desenvolvido como uma aplicação web cliente-servidor, estruturada como um software orientado a componentes.
A partir da abordagem adotada, foram produzidos três tipos de especificação UML: de DOG, como um software orientado a componentes, das interfaces dos componentes e dos componentes.
O desenvolvimento seguiu a sequência de etapas prevista, descrita no diagrama de atividades a seguir.
Etapas do desenvolvimento de programa orientado a componentes [Silva, 2018]
Foi definido que DOG seria composto por três componentes, um no lado servidor e dois no lado cliente. O componente do lado servidor foi denominado DOG Server. Para tornar transparente ao usuário de DOG a comunicação em rede, o lado cliente foi organizado como dois componentes conectados: DOG Framework, responsável pela intermediação da comunicação com DOG Server e o componente chamado Specific Game, na verdade uma “casca” a ser preenchida pelo desenvolvedor de um jogo especifico. A imagem a seguir (deployment diagram da especificação de DOG) mostra a organização dos componentes de DOG.
A especificação de DOG contém o resultado da execução das etapas do desenvolvimento, até a etapa “especificação estrutural do programa”, mais o feedback da etapa “especificação das interfaces dos componentes”.
Baixar a especificação UML de DOG como software orientado a componentes.
A partir da especificação de DOG, o esforço seguinte foi a etapa de especificação das interfaces dos seus três componentes.
Baixar as especificações UML das interfaces dos três componentes de DOG.
A partir da disponibilidade das especificações das interfaces dos três componentes, o esforço seguinte foi a etapa de desenvolvimento dos componentes, detalhada no diagrama de atividades a seguir.
Etapas do desenvolvimento de componente [Silva, 2018]
Baixar as especificações UML dos três componentes de DOG.
Na construção dos componentes, ao invés da adoção de Component Interface Pattern, prevista na abordagem Beyond, a opção foi por soluções mais compactas, em função da comunicação bastante simples entre os componentes:
Os três componentes foram implementados em Python, sendo que DOG Server foi implementado sob o framework Django e seu projeto omite todas as especificidades inerentes ao uso desse framework, destacando apenas a lógica do servidor.
Baixar a implementação de DOG Server.
A implementação de DOG Framework está disponível aos usuários, assim como a implementação (e projeto) de um jogo específico, o exemplo Gobblet Gobblers (ver demais páginas de DOG).
--------------------------------
[Silva, 2018] SILVA, Ricardo Pereira e. Desenvolvimento orientado a componentes com UML. Florianópolis, SC: Amazon, 2018. 283p.