Ir para o conteúdo

Documento de Visão

Histórico de Revisão

Data Versão Descrição Autor(es)
08/10/2023 1.0 Criação do documento de escopo Grupo Centauri
24/10/2023 2.0 Atualizando o documento de visão para ficar correspondente ao de escopo

1. VISÃO GERAL DO PRODUTO

1.1 PROBLEMA

Qual é uma das principais dificuldades enfrentadas pelos alunos da Universidade de Brasília que pode impactar negativamente suas oportunidades, relacionada à dificuldade de encontrar documentos importantes e de interesse devido à demora na busca, documentos espalhados ou desatualizados?

1

Imagem 1 - Visão do Problema

1.2 DECLARAÇÃO DE POSIÇÃO DO PRODUTO

1. Qual é o produto que o grupo se propõe a desenvolver? É um motor de pesquisa, com o principal objetivo buscar documentos oficiais da Universidade de Brasília de uma maneira rápida e com eles centralizados, para facilitar o usuário encontrar o que deseja. 2. O que torna este produto diferente dos seus concorrentes (se existirem concorrentes)? 3. Quem são os usuários-alvo e clientes do produto? Quais suas características e por que o produto é importante para eles. Os usuários-alvo são alunos da Universidade de Brasília, o produto é importante para eles porque eles podem encontrar documentos da faculdade com facilidade. 4. Por que os clientes deveriam utilizar / comprar este produto? Eles devem usar esse produto, porque muitas vezes um aluno pode demorar para achar algum documento importante que esteja procurando, e a aplicação além de deixar todos eles centralizados, a busca é feita de maneira rápida.

. .
Para: estudantes da Universidade de Brasília
Necessidade: encontrar documentos importantes e interessantes da faculdade
O(UnBuscas): é uma aplicação WEB
Que: busca documentos oficiais da Universidade de Brasília
Ao contrário: de outros motores de busca que demoram mais para pesquisar
Nosso produto: tem uma alta eficiência e rapidez na hora de buscar

Tabela 1 - Posição do produto

1.3 OBJETIVOS DO PRODUTO

O objetivo do projeto é desenvolver um software que simplifica e padroniza a busca por documentos da Universidade de Brasília (UnB). A intenção é criar uma experiência de busca mais intuitiva e amigável, diminuindo a quantidade de obstáculos que o usuário possa enfrentar devido à diversidade de formatos e estruturas de arquivos que a UnB apresenta. Ao proporcionar uma ferramenta que torna isso mais acessível para o público.

1.4 TECNOLOGIAS A SEREM UTILIZADAS

  • Linguagens de Programação: Rust, React
  • Framework - Actix-web: criar o aplicativo web, tratando solicitações HTTP.
  • Biblioteca - Actix-rt, Rayon: Criar iteradores que usam processamento paralelo, Serde: Facilitar a manipulação dos documentos, transformando os vetores com os documentos em JSON e vice-versa, jQuery.
  • API - Meili Search-SDK: Acesso ao banco de dados do motor de busca, NodeJs - acesso ao banco de dados dos usuários
  • MySQL: Criar e gerenciar o banco de dados.
  • Ambiente - Figma: Criação de designs da interface para o usuário, Github: Hospedar o projeto e salvar todo tipo de mudança do código-fonte , Zenhub: Gerenciamento e acompanhamento do progresso do projeto
  • Método Ágil: ScrumXP
  • VsCode: Ferramenta usada para programar em Rust.

2.VISÃO GERAL DO PROJETO

2.1 CICLO DE VIDA DO PROJETO DE DESENVOLVIMENTO DE SOFTWARE

2

Imagem 2 - Ciclo de Vida

2.2 ORGANIZAÇÃO DO PROJETO

Papel Atribuições Responsável
Desenvolvedor do Frontend Codificar e arrumar o front, bem como documenta-lo e fazer os testes unitário necessários. Danielle
Felipe
Renan
Desenvolvedor do backend de pesquisas Codificar e arrumar o back de pesquisa, arrumar os arquivos da UNB, conectar com o front, documentar o que for necessário e fazer os testes unitário. Thomas
João Paulo
Pedro Miguel
Desenvolvedor do backend de cadastro Codificar e arrumar o back de cadastro, arrumar uma forma de conectar ao front, documentar o que for necessário e fazer os testes unitário. André João
Mariana
Cliente Testar o produto, ver se é aquilo que foi desejado, e caso necessário, falar se quer alguma mudança. Todos que precisarem de alguma informação da UnB.
Monitor Dá algumas dicas aos desenvolvedores, dando um base do que seria bom adicionar ou tirar do trabalho, e tirar duvidas em relação ao projeto. Gustavo

