Material Prova - NP1

22
HARDWARE, SOFTWARE E PEOPLEWARE Um sistema baseado em computação é, na verdade, composto por hardware, software e peopleware. A seguir uma definição de cada um deles. Hardware é o nome que se dá para a parte física do computador. É tudo aquilo que você é tocável pelo usuário. Exemplos de hardwares: Software é o nome que se dá a toda parte lógica do computador. Ou seja, são os programas que você vê funcionar na tela do micro e que dão "vida" ao computador. Sem um software adequado à suas necessidades, o computador, por mais bem equipado e avançado que seja, é completamente inútil. O computador não é uma máquina com inteligência. Na verdade, é uma máquina com uma grande capacidade para processamento de informações, tanto em volume de dados quanto na velocidade das operações que realiza sobre esses dados. Basicamente, o computador é organizado em três grandes funções ou áreas, as quais são: entrada de dados, processamento de dados e saída de dados. Entrada de Dados Para o computador processar nossos dados, precisamos ter meios para fornecê-los a ele. Para isso, o computador dispõe de recursos como o teclado (para digitação, por exemplo, do texto que define um programa de computador), o mouse (para selecionar opções e executar algumas operações em um software qualquer), disquetes e CDs3 para entrada de dados (gerados provavelmente em algum outro computador), mesas digitalizadoras (muito utilizadas por programas CAD4 e aplicativos gráficos em geral) e outros. Processamento de Dados Os dados fornecidos ao computador podem ser armazenados para processamento imediato ou posterior. Esse armazenamento de dados é feito na memória do computador, que pode ser volátil (isto é, desaparece quando o computador é desligado), referenciada como memória RAM (Random Access Memory - memória de acesso aleatório), ou pode ser permanente (enquanto não é "apagada" por alguém) através do armazenamento dos dados em unidades como as de disco fixo, que são meios físicos (meio magnético) localizadas no interior do gabinete do computador. Há também os disquetes, que são discos “removíveis”, e mais recentemente os CDs graváveis. O processamento dos dados é feito na CPU – Central Process Unit - unidade de processamento central (ou simplesmente processador, como o Pentium), onde a informação é tratada, sendo lida, gravada ou apagada da memória, sofrendo transformações de acordo com os objetivos que se deseja atingir com o processamento delas. Todos os programas escritos em uma determinada linguagem de programação são “traduzidos” por um programa chamado compilador que é um tradutor que converte todas as instruções em linguagem de máquina ou binária (0 e 1). Saída de Dados

Transcript of Material Prova - NP1

Page 1: Material Prova - NP1

HARDWARE, SOFTWARE E PEOPLEWARE

Um sistema baseado em computação é, na verdade, composto por hardware, software e peopleware. A seguir uma definição de cada um deles.

Hardware é o nome que se dá para a parte física do computador. É tudo aquilo que você é tocável pelo usuário.

Exemplos de hardwares:Software é o nome que se dá a toda parte lógica do computador. Ou seja,

são os programas que você vê funcionar na tela do micro e que dão "vida" ao computador.

Sem um software adequado à suas necessidades, o computador, por mais bem equipado e avançado que seja, é completamente inútil.

O computador não é uma máquina com inteligência. Na verdade, é uma máquina com uma grande capacidade para processamento de informações, tanto em volume de dados quanto na velocidade das operações que realiza sobre esses dados.

Basicamente, o computador é organizado em três grandes funções ou áreas, as quais são: entrada de dados, processamento de dados e saída de dados.

Entrada de DadosPara o computador processar nossos dados, precisamos ter meios para

fornecê-los a ele. Para isso, o computador dispõe de recursos como o teclado (para digitação, por exemplo, do texto que define um programa de computador), o mouse (para selecionar opções e executar algumas operações em um software qualquer), disquetes e CDs3 para entrada de dados (gerados provavelmente em algum outro computador), mesas digitalizadoras (muito utilizadas por programas CAD4 e aplicativos gráficos em geral) e outros.

Processamento de DadosOs dados fornecidos ao computador podem ser armazenados para

processamento imediato ou posterior. Esse armazenamento de dados é feito na memória do computador, que pode ser volátil (isto é, desaparece quando o computador é desligado), referenciada como memória RAM (Random Access Memory - memória de acesso aleatório), ou pode ser permanente (enquanto não é "apagada" por alguém) através do armazenamento dos dados em unidades como as de disco fixo, que são meios físicos (meio magnético) localizadas no interior do gabinete do computador. Há também os disquetes, que são discos “removíveis”, e mais recentemente os CDs graváveis. O processamento dos dados é feito na CPU – Central Process Unit - unidade de processamento central (ou simplesmente processador, como o Pentium), onde a informação é tratada, sendo lida, gravada ou apagada da memória, sofrendo transformações de acordo com os objetivos que se deseja atingir com o processamento delas.

Todos os programas escritos em uma determinada linguagem de programação são “traduzidos” por um programa chamado compilador que é um tradutor que converte todas as instruções em linguagem de máquina ou binária (0 e 1).

Saída de DadosOs dados resultantes do processamento das informações pelo computador

podem ser apresentadas de inúmeras formas, e por meio de diversos dispositivos. O monitor de vídeo é um dos principais meios para se obter dados de saída do computador: tanto texto normal ou formatado (como em tabelas ou ormulários) e gráficos podem ser apresentados ao usuário através desse dispositivo. Se quisermos que os resultados sejam apresentados em papel, podemos fazer uso de impressoras e/ou plotters (para "plotagem" de desenhos); se quisermos levar esses dados para outros computadores, podemos fazer uso, por exemplo, dos disquetes, ou então conectar os computadores em rede (resumidamente, ligá-los através de cabos). Quando tratamos dados do tipo áudio (som) a saída ocorre através das caixas de som ou fones de ouvido.

Peopleware são pessoas que trabalham diretamente, ou indiretamente, com a área de processamento de dados, ou mesmo com Sistema de Informação.

Page 2: Material Prova - NP1

O peopleware é a parte humana que se utiliza das diversas funcionalidades dos sistemas computacionais, seja este usuário um Analista de sistema ou, até mesmo, um simples cliente que faz uma consulta em um caixa eletrônico da Rede Bancária, como também uma atendente de um Supermercado.

PERIFÉRICOS DE ENTRADA, SAÍDA E ENTRADA E SAÍDA

