Buscar

PROJETO INTEGRADO II - ADS UNOPAR

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

UNOPAR 
SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO 
DE SISTEMAS 
 
 
 
 
 
 
DARLENE ALVES DEBONA 
 
 
 
 
 
 
 
 
 
 
 
PROJETO INTEGRADO II 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
CACHOEIRO DE ITAPEMIRIM 
2021
DARLENE ALVES DEBONA 
 
 
 
 
 
 
 
 
 
PROJETO INTEGRADO II 
 
 
 
 
Projeto Integrado II apresentado como requisito 
parcial para aprovação no curso Superior de 
Tecnologia em Análise e Desenvolvimento de 
Sistemas na Universidade Norte do Paraná 
(UNOPAR), polo de Cachoeiro de Itapemirim. 
Disciplinas: Lógica Computacional, Engenharia de 
Software, Modelagem de dados, Algoritmos e 
Programação estruturada, Análise e modelagem de 
sistemas. 
Tutor a distância: Tiago Barroso dos Santos. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
CACHOEIRO DE ITAPEMIRIM 
2021
SUMÁRIO 
 
INTRODUÇÃO ............................................................................................................ 4 
PROJETO INTEGRADO II .......................................................................................... 5 
CONSIDERAÇÕES FINAIS ...................................................................................... 12 
REFERÊNCIAS ......................................................................................................... 13 
 
 
 
 
 
 
4 
 
INTRODUÇÃO 
 
A presente pesquisa almeja expor conhecimentos, técnicas e ferramentas 
necessárias para a boa atuação profissional do Analista e Desenvolvedor de 
Sistemas, elencado noções e fundamentos a respeito das disciplinas estudadas 
durante o semestre. As disciplinas identificadas neste trabalho são: Lógica 
Computacional, Engenharia de Software, Modelagem de dados, Algoritmos e 
Programação Estruturada e Análise e Modelagem de sistemas. 
O principal objetivo do trabalho é difundir o aparato de informações e 
ferramentas necessárias para a instrumentalização do profissional na área de 
programação, baseado nas disciplinas elencadas acima. Os objetivos específicos são: 
mostrar conceitos das disciplinas estudadas no semestre, expor conhecimento 
específicos para os profissionais de programação, desenvolver estudos dirigido, 
analisar possíveis práticas ligadas a teoria e proporcionar um desenvolvimento de 
pesquisa por parte do estudante. 
Os conceitos que serão apresentados referente as disciplinas são: lógica 
indutiva e lógica dedutiva, ferramentas CASE, pseudocódigo; e requisitos funcionais 
e requisitos não-funcionais. Todos esses conceitos se mostrarão imprescindíveis para 
que o Analista e Desenvolvedor de Sistemas tenha uma desenvoltura profissional de 
forma mais eficiente e eficaz. 
A lógica dedutiva e indutiva são duas partes da lógica que ajudam o 
programador a estruturar os dados e informações, podendo auxiliar no 
desenvolvimento dos algoritmos. Da mesma forma, o pseudocódigo é uma ferramenta 
que também auxilia no desenvolvimento de algoritmos, facilitando esse processo. As 
ferramentas CASE também podem facilitar o processo de projeto de software, 
apresentando características que favorecem o bom desenvolvimento do software. A 
especificação dos requisitos funcionais e dos requisitos não-funcionais também é 
importante para o bom desenvolvimento do software e para a sua qualidade 
percebida, porque esses vão ajudar o programador a alcançar os objetivos do cliente. 
 
 
 
5 
 
PROJETO INTEGRADO II 
 
 A análise e desenvolvimento de softwares requer que o profissional 
disponha de diversos conhecimentos a fim de conseguir exercer seu papel de forma 
eficiente e prática. Um dos conhecimentos essenciais ao programador é o da Lógica, 
principalmente por ser a base para a criação de algoritmos. Há dois tipos de lógica 
em especial que devem ser conhecidas: a lógica indutiva e a lógica dedutiva. 
Segundo Sàágua (apud VELASCO, 2010, p.74) 
É habitual, e correto, distinguir dois gêneros de raciocínio: indutivo e dedutivo. 
A característica mais conspícua dos raciocínios indutivos reside no fato de 
partirem de certas frases e chegarem a uma outra que generaliza, de algum 
modo, sobre as frases de que se partiu. Os raciocínios dedutivos têm como 
característica mais conspícua o fato de o seu propósito ser o de partir de 
certas frases para chegar a outra que extrai das primeiras informações que 
elas, de algum modo, já continham. 
 
