Ir para o conteúdo

Entrega Final

Introdução

Durante o segundo semestre de 2022, o grupo 2 da disciplina Requisitos de Software, da Universidade de Brasília/FGA, estudou, e documentou, os Requisitos de Software do aplicativo de celular Lichess. O presente artefato tem como principal objetivo sintetizar o processo desenvolvido ao longo do processo, desde as etapas de planejamento aos resultados alcançados.

Planejamento

Antes do início do projeto, a equipe de trabalho reuniu-se presencialmente, durante a aula de Requisitos de Software, para definir as ferramentas de comunicação e horários das reuniões semanais. Então, durante as primeiras reuniões, foram definidas a metodologia de trabalho, o cronograma e as ferramentas utilizadas durante o projeto. Além disso, cada integrante fez o Rich Picture, que serviu de base para a definição do aplicativo escolhido.

As Tabelas 1 e 2 sintetizam, respectivamente, os artefatos referentes ao planejamento da equipe, que elaborados ao longo do semestre e as ferramentas utilizadas durante o projeto.

Artefato Autor(es) Revisor(es)
Rich Picture Renan Lacerda Davi Silva
Aplicativo Selecionado Lucas Gabriel Maurício
Cronograma Mauricio Machado Nicolas Souza
Cronograma Realizado Mauricio Machado Nicolas Souza
Ferramentas Lucas Macedo Nicolas e Lucas Gabriel
Metodologias Davi Silva e Nicolas Souza Mauricio Machado
Ata da Reunião (01/11/2022) Davi Silva Renan Rodrigues Lacerda
Ata da Reunião (10/11/2022) Lucas Macedo Nicolas Souza
Ata da Reunião (15/11/2022) Lucas Gabriel Maurício Machado
Ata da Reunião (22/11/2022) Davi Silva Lucas Gabriel
Ata da Reunião (29/11/2022) Lucas Gabriel Davi Silva
Ata da Reunião (06/12/2022) Mauricio Machado Nicolas Souza
Ata da Reunião (13/12/2022) Nicolas Souza Davi Silva
Ata da Reunião (20/12/2022) Lucas Gabriel Davi Silva
Ata da Reunião (03/01/2023) Lucas Macedo Lucas Gabriel
Ata da Reunião (18/01/2023) Nicolas Souza Lucas Macedo
Ata da Reunião (25/01/2023) Davi Silva Lucas Gabriel

Tabela 1: Síntese dos artefatos de Planejamento
(Fonte: autor, 2023).

Ferramentas

Ferramenta Em qual etapa foi utilizada Motivo pelo qual foi utilizada
GitHub Durante todo o projeto Repositório utilizado, versionamento do projeto, criação da documentação.
Telegram Durante todo o projeto Principal meio de comunicação do time
Google planilhas Ficou em desuso depois da etapa 3 Onde foi desenvolvido a primeira versão do cronograma planejado e realizado
Microsoft Teams Durante todo o projeto Local onde foram salvos os vídeos de reunião, apresentações de ponto de controle e entrevistas com usuários
Youtube Durante todo o projeto Local armazenado os vídeos gravados das reuniões, apresentações e entrevistas
Visual Studio Code Durante todo o projeto Editor de texto gratuito usado para a construção dos artefatos
Miro Usado na etapa 1 Criação das imagens do artefato rich picture
Lucid Chart Usado na etapa 3 Criação da artefato de Casos de Uso
This Person Doesn't Exist Usado na etapa 2 Coletado as fotos das personas criadas
Google forms Usado na etapa 2 Usado para criar o formulário responsável para caracterizar o perfil de usuário

Tabela 2: Síntese do artefato de Ferramentas
(Fonte: autor, 2023).

Cronograma Planejado vs Cronograma Realizado

Nos artefatos cronograma e cronograma realizado está apresentada a diferenciação entre o planejamento executado pelo grupo e o de fato realizado pela equipe. A partir dos documentos fora possível identificar dois erros no planejamento: deixar atividades generalizadas (o que fez uma inconsistência nos artefatos planejados e executados) e a falha nas datas planejadas.

