1 |
[en] RECOVERY ORIENTED SOFTWARE / [pt] SOFTWARE ORIENTADO À RECUPERAÇÃOJOAO ALFREDO PINTO DE MAGALHAES 24 March 2010 (has links)
[pt] 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. / [en] 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.
|
Page generated in 0.0353 seconds