Servidor 162.243.7.189
Wikiloc

Conceitos de Engenharia de Software

Técnicas de Desenvolvimento de software
* Define uma estratégia para a construção de visões do sistema em diferentes níveis de abstração.

Top-down:
Parte de elementos mais completos do sistema e desce até os níveis mais detalhados do sistema.

Bottom-up:
Parte de componentes menores do sistema, estes são agrupados para formar os principais componentes do sistema (de mais alto nível)

Middle-out:
* parte de componentes intermediários os elementos mais complexos são compostos e os mais simples são identificados

Fan-In:
* O fan-in de um módulo indica o número de módulos que o utilizam, ou seja, que tem relações de uso com o modulo.
* Um fan-in alto indica que o módulo representa uma abstração bem definida, muito utilizada por outros módulos.

Fan-Out:
* O fan-out de um módulo indica o número de módulos que são utilizados por ele, ou seja, o número de módulos com quem ele tem relações de uso.

Profundidade:
* A profundidade de um diagrama de estruturas indica o número de níveis da arvore (ou DAG) de relações.

Coesão:
* Um módulo com alta coesão realiza uma única tarefa, necessitando de pouca interação com tarefas realizadas em outros módulos
* Em termos práticos, um módulo altamente coeso realiza uma única tarefa, sem precisar executar rotinas de outros módulos.

Acoplamento:
* O acoplamento é uma medida de interconexão entre os módulos de um sistema
* O acoplamento depende da complexidade da interface entre módulos
* O acoplamento é medido entre dois módulos, definindo o grau de dependência entre eles