Periféricos são aparelhos ou placas que enviam ou recebem informações do computador. Na informática, o termo "periférico" aplica-se a qualquer equipamento acessório que seja ligado à CPU (unidade central de processamento), ou, num sentido mais amplo, ao computador. O primeiro Periférico criado foi por um cientista chamado Philipe Brusk .Os exemplos de periféricos sao: impressoras, digitalizadores, leitores e ou gravadores de CDs e DVDs, leitores de cartões e disquetes, mouses, teclados, câmeras de vídeo, entre outros.

Cada periférico tem a sua função definida, desempenhada ao enviar tarefas ao computador, de acordo com sua função periférica.

Existem vários tipos de periféricos:De entrada: basicamente enviam informação para o computador.De saída: transmitem informação do computador para o utilizador.De entrada e saída (ou mistos): enviam/recebem informação para/do

computador (monitor touchscreen, drive de DVD, modem). Muitos destes periféricos dependem de uma placa específica: no caso das caixas de som, a placa de som.

Outros recursos são adicionados ao computador através de placas próprias: é o caso da Internet, com placa de rede ou modem; televisão, através de uma placa de captura de vídeo,

A seguir exemplos de cada tipo de periférico com uma pequena descrição.

Periféricos de entrada:Teclado: periférico que permite o usuário inserir dados através de diversas

teclas, inclusive com combinações.Mouse: periférico que permite o usuário posicionar uma seta (apontador)

através da interface gráfica dos aplicativos. O mouse possui 2 botões padrões, o esquerdo e o direito.

Webcam: Periférico de entrada que captura imagens estáticas e em movimento. Utilizada para vídeo conferências.

Scanner: Periférico de entrada, também conhecido como digitalizador de imagens. Captura imagens impressas (foto, livros, documentos) através da decodificação de reflexos gerados por impulsos luminosos.

Pode ser de mão ou de mesa. Usado em conjunto com um software de OCR (Optical Character Recognition) reconhecimento óptico de caracteres, pode transformar textos impressos em arquivos editáveis.

Periféricos de saídaMonitor – Principal periférico de saída, exibe ao usuário as principais

informações do sistema.Impressoras - As impressoras são periféricos que permitem passar o

trabalho feito no computador para papel. Existem várias tecnologias de impressão, que diferem entre si no custo, na qualidade de impressão e na velocidade. O parâmetro mais importante na qualidade de impressão é a resolução a qual costuma vir indicada em DPI. Atualmente as impressoras mais difundidas são de jacto de tinta havendo também impressoras LASER

Periféricos de entrada e saídaMonitor TouchScreen – Geralmente encontrado em alguns caixa eletrônico

de bancos. Eles informam e solicitam informações. A forma de entrada de dados é através de toques na tela.

Joystick (controles de jogos) - com funções de vibração e force feedback

Page 3: Material Prova - NP1

Pendrive – Dispositivos que possuem a finalidade de carregar informações e poderem ser utilizados em qualquer computador que possua uma entrada USB.

Modem – Hardware que pode ser instalado no interior do gabinete ou externamente (logo, torna-se um periférico). Seu nome vem de Modulador e Demodulador de sinais, ou seja, transforma tipos de sinais para o tráfego de dados. Um modem ADSL (de internet de alta velocidade) é capaz de demodular o sinal analógico do telefone e modular o sinal digital do computador, para troca de dados através do cabo do telefone. Principais exemplos:

o Fax-modemo ADSL modemo Cable modemo WiFi modem

CONHECIMENTO TÁCITO E EXPLICITO

Conhecimento tácito é aquele que o indivíduo adquiriu ao longo da vida, que está na cabeça das pessoas. Geralmente é difícil de ser formalizado ou explicado a outra pessoa, pois é subjetivo e inerente as habilidades de uma pessoa, como "know-how". A palavra tácito vem do latim tacitus que significa "não expresso por palavras".

Isto se deve ao fato que lidamos com algo subjetivo, não mensurável, quase impossível de se ensinar, de se passar através de manuais ou mesmo numa sala de aula.

Este tipo de conhecimento parece ser mais valioso devido a sua difícil captura, registro e divulgação, exatamente por ele estar ligado as pessoas. É o que algumas pessoas chamam de verdadeiro conhecimento.

Podemos dizer que todos nós possuímos este conhecimento, mas é difícil de explicá-lo e isto se deve a nossa experiência de vida, dos conhecimentos que adquirimos com o passar dos anos, ou seja, é um conhecimento que está lá dentro de nós.

Nos parece que a melhor forma de transmiti-lo é através da convivência, das interações que fazemos com o grupo que participamos, via comunicação oral, no contato direto com as pessoas.

Quanta vezes ouvimos que "os funcionários são o maior ativo da empresa"? Isto é uma verdade, pois os funcionários são os que detém o tal conhecimento tácito, que são os conceitos, idéias, relacionamentos, enfim o conhecimento da empresa, de seus processos e produtos dentro de suas mentes.

Conhecimento explicito É aquele formal, claro, regrado, fácil de ser comunicado. Pode ser

formalizado em textos, desenhos, diagramas, etc. assim como guardado em bases de dados ou publicações. A palavra explicito vem do latim explícitos que significa "formal, explicado, declarado". Geralmente está registrado em artigos, revistas, livros e documentos.

Alguns dizem que este tipo de conhecimento é confundido com a própria informação, na sua forma mais simples.

Relacionamento entre ambosÉ bom lembrar que os dois conhecimentos se completam e se relacionam,

sendo impossível de ser medido em cada indivíduo.Um indivíduo tem interesse em um determinado assunto, pois este assunto

tem um significado especial para ele, mas talvez para outro indivíduo não. O conhecimento é como um emaranhado de significados que vamos construindo ao longo da vida, aonde vamos fixando cada explicação e relacionando-a a outras, montando esta construção sem fim.

SEGURANÇA DA INFORMAÇÃO

Page 4: Material Prova - NP1

Segurança da Informação está relacionada com proteção de um conjunto de dados, no sentido de preservar o valor que possuem para um indivíduo ou uma organização. São características básicas da segurança da informação os atributos de confidencialidade, integridade, disponibilidade e autenticidade, não estando esta segurança restrita somente a sistemas computacionais, informações eletrônicas ou sistemas de armazenamento. O conceito se aplica a todos os aspectos de proteção de informações e dados. O conceito de Segurança Informática ou Segurança de Computadores está intimamente relacionado com o de Segurança da Informação, incluindo não apenas a segurança dos dados/informação, mas também a dos sistemas em si.

