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