DEPARTAMENTO DE INFORMÁTICA

Documentos relacionados
Alessandro Cavalcante Gurgel. Blending and Reusing Rules for Architectural Degradation Prevention DISSERTAÇÃO DE MESTRADO

Bruno Loureiro Rezende. Um Framework para a Automação de Testes com Linguagens de Especificação Configuráveis DISSERTAÇÃO DE MESTRADO

Pedro Paiva Zühlke d Oliveira

Collusion in Auctions on the Absence of Public Information

Elicitação de requisitos de software através da utilização de questionários

Measurable Cardinals and Relative Consistency Proofs in Set Theory

Baaba Abassawah Ghansah. Population Dynamics. Dissertação de Mestrado

JOSÉ RICARDO SANCHEZ FILHO ANALYSIS OF THE LONG-TERM EFFECTS OF THE VOLUNTARY OFFER OF THE BID RULE ON STOCKS LISTED IN THE BRAZILIAN STOCK EXCHANGE

Favoritism and Informational Effects in Public Procurement Auctions

DEPARTAMENTO DE INFORMÁTICA

João Paulo Cordeiro de Noronha Pessoa. Flex Cars and the Competitive Effect on Ethanol and Gasoline Retail Markets

Bruno Siqueira Silva. Workflows dinâmicos em gerência de projetos ágeis. Dissertação de Mestrado

Rodrigo Rodrigues Adão. Household Income and Strategic Default Decision in the Subprime Crisis. Dissertação de Mestrado

Geração semi-automática de massas de testes funcionais a partir da composição de casos de uso e tabelas de decisão

Eveline Russo Sacramento. An Approach for Dealing with Inconsistencies in Data Mashups CTC TESE DE DOUTORADO. Programa de Pós-Graduação em Informática

Marlene Isabel Silva Marchena. Measuring and Implementing the Bullwhip Effect in Supply Chains. Tese de Doutorado

João Paulo de Freitas Araujo. Algoritmos para acelerar a computação de Árvores de corte de Gomory e Hu. Dissertação de Mestrado

Uma meta-ferramenta de geração de diagramas utilizada na engenharia reversa de sistemas legados.

Aplicação da Análise de Sistemas à Definição de Processos de Desenvolvimento de Software

An Environment for Integrating Bibliographical Data based on Mediators

Uma Avaliação Empírica de um Ambiente Favorável para o Desenvolvimento Dirigido por Testes

Fabio Mascarenhas de Queiroz. Optimized Compilation of a Dynamic Language to a Managed Runtime Environment TESE DE DOUTORADO

Marcelo Gomes Metello. Process-Oriented Modeling and Simulation for Serious Games TESE DE DOUTORADO

Um Estudo Sobre Middlewares Adaptáveis

Marcos Borges Pessoa. Geração e execução automática de scripts de teste para aplicações web a partir de casos de uso direcionados por comportamento

Artur Manoel Passos. Essays in Portfolio Management and Stocks Return Forecasting. M.A. Dissertation

Guilherme de Sousa Neves. Previsão de estoque de peças eletrônicas sobressalentes. Dissertação de Mestrado

Gerenciando Conflitos em Reuniões: Uma Estratégia para a Elicitação de Requisitos de Software

Davi Romero de Vasconcelos. Análise de Estratégias Utilizando Verificação Formal de Modelos. Dissertação de Mestrado

Um ambiente de suporte para uma linguagem de modelagem de sistemas multi-agentes

O PRíNCIPE FELIZ E OUTRAS HISTóRIAS (EDIçãO BILíNGUE) (PORTUGUESE EDITION) BY OSCAR WILDE

Variable selection for linear and smooth transition models via LASSO: comparisons, applications and new methodology

A Cloud Computing Architecture for Large Scale Video Data Processing

Controle da Execução e Disponibilização de Dados para Aplicativos sobre Seqüências Biológicas: o Caso BLAST

