Buscar

Projeto Integrado DevOps

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

(
Sistema de Ensino a distância
SUPERIOR DE TECNOLOGIA EM DEVOPS
)
 (
Francisco marcio de souza andrade
)
 (
PORTFÓLIO INTERDISCIPLINAR INDIVIDUAL:
PROJETO INTEGRADO
)
 (
Fortaleza - CE
202
3
)
 (
Francisco marcio de souza andrade
)
 (
PRODUÇÃO TEXTUAL individual:
PROJETO INTEGRADO
)
 (
Trabalho de Portfólio, apresentado à Universidade Norte do Paraná - UNOPAR, como requisito parcial para a obtenção de média semestral, no 
2
º Semestre
 do curso de 
Tecnólogo em 
DevOps
 – 100% Online.
Orientador
a
: 
Profa. Luana Gomes de Souza
)
 (
Fortaleza - CE
202
3
)
SUMÁRIO
1	INTRODUÇÃO	3
2	Tarefa 1	4
3	Tarefa 2	6
4	Tarefa 4	8
5	Tarefa 5	9
 (
0
)
	
INTRODUÇÃO
A orientação a objetos é um paradigma de programação que tem como objetivo principal modelar o mundo real em software, através da criação de entidades chamadas objetos, que possuem propriedades e comportamentos próprios. Essa abordagem permite uma maior organização e reutilização de código, além de possibilitar a construção de sistemas mais escaláveis e flexíveis.
A modelagem de dados é uma técnica utilizada para representar a estrutura de dados de um sistema, descrevendo as entidades e relacionamentos entre elas. Essa modelagem é fundamental para o desenvolvimento de sistemas complexos e para garantir a integridade dos dados. Além disso, a modelagem de dados também facilita a comunicação entre os membros da equipe de desenvolvimento, uma vez que todos passam a falar a mesma linguagem.
O banco de dados relacional é o tipo de banco de dados mais utilizado atualmente. Nele, os dados são organizados em tabelas, que possuem colunas e linhas. As tabelas são relacionadas entre si
Tarefa 1
A herança é um mecanismo que permite que uma classe (chamada de classe subclasse) herde atributos e métodos de outra classe (chamada de classe superclasse). Isso permite que a subclasse reutilize o código e a funcionalidade da superclasse, evitando a duplicação de código. Em Python, a herança é implementada por meio do uso da palavra-chave "class", seguida do nome da subclasse e do nome da superclasse entre parênteses conforme o exemplo:
class Animal:
 def __init__(self, nome, idade):
 self.nome = nome
 self.idade = idade
 
 def emitir_som(self):
 pass
class Cachorro(Animal):
 def emitir_som(self):
 return "Au au!"
No exemplo acima, a classe Cachorro herda da classe Animal, e a subclasse Cachorro tem acesso aos atributos e métodos da superclasse Animal. Observe que a subclasse Cachorro sobrescreve o método emitir_som da superclasse Animal com a implementação específica para o cachorro.
Já o polimorfismo é a capacidade de um objeto ser tratado de múltiplas formas. Isso significa que um objeto pode ser tratado como se fosse de um tipo diferente do seu tipo real. Em POO, isso é possível porque objetos de classes diferentes podem responder a uma mesma mensagem de maneira diferente. Em Python, o polimorfismo é implementado de forma natural, já que é uma linguagem de tipagem dinâmica. Segue outro exemplo:
class Animal:
 def __init__(self, nome):
 self.nome = nome
 
 def emitir_som(self):
 pass
class Cachorro(Animal):
 def emitir_som(self):
 return "Au au!"
 
class Gato(Animal):
 def emitir_som(self):
 return "Miau!"
animais = [Cachorro("Tobby"), Gato("Mimi")]
for animal in animais:
 print(animal.emitir_som())
