1 |
[en] AN EFFECTIVE ANALYSIS OF EXECUTABLE ASSERTIVES AS INDICATORS OF SOFTWARE FAILS / [pt] UMA ANÁLISE DA EFICÁCIA DE ASSERTIVAS EXECUTÁVEIS COMO OBSERVADORA DE FALHAS EM SOFTWAREFISCHER JONATAS FERREIRA 17 February 2016 (has links)
[pt] A confiabilidade absoluta do software é considerada inatingível, pois mesmo quando confeccionado seguindo regras rígidas de qualidade, o software não está livre da ocorrência de falhas durante a sua vida útil. O nível de confiabilidade do software está relacionado, entre outros, à quantidade de defeitos remanescentes que serão exercitados durante seu uso. Contendo menos defeitos remanescentes, espera-se que o software falhe menos frequentemente, embora muitos desses defeitos sejam exercitados nenhuma vez durante a vida útil do software. Mas desenvolvedores, além de redigir programas, utilizam cada vez mais bibliotecas e serviços remotos que muitas vezes possuem qualidade duvidosa. Na tentativa de tornar o software capaz de observar erros em tempo de execução, surge a hipótese que o uso dos Métodos Formais Leves, por meio do emprego sistemático de assertivas executáveis, pode ser eficaz e economicamente viável para assegurar a confiabilidade do software, tanto em tempo de teste como em tempo de uso. O objetivo principal desta pesquisa é avaliar a eficácia de assertivas executáveis para prevenção e observação de falhas em tempo de execução. As avaliações da eficácia foram feitas por intermédio de uma análise quantitativa utilizando experimentos. Estes, utilizam, implementações de estruturas de dados instrumentadas com assertivas executáveis, submetidas a testes baseados em mutações. Os resultados mostraram que todos os mutantes não equivalentes foram identificados pelas assertivas, embora os testes não foram capazes disso. Também é apresentada uma estimativa do custo computacional relativo ao uso de assertivas executáveis. Com base na infraestrutura criada para realização dos experimentos é proposta uma política de instrumentação de programas utilizando assertivas executáveis a serem mantidas ativas tanto durante os testes como durante o uso produtivo. / [en] Absolute reliability of software is considered unattainable, because even when it is build following strict quality rules, software is not free of failure occurrences during its lifetime. Software s reliability level is related, among others, to the amount of remaining defects that will be exercised during its use. If software contains less remaining defects, it is expected that failures will occur less often, although many of these defects will never be exercised during its useful life. However, libraries and remote services of dubious quality are frequently used. In an attempt to enable software to check mistakes at runtime, hypothetically Lightweight Formal Methods, by means of executable assertions, can be effective and economically viable to ensure software s reliability both at test time as well as at run-time. The main objective of this research is to evaluate the effectiveness of executable assertions for the prevention and observation of run-time failures. Effectiveness was evaluated by means of experiments. We instrumented data structures with executable assertions, and subjected them to tests based on mutations. The results have shown that all non-equivalent mutants were detected by assertions, although several of them were not detected by tests using non-instrumented versions of the programs. Furthermore, estimates of the computational cost for the use of executable assertions are presented. Based on the infrastructure created for the experiments we propose an instrumentation policy using executable assertions to be used for testing and to safeguard run-time.
|
2 |
[en] FORMAL ANALYSIS OF SOFTWARE MODELS ORIENTED BY ARCHITECTURAL ABSTRACTIONS / [pt] ANÁLISE FORMAL DE MODELOS DE SOFTWARE ORIENTADA POR ABSTRAÇÕES ARQUITETURAISMARCELO FAGUNDES FELIX 04 October 2004 (has links)
[pt] Atualmente, podemos observar uma clara tendência na direção
de sistemas
cada vez maiores e mais complexos quanto às suas partes e
formas de interconexão.
Num cenário como este, torna-se imperativa a preocupação
com a modelagem
da estrutura, organização geral e formas de interação
presentes nesses sistemas,
assim como com as garantias de que certos requisitos
críticos sejam atendidos.
O contexto de nosso trabalho engloba disciplinas de
Engenharia de Software,
como Arquitetura de Software e Técnicas de Modelagem, e
disciplinas
mais formais como Verificação de Modelos, Lógicas Modais e
Álgebras de Processos.
Nosso trabalho tem inspirações nestas disciplinas mas
apresenta, de fato,
um cunho metodológico, localizando-se nas fronteiras da ES
com Métodos Formais,
onde buscamos investigar e estabelecer uma forma
sistemática para utilização
efetiva de métodos formais logo nas etapas iniciais do
desenvo lvimento.
Mais especificamente, mostramos como é possível, a partir
de modelos baseados
em abstrações arquiteturais, obter-se sistematicamente um
modelo formal sobre
o qual possamos realizar certos tipos de análise
comportamental. Nossa proposta
inclui um sistema notacional básico para expressar modelos
arquiteturais, junto
com sua semântica formal, e um protótipo construído para
dar suporte a tarefas
de especificação e análise formal orientadas por abstrações
arquiteturais. Com
isto, pretendemos abordar alguns dos aspectos essenciais de
uma metodologia de
desenvolvimento que integre ferramentas e técnicas formais
na etapa de modelagem
arquitetural. / [en] There is a trend nowadays towards bigger and more complex
systems concerning
their parts and interconnectivity. In such scenario,
modeling structure,
overall organization and interaction have become a main
concern, as well as fulfillment
of mission critical requirements. The scope of our work
encompasses
Software Engineering related subjects such as Software
Architecture, Modeling
Techniques and more formal disciplines like Model Checking,
Modal Logics
and Process Algebra. Although inspired by such techniques,
there is, indeed a
methodological orientation in our work, traversing the
boundaries of Software
Engineering with Formal Methods, through which we seek to
investigate and
establish a systematic way for the effective utilization of
formal methods in the
first steps of software development. Still, more
specifically, we show how it is
possible, starting from models based on architectural
abstractions, to systematically
produce a formal model upon which we can execute certain
forms of behavior
analysis. Our proposal includes a basic notational system
to express architectural
models along with their formal semantics and a prototype
built to
support specification and formal analysis tasks oriented by
architectural abstractions.
With this, we intend to stress some essential aspects of a
development
methodology which aims to integrate tools and formal
techniques to software
modeling.
|
Page generated in 0.0401 seconds