Conceitos de segurançaA Segurança da Informação se refere à proteção existente sobre as

informações de uma determinada empresa ou pessoa, isto é, aplica-se tanto as informações corporativas quanto às pessoais. Entende-se por informação todo e qualquer conteúdo ou dado que tenha valor para alguma organização ou pessoa. Ela pode estar guardada para uso restrito ou exposta ao público para consulta ou aquisição.

Podem ser estabelecidas métricas (com o uso ou não de ferramentas) para a definição do nível de segurança existente e, com isto, serem estabelecidas as bases para análise da melhoria ou piora da situação de segurança existente. A segurança de uma determinada informação pode ser afetada por fatores comportamentais e de uso de quem se utiliza dela, pelo ambiente ou infra-estrutura que a cerca ou por pessoas mal intencionadas que têm o objetivo de furtar, destruir ou modificar tal informação.

A tríade CIA (Confidentiality, Integrity and Availability) -- Confidencialidade, Integridade e Disponibilidade -- representa os principais atributos que, atualmente, orientam a análise, o planejamento e a implementação da segurança para um determinado grupo de informações que se deseja proteger. Outros atributos importantes são a irretratabilidade e a autenticidade. Com o evoluir do comércio eletrônico e da sociedade da informação, a privacidade é também uma grande preocupação.

Portanto os atributos básicos, segundo os padrões internacionais são os seguintes:

Confidencialidade - propriedade que limita o acesso a informação tão somente às entidades legítimas, ou seja, àquelas autorizadas pelo proprietário da informação.

Integridade - propriedade que garante que a informação manipulada mantenha todas as características originais estabelecidas pelo proprietário da informação, incluindo controle de mudanças e garantia do seu ciclo de vida (nascimento,manutenção e destruição).

Disponibilidade - propriedade que garante que a informação esteja sempre disponível para o uso legítimo, ou seja, por aqueles usuários autorizados pelo proprietário da informação.

Para a montagem desta política, deve-se levar em conta: Riscos associados à falta de segurança; Benefícios; Custos de implementação dos mecanismos.Mecanismos de segurançaO suporte para as recomendações de segurança pode ser encontrado em: Controles físicos: são barreiras que limitam o contato ou acesso direto

a informação ou a infra-estrutura (que garante a existência da informação) que a suporta.

Existem mecanismos de segurança que apóiam os controles físicos:Portas / trancas / paredes / blindagem / guardas / etc ..

Controles lógicos: são barreiras que impedem ou limitam o acesso a informação, que está em ambiente controlado, geralmente eletrônico, e que, de

Page 5: Material Prova - NP1

outro modo, ficaria exposta a alteração não autorizada por elemento mal intencionado.

Existem mecanismos de segurança que apóiam os controles lógicos: Mecanismos de criptografia. Permitem a transformação reversível da

informação de forma a torná-la ininteligível a terceiros. Utiliza-se para tal, algoritmos determinados e uma chave secreta para, a partir de um conjunto de dados não criptografados, produzir uma sequência de dados criptografados. A operação inversa é a decifração.

Mecanismos de controle de acesso. Palavras-chave, sistemas biométricos, firewalls, cartões inteligentes.

Existe hoje em dia um elevado número de ferramentas e sistemas que pretendem fornecer segurança. Alguns exemplos são os detectores de intrusões, os anti-vírus, firewalls, firewalls locais, filtros anti-spam, , analisadores de código, etc.

Ameaças à segurançaAs ameaças à segurança da informação são relacionadas diretamente à

perda de uma de suas 3 características principais, quais sejam: Perda de Confidencialidade: seria quando há uma quebra de sigilo de

uma determinada informação (ex: a senha de um usuário ou administrador de sistema) permitindo que sejam expostas informações restritas as quais seriam acessíveis apenas por um determinado grupo de usuários.

Perda de Integridade: aconteceria quando uma determinada informação fica exposta a manuseio por uma pessoa não autorizada, que efetua alterações que não foram aprovadas e não estão sob o controle do proprietário (corporativo ou privado) da informação.

Perda de Disponibilidade: acontece quando a informação deixa de estar acessível por quem necessita dela. Seria o caso da perda de comunicação com um sistema importante para a empresa, que aconteceu com a queda de um servidor ou de uma aplicação crítica de negócio, que apresentou uma falha devido a um erro causado por motivo interno ou externo ao equipamento ou por ação não autorizada de pessoas com ou sem má intenção.

No caso de ameaças à rede de computadores ou a um sistema, estas podem vir de agentes maliciosos, muitas vezes conhecidos como crackers, (hackers não são agentes maliciosos, pois tentam ajudar a encontrar possiveis falhas). Estas pessoas são motivadas para fazer esta ilegalidade por vários motivos. Os principais são: notoriedade, auto-estima, vingança e o dinheiro. De acordo com pesquisa elaborada pelo Computer Security Institute ([1]), mais de 70% dos ataques partem de usuários legítimos de sistemas de informação (Insiders) -- o que motiva corporações a investir largamente em controles de segurança para seus ambientes corporativos (intranet).

Exemplos de InvasõesO maior acontecimento causado por uma invasão foi em 1988, quando um

estudante colocou na internet um programa malicioso (worm), derrubando milhares de computadores pelo mundo. Sendo identificado e removido logo após. Mas até hoje há controvérsias de que ele não foi completamente removido da rede. Esse programa era feito em linguagem C, e não se sabe até hoje qual era o objetivo, o que se sabe é que ele tentava descobrir todas as senhas que o usuário digitava. Mas esse programa se auto-copiava em todos os computadores em que o estudante invadia. Essa “brincadeira” não durou muito, pois o estudante foi descoberto pouco tempo depois, processado e condenado a liberdade condicional, e teve que pagar uma alta multa.

Um dos casos mais recentes de invasão por meio de vírus foi o do Vírus Conficker (ou Downup, Downadup e Kido) que tinha como objetivo afetar computadores dotados do sistema operacional Microsoft Windows, e que foi primeiramente detectado em outubro de 2008. O vírus bloqueia o acesso a websites destinados à venda, protegidos com sistemas de segurança e, portanto, é possível a qualquer usuário de internet verificar se um computador está infectado ou não, simplesmente por meio do acesso a websites destinados a venda de produtos

