• Nenhum resultado encontrado

03-03EngSoft(SistemasCríticos)

N/A
N/A
Protected

Academic year: 2021

Share "03-03EngSoft(SistemasCríticos)"

Copied!
33
0
0

Texto

(1)

Engenharia de Software

Prof. Wilkerson de L. Andrade

Versão resumida e traduzida dos slides originais produzidos por Ian Sommerville, Software Engineering, 7th edition. Chapter 3.

Estes slides foram adaptados dos slides gentilmente cedidos pela professora Patrícia D. L. Machado (DSC/UFCG).

(2)

Sistemas Críticos

Sistema Crítico de Segurança (Safety-critical systems) Falhas resultam em perda de vida, injúria ou dano ao meio ambiente; Exemplo: Sistema de controle de uma fábrica de produtos químicos Sistema Crítico de Missão (Mission-critical systems) Falhas resultam em falha de alguma atividade dirigida a metas; Exemplo: Sistema de navegação de aeronaves Sistema Crítico de Negócio (Business-critical systems) Falhas resultam em grandes perdas econômicas; Exemplo: Sistema de contas de cliente em um banco.

(3)

Fidedignidade/Confiança

(Dependability)

• Propriedade mais importante para sistemas

críticos.

• Reflete o grau de confiança dos usuários de que o sistema vai operar como esperado e não vai falhar em usos normais.

• Utilidade e Fidedignidade não são a mesma

coisa: um sistema não precisa ser fidedigno para ser útil.

(4)

Importância da Fidedignidade

• Sistemas que não são fidedignos e são

inseguros e desprotegidos podem ser rejeitados por seus usuários;

• Os custos de uma falha podem ser muito

altos;

• Sistemas não fidedignos podem causar

perda de informações cujos custos para recuperação sejam impraticáveis.

(5)

Métodos de Desenvolvimento

para Sistemas Críticos

• Os custos de falhas em sistemas críticos são tão altos que compensa usar métodos de

desenvolvimento cujos custos seriam injustificáveis para outros sistemas.

• Exemplos de métodos de desenvolvimento:

▫ Métodos Formais

▫ Análise Estática

(6)

Sistemas Sociotécnicos Críticos

• Falha de Hardware

▫ Hardware falha devido a erros de projeto e manufatura ou porque componentes tenham ultrapassado seu tempo natural de vida.

• Falha de Software

▫ Software falha devido a defeitos em sua

especificação, design e/ou implementação.

• Falha Operacional

▫ Operadores humanos comentem erros.

Atualmente a provável maior causa de falhas em sistemas.

(7)

Uma bomba de insulina

controlada por software

• Usada por diabéticos para simular a função do pâncreas que manufatura insulina, um

hormônio essencial que metaboliza a glicose do sangue.

• Mede a glicose do sangue usando um

micro-sensor e computa a dose de insulina necessária para metabolizar a glicose.

(8)

Organização da Bomba de Insulina

Conjunto de agulhas Sensor Display1 Display2 Alarme Bomba Relógio Controlador Fornecimento de energia Reservatório de insulina

(9)

Fluxo de Dados da Bomba de Insulina

Sangue Insulina Parâmetros de sangue Comandos de controle de bomba Bomba de Insulina Sensor de açúcar Análise do açúcar no sangue Nível de açúcar no sangue Insulina necessária Controlador de liberação de insulina Cálculo de insulina necessária

(10)

Requisitos de Fidedignidade

(Disponibilidade) O sistema deve liberar

insulina quando requisitado;

(Confiabilidade) O sistema deve liberar a

quantidade correta de insulina de acordo com o nível real de açúcar no sangue;

(Segurança) Doses excessivas de insulina

não devem ser administradas visto que são potencialmente perigosas para a vida

(11)

Fidedignidade

• Um sistema fidedigno é aquele no qual seus

usuários confiam;

• As principais dimensões de Fidedignidade são:

Disponibilidade (Availability);

Confiabilidade (Reliability);

Segurança (Safety);

(12)

Dimensões de Fidedignidade

Fidedignidade

Disponibilidade Confiabilidade Segurança Proteção

Habilidade do sistema se proteger contra ataques acidentais ou intencionais. Habilidade do sistema operar sem falha catastrófica Habilidade do sistema prover serviços como especificado. Habilidade do sistema prover serviços quando requisitado

(13)

Outras propriedade de Fidedignidade

• Reparabilidade

▫ Reflete a capacidade do sistema ser consertado na ocorrência de uma falha

• Manutenibilidade

▫ Reflete a capacidade do sistema se adaptar a novos requisitos;

• Sobrevivência

▫ Reflete a capacidade do sistema de realizar seus serviços mesmo sobre ataque hostil;

• Tolerância a erros

▫ Reflete a capacidade de erros do usuário poderem ser evitados ou tolerados.

(14)

Custos de Fidedignidade

• Tendem a aumentar exponencialmente a

medida que aumentam os níveis de Fidedignidade requeridos

• Motivos:

▫ O uso de técnicas de desenvolvimento de alto

custo e hardware necessários para atingir altos níveis de fidedignidade

▫ O crescente uso de teste e validação a fim de

convencer o cliente de que os níveis de Fidedignidade requeridos foram atingidos.

(15)

Custos de Fidedignidade

Cu

sto

Baixa Média Alta Muito Ultra-alta Alta

(16)

Economia de Fidedignidade

• Devido aos altos custos para atingir

Fidedignidade, pode ser mais efetivo aceitar sistemas sem Fidedignidade e pagar pelas falhas (Cômodo);

• No entanto, isto depende de fatores sociais e políticos. Reputação de produtos que não

podem ser confiáveis pode levar a perdas futuras no negócio;

• Depende do tipo de sistema – para sistemas de negócio, níveis modestos de Fidedignidade

(17)

Terminologia de Confiabilidade

(Reliability)

Termo Descrição

Falha de sistema

Um evento que ocorre em algum momento, quando o sistema não fornece um serviço conforme esperado por seus usuários.

Erro de sistema

Um estado errôneo de sistema que pode levá-lo a um comportamento inesperado pelos seus usuários.

Defeito de sistema

Uma característica do sistema de software que pode levar a um erro de sistema. Por exemplo, a falha em iniciar uma variável pode levar a um valor errado quando esta for usada.

Erro humano ou engano

Comportamento humano que resulta na introdução de defeitos em um sistema.

(18)

Atingindo Confiabilidade

• Evitar Defeitos

▫ Técnicas de desenvolvimento que são usadas para minimizar a possibilidade de erros, evitando a

introdução de defeitos no sistema. • Detectar e Remover Defeitos

▫ Técnicas de Verificação e Validação que aumentam a probabilidade de detecção e correção de defeitos

antes que o sistema entre em operação • Tolerância a Defeitos

▫ Técnicas de tempo de execução usadas para

garantir que defeitos no sistema não vão resultar em erros do sistema e/ou que erros do sistema gerem falhas.

(19)

Modelagem de Confiabilidade

• Um sistema pode ser modelado como um

mapeamento de entrada-saída, onde algumas entradas podem resultar em saídas errôneas;

• A confiabilidade do sistema é a probabilidade de que uma entrada em particular faz parte de um conjunto de entradas que podem resultar em saídas errôneas;

• Pessoas diferentes usam um sistema de diferentes formas de tal forma que esta

probabilidade não é um atributo estático do

(20)

Mapeamento de Entrada/Saída

Ie Conjunto de entradas Oe Conjunto de saídas Programa

Entradas que causam saídas errôneas

(21)

Percepções de Confiabilidade

Entradas possíveis Usuário 1 Usuário 3 Usuário2 Entradas errôneas

(22)