A partir do conceito apresentado, pode-se observar que a lógica indutiva 
se baseia em certas premissas particulares já conhecidas, que podem resultar em 
uma afirmação generalizada a respeito de um assunto. Dois exemplos de lógica 
indutiva seriam o seguinte: 
 Carlos é humano e tem coração / Jonas é humano e tem coração / 
Logo, todos os humanos têm coração. 
 Joana é engenheira e sabe cálculo / Diego é engenheiro e sabe 
cálculo / Portanto, todos os engenheiros sabem cálculo. 
Scheffer (2020) explica que na lógica indutiva partimos de experiências 
com verdades e fatos que ocorreram para estabelecer uma conclusão geral, sendo 
que um único contraexemplo pode invalidar todo o raciocínio. Velasco (2010) adverte 
que é eleito como argumento indutivo os argumentos cuja conclusão pretende-se que 
seja provavelmente verdadeira. Além disso, Velasco (2010) ainda elucida uma 
característica distinta da lógica indutiva: caso haja acréscimo de premissas, há 
modificação na força indutiva, podendo tanto aumentar (com o reforço de premissas), 
quanto diminuir (usando um contraexemplo). 
Já os argumentos dedutivos, segundo Velasco (2010), são classificados 
como tal, quando os argumentos pretendem chegar a uma conclusão que seja uma 
consequência lógica das premissas, assim garantindo que a verdade das premissas 
garanta a verdade da conclusão. Scheffer (2020) explica que a lógica dedutiva parte 
de premissas mais gerais a fim de obter conclusões mais particulares, sendo o 
6 
 
contrário da lógica indutiva. Velasco (2020, p.78) afirma que no argumento dedutivo, 
“o encadeamento das premissas nos obriga (ou deveria fazê-lo) a aceitarmos a 
conclusão”. 
Velasco (2010) dá os seguintes exemplos de lógica dedutiva: 
 Todo homem é mortal / Algum Sócrates é homem / Logo, algum 
Sócrates é mortal 
 Se venta muito, então faz frio / Se faz frio, então fico resfriada / Se 
venta muito, então fico resfriada 
Quanto a lógica dedutiva, Velasco (2010) esclarece que os argumentos 
podem ser classificados como válidos ou inválidos. A autora explica que “se a 
conclusão for inferida necessariamente das premissas, o argumento é dito válido; se, 
contrariamente, a suposta verdade das premissas não assegura a verdade da 
conclusão (embora o pretenda), o argumento é denominado inválido” (VELASCO, 
2010, p.84). 
Já no caso da lógica indutiva, os argumentos podem ser classificados como 
fortes ou fracos, segundo Velasco (2010). A autora expõe que “um argumento indutivo 
é forte se, e somente se, dada a suposta verdade das premissas, a conclusão é 
provável. Se, por outro lado, a conclusão não é provavelmente verdadeira com base 
na suposta verdade das premissas, então o argumento é dito fraco” (VELASCO, 2010, 
p.103). 
Portanto, pode-se observar como a lógica dedutiva e indutiva ocorrem. 
Essas informações são fundamentais para os programadores, tanto para a criação de 
algoritmos, quanto para outras abordagens necessárias no ambiente de negócios, 
principalmente como um analista de sistemas que precisa tomar decisões variadas. É 
importante conhecer os tipos de lógica e como as utilizar a fim de poder empregar de 
forma eficiente essa ferramenta. A lógica indutiva pode trazer conclusões baseadas 
em premissas particulares e que podem ser encontradas por meio de experiências e 
fatos, mas pode ser facilmente considerada fraca ou forte dependendo da quantidade 
de premissas ou de suas afirmações. A lógica dedutiva já nos traz conclusões 
baseadas em premissas mais gerais que nos forçam a chegar à determinada 
conclusão, podendo ser mais facilmente classificadas como válidas ou inválidas, 
dependendo do resultado.Uma importante ferramenta para os programadores utilizarem na 
modelagem de dados é chamado de CASE (Computer Aided Software Engeneering). 
7 
 