Page 6: Material Prova - NP1

dotados de sistemas de segurança. Em janeiro de 2009, o número estimado de computadores infectados variou entre 9 e 15 milhões. Em 13 de fevereiro de 2009, a Microsoft estava oferecendo 250.000 dólares americanos em recompensa para qualquer informação que levasse à condenação e à prisão de pessoas por trás da criação e/ou distribuição do Conficker. Os softwares antivírus não-ligados a Microsoft, tais como a BitDefender, Enigma Software, Eset,F-Secure, Symantec, Sophos, e o Kaspersky Lab liberaram atualizações com programas de detecção em seus produtos e são capazes de remover o vírus. A McAfee e o AVG também são capazes de remover o vírus através de escaneamentos de discos rígidos e mídias removíveis.

Através desses dados vemos que os anti-vírus devem estar cada vez mais atualizados, estão surgindo novos vírus rapidamente, e com a mesma velocidade deve ser lançado atualizações para os bancos de dados dos anti-vírus para que os mesmos sejam identificados e excluídos. Com a criação da internet essa propagação de vírus é muito rápida e muito perigosa, pois se não houver a atualização dos anti-virus o computador e usuário estão vulneráveis, pois com a criação da internet várias empresas começarão a utilizar internet como exemplo empresas mais precisamente bancos, mas como é muito vulnerável esse sistema, pois existem vírus que tem a capacidade de ler o teclado (in/out), instruções privilegiadas como os keyloggers. Com esses vírus é possível ler a senha do usuário que acessa sua conta no banco, com isso é mais indicado ir diretamente ao banco e não acessar sua conta pela internet.

Nível de segurançaDepois de identificado o potencial de ataque, as organizações têm que

decidir o nível de segurança a estabelecer para uma rede ou sistema os recursos físicos e lógicos a necessitar de proteção. No nível de segurança devem ser quantificados os custos associados aos ataques e os associados à implementação de mecanismos de proteção para minimizar a probabilidade de ocorrência de um ataque.

Segurança físicaConsidera as ameaças físicas como incêndios, desabamentos, relâmpagos,

alagamento, acesso indevido de pessoas, forma inadequada de tratamento e manuseio do material.

Segurança lógicaAtenta contra ameaças ocasionadas por vírus, acessos remotos à rede,

backup desatualizados, violação de senhas, etc.Segurança lógica é a forma como um sistema é protegido no nível de

sistema operacional e de aplicação. Normalmente é considerada como proteção contra ataques, mas também significa proteção de sistemas contra erros não intencionais, como remoção acidental de importantes arquivos de sistema ou aplicação.

BACKUP

Em informática, cópia de segurança (em inglês: backup) é a cópia de dados de um dispositivo de armazenamento a outro para que possam ser restaurados em caso da perda dos dados originais, o que pode envolver apagamentos acidentais ou corrupção de dados.

Meios difundidos de cópias de segurança incluem CD-ROM, DVD, disco rígido, disco rígido externo (compatíveis com USB), fitas magnéticas e a cópia de segurança externa (online). Esta transporta os dados por uma rede como a Internet para outro ambiente, geralmente para equipamentos mais sofisticados, de grande porte e alta segurança. Outra forma pouco difundida de cópia de segurança é feita via rede. Na própria rede local de computadores, o administrador ou o responsável

Page 7: Material Prova - NP1

pela cópia de segurança grava os dados em um formato de arquivo, processa e distribui as partes constituintes da cópia nos computadores da rede, de forma segura (arquivos são protegidos), criptografada (para não haver extração ou acesso aos dados na forma original) e oculta (na maioria das vezes o arquivo é ocultado).

Cópias de segurança são geralmente confundidas com arquivos e sistemas tolerantes a falhas. Diferem de arquivos pois enquanto arquivos são cópias primárias dos dados, cópias de segurança são cópias secundárias dos dados. Diferem de sistemas tolerantes a falhas pois cópias de segurança assumem que a falha causará a perda dos dados, enquanto sistemas tolerantes a falhas assumem que a falha não causará.

As cópias de segurança devem obedecer vários parâmetros, tais como: o tempo de execução, a periodicidade, a quantidade de exemplares das cópias armazenadas, o tempo que as cópias devem ser mantidas, a capacidade de armazenamento, o método de rotatividade entre os dispositivos, a compressão e criptografia dos dados. Assim, a velocidade de execução da cópia deve ser aumentada tanto quanto possível para que o grau de interferência desse procedimento nos serviços seja mínimo. A periodicidade deve ser analisada em função da quantidade de dados alterados na organização, no entanto se o volume de dados for elevado, as cópias devem ser diárias. Deve-se estabelecer um horário para realização da cópia, conforme a laboração da organização, devendo ser preferencialmente nocturno. Para uma fácil localização, a cópia deve ser guardada por data e categoria, em local seguro.

Uma boa política de backup’s é a realização diária e mantendo-os em um local físico diferentemente daquele aonde fica situada a empresa e utilizando diversos tipos de mídias: fitas DAT’s, HD’s externos, DVD e etc.

Modelos de repositóriosQualquer estratégia de cópia de segurança inicia com um conceito de

repositório dos dados.Num modelo não estruturado, o repositório pode ser armazenado em mídias

de armazenamento com informações mínimas sobre o que e quando foi armazenado. Apesar da simplicidade de implementação, torna-se difícil recuperar as informações caso necessário.

Já um repositório global e incremental armazena várias cópias do dado. Originalmente, uma cópia de segurança completa é feita, de todos os arquivos. Posteriormente, cópias incrementais podem ser feitas, somente dos arquivos que foram modificados desde a última iteração de cópia incremental ou completa. Restaurar o sistema a um certo momento requer localizar a cópia completa obtida antes do momento dado e todas as cópias incrementais realizadas entre a cópia completa e o momento. Esse modelo oferece um alto nível de segurança de recuperação, e pode ser usado com diferentes tipos de dispositivos de armazenamento. Por outro lado, desvantagens incluem lidar com diferentes cópias incrementais e altos requisitos de armazenamento.