Melhoria de Confiabilidade

• Remoção de X% de defeitos do sistema não irá necessariamente melhorar a confiabilidade em X%;

• Um estudo da IBM mostra que remover 60% de defeitos de um produto resultou em 3% de

melhoria de confiabilidade;

• Alguns defeitos podem ser executadas raramente;

• Um software com poucos defeitos podem ainda assim ser visto como não confiável por seus

(23)

Segurança (Safety)

• Segurança é uma propriedade do sistema

que reflete a habilidade do sistema de operar normalmente ou de forma anormal, sem

causar danos a vidas humanas ou morte e sem danos ao ambiente;

• É cada vez mais importante considerar esta propriedade, visto que a dependência por dispositivos controlados por software

aumenta cada vez mais;

• Requisitos de segurança são exclusivos, i.e., excluem situações não desejadas ao invés de especificar serviços desejados.

(24)

Segurança e Confiabilidade

• São relacionadas, mas distintas

▫ Confiabilidade e Disponibilidade são necessárias, mas não suficientes para a segurança do sistema

• Confiabilidade está relacionada com a conformidade com relação a uma

especificação de serviços

• Segurança está relacionada com garantir

que um sistema não pode causar danos independente deste estar ou não em

(25)

Sistemas Confiáveis e Inseguros

• Erros de Especificação

▫ Se a especificação do sistema está incorreta

então o fato do sistema se comportar conforme a mesma pode causar acidentes.

• Falhas de hardware podem gerar entradas

inapropriadas

▫ Difícil antecipar isto em uma especificação.

• Comandos sensíveis ao contexto, i.e. ativar um comando correto na hora errada

▫ Frequentemente causado por um erro do

(26)

Terminologia de Segurança

Termo Descrição

Acidente (ou desgraça)

Evento ou sequencia de eventos não planejados que resulta em morte ou ferimento de humanos, danos à propriedade ou ao ambiente. Ex.: Uma máquina controlada por computador que fere seu operador.

Perigo Condição com potencial para causar ou contribuir para um acidente. Ex.: A falha de um sensor que detecta um obstáculo em frente de uma máquina

Dano Medida de perda resultante de um acidente. Um dano pode variar desde a morte de pessoas como resultado de um acidente até ferimentos de pouca importância ou danos à propriedade.

Severidade do perigo

Avaliação do pior dano possível que poderia resultar de determinado perigo. A severidade do perigo pode variar de catastrófica até pequenos danos.

Probabilidade de perigos

Probabilidade de ocorrência de eventos que criam um risco. Valores de probabilidade tendem a ser arbitrários, mas variam de provável (1/100) a implausível.

Risco É a medida da probabilidade de que o sistema causará um acidente. O

risco é avaliado considerando-se a probabilidade do perigo, a severidade do perigo e a probabilidade de que o perigo resultará em um acidente.

(27)

Obtendo Segurança

Evitar Perigo (Hazard)

▫ O sistema é projetado para que algumas classes

de perigo não possam acontecer

• Detecção e Remoção de Perigo

▫ O sistema é projetado para que perigos possam

ser detectados e removidos

• Limitação de Perigos

▫ O sistema inclui características de proteção que minimizam danos que possam resultar de um acidente.

(28)

Acidentes Normais

• Acidentes em sistemas complexos raramente têm uma única causa visto que estes sistemas são projetados para tratar pontos isolados de falhas.

▫ Projetar sistemas que tratem pontos isolados de falhas é um princípio fundamental em sistemas de segurança

• Quase todos os acidentes são resultado de combinações de mal funcionamentos.

• É provável que identificar todas as combinações de problemas, especialmente em sistemas de controle seja uma tarefa impossível.

(29)

Proteção (Security)

• A proteção de um sistema é uma

propriedade que reflete a habilidade do

sistema se proteger contra ataques externos intencionais ou acidentais.

• Proteção está se tornando cada vez

