Skip to content

Apêndice 05 - Documentação de software

Histórico de Versões
Data Responsável(eis) Descrição Versão
13/04/2024 Rafael Escrita de template do Epico e US 1.0
16/04/2024 Lucas e Rafael Definição de requisitos de software 1.1
16/04/2024 Felipe Revisão, ajustes e adição de requisitos funcionais 1.2
16/04/2024 Caio Revisão, ajustes e adição de histórias de usuários 1.3
17/04/2024 Rafael, Victor Hugo e Felipe Ajustes dos RNFs e Adicao de priorizacao 1.4
23/04/2024 Laura Pinos Adiciona introdução benchmarking 1.5
25/04/2024 Francisco Ferreira Adicionando diagrama de componentes 1.6
26/04/2024 Victor Hugo Adiciona documento de visão geral 1.7
26/04/2024 Lucas Queiroz Revisão do documento 1.7
26/04/2024 Laura Pinos Adicionando benchmarking 1.8
29/04/2024 Matheus Costa e Rafael Revisão e pequenas correções textuais 1.9
30/04/2024 Laura Pinos Correção de arquivo 1.10
02/05/2024 Caio Revisar e Refinar Documento 1.11
02/05/2024 Caio Remover referências ao sensor de peso 1.12
04/05/2024 Paulo Gonçalves Adiciona requisito para o envio de mensagens pelos sensores 1.13
16/06/2024 Rafael Adição do diagrama de classes do codigo embarcado 2.0
16/06/2024 Rafael Adição da seção sobre UML e detalhamento dos diagramas UML 2.1
8/07/2024 Rafael Atualização da Visão Geral 2.2

Visão Geral

Este documento tem por objetivo estabelecer um posicionamento sobre a aplicação, suas características e seu desenvolvimento em questão. Também definindo seus requisitos em termos de necessidade para usuários finais. Essencialmente, o documento de visão estabelece uma visão clara e compartilhada entre todas as partes envolvidas no projeto, incluindo desenvolvedores, clientes e stakeholders. Serve como um ponto de referência crucial para garantir que o desenvolvimento do software esteja alinhado com as expectativas e necessidades de todas as partes envolvidas.

Escopo

Conforme evidenciado por estudos da SENAR (2018), o armazenamento inadequado de grãos tem impactos significativos na qualidade e na quantidade dos produtos. Estimativas indicam perdas de bilhões de reais anualmente no Brasil devido a problemas como controle deficiente de temperatura e umidade que afeta tanto a produção quantitativa quanto a qualidade dos grãos.

A oportunidade de negócio está na crescente demanda por métodos mais eficientes de armazenamento de grãos, impulsionada pelas perdas significativas e pelos impactos econômicos observados devido ao armazenamento inadequado. Além disso, a necessidade de garantir a qualidade dos grãos ao longo do tempo e a pressão por práticas sustentáveis na agricultura também são fatores que favorecem esse tipo de produto.

Então, o objetivo desse projeto é criar uma solução adaptativa para controlar temperatura e concentração de CO2 nos silos, prevenindo o crescimento de microrganismos e a deterioração das sementes. O produto proposto inclui uma haste com furos para manter um fluxo de ar e uma interface para monitoramento e controle das condições no silo.

Descrição do problema

Questão Informações do Produto
O Problema é Armazenamento inadequado de grãos
Que afeta A qualidade e quantidade dos grãos
Cujo impacto é Perdas de bilhões de reais anualmente no Brasil
Uma boa solução seria Um produto que permita o controle e monitoramento da temperatura nos silos de armazemamento dos grãos

Descrição dos Usuários

Nome Descrição
Produtores Rurais Agricultores que desejam armazenar suas
colheitas com segurança e eficiência.
Indústrias Alimentícias Empresas que processam grãos para
produção de alimentos
Exportadores Precisam armazenar grãos antes do
envio ao exterior.
Cooperativas Agrícolas Gerenciam o armazenamento coletivo
de grãos.
Empresas de Comercialização Negociam grãos no mercado.

Descrição dos Envolvidos

Nome Descrição Responsabilidade
Equipe de PI2 Estudantes da Disciplina de Projeto Integrador de Engenharia 2 da UnB FGA Criar e manter documentos;
Desenvolver e testar o produto;
Tomar decisões a respeito do produto.
Idealizadores do Projeto Silo Air Estudantes Agronomia da Faculdade de Agronomia e Medicina Veterinária (FAV) da UnB, e o professor Dr. Jean Pierre Passos Medaets Auxiliar na compreensão e na elicitação de requisitos do produto;
Ajudar no conhecimento técnico necessário sobre os grãos e seu armazemamento correto.
Avaliadores Professores da disciplina de PI2 Avaliar e conceder feedback sobre a qualidade do projeto desenvolvido pelos alunos de PI2