Num repositório global e diferencial, após a cópia de segurança completa ser feita, cada cópia diferencial captura todos os arquivos criados ou modificados desde a cópia completa, apesar de alguns já poderem ter sido incluídos numa cópia diferencial anterior. Sua vantagem é que a restauração envolve recuperar somente a última cópia de segurança completa e a última cópia diferencial.

Um repositório mirror (espelho) e rsync (reversamente incremental) é similar ao global e incremental, mas difere na medida em que oferece uma cópia que reflete o estado dos dados da última cópia de segurança e a história reversa das cópias incrementais. Um benefício é requerer somente uma cópia completa. Cada cópia incremental é imediatamente aplicada à cópia espelho e os arquivos que ela modifica são movidos para a cópia reversamente incremental. Esse modelo não é adequado para dispositivos de armazenamento removíveis pois cada cópia de segurança deve ser feita comparando-se com a cópia espelho.

Já num modelo de proteção contínua dos dados, o sistema registra imediatamente cada mudança nos dados, o que é geralmente feito diferenças de bytes ou blocos de bytes e não de arquivos.

Page 8: Material Prova - NP1

DispositivoAlém do modelo de repositório, os dados devem ser armazenados num

dispositivo de armazenamento determinado.Fitas magnéticas são há tempos o meio mais comum, tendo uma relação de

capacidade por custo maior do que discos rígidos. Por ter o acesso sequencial, o tempo de acesso aos dados é grande, mas o desempenho da escrita e leitura contínua pode ser favorável. Entretanto, a capacidade e o preço dos discos rígidos vêm melhorando, tornando-os competitivos em relação às fitas. Suas vantagens são o tempo de acesso, a disponibilidade, a capacidade e a facilidade de uso. Discos rígidos externos pode ser conectados através de interfaces locais como SCSI, USB, FireWire ou eSATA, ou interfaces remotas como Ethernet, iSCSI ou Fibre Channel.

Outra opção são discos ópticos. Por exemplo, a vantagem do CD é que ele pode ser restaurado em qualquer máquina com um leitor de CD-ROM, e as mídias são relativamente baratas. Diversos formatos de discos ópticos permitem somente uma gravação dos dados, mais adequado para cópias de segurança. Tecnologias recentes como o Blu-ray aumentaram consideravelmente a capacidade de armazenamento, ainda que também aumentando os custos.

Durante a década de 1980 e o começo da década de 1990, a cópia pessoal de segurança estava associada ao uso de disquetes, que acabaram se tornando obsoletos devido a baixa capacidade de armazenamento.

Dispositivos SSD como memória flash, USB flash drive, CompactFlash, SmartMedia, Memory Stick e Secure Digital Card são relativamente caros para sua baixa capacidade, mas oferecem grande portabilidade e facilidade de uso.

Por fim, há a opção de armazenamento remoto, que está ganhando popularidade com a banda larga. Garante muita segurança para os dados, mas uma desvantagem e a baixa velocidade de conexão pela Internet em relação aos dispositivos apresentados anteriormente, o que pode se tornar relevante no caso de grande volume de dados. Um risco associado é delegar o controle da cópia de segurança a outros.

RecuperaçãoNa eventualidade de ocorrência de incidente, os dados devem ser repostos,

recorrendo então à informação armazenada na cópia de segurança. A recuperação dos dados deverá ser efectuada rapidamente e de forma eficiente, para que os serviços não se encontrem inactivos por muito tempo. A prioridade da reposição dos dados deve ser estabelecida, conforme as necessidades da organização.

LICENÇAS DE SOFTWARES

Entenda o que é software livre e outras licenças de softwares.

Software Livre: qualquer programa que tem a liberdade de ser usado, copiado, modificado e redistribuído. Opõe-se ao conceito de software proprietário. Pode ser vendido ou disponibilizado gratuitamente. Um caso é o da Red Hat que comercializa o Red Hat Enterprise Linux. A possibilidade de modificações implica na abertura de seu código fonte. A maioria dos softwares livres é licenciada como GNU GPL ou BSD.

GPL: a Licença Pública Geral GNU acompanha os pacotes distribuídos pelo Projeto GNU (General Public License). É a mais utilizada, sendo adotada pelo Linux. Ela impede que o software seja integrado em um software proprietário e garante os direitos autorais. Não permite que as liberdades originais sejam limitadas, nem que sejam impostas restrições que impeçam a distribuição da mesma forma que foram adquiridos.

Page 9: Material Prova - NP1

BSD: a licença BSD foi inicialmente utilizada nos softwares da Berkeley Software Distribution. Ela impõe poucas restrições sobre as formas de uso, alterações e redistribuição do software e, por isso, é chamada de copycenter. O programa pode ser vendido e não precisa incluir o código fonte.

Software em Domínio Público: o autor do software relega a propriedade do programa e este se torna bem comum, ou seja, não possui copyright. Entretanto, o autor pode restringir que modificações sejam feitas.

Copyleft: retira barreiras à utilização, difusão e modificação do software, mas impedem a utilização não-autorizada. Ele requer que as alterações sejam livres, passando adiante a liberdade de copiá-lo e modificá-lo novamente.

Software proprietário: é aquele cuja cópia, redistribuição ou modificação são proibidos pelo autor em determinado grau. É necessário solicitar permissão ou pagar para utilizar. Pode ser freeware, shareware, trial ou demo.

Freeware: software proprietário que é disponibilizado gratuitamente, mas não pode ser modificado.

Shareware: é o software disponibilizado gratuitamente por um período de tempo ou com algumas funções abertas, mas que implica no posterior pagamento pela sua licença.

Trial: versão de teste de vários softwares. É disponibilizada algumas funções, geralmente por 30 dias, para que o usuário experimente o programa para saber se ele atende às suas necessidades.

Demo: versão de demonstração, semelhante ao Trial. É possível usar o programa por um tempo ou com apenas algumas funções disponíveis.

Software Comercial: é o software desenvolvido com o objetivo de lucrar.

Open Source: o software de código aberto é aquele que disponibiliza seu código fonte e restringe-se aos termos técnicos da questão. Pode ser livre, ou proprietário. Algumas empresas como IBM, HP, Intel e Nokia investem em software de código aberto.

Page 10: Material Prova - NP1

TESTE DE SOFTWARE

O teste do software é a investigação do software a fim de fornecer informações sobre sua qualidade em relação ao contexto em que ele deve operar. Isso inclui o processo de utilizar o produto para encontrar seus defeitos.

