6 Workshop do Projeto ATIFS INPE

Documentos relacionados
Verificação e Validação (V & V)

Engenharia de Requisitos

Eliane Martins. Instituto de Computação - Unicamp 6º Workshop do Projeto ATIFS - INPE - 5/12/2003

UnoTech Soluções em Histórico da Revisão Data Versão Descrição Autor 27/05/ 1.0 Construção do Documento Carlos GG Flor Página 2

2

Análise e Projeto Orientado a Objetos

RPC e RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

SISTEMA DISTRIBUÍDO PARA GERENCIAMENTO DE LIBERAÇÃO DE RELEASES DE SOFTWARE

15/04/2013. Pensar Orientado a Objetos. Projeto Orientado a Objetos. Características de Objetos. Classe de Objetos. Comunicação entre Objetos

Qualidade de Software QUALIDADE DE SOFTWARE PRODUTO

Teste de Software. Proj. Desenvolvimento de Software. Prof. Cleverton Hentz. 30 de agosto de Material Apresentado

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

Análise de Requisitos

Teste de Software. Objetivo: Executar software para revelar erros/falhas ainda não descobertos. Pode gastar 40% do esforço de desenvolvimento

SOFTWARE DE APOIO A GESTÃO DE SOLICITAÇÃO DE MUDANÇAS

Manutenção Leitura: Sommerville; Pressman

Frameworks funcionais para JSF que proporciona o desenvolvimento de aplicações computacionais WEB

Documento de Arquitetura de Software- SGE

Banco de Dados. Aula 2 - Prof. Bruno Moreno 19/08/2011

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos

Análise e projeto de sistemas

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

Verificação e Validação

Introdução a Teste de Software

Objetos e Componentes Distribuídos: EJB e CORBA

Neste capítulo será descrito detalhadamente o desenvolvimento do software do sistema FEROS, justificando a escolha das tecnologias envolvidas.

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Prof. Fabiano Papaiz IFRN

Teste de Software. Competência: Entender as técnicas e estratégias de testes de Software

Prof. Ms. Ronaldo Martins da Costa

Professor Emiliano S. Monteiro

Banco de Dados. SGBD - Sistema de Gerenciamento de Banco de Dados Parte 2. Prof. Leonardo Vasconcelos

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.

Utilização de Padrões de Projeto na Arquitetura da FSoFIST

MANUAL PARA DESENVOLVIMENTO DE SOFTWARE TRABALHO DE CONCLUSAO DE CURSO EM SISTEMAS DE INFORMAÇÃO

VERIFICAÇÃO & VALIDAÇÃO

Gerência de Projetos e Qualidade de Software. Prof. Walter Gima

Carlos S. Rodrigues Leonardo Lino Vieira Eric Felipe Barboza Antonio Vasconcellos

WESAAC 2019 SCRUMIE: JOGO ORIENTADO A AGENTES PARA ENSINO DE SCRUM. Suelen Regina Cordeiro dos Santos

Prof. Me. Sérgio Carlos Portari Júnior

Engenharia de Software II

De Olho na Pista. Documento de Arquitetura. De Olho na Pista Documento de Arquitetura Data: 23/03/2013. AJA Software

UTILIZAÇÃO DE TECNOLOGIAS MODERNAS PARA CADASTRAMENTO DAS FAMÍLIAS DA ATENÇÃO BÁSICA DE SAÚDE DO MUNICÍPIO DE COARI

Princípios da Engenharia de Software aula 03

Leitura: Cap : Sommerville; cap20: Pressman

Modelagem Orientada a Objetos

Estratégias de Testes Parte I

Guia do Processo de Teste Metodologia Celepar

TESTES DE SOFTWARE Lista de Exercício 02. Luiz Leão

Uma Arquitetura de Injetor de Falhas Orientada a Aspectos para Validação de Sistemas de Comunicação de Grupo

Descrição Arquitetural

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Título PROCESSO LABES ESPECIALIZADO PARA DESENVOLVIMENTO SEGUNDO O PARADIGMA ESTRUTURADO. Projeto. Analista; Requisitos Funcionais Escopo; Cliente;

Laboratório de Engenharia de Software I

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Qualidade de software. Prof. Emiliano Monteiro

SPEEDMiddleware - MOM

Documento de Especificação de Projeto

Organização para Realização de Teste de Software

PROJETO DE PROGRAMAS. Projeto de Programas PPR0001

Engenharia de Software

3. Engenharia dos requisitos de software

AVALIAÇÃO DE PRODUTOS DE SOFTWARE

Matéria Introdutória. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

5 Fidedignidade Disponibilidade Confiabilidade Segurança Proteção Privacidade Integridade

PROJETO DE PROGRAMAS. Projeto de Programas PPR0001