Tabela 2 - Organização do projeto e equipe

2.3 PLANEJAMENTO DAS FASES E/OU ITERAÇÕES DO PROJETO

Sprint Produto (entrega) Data Início Data Fim Entregáveis % Conclusão
Sprint 1 Planejamento do projeto 28/08/2023 25/09/2023 Levantamento de issues e US’s
Levantamento de requisitos
Definição de ferramenta
100%
Sprint 2 [US] 1 e 2 25/09/2023 02/10/2023 Popular banco de dados
Criar parser de textos
100%
Sprint 3 [US] 3 e 4 02/10/2023 09/10/2023 Carregar dados do parser
Visualizar documentos na interface
100%
Sprint 4 [US] 5 16/10/2023 23/10/2023 Mostrar os dados de pesquisa 100%
Sprint 5 [US] 6 e 7 23/10/2023 30/10/2023 Visualizar erro
Entrar pela minha conta na página
Em andamento
Sprint 6 [US] 8 e 9 30/10/2023 06/11/2023 Armazenar dados de usuário
Filtrar dados de pesquisa
A fazer
Sprint 7 [US] 10 06/11/2023 13/11/2023 Favoritar documentos A fazer
Sprint 8 [US] 12 13/11/2023 20/11/2023 Visualizar miniatura dos documentos favoritados A fazer

Tabela 3 - Planejamento de fases e iterações do projeto

2.4 MATRIZ DE COMUNICAÇÃO

Descrição Área/Envolvimento Periodicidade Produtos Gerados
• Acompanhamento das atividades em andamento
• Acompanhamento dos riscos, compromissos, ações pendentes, indicadores
Equipe do Projeto Semanal
Quinzenal
• Transcrição da reunião
• Sprint Review pelo Microsoft Teams da Equipe
• Sprint Planning pelo Microsoft Teams da Equipe
• Comunicar situação do projeto Equipe Diariamente • Transcrição das reuniões disponibilizado no Microsoft Teams
• Documento de Visão
• Mensagens pelo grupo da equipe no Whatsapp.
• Gerenciar e supervisionar fases do Projeto Equipe Diariamente • Aplicativo voltado para gerência de projetos: Trello
• Relacionar desenvolvimento do software e seu versionamento • Github

Tabela 4 - Matriz de comunicação

2.5 GERENCIAMENTO DE RISCOS

Risco Grau De Exposição Mitigação
Aumento do Escopo do Projeto Baixo • Reunião de planejamento de sprint semanal
• Backlog documento acompanhamento do projeto pelo Zenhub
Não entregar das sprints completas Baixo Reajuste de entregas por sprint e tamanho da sprint para o nível de energia do time
Trancamento da disciplina por parte da equipe Médio • Reajuste das sprints de todo projeto
• Diminuição parcial do escopo
Mudança de Backlog para entregar releases Médio • Revisão de backlog constante
• Rotação de conhecimento na equipe
Falta de conhecimento para trabalhar US Alto • Divisão de conhecimentos
• Equilibrar pares de programadores nas issues
• Recomendações com o monitor

Tabela 5- Gerenciamento de riscos

2.6 CRITÉRIOS DE REPLANEJAMENTO

  • Mudança no número de membros da equipe;
  • Mudança de funções entre os membros;
  • Alteração de prazo de entrega;
  • Utilização de tecnologias diferentes do previsto;
  • Novos requisitos para o projet

3. PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

ScrumXP: O ScrumXP combina as metodologias Scrum e Extreme Programming(XP). Scrum é uma abordagem ágil de desenvolvimento de software que enfatiza a entrega em ciclos curtos de tempo, chamados de sprints. Valoriza também a colaboração e trabalho em equipe a partir de times que conseguem ser auto-organizáveis e adaptáveis. O XP (extreme programming) é uma metodologia com foco em agilidade de equipes e qualidade de projetos, apoiada em valores como simplicidade, comunicação, feedback e coragem. O XP é uma metodologia baseada em comportamentos e atitudes. Scrum:

