Introdução
Uma das técnicas mais comuns para manter a rastreabilidade dos requisitos e dos artefatos que estão sendo desenvolvidos em um projeto de software é a utilização de uma matriz de rastreabilidade. Essa matriz pode ser implementada com a utilização de softwares específicos que facilitem o seu desenvolvimento [1].
Nessa matriz, são colocados os requisitos, o documento de origem no qual aquele requisito foi elicitado, a arquitetura, o componente e o caso de teste [2].
A coluna dos requisitos deve ser preenchida com os requisitos elicitados no projeto. Já as demais, são preenchidas com os artefatos criados com base nequele requisito durante o processo de desenvolvimento. É importante ressaltar que essa correspondencia nem sempre é de 1 para 1, dado que, por exemplo, um requisito pode ser verificado em vários casos de teste [3].
Objetivos
Esse artefato tem como principal objetivo agregar os resultados obtidos nos artefatos de Backward-From e Forward-From em uma única matriz de rastreabilidade.
Metodologia
Para o formato da matriz de rastreabilidade será utilizado o mesmo formato do repositório da disciplina de requisitos Bilheteria Digital no qual a matriz de rastreabilidade irá possuir 6 colunas:
- ID: apresenta o identificador daquele requisito;
- Descrição: apresenta a descrição do requisito;
- Pré-Rastreabilidade: apresenta a técnica de elicitação que deu origem ao requisito;
- Implementado?: indica se o requisito está ou não implementado no aplicativo (Sim, Não ou Parcialmente).
- Artefatos: apresenta os artefatos relacionados ao requisito que foram desenvolvidos ao longo do projeto;
- Elos: ligação entre os requisitos e artefatos.
Matriz Geral
Assim, é possível criar a matriz de rastreabilidade representada pela Tabela 1.
Tabela 1 - Matriz de rastreabilidade do projeto.
ID | Descrição | Pré-Rastreabilidade | Implementado | Artefatos Criados | Elos |
---|---|---|---|---|---|
#RF01 | Deve oferecer a possibilidade do usuário acionar a pesquisa na web | #RDF01, #RIF01 | Sim | #CN07, #UC07, #LX07, #HU29 | #RF01 |
#RF02 | Deve haver a possibilidade de uso do pensamento profundo para solução de problemas (Deep Thinking) | #RDF02 | Sim | #CN09, #UC09, #LX09, #HU13, #BK01 | #RF02 |
#RF03 | O sistema deve aceitar uploads de arquivos de até 10MB nos formatos PDF, DOCX, TXT e imagens (com OCR) com tempo de resposta < 35s | #RDF03, #RIF01, #RIF05, #RQF01, #RQN09 | Sim | #CN06, #UC06, #LX06, #HU25, #BK37 , #ES03, #CNFR01 | #RF03 |
#RF04 | Deve possuir a opção de login com conta Google/Apple ID | #RDF06 | Sim | #HU41, #BK15 | #RF04 |
#RF05 | Deve salvar chats entre plataformas | #RDF07 | Sim | #HU18, #BK17 | #RF05 |
#RF06 | Melhorar as capacidades de "deep thinking" | #RDF07 | Não | #RF06 | |
#RF07 | Deve haver um campo para a interação com a IA | #ROF01 | Sim | #HU03, #BK18 | #RF07 |
#RF08 | Deve ser possível criar novos chats | #ROF02 | Sim | #HU42, #BK21 | #RF08 |
#RF09 | Deve ser possível renomear um chat | #ROF03 | Sim | #HU04, #BK20 | #RF09 |
#RF10 | Os chats já utilizados devem poder ser acessados posteriormente | #ROF04 | Sim | #HU35, #BK21 | #RF10 |
#RF11 | Deve ser possível dar dislike em uma resposta da IA | #ROF05 | Sim | #CN08, #UC08, #LX08, #HU30, #BK02 | #RF11 |
#RF12 | Deve ser possível dar like em uma resposta da IA | #ROF06 | Sim | #CN08, #UC08, #LX08, #HU30, #BK02 | #RF12 |
#RF13 | Deve ser possível copiar uma resposta da IA | #ROF07 | Sim | #CN08, #UC08, #LX08, #HU30, #HU29, #BK22 | #RF13 |
#RF14 | Deve exibir citações de fontes e referências em respostas baseadas em documentos, indicando página, site e/ou trecho extraído. | #ROF08, #RIF06, #RQF22 | Parcialmente implementado | #HU36, #BK03 | #RF14 |
#RF15 | Deve ser possível alterar o idioma do sistema | #ROF09 | Sim | #HU27, #BK35 | #RF15 |
#RF16 | Deve ser possível apagar conversas individuais ou de forma geral | #ROF10, #RIF04 | Sim | #HU28, #BK14 | #RF16 |
#RF17 | Deve ser possível regenerar uma resposta da IA de forma manual ou automática em caso de erro de servidor ou sobrecarga | #ROF11, #RQF09, #RQF18 | Parcialmente implementado | #CN08, #UC08, #LX08, #HU30, #BK02 | #RF17 |
#RF18 | O sistema deve exibir respostas formatadas em Markdown em tabelas ou listas complexas, com possibilidade de edição pelo usuário | #ROF12, #RIF03, #RIF13, #RQF15 | Parcialmente implementado | #HU23, #HU34, #BK26, #BK27 | #RF18 |
#RF19 | Deve ser possível interromper respostas em andamento | #RIF07 | Não | #CN10, #UC10, #LX10, #HU07, #HU15, #BK23, #BK24 | #RF19 |
#RF20 | Deve possuir uma API pública | #RIF08 | Não | #HU31, #BK41 | #RF20 |
#RF21 | Deve aceitar autenticação via token de acesso | #RIF09 | Não | #RF21 | |
#RF22 | Deve haver uma confirmação para limpar o histórico | #RIF14 | Não | #CN13, #UC13, #LX13, #HU02, #BK09 | #RF22 |
#RF23 | Deve suportar busca incremental (exibição de sugestões em tempo real conforme o usuário digita) | #RQF01 | Não | #HU05, #BK28 | #RF23 |
#RF24 | Todos os dados sensíveis do usuário devem ser criptografados em trânsito (TLS) e em repouso (AES-256) | #RQF02 | Sim | #RF24 | |
#RF25 | O usuário deve poder controlar quais dados são compartilhados (chat, histórico de buscas, localização) | #RQF03 | Não | #HU17, #BK10, #BK11 | #RF25 |
#RF26 | Deve haver autenticação multifator opcional para acesso a funcionalidades avançadas | #RQF04 | Não | #HU26, #BK16 | #RF26 |
#RF27 | Deve oferecer modo escuro e claro, com configuração manual e sincronização automática com o SO | #RQF06 | Sim | #CN05, #UC05, #LX05, #HU19, #BK29 | #RF27 |
#RF28 | Deve incluir tutorial interativo na primeira execução, explicando as principais funcionalidades | #RQF07 | Não | #CN12, #UC12, #LX12, #HU01, #BK30 | #RF28 |
#RF29 | Exibir status do servidor em tempo real (Online, Manutenção, Sobrecarga) | #RQF08 | Não | #CN11, #UC11, #LX11, #HU14, #BK31 | #RF29 |
#RF30 | Melhorar retenção de contexto em diálogos longos | #RQF10 | Parcialmente implementado | #HU24, #BK06 | #RF30 |
#RF31 | Implementar memória de contexto persistente entre conversas | #RQF11 | Não | #HU32, #BK02 | #RF31 |
#RF32 | Permitir escolha de modelos (seleção de diferentes versões/modelos de IA) | #RQF12 | Não | #CN04, #UC04, #LX04, #HU20, #BK07 | #RF32 |
#RF33 | Permitir organização de conversas em pastas ou listas por tema ou projeto | #RQF13 | Não | #HU09, #BK25 | #RF33 |
#RF34 | Implementar comandos de voz para entrada e saída de informações | #RQF16 | Não | #CN03, #UC03, #LX03, #HU12, #BK32 | #RF34 |
#RF35 | Ajustar visualização do título ao passar o mouse sobre o nome do chat na barra lateral de histórico | #RQF17 | Não | #HU21, #BK33 | #RF35 |
#RF36 | Fornecer, na interface de envio de imagens, instruções claras e contextualizadas sobre OCR | #RQF20 | Não | #HU22, #BK40 | #RF36 |
#RF37 | Conectar nativamente a ferramentas populares (Google Drive, Outlook, GitHub etc.) via integrações diretas | #RQF14 | Não | #CN03, #UC03, #LX03, #HU11, #BK42 | #RF37 |
#RF38 | Disponibilizar resumo automático de vídeos (importação de links do YouTube para sumarização) | #RQF23 | Não | #CN14, #UC14, #LX14, #HU33, #BK08 | #RF38 |
#RN01 | Deve fazer o uso da arquitetura DeepSeek-V3 | #RDN04 | Sim | #ES07, #CNFR12 | #RN01 |
#RN02 | Deve possuir versões para Android e IOS | #RDN05 | Sim | #ES07, #CNFR09 | #RN02 |
#RN03 | Deve guardar um histórico de conversas por 30 dias (não persistente se o usuário sair sem salvar) | #RIN10 | Não | #ES05, #CNFR11 | #RN03 |
#RN04 | Deve fazer a exclusão automática de dados de upload | #RIN10 | Não | #ES05, #ES02, #CNFR08 | #RN04 |
#RN05 | A interface deve seguir diretrizes de usabilidade e acessibilidade | #RIN12, #RQF05 | Não | #ES04, #ES01, #CNFR23 | #RN05 |
#RN06 | Em caso de falha, deve retornar mensagens de erro claras | #RIN15 | Sim | #ES05, #ES02, #CNFR24 | #RN06 |
#RN07 | O sistema deve suportar múltiplas requisições simultâneas sem degradação | #RIN16 | Sim | #ES05, #ES02, #ES06, #CNFR05 | #RN07 |
#RN08 | O processamento de arquivos grandes (PDF/DOCX) deve ocorrer em ≤ 10 s e o tempo médio de resposta ≤ 2 s em operações simples | #RIN17, #RQN04 | Parcialmente implementado | #ES05, #ES02, #ES06, #CNFR04 | #RN08 |
#RN09 | Disponibilizar, no próprio app, informações claras e acessíveis sobre como e onde os dados são armazenados e utilizados | #RQN01 | Não | #ES05, #ES08, #CNFR10 | #RN09 |
#RN10 | Especificar e permitir ao usuário optar por participar ou não do uso de seus dados em re-treinamento ou venda de modelos | #RQN02 | Não | #ES05, #ES08, #CNFR15 | #RN10 |
#RN11 | Especificar e permitir ao usuário optar por participar ou não do uso de seus dados em re-treinamento ou venda de modelos | #RQN02 | Não | #ES05, #CNFR29 | #RN11 |
#RN12 | Garantir estabilidade na geração de conteúdos pesados (PDF, cálculos), evitando erros de formatação ou falhas | #RQN05 | Não | #ES05, #ES02, #CNFR16 | #RN12 |
#RN13 | Atingir ≥ 95 % de usuários avaliando a usabilidade como “Fácil” ou “Muito fácil” em pesquisas futuras | #RQN06 | Parcialmente implementado | #ES04, #ES01, #CNFR17 | #RN13 |
#RN14 | Alcançar ≥ 90 % de concordância em “Interface clara e agradável” em pesquisas futuras | #RQN07 | Não | #ES04, #ES01, #CNFR18 | #RN14 |
#RN15 | Reduzir para ≤ 5 % os usuários que relatam dificuldade em encontrar opções/ferramentas em pesquisas futuras | #RQN08 | Não | #ES04, #ES01, #CNFR19 | #RN15 |
Autor: Luiz
Com a Tabela 2, é possível encontrar os códigos utilizados ao longo do desenvolvimento dos artefatos e seus significados.
Tabela 2 - Códigos utilizados na Tabela 1 e seus significados.
Identificador | Significado |
---|---|
#RFXX | Código para um requisito funcional |
#RNXX | Código para um requisito não funcional |
#RDFXXX | Código para um requisito funcional elicitado com a técnica de análise de documentos |
#RDNXXX | Código para um requisito não funcional elicitado com a técnica de análise de documentos |
#RIFXXX | Código para um requisito funcional elicitado com a técnica de análise de interface |
#RINXXX | Código para um requisito não funcional elicitado com a técnica de análise de interface |
#RQFXX | Código para um requisito funcional elicitado com a técnica de questionário |
#RQNXX | Código para um requisito não funcional elicitado com a técnica de questionário |
#ROFXX | Código para um requisito funcional elicitado com a técnica de observação |
#RONXX | Código para um requisito não funcional elicitado com a técnica de observação |
#UCXX | Representa uma tabela de caso de uso desenvolvida para o artefato casos de uso |
#CNXX | Representa um cenário desenvolvido para o artefato cenários |
#LXXX | Representa uma tabela de léxicos para um caso de uso no artefato léxicos |
#ESXX | Representa um tópico no artefato de especificação suplementar |
#HUXX | Representa história de usuário no artefato histórias de usuário |
#BKXX | Representa um tópico no artefato backlog |
#CNFRXX | Representa um cartão de especificação no artefato NFR Framework |
Autor: Luiz
Referência Bibliográfica
1. SAYÃO, Miriam; LEITE, Julio. Rastreabilidade de Requisitos. PUC-Rio: Departamento de Informática, ISSN 0103-9741, Rio de Janeiro, 2005, p. 12. Disponível em: https://www-di.inf.puc-rio.br/~julio/rastre.pdf. Acesso em: 04/06/2025.
Foto da referência
2. SAYÃO, Miriam; LEITE, Julio. Rastreabilidade de Requisitos. PUC-Rio: Departamento de Informática, ISSN 0103-9741, Rio de Janeiro, 2005, p. 12. Disponível em: https://www-di.inf.puc-rio.br/~julio/rastre.pdf. Acesso em: 04/06/2025.
Foto da referência
3. SAYÃO, Miriam; LEITE, Julio. Rastreabilidade de Requisitos. PUC-Rio: Departamento de Informática, ISSN 0103-9741, Rio de Janeiro, 2005, p. 12-13. Disponível em: https://www-di.inf.puc-rio.br/~julio/rastre.pdf. Acesso em: 04/06/2025.
Foto da referência
4. MELO, Arthur. Matriz Geral. Repositório do Grupo Bilheteria Digital da disciplina de Requisitos de Software da Universidade de Brasília, 2023. Disponível em: https://requisitos-de-software.github.io/2023.1-BilheteriaDigital/rastreabilidade/matriz-geral/. Acesso em: 04/06/2025.
Histórico de Versões
Data | Versão | Descrição | Autor | Revisor |
---|---|---|---|---|
04/06/2025 | 1.0 | (#MG01) Criação do documento de matriz geral. | @Luiz |
@Fabio |
04/06/2025 | 1.1 | (#MG01) Adição da introdução, objetivos, metodologia, criação da matriz geral. Adição dos requisitos RF01-RF03 | @Luiz |
@Fabio |
05/06/2025 | 1.2 | (#MG01) Explicação dos IDs presentes na matriz de rastreabilidade. | @Luiz |
@Fabio |
06/06/2025 | 1.3 | (#MG01) Adição dos requisitos RF04-RF13. | @Luiz |
@Fabio |
06/06/2025 | 1.4 | (#MG01) Adição dos requisitos RF14-RF38. | @Luiz |
@Fabio |
06/06/2025 | 1.5 | (#MG01) Adição dos requisitos RN01-RN15. | @Luiz |
@Fabio |
07/06/2025 | 1.6 | (#MG01) Adição da tabela com os significados dos identificadores utilizados na matriz de rastreabilidade. | @Luiz |
@Fabio |
07/06/2025 | 1.7 | (#MG01) Adição dos hiperlinks dos tópicos do backlog na coluna "artefatos criados". | @Luiz |
@Fabio |
07/06/2025 | 1.8 | (#MG01) Adição dos hiperlinks dos elos do documento de pós-rastreabilidade. | @Luiz |
@Fabio |
08/06/2025 | 1.9 | (#MG01) Correção nos hiperlinks do arquivo. | @Luiz |
@ |