Skip to content

Time: Celta 80km\h

gabeverse edited this page Jul 10, 2018 · 54 revisions

Informações

Somos o grupo Celta 80 km/h e nossa missão é absorver todas as lições das aulas de Fundamentos de Engenharia de Software ministradas em 2018.1 na Universidade Federal do Rio de Janeiro e transformá-las em um plug-in sensacional para a plataforma i-Educar. A plataforma já é implementada em centenas de escolas da rede pública por todo o Brasil e saber que nosso trabalho pode melhorar de certo modo a educação do nosso país nos motiva.

Vamos expor aqui todo o nosso progresso na elaboração do plug-in, resumindo aulas e gerando subprodutos que irão nos auxiliar na montagem do projeto sempre que requisitado por nosso orientador, Luis Felipe Coimbra Costa. Esta página também servirá como uma central para toda outra informação pertinente acerca do projeto supracitado.


Equipe

Gabriel Dias da Silva Mattos

Desenvolvedor e Relações Públicas (Música)

Joyce de Sant'Anna Brum

Scrum Master (Co-piloto)

Luis Felipe Coimbra Costa

Product Owner (Carona)

Thiago Outeiro Pereira Damasceno

Designer (GPS)

Vitor Mattos Milioni

Desenvolvedor (Piloto)

Objetivo

Desenvolver uma extensão para formatar relatórios gerados pelo software livre i-Educar.


Index de Delivarables

Produto Descrição Entrega
Canvas Canvas Montado Cooperativamente 26/mar
Resumo I Resume aulas dos dias 19-21/03. Sobre manifesto ágil e scrum. 26/mar
Resumo II Resume aulas dos dias 26-28/03. Sobre processo de software e Canvas. 02/abr
Mapa Mental Mapa mental sobre o projeto da disciplina 02/abr
Resumo III Resume aulas dos dias 09-11/04. Discussão sobre o rumo do projeto tendo em vista os problemas apresentados por Caxias 16/abr
Metáfora Barco Análise da metáfora do barco aplicada ao nosso time 29/abr
Histórias de Usuário As Histórias de Usuário identificadas pela equipe até o momento 29/abr
BurnDown Chart Gráfico burndown chart do desenvolvimento por membro 18/mai
Resumo IV Resume as aulas dos dias 14/05 e 16/05, cujo tema foi testes 22/mai
Casos de uso Casos de uso desenvolvidos para o dia 10/06 10/jun
Casos de teste Caso de teste desenvolvido para o dia 03/07 03/jul

BackLog

História Status
Eu como diretor quero gerar relatórios nos formatos pdf, excel e odt para me adequar a qualquer situação To do
Eu como diretor quero gerar o relatório de maneira sequencial para ter mais praticidade Done
Eu como diretor quero poder lançar atualizações diárias para poder não ter todo o trabalho de uma vez Done
Eu como diretor quero poder editar dados já lançados para que não tenha que gerar um novo relatório do zero em caso de erro. Done
Eu como diretor quero poder me referenciar apenas ao mês e ano para gerar a página do cardápio para que não tenha que olhar no calendário. Done
Eu como diretor quero cadastrar os dados da minha escola de forma a não ter que ficar repetindo-os em todos os relatórios. Done
Eu como diretor gostaria que cálculos usando dados pré-inseridos fossem feitos pelo sistema para que eu tenha mais praticidade. Done
Eu como diretor gostaria de lançar diretamente os itens usados no cardápio para que não gaste tempo procurando um a um na tabela. Done
Eu como administrador quero poder mudar aspectos do modelo de relatório a fim de que todos os computadores utilizem o novo modelo To do
Eu como leitor quero poder filtrar os relatórios por escola para facilitar minha busca Done
Eu como leitor quero poder filtrar os relatórios por mês de referência para facilitar minha busca To do
Eu como usuário do sistema gostaria de poder ter acesso ao sistema através de um login e senha a fim de que possa trabalhar efetivamente. Done
Eu como administrador quero poder gerar novos perfis a fim de que possa dar acesso a outras pessoas de acordo com seu nível de acesso. Done
Eu como usuário gostaria que todos os arquivos fossem salvos em um banco de dados para centralizar a informação. Done
Eu como usuário quero poder interagir com uma tela de login a fim de que a aplicação fique mais intuitiva e organizada Done
Eu como administrador quero adicionar e modificar permissões por tipo de usuário para que tenha mais liberdade de modificar futuramente. Done
Eu como administrador quero poder editar os dados de um usuário existente no banco de dados para que não precise excluir em caso de perda de senha. Done
Eu como administrador quero poder excluir um usuário do banco de dados para que possa remover o acesso ao sistema de alguém Done

Testes