O teste é um processo realizado pelo testador de software, que permeia outros processos da engenharia de software, e que envolve ações que vão do levantamento de requisitos até a execução do teste propriamente dito.

Técnicas de testeO teste do software é um processo realizado pelo testador de software que

permeia outros processos da Engenharia de Software, e envolve ações que vão do levantamento de requisitos (necessidades) até a execução do teste propriamente dito. O objetivo, por paradoxal que pareça, é encontrar defeitos nos produtos, para que estes possam ser corrigidos pela equipe de programadores, antes da entrega final. A maioria das pessoas pensa que o teste de software serve para demonstrar o correto funcionamento de um programa, quando na verdade ele é utilizado como um processo da engenharia de software para encontrar defeitos.

O processo de teste de software é voltado para o alcance de um nível de qualidade de produto, que durante o processo de desenvolvimento de software muda conforme avanço das atividades - requisitos, protótipos, modelo de dados lógico, modelo de dados físico, código-fonte, módulos funcionais e finalmente um sistema.

O conceito de teste de software pode ser compreendido através de uma visão intuitiva ou mesmo de uma maneira formal. Existem atualmente várias definições para esse conceito. De uma forma simples, testar um software significa verificar através de uma execução controlada se o seu comportamento corre de acordo com o especificado. O objetivo principal desta tarefa é encontrar o número máximo de erros dispondo do mínimo de esforço, ou seja, mostrar aos que desenvolvem se os resultados estão ou não de acordo com os padrões estabelecidos.

Não se pode garantir que todos os programas funcionariam corretamente, sem a presença de erros humanos, visto que os mesmos muitas vezes possuem um grande número de estados com fórmulas, atividades e algoritmos complexos. O tamanho do projeto a ser desenvolvido e a quantidade de pessoas envolvidas no processo aumentam ainda mais a complexidade.Falhas podem ser originadas por diversos motivos, como os listados abaixo:

* A especificação pode estar errada ou incompleta. * A especificação pode conter requisitos impossíveis de serem implementados, devido a limitações de hardware ou software. * Talvez a base de dados esteja organizada de forma que não seja permitido distinguir os tipos de usuário. * Pode ser que haja um erro no algoritmo de controle dos usuários * Pode ser que haja erros no código, o algoritmo pode estar implementado de forma errada ou incompleta.

Portanto, uma falha é o resultado de um ou mais defeitos em algum aspecto do sistema.

O teste de software pode ser visto como uma parcela do processo de qualidade de software. A qualidade da aplicação pode, e normalmente, varia significativamente de sistema para sistema, mas os atributos qualitativos previstos na norma ISO 9126 que são: funcionalidade, confiabilidade, usabilidade, eficiência, manutenibilidade e portabilidade.

Um desenvolvimento organizado de software tem como premissa uma metodologia de trabalho. Esta deve ter como base conceitos que visem à construção de um produto de software de forma eficaz. Dentro desta metodologia

Page 11: Material Prova - NP1

estão definidos os passos necessários para chegar ao produto final esperado. Esse é o campo de estudos da Qualidade de Software, uma sub-área da Engenharia de Software.

Assim, quando se segue uma metodologia para o desenvolvimento de um produto de software espera-se um produto final que melhor agrade tanto aos clientes quanto ao próprio fornecedor, ou seja, a empresa de desenvolvimento.

Observando este aspecto, não faz sentido iniciar a construção de um produto de software sem ter uma metodologia de trabalho bem solidificada e que seja do conhecimento de todos os envolvidos no processo. Porém, além de uma crescente demanda por softwares de qualidade, as empresas de desenvolvimento de software sofrem cada vez mais pressão por parte dos clientes para que o produto seja entregue num curto período de tempo. Este fato pode fazer com que uma sólida metodologia de trabalho acabe por se desequilibrar.Independentemente da metodologia de trabalho empregada no desenvolvimento de um software, para que se obtenha um produto final com certo nível de qualidade é imprescindível a melhoria dos processos de engenharia de software.

Uma maneira viável para se assegurar a melhoria de tais processos seria tomar como base modelos sugeridos por entidades internacionais respeitadas no assunto. Dentro de uma gama de modelos, sejam eles para situações e ambientes específicos ou para soluções genéricas, existem alguns que são mais utilizados e tidos como eficientes, como por exemplo, os SW-CMM, SE-CMM, ISO 15504 e o mais conhecido CMMI.

Outro fator com grande influência sobre a qualidade do software a ser produzido é o que diz respeito aos testes que serão executados sobre tal produto. Todas as metodologias de desenvolvimento de software têm uma disciplina dedicada aos testes. Atualmente esta é uma tarefa indispensável, porém muitas vezes efetuada de maneira ineficiente, seja pelo subestimar dos que desenvolvem, pela falta de tempo ou mesmo pela falta de recursos humanos e financeiros.

Técnicas de Teste

Atualmente existem muitas maneiras de se testar um software. Mesmo assim, existem as técnicas que sempre foram muito utilizadas em sistemas desenvolvidos sobre linguagens estruturadas que ainda hoje têm grande valia para os sistemas orientados a objeto. Apesar de os paradigmas de desenvolvimento ser completamente diferentes, o objetivo principal destas técnicas continua a ser o mesmo: encontrar falhas no software. Abaixo estão descritas duas técnicas bastante conhecidas.

Caixa-BrancaTécnica de teste, também chamada de Teste Estrutural, que avalia o

comportamento interno do componente de software. Essa técnica trabalha diretamente sobre o código-fonte do componente de software para avaliar aspectos tais como: teste de condição, teste de fluxo de dados, teste de ciclos e teste de caminhos lógicos. Os aspectos avaliados nesta técnica de teste dependerão da complexidade e da tecnologia que determinarem à construção do componente de software, cabendo, portanto avaliação de mais aspectos que os citados anteriormente. O testador tem acesso ao código fonte da aplicação e pode construir códigos para efetuar a ligação de bibliotecas e componentes. Este tipo de teste é desenvolvido analisando-se o código fonte e elaborando-se casos de teste que cubram todas as possibilidades do componente de software.

Caixa-PretaTécnica de teste, também chamado de Teste Funcional, em que o

componente de software a ser testado é abordado como se fosse uma caixa-preta, ou seja, não se considera o comportamento interno do mesmo. Dados de entrada são fornecidos, o teste é executado e o resultado obtido é comparado a um resultado esperado previamente conhecido.