Um grande motivo para essa grande disparidade foi não considerar as agendas dos integrantes que seriam reduzidas durante o decorrer do semestre. Após o recesso, o volume de entregas diminui, comprovando a falha no planejamento do projeto.

Execução do Projeto

De acordo com o SWEBOK [3], a área de conhecimento de Requisitos de Software é responsável pela gerência dos requisitos, por meio das atividades de elicitação, análise, especificação e validação destes. Requisitos de Software expressam necessidades e restrições presentes em um produto de software, por meio de combinações complexas de dados proveniente de diversas fontes, dentre elas recursos humanos e o contexto do sistema. Requisitos também possuem atributos, como a prioridade e identificação única, representada no projeto pelos IDs dos requisitos.

Elicitação e Priorização

A elicitação de requisitos diz respeito à da etapa de concepção dos requisitos de um software e à forma como o engenheiro de software pode coletá-los. Essa atividade envolve a identificação dos stakeholders e a criação de relacionamentos entre a equipe de desenvolvimento e o cliente, atividade que foi feita por meio de uma entrevista e um questionário, elementos essenciais para a elaboração do perfil do usuário e, em seguida, a elaboração das personas do projeto. Os requisitos podem vir de diversas fontes, como por exemplo os objetivos do software, domínio de conhecimento, stakeholders, regras de negócio e o ambiente em que o sistema está inserido. A etapa de elicitação utilizou diferentes técnicas de elicitação para explorar as fontes citadas anteriormente. Após a elicitação, os requisitos foram priorizados por meio de três técnicas diferentes. A Tabela 3 sintetiza os artefatos elaborados durante a etapa de elicitação e priorização.

Artefato Autor(es) Revisor(es)
Planejamento - Elicitação Nicolas Souza Maurício Machado
Brainstorming Davi Silva Lucas Macedo, Maurício e Nicolas
Entrevista Lucas Gabriel Mauricio Machado
Glossário Nicolas Souza Mauricio Machado
Introspecção Nicolas Souza Lucas Macedo
Questionário Mauricio Lucas Macedo
Priorização Renan Lucas Macedo

Tabela 3: Síntese dos artefatos produzidos durante a etapa de elicitação
(Fonte: autor, 2023).

Modelagem

A etapa de modelagem do projeto englobou as atividades de análise e especificação dos requisitos. A análise de requisitos foi essencial para resolver os conflitos entre requisitos, haja vista que foram utilizadas várias fontes e técnicas durante a elicitação. Além disso, durante a análise, os requisitos de sistema foram transformados em requisitos de software funcionais e não funcionais verificáveis.

A especificação dos requisitos contou com a produção de documentos revisáveis, avaliáveis e aprováveis, que posteriormente foram validados com a equipe de desenvolvimento do Lichess. A Tabela 4 sintetiza os artefatos produzidos durante a etapa de modelagem.

Artefato Autor(es) Revisor(es)
Casos de uso Lucas Macedo Nicolas Souza
Cenários Lucas Gabriel Nicolas Souza
Especificação Suplementar Davi Silva Nicolas Souza
Léxico Maurício Machado Nicolas Souza
NFR Framework Maurício Machado Nicolas Souza
Backlog Nicolas Souza Lucas Macedo
Histórias de Usuário Nicolas Souza Lucas Macedo

Tabela 4: Síntese dos artefatos produzidos durante a etapa de modelagem.
(Fonte: autor, 2023).

Rastreabilidade

Durante a gerência de requisitos é essencial assegurar a rastreabilidade dos requisitos, que é a habilidade de traçar os requisitos durante o ciclo de vida do sistema. A rastreabilidade de requisitos pode ser separada em três categorias: pré rastreabilidade, pós rastreabilidade e rastreabilidade inter-requisitos. A pré-rastreabilidade consiste na relação entre os requisitos e os artefatos que são bases para esses requisitos, ou seja, uma ligação entre os requisitos e suas origens. A pós-rastreabilidade documenta a relação entre os requisitos e artefatos posteriores à sua elicitação, que podem ser componentes, implementação ou casos de testes pertencentes a um requisito. A rastreabilidade inter-requisitos consiste em um mapeamento das dependências entre requisitos. [4]