Tipo de teste Classe Resultado
Unitário - I.M. Calendario
Unitário - I.M. Escola
Unitário - I.M. MaisEducacao
Unitário - I.M. Permissoes
Unitário - I.M. RefeicoesDados
Unitário - I.M. Relatorio ---
Unitário - I.M. TelaCadastro
Unitário - I.M. TelaLogin
Unitário - I.M. TiposDeUsuario
Unitário - I.M. Usuario

I.M. - Interfaces do Módulo

Tomate - 30/05/2018

  • Organização de tarefas - Descobrimos para que serve o pull request e sua importância no uso do git para integração, como nosso projeto ja estava integrado no git, não precisamos fazer esta etapa.
  • A organização de pomodoro ajuda a separar as tarefas de forma coesa e simples :), contudo limita o tempo o que pressiona a finalização das tarefas.
  • Após o intervalo a issue a ser feita era Executar tarefas, que nós interpretamos como sendo terminar as tarefas da sprint anterior ou fazer o sprint planning. Optamos por fazer o sprint planning.
  • Backlog: Configurar o banco no pc, Configurar os botões da tela Principal para só aparecer as opções permitidas ao usuario, Conectar todas as partes do codigo no BdManager, conseguir gerar o Relatorio nos formatos de texto, Terminar de colocar as informações da capa relatorio
  • Conversa entre times: foi de muita utilidade a conversa entre times, pois pudemos ver como outros times estavam tratando a ideia dos testes unitários usando junit e mockito.
  • Testes: estávamos muito perdidos sobre como faríamos para automatizar os testes de interface, mas não tínhamos percebido que já podíamos ter começado com os testes de unidade, utilizando o JUnit e o Mockito. Como estamos usando a IDE Netbeans e a mesma possui integração com JUnit, criar os testes de unidade acabou se tornando uma tarefa muito menos complicada do que parecia a princípio. Nos testes de unidade, testaríamos método por método de cada classe. Fotos:

Resumo I - Manifesto Ágil e Scrum

Metodologia ágil é um modelo de esquematização e execução de projetos de maneira muito mais eficiente e comunicativa do que as clássicas. Uma das maneiras de executar o projeto por esta metodologia é utilizando o scrum, que em reuniões periódicas, normalmente semanais, mas com prazo máximo de um mês (não mais que isso), decide uma sequência de tarefas a serem executadas (sprints) além de estabelecer de maneira mais ampla tudo que deve ser executado pensando em seus prazos de entrega, a fim de cumprir com os requisitos dentro de seus prazos.

Esta maneira de ver o projeto de uma maneira mais geral, estabelecendo metas a longo prazo, é chamada de BackLog e são nas tarefas definidas neste que é decidida e divida a sprint entre todos os desenvolvedores do grupo. Já os requisitos representam todas as características e funcionalidades que um determinado software possui, tais como, ter uma interface amigável, ter uma opção de modificar todas as palavras selecionadas por um outra específica ou um pedido do usuário, como a solicitação de que haja um botão na cor de rosa no canto inferior esquerdo.

Um modo amplamente difundido e conhecido de se aplicar a metodologia ágil no processo de idealização do projeto é utilizando o project model canvas, que tenta responder de maneira colaborativa e organizada em pequenos blocos as perguntas fundamentais do mesmo: Por que?, O que?, Quem?, Como? e Quanto?

Resumo II - Processo de Software e Canvas

Duas equipes podem ter como resultado final da elaboração dois Canvas completamente diferentes, mesmo que o contexto, as condições base e o projeto seja o mesmo. Isto acontece pois a elaboração bastante subjetiva e depende muito de como cada equipe olha para o projeto como um todo.

Entretanto, existem aspectos fundamentais que não podem deixar de estar presente em todos os canvas, o que poderíamos chamar de “pontos chaves”. Um exemplo é o fato de o product owner sempre aparecer presente na equipe, pois pelo modelo de processo SCRUM o product owner é um importante membro da equipe e deve participar ativamente da idealização do projeto.

Vale a pena comentar a diferença entre Processo, Processo de Software e Modelo de Processo. Um processo é uma sequência de passos com um propósito, enquanto que um processo de software são atividades, métodos, tecnologias e práticas utilizadas para o desenvolvimento de um software. Um Modelo de Processo é a abstração de um determinado processo, de forma a descrevê-lo de uma maneira geral.

Um projeto é uma instância de um processo, pois um determinado processo pode ser aplicado para mais de um projeto, enquanto que um mesmo projeto só pode usar um único processo. Aplicando esta comparação para o projeto atual de desenvolver um plug-in para o e-Educar, o processo utilizado seria o SCRUM.

Para desenvolver o projeto será utilizada a linguagem java, por isto, durante uma das aulas foi apresentado sua estrutura principal.

Algumas histórias feitas para o dia 18/04

Burndown charts

Sprint 2