seminário-confiabilidade

38
 Confiabilidade de Software Tania F atima Cal vi T ait Processo de Engenharia de Software III 

Transcript of seminário-confiabilidade

  • Confiabilidade de Software

    Tania Fatima Calvi Tait

    Processo de Engenharia de Software III

  • Confiabilidade de softwareRoteiro de apresentao:

    Conceito de confiabilidadeMedidas de confiabilidade e disponibilidadeModelos de confiabilidadeDimenses da confiana do softwareConfiabilidade Desempenho e confianaRazes para a confiabilidade de softwareDisponibilidadeSeguranaProteoSistemas crticosSistema crtico de seguranaSistema crtico de missoSistema crtico de negcios

  • usandousandoConfiabilidade de softwareConfiabilidade de softwaremedida e estimadadados histricos e de desenvolvimentopode ser

  • Confiabilidade de softwareEm termos estatsticos, a confiabilidade de software definida como:a probabilidade de operao livre de falhas de um programa de computador num ambiente especfico durante determinado tempo(Musa et al, 1987 in Pressman (1995).DEFINIO:FalhasaborrecimentoscatastrofesNo conformidade aos requisitos de software

  • Confiabilidade de softwareMtricas de confiabilidade:

    Tempo mdio de ocorrncia de falhasTempo mdio at a ocorrncia de falhasTempo mdio de reparo

    Taxa de ocorrncia de falha.Probabilidade de falha sob demanda

    Disponibilidade

    Mtrica donmero de falhas do sistemaMtricas de tempoou nmero de transaesTempo gasto parareparar oureiniciar o sistemaClassificao geral

  • Confiabilidade de softwareMedidas de confiabilidade e disponibilidade de softwareMTBF = MTTF + MTTR

    MTBF tempo mdio de ocorrncia de falhas (mean time between failure)MTTF tempo mdio at a ocorrncia de falha (mean time to failure)MTTR tempo mdio de reparo (mean time to repair)Disponibilidade = MTTF --------------------------- x 100%(MTTF + MTTR)

  • Confiabilidade de softwareProbabilidade de falhas sob demanda (POFOD):

    A probabilidade de o sistema falhar quando um pedido de servio feito.Uma POFOD de 0,0001 significa que um entre mil pedidos de servios pode resultar em falha.

    POFOD probability of failure on demandTaxa de ocorrncia de falha (ROCOF):

    A frequncia com que um comportamento inesperado pode ocorrer.Uma ROCOF de 2/100 significa que duas falhas tm possibilidade deocorrer em cada cem unidade operacionais de tempo. Essa medida=Intensidade de falhas.

    ROCOF Rate of failure occurrence

  • Confiabilidade de softwareModelos de confiabilidade de softwareModelos que prevm a confiabilidade como uma funo cronolgica(calendrio)

    Modelos que prevm a confiabilidade como uma funo do tempode processamento transcorrido( tempo de execuo da CPU).

  • Confiabilidade de softwareDimenses da confiana do softwareconfianadisponiblidadeconfiabilidadeseguranaproteoFonte: (Sommerville, 2003)A capacidade do sistema disponibilizar servios quando necessrio... disponibilizar servios conformeespecificado...operar sem falhascatastrficas...se proteger contra invasoacidental ou deliberada

  • Confiabilidade de software

    altos nveis de confiana de software somente podem ser alcanados custa do desempenho do sistema

    Refletindo...Dimenses da confiana do software: confiabilidade

  • Confiabilidade de softwareUm software confivel inclui:

    Cdigo extra (redundante; para verificar os estados excepcionaisdo sistema e para possibilitar a recuperao necessria a partirdas falhas do sistema)Aumento da capacidade de armazenamento

    X

    Reduo do desempenho

  • Confiabilidade de softwareRazes pelas quais a confiana um atributo importante:Sistemas no confiveis (no apresentam segurana ouso inseguros) no so utilizados;Os custos de falhas em um sistema podem ser enormes; difcil readequar a confiana;Frequentemente possvel compensar a falha de desempenho do sistema;5.Sistemas no confiveis podem causar a perda das informaes.

  • Confiabilidade de softwareA confiabilidade do produto de software influenciada peloprocesso de software utilizado para desenvolver o produto.

    Um processo orientado no sentido de evitar defeitos poderdesenvolver um sistema confivel.

  • Dimenses da confiana do software: disponibilidadeConfiabilidade de softwareDisponibilidade: a probabilidade de um sistema, em determinado instante, ser operacional e fornecer os servios requeridos.

    A confiabilidade implica a disponibilidade se um servio especificado no for prestado, o sistema no estar se comportando de acordo com sua especificao.

  • Confiabilidade de softwareA disponibilidade no depende do sistema em si, mas do tempo necessrio para reparar os defeitos que tornam o sistema indisponvel.

  • Confiabilidade de softwareA confiabilidade comprometida com a ocorrncia de falhas no sistema.Abordagens complementares para melhorar a confiabilidade de um sistema:Evitar defeitos; (tcnicas de desenvolvimento)Deteco e excluso de defeitos; (tcnicas de verificao e validao)Tolerncia a defeitos (tcnicas de tolerncia a falhas)

  • Confiabilidade de softwareTerminologia da confiabilidade

    TermoDescrioFalha do sistemaUm evento que ocorre em algum momento, quando o sistema no fornece o servio como esperado por seus usurios.Erro do sistemaComportamento errneo do sistema, quando o comportamento do sistema no atende sua especificao.Defeito do sistemaUm estado incorreto do sistema, ou seja, um estado do sistema que inesperado para seus projetistas.Erro ou engano humanoComportamento humano que resulta na introduo de defeitos no sistema.

  • Confiabilidade de softwareOs defeitos de software causam falhas de software quando o cdigocom defeito executado com um conjunto de entradas que expemo defeito.Conjunto de entradas

    Conjunto de sadas

    programaIeOeEntradas quecausam sadaserrneasSadas errneas

  • Dimenses da confiana do software: seguranaConfiabilidade de software

    A segurana de um sistema um atributo que reflete a capacidade do sistema de operar normal e anormalmente,sem ameaar as pessoas ou o ambiente.

    Quando a segurana um atributo essencial de um sistema crtico,esse sistema um sistema de segurana crtica.Exemplos:Sistemas de controle de aeronaves;Sistemas de controle de processos em indstrias qumicas;

  • Confiabilidade de softwareControle de hardware e controle de software: complexidade

    Exemplo: monitoramento de aeronaves militares avanadas

  • Confiabilidade de softwareClasses de softwares crticos de segurana:

    Software crtico de segurana primriaEsse um software que embutido como um controlador emum sistema. A disfuno desse software pode causar umadisfuno de hardware, o que resulta em ferimentos em pessoas ou dano ambiental.

    Software crtico de segurana secundriaEsse um software que pode indiretamente resultar emferimentos. Exemplo: banco de dados de um mdico erro pode resultar em dose errada de medicamento.

  • Confiabilidade de softwareA confiabilidade e a segurana do sistema esto relacionadas, mas so atributos de confianas distintos.

    Os sistemas que apresentam tolerncia a defeitos no sonecessariamente seguros.

  • Confiabilidade de softwareRazes pelas quais os sistemas de software que so confiveisno so necessariamente seguros:

    1. A especificao pode estar incompleta, pelo fato de no descrevero comportamento exigido do sistema em algumas situaes crticas; (dificuldades com requisitos).

    2. As disfunes de hardware podem fazer com que o sistema se comporte de maneira imprevisvel e apresentar o software em um ambiente no previsto.

    3. O operador do sistema pode gerar entradas que no so individualmente corretas, que, em determinadas situaes, podemlevar a uma disfuno do sistema. (mecnico e software para levantartrem de aterrissagem)

  • Confiabilidade de softwareChaves para garantir a segurana:

    Evitar o perigo;

    Detectar e eliminar o perigo; (vlvula de alvio)

    Limitar o prejuzo. (extintores de incndio automticos)

  • Dimenses da confiana do software: proteoConfiabilidade de software

    A proteo de um sistema uma avaliao do ponto em que o sistema protege a si mesmo de ataques externos.

    Exemplo: ataque por vrus; uso no autorizado de servios do sistema; modificao no autorizada do sistema ou de seus dados.Sem um nvel razovel de proteo, a disponibilidade, aconfiabilidade e a segurana do sistema podero ser comprometidos, se ataques externos provocarem algum dadoao sistema.

  • Confiabilidade de softwareErros no desenvolvimento de um sistema podem levara falhas na proteo. Exemplo de fraquezas:

    Sistema no responde a entradas inesperadas;

    Seus limites no so verificadosAlto nvel de proteo:Sistemas militares;Sistemas de comrcio eletrnico;Sistemas de processamento e intercmbio de informaesconfidenciais.

  • Confiabilidade de softwareDanos provocados por ataques externos:

    1. Interrupo de servio; afeta a disponibilidade do sistema.

    2. Corrupo de programas ou dados;afeta a confiabilidade e a segurana.

    3. Revelao de informaes confidenciais; afeta a disponibilidade e a confiabilidade.

  • Confiabilidade de softwarePara assegurar a proteo de um sistema:

    1. Evitar a vulnerabilidade;No conexo a uma rede pblica.

    2. Detectar e neutralizar ataques;Verificador de vrus.

    3. Limitar a exposio.Cpias regulares do sistema e poltica de gerenciamento de configurao.

  • Confiabilidade de softwareUso da InternetMais conexesMais facilidade de ataquesAtributo relacionado ao uso da Internet: sobrevivncia. a capacidade de um sistema continuar a prestar serviosenquanto sob ataque e, potencialmente, parte do sistemaest incapacitada.

  • Resistncia a ataques;

    Reconhecimento de um ataque;

    Recuperao a partir dos danos provocados pelo ataque..Confiabilidade de softwareAbordagens para assegurar a proteo de um sistema:

  • Confiabilidade de software

  • Confiabilidade de softwareTipos de sistemas crticos:

    Sistema crtico de seguranaUm sistema cuja falha pode resultar em ferimentos, na perda de uma vida ou em grande dano ambiental.Exemplo: sistema de controle de fbrica de produtos qumicos.Sistema crtico de missoUm sistema cuja falha pode resultar na falha de alguma atividade orientada a metas.Exemplo: sistema de navegao de aeronaves.

    Sistema crtico de negciosUm sistema cuja fbrica pode resultar no fracasso dos negciosque utilizam o sistema.Exemplo: sistema de contas de cliente de um banco.

  • Confiabilidade de softwareComponentes dos sistemas que esto sujeitos a falhas:

    Hardware de sistemaerros de fabricaofinal de sua vida til

    Software de sistemaenganos na especificao, projeto ou implementao

    Operadores humanosfalhar ao operar o sistema

  • Confiabilidade de softwareClassificao das falhas

    Classe de falhaDescrioTransienteOcorre somente com algumas entradas.PermanenteOcorre com todas as entradas.RecupervelO sistema pode se recuperar sem a interveno do operador.Irrecupervel necessrio a interveno do operador para a recuperao a partir da falha.No corruptvelA falha no corrompe o estado do sistema ou seus dados.CorruptvelA falha corrompe o estado do sistema ou seus dados.

  • Confiabilidade de softwareEspecificao de confiabilidade para um caixa eletrnico(fonte: Sommerville, 2003)

    Classe de falhaExemploMtrica de confiabilidadePermanente, no corruptvelO sistema falha ao operar com qualquer carto que seja inserido. O software deve ser reinicializado para corrigir a falha.ROCOFA ocorrncia/ 1000 diasTransiente, no corruptvelOs dados da fita magntica no podem ser lidos em um carto sem defeito que tenha sido inserido.ROCOF1 em 1000 transaesTransiente, corruptvelUm padro de transaes na rede causa a corrupo do banco de dados.No quantificvel Nunca deve acontecer no tempo de vida til do sistema.

  • Confiabilidade de softwareEspecificao da segurana ciclo de vida de segurana da norma IEC 61508PlanejamentoValidao O&M InstalaoDefinio de conceito e escopoAnlise de perigose riscosDesativao dosistemaOperao emanutenoInstalao eativaoValidao da seguranaDerivao de Requisito de seguranaAlocao de requisito de seguranaDesenvolvimento desistemas relacionadosCom a seguranaRecursos de reduode risco externo

  • Confiabilidade de softwareEspecificao de proteoIdentificao e avaliao de ativos (dados e programas);Anlise de ameaas e avaliao de riscos;Atribuio de ameaas;Anlise de tecnologia;Especificao dos requisitos de proteo.Padres de gerenciamento de proteo esto em desenvolvimento.

  • Confiabilidade de softwareReferncias bibliogrficas:

    Pressman, Roger. Engenharia de Software., So Paulo Makron Books,:1995. Traduo: Jos Carlos Barbosa dos Santos.

    Sommerville, Ian. Engenharia de software. 6a.ed., So Paulo: Addison Wesley, 2003.