Werlich (2018, p.147) explica que as ferramentas CASE “são ferramentas que 
apresentam uma série de serviços que auxiliam no desenvolvimento de software e 
podem minimizar o tempo de desenvolvimento do software modelado”. 
Uma das principais características em comum das ferramentas CASE é a 
possibilidade da representação gráfica de elementos do projeto. Assim, essas 
ferramentas trazem o benefício da facilidade de produzir um diagrama e de gerar um 
banco de dados, além de conseguir documentar o sistema que está sendo modelado. 
Ademais, as ferramentas CASE podem alavancar os resultados de investimentos 
feitos em banco de dados, em menos tempo e com qualidade, dando suporte ao 
programador durante todo o processo de modelagem de dados e criação ou 
modificação de banco de dados. (PRESSMAN, 2016; MONTEIRO, 2004) 
Existem diversas ferramentas CASE hoje disponíveis no mercado, tendo 
inclusive opções online, podendo serem pagas ou terem opções sem custo. Werlich 
(2018) cita algumas dessas ferramentas: Astah, Rational Rose, Genexus, Multicase, 
Clarify, Oracle Designer, DBDesigner, Erwin, Embarcadero, MySQL Workbench, 
Draw.IO, Lucidchart e outras. Moreira Bisneto (2011) cita outros exemplos: BrModelo, 
Microsoft Visio e Sybase Power Designer. 
Pressman (2016) afirma ser difícil classificar as ferramentas CASE, 
principalmente pela quantidade e pelas funcionalidades existentes atualmente. 
Werlich (2018) explica que uma das classificações possíveis é: Lower CASE (suporte 
nas fases de análise e projeto de sistemas), Upper CASE (suporte nas fases de 
construção e análise de sistemas) e Integrated CASE (união das duas anteriores). 
Há ferramentas CASE para todas as etapas dos projetos de software, 
auxiliando no ciclo de desenvolvimento, na manutenção e na gerência dos projetos de 
desenvolvimento. As principais características destas são: foco na solução de 
problemas, geração automática de códigos, padronização de produtos, automação, 
reengenharia, engenharia reversa, suporte à reestruturação, interoperabilidade entre 
ferramentas, manutenção de coleção de dados, facilitar a verificação de consistência, 
documentar, aumentar produtividade, reduzir custos, aumentar qualidade e entre 
outras. As diferenças entre as ferramentas dependem da parte específica do projeto 
de desenvolvimento de software ao qual está sendo aplicado, sendo que atualmente 
há várias ferramentas que possuem uma gama diversificada de atuações. (RAMOS, 
2011; WERLICH, 2018) 
8 
 
Assim, é possível perceber as características e diferenças de algumas das 
ferramentas mais utilizadas na modelagem de dados, segundo Werlich (2018). Astah 
é uma ferramenta para criar diagramas UML, sendo ideal para desenvolvedores Java 
e há a possibilidade de criar diagramas de entidade-relacionamentos na sua versão 
Professional. A principal vantagem do Astah é pode criar automaticamente o dicionário 
de dados. O MySQL Workbench é uma ferramenta CASE gratuita, da empresa Oracle, 
que gera scripts para o SGBD MySQL, tendo foco na modelagem física do banco de 
dados e acelerando o processo. Lucidchart é uma ferramenta CASE online, sendo 
possível criar um modelo gratuito com até 60 objetos, podendo ser útil para pequenos 
e médios projetos e umas das vantagens dessa ferramenta é poder gerar scripts para 
os SGBD: MySQL, PostgreSQL, SQL Server e Oracle. O BrModelo é uma ferramenta 
CASE de código aberto e freeware, que pode ser usada para geração de esquemas 
conceituais e lógicos de bases relacionais, tendo uma atenção especial para os 
atributos. (WERLICH, 2018; MOREIRA BISNETO, 2011) 
Assim sendo, é perceptível a importância do conhecimento das 
ferramentas CASE para os profissionais de análise e desenvolvimento de softwares, 
já que essas ferramentas não só facilitam o trabalho, como também podem tornar o 
processo mais eficiente e eficaz, e com maior qualidade. A utilização de ferramentas 
CASE na modelagem de dados se torna imprescindível para que o profissional 
consiga observar a diagramação do software, podendo analisar os menores detalhes 
e, por fim, conseguir criar um programa que vá atender as necessidades dos clientes. 
Outro conhecimento necessário aos programadores é o do pseudocódigo. 
Segundo Rovai (2020), o pseudocódigo é uma forma de escrever os algoritmos em 
palavras similares ao inglês ou portugol (português), facilitando a interpretação e o 
desenvolvimento de um programa. Abaixo segue um exemplo de pseudocódigo a fim 
de calcular a média de faturamento de três meses de uma empresa qualquer, 
entrando então com três valores e apresentando o valor final da média: 
algoritmo “media” 
var 
 valor1, valor2, valor3, soma, media: real 
inicio 
 Escreval(“Digite o valor do faturamento 1: “) 
 Leia (valor1) 
