Introdução

editar

Finalidade

editar

Este documento tem como finalidade especificar as práticas e as ferramentas que serão utilizadas no processo de manutenção dos Simuladores EA/GA.

Objetivo

editar

Este projeto tem como objetivo adicionar:

  • Ambiente de Desenvolvimento

Repositório do Projeto

editar

https://github.com/simuladores-ea-ga/macauba-litio/wiki

Gerenciamento de Configuração de Software

editar

Organização, Responsabilidades e Interfaces

editar
Papel Responsabilidade Responsável
Desenvolvedor de software Desenvolver e implementar o jogo João Vitor, Igor Ribeiro, Vitor Barbosa.
Gerente de Configuração de Software Planejar e gerenciar atividades de configuração dos Simuladores EA/GA Jéssica Cristina, Sabryna de Sousa.
Auditor de Configuração de Software Verificar e validar os artefatos produzidos e as atividades realizadas durante o projeto Matheus de Sousa Faria

Ferramentas, Ambiente e Infraestrutura

editar
Ferramenta Descrição
Vagrant Software que faz o provisionamento de ambientes utilizando soluções de virtualização.
VirtualBox Software que faz o gerenciamento de máquinas virtuais e será utilizado juntamente com o Vagrant.
Debian (Jessie) Sistema Operacional que será usado na máquina virtual de empacotamento.
Git Versionamento utilizado pela equipe de desenvolvimento.
Github Serviço web hosting compartilhado que usa como ferramenta de versionamento o Git.
Travis Ferramenta para realizar a integração contínua

Cronograma

editar
Data Descrição
24/04/2017 Elaboração e entrega do plano de GCS
25/04/2017 a 02/05/2017 Familiarização e configuração de ambiente do jogo
03/05/2017 a 10/05/2017 Criar tutorial para auxílio na instalação do jogo
29/05/2017 Ponto de Controle 1
30/05/2017 a 06/06/2017 Rafatorar Makefile
03/06/2017 a 10/06/2017 Estudo sobre a ferramenta de integração
05/06/2017 Ponto de Controle 2
11/06/2017 a 16/06/2017 Implementação da Integração Contínua e empacotamento .deb
17/06/2017 a 18/06/2017 Finalização das atividades e elaboração da apresentação final
19/06/2017 Apresentação Final

Integração Contínua

editar

Com o objetivo de ter maior integração ao que está sendo construído, foi feita uma integração contínua utilizando-se do Travis ao projeto, para que caso os desenvolvedores deem continuidade, possam utilizar-se disto para ter melhorar a qualidade do que está sendo produzido.

sudo: required
dist: trusty
language: cpp

install:
  - sudo apt-get update
  - sudo apt-get install libsdl2-2.0-0 libsdl2-dev libsdl2-image-2.0-0 libsdl2-image-dev libsdl2-ttf-2.0-0 libsdl2-ttf-dev libsdl2-mixer-2.0-0 libsdl2-mixer-dev -y
compiler:
   - g++
script:
  - make

Manual de Instalação

editar

Para instalar o Simuladores EA/GA deve-se seguir os seguintes passos:

  1. Clone o repositório.
    1. git clone https://github.com/simuladores-ea-ga/macauba
      
  2. Clone a engine utilizada no jogo.
    1. git clone https://github.com/fgagamedev/ijengine
      
  3. Entre na pasta da Engine e compile o projeto.
    1. cd ijengine && make && sudo make install && cd ..
      
  4. Copie o arquivo kernel.so.0.1.0 para dentro de macauba/libs.
    1. cd macauba/
      cp ../ijengine/kernel/sdl2/kernel.so.0.1.0 libs/
      
  5. Compile o projeto.
    1. make -j && make run
      

Sobre o jogo

editar

Os Simuladores EA/GA é um jogo de simulação sobre os ciclos de vida da macaúba e do lítio que possui o objetivo de auxiliar os alunos para melhor compreensão destes ciclos nas disciplinas de Engenharia e Ambiente e Gestão Ambiental.

Como Jogar

editar
  1. Acessar o menu inicial
  2. Selecionar o ciclo de vida
  3. Arrastar para a imagem do ciclo de vida as peças (entradas, saídas, atividades) correspondentes ao que está faltando no ciclo

Imagens do jogo

editar
 
 
 

Vídeo do jogo

editar

<https://www.youtube.com/watch?v=xzVGaDVV8Ho&feature=youtu.be>

Empacotamento

editar

Configuração

