Forward From
Introdução
Neste documento busca-se construir a matriz de pós-rastreabilidade através da ótica Foward-From. Foram feitas duas tabelas, a primeira para requisitos funcionais e a segunda para os não funcionais.
Metodologia
Primeiramente os requisitos previamente elicitados foram padronizados no arquivo de elicitações. A partir disso, buscamos no backlog e em historias de usuário o épico, feature e user story relacionada a cada um dos requisitos.
Como o Duolingo não é um software com código aberto não foi possível relacionar o código fonte com cada requisito, apenas a funcionalidade já implementada.
Também foi foram defidos os seguintes critérios para avaliar os requisitos:
-
Requisito totalmente implementado: Atende a todos os critérios de aceitação;
-
Requisito parcialmente implementado: Atende a pelo menos um critério de aceitação;
-
Requisito não implementado: Não atende a nenhum critério de aceitação;
Autores
| Membros Participantes |
|---|
| Luis Gustavo |
| Vitor Meireles |
Requisitos Funcionais
Legenda:
- RF: Requisito Funcional
- RNF: Requisito Não-Funcional
- US: Histório de Usuário
- EP: Épico
- FE: Feature
RF01
| RF01 | O aplicativo deve permitir o usuário praticar antes de se cadastrar |
|---|---|
| Épico | EP01 |
| Feature | FE01 |
| US | US01 |
| Critérios de Aceitação | US01 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF02
| RF02 | O aplicativo permite que o usuário escolha o(s) idioma(s) que ele deseja aprender |
|---|---|
| Épico | EP03 |
| Feature | FE08 |
| US | US28 |
| Critérios de Aceitação | US28 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF03
| RF03 | O aplicativo deve ter metas diárias para engajamento do usuário |
|---|---|
| Épico | EP04 |
| Feature | FE14 |
| US | US40 |
| Critérios de Aceitação | US40 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF04
| RF04 | O usuário deve poder escolher o nível de conhecimento que têm no idioma |
|---|---|
| Épico | EP01 |
| Feature | FE01 |
| US | US01 |
| Critérios de Aceitação | US01 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF05
| RF05 | O aplicativo deve desbloquear as lições que estão abaixo no nível de conhecimento prévio do usuário |
|---|---|
| Épico | EP04 |
| Feature | FE15 |
| US | US01 |
| Critérios de Aceitação | US01 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF06
| RF06 | O aplicativo deve exibir feedback durante as lições |
|---|---|
| Épico | EP03 |
| Feature | FE09 |
| US | US56 |
| Critérios de Aceitação | US56 |
| Observação | Requisito totalmente implementado |
| Funcionalidade |
RF07
| RF07 | O aplicativo exibir as conquistas ao finalizar das atividades |
|---|---|
| Épico | EP04 |
| Feature | FE12 |
| US | US38 |
| Critérios de Aceitação | US01 |
| Observação | Requisito totalmente implementado |
| Funcionalidade |
RF08
| RF08 | Deve existir anúncio após as lições |
|---|---|
| Épico | EP05 |
| Feature | FE19 |
| US | US53 |
| Critérios de Aceitação | US53 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF09
| RF09 | O usuário deve poder criar sua conta na plataforma |
|---|---|
| Épico | EP01 |
| Feature | FE01 |
| US | US02 & US03 |
| Critérios de Aceitação | US02 & US03 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF10
| RF10 | O aplicativo deve me permitir entrar com minha conta |
|---|---|
| Épico | EP01 |
| Feature | FE02 |
| US | US04 & US05 |
| Critérios de Aceitação | US04 & US05 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF11
| RF11 | O aplicativo deve me permitir sair da minha conta |
|---|---|
| Épico | EP01 |
| Feature | FE03 |
| US | US06 |
| Critérios de Aceitação | US06 |
| Observação | Requisito totalmente implementado |
| Funcionalidade |
RF12
| RF12 | Deve existir uma assinatura premium |
|---|---|
| Épico | EP05 |
| Feature | FE18 |
| US | US51 & US52 |
| Critérios de Aceitação | US51 & US52 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF13
| RF13 | Caso o usuário tenha assinatura premium ele não deve ver anúncios |
|---|---|
| Épico | EP05 |
| Feature | FE18 |
| US | US52 |
| Critérios de Aceitação | US52 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF14
| RF14 | O usuário deve poder editar seu perfil na plataforma |
|---|---|
| Épico | EP02 |
| Feature | FE04 |
| US | US07 & US08 & US09 & US10 |
| Critérios de Aceitação | US07 & US08 & US09 & US10 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF15
| RF15 | O aplicativo deve permitir que o usuário faça login com email/facebook ou conta do google |
|---|---|
| Épico | EP01 |
| Feature | FE02 |
| US | US04 & US05 |
| Critérios de Aceitação | US04 & US05 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF16
| RF16 | O aplicativo deve permitir que o usuário veja o seu progresso |
|---|---|
| Épico | EP04 |
| Feature | FE15 |
| US | US41 & US42 |
| Critérios de Aceitação | US41 & US42 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF17
| RF17 | O aplicativo permite que o usuário adicione e siga amigos |
|---|---|
| Épico | EP04 |
| Feature | FE13 |
| US | US39 |
| Critérios de Aceitação | US04 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF18
| RF18 | O aplicativo deve permitir o usuário a fazer questões de escuta, leitura, escrita e fala |
|---|---|
| Épico | EP03 |
| Feature | FE09 |
| US | US30 & US31 & US32 |
| Critérios de Aceitação | US30 & US31 & US32 |
| Observação | Requisito totalmente implementado |
| Funcionalidade |
RF19
| RF19 | O sistema é divido em níveis e com uma progressão ideal para cada módulo |
|---|---|
| Épico | EP04 |
| Feature | FE15 |
| US | US41 & US42 |
| Critérios de Aceitação | US41 & US42 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF20
| RF20 | Cada aula deve ter exercícios para serem realizados |
|---|---|
| Épico | EP03 |
| Feature | FE09 |
| US | US30 & US31 & US32 |
| Critérios de Aceitação | US30 & US31 & US32 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF21
| RF21 | O aplicativo deve apresentar as aulas/exercícios de forma progressiva |
|---|---|
| Épico | EP03 |
| Feature | FE09 |
| US | US33 |
| Critérios de Aceitação | US33 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF22
| RF22 | O aplicativo deve ter uma pontuação que reflita o número de aulas/exercícios feitos |
|---|---|
| Épico | EP04 |
| Feature | FE11 |
| US | US57 |
| Critérios de Aceitação | US57 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF23
| RF23 | O aplicativo deve ter ligas/grupos, que sejam progressivas, que separem os usuários de acordo com seu desempenho |
|---|---|
| Épico | EP04 |
| Feature | FE11 |
| US | US36 & US37 |
| Critérios de Aceitação | US36 & US37 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF24
| RF24 | O aplicativo deve ter um ranking dos usuários que estão em uma mesma divisão |
|---|---|
| Épico | EP04 |
| Feature | FE11 |
| US | US35 |
| Critérios de Aceitação | US35 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF25
| RF25 | O aplicativo deve contabilizar o número de dias seguidos que usuário cumpre sua meta diária |
|---|---|
| Épico | EP04 |
| Feature | FE14 |
| US | US40 |
| Critérios de Aceitação | US40 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF26
| RF26 | O aplicativo deve notificar o usuário sobre as metas diárias |
|---|---|
| Épico | EP02 |
| Feature | FE06 |
| US | US62 |
| Critérios de Aceitação | US62 |
| Observação | Requisito totalmente implementado |
| Funcionalidade |
RF27
| RF27 | O aplicativo deve possuir uma moeda, que sirva de recompensa para os exercícios realizados |
|---|---|
| Épico | EP04 |
| Feature | FE16 |
| US | US43 & US44 & US45 |
| Critérios de Aceitação | US43 & US44 & US45 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF28
| RF28 | O aplicativo deve possuir uma loja aonde ele poderá gastar suas moedas adquiridas |
|---|---|
| Épico | EP04 |
| Feature | FE17 |
| US | US46 & US47 & US48 & US49 & US50 |
| Critérios de Aceitação | US46 & US47 & US48 & US49 & US50 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF29
| RF29 | O aplicativo deve repetir exercícios, de forma que ajude o usuário a aprender/relembrar |
|---|---|
| Épico | EP03 |
| Feature | FE09 |
| US | US61 |
| Critérios de Aceitação | US61 |
| Observação | Requisito totalmente implementado |
| Funcionalidade |
RF30
| RF30 | Se o usuário ficar algum tempo sem utilizar o aplicativo, o aplicativo deve fazer com que ele volte ao início do curso |
|---|---|
| Épico | EP03 |
| Feature | FE08 |
| US | US60 |
| Critérios de Aceitação | US60 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | Como o tempo é grande, aproximadamente um mês, não conseguimos capturar essa tela 😔 |
RF31
| RF31 | Deve aparecer uma mensagem dando Boas Vindas |
|---|---|
| Épico | EP01 |
| Feature | FE02 |
| US | US59 |
| Critérios de Aceitação | US50 |
| Observação | Requisito totalmente implementado |
| Funcionalidade |
RF32
| RF32 | Devo ser apresentado com a opção de Registro ou Login |
|---|---|
| Épico | EP01 |
| Feature | FE01 & FE02 |
| US | US01 & US02 & US04 |
| Critérios de Aceitação | US01 & US02 & US04 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF33
| RF33 | Deve haver mais de uma opção de idioma disponível para aprender |
|---|---|
| Épico | EP03 |
| Feature | FE08 |
| US | US29 |
| Critérios de Aceitação | US29 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF34
| RF34 | Deve apresentar uma opção para ver mais idiomas disponíveis |
|---|---|
| Épico | EP03 |
| Feature | FE08 |
| US | US29 |
| Critérios de Aceitação | US29 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF35
| RF35 | Deve existir um teste de nivelamento |
|---|---|
| Épico | EP04 |
| Feature | FE15 |
| US | US58 |
| Critérios de Aceitação | US58 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF36
| RF36 | O aplicativo deve aumentar a pontuação do usuário a cada aula finalizada |
|---|---|
| Épico | EP04 |
| Feature | FE11 |
| US | US57 |
| Critérios de Aceitação | US57 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF37
| RF37 | O usuário deve receber incentivos e dicas durante os exercícios |
|---|---|
| Épico | EP03 |
| Feature | FE09 |
| US | US56 |
| Critérios de Aceitação | US56 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF38
| RF38 | O aplicativo deve mostrar os Termos e Política de Privacidade |
|---|---|
| Épico | EP02 |
| Feature | FE06 |
| US | US25 & US26 |
| Critérios de Aceitação | US25 & US26 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | |
RF39
| RF39 | O usuário deve poder testar a versão premium gratuitamente |
|---|---|
| Épico | EP05 |
| Feature | FE18 |
| US | US29 |
| Critérios de Aceitação | US29 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF40
| RF40 | O usuário deve poder escolher um novo idioma a qualquer momento |
|---|---|
| Épico | EP03 |
| Feature | FE08 |
| US | US29 |
| Critérios de Aceitação | US29 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF41
| RF41 | O usuário deve poder ajustar quanto tempo por dia ele quer gastar fazendo lições |
|---|---|
| Épico | EP02 |
| Feature | FE04 |
| US | US55 |
| Critérios de Aceitação | US55 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF42
| RF42 | O usuário deve poder ajustar as configurações dos exercícios |
|---|---|
| Épico | EP02 |
| Feature | FE05 |
| US | US12 & US13 & US14 & US15 |
| Critérios de Aceitação | US12 & US13 & US14 & US15 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
RF43
| RF43 | O usuário deve poder compartilhar seu progresso |
|---|---|
| Épico | EP04 |
| Feature | FE13 |
| US | US54 |
| Critérios de Aceitação | US54 |
| Observação | Requisito totalmente implementado |
| Funcionalidade | ![]() |
Requisitos Não-Funcionais
RNF01
| RNF01 | O aplicativo deve engajar o usuário |
|---|---|
| Épico | EP04 |
| Feature | FE13 |
| US | US54 |
| Critérios de Aceitação | US54 |
| Observação | -- |
| Funcionalidade | ![]() |
RNF02
| RNF02 | O aplicativo deve ser fácil de usar |
|---|---|
| Épico | EP03 |
| Feature | FE10 |
| US | US34 |
| Critérios de Aceitação | US34 |
| Observação | -- |
| Funcionalidade | ![]() |
RNF03
| RNF03 | O aplicativo deve interativo |
|---|---|
| Épico | EP04 |
| Feature | FE12 |
| US | US38 |
| Critérios de Aceitação | US38 |
| Observação | -- |
| Funcionalidade | ![]() |
RNF04
| RNF04 | O aplicativo deve ser monetizado |
|---|---|
| Épico | EP05 |
| Feature | FE17 |
| US | US46 até US50 |
| Critérios de Aceitação | US46 até US50 |
| Observação | -- |
| Funcionalidade | ![]() |
RNF05
| RNF05 | O aplicativo deve ser gameficado |
|---|---|
| Épico | EP04 |
| Feature | FE16 |
| US | US43 até US45 |
| Critérios de Aceitação | US45 até US45 |
| Observação | -- |
| Funcionalidade | ![]() |
RNF06
| RNF06 | O usuário deve ser recompensado por seu progresso |
|---|---|
| Épico | EP04 |
| Feature | FE16 |
| US | US43 até US45 |
| Critérios de Aceitação | US43 até US45 |
| Observação | -- |
| Funcionalidade | ![]() |
RNF07
| RNF07 | O software deve ser multiplataforma |
|---|---|
| Épico | EP03 |
| Feature | FE10 |
| US | US34 |
| Critérios de Aceitação | US34 |
| Observação | -- |
| Funcionalidade | ![]() |
RNF08
| RNF08 | O aplicativo deve permitir a segurança dos dados do usuário |
|---|---|
| Épico | EP01 |
| Feature | FE02 |
| US | US04 |
| Critérios de Aceitação | US04 |
| Observação | -- |
| Funcionalidade | -- |
RNF09
| RNF09 | O aplicativo deve ser rápido de usar |
|---|---|
| Épico | EP02 |
| Feature | FE05 |
| US | US12 até US20 |
| Critérios de Aceitação | US12 até US20 |
| Observação | -- |
| Funcionalidade | -- |
RNF10
| RNF10 | O aplicativo funcionar 24/7 |
|---|---|
| Épico | EP02 |
| Feature | FE05 |
| US | US12 até US20 |
| Critérios de Aceitação | US12 até US20 |
| Observação | -- |
| Funcionalidade | -- |
RNF11
| RNF11 | O aplicativo deve estimular a competitividade |
|---|---|
| Épico | EP04 |
| Feature | FE11 |
| US | US35 até US37 |
| Critérios de Aceitação | US35 até US37 |
| Observação | -- |
| Funcionalidade | ![]() |
RNF12
| RNF12 | O aplicativo deve promover a integração dos usuários |
|---|---|
| Épico | EP04 |
| Feature | FE13 |
| US | US39 |
| Critérios de Aceitação | US39 |
| Observação | -- |
| Funcionalidade | ![]() |
Referências
SERRANO, Maurício; SERRANO, Milene. Requisitos - Aula 26. 2º/2019. 44 slides. Material apresentado para a disciplina de Requisitos de Software no curso de Engenharia de Software da UnB, FGA.
RocketChat-Requisitos. Disponível em: https://marcosnbj.github.io/2019.1-RocketChat/P%C3%B3s-Rastreabilidade/Foward-From/ . Acesso em 12/11/2019.
GuiaBolso-Requisitos. Disponível em: https://fga-disciplinas.github.io/2019.1-Guia-Bolso/pos-rastreabilidade/forward/ . Acesso em 12/11/2019.






































