Skip to content

MoSCoW

Introdução

A técnica MoSCoW é uma abordagem utilizada para priorização de requisitos em projetos, especialmente em contextos de desenvolvimento ágil. Seu objetivo principal é fornecer uma maneira clara de classificar as necessidades dos stakeholders, permitindo que a equipe de projeto saiba o que é mais urgente e essencial para o sucesso da entrega. A metodologia facilita a tomada de decisões, ajudando a equilibrar as expectativas e os recursos disponíveis ao longo do ciclo de vida do projeto.

Objetivo da Técnica

A técnica MoSCoW tem como objetivo garantir que os requisitos mais importantes sejam atendidos primeiro. Ela organiza os requisitos em quatro categorias: Must Have (deve ter), Should Have (deve ter, mas pode ser adiado), Could Have (poderia ter, mas não é essencial) e Won't Have (não terá agora). Com isso, é possível priorizar as entregas, otimizar os recursos e garantir que os aspectos críticos do projeto sejam entregues de forma eficiente e no prazo estipulado.

Participantes (Stakeholders)

  1. Nathalia Zika Mendes Sinfrônio
    • Estudante de direito - Projeção
  2. Luis Henrique Soares da Silva
    • Estudante de análise e desnvolvimento de Sistemas - UCB
  3. Pedro Henrique Galdino
    • Estudante de Engenhria de Software

Aplicação da Técnica de Priorização

A intenção foi contar com a participação de diferentes usuários para obter uma visão mais ampla e realista sobre as prioridades dos requisitos de software. Buscamos envolver estudantes de diversas faculdades, já que esse público representa um dos principais usuários do aplicativo. Ao incluir diferentes perspectivas dentro do mesmo perfil de usuário, conseguimos identificar com mais precisão quais funcionalidades são indispensáveis, desejáveis, opcionais ou descartáveis, garantindo que o desenvolvimento do sistema esteja alinhado às reais necessidades do público-alvo.

MoSCoW

A seguir, apresenta-se (Figura 10) a priorização dos requisitos elicitados. Cada linha da tabela reúne o identificador único do requisito (ID), sua classificação como funcional ou não funcional, a descrição detalhada do requisito, a descrição resumida do requisito, o status de implementação, a sua prioridade de acordo com a execução da técnica e o seu rastreamento. Essa visão estruturada permite acompanhar de forma clara e organizada a priorização de cada requisito e identificar as prioridades dos stakeholders e os requistos que agregam mais valor e menor custo ao sistema.