Visibilidade de Atributos:
* Publica (simbolo +)
– Qualquer classe pode acessar o atributo
* Privada (simbolo -)
– Apenas objetos da classe acessam o atributo
* Protegida (Simbolo #)
– Apenas objetos da classe e seus descendentes acessar o atributo

Associações

Cardinalidade:
* A Cardinalidade indica o número de objetos participando em cada lado da associação
* Indica o número mínimo e máximo de objetos
* Se o máximo for igual ao mínimo, apresenta um único número
* Tipos mais comuns de associação:
1 – Exatamente 1 objeto
0..* – Zero ou mais objetos
1..* – Um ou mais objetos
0..1 – Zero ou mais objetos
4..7,9 – 4,5,6,7 ou 9 objetos

Agregação
Uma agregação é uma associação especial, utilizada quando existe uma relação de contedor-conteúdo entre as classes
Exemplo:
– Um carro contém um motor
– Uma cidade contém bairros

É utilizado um diamante no lado da classe que contém o elemento, no exemplo anterior o diamante estaria no lado do carro.

Auto-relacionamento
Ocorre quando uma classe possui um objeto da mesma classe como atributo, ou seja, quando uma classe possui uma associação ou agregação consigo mesma.
– Um auto-relacionamento é representado por uma linha conectando a classe a si mesma.
– Um auto-relacionamento de agregação possui um “diamante” em um dos lados da linha.

Diagramas da UML

Diagramas de Sequencia

Defeitos de Software

Omissão:
Um ou mais diagramas de projeto que deveria conter algum conceito dos requisitos gerais ou do documento de requisitos não contêm uma representação para o conceito.

Fato Incorreto:
Um diagrama de projeto contém uma representação errada de um conceito descrito nos requisitos gerais ou no documento de requisitos.

Inconsistência:
Uma representação de um conceito em um diagrama de projeto não concorda com uma representação do mesmo conceito no mesmo ou em outro diagrama de projeto.

Ambiguidade:
Uma representação de um conceito no projeto não está clara, e poderia levar o usuário do documento (projetista de baixo nível, desenvolvedor, etc.) a interpretar de forma diferente ou não entender o significado do conceito.

Informação Estranha:
O projeto inclui informação que, enquanto talvez verdadeira não se aplica a este problema e não deveria estar incluída no projeto.

Técnicas para Detecção de Defeitos

Ad-hoc:
Inspetor lê o documento de acordo com a sua perspectiva

Checklist:
Inspetor segue uma lista de itens com características a serem revisadas, mas ainda aplica leitura Ad-hoc para identificar os defeitos.

Arqcheck:
É uma abordagem para a avaliação de documentos arquiteturais baseada em checklists.
Tem como objetivo identificar defeitos em documentos arquiteturais, aumentando a qualidade do software.

Técnicas de leitura:
Desenvolvedores são treinados para escrever artefatos de software mas raramente possuem habilidades para revisá-lo;
Desenvolvedores confiam em técnicas ad-hoc e não seguem um procedimento bem definido.

Tipos de Testes:

– Unidade:

– Integração:

– Regressão:

– Sistema:

– Validação (Aceitação):

– Instalação:

Medições em Engenharia de Software

Métodos Ponderados por Classe (WMC)
é uma métrica que representa a complexidade da classe por meio de seus métodos. O cálculo da métrica é dado pelo somatório das complexidades dos métodos que constituem a classe. Fica em aberto a definição para complexidade.
– A quantidade de métodos de uma classe e a complexidade de tais métodos constituem um indicador do esforço de manutenção da classe.
– Classe com um grande número de métodos têm potencial de reúso limitado, pois tendem a ter um uso especifico da aplicação da qual fazem parte.

Profundidade de Árvore de Herança (DIT)
Indica a posição de uma classe na árvore de herança de um software, que é dada pela distância máxima da classe até a raiz da árvore
– Essa métrica é considerada um indicador da complexidade de desenho e de predição do comportamento de uma classe, visto que quanto maior a profundidade da classe na árvore de herança, mais classes, e portanto mais métodos e atributos, estarão envolvidos na análise.

Número de Filhos (NOC)
Indica a quantidade de sub-classes imediatas de uma classe.
– É um indicador da importância que uma classe tem no sistema, pois quanto mais sub-classes possuir uma classe, maior a importância de seu teste no sistema.

Acoplamento entre Classes de Objetos (CBO)
É um totalizador do número de classes às quais uma determinada classe está acoplada. Para Chidamber e Kemerer, o acoplamento entre duas classes existe quando métodos de uma delas usa métodos ou variáveis da instancia da outra.
– A razão da existência desta métrica é justificada pelos autores pela necessidade de redução de acoplamento entre classes de objetos para atender fatores como melhoria de modularidade e aumento de reusabilidade.

Resposta de Classe (RFC)
Apresenta o resultado do número de métodos que podem ser executados em resposta a uma mensagem recebida por um objeto da classe. Este resultado é dado pela quantidade de métodos da classe somada à quantidade de metodos invocados por cada método da classe.
– Como CBO, é um indicador de conectividade de uma classe. Enquanto CBO mostra a quantas outras classes uma classe está conectada, RFC é um detalhamento desta informação, pois apresenta por quantos caminhos uma classe está conectada a outras classes.

Ausência de Coesão em Métodos (LCOM)
É uma métrica da ausência de coesão entre métodos de uma classe. Chidambler e Kemerer consideram que a coesão entre os métodos de uma classe é definida pela similaridade entre eles.
– Dois métodos de uma classe C são coesos se compartilham variáveis de instância de C.
– Baixos valores para essa métrica indicam bom nível de similaridade, portanto de coesão, entre os métodos da classe avaliada.
– Um valor alto para LCOM indica qual a classe não provem uma funcionalidade bem específica.

Métricas MOOD

– O conjunto de métricas MOOD (Metrics for Object Oriented Design) foi proposto por Abreu & Carapuça em 1994.
– As métricas MOOD avaliam os aspectos de herança, ocultação de informação, acoplamento, polimorfismo e reusabilidade em um software orientado por objetos.
– O cálculo de uma métrica MOOD é dado por uma razão na qual o numerador é o número de ocorrências encontradas no sistema para o aspecto avaliado e o denominador é o maior número possível de ocorrências no sistema para tal aspecto.
– Desta forma, o resultado de qualquer métrica MOOD é sempre um valor entre 0 e 1.
– Esse tipo de resultado fornece uma dimensão para a métrica independente do tamanho do sistema avaliado.

Fator Herança de Método (MIF)
Essa métrica indica o percentual de métodos herdados no sistema.
Seja Ci uma classe do sistema a ser avaliado. Para a definição da métrica MIF, são consideradas as seguintes métricas básicas:
– Métodos herdados: Mh(Ci) São os métodos que uma classe possui em decorrência de herança e que não foram redefinidos na classe.
– Métodos novos: Mn(Ci). São métodos criados na classe, que não foram herdados nem redefinidos.
– Métodos redefinidos: Mr(Ci). São métodos herdados que têm uma redefinição na classe.
– Métodos definidos: Md(Ci). Englobam os métodos novos e os métodos redefinidos na classe.
– Métodos disponíveis: Mdis(Ci). É a totalidade de métodos que uma classe possui, o que engloba métodos definidos nela e os métodos herdados por ela.
– Total de classes do sistema: TC

* O cálculo de MIF é realizado da seguinte forma: para cada classe do sistema, verifica-se a quantidade de métodos herdados e a quantidade de métodos disponíveis.
– Uma valor de MIF igual a zero informa que o sistema não utilizou o recurso de herança de métodos, ou se usou a herança foram todos os métodos redefinidos.

Fator Herança de Atributo (AIF)
Indica o percentual de atributos herdados no sistema. Um raciocínio similar ao realizado no calculo do fator herança de métodos é realizado para o fator herança de atributos AIF.
O valor de AIF é dado pela razão entre o somatório do número de atributos herdados (TAh) de cada classe do sistema e o somatório do número de atributos disponíveis (TAdis) de cada classe do sistema

Métricas para Avaliação de Ocultação de Informação:
– A ocultação de informação é um conceito importante relacionado à modularidade, pois a sua aplicação potencializa a independência de módulos.
– Quanto mais ocultos os serviços e as informações de uma classe, menor a necessidade de as demais classes conhecerem sua organização interna e, consequentemente, mais fraco é o nível de interdependência entre as classes.
– Uma classe deve ser conhecida somente pelos serviços que ela disponibiliza.
– Na orientação por objetos, a ocultação de informação é obtida principalmente pelo uso de atributos e métodos privados nas classes.

Fator Ocultação de Método (MHF)
Esta métrica representa o percentual de métodos ocultos no sistema. Para seu cálculo, as seguintes métricas básicas são definidas considerando-se Ci uma classe qualquer do sistema a ser avaliado.
– Métodos visíveis: Mv(Ci). São os métodos que constituem a interface da classe.
– Métodos ocultos: Mo(Ci). São os métodos privados da classe.
– Métodos definidos: Md(Ci). São os métodos visíveis e os métodos ocultos da classe.

* O MHF é a razão entre o número de métodos ocultos em todas as classes e o número de métodos definidos em todas as classes.

Fator de Ocultação de Atributo (AHF)
Essa métrica é o percentual de atributos ocultos no sistema. Similarmente a MHF, o cálculo de AHF é dado pela razão entre o número de atributos ocultos em todas as classes e o número de atributos definidos em todas as classes.
Ao – número de atributos ocultos na classe.
Ad – número de atributos disponíveis na classe.

Métrica para Acoplamento:

O Conjunto MOOD define a métrica COF (Fator Acoplamento) como um indicador do grau de conectividade do software.
– COF (Fator Acoplamento): para a avaliação de acoplamento considera-se o conceito de relação cliente-servidor entre as classes constituintes de um software.
– Segundo esse conceito, uma classe A é cliente de uma classe B quando A referencia pelo menos um membro de B, seja este membro um atributo ou um método.
– Uma relação cliente-servidor entre duas classes corresponde à existência de uma conexão entre elas. Em um software com n classes, o maior numero possível de conexões é n(n-1).
– A métrica COF é dada pela razão entre o numero total de conexões existentes entre as classes do software e o maior número possível de conexões para o software. Um software totalmente conectado possui COF=1.
– COF é uma métrica impostante, pois indica quão conectado é um software. Um software fortemente conectado possui estrutura rígida, baixo grau de independência entre os módulos e, consequentemente, o custo na sua manutenção é explosivo.

Modelo OSI

Quando as redes de computadores surgiram, ainda não existia uma padronização, por isso as soluções eram proprietárias, o que abrigava cada fabricante implementar todos dispositivos de uma rede.
Por esse motivo o cliente ficava dependente das soluções desenvolvidas por apenas um fabricante, e a interconexão entre redes era um grande problema.

Para facilitar a interconexão entre redes de computadores a ISO (International Standards Organization) desenvolveu o modelo OSI (Open Systems Interconnection) para que os fabricantes criassem protocolos a partir desse modelo.

As camadas do modelo OSI podem ser vistas na figura a seguir, vale lembrar que esta modelo é teórico, nenhum dos protocolos existentes, como por exemplo TCP/IP, IPX/SPX ou NetBEUI seguem esse modelo a risca, eles são baseados no padrão OSI e implementam algumas das camadas propostas pelo modelo.

Para a transmissão de dados cada camada recebe as informações passadas pela camada superior, acrescenta as informações pelas quais é responsável e passa os dados para a camada imediatamente inferior. Esse processo é conhecido por encapsulamento. No recebimento dos dados o processo é realizado ao contrario, a camada de baixo recebe os dados, e após tratar-los passa para a camada imediatamente superior.

As camadas do modelo OSI também podem ser divididas em três grupos: o grupo de aplicação que abrange as camadas de sessão, apresentação e aplicação, transporte que abrange apenas a camada de transporte e o grupo de rede que abrange as camadas física, enlace(link de dados) e de rede, está divisão está mostrada na figura a seguir.

A seguir será apresentado os detalhes de cada uma das camadas do modelo OSI:

Camada 7 – Aplicação

A camada de Aplicação também chamada de Camada 7 do modelo OSI é a responsável pela interface entre o aplicativo e o protocolo de comunicação.

Protocolos da Camada de Aplicação
HTTP, SMTP, FTP, SSH, RTP, Telnet, SIP, RDP, IRC, SNMP, NNTP, POP3, IMAP, BitTorrent, DNS e Ping sendo está a camada que possui mais protocolos implementados.

Camada 6 – Apresentação

A camada de Apresentação também conhecida com camada de Tradução é responsável pela conversão do dados recebidos da camada de Aplicação e que serão transmitidos pela rede, convertendo os dados num formato entendido pelo protocolo que está sendo utilizado.
Alem da conversão de dados esta camada pode realizar as funções de compressão e criptografia dos dados que serão enviados.

Camada 5 – Sessão

A Camada de Sessão é responsável por permitir que duas aplicação em computadores diferentes estabeleçam uma sessão de comunicação.
Na transmissão as aplicações definem como será feita a transmissão dos dados, e colocam marcações nos dados que estão sendo transmitidos para ter controle em caso de falhas na rede, com isso o transmissor sabe quais dados devem ser reenviados. Esta transmissão de dados pode ser feita de duas formas Half-duplex ou Full-duplex. Na Half-duplex a conexão interliga somente duas estações na rede, havendo um canal ponto-a-ponto entre elas, quando um nó transmite o outro recebe, um de cada vês; na Full-duplex uma estação pode estabelecer um canal entre vários hosts na rede a fim de enviar uma mensagem em broadcast para as demais estações.
Um dos protocolos usado nessa camada é o RPC (Remote Procedure Call) que trata as sincronizações (checkpoints) de transferência de arquivos.

Camada 4 – Transporte

No processo de envio esta camada é responsável por dividir em pacotes os dados recebidos da Camada de Sessão e após repassa os dados para a Camada de Rede. No receptor esta camada é responsável por pegar os pacotes recebidos da Camada de Rede e remontar o dado original para enviá-lo à Camada de Sessão.
O processo de montagem dos pacotes recebidos inclui o controle de fluxo (colocar os pacotes recebidos em ordem, caso tenham chegados fora de ordem) e correção de erros, o que geralmente é controlado através do envio para o transmissor de um pacote de reconhecimento (acknowledge), informando que o pacote foi recebido com sucesso.
Esta camada também é responsável por separar as camadas de nível de aplicação (Camadas 5 a 7) das camadas de nível físico (Camadas de 1 a 3).
Alguns dos protocolos dessa camada incluem: TCP (Transmission Control Protocol), UDP(User Datagram Protocol), RTP(Real-time Transport Protocol), SCTP(Stream Control Transmission Protocol). Eu escrevi um artigo detalhando melhor essa camada, acesse neste link http://www.adonai.eti.br/wordpress/2011/03/camada-de-transporte-transport-layer/

Camada 3 – Rede

A Camada de Rede é responsável pelo endereçamento dos pacotes, convertendo endereços lógicos em endereços físicos, de forma que os pacotes consigam chegar corretamento ao destino.
Esta camada também determina a rota (roteamento) que os pacotes irão seguir até chegar o destino, baseada em fatores como condições de tráfego da rede e prioridades.
Está camada é a responsável por definir como fragmentar um pacote em tamanhos menores tendo em vista o MTU (Maximum Transmision Unit) da rede utilizada.
Alguns dos protocolos usados nessa camda são: IP, ICMP, ARP, RARP, IGMP, RIP, OSPF
Os protocolos da Camada de Rede podem ser classificados em 3 grupos: Protocolos Roteáveis, Protocolos de Roteamento e Protocolos Não-Roteáveis, a seguir será detalhado cada um deles.

* Protocolos Roteáveis: São protocolos que especificam o endereçamento lógico referente à camada inter-rede. Os endereços especificados por estes protocolos são utilizados para a decisão de encaminhamento de um pacote. Alguns exemplo desses protocolos são o IP, IPX e o AppleTalk.

* Protocolos de Roteamento: São responsáveis pelo preenchimento da tabela de roteamento. Esses protocolos especificam como as rotas serão aprendidos e divulgadas a outros roteadores, por isso são protocolos utilizados pelos roteadores. Alguns dos protocolos são o RIP (Routing Information Protocol) e o OSPF (Open Shortest Path First).

* Protocolos Não-Roteáveis: Um protocolo não-roteável é um protocolo que não pode ser encaminhado por roteadores. Geralmente isso ocorre com protocolos que não rodam sobre um protocolo de camada 3 (Rede).
Alguns exemplos de protocolos não-roteaveis são: NetBIOS e o NetBEUI.

Camada 2 – Enlace ou Link de Dados

Esta camada pega os dados recebidos da camada de Rede e os transforma em quadros que serão enviados pela rede, adicionando informações como o endereço da placa de rede de origem, o endereço da placa de rede de destino, dados de controle, os dados em si e o CRC.
No receptor esta camada é responsável pela verificação dos dados recebidos, refazendo o CRC. Se os dados estão corretos, é enviado uma confirmação de recebimento (chamada de acknowledgeou simplesmente ack). Caso essa confirmação não seja recebida, a camada de enlace do transmissor reenvia o quadro, já que ele não chegou até o receptor ou então chegou com os dados corrompidos.
Alguns dos protocolos usados nessa camada são: PPP (Point-to-Point Protocol), HDLC (High-Level Data Link Control) e o ADCCP (Advanced Data Communication Control Procedures).

Camada 1 – Camada Física

A Camada Física é responsável por converter os quadros enviados pela Camada de Enlace em sinais compatíveis com o meio que serão transmitidos, como por exemplo sinais elétricos para um meio elétrico, ou sinais luminosos para fibra óptica.

Protocolos da Camada de Rede
IP (Internet Protocol): Recebe segmentos de dados da camada de transporte e os encapsula em datagramas, é um protocolo não confiável por não exigir confirmação.
ICMP (Internet Control Message Protocol): É um padrão TCP/IP necessário, são documentos regidos IETF que estabelecem os padrões de cada protocolo com o ICMP os hosts e roteadores que usam comunicação IP podem relatar erros e trocar informações de status e controle limitado.
ARP (Address Resolution Protocol): Permite certo computador se comunicar com outro computador em rede quando somente o endereço de IP é conhecido pelo destinatário.
RARP (Reverse Address Resolution Protocol): Faz o contrario do protocolo ARP, ao invés de obter o informações como o MAC e o IP de máquinas remotas, o protocolo RARP requisita informações para a própria maquina. Foi substituido pelo DHCP e pelo BOOTP.
IGMP (Internet Group Management Protocol): É usado por hosts para reportar seus participantes de grupos de hosts a roteadores multicast vizinhos, é um protocolo assimétrico.

Provas de Concursos

Instituto Movens – DNPM 2010
37) O modelo de camadas OSI foi idealizado para padronizar os meios de interconexão de sistemas, permitindo
que diferentes produtos, de diferentes empresas, se comuniquem entre si. Por esse motivo, sistemas que seguem o modelo OSI são chamados de abertos. Esse modelo é dividido em camadas, o que traz muitas vantagens, como:
– interfaces padronizadas permitem a interoperabilidade entre diferentes produtos;
– o desenvolvimento de uma camada não interfere no funcionamento de outra;
– diminui a complexidade do problema, permitindo focar o desenvolvimento de cada camada separadamente.