Resumo das Capacidades

Benefícios Recursos de Suporte
Facilidade em monitorar e controlar as condições do silo A aplicação possui uma interface web de fácil uso para visualizar e analisar os dados dos sensores da haste, também conduz de maneira coerente e amigável o usuário para que ele realize o controle da circulação de ar pelo acionamento da ventilação da haste
Disponibilização de dados ao longo do tempo A aplicação se encarrega de disponibilizar relatórios periódicamente sobre as condições do silo ao longo do tempo
Possibilidade de rápida resposta para intercorrências A aplicação deve notificar de forma rápida os responsáveis pela manutenção do silo quando valores medidos pelos sensotes oscilarem para limites críticos

Perspectivas do Produto

O produto se destaca por sua abordagem adaptativa e inovadora, utilizando tecnologias como hastes com furos para ventilação controlada, sensores de temperatura e concentração de CO2 integrados, além de uma interface digital para acesso aos dados e controle das condições de armazenamento.

A posição do produto é fortalecida pela demanda crescente por soluções eficientes no setor agrícola, especialmente diante das perdas significativas e dos impactos econômicos causados pelo armazenamento inadequado de grãos. Além disso, a preocupação com a qualidade dos produtos e a busca por práticas sustentáveis na agricultura impulsionam a aceitação e a adoção de tecnologias avançadas para o armazenamento de grãos.

Elicitação de Requisitos

Segundo Summervile e Kotonya (1998), a elicitação de requisitos é a primeira atividade no processo de engenharia de requisitos, na qual se busca entender quais são as necessidades do usuário que devem ser atendidas pelo software que será desenvolvido.

Diante disso, as tabelas a seguir ilustrarão sobre este processo de levantamento de requisitos feito pela equipe, por meio da identificação de épicos e histórias de usuário.

Tabela 1: Épicos

ID Nome Descrição
E01 Coleta de dados O sistema deve coletar informações sobre o estado do silo onde a haste está inserida.
E02 Monitoramento O sistema deve apresentar as informações coletadas para o usuário
E03 Sistema notificador O sistema deve informar o usuário sobre a situação do silo

Fonte: Autor

Tabela 2: História de Usuários

ID Épico Nome Descrição
US01 E02 Medição de temperatura Eu, como usuário, quero saber a temperatura interna do silo para saber se os grãos estão sendo conservados
US02 E02 Medição de concentração de CO2 Eu, como usuário, quero saber a concentração interna de C02 do silo para analisar a troca de oxigênio dos grãos com o ar
US03 E03 Notificação de perda de conexão Eu, como usuário, quero ser notificado quando houver a perda de conexão com algum dos instrumentos de coleta de dados no silo
US04 E03 Formulação de relatório mensal Eu, como usuário, quero receber, mensalmente, um relatório com as possíveis situações dos grãos no silo
US05 E03 Notificação de valores anômalos Como usuário, quero ser notificado pelo sistema quando valores de dados coletados, como temperatura, apresentarem uma mudança significativa em relação ao padrão.

Fonte: Autor

Tabela 3: Requisitos Funcionais

ID Épico Descrição
RF01 E01 O sistema deve coletar automaticamente dados sobre a situação do silo por meio de sensores de temperatura e concentração de CO2 instalados no silo.
RF02 E02 O sistema deve apresentar em tempo real as informações de temperatura e concentração de CO2 dos grãos para os usuários.
RF03 E02 O sistema deve permitir que os usuários visualizem gráficos e relatórios históricos das condições do silo a partir do que foi coletado nos sensores.
RF04 E02 O sistema deve ser capaz de controlar automaticamente o ambiente dentro do silo, ajustando a potência do ar quente para manter os níveis ideais de temperatura e concentração de CO2.
RF05 E02 O sistema deve ser capaz de enviar o comando para injetar ar fresco no silo quando os níveis de CO2 estiverem elevados, para evitar a formação de mofo nos grãos.
RF06 E03 O sistema deve enviar notificações aos usuários em caso de condições anormais dentro do silo, como aumento repentino da temperatura ou concentração perigosa de CO2.
RF07 E03 O sistema deve notificar os usuários sobre a necessidade de intervenção manual em situações críticas ou falhas de sensores.
RF08 E03 O sistema deve enviar aos usuários mensalmente um relatório com as situações dos grãos no silo.
RF09 E03 O sistema deve fornecer uma interface de configuração para permitir que os usuários ajustem os parâmetros de operação, como temperatura de ativação do aquecedor.
RF10 E02 As mensagens enviadas pelos sensores devem ter o timestamp de quando foi feita a medição

