Paradigmas Confiabilidade

Propaganda
– 3º bimestre ciência da computação pg
Critérios de Avaliação : confiabilidade
1
CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO
LIMEIRA
Fevereiro de 2005
GRUPO FORMADO POR :
Daiane Rosa
Joaze de Oliveira
Luis H. Gallicchio
Vladimir Mauro Jr
Trabalho apresentado como requisito à disciplina de Paradigmas do curso de Ciência
da Computação da UNIP. Professor Willan
============================================================
: Confiabilidade
Um programa é confiável se ele se comporta de acordo com suas especificação sob todas as condições
e para serem avaliados [SEBESTA]:
Confiabilidade na linguagem de programação : e o conjunto de atributos que evidencia a capacidade do
software manter seu nível de desempenho sob condição estabelecidas durante um período de tempo .
tem como características :

maturidade ,

tolerância as falhas

recuperabilidade.
Existe procedimentos e critérios para a confiabilidade, estabelecida em norma
(- ISO.9126 - versão Brasileira NBR 13596 ) que estão dividida em categorias:
1.
2.
3.
4.
Verificação de tipos
Manipulação de exceções
Aliasing
Legibilidade e Capacidade de Escrita
Page 1 of 5
– 3º bimestre ciência da computação pg
Critérios de Avaliação : confiabilidade
2
1. Verificação de tipos
Verificar tipos é testar se existem erros de tipo em determinado programa, ou por meio do compilador
ou durante a execução do programa. [SEBESTA]:
O fundamental para que o software exista como um produto que funcione em máquinas reais e resolva
problemas dos usuários.
A validade de um software é o fator que considera que o software está de acordo com os requisitos
funcionais e não-funcionais que foram determinados durante a etapa de análise e especificação de
requisitos. Um software correto não é necessariamente um software válido, mas a validação requer que
ele esteja correto.[McCall]
As verificações de qualidade são classifica em três categorias:

Verificação operacional - aspectos relacionados com o funcionamento e utilização do
software

Verificação de revisão - relacionados com a manutenção, evolução e avaliação do software

Verificação de transição - relacionados com a instalação, reutilização e interação com outros
produtos
Formas de verificação de programas
Existem diversas formas de verificar se o funcionamento de um programa está correto ou não.

inspeção de programas
A inspeção é uma forma analítica de verificação da correção na qual o código fonte do programa é
analisado diretamente. Ela pode ser :
Estática : é feita mentalmente, num processo no qual o inspetor (que pode ser o próprio programador)
percorre o código executando mentalmente cada uma das instruções.
Dinâmica : é realizada com o auxílio de uma ferramenta de depuração (debugger).

testes de funcionamento
Os testes de funcionamento têm por objetivo a detectar o maior número possível de erros. Deve-se
executar o programa de maneira a forçar certos limites para os erros possam ser encontrados. Os testes
não podem garantir que não existam erros num software, É necessário definir os casos de teste de
maneira que seja possível a serem testados.