A respeito do modelo OSI e de suas camadas, assinale a opção INCORRETA.
(A) A camada de apresentação realiza a formatação dos dados antes de enviá-los para a camada de aplicação.
(B) A camada de rede é responsável por determinar a rota que a informação deve seguir, desde o remetente até o receptor.
(C) A camada de transporte interage diretamente com as camadas de rede e de sessão.
(D) A camada de física realiza controle de fluxo, podendo mudar a ordem em que os dados serão transmitidos.
(E) É função da camada de enlace detectar e notificar erros na comunicação.

Gabarito: D
Quem realiza o controle de fluxo é a Camada de Transporte.

Quadrix – Dataprev 2011 – Rede de Telecomunicações
31) O modelo de referência OSI para redes de computadores é composto de camadas. Qual das alternativas melhor representa a terceira camada ou camada de redes?
(A) Uma parte de hardware chamada de Placa de Rede
(B) Um slot PCI do computador
(C) Um conjunto de funções do sistema operacional
(D) O cabo UTP que interconecta os computadores
(E) Um controlador de sinais elétricos

Gabarito: C

Tipos de Backup

Neste artigo vou abordar os tipos de backup que são utilizados para evitar a perda de dados. São 3 os tipos principais: Completos, Diferenciais e Incrementais, a Microsoft apresenta no seu aplicativo outras duas terminologias que irei apresentar também: o Diário e o Cópia