Fonte: Autor

Tabela 4: Requisitos não funcionais

ID Épico Descrição
RNF01 E01 O sistema deve garantir uma medição precisa e confiável da temperatura interna do silo
RNF02 E01 O sistema deve garantir uma medição precisa e confiável da concentração de CO2 no silo
RNF03 E02 O sistema deve ser capaz de lidar com um aumento no número de usuários monitorados sem comprometer o desempenho ou a disponibilidade
RNF04 - O sistema deve estar disponível para uso dos usuários durante a maior parte do tempo, com tempo de inatividade planejado limitado para manutenção e atualizações programadas
RNF05 - O sistema deve ser projetado para operar de forma eficiente em termos de consumo de energia, minimizando o impacto ambiental e os custos operacionais para os usuários
RNF06 E02 Os sensores devem enviar mensagens de dados 1 em 1 segundo
RNF06 E02 As mensagens enviadas pelos sensores não podem passar de 10KB

Fonte: Autor

Priorização

O MoSCoW é um método popular de priorização em software para dar previsibilidade a projetos com entregas incrementais. O método faz isso estabelecendo quatro categorias de recursos: Must Have, Should Have, Could Have e Won’t Have, de onde foi cunhada a sigla MoSCoW (Miranda, 2022).

Significado das categorias MoSCoW:

  • Must Have (Deve Ter): Requisitos essenciais para o sucesso do projeto. São funcionalidades imprescindíveis e sem as quais o sistema não terá valor para o cliente.

  • Should Have (Deveria Ter): Requisitos importantes, mas não essenciais para o lançamento inicial do produto. Podem ser adiados para futuras iterações se necessário.

  • Could Have (Poderia Ter): Requisitos desejáveis, mas que não são críticos para o sucesso do projeto. Podem ser incluídos se houver tempo e recursos disponíveis.

  • Won’t Have (Não Terá): Requisitos que foram decididos conscientemente não serem incluídos no escopo do projeto atual. São funcionalidades que podem ser consideradas em versões futuras, mas não são prioritárias no momento.

Tabela 5: Priorização de requisitos

ID Requisito MoSCoW
PR01 RF01 Must
PR02 RF02 Must
PR03 RF03 Should
PR04 RF04 Must
PR05 RF05 Could
PR06 RF06 Should
PR07 RF07 Must
PR08 RF08 Should
PR09 RF09 Must
PR10 RF10 Should

Fonte: Autor

UML

Em 1997, o Object Management Group (OMG) lançou o Unified Modeling Language (UML). Seu objetivo era oferecer à comunidade de desenvolvedores uma linguagem de design comum para a construção e desenvolvimento de aplicações de software. O UML introduziu uma notação padronizada de modelagem que os profissionais de TI desejavam há muito tempo. Com essa modelagem, esses profissionais passaram a ser capazes de ler e disseminar a estrutura e os planos de design dos sistemas de maneira semelhante à forma como os trabalhadores da construção civil utilizam plantas arquitetônicas para a construção de edificações (BELL, 2023).

Diagrama de camada/componentes

No UML, o diagrama de componentes mostra a estrutura do sistema de software descrevendo seus componentes, interfaces e dependências, podendo ser usado tanto para modelar sistemas de alto nível quanto para detalhar componentes em baixo nível. Este tipo de diagrama é essencial para o desenvolvimento baseado em componentes, onde um sistema de software é dividido em componentes e interfaces reutilizáveis e substituíveis. Eles são úteis para definir aspectos executáveis e reutilizáveis de um sistema, identificar problemas de configuração de software através de relacionamentos de dependência e apresentar uma representação precisa de um aplicativo de software antes de qualquer alteração ou melhoria (IBM, 2023).

Figura 1: Diagrama arquitetural

diagramaComponentes

Fonte: Autor