prova formal
Para que seja aplicado o método de prova é necessário recorrer às notações matemáticas e requer
condições que devem ser expressas numa notação matemática e regras de prova que podem ser aplicadas
de acordo com as instruções de um programas
Page 2 of 5
– 3º bimestre ciência da computação pg
Critérios de Avaliação : confiabilidade
3
2. Manipulação de exceções
A capacidade de um programa de interceptar erros em tempo de execução, pôr em prática medidas
corretivas e, depois, prosseguir é um grande auxílio para a confiabilidade. Tal facilidade da linguagem
é chamada de manipulação de exceções (também chamada de tratamento de exceções). [SEBESTA]:
Entendendo a manipulação de exceções: denominada Manipulação Estruturada de Exceções (ou SEH Structured Exception Handling), é a de codificar uma ou várias rotinas callback no aplicativo.
Rotinas são denominadas genericamente como manipuladores de exceção (exception handlers). Ao
invés de delegar ao sistema a função de monitorar exceções, podemos gerenciá-las por conta própria,
tornando os aplicativos mais robustos.
Se ocorrer uma exceção, o sistema, ao invés de tratá-la, chamará a rotina callback e a responsabilidade
de tratá-la ficará por conta do aplicativo.
O que se espera é que o manipulador de exceções seja capaz de resolver e corrigir a exceção, mantendo a
execução do aplicativo na mesma área de código onde a exceção ocorreu ou numa "área segura". Em
resumo, deve dar a impressão de que nenhuma anomalia tenha ocorrido - nada de caixa de
mensagens.Caso não seja possível realizar um tratamento adequado, o manipulador de exceções ainda
pode fechar o aplicativo de forma mais elegante que a famigerada "janelinha de erro" após realizar o
máximo de faxina, preservar o máximo de dados e, caso você queira, pedindo as devidas desculpas pelo
transtorno.
Alguns erros são tão graves que o sistema nem consegue redirecionar o tratamento da exceção para o
manipulador. Neste caso, ou aparece a "janelinha de erro" ou... a tela azul do GPF mostrando um "erro
fatal". Neste caso de desastre total, na maioria das vezes, o único remédio é fazer um reboot.
Exceções : Exceções são "pecados" que os programas cometem. O código "mal comportado" que
gera uma exceção pode comprometer o funcionamento do sistema operacional o qual, para se precaver,
geralmente interrompe o programa faltoso e apresenta uma mensagem de erro do tipo abaixo.
Page 3 of 5
– 3º bimestre ciência da computação pg
Critérios de Avaliação : confiabilidade
4
3. Aliasing ou Apelidos
Aliasing é ter dois ou mais métodos, ou nomes, distintos para fazer referência à mesma célula da
memória. A maioria das LPs permite algum tipo de aliasing — por exemplo, membros de união e
ponteiros definidos para apontar para a mesma variável em C. Em ambos os casos, duas diferentes
variáveis de programa podem referir-se à mesma célula da memória. [SEBESTA]:
Este tipo de recurso é considerável em linguagem de programação altamente perigoso (conforme
mencionado na pagina 31, Capitulo 1.3.3), porque compartilha a mesma célula de memória. Neste tipo
de recurso você trabalha diretamente com os dados contido em uma célula, e se durante o processo dessa
execução podem trazer erros ao resultado esperado do programa trazendo dificuldades em identificar o
erro.
Exemplos de Apelidos:
- Utilizando variáveis com nomes diferentes, mas com o mesmo endereço de memória, em um programa
tendo duas variáveis sendo A e B apontando para um mesmo endereço de memória, ao trabalhar com a
variável B, no momento em que for alterado o valor automaticamente a variável a passa a ter o mesmo
valor, simplesmente por estar usando o mesmo endereço da memória, isso ocorre muito na passagem de
parâmetros, onde se trabalha com passagem de referência (Pagina 340, Capitulo 9.5.2).
4. Legibilidade e Capacidade de Escrita
Tanto a legibilidade como a capacidade de escrita influencia a confiabilidade. Quanto mais fácil é
escrever um programa, mais probabilidade ele tem de ser correto. . [SEBESTA]:
Legibilidade: é a facilidade de leitura e entendimento de programas escritos em uma determinada
linguagem. Quanto maior a legibilidade de programas, mais fácil é a manipulação dos mesmos para
correção, extensão e melhoramento
Se o programa , não possui a legibilidade, fica difícil de escrever ou de modificar, as causas que
compromete a confiabilidade....
Até 1970 era baseado na escrita de código (implementação). ). Com o conceito de ciclo de vida de
software, foram reservado fases de desenvolvimento (análise, projeto, implementação, manutenção,
...), A codificação foi colocada em um plano menor, dando-se maior ênfase à manutenção, que envolve
correção, extensão e melhoramento de software.
Page 4 of 5
– 3º bimestre ciência da computação pg
Critérios de Avaliação : confiabilidade
5
As formas das palavras reservadas de uma linguagem afetam a aparência e, portanto,
a legibilidade de programas. Principalmente declarações de grupo de instruções, como por exemplo
begin, end e for. C usa chaves para delimitar blocos. Outras linguagens descriminam o tipo de
terminador de bloco, como END IF e END LOOP (Ada, FORTRAN 77, CLIPPER). Outro ponto
importante é a limitação do uso de palavras reservadas para a criação de identificadores.
A forma de uma declaração deve pelo menos parcialmente indicar seu propósito e
significado, melhorando a legibilidade. A semântica (significado) deve derivar diretamente da
sintaxe(forma). Em C, por exemplo, static tem dois significados diferentes. Dentro de uma função, uma
variável static é criada em tempo de compilação. Fora de funções, em um módulo (arquivo), uma
variável static é uma variável global a todos as funções de um módulo.
Bibliografia :
1- Notas de aula de Engenharia de Software - Jair C Leite, 2000
Fonte:http://www.ulbra.tche.br/~lgerber/Paradigmas/Paradigmas_3aAula_23032000.pdf
2- Dialética de Linguagem - Victor Hugo
Fonte:http://www usp.br / medicina / departamneto / patologia /informed / prodcien / test
3 - Conceitos de Linguagens de Programação, Robert W. Sebesta 5ª Edição
Page 5 of 5
Download