Backup Completo ou Normal

Nessa opção é realizada a cópia de todos os arquivos que estão no disco. Essa forma costuma ser utilizada na primeira vez que é criado o conjunto de backup inicial e nos seguintes é utilizada as opções Diferencial ou Incremental.

Vantagens: É mais fácil localizar os arquivos pois sempre estão no último backup realizado, a recuperação é mais simples, pois necessita recuperar apenas o conteúdo do último realizado.
Desvantagens: Essa forma é mais demorada, pois copia sempre todos os arquivos, com isso ocorre muito desperdício de armazenamento pois faz backup de arquivos que não foram alterados após o último backup realizado.

Backup Diferencial

No Diferencial são copiados apenas os arquivos que foram alterados após o último Backup Completo ou Incremental. Essa forma não marca os arquivos como salvos em backup (o atributo de arquivo não é desmarcado) por isso a cada Backup Diferencial todos os arquivos que foram alterados são copiados novamente.

Vantagens: A recuperação é mais simples, pois exige apenas o último Backup Completo e o último Diferencial que foram realizados.
Desvantagens: Os backups Diferenciais são mais lentos e maiores que os do tipo Incremental.

Backup Incremental

Um Backup Incremental copia somente os arquivos criados ou alterados desde o último Backup Completo ou Incremental. Essa forma MARCA os arquivos que passaram por backup (o atributo de arquivo é desmarcado). Se você utilizar uma combinação dos Backups Completo e Incremental, precisará do último conjunto de Backup Completo e de todos os conjuntos de Backups Incrementais realizados posteriormente para restaurar os dados.