A Figura 1 mostra que o sistema de monitoramento de grãos possui duas etapas bem definidas. A de eletrônica, que é responsável por fazer o controle da parte de estrutural do projeto e coletar dados dentro do silo, e monitoramento de dados, que a partir do protocolo MQTT recebe as informações coletadas pela parte embarcada e apresentar ao usuarios na forma de dashboards para visualização do usuário final.

Diagrama de Classes

O diagrama de classes é uma representação visual das classes em um sistema de software, bem como seus relacionamentos. Usam-se caixas retangulares para representar classes onde possuem três seções; a primeira o nome da classe; a segunda, se existir, os atributos da classe; e a terceira que representa os metodos da classe. Existem linhas para representar relacionamentos entre as classes nas quais possuem rótulos que indicam a multiplicidade do relacionamento. Por exemplo, um relacionamento "um para muitos" pode ser indicado por uma linha com o numeral "1" em uma extremidade e o símbolo "*" na outra. Um diagrama de classes bem elaborado pode ser uma ferramenta valiosa para comunicar o design de um sistema de software para outras pessoas. Ele pode ajudar a identificar e resolver problemas potenciais no design e pode facilitar a compreensão do sistema como um todo. Todavia, é importante notar que os diagramas de classes não são uma representação completa de um sistema de software. Eles não mostram o comportamento do sistema ou como os componentes do sistema interagem entre si (STARR, 2008).

Figura 2: Diagrama de classes - embarcados

classesEmbarcados

Autor

Esse diagrama da Figura 2 representa, de maneira inicial, como é feita a organização do código para relizar a comunicação com o subsistema de eletrônica do projeto.

Benchmark

Os negócios usam o benchmarking como uma estratégia fundamental para avaliar e comparar suas práticas, desempenho e resultados com os de seus concorrentes e referências do mercado. As empresas podem melhorar sua competitividade e alcançar melhores resultados ao aprender como outras empresas estão se destacando e descobrir as melhores práticas do mercado. Neste contexto, o benchmarketing foi feito no projeto para a tomada de decisões e a busca pela excelência no quesito condensação em silos.

Em um mercado tão competitivo e dinâmico como o de sistemas de aeração para unidades armazenadoras, o benchmarking dessas empresas líderes oferece insights valiosos para identificar as melhores práticas e tendências emergentes, permitindo que outras empresas se inspirem e busquem aprimorar suas próprias estratégias e produtos. Aqui temos algumas empresas que oferecem um serviço equivalente ao nosso projeto.

Tabela 6: Produtos Relevantes

Empresa Produto Descrição Link
GSI Ventiladores Nos sistemas de aeração, a relação entre as médias das áreas de chapas perfuradas, versus a do fundo do silo, fica em torno de 22,5%. Os ventiladores utilizados são centrífugos e de alta eficiência (acima de 90%). GSI
QualyCable Termometria Cabos com sensores digitais para silo. Controlador inteligente. Módulo WiFi. Estação meteorológica. Software e Aplicativo de Gerenciamento. Controlador automático de aeração. QualyCable
Qualygran Termometria Trabalha de maneira independente e inteligente, sem a necessidade de computador ou software. A própria termometria gera uma conexão Wi-Fi para o cliente usar, assim, o sistema não depende de Internet. A Estação Meteorológica informa: Temperatura ambiente, a Umidade relativa do ar e a ocorrência de Chuva. A memória SD armazena o histórico da armazenagem e da aeração. Qualygran/Cycloar
Weg Solução de Aeração Gerencie a aeração da unidade armazenadora de qualquer lugar do mundo. Racionalização do consumo de energia elétrica. Conservação do peso da massa de grão estocada. Redução dos custos de tratamento fitossanitários. Resfriamento prolongado da massa de grãos. Redução de mão de obra e maior segurança na operação. Conservação da qualidade da massa de grão estocada. Weg

Fonte: Autor

Fazendo uma comparação dos produtos citados com o Silo Air, podemos analisar o que o nosso faz que os outros não fazem na seguinte tabela:

Pontos em Comum Silo Air GSI QualyCable Qualygran/Cycloar WEG
Ventilação ✔️ ✔️
Sensores de Temperatura ✔️ ✔️ ✔️
Sensores de Umidade ✔️ ✔️
Sensores de Concentração de CO2 ✔️
Controle Digital ✔️ ✔️ ✔️
Módulo WiFi ✔️ ✔️

Protótipo Alta Fidelidade

Você pode encontrar o protótipo de software no documento de prova de conceito, onde detalhamos todas as ferramentas que serão empregadas.