Você está na página 1de 14

SISTEMA DE ENSINO PRESENCIAL CONECTADO

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE


SISTEMAS - 3º SEMESTRE

THIAGO JULIANO MAIA BARBOSA

PROJETO INTEGRADO IV

Sete Lagoas
2023
THIAGO JULIANO MAIA BARBOSA
PROJETO INTEGRADO IV

Trabalho de Projeto Integrado apresentado


como requisito parcial para a obtenção de
média semestral na disciplina de Projeto
Integrado.

Sete Lagoas
2023
SUMÁRIO

1 INTRODUÇÃO..................................................................................................... 1
2 DESENVOLVIMENTO..........................................................................................3
2.1 COMPUTAÇÃO EM NUVEM..........................................................................3
2.2 SISTEMA OPERACIONAIS............................................................................4
2.3 PROGRAMAÇÃO WEB..................................................................................5
2.4 DESENVOLVIMENTO MOBILE.....................................................................8
3 CONCLUSÃO.....................................................................................................10
REFERÊNCIAS 11
1

1 INTRODUÇÃO

Na era digital em constante evolução, a computação em nuvem é um


modelo que permite o fornecimento de recursos de computação sob demanda pela
Internet. Em vez de gerenciar a infraestrutura de hardware e software, você pode
acessar recursos de computação em qualquer lugar ou qualquer hora, como
máquinas virtuais e armazenamento, por meio de um provedor de nuvem. A nuvem
proporciona acesso sob demanda a recursos compartilhados, eliminando
investimentos massivos em hardware. (AKAMAI, 2023)
Os sistemas operacionais são uma parte essencial de qualquer sistema de
computador. Eles atuam como uma interface entre o usuário e o hardware do
computador, permitindo que o usuário interaja com o computador sem precisar
entender os detalhes técnicos do funcionamento do hardware. O sistema
operacional é um software que pode ser o Linux, Windows, Android, macOS, UNIX,
entre outros. Ele é um programa que conversa diretamente com o hardware de
vários tipos de máquina. O sistema operacional assegura que os programas
funcionem corretamente. (ALURA, 2023)
A programação web é um campo vasto e em constante evolução que
abrange uma variedade de tecnologias e práticas usadas para criar e manter
websites e aplicações web. A programação web envolve a criação de páginas ou
aplicativos que são exibidos em um navegador. Com a crescente dependência de
serviços online para tudo, desde compras e entretenimento até bancos e saúde, a
demanda, a programação web é uma habilidade essencial no mundo digital de hoje.
(SANTOS, 2018)
O desenvolvimento mobile é o processo de criação de software para
smartphones, tablets e assistentes digitais. O software pode ser pré-instalado no
dispositivo, baixado de uma loja de aplicativos móveis ou acessado por meio de um
navegador da Web de dispositivo móvel. O desenvolvimento de aplicativos móveis é
um campo em constante evolução que se tornou uma necessidade para as
empresas no mercado tecnológico atual. Com o aumento do uso de smartphones e
a constante evolução das plataformas móveis e aplicativos, surgem diferentes
arquiteturas e estruturas para atender às necessidades no desenvolvimento de
novas aplicações. Ou seja, o desenvolvimento de aplicativos móveis é uma área
essencial no mundo da tecnologia atual. Ele facilita a interação do usuário com o
2

mundo digital e fornece uma variedade de serviços e recursos que permitem a


execução eficiente dos programas. (IBM, 2023)
Em resumo, a computação em nuvem, os sistemas operacionais, a
programação web e o desenvolvimento mobile são componentes fundamentais da
tecnologia moderna, cada um desempenhando um papel único e vital. A
computação em nuvem transformou a maneira como as empresas operam,
permitindo o acesso a recursos de computação sob demanda e escaláveis. Isso
eliminou a necessidade de manter uma infraestrutura de TI cara, permitindo que as
empresas se concentrem em suas competências principais.
Os sistemas operacionais atuam como a espinha dorsal de nossos
dispositivos, facilitando a interação entre o usuário e o hardware do computador.
Eles gerenciam os recursos do sistema e fornecem um ambiente no qual os
aplicativos podem ser executados de maneira eficiente. A programação web é o que
permite a criação e manutenção de websites e aplicações web. Além disso a
programação web pode ser dividida em duas partes principais: o desenvolvimento
front-end e o desenvolvimento back-end. O desenvolvimento front-end envolve a
criação da interface do usuário, enquanto o desenvolvimento back-end lida com a
lógica do servidor, bancos de dados e integração de sistemas.
O desenvolvimento mobile, por outro lado, foca na criação de softwares para
dispositivos móveis. Com o uso crescente de smartphones e tablets, os aplicativos
móveis tornaram-se uma parte essencial de nossas vidas diárias. Em resumo, o
desenvolvimento de aplicativos móveis é uma área essencial no mundo da
tecnologia atual. Ele facilita a interação do usuário com o mundo digital e fornece
uma variedade de serviços e recursos que permitem a execução eficiente dos
programas.
Esses quatros campos são interconectados e continuam a evoluir com o
avanço da tecnologia. Eles desempenham um papel crucial na forma como
interagimos com a tecnologia digital e continuarão a moldar nosso futuro
tecnológico.
3