Engenharia de Software

Engenharia de Software II

As 10 Áreas da Engenharia de Software, Conforme o SWEBOK Prof. Elias Ferreira

Roteiro de Apresentação 1. Introdução Objetivos do Trabalho 2. Fundamentação Teórica 3. Desenvolvimento do Sistema Requisitos principais Especificação

Programação Orientada a Objetos

Engenharia de Software II

6 Conclusão Contribuições da Dissertação

Sistemas Operacionais II

Engenharia de Software Aula 21. Revisão da Prova 2. Eduardo Figueiredo.

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Prof. Esp. Fabiano Taguchi

Medições e métricas de software

Principais conceitos de CORBA

CONCEITOS BÁSICOS E MODELO DE PROJETO

Introdução. O que é um Banco de Dados (BD)?

SSC 0721 Teste e Validação de Software

Medidas de Esforço de Desenvolvimento de Software

Projeto Integrador. <Projeto Integrador> Documento Visão. Versão <1.0>

Requisitos de Sistemas

Prova Discursiva Engenharia de Software

Ferramenta de apoio a Experimentos em Engenharia de Software

Programação orientada a objetos

Qualidade e Certificação em Software. Prof. Cesar 1

pgmodeler: muito mais que um modelador de bancos de dados PostgreSQL

FIGURA 59 Interação entre componentes da plataforma CrystalWalk. Fonte: do autor.

Análise e Projeto de Sistemas

5 Validação do sistema Clairvoyant

especificação por meio de exemplos não é garantia de corretude, mas a experiência mostra que tende a ser melhor do que o estado da prática hoje

Qualidade de Software: Visão Geral. SSC 121-Engenharia de Software 1 Profa. Dra. Elisa Yumi Nakagawa

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Transcrição:

6 Workshop do Projeto ATIFS INPE Doutoranda: Regina Lúcia de Oliveira Moraes Orientadora: Profa. Dra. Eliane Martins Estratégia para Testes de Componentes utilizando Injeção de Falhas 1

Índice Injeção de Falhas Ferramenta de Injeção de Falhas - Jaca Estratégia Proposta Estudo de Caso Aplicação dos Testes Resultados Contribuições, Conclusões e Trabalhos Futuros Injeção de Falhas 2

Terminologia Utilizada Especificação - descrição da função ou serviço esperado do sistema Falha (fault) - causa suposta ou constatada de um erro do sistema Erro (error) - uma falha levará a uma modificação no estado do sistema, estado este denominado erro Defeito (failure) - um erro levará o sistema a apresentar um defeito (difere do especificado) Terminologia Utilizada Validação - processo no qual verifica-se se foram retiradas as falhas do sistema e se avalia medidas de confiabilidade, eficiência dos diversos mecanismos envolvidos. Verificação - tem o objetivo de diagnosticar e eliminar o maior número possível de falhas de projeto/ implementação existente. Avaliação - tem o objetivo de obter medidas da eficiência dos mecanismos de tolerância à falhas do sistema 3

Tipos de Injeção de Falhas Nesse trabalho foi utilizado Injeção de Falhas por Software Modelo FARM Caracteriza os principais atributos da Injeção de Falhas / Erros. 4

Jaca Esquema Lista de Falhas Gerenciador Injetor Interface Controlador Gerenciador Monitor Arquivo de Log Lista de Classes Ativador J a c a Injetor Lógico Injetor Lógico Monitor Lógico Monitor Lógico Injetor Físico Monitor Físico Meta Nível Aplicação. Nível Base Javassist 5

Interface Gráfica Estratégia 6

Seleção dos Objetos Injetar nos Módulos ou Objetos de Maior Risco para a Aplicação Defeitos provocados por falhas de software Módulos / Objetos propensos à falhas introduzidas pelos desenvolvedores Seleção dos Objetos Módulos / Objetos propensos à falhas introduzidas pelos desenvolvedores Complexidade do módulo Criticidade da função do módulo Freqüência de utilização do módulo 7

Seleção dos Objetos Quando código fonte está disponível: Calcule métricas de complexidade (CK) Compare as métricas obtidas com os padrões de valores Escolha as classes que não estejam dentro dos limites Escolha as classes que tenham uma interação direta com o componente Seleção dos Objetos Calcule métricas de complexidade para cada método público das classes escolhidas Escolha os métodos que excedam os limites Para cada método escolhido, escolha os parâmetros e valores de retorno de chamada de métodos (locais de injeção) Para cada local de injeção, de acordo com seu tipo, faça uma especificação de injeção para cada valor crítico. 8