importante devido aos sistemas em rede com acesso externo via Internet.

• Proteção é uma pré-requisito essencial para disponibilidade, confiabilidade e segurança.

(30)

Proteção Fundamental

• Se um sistema em rede é desprotegido

então afirmações sobre sua confiabilidade e segurança não são confiáveis.

• Invasão pode mudar a forma como sistemas

são executados e seus dados são manipulados.

• Portanto, confiabilidade e segurança perdem a validade na ausência de proteção.

(31)

Terminologia de Proteção

Termo Descrição

Exposição Possível perda ou dano no sistema computacional. Pode ser perda ou danos nos dados ou pode ser perda de tempo ou esforço, se a recuperação é necessária após uma brecha na proteção.

Vulnerabilidade Uma fraqueza no sistema baseado em computador que pode ser explorada para causar perda ou dano.

Ataque Uma exploração da vulnerabilidade do sistema. Geralmente parte de fora do sistema e é uma tentativa deliberada para causar

algum dano.

Ameaças Circunstâncias que têm potencial para causar perda ou dano. Você pode pensar nelas como uma vulnerabilidade do sistema que está sujeita a um ataque.

Controle Uma medida de proteção que reduz uma vulnerabilidade do

sistema. Criptografia pode ser um exemplo de controle que reduz a vulnerabilidade de um sistema fraco de controle de acesso.

(32)

Danos resultantes da falta de

Proteção

• Interrupção de Serviços

▫ O sistema é forçado a entrar em um estado onde

seus serviços normais ficam indisponíveis ou a provisão de serviços fica degradada

• Corrupção de Programas ou Dados

▫ Programas ou dados do sistema podem ser

modificados de uma forma não-autorizada

• Revelação de Informações Confidenciais

▫ Informações podem ser expostas a pessoas não

(33)

Garantia de Proteção

• Evitar Vulnerabilidade

▫ O sistema é projetado para que vulnerabilidades não

ocorram. Por exemplo, se não existir conexão com uma rede externa, ataques externos são impossíveis.

• Detecção e Eliminação de Ataques

▫ O sistema é projetado para que ataques em

vulnerabilidades sejam detectados e neutralizados antes de resultar em exposição. Por exemplo, analisadores de vírus encontram e removem vírus que possa infectar um sistema

• Limitação de Exposição

▫ O sistema é projetado para que conseqüências adversas

de um ataque com sucesso sejam minimizadas. Por exemplo, uma política de backups torna possível a restauração de informações.

Referências

Documentos relacionados

A partir deste momento é dada indicação para a seleção da população em estudo e é ativado o envio da medicação pelo promotor, ficando o FH da Unidade de

Repositórios Institucionais de Acesso Livre: estudo de produção e uso | Capítulo 2 comportamento informacional information behaviour como o campo mais geral de investigação,

A presente investigação teve como objetivo geral o estudo dos fatores de risco e de proteção internos e externos utilizados perante a violência social, nomeadamente o bullying

I: hum hum.. 125 M: A forma como intarigir com eles… Saber estar com eles, e essa foi uma das maiores lições. Sabermos nós, saber lidar com eles. Ah, conhece-los mais. No âmbito em

a) Sistema de produto: produção integrada: soja, capim e algodão. O capim é cultivado como espécie formadora de palha; não é colhido ou pastejado, correspondendo, portanto, a um

After the eval- uation of the influence of each modification of the surfaces on the internal air temperatures and energy consumption of the compressor a final test was done with

se a uma forma de comunicação que engloba vários meios para transmitir uma mensagem (Ribeiro, 2004). As aplicações multimédia interactivas ultrapassaram a sua utilização em contexto

Soneto Dormindo vi a cândida Poesia Testemunhos impressos – Obras de Domingos dos Reis Quita, chamado entre os da Arcadia Lusitana Alcino Micenio, segunda edição correcta, e