Durante o projeto foram utilizadas diferentes fontes para a elicitação de requisitos, que, após priorizados, foram modelados por meio de técnicas distintas. Para documentar o rastro entre os requisitos, suas origens, e os artefatos subsequentes ao processo de elicitação, foram elaborados os artefatos sintetizados na Tabela 5.

Artefato Autor(es) Revisor(es)
Backward-From Nicolas Souza e Lucas Macedo Lucas Macedo e Nicolas Souza
Forward-From Davi Silva, Lucas Macedo, Lucas Gabriel e Maurício Davi Silva, Lucas Macedo, Lucas Gabriel e Nicolas
Matriz de Rastreabilidade Davi Silva Lucas Gabriel

Tabela 5: Síntese dos artefatos de Rastreabilidade. (Fonte: autor, 2023).

Técnicas Utilizadas

A Tabela 6 contem os artefatos com seus respectivos autores, revisores e técnicas utilizadas.

Etapa Artefato Técnica Autor(es) Revisor(es)
Planejamento Cronograma SCRUM Mauricio Machado Nicolas Souza
Planejamento Ferramentas Não Listada Lucas Macedo, Nicolas Souza Lucas Gabriel
Planejamento Metodologias SCRUM Davi Silva e Nicolas Souza Maurício Machado
Planejamento Rich Pictures Rich Picture Renan Lacerda Davi Silva
Planejamento Aplicativo Selecionado Não Listada Lucas Gabriel Maurício
Elicitação e Priorização Técnicas Planejadas SCRUM Nicolas Souza Maurício Machado
Elicitação e Priorização StoryTelling Role-Playing Lucas Macedo Nicolas
Elicitação e Priorização Personas Questionário Mauricio Lucas Macedo
Elicitação e Priorização Questionário Questionário Mauricio Lucas Macedo
Elicitação e Priorização Introspecção Introspecção Nicolas Davi
Elicitação e Priorização Glossário Introspecção Nicolas Lucas Gabriel
Elicitação e Priorização Entrevista Entrevista Lucas Gabriel Mauricio
Elicitação e Priorização Brainstorming Brainstorm Davi Silva Lucas Gabriel
Elicitação e Priorização Moscow MoSCoW Renan, Maurício Lucas Macedo
Elicitação e Priorização First Things First FtF Renan, Maurício Lucas Macedo
Elicitação e Priorização Escala de Três Níveis Escala de Três Níveis Renan, Maurício Lucas Macedo
Modelagem Léxico Léxico Maurício Nicolas
Modelagem NFR NFR Framework Mauricio Nicolas
Modelagem Casos de Uso Diagrama UML Nicolas, Lucas Macedo Lucas Macedo, Nicolas
Modelagem Especificação Suplementar FURPS+ Davi Silva Nicolas
Modelagem Cenários Texto Estruturado Lucas Gabriel Nicolas
Modelagem Ágil Histórias de Usuário Histórias de Usuário Nicolas Lucas Macedo
Modelagem Ágil Backlog Product Backlog Nicolas Lucas Macedo
Análise Verificação: NFR Framework Inspeção Davi Silva Lucas Macedo
Análise Verificação grupo 3: Casos de Uso Inspeção Davi Silva Lucas Macedo
Análise Verificação grupo 3: Brainstorm Inspeção Davi Silva Lucas Macedo
Análise Verificação grupo 3: BackLog Inspeção Davi Silva Lucas Macedo
Análise Verificação grupo 3: Léxicos Inspeção Davi Silva Lucas Macedo
Análise Verificação grupo 3: Histórias de Usuário Inspeção Lucas Macedo Davi Silva
Análise Verificação grupo 3: Técnicas de Elicitação Inspeção Lucas Macedo Davi Silva
Análise Verificação grupo 3: Priorização Inspeção Lucas Macedo Davi Silva
Análise Verificação grupo 3: Especificação Suplementar Inspeção Lucas Macedo Davi Silva
Análise Verificação grupo 3: Cenário Inspeção Lucas Gabriel Davi Silva e Lucas Macedo
Análise Verificação grupo 3: Entrevista Inspeção Lucas Gabriel Davi Silva e Lucas Macedo
Análise Verificação grupo 3: Perfil do Usuário Inspeção Lucas Gabriel Davi Silva e Lucas Macedo
Análise Verificação grupo 3: Personas Inspeção Lucas Gabriel Davi Silva e Lucas Macedo
Análise Verificação grupo 3: Introspecção Inspeção Lucas Gabriel Nicolas Souza e Lucas Macedo
Análise Validação grupo 3: Comprovação Informal Envio de Email Davi Silva e Lucas Macedo Lucas Gabriel
Análise Verificação do próprio projeto: Rich Picture Inspeção Nicolas Mauricio
Análise Verificação do próprio projeto: Léxicos Inspeção Nicolas Mauricio
Análise Verificação do próprio projeto: Brainstorm Inspeção Nicolas Mauricio
Análise Verificação do próprio projeto: Glossário Inspeção Nicolas Mauricio
Análise Verificação do próprio projeto: Introspecção Inspeção Nicolas Mauricio
Análise Verificação do próprio projeto: Questionário Inspeção Nicolas Mauricio
Análise Verificação do próprio projeto: Personas Inspeção Nicolas Mauricio
Análise Verificação do próprio projeto: StoryTelling Inspeção Nicolas Mauricio
Análise Verificação do próprio projeto: Entrevista Inspeção Nicolas Mauricio
Análise Verificação do próprio projeto: Priorização Inspeção Nicolas Mauricio
Análise Verificação do próprio projeto: NFR Framework Inspeção Nicolas Mauricio
Análise Verificação do próprio projeto: Casos de Uso Inspeção Nicolas Mauricio
Análise Verificação do próprio projeto: Cenário Inspeção Nicolas Mauricio
Análise Verificação do próprio projeto: Especificação Suplementar Inspeção Nicolas Mauricio
Análise Verificação do próprio projeto: Histórias de Usuário Inspeção Nicolas Mauricio
Análise Verificação do próprio projeto: BackLog Inspeção Nicolas Mauricio
Análise Validação do próprio projeto: Comprovação Informal Envio de Email Lucas Gabriel Lucas Macedo
Pós-rastreabilidade Backward From Meta-modelo de Toranzo Renan, Nicolas Davi Silva
Pós-rastreabilidade Forward From Forward From Lucas Macedo, Davi, Mauricio, Lucas Gabriel Davi Silva, Lucas Macedo, Lucas Gabriel, Nicolas
Todas Apresentações Gravação Nicolas, Davi, Mauricio, Lucas Gabriel, Lucas Macedo, Renan Nicolas, Davi, Mauricio, Lucas Gabriel, Lucas Macedo