Como escrever para o Enem: roteiro para uma redação nota (Portuguese Edition)

Relação entre Governança Corporativa e Remuneração de Executivos no Brasil

APLICAÇÃO DE CONCEITOS DE ENGENHARIA DE FATORES HUMANOS: UM ESTUDO DE CASO EM UMA EMPRESA DE OPERAÇÕES LOGÍSTICAS

O Design de Sinalização no Brasil: a introdução de novos conceitos de 1970 a 2000

Heidegger e a relação homem-técnica-natureza na crise ambiental contemporânea

As 100 melhores piadas de todos os tempos (Portuguese Edition)

A Tool to Evaluate Stuck-Open Faults in CMOS Logic Gates

Fernanda Magalhães Rumenos Guardado. Estudo sobre a IS Intertemporal na Economia Brasileira

Gerenciamento de projetos no âmbito da Economia Criativa Um estudo de caso das Incubadoras Rio Criativo

MASTER S DEGREE IN INTELLECTUAL PROPERTY ADMISSION EXAM

Pesquisa Qualitativa do Início ao Fim (Métodos de Pesquisa) (Portuguese Edition)

Guilherme Finkelfarb Lichand. Courts, Contract Enforcement, and Entrepreneurship. Dissertação de Mestrado

A framework for assessing and guiding progress towards a demand driven Supply Chain

Bruno de Figueiredo Melo e Souza. Modelos de fatoração matricial para recomendação de vídeos. Dissertação de Mestrado

Produção e produtividade lexical em José Cândido de Carvalho

Um Processo Baseado em MDA para a Especialização de Mecanismos de Persistência

Parallel Algorithms for Multicore Game Engines

Dárlinton Barbosa Feres Carvalho. Combining a process and tools to support the analysis of online communities applied to healthcare TESE DE DOUTORADO

Eduardo Beira. Eduardo Beira (MIT Portugal Program, U. Minho, Portugal)

Otávio de Pinho Forin Braga. Uma Arquitetura para Síntese de Imagens Fotorrealistas baseada em Técnicas de Monte Carlo DISSERTAÇÃO DE MESTRADO

Uma Abordagem para a Evolução Transparente em Repositórios de Medição de Software

Marcelo de Mattos Bezerra. Interações no Ensino e na Prática do Design e da Arquitetura. Dissertação de Mestrado

Bernardo de Mendonça G. Ferreira. Valoração de uma opção sobre um contrato futuro. Dissertação de Mestrado

Inflation Expectations and Behavior: Do Survey Respondents Act on their Beliefs? O. Armantier, W. Bruine de Bruin, G. Topa W. VanderKlaauw, B.

Paula Accioly de Andrade. El Discreto e A Arte da Prudência: Dissertação de Mestrado. A contribuição de Baltasar Gracián na formação do homem de corte

Utilização de uma estratégia para identificação de fontes de informação na fase de elicitação

Criação Automática de Visões Materializadas em SGBDs Relacionais

Astrologia, Psicologia e os Quatro Elementos (Portuguese Edition)

Dealing with Device Data Overflow in the Cloud

MEDICINA INTERNA DE PEQUENOS ANIMAIS (EM PORTUGUESE DO BRASIL) BY RICHARD COUTO C.^NELSON

Análise Experimental de um Protótipo de Dormente de Polímero Reforçado com Fibras

Biscuit - potes (Coleção Artesanato) (Portuguese Edition)

Lucas de Assis Soares, Luisa Nunes Ramaldes, Taciana Toledo de Almeida Albuquerque, Neyval Costa Reis Junior. São Paulo, 2013

Rogério José Ramos de Oliveira Magalhães

A necessidade da oração (Escola da Oração) (Portuguese Edition)

Contract Oriented Web Services Model (COWS) Um Modelo Baseado em Contratos para Suporte a Processos de Negócios na Web