9 
 
 Escreval(“Digite o valor do faturamento 2: “) 
 Leia (valor2) 
 Escreval(“Digite o valor do faturamento 3: “) 
 Leia (valor3) 
 soma <- (valor1 + valor2 + valor3) 
 media <- (soma/3) 
 Escreval(“O valor final da média do faturamento da empresa é:” media) 
fimalgoritmo 
Elaborado pela autora 
 
Como observado, o pseudocódigo nada mais é do que um código escrito 
de forma mais clara para que haja um maior entendimento do que é necessário, 
facilitando, posteriormente, a criação dos algoritmos chaves para o software. O 
pseudocódigo acima é um exemplo simples que mostra como um algoritmo pode ser 
estruturado a fim de apresentar uma média de faturamento de uma empresa qualquer. 
Mostra-se uma ferramenta importante para aumentar ainda mais a eficiência do 
trabalho profissional do programador. 
Outro conhecimento fundamental para os programadores é a engenharia 
de requisitos. Segundo Pressman (2016, p.132): “a engenharia de requisitos 
estabelece uma base sólida para o projeto e para a construção. Sem ela, o software 
resultante tem grande probabilidade de não atender às necessidades do cliente”. 
Pressman (2016) explica que a engenharia de requisitos incorpora tarefas e técnicas 
para concepção, levantamento, elaboração, negociação, especificação, validação e 
gestão dos requisitos necessários para um software de acordo com as necessidades 
que o cliente tem. 
Como se pode observar, uma das etapas da engenharia de requisitos é a 
especificação de requisitos. De acordo com Pressman (2016), essa etapa se refere 
ao detalhamento de todos os aspectos do software que deve ser construído antes 
mesmo de o projeto sequer começar. Werlich (2020) explica que os requisitos podem 
ser classificados como requisitos funcionais e requisitos não-funcionais. 
Os requisitos funcionais, de acordo com Werlich (2020), são os requisitos 
que determinam as funcionalidades específicas do sistema, instituindo os objetivos 
específico do software e o que ele deve possuir ao final do seu desenvolvimento. Usa-
se a sigla RF (Requisito Funcional) seguida de uma numeração para indicar os 
10 
 
requisitos funcionais. Pode-se observar alguns exemplos de requisitos funcionais 
apresentados por Werlich (2020, p.118): 
 [RF0001] – O sistema deve manter os dados pessoais e acadêmicos 
dos alunos 
 [RF0002] – O sistema deve permitir que o aluno faça a matrícula por 
disciplina 
 [RF0004] – O sistema deve permitir a visualização das notas 
cadastradas 
Já os requisitos não-funcionais, segundo Werlich (2020), são os requisitos 
que estabelecem restrições sobre as funcionalidades do sistema, estando diretamente 
relacionados a qualidade que o sistema deve ter e tendo critérios para qualificar os 
funcionais. Usa-se a sigla RFN (Requisito Não-Funcional). Pressman (2016, p.141) 
afirma que os requisitos não-funcionais podem ser descritos como “um atributo de 
qualidade,de desempenho, de segurança ou como uma restrição geral em um 
sistema”. Pode-se observar alguns exemplos de requisitos não-funcionais 
apresentados por Werlich (2020, p.119): 
 [RFN0001] – O tempo de espera do aluno para visualizar as notas, 
não poderá exceder os sete segundos. 
 [RNF0002] – O sistema deverá ser implementado utilizando a 
linguagem de programação JAVA. 
 [RNF0003] – As notas só poderão ser lançadas por profissionais da 
empresa com o perfil de professor. 
Para a identificação e a especificação dos requisitos não-funcionais, há 
algumas métricas que podem ser utilizadas, conforme explica Werlich (2020). Essas 
métricas são (WERLICH, 2020, p.120): 
 Velocidade: quantidade de transações realizadas por segundo, 
tempo de resposta ou atualização do sistema; 
 Tamanho: megabytes ou gigabytes ocupados, quantidade de RAM, 
quantidade de espaço em disco ou nuvem; 
 Usabilidade: horas necessárias para treinamento, quantidade de 
telas de ajuda; 
 Confiabilidade: tempo médio para falhar, probabilidade de 
indisponibilidade, taxa de ocorrência de falhas, disponibilidade; 
11 
 
 Robustez: percentual de eventos que causam falhas e o tempo 
necessário para o sistema se reestabelecer, determinar as 
possibilidades de que os dados sejam corrompidos; 
 Portabilidade: quantidade de adaptações para o sistema funcionar 