Tabela 6: Síntese das técnicas utilizadas
(Fonte: autor, 2023).

Verificação e Validação dos Artefatos

A etapa de validação de requisitos contempla o processo de análise do documento de requisitos para garantir que ele defina o software esperado pelos usuários. Os documentos elaborados na etapa de especificação passam por uma etapa de verificação e validação, para garantir que o engenheiro de software tenha entendido os requisitos. Além disso, é importante verificar se o documento elaborado está de acordo com os padrões exigidos pelos stakeholders, como por exemplo uma padronização de documentos em uma empresa, é consistente, completo e de fácil entendimento. [3]

A verificação foi feita por meio da inspeção, com base na proposta de Fagan [2], utilizando um checklist de erros mais comuns que podem ser identificados em projetos, tomando como base os projetos anteriores da disciplina de Requisitos de Software, os critérios do Plano de Ensino [1], a bibliografia da disciplina e os feedbacks dos monitores. A Tabela 7 sintetiza os responsáveis pela elaboração dos checklists para cada artefato, nos artefatos de planejamento, e execução das verificações, nos artefatos de resultados. A validação foi feita por meio da comunicação informal, via email, com as equipes de desenvolvimento dos aplicativos a serem validados.

Artefato Autor(es) Revisor(es)
Verificação (Grupo 2) - Planejamento da verificação Nicolas Souza Maurício
Verificação (Grupo 2) - Backlog Nicolas Souza Maurício
Verificação (Grupo 2) - Brainstorming Nicolas Souza Maurício
Verificação (Grupo 2) - Casos de uso Nicolas Souza Maurício
Verificação (Grupo 2) - Cenários Nicolas Souza Maurício
Verificação (Grupo 2) - Entrevista Nicolas Souza Maurício
Verificação (Grupo 2) - Especificação Suplementar Nicolas Souza Maurício
Verificação (Grupo 2) - Glossário Nicolas Souza Maurício
Verificação (Grupo 2) - Histórias de usuário Nicolas Souza Maurício
Verificação (Grupo 2) - Introspecção Nicolas Souza Maurício
Verificação (Grupo 2) - Léxicos Nicolas Souza Maurício
Verificação (Grupo 2) - NFR Framework Nicolas Souza Maurício
Verificação (Grupo 2) - Personas Nicolas Souza Maurício
Verificação (Grupo 2) - Priorizacao Nicolas Souza Maurício
Verificação (Grupo 2) - Questionário Nicolas Souza Maurício
Verificação (Grupo 2) - Richpicture Nicolas Souza Maurício
Verificação (Grupo 2) - Storytelling Nicolas Souza Maurício
Validacao (Grupo 2) Lucas Gabriel Lucas Macedo
Verificação (Grupo 3) - Backlog Davi Silva Lucas Macedo
Verificação (Grupo 3) - Brainstorm Davi Silva Lucas Macedo
Verificação (Grupo 3) - Casos de uso Davi Silva Lucas Macedo
Verificação (Grupo 3) - Cenários Lucas Gabriel Davi
Verificação (Grupo 3) - Entrevista Lucas Gabriel Davi
Verificação (Grupo 3) - Especificação Suplementar Lucas Macedo Davi
Verificação (Grupo 3) - Histórias de Usuário Lucas Macedo Davi
Verificação (Grupo 3) - Introspecção Lucas Gabriel Nicolas Souza
Verificação (Grupo 3) - Léxico Davi Silva Lucas Macedo
Verificação (Grupo 3) - NFR Framework Davi Silva Lucas Macedo
Verificação (Grupo 3) - Perfil do Usuário Lucas Gabriel Davi
Verificação (Grupo 3) - Personas Lucas Gabriel Davi
Verificação (Grupo 3) - Priorização Lucas Macedo Davi
Verificação (Grupo 3) - Técnicas de Elicitação Lucas Macedo Davi
Validação (Grupo 3) Davi e Lucas Macedo Lucas Gabriel