Adoção: guia prático doutrinário e processual com as alterações da Lei n , de 3/8/2009 (Portuguese Edition)

A ENTREVISTA COMPREENSIVA: UM GUIA PARA PESQUISA DE CAMPO (PORTUGUESE EDITION) BY JEAN-CLAUDE KAUFMANN

Relações públicas comunitárias (Portuguese Edition)

Dermatologia Clínica. Guia Colorido Para Diagnostico e Tratamento (Em Portuguese do Brasil)

A pesquisa experimental para o desenvolvimento de técnicas em harmonia com o meio ambiente físico e social

Adriano Medeiros dos Santos. Suporte a Componentes Compostos Para o Middleware SCS. Dissertação de Mestrado

EGAN. FUNDAMENTOS DA TERAPIA RESPIRATÓRIA (EM PORTUGUESE DO BRASIL) BY CRAIG L. SCANLAN

Avaliação Preliminar dos Movimentos Aéreos no Aeroporto Internacional Antônio Carlos Jobim Galeão

Aspectos Multidisciplinares das Artes Marciais: 1 (Portuguese Edition)

Certificação PMP: Alinhado com o PMBOK Guide 5ª edição (Portuguese Edition)

Stochastic Programming with Endogenous Uncertainty: An Application in Humanitarian Logistics

Um Modelo Integrado para o Projeto de Redes Logísticas com Decisões de Localização de Instalações, Produção, Transporte e Estoques.

PL/SQL: Domine a linguagem do banco de dados Oracle (Portuguese Edition)

Improved Approximations for the k-hotlink Assignment Problem and for Binary Searching in Trees

Rodrigo Pereira Pacheco. Destruction of Invariant Graphs by Cˆ{1,\beta} Perturbations. Tese de Doutorado

Adriano Francisco Branco. Um modelo de programação para RSSF com. Dissertação de Mestrado

Vaporpunk - A fazenda-relógio (Portuguese Edition)

Cálculo de Índices de Segurança em Sistemas de Energia Elétrica Baseado em Simulação no Domínio do Tempo

Ganhar Dinheiro Em Network Marketing (Portuguese Edition)

Capital Requerido via Simulação Estocástica aplicado ao Seguro de Vida e Fundo de Pensão

Lize Vicente de Almeida. O vestido e a enxada: A participação feminina no campo. Dissertação de Mestrado

Atividade Física Adaptada: Qualidade de Vida para Pessoas com Necessidades Especiais (Portuguese Edition)

AN APPROACH TO ASSESS SAFETY CONSIDERING INTEGRITY OF DATA OF ADS-B BASED AERIAL SYSTEMS

MANUAL PRATICO DO PLANO DE PROJETO: UTILIZANDO O PMBOK GUIDE BY RICARDO VIANA VARGAS

Um Estudo sobre a Importância das Características dos Projetos de Patrocínio na Visão das Empresas Patrocinadoras de Eventos

Métodos Quantitativos e Qualitativos na Engenharia (M2QE) Quantitative and Qualitative Methods in Engineering (QQME)

As 10 bobagens mais comuns que as pessoas inteligentes cometem (Portuguese Edition)

Software reliability analysis by considering fault dependency and debugging time lag Autores

Uma Proposta de Sistema de Dependência a Distância Usando a Plataforma Moodle

Transcrição:

João Alfredo P. de Magalhães Recovery Oriented Software TESE DE DOUTORADO DEPARTAMENTO DE INFORMÁTICA Postgraduate Program in Informatics Rio de Janeiro September 2009

João Alfredo P. de Magalhães Recovery Oriented Software TESE DE DOUTORADO Thesis presented to the Postgraduate Program in Informatics of the Departamento de Informática, PUC- Rio, as partial fulfillment of the requirements for the degree of Doutor em Informática. Advisor: Arndt von Staa Rio de Janeiro September 2009