Vantagens: Requer a menor quantidade de armazenamento para os dados.
Desvantagens: A restauração completa do sistema pode levar mais tempo do que se for usado o Backup Completo e o Diferencial.

Backup Cópia

O Backup Cópia é um termo utilizado pela ferramenta de backup da Microsoft, ele copia todos os arquivos selecionados, mas não os marca como arquivos que passaram por backup (ou seja, o atributo de arquivo não é desmarcado). A cópia é útil caso você queira fazer backup de arquivos entre os Backups Completo e o Incremental, pois ele não afeta essas outras operações de backup.

Backup Diário

Um backup diário copia todos os arquivos selecionados que foram modificados no dia da execução do Backup Diário. Os arquivos não são marcados como arquivos que passaram por backup (o atributo de arquivo não é desmarcado).

Na figura a seguir é exemplificado uma forma de utilização dos Backups Completo, Diferencial e Incremental.

Formas de Utilizacao do Backup

A seguir alguns links interessantes sobre o assunto:
Tipos de Backup – Microsoft
Backup e Restauração no Windows 7

RAID (Redundant Array of Independent Disks)

Neste artigo irei apresentar os detalhes básicos de cada tipo de RAID (Redundant Array of Independent Disks) que em português significa Conjunto Redundante de Discos Independentes. Os tipos de RAID existentes são os seguintes:

RAID 0 (Data Striping)

No RAID 0, os dados são divididos e gravados distribuídos em todos os discos que compõem o conjunto RAID, isso permite que a gravação e o acesso aos dados sejam mais rápidos, mas existe a desvantagem que na falha de qualquer um dos discos os dados são inteiramente perdidos, pois não existe a redundância dos dados.

Arranjo dos Discos no RAID 0

RAID 1 (Mirroring)

No RAID 1 os dados são totalmente duplicados entre os discos, no caso de falha de um deles o sistema segue funcionando normalmente. Nesse arranjo de discos ocorre a desvantagem que não é possível somar os tamanhos dos discos, já que um disco é copia do outro, também aumenta o tempo de escrita pois é necessário gravar os dados em dois discos.

Arranjo dos Discos no RAID 1

RAID 2

O RAID 2 é um sistema de RAID já obsoleto, pois ele veio para implementar a checagem de erros implementando o algoritmo de Hamming ECC (error Correcting Code) e atualmente os próprios discos já possuem essa tecnologia, o que dispensa o uso do RAID 2.

RAID 2

RAID 3

O RAID 3 é uma simplificação do RAID 2, nesta versão é necessário apenas um disco para controle da paridade.

RAID 3

RAID 4

O RAID 4 funciona com 3 ou mais discos iguais, um dos discos guarda as informações de paridade, caso um dos discos venha a falhar ele pode ser reconstruído utilizando as informações do disco de paridade. Essa técnica de RAID não é mais utilizada pois existe formas melhores de se obter o mesmo resultado.