2 DESENVOLVIMENTO

2.1 TAREFA 1

Infraestrutura como serviço é um modelo de serviço de computação em


nuvem que oferece recursos fundamentais de computação, armazenamento e rede
sob demanda e pagos conforme o uso. Como empreendedor, ao iniciar minha
jornada com meus sócios para criar uma aplicação inovadora, a escolha do modelo
de serviço de computação em nuvem torna-se um ponto crucial para o sucesso de
nosso empreendimento.
A IaaS (Infraestrutura como Serviço) é um dos quatro tipos de serviços de
nuvem, juntamente com o SaaS (software como serviço), a PaaS (plataforma como
serviço) e a tecnologia sem servidor.
O modelo PaaS (Plataforma com serviço) é uma alternativa atraente, no
entanto, compreendemos que as necessidades específicas de nossa aplicação
inovadora podem ser limitadas por recursos padronizados de uma plataforma
gerenciada.
O modelo SaaS (Software as a Service) não atende plenamente nossos
requisitos, pois desejamos maior controle sobre a infraestrutura e personalização da
aplicação.
A tecnologia sem servidor, também conhecida como Serverless, é um modelo
de computação em nuvem onde as empresas não precisam gerenciar ou se
preocupar com a infraestrutura subjacente. É mais utilizada para escrever e
implantar códigos sem a necessidade de provisionar, gerenciar ou atualizar
servidores e infraestrutura, o que não seria o caso.
Com base nessas considerações, chegamos à conclusão de que o modelo
mais apropriado para nosso caso é o IaaS (Infraestrutura como Serviço). A adoção
do IaaS nos proporcionará total controle sobre a infraestrutura, permitindo-nos
configurar os recursos de forma personalizada para atender às demandas
específicas da aplicação. Essa flexibilidade nos permitirá otimizar o desempenho e a
eficiência do sistema, garantindo que nossa aplicação ofereça uma experiência
excepcional aos usuários.
4

2.2 TAREFA 2

a) Definição de thread: Uma thread é a menor unidade de processamento dentro


de um processo. Ela representa um fluxo independente de execução que pode ser
gerenciado pelo sistema operacional. Threads compartilham o mesmo espaço de
endereçamento do processo pai, o que significa que podem acessar as mesmas
variáveis e recursos, tornando a comunicação e compartilhamento de dados mais
eficiente. Diferentes threads dentro de um mesmo processo podem executar trechos
de código de forma concorrente, permitindo que a aplicação realize tarefas
simultâneas.

b) Estados das threads: As threads podem estar em diferentes estados durante


seu ciclo de vida. Os principais estados de uma thread são:

- Pronta (Ready): A thread está pronta para ser executada, mas ainda não recebeu
o tempo de processamento necessário do sistema operacional.
- Executando (Running): A thread está sendo executada no processador.
- Bloqueada (Blocked): A thread está impedida de prosseguir devido a algum
evento, como espera por entrada/saída (I/O), e precisa aguardar a conclusão dessa
operação antes de voltar ao estado de pronta.
- Terminada (Terminated): A thread finalizou sua execução e não está mais
disponível para processamento.

c) Benefícios da programação multithread: A programação multithread traz vários


benefícios para o desenvolvimento de aplicações:

- Responsividade: Permite que a aplicação responda a eventos e interações do


usuário enquanto realiza tarefas em segundo plano.
- Desempenho: A execução concorrente de tarefas pode melhorar o desempenho
geral da aplicação, especialmente em sistemas com múltiplos núcleos de
processamento.
- Utilização eficiente de recursos: Permite que a aplicação utilize eficientemente
os recursos do sistema, como processador e memória.
- Compartilhamento de dados: Facilita o compartilhamento de dados e recursos
5