João Alfredo Pinto de Magalhães Recovery Oriented Software Thesis presented to the Postgraduate Program in Informatics, of the Departamento de Informática do Centro Técnico Científico da PUC-Rio, as partial fulfillment of the requirements for the degree of Doutor Prof. Arndt von Staa Advisor Departamento de Informática PUC-Rio Profa. Simone Diniz Junqueira Barbosa Departamento de Informática PUC-Rio Prof. Alessandro Fabrício Garcia Departamento de Informática PUC-Rio Prof. Ricardo Choren Noya Instituto Militar de Engenharia IME Profa. Cláudia Maria Lima Werner Universidade Federal do Rio de Janeiro UFRJ Prof. José Eugenio Leal Coordinator of the Centro Técnico Científico da PUC-Rio Rio de Janeiro, 03/09/2009

All rights reserved. João Alfredo P. de Magalhães Graduated in Science Computing Engineering from Pontifícia Universidade Católica do Rio de Janeiro (2000, Brazil, Rio de Janeiro), he obtained the degree of Mestre em Informática also from Pontifícia Universidade Católica do Rio de Janeiro (2002, Brazil, Rio de Janeiro). Magalhães, João Alfredo P. de Bibliographic data Recovery oriented software / João Alfredo P. de Magalhães ; advisor: Arndt Von Staa. 2009. 104 f. : il. ; 30 cm Tese (Doutorado em Informática) Pontifícia Universidade Católica do Rio de Janeiro, Rio de Janeiro, 2009. Inclui bibliografia 1. Informática Teses. 2. Engenharia de software. 3. Software depurável. 4. Fidedignidade. 5. Corretude por construção. I. Staa, Arndt von. II. Pontifícia Universidade Católica do Rio de Janeiro. Departamento de Informática. III. Título. CDD: 004

To my parents, Alfredo and Mariza.

Acknowledgements To God, for all the inspiration received and right decisions taken. To my family, for the support, care, encouragement and everything else, including my life. In particular, to Alfredo and Mariza (my parents, who have always supported me) and to Mabia (my aunt). To my advisor, Professor Arndt von Staa. Your partnership has been fundamental not only for this thesis, but for my complete academic and professional lives. It has been a pleasure to work with you. I hope this thesis is just the beginning of a long story of cooperation for both academic and professional projects. To all my colleagues at Minds at Work, for the positive exchange of ideas and discussions that contributed a lot in the experiments. In particular, to Frederico Guimarães Silva, my partner, and to Juliana Rezende, one of the best managers and counselors I have ever worked with. To my friends, for all the support given at the moments I needed the most. In particular, to Andre Sotério, Allan Batista, Patricia Merlim and Daniela Maria. To CNPq and CAPES, for the financial support; without which this work could not have been conducted.

To the Departamento de Informática of PUC-Rio and all its employees, especially Ruth, Rosângela and Alex.

Resumo Pinto de Magalhães, João Alfredo; Staa, Arndt von. Software Orientado à Recuperação. Rio de Janeiro, 2009. 104p. Tese de Doutorado - Departamento de Informática, Pontifícia Universidade Católica do Rio de Janeiro. Software orientado à recuperação é construído com a perspective que falhas de hardware e software bem como erros de operação são fatos com os quais se deve conviver, pois são problemas que não podem ser resolvidos no desenvolvimento de aplicações reais e complexas. Consequentemente, qualquer software sempre terá uma chance diferente de zero de falhar. Algumas dessas falhas podem ser causadas por defeitos que podem ser removidos ou encapsulados. Uma questão chave é aumentar a detectabilidade de erros, ou em outras palavras, aumentar a auto-consciência comportamental de um software. Nesse trabalho, apresentamos os resultados da aplicação sistemática de técnicas conhecidas (design by contract, self-checking software, componentes de software, software depurável, design for testability, mock components e padrões) com o objetivo de criar software orientado à recuperação. Através da medição de cinco aplicações reais de tempo real, analisamos os efeitos da adoção dessas técnicas. Em particular, observamos o balanceamento do esforço gasto em diferentes estágios do desenvolvimento a exploramos o conceito de redundância de raciocínio que, além de prover uma maior detectabilidade de erros e depurabilidade, também leva ao aumento da qualidade por construção. Os resultados foram encorajadores por terem sido sistematicamente melhores do que aqueles reportados pela literatura e obtidos a um custo acessível. Palavras-chave construção. Engenharia de software; software depurável; fidedignidade; corretude por