scrum

Imagem 3 - Scrum diagrama de implementação

Cerimônias do Scrum:

Cerimônias O que é
Sprint É um período predefinido em que uma equipe trabalhará para atingir um objetivo específico.
Sprint Planning É uma reunião onde toda a equipe trabalha em conjunto para identificar o objetivo da sprint e definir o objetivo e o planejamento da sprint.
Daily Na Daily, todos os dias do sprint, a equipe de desenvolvimento se reúne para revisar o progresso na sprint.
Retrospectiva da sprint A retrospectiva é uma reunião onde a equipe analisa o que deu certo e onde há espaço para melhorias durante uma retrospectiva do sprint

Tabela 6 - Scrum e suas cerimônias

Práticas Utilizadas do XP:

Práticas O que é
Refatoração Realizaremos manutenções periódicas no código, a fim de melhorar o design e a estrutura do código.
Projeto Simples Implementaremos o Projeto simples, significando que o código será eficiente, e atenderá aos requisitos e que seja fácil de testar, refatorar e adicionar novas funcionalidades.
Integração Contínua O código irá ser frequentemente integrado (versionado) ajudando tanto na questão da transparência como no aumento da segurança do código a partir do controle de versões, evitando perda do código por modificações.
Posse Coletiva A equipe passa a ser responsável por cada arquivo de código, não sendo necessário solicitar autorização para fazer alterações.
Padronização de código Para que o desenvolvimento do código seja bem definido, consistente e de fácil leitura e interpretação Utilizaremos padrões de código. Essa prática melhora a qualidade geral do código produzido.
Small Releases (Pequenas versões) Permite entregar o valor de forma incremental e iterativa.
Testes Unitários Adotaremos os testes unitários a fim de garantir a qualidade do código e a sua aderência aos requisitos.

Tabela 7 - Scrum e suas cerimônias

4 DETALHAMENTO DE ATIVIDADE DO PROJETO

4.1 ATIVIDADE 1

Atividade Método Ferramenta Entrega
Criação do Protótipo de Baixa Fidelidade ... Figma 25/09/2023

Tabela 8 - Atividade 1 do projeto

4.2 ATIVIDADE 2

Atividade Método Ferramenta Entrega
Levantamento de Issues e US ... Google docs 25/09/2023

Tabela 9 - Atividade 2 do projeto

4.3 ATIVIDADE 3

Atividade Método Ferramenta Entrega
Levantamento de requisitos ... Google docs 25/09/2023

Tabela 10 - Atividade 3 do projeto

4.4 ATIVIDADE 4

Atividade Método Ferramenta Entrega
Definição de ferramentas ... Teams 25/09/2023

Tabela 11 - Atividade 4 do projeto

4.5 ATIVIDADE 5

Atividade Método Ferramenta Entrega
Protótipo de alta fidelidade ... Figma 02/10/2023

Tabela 12 - Atividade 5 do projeto

4.6 ATIVIDADE 6

Atividade Método Ferramenta Entrega
Organizar o repositório da disciplina ... Github 09/10/2023

Tabela 13 - Atividade 6 do projeto

4.7 ATIVIDADE 7

Atividade Método Ferramenta Entrega
Sugestão de busca ... a decidir 06/11/2023

Tabela 14 - Atividade 7 do projeto

5. LIÇÕES APRENDIDAS

5.1 UNIDADE 1

Durante a unidade 1, as atitudes tomadas, levando em consenso com a opinião da maioria do grupo, consistiram em separar os melhores frameworks para lidar com a nossa proposta de projeto, seja na parte do back-end, como na do front-end, também prestando atenção no nível de conhecimento da maioria das pessoas, e suas disponibilidades de poder aprender elementos novos.

Sendo assim, conseguimos concluir que fazer um back-end em rust, utilizando o MeilliSearch, MeilliSearch - SDK, Actix-web e Actix-rt. Por fim, tivemos a escolha do front o qual seria feito através do React junto a CSS, JavaScript e html.

No começo do projeto, nosso objetivo era focar em fazer o motor de busca, e uma interface bem simples, então tomamos essa decisão - sobre quais ferramentas iríamos utilizar - visando a isso.