Page 12: Material Prova - NP1

O componente de software a ser testado pode ser um método, uma função interna, um programa, um componente, um conjunto de programas e/ou componentes ou mesmo uma funcionalidade. A técnica de teste de Caixa-Preta é aplicável a todas as fases de teste - fase de teste de unidade (ou teste unitário), fase de teste de integração, fase de teste de sistema e fase de teste de aceitação.

A aplicação de técnicas de teste leva o testador a produzir um conjunto de casos de teste (ou situações de teste). A aplicação combinada de outra técnica - Técnica de Particionamento de Equivalência (ou uso de Classes de Equivalência) permite avaliar se a quantidade decasos de teste produzida é coerente. A partir das classes de equivalência identificadas, o testador irá construir casos de teste que atuem nos limites superiores e inferiores destas classes, de forma que um número mínimo de casos de teste permita a maior cobertura de teste possível.

Fases de TesteTeste de Unidade - Também conhecida como Teste Unitário. É a fase do

processo de teste em que se testam as menores unidades de software desenvolvidas ( pequenas partes ou unidades do sistema). O universo alvo desse tipo de teste são os métodos dos objetos ou mesmo pequenos trechos de código. Assim, o objetivo é o de encontrar falhas de funcionamento dentro de uma pequena parte do sistema funcionando independentemente do todo. Geralmente o teste de unidade é realizado pelo desenvolvedor utilizando alguma ferramenta, como o JUnit.

Teste de Integração - Na fase de teste de integração o objetivo é encontrar falhas provenientes da integração interna dos componentes de um sistema. Geralmente os tipos de falhas encontradas são de envio e recebimento de dados. Por exemplo, um objeto A pode estar aguardando o retorno de um valor X ao executar um método do objeto B, porém este objeto B pode retornar um valor Y, desta forma gerando uma falha. Não faz parte do escopo dessa fase de teste o tratamento de interfaces com outros sistemas (integração entre sistemas). Essas interfaces são testadas na fase de teste de sistema, apesar de, a critério do gerente de projeto, estas interfaces podem ser testadas mesmo antes de o sistema estar plenamente construído..

Teste de Sistema - Na fase de Teste de Sistema o objetivo é executar o sistema sob ponto de vista de seu usuário final, varrendo as funcionalidades em busca de falhas. Os testes são executados em condições similares - de ambiente, interfaces sistêmicas e massas de dados - àquelas que um usuário utilizará no seu dia-a-dia de manipulação do sistema. De acordo com a política de uma organização podem ser utilizadas condições reais de ambiente, interfaces sistêmicas e massas de dados.

Em casos especiais de processos de desenvolvimento de software - Sistemas Operacionais, Sistemas Gerenciadores de Bancos de Dados (SGBD), e outros softwares comerciais disponibilizados no mercado nacional e internacional - os testes requerem fases também especiais antes do produto ser disponibilizado a todos os usuários.

SOFTWARE PRODUTO X SOFTWARE PROJETO

Software como Produto

Apesar de ser um conceito estranho e muito pouco falando é muito importante se você quer criar um software que possa ser replicado para vários clientes ou interessados.

Page 13: Material Prova - NP1

O produto tem um enfoque diferente: tentar atender a grande maioria de clientessendo  sempre generalista ao nicho que ele ataca. Porém, quem paga a conta para fazê-lo é o próprio dono do software.

Software como projeto

Tipo de software que se aplica a apenas um cliente e é este quem patrocina todo o processo de desenvolvimento.

Existe apenas um projeto vinculado ao software para atender as expectativas de apenas um cliente/usuário, assim, este cliente/usuário, define no software todas as suas regras particulares de negócio.

Comparativo:

Projeto:

Específico, o projeto só atende 1 cliente/propósito Pago pelo cliente Pouco flexível: não é feito para ter extensões e tem poucas configurações Pouco evolutivo: normalmente é lançada apenas 1 versão que é a entregue

ao cliente Deve ir encontro às necessidades direta ao cliente Já vendido

Produto:

Generalista: serve para vários clientes/propósitos : um nicho Pago pela empresa/dono/comunidade Muito flexível: deve permitir configurações, customizações e extensões Requer evolução constante: o produto sempre recebe melhorias, correções e

novas funcionalidades Estima-se o que a maioria dos clientes precisa e o que vai ser interessante É argumento para venda

DADO X CONHECIMENTO X INFORMAÇÃO

Dado É qualquer elemento identificado em sua forma bruta que, por si só, não conduz a uma compreensão de determinado fato ou situação. (Oliveira, 2005)

Elemento que representa eventos ocorridos na empresa ou circunstâncias físicas, antes que tenham sido organizados ou arranjados de maneira que as pessoas possam entender e usar. (ROSINI e PALMISANO, 2003).

Os dados emergem da percepção inicial do observador sobre a natureza do objeto: são identificados por características visuais ou simbólicas, mensuráveis.

Page 14: Material Prova - NP1

Os dados são um conjunto de números, caracteres, imagens ou outro tipo de símbolos;

Os dados podem ser humanos ou processados por uma entrada em um computador, armazenados e tratados lá, ou transmitidos (saída) para outro computador ou ser humano.

Os dados podem ser obtidos pela percepção através dos sentidos (por exemplo, observação) ou pela execução de um processo de medição. 

Informação É o dado trabalhado que permite ao executivo tomar decisões. (Oliveira, 2005)Dado configurado de forma adequada ao entendimento e à utilização pelo ser humano(ROSINI e PALMISANO, 2003).

Aquilo que leva à compreensão. São dados organizados de modo significativo, sendo subsídio útil à tomada de decisão.    

As informações são o resultado dos dados devidamente tratados, comparados, classificados, relacionáveis entre outros dados servindo para tomada de decisões e para melhor noção do objeto estudado.

Informação é o resultado do processamento, manipulação e organização de dados de tal forma que represente uma modificação (quantitativa ou qualitativa) no conhecimento do sistema (pessoa, animal ou máquina) que a recebe.

Conhecimento É o conjunto de ferramentas conceituais e categorias usadas pelos seres humanos para criar, colecionar, armazenar e compartilhar a informação. (LAUDON e LAUDON,1999).

Definições e compreenções que a pessoa já tem sobre o mundo. Referencial teórico. Modelo da realidade a partir de informações construídas com base em dados observados.