Tabela 7: Síntese dos artefatos de Verificação
(Fonte: autor, 2023).

Apresentações

Durante a execução do projeto o grupo fez seis entregas parciais, cujas informações estão sintetizadas na Tabela 8.

Apresentação Participantes
Apresentação
Ponto de Controle 1
Davi, Lucas Gabriel, Lucas Macedo,
Maurício, Nicolas e Renan
Apresentação
Ponto de Controle 2
Davi, Lucas Gabriel, Lucas Macedo,
Nicolas e Renan
Apresentação
Ponto de Controle 3
Davi, Lucas Gabriel, Lucas Macedo,
Maurício e Nicolas
Apresentação
Ponto de Controle 4
Davi, Lucas Gabriel, Lucas Macedo,
Maurício e Nicolas
Apresentação
Ponto de Controle 5
Davi, Lucas Macedo e Lucas Gabriel
Apresentação
Ponto de Controle 6
Nicolas

Tabela 8: Síntese das apresentações
(Fonte: autor, 2023)

Resultados Alcançados

Esta seção apresenta os resultados alcançados durante o trabalho realizado na disciplina de Requisitos de Software e lista os pontos positivos e negativos identificados pelo Grupo 2, responsável pelo repositório de análise do sítio eletrônico Lichess. O documento tem como objetivo apresentar uma dissertação a respeito dos resultados do grupo ao longo do projeto e se o objetivo inicial do grupo foi atingido, além de identificar as razões do sucesso ou insucesso de tal projeto.