editar
  • O empacotamento foi feito de maneira manual, criando as pastas e os arquivos necessários para o fazê-lo.
  • Os principais arquivos modificados foram o control e o copyright.
    Package: macauba
    Version: 1.0
    Maintainer: Sabryna Sousa <sabryna.sousa1323@gmail.com>
    Section: games
    Source: macauba
    Homepage: <https://github.com/simuladores-ea-ga/macauba-litio/>
    Architecture: all
    Priority: optional
    Depends: libsdl2-dev (>=2.0.3), libsdl2-ttf-dev (>=2.0.12), libsdl2-mixer-dev (>=2.0.0), libsdl2-image-dev (>=2.0.0)
    Description: Simuladores EA/GA
    
    Control
    Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
    Upstream-Name: Simuladores EA/GA
    Source: https://github.com/simuladores-ea-ga/macauba-litio/
    
    Files: *
    Copyright: Igor Ribeiro
               João Vitor Araujo
               Vitor Barbosa
    
    License: GNU GENERAL PUBLIC LICENSE Version 1
    
    Files: debian/*
    Copyright: 2017 Sabryna Sousa <sabryna.sousa1323@gmail.com>
    License: GPL-2+
     This package is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
     the Free Software Foundation; either version 2 of the License, or
     (at your option) any later version.
     .
     This package is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
     .
     You should have received a copy of the GNU General Public License
     along with this program. If not, see <https://www.gnu.org/licenses/>
     .
     On Debian systems, the complete text of the GNU General
     Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
    
    # Please also look if there are files or directories which have a
    # different copyright/license attached and list them here.
    # Please avoid picking licenses with terms that are more restrictive than the
    # packaged work, as it may make Debian's contributions unacceptable upstream.
    
    Copyright
  • Para construir o pacote debian foi executado o seguinte comando:
    sudo dpkg-deb --build macauba/
    

Instalação

editar
  • Para instalar o pacote .debian basta baixá-lo neste link [1]
  • Execute o comando abaixo para instalá-lo via terminal
sudo dpkg -i macauba.deb
  • Para executar o jogo pode-se procurar nos aplicativos instalados ou via terminal
    cd /usr/bin/macauba/
    bin/game

Conclusão

editar

A matéria foi de suma importância para o compreendimento do por que fazer utilização dos mecanismos de gerenciamento de configuração em um software. Assim como os pontos positivos que foram, houve os negativo, no qual a dupla encontrou no desenvolver da disciplina. Abaixo encontra-se tais pontos:

Pontos Positivos

editar
  • Apredizado sobre como realizar uma boa gerência de configuração de software;
  • A prática realizada em um projeto;
  • Interação dos alunos e professor.

Pontos Negativos e Desafios

editar
  • Dificuldades para compilar o jogo: A dupla teve dificuldade em executar o primeiro jogo que foi escolhido, fazendo assim que elas perdessem tempo tentando solucionar o problema.
  • Troca do projeto: Seguindo com o problema da compilação do projeto, decidiu-se trocar de projeto, visto que já estava perto do prazo do primeiro ponto de controle, impedindo assim o pregresso do projeto.
  • Cmake compila, mas não executa: O CMake não foi proposto pela dupla, mas para ter algo mais completo, decidiu-se realizar a tentativa de executar o CMake, porém pelo baixo conhecimento de como o make do ijengine funcionava, teve-se dificuldades em concluir o CMake, ficando assim pela metade.

Arquivo CMakeList.txt-macauba/engine

-set(BASE_DIR "${PROJECT_SOURCE_DIR}/engine")

-set (ENGINE_INCLUDE_DIR "${BASE_DIR}/include" CACHE INTERNAL "")
-set (PROJECT_SRC_DIR     "${BASE_DIR}/src")

# Gets the list of files inside the src directory
-file(GLOB_RECURSE SOURCES "${PROJECT_SRC_DIR}/*.cpp" "${PROJECT_SRC_DIR}/*.c")

-include_directories("${ENGINE_INCLUDE_DIR}")

-add_library(engine STATIC ${SOURCES})


Arquivo CMakeList.txt-macauba/engine

-cmake_minimum_required(VERSION 3.2.2)
-project(macauba LANGUAGES CXX)
-set(CMAKE_CXX_STANDARD 11)
-set(CMAKE_CXX_STANDARD_REQUIRED ON)

# Set directory folders

-set (PROJECT_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/include")
-set (PROJECT_SRC_DIR     "${PROJECT_SOURCE_DIR}/src")
-set (PROJECT_ASSETS_DIR  "${PROJECT_SOURCE_DIR}/res")

-file(GLOB_RECURSE SOURCES "${PROJECT_SRC_DIR}/*.cpp")

# Include Headers

-include_directories("${PROJECT_INCLUDE_DIR}")

# Add Engine

-set (PROJECT_ENGINE_DIR "${PROJECT_SOURCE_DIR}/engine")
-add_subdirectory(${PROJECT_ENGINE_DIR})
-include_directories(${ENGINE_INCLUDE_DIR})

# Compilation Flags

-set(COMPILE_FLAGS "${COMPILE_FLAGS} -W -Wall -pedantic -Wshadow -O2 -g")

# Executable

-add_executable(macauba ${SOURCES})
-target_link_libraries(macauba
					            engine
                     -SDL2 SDL2_image SDL2_ttf SDL2_mixer ${CMAKE_DL_LIBS})

Resultado ao tentar executar o CMake:

# Executa o comando: 

-cmake .

# O terminal gera:

-- Configuring done
-- Generating done
-- Build files have been written to: /home/jessicacris/Downloads/macauba
#Logo após, executa o comando: 

-make

# O terminal gera:

[ 52%] Built target engine
[100%] Built target macauba

Referências Bibliográficas

editar

Macauba. Disponível em: <https://github.com/simuladores-ea-ga/macauba-litio>

IJengine. Disponível em: <https://github.com/fgagamedev/ijengine>