RAID 4

RAID 5

O RAID 5 é muito utilizado atualmente, ele funciona similarmente ao RAID 4, mas nessa arquitetura as informações de paridade são distribuidas em todos os discos do conjunto, com isso esse padrão consegue um desempenho maior.

RAID 5

RAID 6

Esse padrão é uma evolução do RAID 5, ele utiliza o dobro da quantidade de bits de paridade, garantindo a integridade dos dados caso até 2 dos HDs venham a falhar simultaneamente.

RAID 6

RAID 01 (RAID 0+1)

Essa versão é a combinação dos níveis 0 (Striping) e 1 (Mirroring), com isso é possível ter desempenho do RAID 0 e segurança oferecida pelo RAID 1. No caso que um disco venha a falhar o sistema vira um RAID 0.

RAID 0+1

RAID 1+0

O RAID 1+0 ou RAID 10, cada par de discos é espelhado sendo montado em RAID 1, e os conjuntos de discos são montados em RAID 0. Esse é RAID recomendado para bancos de dados, por se o mais seguro e um dos mais velozes.

RAID 1+0

RAID 50

Esse é um arranjo hibrido do RAID 5 com o RAID 0, conforme visto na figura abaixo.

RAID 50

RAID 100

O RAID 100 basicamente é composto do RAID 10+0. Normalmente ele é implementado utilizando uma combinação de software e hardware, ou seja, implementa-se o RAID 0 via software sobre o RAID 10 via Hardware.

RAID 100