Escolar Documentos
Profissional Documentos
Cultura Documentos
de software orientada a atividades e papéis, que descreve melhores práticas para projetos novos ou em
andamento
● Visão Conceitual
● Visão de Papéis
● Visão de Avaliação de Atividades
● Visão de Implementação
● Visão de Vulnerabilidades
SAST (Static Application Security Testing): aplicação estática para teste de segurança. seu propósito é avaliar
o código fonte e as diversas versões compiladas para buscar identificar brechas de segurança
Métricas:
● Internas: Não dependem da execução de software
● Externas: dependem da execução de software
Lean inception: remove tudo que não se relaciona ao produto da inception (reunião da equipe do projeto por
algumas semanas, passando por muitas atividades antes de iniciar o trabalho de entrega):
● Duração menor da inception
● Não trata de arquitetura ou projeto na inception
● Compreensão do MVP
Kanban: método de gestão de mudanças, foco na visualização do trabalho em progresso (work in progress -
WIP).
● Fluxo de entregas contínuo. Não há iterações como no Scrum.
● Cartaz ou placa visual com post-its. Ex.: Trello.
● Pode ser usado com outros processos, mesmo tradicionais.
● Limitar o WIP: princípio e prática do Kanban. Ajuda no foco ao reduzir a quantidade de tarefas em
certa etapa.
Extreme Programming (XP): Leva boas práticas ao extremo: teste, iteração e integração. Equipes pequenas,
coesas, multidisciplinares para projetos com requisitos vagos e em constante mudança.
● Requisitos expressos como cenários (histórias de usuários)
○ Devem ser decompostos caso não caibam em uma iteração
● Programadores trabalham em pares
● Testes são desenvolvidos para cada tarefa antes do código
● Práticas:
○ Planejamento incremental: requisitos são cartões de histórias
○ Pequenos releases: desenvolvimento incremental. Começa pelo conjunto mínimo útil de
funcionalidade que agrega valor ao negócio.
○ Projeto simples: projeto atende aos requisitos atuais e nada mais.
○ Desenvolvimento test-first: Primeiro se escreve o teste, depois é feita a implementação
○ Refatoração: aprimora estrutura interna do código sem alterar comportamento externo
○ Programação em pares: um verifica enquanto o outro programa, mesmo mouse, teclado e
monitor
○ Propriedade coletiva: os pares de desenvolvimento atuam em todas as partes do sistema, de
modo que não se formem ilhas de conhecimento
○ Integração contínua: tão logo uma tarefa é concluída, é integrada ao sistema como um todo.
Todos os testes unitários são realizados.
○ Ritmo sustentável: recomenda-se 40 horas semanais de trabalho, sem recorrer a horas extras,
pois reduzem qualidade da entrega e produtividade.
○ Metáforas: comunicação sobre o desenvolvimento por meio de metáforas.
○ Client on-site: cliente é membro da equipe de desenvolvimento
○ Reuniões em pé: para que não se perca o foco
○ Time coeso: pessoas com habilidades para diversas áreas do projeto.
○ Jogo do planejamento: planejamento da iteração conta com o cliente, que estabelece a
prioridade, enquanto os desenvolvedores avaliam.
● Processo:
○ Planejamento:
■ criadas histórias de usuário
■ cliente atribui valor (prioridade)
■ devs estimam semanas de desenvolvimento. Se mais de 3, subdivide história
○ Projeto
■ KIS: keep it simple
■ cartões CRC (Classe - responsabilidade - colaborador): mecanismo para pensar sobre
o software em contexto orientado a objetos
○ Codificação
■ Primeiro são escritos os testes para cada história a ser inclusa
■ O foco é em aprovar o teste (KIS)
■ 2 pessoas trabalham no código: revisão instantânea e resolução rápida de problemas
○ Teste
■ Devem ser criados com metodologia que os capacite a ser automatizados
● 5 Valores:
○ Comunicação
○ Simplicidade
○ Feedback
○ Coragem
○ Respeito
DICA: Cor Sim ComFeRe
● 5 Princípios:
○ Feedback rápido
○ Abraçar mudanças
○ Presumir simplicidade
○ Mudanças incrementais
○ Trabalho de qualidade
Gerenciamento de serviços (ITIL V4).
ITIL (Information Technology Infrastructure Library): guia de melhores práticas para gerenciamento de
serviços de TI, focado na entrega de valor na forma de serviço. Baseado em Sistema de Valor de Serviços
(SVS), Modelo Quatro Dimensões, Princípios Orientadores e 34 Práticas de Gerenciamento.
Modelo Quatro Dimensões: suporta abordagem holística. ITIL define 4 dimensões críticas para gerenciamento
de serviços:
● Organizações e Pessoas: fatores políticos
● Informação e Tecnologia: fator econômico
● Parceiros e Fornecedores: fator legal
● Fluxos de Valor e Processos: fator tecnológico
● Fatores entre dimensões:
○ fatores ambientes (entre políticos e legais)
○ fatores sociais (entre fatores tecnológicos e econômicos)
Sistema de Valor de Serviços (SVS): modelo que representa o modo como todos os componentes e
atividades de uma organização funcionam em conjunto para facilitar a criação de valor - descritos como
entradas, componentes e saídas.
DECORAR:
TECNOLOGIA
Banco de dados.
● Superchave: conjunto de um ou mais atributos que, tomado coletivamente, permite-nos identificar de
forma inequívoca (de forma única) um tupla no meio de uma relação. Ou seja, é um conjunto de
atributos que identificam apenas um linha em uma tabela.
● Chave candidata: São superchaves de tamanho mínimo. São chamadas de chaves candidatas por
serem candidatas à chave primária da relação. Portanto, uma chave candidata é um atributo (ou
conjunto de atributos) que identificam uma tupla de forma única. A chave candidata não pode ter seu
tamanho reduzido sem que se perca a qualidade de identificação única.
● Propriedades que uma transação no BD deve seguir de modo a garantir sua validade (ACID):
○ atomicidade: sendo a transação composta por diversas afirmações (statements, que no SQL
são separados por “;”), ou todos são bem-sucedidos ou todos falham inteiramente
○ consistência (corretude): uma transação só pode levar o BD de um ponto válido a outro,
portanto mantendo suas invariâncias, respeitando restrições, etc
○ isolamento: transações comumente ocorrem de forma concorrente. Esta propriedade garante
que as transações levem o banco de dados a um estado que seria o mesmo caso as
transações ocorressem sequencialmente
○ durabilidade: garante que uma vez a transação concluída, ela continua mesmo após falha do
sistema. Isto significa gravá-la em memória não volátil
Definições:
● Esquema: definição da estrutura do modelo
● Instância: dados armazenados em um esquema em um momento do tempo
● Campo: menor unidade de dados armazenado
● Registro: coleção de campos armazenados e relacionados entre si
● Arquivo armazenado: conjunto de todas as ocorrências de um único tipo de registro.
Arquitetura em 3 níveis:
● Interno: estrutura física; informações detalhadas sobre como os dados são armazenados no hardware,
definições das estruturas, índices, caminhos de acesso
● Conceitual: é descrita a estrutura do banco de dados para uma comunidade de usuários. Esse
esquema não traz detalhes físicos, o foco é descrever quais dados do banco são armazenados, como
eles se relacionam e as restrições existentes.
● Externo: nesse nível existem uma série de esquemas externos ou visões do usuário. Cada uma
dessas visões descreve uma parte do banco que interessa a um determinado usuário (ou grupo de
usuários), ocultando todo o restante dos dados.
● Independência lógica de dados: capacidade de alterar o esquema conceitual sem ter de alterar os
esquemas externos ou os aplicativos
● Independência física de dados - a capacidade de alterar o esquema interno sem ter de alterar o
esquema conceitual.
NoSQL: refere-se ao armazenamento de dados que não usam SQL para consulta.
● Bancos de dados NoSQL oferecem alternativa mais flexível, escalável e menos dispendiosa se
comparados aos bancos de dados relacionais
● Um banco de dados NoSQL é horizontalmente escalável, permitindo muito mais tráfego por
particionamento de dados
Bancos de dados não relacionais usam um modelo de armazenamento otimizado para os requisitos
específicos do tipo de dados que está sendo armazenado. Vide capítulo sobre Big Data.
● Modelo Lógico: criado a partir do conceitual. Descreve como são armazenados os dados e seus
relacionamentos
○ Formato: Pessoa(id_pessoa, nome, idade)
○ Algumas regras gerais:
■ Toda entidade vira uma relação
■ Atributo identificador se torna chave primária na relação
■ Atributos simples se tornam colunas (campos)
■ Atributos compostos tornam-se atributos simples, mapeados em colunas, uma coluna
para cada atributo
■ Atributos derivados não são mapeados
■ Atributos multivalorados podem ser mapeados de duas formas
● Como n colunas, onde n é o número máximo de valores do atributo
● Criando-se uma nova relação
■ DROP DATABASE/SCHEMA
■ CREATE/DROP VIEW (tabela derivada)
■ ALTER TABLE: adiciona restrições
○ linguagem de manipulação de dado (DML)
■ SELECT
■ INSERT
■ UPDATE
■ DELETE
Linguagens procedurais: funções definidas pelo usuário sejam escritas em outras linguagens além de SQL
RAID (Redundant Array of Independent Disks). Conceitos: stripping (segmentar logicamente dado sequencial
para aumentar velocidade de escrita e leitura; cada arquivo é segmentado em todos os discos),
espelhamento (replicação de volumes de discos lógicos), paridade (forma simples de detecção de erro,
onde um bit representa a quantidade de 1s na sequência)
● RAID 0: faz stripping, mas não paridade ou espelhamento. Não há dado redundante, então está
completamente vulnerável a falha, sendo que a falha de qualquer disco causa a falha de todos os
arquivos.
● RAID 1: espelhamento, sem paridade ou stripping. Dado espelhado em 2 discos idênticos. A escrita é
sempre mais lenta, pois todos os discos precisam ser atualizados.
● RAID 2: stripping ao nível de bit (cada bit num disco separado) e ao menos um disco de paridade.
● RAID 3: stripping ao nível de byte e paridade dedicada.
● RAID 4: stripping ao nível de bloco com paridade dedicada. Diferente dos RAID 2 e 3, operações de
leitura não precisam de todos os drives, permitindo leituras paralelas.
● RAID 5: stripping ao nível de bloco com paridade distribuída. Requer ao menos 3 discos. A informação
de paridade é distribuída ao longo dos discos.
● RAID 6: stripping ao nível de bloco com dupla paridade distribuída. Requer ao menos 4 discos.
RAID híbridos: o valor mais a direita é chamado top e é o mais acima no desenho de discos. Exemplo: RAID
1+0. Temos ao nível mais alto RAID 0 (stripping, sem espelhamento ou paridade) e, em cada stripe, RAID 1
(espelhamento).
● RAID 0+1: dois stripes espelhados.
● RAID 1+0: série de duplicações.
Servidores web e de aplicação.
Servidores web:
● IIS: Internet Information Services da Microsoft
○ Servidor web da Microsoft
○ Gera HTML dinâmicas
○ Tecnologia ASP (Active Server Pages): estrutura de bibliotecas básicas (e não uma linguagem)
para processamento de linguagens de script no lado servidor para geração de conteúdo
dinâmico na Web
○ Também hospeda aplicações
● Servidor HTTP Apache: software livre (acesso do usuário ao código fonte)
○ Mais popular e mais usado no mundo
● Nginx: Mais leve que Apache pois é baseado em eventos
○ Usado pela wikipedia
● Wildfly: servidor de aplicação web escrito em Java
Linguagens de programação.