Você está na página 1de 20

Instituto Politécnico de Castelo Branco

Escola Superior de Tecnologia


Departamento de Engenharia Informática

Sistemas Informáticos Industriais


• Análise de Sistemas

• Bug e Debug

• Tipos de Bugs

• Outros tipos de Bugs

• Métodos de Detecção de Bugs

• Ciclo de vida de um Bug

2
• Identificação:
– Papel do sistema
– Requisitos
• Realizada por Analistas de Sistemas ou
Programadores
• Uma das fases da análise é a
verificação de bugs.

3
• Ocorrência de um erro de fábrica
– Hardware
– Software
• Provém do ano 1945
– Quando foi encontrada uma mariposa num circuito
do MARK II.
• É usado por engenheiros para classificar
pequenas falhas
• Debug
– Processo de depuração de bugs

4
5
• Podem ocorrer em diversas fases
– Fase de requisitos
• Mau entendimento das necessidades dos utilizadores
• Descrição ambígua ou incompleta
• Interface gráfica pobre.
– Fase de análise e desenho
• Arquitectura de software
• Modelo de dados
• Interfaces do sistema
– Fase de Construção
• Implementação inadequada dos algoritmos de
processamento
• Falta da documentação do código
• Deficiente interligação dos componentes
6
• Podem ocorrer em diversas fases
– Fase de requisitos
• Mau entendimento das necessidades dos utilizadores
• Descrição ambígua ou incompleta
• Interface gráfica pobre.
– Fase de análise e desenho
• Arquitectura de software
• Modelo de dados
• Interfaces do sistema
– Fase de Construção
• Implementação inadequada dos algoritmos de
processamento
• Falta da documentação do código
• Deficiente interligação dos componentes
7
• Originados devido:
– Pressão nos prazos de entrega do
software
– Código complexo
– Mudanças na tecnologia
• Condições ambientais
– Radiação
– Magnetismo
– Poluição

8
• Geração de sequências de instruções de forma dinâmica
– Imediatamente antes da execução do programa.

• Complica a introdução de código por parte de terceiros


– Aquando da execução do programa.

• Controlo da probabilidade de distorção do programa por


influências externas
– Através da execução de um programa de correcção automática a
cada X ciclos.
• Geração de código demorada -> Alguma operações
implementadas em Hardware

• Não permite detectar bugs introduzidos pelo


programador no acto de criação do programa

9
• Sistema automático que identifica o
programa ou o módulo do programa
– Pattern Recognition -> coloca dados de entrada
nas classes, responsáveis por extrair os
atributos/propriedades essenciais que
caracterizam estes mesmos dados.

– Classe -> categoria constituída por um número


de propriedades igual para todos os elementos
que lhe pertencem.

10
• Princípios para a subdivisão de elementos
em classes:
– Enumeração dos membros da classe
– Uniformização das propriedades
• Quais as propriedades comuns entre os elementos da
mesma classe.
– Agrupamento

• Bugs existentes no ambiente de software


nem sempre são detectados
– Impossibilidade de determinar os atributos que
caracterizam inequivocamente uma classe

11
• Analisa o software, em termos de
segurança, relativamente à existência de
DPM’s (Destructive Program Means)
– Exemplos de DPM’s: Vírus, Trojan Horses, etc.

• 3 níveis = 3 fases:
– Análise Lexical
– Análise Sintáctica
– Interpretação Semântica

12
• Análise Léxica
– Verificação estática num programa relativamente
à presença de pedaços de código de DPM’s
conhecidos e de outros códigos suspeitos.

• Análise Sintáctica
– Desmonta o código de um programa e faz a
retradução deste em construções algorítmicas
– Faz a comparação destas construções com as
construções de DPM’s conhecidos
• Existentes numa Base de Conhecimento (espécie de Base de
Dados)

13
• Interpretação Semântica
– Inicia os programas num ambiente virtual para a obter os
códigos do programa após a sua auto-encriptação e auto-
extracção.
– Obtenção de um protocolo de desafio/resposta relativo ao
programa e ao seu ambiente operacional

• Vantagem: Uso de uma Base de Conhecimento


– O Volume da Base de Conhecimento indica a qualidade do
meio de detecção de DPM’s

• Desvantagens:
– Impossibilidade de detecção de DPM’s que não estejam na
sua Base de Conhecimento.
– Bugs podem utilizar métodos especiais que os protejam,
na desmontagem e no rastreio do programa
– Possibilidade de que nem todos os ramos de um programa
sejam rastreados 14
• Um sistema computacional isolado =
Sistema protegido!

• Antes da instalação de um sistema de


protecção:
– Verificar a BIOS.
– Verificar o Sistema Operativo.
– Verificar o Software instalado.

15
• Um sistema computacional isolado =
Sistema protegido!

• Antes da instalação de um sistema de


protecção:
– Verificar a BIOS.
– Verificar o Sistema Operativo.
– Verificar o Software instalado.

16
• Um bug deve ter a capacidade de:
– Activar e iniciar
– Continuar em memória principal
– Activação após o reinicio do sistema
– Duplicação – para que se consiga infiltrar
noutras máquinas
– Autodestruição – elimina o código e
indicadores da sua presença

17
• GOANNA

• Software Inteligente de detecção de


bugs:
– CP-Miner
• Falta de informação existente na internet -> os
métodos anteriormente apresentados podem-se
encontrar já desactualizados
– Podendo existir novos métodos que derivem destes e
que forneçam melhores condições no acto da
detecção de bugs.

• Existem vários tipos de bugs, bem como diversas


formas de estes aparecem num programa

• Existem softwares responsáveis por fazer a


detecção da maior parte destes bugs
– Baseados nos métodos anteriormente explicados ou,
baseados em evoluções destes mesmos métodos.

19
Questões?

Você também pode gostar