Argumentos e explicações que interpretam um conjunto de informações. Trata-se de conceitos e raciocínios lógicos essencialmente abstratos que interligam e dão significado a fatos concretos.

Page 15: Material Prova - NP1

PRINCIPAIS ARTIGOS DA LEI 9.609.

Art. 1o Programa de computador é a expressão de um conjunto organizado de instruções em linguagem natural ou codificada, contida em suporte físico de qualquer natureza, de emprego necessário em máquinas automáticas de tratamento da informação, dispositivos, instrumentos ou equipamentos periféricos, baseados em técnica digital ou análoga, para fazê-los funcionar de modo e para fins determinados.

Art. 2o O regime de proteção à propriedade intelectual de programa de computador é o conferido às obras literárias pela legislação de direitos autorais e conexos vigentes no País, observado o disposto nesta Lei.

§ 1o Não se aplicam ao programa de computador as disposições relativas aos direitos morais, ressalvado, a qualquer tempo, o direito do autor de reivindicar a paternidade do programa de computador e o direito do autor de opor-se a alterações não-autorizadas, quando estas impliquem em deformação, mutilação ou outra modificação do programa de computador, que prejudiquem a sua honra ou a sua reputação.

§ 2o Fica assegurada a tutela dos direitos relativos a programa de computador pelo prazo de cinqüenta anos, contados a partir de 1o de janeiro do ano subseqüente ao da sua publicação ou, na ausência desta, da sua criação.

§ 3o A proteção aos direitos de que trata esta Lei independe de registro.§ 4o Os direitos atribuídos por esta Lei ficam assegurados aos estrangeiros

domiciliados no exterior, desde que o país de origem do programa conceda, aos brasileiros e estrangeiros domiciliados no Brasil, direitos equivalentes.

§ 5o Inclui-se dentre os direitos assegurados por esta Lei e pela legislação de direitos autorais e conexos vigentes no País aquele direito exclusivo de autorizar ou proibir o aluguel comercial, não sendo esse direito exaurível pela venda, licença ou outra forma de transferência da cópia do programa.

§ 6o O disposto no parágrafo anterior não se aplica aos casos em que o programa em si não seja objeto essencial do aluguel.

Art. 6o Não constituem ofensa aos direitos do titular de programa de computador:

I – a reprodução, em um só exemplar, de cópia legitimamente adquirida, desde que se destine à cópia de salvaguarda ou armazenamento eletrônico, hipótese em que o exemplar original servirá de salvaguarda;

II – a citação parcial do programa, para fins didáticos, desde que identificados o programa e o titular dos direitos respectivos;

III – a ocorrência de semelhança de programa a outro, preexistente, quando se der por força das características funcionais de sua aplicação, da observância de preceitos normativos e técnicos, ou de limitação de forma alternativa para a sua expressão;

IV – a integração de um programa, mantendo-se suas características essenciais, a um sistema aplicativo ou operacional, tecnicamente indispensável às necessidades do usuário, desde que para o uso exclusivo de quem a promoveu.

Page 16: Material Prova - NP1

PRINCIPAIS PAPEIS NO PROCESSO DE DESENVOLVIMENTO

Gerente de projetosUm gerente de projetos é um profissional no campo de gerência de projetos

que tem a responsabilidade de planejar e controlar a execução de projetos em diversas áreas de atuação, como a construção civil, arquitetura e desenvolvimento de software, entre outras áreas. É o profissional responsável pela condução do projeto e deve contar com o respaldo de patrocinadores (sponsors, segundo a nomenclatura PMI), normalmente indivíduos que estejam fora do projeto a ser executado.

O gerente e sua equipe de projetos planejam e coordenam o desenvolvimento do projeto colhendo métricas, suprindo necessidades, recrutando recursos adequados e mantendo o foco na meta de projeto, além de:

estar sempre alerta, mas não avesso a mudanças; ser sensível a aspectos políticos: os interesses dos stakeholders nem sempre

convergem; agendar reuniões, acompanhar o treinamento, avaliar o desempenho de sua

equipe e mantê-la motivada, resolvendo conflitos.

Analista de SistemasProfissional que tem como função coordenar o desenvolvimento, atualização

e manutenção dos sistemas de informação. É o contato entre as organizações e o sistema de computadores, sendo o responsável pela política de aquisições, desenvolvimento e manutenção das instituições. Deve possuir nível superior com alguma especialização em informática.

Analista de Teste/TestadorO papel Analista de Teste é responsável por inicialmente identificar e

posteriormente definir os testes necessários, monitorar a abrangência dos testes e avaliar a qualidade geral obtida ao testar os Itens de Teste-alvo. Este papel também envolve a especificação dos Dados de Teste necessários e a avaliação do resultado dos testes conduzidos em cada ciclo de teste. Às vezes, este papel também é denominado Designer de Teste ou considerado parte do papel Testador. Este papel é responsável por:

Identificar os Itens de Teste-alvo a serem avaliados pelo esforço de teste Definir os testes apropriados necessários e quaisquer Dados de Teste

associados Coletar e gerenciar os Dados de Teste Avaliar o resultado de cada ciclo de teste

DBAO Administrador de banco de dados é o responsável por manter e gerenciar

um banco de dados ou sistemas de bancos de dados, profissional comumente chamado de DBA (do inglês DataBase Administrator). Tem como funções:Recuperabilidade

Criação e testes de backup para garantir a recuperabilidade dos dados no caso de falha de hardware ou outros problemas severos.Integridade

Verificar e zelar pela integridade do banco de dados.Segurança

Ter um controle de acesso aos dados como quem pode acessar e o que pode acessar e talvez quando possa acessar.Disponibilidade

Garantir o acesso ao banco de dados no maior tempo possivel.Desempenho

Garantir o máximo de desempenho para o banco de dados.

Auxilio em desenvolvimento e testes

Page 17: Material Prova - NP1

Auxiliar a equipe de desenvolvimento e a equipe de testes a maximizar o uso e desempenho do banco de dados.

DesenvolvedorEm computação, programador ou desenvolvedor de software refere-se a

alguém que faz programação de computadores e desenvolve software.Um programador pode ser alguém que desenvolve ou faz manutenção de

software em um grande sistema mainframe ou alguém que desenvolve software primariamente para uso em computadores pessoais.