Seleção dos Objetos Quando código fonte não está disponível: Tome o diagrama de classes do software Conte as associações de cada classe do diagrama Escolha as classes que tenham os maiores números de associações com outras classes Escolha as classes que tenham uma interação direta com o componente Escolha classes com número alto de ancestrais ou descendentes diretos Seleção dos Objetos Escolha os métodos públicos e com tipos compatíveis, das classes selecionadas. Para cada método escolhido, escolha os parâmetros e valores de retorno de chamada de métodos (locais de injeção). Para cada local de injeção, de acordo com seu tipo, faça uma especificação de injeção para cada valor crítico. 9

Conjunto F! " # $ #$%% &'! " ( ( $ Conjunto F )! * " +%+% & &,'! * - 10

Conjunto A Forma de Validação Dinâmica & & $( Conjunto A %. / " 0./1 / 234 %(-%./5 11

Conjunto R 6 $ 7. % %$ 8 9 8$ 7 8 (8$%: 7 / 2 % 9 ( 7 Conjunto M % ;( %( % 9 (0 ' 8 ( 17 % %% <(% 9 ( % %% 7 % 9 ( % %% 7 <(% 9 ( %% ( % 7 % 9 ( %% ( % 7 12

Estudo de Caso Ozone Gerenciador de Base de Dados Orientado a Objetos (SGBDOO) Projeto de código aberto (Open Source) distribuído sob a licença LGPL Possibilita a persistência de objetos implementados em Java num ambiente transacional Objetos são programados segundo a sintaxe da linguagem de programação 13

Ozone Baseado numa arquitetura de ativação central (objetos nunca deixam o servidor) Aplicações do cliente conectam-se ao banco de dados usando sockets Clientes referenciam objetos do servidor utilizando um processo análogo ao RMI Objetos proxy são utilizados para controlar os objetos no cliente. Wisconsin OO7 Id = 248590 tipo = tiponum3 data = 3587341 documentação Id_doc = 345 título = documento #27 coment = documento # 27 armazena informações 14

Wisconsin OO7 id tipo data manual raíz_proj Texto do objeto Manual Conjunto Complexo Conjunto Básico Biblioteca de Projeto Classes do Wisconsin OO7 3 < - < ( =" %! %>"! / 2 % @A BC B D 4E % BD BD B D 4E % F F B D 4E % 4 4 B D 4E $" % 4 4 B @ 4E % 4 4 G D <( 4E% * % BB BB G D <( 4E/ "H % A A C D <( 4E% 9 "H C C C D <( % 4E "H % A A G G <( 4E* % BC BC G D <(? %! 15

Métodos das classes " *>" < #*>" *: I -% -% / 2 % <(J $I$LM <(J I <(J $ * <(J N$ 4E % <(J - - 9 9 9I$ 9IN$ 9I$ <(J <(J <(J <(J <(J <(J $ N$ $ % 9 J BB B B B B B B B B K# %! <( <( <( <( <( <( <( Valores Injetados I I/ 2 % % (6% ( OP 5B OP QB OP 5CG4RD 0 % 1 OP QCG4RD 0 % 1 OP SD 0%#1 16

Dados Coletados N 6 - % % %( " " 9 0 (% 6 1 <> %6 <> " 6 % ) H <> " T ) H- / 2" - % 9( U 9 (% %( $6 ;& 6 & 9 > 6 $U % ( 6 * & # & 0 1% '" Resultados 17

Avaliação de Desempenho Média do Desempenho das Funcionalidades do Benchmark 30000 20000 10000 Sem Jaca Com Jaca Com Injeção 0 Criar BD Query Match Query Traversal Sem Jaca 13312 1757 20640 Com Jaca 13557 1883 20009 Com Injeção 13562 1927 19060 Observação do Comportamento do Ozone Testes Efetuados na Primeira Campanha para 18 Pontos de Injeção 100 80 60 40 20 0 1 2 3 4 5 Nº Tests 90 90 90 90 90 Nº Defects 5 0 5 5 0 Nº Tests Nº Defects 18

Observação do Comportamento do Ozone Injeções Efetuadas na Classe de Maior Complexidade (BenchmarkImpl) 40% Defeitos 60% Corretos Contribuições, Conclusões e Trabalhos Futuros 19

Contribuições e Conclusões K #$% % ( 7 $J& " 7 %:U(% +$ %6 ( %7 % / 2 $ (& 6 7 Contribuições e Conclusões $ % (U7 '6 % % & 8($ '7 "9% % % (U7 % U ; % % %% % 7 20

Trabalhos Futuros % U%% 7 = 6 $J7 =6 6 $ % %(7 = (6 % ( ;%% 7 Trabalhos Futuros - 6 %" 6 (U7 #$6# J $% % (7 21

Agradecimento Obrigada pela Atenção de Todos! 22