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?
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
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:
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.