Objetivo do projeto

Esse trabalho teve como objetivo principal contribuir de forma prática na aquisição de conhecimento dos integrantes do Grupo 2, com a realização de atividades práticas, para isso foi escolhido um Sistema mobile no qual o grupo pode exercer os conhecimentos adquiridos ao longo do semestre na disciplina de Requisitos de Software de forma prática.

Resultados

Os resultados obtidos foram:

  • Cerca de 70 artefatos;
  • 8 técnicas de elicitação;
  • 7 técnicas de modelagem de requisitos;
  • 3 técnicas de priorização;
  • 64 requisitos elicitados;

Ao decorrer do projeto os membros puderam praticar seus conhecimentos através da elaboração de artefatos de Planejamento, Elicitação, Modelagem, Análise(verificação e validação) e Rastreabilidade, assim passando por algumas etapas nas quais foi necessário o contato com usuários reais. Ante o exposto, foi possível que todos os membros do grupo aprendessem o conteúdo unindo teoria e prática, assim facilitando o entendimento do conteúdo e realizando todas as atividades propostas para o grupo durante a disciplina.

Facilidades

As facilidades do grupo ao longo do projeto foram:

  • Facilidade de pesquisa devido à grande quantidade de materiais pertinentes disponibilizados pelo professor.
  • Conhecimento adquirido ao longo do Curso de Engenharia de Software, com relação a ferramentas como o GitHub.
  • Trabalho colaborativo entre os membros do grupo que foi essencial para a conclusão do projeto da disciplina.

Dificuldades

As dificuldades do grupo ao longo do projeto foram:

  • Dificuldade de horários em comum para realização de gravações de entregas.
  • Dificuldade de encontrar usuários do aplicativo escolhido dispostos a participar de atividades para melhoria do projeto.
  • Curto espaço de tempo entre entregas, dificultando a entregas de pontos de controles, apesar do planejamento, devido à grande quantidade de atividades que os membros possuíam com relação à universidade e/ou trabalho.

Agradecimentos

  • Agradecimento ao professor, André Barros pelas aulas, extremamente didáticas e por sua disponibilidade para ajudar os alunos a entender melhor o conteúdo ministrado.
  • Agradecimento ao monitor Gustavo Ribeiro pelas avaliações das entregas feitas pelo grupo e disponibilidade para ajuda com dúvidas.
  • Agradecimento aos membros do Grupo 2 que tornaram esse projeto possível.

Bibliografia

[1] Plano de Ensino da disciplina Requisitos de Software.
[2] Gerência e Qualidade de Software - Aula 06 - Técnica de revisão – UNIVESP
[3] Bourque and R.E. Fairley, eds., Guide to the Software Engineering Body of Knowledge, Version 3.0, IEEE Computer Society, 2014; www.swebok.org.
[4] POHL, Klaus; RUPP, Chris. Requirements Engineering Fundamental.
[5] RESULTADOS alcançados. [S. l.], 9 nov. 2022. Disponível em: https://interacao-humano-computador.github.io/2022.1-Dominio-Publico/#/faseFinal/resultadosAlcancados. Acesso em: 1 fev. 2023.

Histórico de Versão

Versão Data Descrição Autor(es) Revisor(es)
1.0 30/01/2023 Criação da versão inicial do documento contendo introdução, execução do projeto, sínteses do planejamento, da verificação e validação e das gravações, e estrutura para inserção das demais seções. Nicolas Souza Lucas Macedo
1.1 30/01/2023 Adição da síntese de ferramentas Lucas Macedo Nicolas Souza
1.2 31/01/2023 Adição da síntese das técnicas utilizadas Davi Silva Nicolas Souza
1.3 01/02/2023 Inclusão da seção de resultados alcançados e agradecimentos Lucas Gabriel Nicolas Souza
1.4 01/02/2023 Inclusão da seção de cronograma Maurício Machado Nicolas Souza
1.5 02/02/2023 Correção nos autores de artefatos Lucas Gabriel Lucas Macedo