Fluxo do questionário DeepSeek
Figura 10. Ilustração baseada na aplicação da técnica moscow.
Autor: @Gabriela
TABELA 1/ MoSCoW
ID Categoria Descrição final Descrição Status Prioridade Rastreamento
#RF01 Funcional Deve oferecer a possibilidade do usuário acionar a pesquisa na web Pesquisa na Web de promps de usuário / O sistema deve oferecer um botão para ativar/desativar busca na web Implementado Should #RDF01 e #RIF01
#RF02 Funcional Deve haver a possibilidade de uso do pensamento profundo para solução de problemas (Deep Thinking) Pensamento profundo para solução de problemas Implementado Must #RDF02
#RF03 Funcional O sistema deve aceitar uploads de arquivos de até 10MB nos formatos PDF, DOCX, TXT e imagens (com OCR) com tempo de resposta < 35s Leitura e interpretação de arquivos PDF / O sistema deve aceitar uploads de arquivos nos formatos PDF, DOCX, TXT e imagens (com OCR) / Extrair e processar texto de arquivos de até 10MB / Expandir cobertura de OCR para suportar múltiplos formatos de imagem e extrair texto de forma confiável. / Garantir tempo de resposta de OCR < 35 s por imagem e confiabilidade na extração de texto de diferentes formatos de imagem. Implementado Must #RDF03, #RIF01, #RIF05, #RQF19 e #RQN09
#RN01 Não funcional Deve fazer o uso da arquitetura DeepSeek-V3 Utilização da arquitetura DeepSeek-V3 Implementado Must #RDN04
#RN02 Não funcional Deve possuir versões para Android e IOS Versões para Android e IOS Implementado Could #RDN05
#RF04 Funcional Deve possuir a opção de login com conta Google/Apple ID Login com conta Google/Apple ID Implementado Could #RDF06
#RF05 Funcional Deve salvar chats entre plataformas Salvamento de chat entre plataformas Implementado Should #RDF07
#RF06 Funcional Melhorar as capacidades de "deep thinking" Melhorar as capacidades de "deep thinking" Não implementado Must #RDF08
#RF07 Funcional Deve haver um campo para a interação com a IA Deve haver um campo para a interação com a IA Implementado Must #ROF01
#RF08 Funcional Deve ser possível criar novos chats Deve ser possível criar novos chats Implementado Should #ROF02
#RF09 Funcional Deve ser possível renomear um chat Deve ser possível renomear um chat Implementado Would #ROF03
#RF10 Funcional Os chats já utilizados devem poder se acessados posteriormente Os chats já utilizados devem poder se acessados posteriormente Implementado Should #ROF04
#RF11 Funcional Deve ser possível dar dislike em uma resposta da IA Deve ser possível dar dislike em uma resposta da IA Implementado Wont #ROF05
#RF12 Funcional Deve ser possível dar like em uma resposta da IA Deve ser possível dar like em uma resposta da IA Implementado Wont #ROF06
#RF13 Funcional Deve ser possível copiar uma resposta da IA Deve ser possível copiar uma resposta da IA Implementado Must #ROF07
#RF14 Funcional Deve exibir citações de fontes e referências em respostas baseadas em documentos, indicando página, site e/ou trecho extraído. As respostas devem ser capazes de disponibilizarem links / Citar fontes externas na busca web / Exibir citações de fontes e referências em respostas baseadas em documentos, indicando página, site e/ou trecho extraído. Parcialmente implementado Must #ROF08, #RIF06 e #RQF22
#RF15 Funcional Deve ser possível alterar o idioma do sistema Deve ser possível alterar o idioma do sistema Implementado Must #ROF09
#RF16 Funcional Deve ser possível apagar conversas individuais ou de forma geral Deve ser possível apagar chats antigos / O sistema deve permitir limpar o histórico de conversas Implementado Could #ROF10 e #RIF04
#RF17 Funcional Deve ser possível regenar uma resposta da IA de forma manual ou de forma automática no caso de erro de servidor ou sobrecargado sistema Deve ser possível regenerar uma resposta da IA / Implementar botão “Tentar novamente” ou retry automático em caso de erro de servidor, sem precisar recarregar a página. / Implementar retry automático ou fila de processamento de prompts quando o sistema estiver sobrecarregado, sem recarregar a página. Parcialmente implementado Must #ROF11, #RQF09 e #RQF18
#RF18 Funcional O sistema deve exibir respostas formatadas em Markdown em respostas para tabelas ou listas complexas Markdown (títulos, listas, código) com a possibilidade de edição do Markdown pelo usuário As respostas devem suportar formatações como textos de tamanhos diferentes, linhas, textos em negrito e emojis / O sistema deve exibir respostas formatadas em Markdown em respostas para tabelas ou listas complexasMarkdown (títulos, listas, código). / Markdown em respostas para tabelas ou listas complexas / Adicionar editor de texto avançado com suporte a Markdown e formatação de código. Parcialmente implementado Should #ROF12 , #RIF03, #RIF13 e #RQF15
#RF19 Funcional Deve ser possível interromper respostas em andamento Interromper respostas em andamento Não implementado Wont #RIF07
#RF20 Funcional Deve possuir uma API Pública API Pública Não implementado Must #RIF08
#RF21 Funcional Deve aceitar autenticação via token de acesso Aceitar autenticação via token de acesso Implementado Must #RIF09
#RN03 Não funcional Deve guardar um histórico de conversas por 30 dias - O histórico não é persistente se o usuário sair sem salvar Histórico de conversas por 30 dias - O histórico não é persistente se o usuário sair sem salvar (não há login obrigatório) Não implementado Could #RIN10
#RN04 Não funcional Deve fazer a exclusão automática de dados de upload Exclusão automática de dados de upload Não implementado Must #RIN11
#RN05 Não funcional A interface deve seguir diretrizes de usabilidade (botões visíveis, texto legível, feedback imediato) e de acessibilidade (alteração no tamanho da fonte, leitura) Acessibilidade avançada / A interface deve seguir diretrizes de usabilidade (botões visíveis, texto legível, feedback imediato). Não implementado Must #RIN12 e #RQF05
#RF22 Funcional Deve haver uma confirmação para limpar o histórico Confirmação ao limpar histórico Não implementado Must #RIF14
#RN06 Não funcional Em caso de falha, deve retornar mensagens de erro claras Em caso de falha, deve retornar mensagens de erro claras Implementado Must #RIN15
#RN07 Não funcional O sistema deve suportar múltiplas requisições simultâneas sem degradação O sistema deve suportar múltiplas requisições simultâneas sem degradação Implementado Should #RIN16
#RN08 Não funcional O processamento de arquivos grandes (PDF/DOCX) deve ocorrer em ≤10 segundos e o tempo médio de resposta deve ser <= 2 s em operações simples O processamento de arquivos grandes (PDF/DOCX) deve ocorrer em ≤10 segundos. / Diminuir o tempo médio de resposta para <= 2 s em operações simples e <= 10 s em operações complexas. Parcialmente implementado Should #RIN17 e #RQN04
#RF23 Funcional Deve suportar busca incremental (exibição de sugestões em tempo real conforme o usuário digita). Deve suportar busca incremental (exibição de sugestões em tempo real conforme o usuário digita). Não implementado Wont #RQF01
#RF24 Funcional Todos os dados sensíveis do usuário devem ser criptografados em trânsito (TLS) e em repouso (AES-256). Todos os dados sensíveis do usuário devem ser criptografados em trânsito (TLS) e em repouso (AES-256). Implementado Must #RQF02
#RF25 Funcional O usuário deve poder controlar quais dados são compartilhados (chat, histórico de buscas, localização). O usuário deve poder controlar quais dados são compartilhados (chat, histórico de buscas, localização). Não implementado Must #RQF03
#RF26 Funcional Deve haver autenticação multifator opcional para acesso a funcionalidades avançadas. Deve haver autenticação multifator opcional para acesso a funcionalidades avançadas. Não implementado Could #RQF04
#RF27 Funcional Deve oferecer modo escuro e modo claro, com configuração manual e sincronização automática com o sistema operacional. Deve oferecer modo escuro e modo claro, com configuração manual e sincronização automática com o sistema operacional. Implementado Must #RQF06
#RF28 Funcional Deve incluir tutorial interativo na primeira execução, explicando as principais funcionalidades. / Implementar tutorial interativo (tour guiado) destacando recursos avançados (DeepThink, Reason etc.) no onboarding. Deve incluir tutorial interativo na primeira execução, explicando as principais funcionalidades. / Implementar tutorial interativo (tour guiado) destacando recursos avançados (DeepThink, Reason etc.) no onboarding. Não implementado Must #RQF07
#RN09 Não funcional Disponibilizar, no próprio app, informações claras e acessíveis sobre como e onde os dados são armazenados e utilizados. Disponibilizar, no próprio app, informações claras e acessíveis sobre como e onde os dados são armazenados e utilizados. Não implementado Must #RQN01
#RN10 Não funcional Especificar e permitir ao usuário optar por participar ou não do uso de seus dados em processos de re-treinamento ou venda de modelos. Especificar e permitir ao usuário optar por participar ou não do uso de seus dados em processos de re-treinamento ou venda de modelos. Não implementado Must #RQN02
#RN11 Não funcional Especificar e permitir ao usuário optar por participar ou não do uso de seus dados em processos de re-treinamento ou venda de modelos. Especificar e permitir ao usuário optar por participar ou não do uso de seus dados em processos de re-treinamento ou venda de modelos. Não implementado Must #RQN02
#RF29 Funcional Exibir status do servidor em tempo real (Online, Manutenção, Sobrecarga). Exibir status do servidor em tempo real (Online, Manutenção, Sobrecarga). Não implementado Could #RQF08
#RF30 Funcional Melhorar retenção de contexto em diálogos longos para evitar “esquecimento” ou mistura de informações previamente dadas. Melhorar retenção de contexto em diálogos longos para evitar “esquecimento” ou mistura de informações previamente dadas. Parcialmente implementado Must #RQF10
#RN12 Não funcional Garantir estabilidade na geração de conteúdos pesados (PDF, cálculos), evitando erros de formatação ou falhas. Garantir estabilidade na geração de conteúdos pesados (PDF, cálculos), evitando erros de formatação ou falhas. Parcialmente implem. Must #RQN05
#RF31 Funcional Implementar memória de contexto persistente entre conversas. Implementar memória de contexto persistente entre conversas. Não implementado Must #RQF11
#RF32 Funcional Permitir escolha de modelos (seleção de diferentes versões/modelos de IA). Permitir escolha de modelos (seleção de diferentes versões/modelos de IA). Não implementado Must #RQF12
#RF33 Funcional Permitir organização de conversas em pastas ou listas por tema ou projeto. Permitir organização de conversas em pastas ou listas por tema ou projeto. Não implementado Could #RQF13
#RF34 Funcional Implementar comandos de voz para entrada e saída de informações. Implementar comandos de voz para entrada e saída de informações. Não implementado Should #RQF16
#RN13 Não funcional Atingir ≥ 95 % de usuários avaliando a usabilidade como “Fácil” ou “Muito fácil” em pesquisas futuras. Atingir ≥ 95 % de usuários avaliando a usabilidade como “Fácil” ou “Muito fácil” em pesquisas futuras. Parcialmente implementado Must #RQN06
#RN14 Não funcional Alcançar ≥ 90 % de concordância em “Interface clara e agradável” em pesquisas futuras. Alcançar ≥ 90 % de concordância em “Interface clara e agradável” em pesquisas futuras. Não implementado Must #RQN07
#RN15 Não funcional Reduzir para ≤ 5 % os usuários que relatam dificuldade em encontrar opções/ferramentas em pesquisas futuras. Reduzir para ≤ 5 % os usuários que relatam dificuldade em encontrar opções/ferramentas em pesquisas futuras. Não implementado Must #RQN08
#RF35 Funcional Ajustar visualização do título ao passar o mouse sobre o nome do chat na barra lateral de histórico para que não cubra outros elementos e posicione em local adequado. Ajustar visualização do título ao passar o mouse sobre o nome do chat na barra lateral de histórico para que não cubra outros elementos e posicione em local adequado. Não implementado Could #RQF17
#RF36 Funcional Fornecer, na interface de envio de imagens, instruções claras e contextualizadas sobre OCR (explicar siglas e limitações). Fornecer, na interface de envio de imagens, instruções claras e contextualizadas sobre OCR (explicar siglas e limitações). Não implementado should #RQF20
#RF37 Funcional Conectar nativamente a ferramentas populares (Google Drive, Google Agendas, Outlook, GitHub etc.) via integrações diretas. Conectar nativamente a ferramentas populares (Google Drive, Outlook, GitHub etc.) via integrações diretas. / Integrar agendamento e lembretes com calendários externos (Google, Outlook). Não implementado Could #RQF14
#RF38 Funcional Disponibilizar resumo automático de vídeos (importação de links do YouTube para sumarização). Disponibilizar resumo automático de vídeos (importação de links do YouTube para sumarização). Não implementado Must #RQF23

Dificuldades Enfrentadas na Execução da Técnica

Durante o desenvolvimento do projeto, a principal dificuldade enfrentada foi a limitação de tempo. Devido à necessidade de realizar uma mudança significativa no aplicativo, o cronograma inicialmente planejado precisou ser ajustado, o que comprometeu parte da organização e execução das etapas. Como consequência, a reunião destinada à aplicação da técnica de priorização MoSCoW, que originalmente seria realizada de forma presencial para facilitar a comunicação e o alinhamento entre os integrantes, teve que ser feita de forma online.

Bibliografia

Requisitos Aula 07 - Professores Milene Serrano e Maurício Serrano.

Software Requeriments, Third Edition - Karl Wiegers and Joy Beatty.


Autores / Revisores

Data Descrição Autor Revisor
03/05/2025 Técnica de elicitação MoSCow @Davi @Gabriela

Gravação

Data Descrição Link Autor Revisor
03/05/2025 Gravacão Execução Técnica MoSCoW MoSCoW @Davi @Gabriela