em diferentes plataformas. 
Deste modo, é explícito que a especificação de requisitos se torna 
impreterível para o bom desenvolvimento do software de forma a otimizar o projeto e 
alcançar os objetivos que o software deve cumprir de acordo com as necessidades do 
cliente. Os requisitos funcionais são a chave para as funcionalidades do sistema e 
devem ser elaborados de acordo com os objetivos do software. Já os requisitos não-
funcionais são necessários para criar exceções, qualificando os funcionais, que estão 
diretamente ligados a qualidade, a segurança e ao desempenho do software. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12 
 
CONSIDERAÇÕES FINAIS 
 
A presente pesquisa pode alcançar o objetivo principal e os objetivos 
específicos listados no início do trabalho. As disciplinas estudadas no semestre se 
mostram fundamentais para a instrumentalização do profissional da área de 
programação, tornando-se imprescindível que os estudantes continuem a buscar 
novas informações, conhecimentos e ferramentas que podem ser utilizadas para 
aumentar a qualidade e eficácia de seu trabalho. 
Além disso, os conhecimentos aqui dispostos também podem favorecer o 
desenvolvimento de novos estudos e pesquisas, a fim de gerar novas ideias e novas 
ferramentas que podem ser incorporados ao ambiente profissional posteriormente. 
Assim sendo, a pesquisa se mostrou de fundamental importância para que o estudo 
possa se qualificar de forma ainda mais benéfica para o desenvolvimento do aluno. 
As informações e conhecimentos a respeito das disciplinas relacionadas na 
pesquisa estão sempre em crescente atualização, mostrando a importância do 
contínuo estudo e a relevância do trabalho. As ferramentas apresentadas, como a 
CASE e o pseudocódigo, se apresentam como primordiais para o bom 
desenvolvimento profissional do programador, podendo ainda facilitar o processo de 
projeto de software de diversificadas maneiras. 
Ademais, a lógica é uma matéria necessária não somente na programação, 
mas também para qualquer área de nossas vidas, podendo ser usadas no processo 
de tomada de decisão, que envolvem mais do que somente os profissionais da área 
de programação. Por isso, é fundamental que o conhecimento da lógica seja difundido 
e exposto para todos. 
Por fim, a especificação de requisitos funcionais e requisitos não-funcionais 
também se mostra imprescindível para o bom gerenciamento do projeto de software. 
A especificação desses requisitos são necessários a fim de alcançar os objetivos que 
o cliente deseja obter com o software, aumentando, assim, a qualidade percebida pelo 
cliente. 
 
13 
 
REFERÊNCIAS 
 
MOREIRA BISNETO, Rubem Rodrigues. Uma ferramenta CASE para modelagem 
de bases de dados objeto-relacionais. TCC (Graduação em Ciência da 
Computação) – Universidade Federal de Pernambuco, 2011, 56f. Disponível em: < 
https://www.cin.ufpe.br/~tg/2011-2/rrmb.pdf>. Acesso em: 15 outubro 2021. 
 
MONTEIRO, Emilio Soares. Projeto de sistemas e bancos de dados. Rio de 
Janeiro: Brasport, 2004. 
 
PRESSMAN, Roger S. Engenharia de software. 8.ed. Porto Alegre: AMGH, 2016. 
 
RAMOS, Dênis Paiva. Ambientes de desenvolvimento de software (ADS) e 
ferramentas CASE: importância e aplicações. Monografia (Especialização em 
Informática) – Universidade Federal de Minas Gerais, 2011, 61f. Disponível em: < 
https://repositorio.ufmg.br/bitstream/1843/BUOS-94MPEV/1/denispaivaramos.pdf>. 
Acesso em: 15 outubro 2021. 
 
ROVAI, Kleber Ricardi. Algoritmos e programação estruturada. Londrina: Editora 
e Distribuidora Educacional S.A., 2020. 
 
SCHEFFER, Vanessa Cadan. Lógica computacional. Londrina: Editora e 
Distribuidora Educacional S.A., 2020. 
 
VELASCO, Patrícia Del Nero. Educando para a argumentação: contribuições do 
ensino da lógica. Belo Horizonte: Autêntica Editora, 2010. 
 
WERLICH, Claudia. Modelagem de dados. Londrina: Editora e Distribuidora 
Educacional S.A., 2018. 
 
WERLICH, Claudia. Análise e modelagem de sistemas. Londrina: Editora e 
Distribuidora Educacional S.A., 2020.

Continue navegando