entre threads, agilizando a comunicação entre diferentes partes da aplicação.


- Paralelismo: Permite que tarefas independentes sejam executadas em paralelo,
acelerando o tempo de resposta da aplicação.

d) Operações de thread: As operações mais comuns realizadas em threads são:

- Criação: Criação de uma nova thread dentro de um processo existente.


- Sincronização: Uso de mecanismos de sincronização, como semáforos, mutex
(exclusão mútua) e variáveis de condição, para garantir que as threads acessem
recursos compartilhados de forma segura e evitar condições de corrida.
- Join: Permite que uma thread espere a conclusão de outra thread antes de
continuar a execução.
- Finalização: Encerramento de uma thread que completou sua tarefa.
- Bloqueio/Desbloqueio: Colocar uma thread em estado de bloqueio (wait)
aguardando por um evento específico, ou desbloqueá-la (notify) quando o evento
ocorrer.
- Prioridades: Atribuição de prioridades para determinar a ordem de execução das
threads.

Essas operações permitem controlar o comportamento e a interação entre


as threads dentro de um processo, possibilitando o desenvolvimento de aplicações
mais eficientes e responsivas. No entanto, é importante ter cuidado com possíveis
condições de corrida e outras situações que podem levar a problemas de
concorrência e tornar o código complexo.

2.3 TAREFA 3

GET: O método GET é usado para solicitar dados de um recurso específico


no servidor. É usado para recuperar informações, e não deve alterar o estado do
servidor ou do recurso.

Exemplo de utilização:
6

GET /api/posts/123 HTTP/1.1


Host: example.com

Neste exemplo, estamos fazendo uma solicitação para o servidor para obter
o post com o ID 123 na API. O servidor responderá com os dados desse post.
POST: O método POST é usado para enviar dados para o servidor para
serem processados e criados como um novo recurso. É comumente usado em
formulários e envio de dados para APIs.

Exemplo de utilização:

POST /api/posts HTTP/1.1


Host: example.com
Content-Type: application/json

{
"title": "Novo post",
"content": "Conteúdo do novo post"
}

Neste exemplo, estamos enviando dados JSON para o servidor para criar
um novo post na API. O servidor processará os dados e retornará uma resposta
indicando o sucesso da criação do novo recurso.
PUT: O método PUT é usado para atualizar ou criar um recurso com dados
enviados no corpo da solicitação. Ele é usado para atualizar informações existentes
no servidor.

Exemplo de utilização:

PUT /api/posts/123 HTTP/1.1


Host: example.com
Content-Type: application/json

{
7

"title": "Título atualizado",


"content": "Conteúdo atualizado do post"
}

Neste exemplo, estamos usando o método PUT para atualizar o post com o
ID 123 na API. O servidor processará os dados e atualizará as informações do post
de acordo.
DELETE: O método DELETE é usado para remover um recurso específico
no servidor.

Exemplo de utilização:

DELETE /api/posts/123 HTTP/1.1


Host: example.com

Neste exemplo, estamos usando o método DELETE para solicitar a remoção


do post com o ID 123 na API. O servidor removerá o recurso correspondente.
PATCH: O método PATCH é usado para realizar modificações parciais em
um recurso. Ele é semelhante ao método PUT, mas atualiza apenas as informações
fornecidas no corpo da solicitação.

Exemplo de utilização:

PATCH /api/posts/123 HTTP/1.1


Host: example.com
Content-Type: application/json

{
"title": "Título atualizado"
}

Neste exemplo, estamos usando o método PATCH para atualizar apenas o


título do post com o ID 123 na API. O servidor processará o pedido e modificará
apenas o campo específico solicitado.
8

2.4 TAREFA 4

O SQLite é um banco de dados relacional de código aberto que dispensa o


uso de um servidor na sua atuação, armazena seus próprios arquivos dentro de sua
própria estrutura, funcionando em diversas aplicações, principalmente em websites
de tráfego médio e sistemas mobile.
As principais características do SQLite são:

- Banco de Dados Embutido: O SQLite é um banco de dados embutido que não


requer configurações adicionais ou servidores externos. Ele é implementado como
uma biblioteca C que é incorporada diretamente nas aplicações Android, tornando-o
uma solução leve e eficiente para persistência de dados locais.

- Suporte SQL Completo: O SQLite oferece suporte completo à linguagem SQL


(Structured Query Language), permitindo a criação, consulta, atualização e exclusão
de dados de forma similar ao que é feito em bancos de dados tradicionais.

