Please enable JavaScript.
Coggle requires JavaScript to display documents.
DESIGN PATTERNS, ENGENHARIA DE SOFTWARE, INFRA, SISTEMA OPERACIONAL, ISO…
DESIGN PATTERNS
Criacional
Factory
Fornece uma interface para criar objetos em uma superclasse. Permite que as subclasses alterem o tipo de objetos que serão criados.
Também chamado de Factory Method
Builder
Permite construir objetos passo a passo
Pode ser criado diferentes tipos usando o mesmo código de criação
Prototipe
Criar objetos existentes sem fazer seu código ficar dependente
Delagado essa tarefa a própria classe
Abstract
Cria familias de Classes
Cria Objetos de acordo com a interface factory
Singleton
Garante uma unica instancia da classe
Acesso global
Estrutural
Adapter
Permite objetos com interfaces diferentes colaborarem entre si
Usado para conversões. Ex: JSON -> XML
Esconde a complexidade das conversões
Bridge
Divide uma grande classe em classes menores intimamente ligada
Duas hierarquias: Abstração e Implementação
Composite
Tratar Objetos em estrutura de árvore
Trata a estrutura como objetos individuais
Não se preocupa com as classes concretas
Decorator
Usado quando é necessário ter comportamentos diferentes para o mesmo objeto
Em vez de extends se usa a agregação
Facade
Fornece uma fachada simples para uma biblioteca
Flyweight
Juntar dados iguais no mesmo objeto
Diminuir o consumo de memória RAM
Proxy
Intermedia o objeto principal
Pode executar algo antes ou depois de chamar o objeto
Comportamental
Chain of Responsibility
Command
Iterator
Mediator
Memento
Observer
State
Strategy
Template Method
Visitor
Definições
Abstração = Interface
Implementação = Plataforma
GOF = Gang of Four
Caracteristicas
Nome
Problema
Solução
Consequência
ENGENHARIA DE SOFTWARE
SOLID
Definição
Torna mais fácil a manutenção
Facilitam o desenvolvimento de software
São 5 Princípios da
POO
S.O.L.I.D
Ajudam
Escrever códigos mais limpos
Separar responsabilidades
Diminuir acoplamentos
Refatoração
Reaproveitamento do código
Aplicáveis a qualquer linguagem
1 - Single Responsiblity Principle
(Princípio da responsabilidade única)
Uma classe deve ter um e somente um motivo para mudar
A classe deve ser especialista somente em
um assunto
Não criar
GOD-CLASS
(Classe que faz tudo)
Chamado Também de
SRP
Problemas
Falta de coesão
Alto Acoplamento
Dificuldades de automatizar testes
Dificuldades de reaproveitar código
Pode ser aplicado a funções, methodos, tudo o que tiver responsabilidade
Princípio mais
importante
2 - Open-Closed Principle
(Princípio Aberto-Fechado)
Aberto
para extensão,
Fechados
para modificação
Uncle Bob
- Separe o comportamento extensível por trás de uma interface e inverta as dependencias
Se houver uma ação a ser feita crie uma
interface
que padronize ela
Evita um monte de if no sistema para tratar do mesmo problema
Base para o padrão
Strategy
Problemas
Adição de novos Bugs
Não padronização
Dificuldade de implementar coisas novas
Chamado de
OCP
3 - Liskov Substitution Principle
(Princípio da substituição de Liskov)
Chamado de
LSP
Uma classe derivada deve ser substituível pela classe base
Introduzido por
Barbara Liskov
em 1987
Um subtipo pode ser substituido por outro subtipo do mesmo tipo base
Violações
Sobrescrever/implementar um método que
não faz nada
Lançar uma
exceção inesperada
Retornar valores de
tipos diferentes
da classe base
Permite usar o
polimorfismo com mais confiança
Usa outros conceitos
OCP
ISP
Injeção de Dependência
4 - Interface Segregation Principle
(Princípio da Segregação da Interface)
Uma classe não deve ser
forçada
a implementar
interfaces e methodos
que não irá usar
É melhor criar interfaces mais
específicas
do que
uma única genéricas
Princípio da
segregação das interfaces
5 - Dependency Inversion Principle
(Princípio da inversão da dependência)
Dependa de
Abstrações e não de Implementações
Uncle Bob
Módulos de
alto nível NÃO devem depender de módulos de baixo nível
. Ambos devem depender da Abstração
Abstrações não devem depender de detalhes. Detalhes devem depender de abstrações.
Módulo de
alto nível é um módulo que depende de outros módulos
Importante :warning:
:
Inversão de Dependência
não é igual a
Injeção de Dependência
Problemas
Caso seja preciso haver uma mudança de biblioteca, vai precisar mudar o software inteiro
METODOS AGEIS
SCRUM
Eventos
Sprint
Varia de 1 a 6 Semanas
Sprint Tasks são feitas
Desmenbramento das atividades do Backlog
Deve ter tamanho fixo para comparação
Sprint Planning
Planejamento do que será feito na Sprint
Divisão das atividades em menores
Retrospective
Momento de avaliar o que foi bom e ruim no projeto
Daily Scrum
:warning: Reunião diária
Acompanhamento das tarefas
Acompanhamento do
planejamento
feito
:warning: 15 min
Todos em pé
:warning:O que foi feito, o que será feito hoje e os impedimentos
Mantem a
comunicação
entre a equipe
Todos ficam
cientes do andamento
da Sprint
Ajuda no
Engajamento
da equipe
O time de
auto-organiza
para alcançar a meta
Elimina a necessidade de outras reuniões
PO e Scrum Master também participam
Sprint Review
Apresentação do que
foi feito aos Interessados
Conversa
entre equipe e partes interessadas
O PO incorpora
lições aprendidas
ao Backlog
Duração máxima de 4 horas
Grooming
Refinamento
do Backlog
Boa Pratica
: :warning: Ter pelo menos 2 sprints prontas para execução
Não
é para histórias da
Sprint Atual
Artefatos
Product Backlog
Visão do PO para o produto
Lista
priorizada
de tudo o que pode ser feito
Items do Backlog
Sprint Backlog
O que a equipe acredita que pode concluir na Sprint
Definido durante a Planning
Product Increment
:warning: Junção das
entregas
das Sprints
Definição
Entrega de
Valor
Manifesto Ágil
Responder a mudanças
mais que seguir um plano
Times precisam ser
multifuncionais
Times
flexíveis
Iterativo e Incremental
Feedback
tem grande importância
:warning:
Framework
:
Técnicas ferramentas e conceitos pré-definidos
:warning:
3 Artefatos, 5 - Eventos, 3 - Roles
Papéis
(Roles)
Product Owner
Maximiza o valor do produto
Chamado também de
PO
Prioriza
os itens do Backlog
Deixa claro as necessidades do produto
Estabelece metas
para a equipe
Não deve ser o Scrum Master
Gerencia o
Backlog
do produto
Scrum Master
Evangelizador
do Scrum
Responsável por
disseminar
a metodologia do Scrum
Promover e suportar a metodologia na organização
Blinda os times de distrações e impedimentos
Verifica a
capacidade máxima
de um time
Team
Time de
desenvolvimento
Desenvolvem e entregam o produto a cada interação
É necessário que o time tenha todas as habilidades para entregar o software
de 5 á 9 pessoas
Auto-organizada e auto-conduzida
Auxiliares
Gerente de projetos
Vão configurar o ambiente de desenvolvimento do produto
Stackholders
Envolvidos nas reviews
https://www.ieepeducacao.com.br/o-que-e-scrum/
Pilares Empíricos
Transparencia
Inspeção
Adaptação
Release BurnDown Chart
Story Points
Varios programadores dão notas
Planning pocker
Baseado em fibonaci
1, 2, 3, 5, 8, 13,...
:warning: é medida de esforço e não de tempo
DoD
Muito usado no Scrum
Definido na 1º sprint do projeto
Indica quantos items podem ser selecionados em uma Sprint
ASD
Desenvolvimento de Software Adaptativo
Fases
1 - Especulação
2 - Colaboração
3 - Aprendizagem
FDD
Desenvolvimento Dirigido a Funcionalidades
Fases
1- Des. Modelo Geral
2- Fazer Lista de Funcionalidades
3- Planejar por Funcionalidade
4- Projetar por Funcionalidade
5- Desenvolver por Funcionalidade
Crystal
Familia de processos ágeis
Selecionar a que melhor se adequa
DSDM
Projetos Prazo Apertado
:warning: Princípio de Pareto
80/20
Cada iteração tenta resolver 80%
Usado com XP
XP
Ciclos curtos
Não muda escopo no ciclo
Ciclos que são flexivies
Fases
1º Planejamento
2º Projeto
3º Codificação
4º Teste
Teste-First
Teste a partir de cenários
Automatizar os Testes
Planning game
Valores
Simplicidade
Coragem
Respeito
Comunicação
Feedback
TDD
Técnica
Escreve o teste depois codifica
Refatora depois do teste passar
Surgiu do XP
Beneficios
Melhor entendimento do problema
Cobertura maior de testes
Defeitos descobertos primeiro
Depuração simplificada
Se der erro sabe onde foi
Documentação do sistema
Custos menores
:warning:
RED, GREEN, REFACTOR
ATDD
:warning: TDD com testes de aceitação
Visão do usuário
BDD
Behavior Driven Development
Orientado ao Comportamento
Desenvolve primeiro as telas para identificar os testes que precisam ser implmentados
Veio do TDD
Desenvolve os testes com um propósito
Tanto os desenvolvedores quando clientes devem ter a mesma linguagem (Linguagem Obliqua)
Entende o comportamento dos usuários para depois implementar os testes
KANBAN
Japones: Cartão/Sinalização
Relacionado ao Lean
Relacionado a melhoria continua
Surgiu na Toiota
"Just in Time"
Produzir algo somente quando necessário
Puxa o trabalho e não produz sem necessidade
"Work in Progress" (Trabalho em Andamento)
Limita a 1 tarefa por pessoa
Quanto mais tarefas em execução maior o lead time
"Lead Time"
Tempo de execução
Tempo do início até o final do quadro
"In progress"
Cicle time
Priorização em Métodos Ágeis
Pareto
80% do custo do software está em 20% das funcionalidades
Priorizar o mais importante, que traz maior valor
MVP
Menor produto viável
Produzir algo para teste
Buy a Feature Game
Dar cartões simbolizando dinheiro
O usuário prioriza e dá o dinheiro no que mais importa
Moscow
Must
tudo o que precisa ter
Sem isso não dá
Should
São importantes mas podem ficar sem
Could
São desejáveis
Wont
Não tem muita importancia
Scorecard
Cartão com um peso
APF - Ponto de Função
Componentes
ALI
arquivo lógico interno
Dados mantidos dentro da aplicação
AIE
arquivo de interface externa
Dados mantidos por outra aplicação e referenciado
EE
Entrada Externa
CE
Consulta Externa
Busca de um cadastro
Relatório Simples
SE
Saída Externa
é o mesmo que a CE mas com algum cálculo ou lógica a mais
Faz
Mede o tamanho do que o software faz
:warning:
Independente da tecnologia
Independente de como foi feito
:warning: Contagem baseada em
Requisitos Funcionais
Na visão do usuário
Mede
Desenvolvimento do Zero
Melhoria
Software Pronto
Mede o tamanho funcional do Software
Não Mede
Esforço
Produtividade
Custo
Porém é possível se chegar nesses valores através da contagem
IFPUG
Órgão para regularizar
Recomendação do TCU
Quando for contratado software deve ser usado o PF
Tipos de Contagem
Projeto de Desenvolvimento
Software novo
Projeto de Melhoria
Melhoria a ser feita
Aplicação
Software já feito
Fronteira da Aplicação
Contagem
ALI 7 / 10 /15
AIE 5 / 7 / 10
EE 3 / 4 / 6
SE 4 / 5 / 7
CE 3 / 4 / 6
Fator de Ajuste
14 caracteristicas
Min 0.65
Max 1.35
Depende do Cenário
Tipos
Estimativa
NESMA
Dados: Baixa
Transação: Média
Inicio do Projeto
Indicativa
NESMA
(35 x ALI) + (15 x AIE)
3EE 2SE 1CE
Superficial
Somente no inicio do projeto
Detalhada
IFPUG
ANALISE/PROJETO
ANALISE
Modela o problema
Entender o Domínio
Investigação
Modela a solução
Como pode ser feito
Diz respeito aos programadores
Quais classes resolvem o problema
BPM
CBOK
Documento para ensinar sobre Gerenciamento de negócio
Chamado BPM CBOK
Ponto de referencia para os profissionais
Tem as práticas
9 Áreas de conhecimento
Organizacional
Gerencimento Corporativo de Processos
Organização do Gerenciamento de Processos
Processo
Gerencimento de Processos de Negócio
Modelagem de Processos
Análise de Processos
Desenho de Processos
Gerenciamento de Desempenho de Processos
Transformação de Processos
Tecnologia de BPM
ABPMP
Organizacao responsável por BPM
Não comercial
Disseminar conhecimento
Promover a pratica de modelagem de negócios
Tem uma sede no Brasil
FLUXOS DE PROCESSOS
Linear
Cascata
Iterativo
Entrega uma parte do software
Evolucionário
Portotipação
Ageis
Cada volta entrega um software mais completo
Espiral
Paralelo
RUP
Fases
1- Iniciação
2- Elaboração
3- Construção
4- Transição
Disciplinas
Modelagem
Requisitos
Analise e Design
Implementação
Teste
Implantação
Ger. Mudanças
Ger. Projeto
Ambiente
Modelo em V
RAD
ESPIRAL
Processo Evolucionário
Iterativo
Mistura Prototipação e Cascata
:warning: Focado em reconhecer os riscos
Focado em todo o ciclo de vida do software
Preve iterações após a entrega
Recomendado para softwares grandes
DoD
Definição de Pronto
Acordo formal do time para definir quando a tarefa está pronta
Isso serve para o Stackholder saber quando está pronto
Muito usado no Scrum
Verificado na 1º Sprint
TESTES
Ferramentas de Testes
Hudson
Jenkins
TravisCI
CruiseControl
Selenium
TesteComplete
Tipos
Unitario
Integração
Sistema
Aceitação
Gerenciamento da Qualidade do Software
Definição
Preocupa em entregar um software útil ao usuário
Dentro do prazo
Dentro dos Custos
Execute de modo confiável
ANALISE DE REQUISITOS
Principal resultado é o Doc. de Especificação dos Requisitos
Documento de Requisitos de Software
Especificação de Requisitos de Software
Software Requirements Especifications
Requisitos
Tipos
Funcionais
Serviços que devem ser fornecidos
O que o sistema deve fazer
O que o sistema não deve fazer
Não Funcionais
Critério de Qualidade
Relacionado ao uso do sistema
Tipos
Produto
Eficiencia
Portabilidade
Confiabilidade
Usabilidade
Externo
Integração com algum serviço
Alguma lei
Organizacionais
Padrões de Desenvolvimento
Padrões de Entrega
Linguagens
Niveis de Requisitos
Sistema
Voltado para os programadores
Baixo Nivel
Define exatamente o que deve ser codificado
Quem usa
Analistas de Sistemas
Programadores
Usuário
Linguagem Natural
São requisitos em alto nível
Declaração Abstrata
Alto Nivel
Quem usa
Usuários
Gerentes
Requisitos do Projeto
Negocio
Termos do Negócio
Produto
Processo
Definição do Escopo
Descobrir, Analisar e Documentar
Funções e Restrições de um Sistema
Processo
1º - Estudo de Viabilidade
Relatório de Viabilidade
2º - Elicitar (Descobrir) e Análise
Modelos de Sistema
3º - Especificação
Requisitos de Usuário e de Sistema
4º - Validação
Documentação de Requisitos
é um
processo iterativo
, pode ir e voltar nas fases
INFRA
JWT
O que é
RCT 7519
Padrão de Mercado
Base 64 de objeto JSON
Faz autenticação entre duas partes
JSON Web Token
Funcionamento
1 - Cliente envia dados ao servidor
2 - Servidor valida os dados e cria o token JWT e envia ao cliente
3 - Em cada requisição o cliente envia o token e valida a ação
Por convenção se usa a palavra Baerer
Composto por
header
alg
Algoritmo usado
typ
Informa que é um JWT
payload
Dados da própria autenticação
signature
Token unico gerado com base nos dados
BACKUP
FULL
Copia todos os dados
Caro e mais espaço
Incremental
Dados modificados do ultimo backup
Pela data e hora
Feito mais de 1 vez por dia
Independe de como foi o ultimo backup
Diferencial
Copia todos os arquivos a partir do ultimo backup full
Diferente do incremental
Espelhado
Espelha os arquivos em outro servidor
Cautela na exclusão
Local
Feito em um hd externo
Externo
Remoto
Nuvem
FTP
Cópia
Copia os arquivos e não marca eles
Feito entre outros tipos de backup
VIRUS
ROOTKIT
Semelhante ao BOTS
Libera acesso externo
BACKDOOR
Cavalo de TROIA
TROJAN
VIRUS
Rouba dados
Diminue o desempenho
WORM
Se Auto Replicam
Não precisa estar em um arquivo para causar dano
Mais Antigo que Virus
ADWARE
Usado para mostrar Propagandas indesejadas
BOTS
Arquivo de execução que libera acesso malicioso
RANSOMWARE
Criptografa os dados e pede resgate
Usa Engenharia Social (Email, etc..)
SPYWARE
Espiao
Envia informações pra alguém
Kubernets
Definição
Portátil
Código Aberto
Gerencia carga de trabalho e containers
Facilita a configuração
Extensível
Feito pelo Google
Gerencia os containers Docker
Monitora
Dimensionamento
Failover
Padrão de importação
Service discovery
DNS
IP
Load Balancing
Storage Osquestration
Storage Local
Storage Nuvem
Pública/Privada
Rollouts / Roubacks
Automatizado
Empacotamento
Automatico
CPU / Memória / Etc
Self Healing
Auto Cura
Reinicia um container em caso de queda
Guardar segredos
Senhas
Hashs
Por Container
:warning: Não é
PAAS
Monolítico
Roda qualquer tipo de aplicativo
Não faz build do código fonte
DEVOPS
Origem
Desenvolvimento
Operações
Definição
é uma
cultura
Trabalho junto desenvolvimento e operação
Entregar sempre
Dinâmica nas entregas e recursos
Não é
Tecnologia
Framework
Padrão
Processo
Devops é a união de processo, cultura e mentalidade
usado para reduzir o ciclo de vida do software
Foco
Entrega rápida
ágil
Melhorar a integração das pessoas
Automatizar tudo o que der
Testes
Implantação
Reversão
Feedback
VERSIONAMENTO
GIT
Caracteristicas
Rápido
Distribuido
Com o aumento de código não perde performance
Compatibilidade
SVN
SSH
HTTP
FTP
peer-to-peer
Desenvolvido em 2005
Linus Torvald
SVN
Apache Subversion
Utiliza o Banco de Dados Berkeley BD
Gratuito
Corrigir o CVS
Operações atomicas
Lento
Mercurial
Distribuido
CVS
Centralizado
Anos 80
Gratuito
DoD
Definição de pronto
Acordo do time para saber quando está entregue
Muito Usado no Scrum
Integração e Entrega Contínua
Entregar o Software em espaços curtos de tempo
Software confiável, que passou nos testes
Uma nova versão pode ser lançada a qualquer momento
SISTEMA OPERACIONAL
CLIENTE SERVIDOR
:warning:
Arquitetura distribuída
Cliente
Consome o serviço via internet
Não compartilha recursos com o servidor
Inicia a comunicação
Servidor
Espera ser chamado por algum cliente
Fornece respostas as requisições
Centraliza a capacidade de resposta
Fornece o serviço via internet
:warning:
Problemas
Se o servidor falhar não tem resposta
Complexidade para alocar mais recursos
Custo elevado
:warning:
Vantagens
Recursos Centralizados
Maior segurança
Rede Evolutiva
Obs:
Tanto o cliente quanto o servidor podem estar na mesma máquina
Processadores Paralelos
SISD
1 Processdor
1 Instrução
Single Instruction Single Data
SIMD
Single Intruction Multiple Data
Processadores Vetoriais/Matrizes
MISD
Multiple Instruction Single Data
Não é implementada comercialmente
MIMD
Multiple Instruction Multiple Data
SMP
Multi Processador Simetrico
Momória Compartilhada por vários processadores
O tempo de acesso a memória é o mesmo
Dois ou mais Processadores semelhantes
Todos os processadores fazem a mesma coisa
MPP
Cluster
Vários Computadores Conectados
RISC/CISC
RISC
Conjunto Reduzido
Instruções Simples
Instruções Fixas
Executadas no Hardware
Poucos Ciclos de Máquina
Necessita de mais registradores
Não Acessa a memória principal
LOAD / STORE
Vantagens
Velocidade
Facilita o pipeline
CISC
Muitas Instruções
Instruções Complexas
Tamanhos da instrução Variado
Interpretada por MicroProgramas
Menos Registradores
Acessa a memória principal
Várias formas de endereçamento de memória
Utiliza vários ciclos de máquina
Menor uso do pipeline
INTERRUPÇÃO PROCESSADOR
Programada
Interrupção
DMA
MEMORIA
Tipos
RAM
Volátil
ROM
Não volátil
Gravada de fábrica
EPROM
Não volátil
Pode ser regravável
Cache
Volátil
Alta velocidade
Pouco espaço
Baixo tempo de acesso
Cache Hit
Encontrou na cache
Cache Miss
Não encontrou na cache
Princípio da Localidade
Tendencia de buscar dados próximos
Primeiro busca na cache
Depois na memória Ram
Primária
Memória RAM
Volátil
Secundária
HD
SSD
Flash
Não volátil
TIPOS SO
Tipos
MonoProgramavel / MonoTarefa
Unico programa por vez
Todos os recursos somente para um programa
Simples Implementação
Sempre monousuário
MultiProgramavel / MultiTarefa
Recursos Compartilhados
Diversos Usuarios e Aplicações
Menor Custo
Maior Eficiencia
Tipos
Batch
Processamento em lote
Não precisa do usuário
Tempo Compartilhado
Time Sharing / Online
CPU atende 1 por vez
Offline
Processamento Posterior
Real Time
Online
Processado conforme acontece
Ex: Cartão de Crédito
Multiplos Processadores
Varios programas ao mesmo tempo
Divisão do processamento em partes
Processadores em 1 ou muitas máquinas
Ex: Cluster
Vantagens
Escalabilidade
Disponibilidade
Balanceamento de Carga
LINUX
Diretórios
/home
Usuarios do sistema
/bin
Binários dos comandos básicos
ls
cat
cd
/usr
Binários/Executáveis dos principais programas
/mnt
Montagem dos periféricos de dados
/dev
Arquivos de acesso aos recursos como som e periféricos (Devices)
/etc
arquivos de configuração
/boot
Kernel e arquivos de inicialização
/media
rede
pendrive
etc..
/tmp
arquivos temporários
/var
arquivos de log
1991
Linus torvald
Comandos Básicos
ls
pwd
cd
change directoty
cat
rm
cp
mkdir
chmod
rmdir
mv
mover
renomear
SISTEMAS DE ARQUIVOS
FAT
Problemas
Segurança
Não tem suporte a dono do arquivo
Suporte a desfragmentação
é simulado por outros sistemas de arquivos
Tipos
FAT-12
Diskets
16MB
Nomes com 8 caracteres, um ponto e 3 caracteres de extensão
Não diferencia maiuscula de minuscula
FAT-16
MS-DOS e WIN 95
Max 32MB
Usando cluster pode chegar a 2GB
Desvatagem é jogar fora os espaços
Cada cluster pode chegar a 32KB
FAT-64/ExFAT
Usado para memórias flash
Padrão para memórias > 32GB
VFAT
Sistema que permite nomes maiores de 8 caracteres
NTFS
Suporte a Jornaling
Criado com o Windows NT
Usa Arvore B
:warning: Guarda um link no
Master File Table
Max 256 TB
Compactação, criptografia e indexação
Mais lento que o FAT-32
EXT3/EXT4
Suporte a Jornaling
Linux
Jornaling
Rastreamento diário das mudanças
Capacidade de indicar uma possível mudança
Rapidez na hora de voltar a ativa
ISO 27005
2011
Gestão de Riscos
Escopo
Diretrizes
p/ Processo de Gestão de Riscos
:warning:
Riscos somente da Segurança da Informação
para Qualquer organização
Definições
Consequencia
Resultado de um evento que afeta o resultado
Um evento pode gerar várias consequencias
Evento
Pode ter várias causas
Mudanças nas coisas
:warning: Evento pode ser não acontecer nada
Controle
Medida que está modificando o risco
Processos, políticas, diretrizes, etc..
Não garante acabar o problema
Residual
O que sobra após o tratamento de risco
Ambiente Externo
Clientes
Nivel de Risco
chance do risco acontecer
Risco Residual
Que persistem após o tratamento do risco
Analise de Risco
Processo de compreender os Riscos
Determina o Nivel do Risco
Estimativa dos Riscos
Critério de Risco
Contexto Interno
Contexto Externo
Avaliação de Risco
Avaliar se o Risco é tolerável
Leva em consideração os critérios
Identificação dos Riscos
Dados
Histórico
Conhecimento
Gestão de Riscos
Atividades coordenadas
Não somente da TI
Tratamento
Modificar o Risco
Descontinuar o que causa
Evitar o Risco
Remover o Risco
Pode ser aplicado
Toda a organização
Um setor
Local fisico
Sistema expecífico
Que vai ser montado
Existente
Um plano expecífico
Processo
1º Definição do Contexto
Processo Planejar
2º Identificação do Risco
3º Analise do Risco
4º Avaliação do Risco
5º Tratamento do Risco
6º Monitoramento e analise critica
Feito em todo o processo
:warning:
Processo Iterativo
SI - SISTEMA DE INFORMAÇÃO
SPT
SIG/MIS
DSS/SAD
SAE
ERP
REDES
NUVEM
PAAS
:warning:
Plataforma
Engloba hardware, Software, e Infraestrutura
Vantagens
Prazo de lançamento no mercado mais rápido
Grande variedade de recursos financeiramente acessíveis
Mais liberdade para experimentar, com menos risco
Escalabilidade fácil e rentável
Maior flexibilidade para as equipes de desenvolvimento
Custos mais baixos em geral
SAAS
:warning:
Software
Software do Usuário final
Necessita apenas de conexão com a internet
Não precisa de atualizações
Não se preocupa com o hardware
IAAS
Hardwares como serviço
Menor custo de manutenção
Terceirização da infra
Ex:
Virtualização
Armazenamento
Processamento
Rede
Pagamento pelo uso
:warning:
Infraestrutura
Serviços em
CLOUD
TIPOS REDES
LANS
:warning:
Rede Local
No mesmo espaço físico
Empresa
Escola
Hospital
Supermercado
Casa
MANS
:warning:
Rede Metropolitana
Interliga várias redes locais
Pode ligar as redes locais
Dezenas de Km
WANS
:warning:
Rede de Longa Distancia
Liga um pais/continente
WLAN
:warning:
LAN sem Fio
WMAN
:warning:
Rede Metropolitana sem Fio
WWANS
:warning:
Rede de Longa distancia sem fio
Mais sujeita a ruídos
PANS
:warning:
Rede Pessoal
SAN
:warning:
Storage Area Network
Interliga diversos servidores
Uso de dados
:warning:
OSI
1 - Camada Física
Acessa diretamente o meio físico
Fibra, cobre ou wifi
Modem, 802.11, REDIS
Modem, , 802.11 Wi-Fi RDIS, RS-232, EIA-422, RS-449, Bluetooth, USB, 10BASE-T, 100BASE-TX, ISDN, SONET, DSL
2- Camada de enlace
Protocolo em máquinas diretamente ligadas
Detecta e corrige falhas da camada física
Controla o fluxo de dados
:warning:
Subcamadas
MAC
LLC
Multiplexação
Controle de fluxo
Ethernet, IEEE 802.1Q, HDLC, Token ring, FDDI, PPP, Switch, Frame relay, ATM, ARP, RARP
4 - Camada de transporte
Divide os dados em pacotes menores
Junta os pacotes para enviar a camada de cima
Ordena os pacotes
Corrige os erros
:warning:
Controle de fluxo de dados
Envia a confirmação de recebimento
5 - Camada de sessão
6 - Camada de apresentação
7 - Camada de aplicação
3 - Camada de rede
A camada de rede realiza roteamento de funções
realizar a fragmentação e remontagem
erros de entrega de relatório
Roteadores operam nesta camada
endereçamento lógico
endereçamento não é hierárquico
IP (IPv4, IPv6), IPsec, ICMP, NAT ...
DAS/NAS/SAN
DAS
Tudo Integrado em um local
Interface
SATA / SAS
Blocos de Dados
Não Usa Rede
os dados não são compartilhados
NAS
Network
Uma rede que disponibiliza
Arquivos
SAN
Network
Conectado por uma rede alta velocidade
Rede dedicada para dados
Bloco de Dados
BANCO DE DADOS
RAID
RAID 1
Dois discos
Espelhados
Tamanho de 1
Espelhamento
Redundância
RAID 0
Split dos dados
Tamanho é soma dos discos
Se os discos tiverem tamanhos diferentes conta o tamanho do menor
Divide os dados nos discos
RAID 10
Minimo 4 Discos
Mistura a eficiencia Raid 0
Redundância Raid 1
RAID 0+1
RAID 01
MODELO ER
Entidades
Forte
Borda Simples
Fraca
Borda Dupla
Associativa
Borda Simples
Losango ao Meio
Relacionamentos
Relacionamento
Relacionamento Fraco
Borda Dupla
Liga a entidade e a entidade fraca
Atributos
Atributo
Bordas Simples
Elipse
Atributo Multivalorado
Elipse
Borda Dupla
Atributo Derivado
Elipse
Pontilhado
Chaves
Primárias
Estrangeiras
Relacionamentos
NORMALIZAÇÃO
1FN
Não pode ter valores multivalorados
Valores atômicos
2FN
Não pode ter dependencia funcional parcial
Dep. Funcional Parcial é quando o campo não depende somente da chave primária
3FN
Não pode ter dependencia funcional transitiva
Ex: Idade depende de Data de nascimento
Ex: Nome do vendedor depende do código do vendedor
FNBC
Não pode ter chaves primárias duplicadas
Não é a 4FN
IDF1X
Definição
Linguagem de modelagem
Notação para modelagem
Usado para modelos gráficos
Modelagem Lógica
Não é conceitual
Entidade
Independente
Cantos quadrados
Dependente
Cantos arredondados
Relacionamentos
Qualidade
Code Review
Tecnica de revisão de código
Feito por 1 ou mais pessoas
Após a codificação
Pode rejeitar o código ou pedir melhorias
Garantia de Qualidade
é a definição de processos e padrões que:
Deve levar a produtos de alta qualidade
a intradução de processos de qualidade na fabricação do software
Controle de Qualidade
Aplicação dos Processos para chegar na qualidade adequada
BUSINESS INTELLIGENCE
Sistemas de Informação
Bases
Data Warehouse
Dados processados
Finalidade específica
Estrutura estática
Menos Flexíveis
Armazém de dados
Local ùnico
Características
Orientado por Assunto
Integrado
XLS
TXT
CSV
Dados padronizados
Não volátil
Carregados em massa
Varia no tempo
Apenas recebe informações
Várias Granularidade
Agrupamento de Data Marts
Processos
Top-Down
Cria todo o DW
Maior tempo
Cria os DM depois
Bottom-Up
Uma área por vez
Crescimento Gradual
Data Lake
Dados Brutos
Dados não estruturados
Mais barato que o data warhouse
Sem objetivo específico
Estrutura variável
Menor Custo
Data Mart
Como o Data Warehouse
Setor específico
Subconjunto de um DW
Data Storage
OLTP
Sistemas Transacionais
Online Transaction Processing
Sistemas das empresas Ex: JonasJob
Data Hub
Guarda os dados principais
Dados criticos
Conectar aplicativos
Compartilhar dados de forma eficiente
Permite muitos niveis de granularidade
Ferramentas
OLAP
ONLine Analitical Processing
Data Mining
Data Mining
Processo
Encontro de padrões
Informações ùteis
Usa conhecimento indutivo
DESENVOLVIMENTO
PARADIGMA
ORIENTADO A OBJETOS
FUNCIONAL
Estruturada
Mecanismo
Iteração
Execução Repetiviva de código
Ex: for, while
Seleção
Selecionar parte do código a ser executado
Ex: if
Sequencia
Passos para resolver um problema
Variaveis
Espaço na memoria para guardar valores
Mudam ao longo do tempo
Identificadores
Nomes das variaveis, funções, programas, etc..
Não pode ter o nome de um comando
Existem regras de nomenclaturas
IMPERATIVO
DECLARATIVO
LÓGICO
ORIENTADO A EVENTOS
Estrutura de Dados
HEAP
Baseado em arvores binárias
Usado para encontrar trabalhos com maior prioridade
Heap Minimo
Nós filhos possuem valor menor que o nó pai
Nó raiz tem o menor numero
Heap Máximo
Nós filhos possuem valor maior que o nó pai
Nó raiz tem o maior numero