Nesse exemplo, temos a classe base Animal e as subclasses Cachorro e Gato. Cada uma dessas classes implementa o método emitir_som de forma diferente. No final do exemplo, temos uma lista de animais que inclui um cachorro e um gato. No loop for, cada animal é tratado como um objeto do tipo Animal, mas, devido ao polimorfismo, o método emitir_som é chamado de forma diferente para cada objeto, produzindo a saída "Au au!" para o cachorro e "Miau!" para o gato.
Tarefa 2
	O SonarQube é uma ferramenta de análise de código-fonte e gerenciamento de qualidade de código, que ajuda a garantir que as melhores práticas de desenvolvimento sejam seguidas por todos os desenvolvedores da empresa. Ele oferece uma ampla variedade de recursos para analisar e monitorar o código-fonte de um projeto, detectar problemas de qualidade de código e fornece orientação para corrigi-los.
Entre as funcionalidades do SonarQube, podemos destacar:
Análise automática do código-fonte: a ferramenta é capaz de analisar automaticamente o código-fonte de um projeto e identificar problemas de qualidade de código, como duplicação de código, complexidade ciclomática, falta de comentários, vulnerabilidades de segurança, entre outros.
Visualização de métricas de qualidade: o SonarQube oferece uma ampla variedade de métricas de qualidade de código, como cobertura de testes, taxa de bugs, taxa de vulnerabilidades, entre outras. Essas métricas são apresentadas em um dashboard intuitivo, que permite aos desenvolvedores e gerentes de projeto visualizá-las facilmente.
Suporte a diversas linguagens de programação: o SonarQube é compatível com várias linguagens de programação, incluindo Java, C#, JavaScript, Python, entre outras. Isso significa que a ferramenta pode ser usada em projetos de diferentes tecnologias.
Integração com ferramentas de desenvolvimento: o SonarQube pode ser integrado a outras ferramentas de desenvolvimento, como Jenkins, Maven, Gradle, Visual Studio, Eclipse, entre outras. Isso permite que a ferramenta seja facilmente incorporada ao processo de desenvolvimento da empresa.
Geração de relatórios: o SonarQube permite a geração de relatórios detalhados sobre a qualidade do código-fonte, que podem ser usados para monitorar o progresso do projeto e fornecer feedback aos desenvolvedores.
Em resumo, o SonarQube é uma ferramenta poderosa para garantir a qualidade de código em projetos de software. Ele ajuda a identificar e corrigir problemas de qualidade de código, fornecendo feedback valioso aos desenvolvedores e ajudando a manter as melhores práticas de desenvolvimento. Tarefa 3
	O diagrama de classes da UML representa a estrutura do software, incluindo as classes e os relacionamentos entre elas. Entre os relacionamentos mais importantes que podem ser representados no diagrama de classes, estão:
Encapsulamento: é um princípio da programação orientada a objetos que se refere à capacidade de uma classe esconder a implementação de seus métodos e atributos, expondo apenas uma interface pública para o uso por outras classes. O encapsulamento é representado no diagrama de classes pela visibilidade dos membros da classe, que pode ser pública (+), privada (-) ou protegida (#).
Herança: é um relacionamento em que uma classe herda atributos e métodos de outra classe, chamada de classe base ou superclasse. A herança é representada no diagrama de classes por uma seta que aponta para a classe base, indicando a direção da herança. A classe derivada ou subclasse é conectada à classe base por uma linha pontilhada.
Agregação: é um relacionamento em que uma classe é composta por outras classes, mas as classes agregadas têm existência independente da classe que as contém. A agregação é representada no diagrama de classes por uma linha com um losango aberto no extremo que aponta para a classe agregada.
Composição: é um relacionamento semelhante à agregação, mas as classes compostas são dependentes da classe que as contém. Isso significa que, se a classe que contém as classes compostas for destruída, as classes compostas também serão destruídas. A composição é representada no diagrama de classes por uma linha com um losango preenchido no extremo que aponta para a classe composta.
Esses relacionamentos são fundamentais para a modelagem de sistemas orientados a objetos, pois permitem representar as interações entre as classes e os objetos do sistema. O diagrama de classes da UML é uma ferramenta poderosa para a compreensão da estrutura do software e para a comunicação entre os membros da equipe de desenvolvimento.
Tarefa 4
	No exemplo a seguir, o programa utilizaa classe Scanner para receber o percentual de aumento do salário informado pelo usuário. Em seguida, o programa utiliza o valor do salário mínimo federal de 2021 (R$ 1.100,00) para calcular o valor do aumento e o valor do salário reajustado. Por fim, o programa imprime os valores calculados na tela.
import java.util.Scanner;
public class AumentoSalarial {
 public static void main(String[] args) {
 Scanner scanner = new Scanner(System.in);
 System.out.print("Informe o percentual de aumento do salário: ");
 double percentualAumento = scanner.nextDouble();
 double salarioMinimoFederal = 1100.0; // valor do salário mínimo federal em 2021
 double valorAumento = salarioMinimoFederal * (percentualAumento / 100);
 double salarioReajustado = salarioMinimoFederal + valorAumento;
 System.out.println("Valor do salário: R$" + salarioMinimoFederal);
 System.out.println("Valor do aumento: R$" + valorAumento);
 System.out.println("Valor do salário reajustado: R$" + salarioReajustado);
 scanner.close();
 }
}
Tarefa 5
Em bancos de dados relacionais, as junções (ou joins, em inglês) são utilizadas para combinar dados de duas ou mais tabelas. Existem vários tipos de junções, mas os três mais comuns são INNER JOIN, LEFT JOIN e RIGHT JOIN. As principais diferenças entre eles são:
INNER JOIN: retorna apenas os registros que possuem correspondência nas duas tabelas envolvidas na junção. Ou seja, somente os registros que têm valores correspondentes nas colunas que estão sendo comparadas serão exibidos no resultado final. Por exemplo:
SELECT a.nome, b.cidade
FROM tabela1 a
INNER JOIN tabela2 b
ON a.id = b.id
No exemplo acima, somente serão retornados os registros cujos valores na coluna "id" de "tabela1" correspondem aos valores na coluna "id" de "tabela2".
LEFT JOIN: retorna todos os registros da tabela à esquerda (primeira tabela especificada no comando SQL) e apenas os registros correspondentes da tabela à direita. Se não houver correspondência, as colunas da tabela à direita terão valores nulos. Por exemplo:
SELECT a.nome, b.cidade
FROM tabela1 a
LEFT JOIN tabela2 b
ON a.id = b.id
No exemplo acima, serão retornados todos os registros de "tabela1", mesmo que não haja correspondência na coluna "id" de "tabela2". Se não houver correspondência, a coluna "cidade" será nula.
RIGHT JOIN: semelhante ao LEFT JOIN, mas retorna todos os registros da tabela à direita e apenas os registros correspondentes da tabela à esquerda. Se não houver correspondência, as colunas da tabela à esquerda terão valores nulos. Por exemplo:
SELECT a.nome, b.cidade
FROM tabela1 a
RIGHT JOIN tabela2 b
ON a.id = b.id
Neste exemplo, serão retornados todos os registros de "tabela2", mesmo que não haja correspondência na coluna "id" de "tabela1". Se não houver correspondência, a coluna "nome" será nula.
Em resumo, INNER JOIN retorna apenas as linhas que correspondem em ambas as tabelas, LEFT JOIN retorna todas as linhas da tabela à esquerda e apenas as correspondentes da tabela à direita, enquanto RIGHT JOIN retorna todas as linhas da tabela à direita e apenas as correspondentes da tabela à esquerda. A escolha do tipo de join adequado depende das necessidades do projeto.
REFERÊNCIAS
HEUSER, C.A. Projeto de banco de dados. 5.ed. Porto Alegre: Sagra-Luzzatto,
BACKES, André Ricardo. LINGUAGEM C: DESCOMPLICADA. Disponível em: https://www.cin.ufpe.br/~rrbs/AC_/LinguagemC/apostilaC.pdf. Acesso em: 12 mar 2023.
MACORATTI, José Carlos. UML - Diagrama de Classes e objetos. Disponível em: https://www.macoratti.net/net_uml1.htm. Acesso em: 12 mar 2023.
 (
20
)
image1.jpeg

Mais conteúdos dessa disciplina