- Transações ACID: O SQLite garante a integridade dos dados por meio do suporte
a transações ACID (Atomicidade, Consistência, Isolamento e Durabilidade),
garantindo que as operações sejam consistentes mesmo em situações de erro.

- Sem Necessidade de Conexão com a Internet: Como o SQLite opera


localmente, não requer uma conexão com a internet para funcionar, tornando-o ideal
para aplicações que precisam funcionar offline.

- Bom Desempenho: O SQLite é conhecido por seu desempenho eficiente, pois é


projetado para ser rápido e leve, o que é especialmente relevante em dispositivos
móveis com recursos limitados.

- Open Source: O SQLite é uma biblioteca de código aberto e amplamente utilizada


em diversas plataformas, o que significa que é bem testado, estável e tem uma
comunidade ativa para suporte e desenvolvimento contínuo.

Principais vantagens do uso do SQLite em aplicações Android:

- Facilidade de Implementação: A biblioteca SQLite é integrada ao SDK do


9

Android, o que facilita sua utilização e não requer a instalação de componentes


adicionais.

- Bom Desempenho: O SQLite é otimizado para operações locais, oferecendo um


desempenho rápido e eficiente em dispositivos móveis.

- Compatibilidade com o Android: O SQLite é nativamente suportado pelo


Android, tornando-o a escolha padrão para persistência de dados locais em
aplicações Android.

- Baixo Consumo de Recursos: O SQLite requer pouca memória e recursos do


dispositivo, o que é importante para dispositivos móveis com limitações de hardware.

Principais desvantagens do uso do SQLite em aplicações Android:

- Complexidade em Relação a Bancos de Dados Remotos: Para operações de


sincronização com bancos de dados remotos, pode ser necessário implementar
lógica adicional para garantir a consistência dos dados.

- Limitações de Escalabilidade: Embora seja adequado para aplicações locais ou


pequenas, o SQLite pode enfrentar limitações de escalabilidade em aplicações que
requerem grandes volumes de dados ou muitos acessos simultâneos.

- Gerenciamento Manual das Atualizações do Esquema: Se houver atualizações


no esquema do banco de dados, será necessário gerenciar manualmente essas
atualizações para garantir a compatibilidade com versões anteriores da aplicação.
10

3 CONCLUSÃO

Este projeto integrador foi elaborado visando apresentar uma breve aplicação
prática sobre os tópicos estudados no semestre, fixando os conteúdos de cada
disciplina e expondo de forma clara e objetiva o que foi solicitado. O projeto
propiciou a oportunidade de aplicação prática dos conceitos teóricos estudos nas
disciplinas ao decorrer do semestre, desenvolvendo conhecimento necessário para
o futuro cotidiano profissional e uma vivência prática.
Através da elaboração deste projeto, foram colocadas as informações
apresentadas, como podem ser desenvolvidas tais atividades e que possibilitaram a
junção da teoria. Cabe ressaltar a importância da pesquisa, para que o aluno possa
desenvolver suas habilidades e suas potencialidades adquiridas e uma melhor
compreensão do que acontece no cotidiano profissional.
Neste sentido a elaboração deste projeto proporcionou perspectivas valiosas
para o desenvolvimento de soluções tecnológicas eficientes e inovadoras. A
compreensão da conexão entre essas matérias é fundamental para criar aplicações
e serviços de alta qualidade, que atendam às exigências do mercado e superem as
expectativas dos usuários, trazendo um bom aprendizado e uma possibilidade de
potencializar os estudos e os conhecimentos sobre as disciplinas do semestre.
11

REFERÊNCIAS

AKAMAI. Introdução à computação em nuvem, 2023. Disponível em:


https://www.linode.com/pt-br/blog/cloud-computing/introduction-to-cloud-computing/
Acessado em 15/10/2023.

ALURA. Introdução: Sistema Operacional, 2023. Disponível em:


https://www.alura.com.br/artigos/sistemas-operacionais-conceito-estrutura Acessado
em 15/10/2023.

IBM. O que é desenvolvimento de aplicativos móveis? Desenvolvimento de


aplicativos móveis é o processo de criar software para smartphones, tablets e
assistentes digitais. 2023. Disponível em https://www.ibm.com/br-pt/topics/mobile-
application-development Acessado em 15/10/2023.

SANTOS, Vinicius dos. Introdução a Programação Web: Entendendo os Conceitos


Básicos, 2018. Disponível em: https://www.computersciencemaster.com.br/introduçã
o-programacao-web/ Acessado em 15/10/2023

Você também pode gostar