Escolar Documentos
Profissional Documentos
Cultura Documentos
Variáveis definidas dentro de funções têm seu escopo delimitado pelo corpo da função onde foram
definidas.
O fluxograma passou a ser usado para eliminar ambiguidades dos algoritmos. São símbolos gráficos
padronizados, cada um representado por uma forma geométrica que implica em uma ação, instrução
ou um comando distinto.
Algoritmo de Dekker. O algoritmo de Dekker permitirá que apenas um único processo use um recurso se dois processos
estiverem tentando usá-lo ao mesmo tempo. O destaque do algoritmo é como ele resolve esse problema. Ele consegue
prevenir o conflito ao impor a exclusão mútua, o que significa que apenas um processo pode usar o recurso por vez e
aguardará se outro processo o estiver usando. Isso é obtido com o uso de dois "sinalizadores" e um "token". Os sinalizadores
indicam se um processo deseja entrar na seção crítica (CS) ou não; um valor de 1 significa TRUE que o processo deseja entrar
no CS, enquanto 0, ou FALSE, significa o oposto. O token, que também pode ter um valor de 1 ou 0, indica a prioridade
quando ambos os processos têm seus sinalizadores definidos como TRUE.
Este algoritmo pode impor com sucesso a exclusão mútua, mas testará constantemente se a seção crítica está disponível e,
portanto, desperdiça um tempo significativo do processador. Ele cria o problema conhecido como sincronização lockstep,
em que cada thread só pode ser executado em sincronização estrita. Também não é expansível, pois suporta apenas no
máximo dois processos de exclusão mútua.
Algoritmo do Padeiro de Lamport. Os princípios operacionais por trás do algoritmo de padaria de Lamport são muito
simples. Todos os threads de processo devem pegar um número e esperar sua vez para usar um recurso de computação
compartilhado ou para entrar em sua seção crítica. O número pode ser qualquer uma das variáveis globais e os processos
com o número mais baixo serão processados primeiro. Se houver empate ou número semelhante compartilhado por ambos
os processos, ele é gerenciado por meio de seu ID de processo. Se um processo termina antes de sua vez, ele deve começar
novamente na fila de processos.
(1) Adapter: Envelopa um objeto e fornece uma interface diferente para acessá-lo.
1. O padrão Adapter permite que uma classe utilize a interface de outra classe de forma transparente,
sem precisar conhecer a implementação subjacente. Isso é útil quando uma classe precisa interagir
com outra classe que possui uma interface diferente da que ela espera.
No estágio de Análise, o foco é na compreensão dos requisitos do sistema e na modelagem do domínio do problema. O
objetivo é criar um modelo conceitual que represente os conceitos relevantes do domínio e suas relações.
No estágio de Projeto, o foco é na definição da arquitetura do sistema e na criação de um modelo de design que represente
as classes e objetos que serão implementados no código. O objetivo é criar um modelo que seja eficiente, escalável e fácil de
manter.
No estágio de Implementação, o foco é na codificação das classes e objetos definidos no modelo de design. O objetivo é
criar um sistema funcional que atenda aos requisitos especificados.
Java
Todos os membros de uma interface em Java devem (obrigatório) ser public por padrão e não podem ser definidos com
outro modificador de acesso.
Em geral, os operadores equals() e “==” em Java são usados para comparar objetos para verificar a igualdade. A principal
diferença entre o método .equals() e o operador == é que um é um método e o outro é o operador.
Podemos usar operadores == para comparação de referência ( comparação de endereço ) e método .equals() para
comparação de conteúdo . Em palavras simples, == verifica se ambos os objetos apontam para a mesma localização da
memória, enquanto .equals() avalia a comparação de valores nos objetos.
Vale lembrar que no código da questão também foi utilizado o operador ternário (?:). O que vem depois da interrogação é
verdadeiro e o que vem depois dos dois pontos é o valor para falso.
Segundo Sommerville: "Um conjunto específico de atributos que você pode esperar de um software
obviamente depende da aplicação. Portanto, um sistema bancário deve ser seguro, um jogo interativo
deve ser ágil, um sistema de comutação de telefonia deve ser confiável, e assim por diante." Ele
define esses atributos como:
1. Manutenibilidade: O software deve ser escrito de forma que possa evoluir para atender às
necessidades dos clientes. Esse é um atributo crítico, porque a mudança de software é um
requisito inevitável de um ambiente de negócio em mudança.
2. Confiança e proteção: A confiança do software inclui uma série de características como
confiabilidade, proteção e segurança. Um software confiável não deve causar prejuízos físicos
ou econômicos no caso de falha de sistema. Usuários maliciosos não devem ser capazes de
acessar ou prejudicar o sistema.
3. Eficiência: O software não deve desperdiçar os recursos do sistema, como memória e ciclos
do processador. Portanto, eficiência inclui capacidade de resposta, tempo de processamento,
uso de memória etc.
4. Aceitabilidade: O software deve ser aceitável para o tipo de usuário para o qual foi projetado.
Isso significa que deve ser compreensível, usável e compatível com outros sistemas usados
por ele.
O teste de release é um tipo de teste de software que é realizado antes que uma nova versão do sistema seja liberada para os
usuários. Durante o teste de release, a equipe de teste verifica se o sistema atende aos requisitos especificados e se todas as
funcionalidades estão funcionando corretamente. A equipe de teste pode ser independente ou fazer parte da equipe de
desenvolvimento.
O teste de release pode incluir diferentes tipos de testes, como testes de caixa-preta, testes de caixa-branca, testes de
integração, testes de desempenho e testes de usabilidade. Os testes podem ser derivados das especificações do sistema ou
baseados em cenários de uso ou casos de teste desenvolvidos pela equipe de teste.
O objetivo do teste de release é garantir a qualidade do sistema antes que ele seja entregue aos usuários e evitar problemas
na produção. Além disso, o teste também pode ajudar a identificar possíveis melhorias no sistema para versões futuras.
ITIL
PMBOK
De acordo com o PMBOK, os ciclos de vida do projeto podem ser preditivos ou adaptativos. Em um ciclo de
vida do projeto, há geralmente uma ou mais fases associadas com o desenvolvimento do produto, serviço ou
resultado. Essas fases são chamadas de ciclo de vida de desenvolvimento. Os ciclos de vida de
desenvolvimento podem ser preditivos, iterativos, incrementais, adaptativos ou um modelo híbrido. Em um
ciclo de vida preditivo, o escopo, prazo e custo do projeto são determinados nas fases iniciais do ciclo de vida.
Quaisquer alterações ao escopo são cuidadosamente gerenciadas. Os ciclos de vida preditivos são também
chamados de ciclos de vida em cascata.
Redes de Computadores
IPV6 -
O IPv6 tem menos campos de cabeçalho a serem preenchidos frente ao cabeçalho Ipv4.
É possível definir um endereço IPv6 a partir do endereço MAC para a parte referente ao host.
Pode haver mais de um cabeçalho de extensão.
O endereço IPv6 correspondente ao IPv4 127.0.0.1 é igual a ::1/128.
Os algoritmos usados na camada k afetam apenas a implementação daquela camada, sem impactar as camadas adjacentes.
Os protocolos e as interfaces entre as camadas superiores e inferiores permanecem os mesmos, o que significa que uma
mudança na camada k não afetará a funcionalidade dessas camadas.
Mudanças nos serviços fornecidos por uma camada podem sim afetar as camadas superiores. Por exemplo, se a camada k
fornecer um serviço de maior qualidade ou de maior capacidade, as camadas superiores podem tirar proveito dessas
melhorias. Da mesma forma, se a camada k reduzir a capacidade do serviço, as camadas superiores podem precisar ajustar
sua funcionalidade para acomodar a nova limitação.
Mudanças nos serviços fornecidos por uma camada podem sim afetar as camadas superiores. Por exemplo, se a camada k
fornecer um serviço de maior qualidade ou de maior capacidade, as camadas superiores podem tirar proveito dessas
melhorias. Da mesma forma, se a camada k reduzir a capacidade do serviço, as camadas superiores podem precisar ajustar
sua funcionalidade para acomodar a nova limitação.
Analise de dados
áreas de foco o alinhamento entre a Governança de dados
Políticas, Normas e Estratégia.
Qualidade de dados.
Privacidade, Compliance e Security.
Alinhamento entre a Governança de TI e projetos.
Métodos Particionais;
Segurança da Informação
o protocolo padrão para o gerenciamento de chaves pelo IPSec é o: IKE
Antes que se possa utilizar o IPSEC, é necessário que eles estabeleçam associações de segurança (SA) entre si,
ou seja, uma SA para cada direção da comunicação.
Para o estabelecimento da AS (Associação de Segurança), o IPSEC utiliza o protocolo Internet Key Exchange
(IKE), que é baseado no algoritmo de troca de chaves Diffie-Hellman. O IKE utiliza o protocolo da camada de
transporte UDP, e tem a porta 500 como padrão.
Vale lembrar que o uso do IKE é recomendado, e não obrigatório. Ou seja, pode-se usar outros algoritmos de
troca de chaves.
Linux
( I ) O recurso ">" (maior que) redireciona a saída de um comando para um arquivo ou para um dispositivo. No caso do
redirecionamento para arquivos, se já houver conteúdo, ele substitui todo o conteúdo do arquivo pelo o que foi
redirecionado.
( II ) O recurso ">>" (maior que duplo) é similar ao ">", a diferença é que ao invés de sobrescrever um arquivo ele adiciona o
conteúdo ao final do arquivo, mantendo o conteúdo que já existe no arquivo.
( III ) O recurso "|" (pipe) é usado para redirecionar a saída de um comando para outro comando, por exemplo: "ls
/home/user | grep teste" (a saída do comando "ls" foi redirecionada como entrada para o comando "grep").
O comando umask (abreviado de user mask (máscara de usuário) é um comando e uma função em ambientes POSIX que determinam
as permissões padrão para novos arquivos e diretórios criados. Ele é diferente do chmod.
Vamos as permissões:
Dessa forma,
1.O dono tem permissão de ler, gravar e executar. Assim, é o valor 0.
2.O grupo tem permissão de ler e executar. Assim, é o valor 2.
3.Os outros usuários terão permissão de execução somente. Assim, é o valor 6.
Roll down (mudar a dimensão que está sendo analisada para uma de nível inferior),
Drill across (analisar dados de outras dimensões) e
Roll through (avançar para o próximo período de tempo em uma dimensão).
Banco de dados
Durante o processo de recuperação de falhas de transação, a operação UNDO é responsável por reverter as alterações feitas
pelas transações incompletas que foram afetadas pela falha, enquanto a operação REDO é responsável por reaplicar as
alterações feitas pelas transações concluídas que foram perdidas devido à falha.
Para garantir o comportamento correto durante a recuperação, as operações UNDO e REDO devem ser idempotentes. Isso
significa que se essas operações forem aplicadas várias vezes, o resultado final será o mesmo que se elas fossem aplicadas
apenas uma vez.
Gradiente descendente é um dos algoritmos de maior sucesso em problemas de Machine Learning. O método consiste em
encontrar, de forma iterativa, os valores dos parâmetros que minimizam determinada função de interesse.
A. CORRETA - O Gradiente Descendente é um algoritmo que busca minimizar uma função, e se essa função tiver uma única
mínima global, o procedimento de Gradiente Descendente a encontrará.
. CORRETA - Usar consultas parametrizadas impede que a consulta seja alterada porque os valores dos parâmetros são
combinados com a declaração compilada e não concatenados diretamente na sequência de caracteres que compõem a
consulta SQL.
II. CORRETA - Para proteção de dados é importante não armazenar senhas, strings de conexão ou outras informações
confidenciais em texto claro/legível ou em qualquer forma criptograficamente insegura no lado cliente. As strings de conexão
devem estar em um arquivo de configuração separado, armazenado em um sistema confiável e as informações devem ser
criptografadas.
IV. CORRETA - A auditoria das contas criadas é interessante para a desativação das contas que não sejam mais necessárias
para os requisitos de negócio, assim diminuindo o risco associado a essas contas.
Servidores WEB
A OWASP (2012) recomenda a prática de prevenir a divulgação da estrutura de diretórios impedindo que robôs de busca
façam indexação de arquivos sensíveis, através da configuração do arquivo "robots.txt", não "security.txt".
Governancia de t.i
A etapa do ciclo da Governança de TI que tem, dentre outros componentes, Gestão da Demanda, Necessidades de aplicações
e Sourcing é a etapa de Alinhamento Estratégico e Compliance.
O Alinhamento Estratégico e Compliance são a primeira fase do ciclo de vida da Governança de TI. O Alinhamento
Estratégico é uma prática que garante que os processos de negócio e de tecnologia da informação trabalhem
conjuntamente. Em outras palavras, determina o alinhamento da organização e da TI em relação às necessidades do negócio.
O Compliance envolve a conformidade com leis, regulamentações e padrões aplicáveis. É importante para garantir que a
empresa esteja cumprindo todas as normas e regulamentações relevantes em relação ao uso de tecnologia da informação.