Em relação aos ciclos de vida de um produto, foi nos apresentado dois: o Scrum e o XP. Ambos são metodologias ágeis que acreditamos beneficiar nosso projeto. Portanto, a metodologia dele será ScrumXP com Kanban.

6. PRÓXIMOS PASSOS

6.1 PRODUCT BACKLOG

6.1.1 Requisitos funcionais

  • Login por meio da autenticação do Google
  • Possibilidade de favoritar documentos

6.1.2 Requisitos não funcionais

  • Edição de conta do usuário
  • Login por email
  • Filtrar dados da pesquisa

6.2 SPRINT E RELEASES.

6.2.1 SPRINT

Sprint Nº Data Metas
1 28/08/2023 - 25/09/2023 Levantamento de issues e US’s
Levantamento de requisitos
Definição de ferramentas
2 25/09/2023 - 02/10/2023 Popular banco de dados
Criar parser de textos
02/10/2023 - 09/10/2023 Carregar dados do parser
Visualizar documentos na interface
4 09/10/2023 - 16/10/2023 Mostrar os dados de pesquisa
5 16/10/2023 - 23/10/2023 Visualizar erro
Entrar pela minha conta na página
6 23/10/2023 - 30/10/2023 Armazenar dados de usuário
Filtrar dados de pesquisa
7 30/10/2023 - 06/11/2023 Favoritar documentos
8 13/10/2023 - 20/11/2023 Visualizar miniatura dos documentos favoritados

Tabela 15 - Detalhamento das Sprints

6.2.2

Releases são na visão geral são as versões específicas de um software disponibilizadas ao público ou a um grupo seleto de usuários. Cada release pode conter novos recursos, correções de bugs, melhorias de desempenho e outras mudanças.

Release Nº Data Entregas
1 25/09/2023 - 30/10/2023 • Entrega do Back-end responsável pelo funcionamento motor de busca
• Entrega do Layout Básico de Interfaces relacionadas ao motor de busca
• Entrega funcional isquêmica do Back-end responsável pelo gerenciamento de usuários
2 30/10/2023 - 13/11/2023 • Entrega do Back-end responsável pelo gerenciamento de usuários
• Entrega do Front-End mostrando acesso pelo usuário ao site
• Entrega da filtragem de documentos otimizada
3 13/10/2023 - 27/11/2023 • Entrega do funcionamento da ação de favoritar documentos
• Entrega dos testes unitários e de integração
• Entrega da documentação do projeto

Tabela - 16 Detalhamento de Releases que serão feitas pelo grupo

6.3 MINIMUM VIABLE PRODUCT (MVP)

Versão mais simples e enxuta de um produto, empregando o mínimo possível de recursos para entregar a principal proposta de valor da ideia com apenas o fundamental para o funcionamento da aplicação. Considerando a UnBuscas como plataforma, temos como objetivo mínimo prover um mecanismo para busca que retorne resultados relevantes para o público alvo, os estudantes da universidade. Além disso, a experiência de busca deve ser intuitiva, e o processo eficiente, o que pode ser definido de diferentes formas. A definição escolhida pela equipe foi a de haver uma variedade de formas para o usuário filtrar e encontrar o conteúdo mais relevante. Isso será feito com o uso de filtros e ferramentas de ordenação.

7 REFERÊNCIAS

LETÍCIA, M.; PEDRO MIGUEL. MDS Centauri - Backlog e Critérios de Aceitação. 2023. Disponível em: https://docs.google.com/spreadsheets/d/18qN3aizmMQCIOUuCEOiuYvgYZNmI8NbCw8UrxjjkHCk/edit#gid=600013620.

AJAX, Ricardo. Pacote: Mapa de competências: conhecimento geral dos alunos. In: AJAX, Ricardo. Mapa de competencias. Aprender 3, 30 ago. 2023. Disponível em: https://aprender3.unb.br/course/view.php?id=19389§ion=1. Acesso em: 8 nov. 2023.

GUEDES, Marylene. O que é XP - Extreme Programming?. TreinaWeb, 2020. Disponível em: https://www.treinaweb.com.br/blog/o-que-e-xp-extreme-programming. Acesso em: 09 nov. 2023.

O que é scrum e como começar: Guia do Scrum: o que é, como funciona e como começar. atlassian, 2023. Disponível em: https://www.atlassian.com/br/agile/scrum. Acesso em: 9 nov. 2023.