Abstract Pinto de Magalhães, João Alfredo; Staa, Arndt von (Advisor). Recovery Oriented Software. Rio de Janeiro, 2009. 104p. DSc. Thesis - Departamento de Informática, Pontifícia Universidade Católica do Rio de Janeiro. Recovery oriented software is built with the perspective that hardware or software failures as well as operation mistakes are facts to be coped with, since they are problems that cannot be fully solved while developing real complex applications. Consequently, any software will always have a non-zero chance of failure. Some of these failures may be caused by defects that could be removed or encapsulated. A key issue is to increase the detectability of errors, in other words, increase the self-awareness of the software's behavior. In this work, we present the results of systematically applying already well known techniques (design by contract, self-checking software, software components, debuggable software, design for testability, mock components and patterns) with the intent of creating recovery oriented software. Measuring the development of five different real-time and real world applications, we analyzed the effects of the adoption of these techniques. In particular we observed the balancing of the effort spent in different development stages and explore the "reduncancy of reasoning" concept that, as well as providing a higher detectability and debuggability, also leads to enhancing quality-by-construction. The results were encouraging since they were systematically better than those reported in the literature and were achieved at a feasible cost Keywords Software engineering; debuggable software; reliability; correctness by construction.

Summary 1 Introduction 14 1.1. Main Goals 16 1.2. Evaluation Methods 18 1.3. Document Structure 20 2 Concepts and Technologies 22 2.1. Recovery Oriented Software development process characteristics 22 2.1.1. Defect prevention effort 23 2.1.2. Potential failure detection effort 23 2.1.3. Failure handling effort (FHE) 24 2.1.4. Defect removal effort (DRE) 26 2.2. Fault tolerant software versus recovery oriented software 27 2.3. Technologies and tools that support the development of recovery oriented software 28 2.3.1. Debuggable Software 28 2.3.2. Software Components 31 2.3.3. Design by contract and Design for Testability 32 2.3.4. Mock Components 35 2.3.5. Formal Methods 36 2.3.6. Patterns 37 3 Combining Technologies to Develop Reliable Software 48 3.1. Requirements Step 49 3.2. Design Step 49 3.3. Coding Step 53 3.4. Testing Step 54 3.5. Deployment Step 54 3.6. Development Table 55 4 Recovery Techniques 56

4.1. Redundancy 57 4.2. Recovery and Redundancy 58 5 Experiments and results 62 5.1. Gipmag 64 5.2. Catadef 70 5.3. RTScan 73 5.4. Pipescan 78 5.5. Biogènie 81 5.6. Comparison of the results 83 6 Discussion 84 6.1. Recovery strategies 84 6.2. Failure detection 88 6.3. N-Version based failure detection 90 6.4. Formal methods 91 6.5. Institutionalization aspects 92 7 Conclusions, Contributions and Future Work 94 8 References 99

Figures Figure 1: An instrumentation wrapper encapsulating the verification 34 Figure 2: System Architecture 65 Figure 3: RTScan Architecture 74

Tables Table 1: Technologies and development steps 55 Table 2: Number of failures identified 67 Table 3: Catadef failures 73 Table 4: Time to fix catadef failures. 73 Table 5: General statistics for RTScan 76 Table 6: Fault removal statistics for RTScan 77 Table 7: Failure statistics for Pipescan 80 Table 8: Number of failures identified for Biogènie 82 Table 9: Overall results of the experiments 83