3,277 research outputs found
Automatic Test Generation for Space
The European Space Agency (ESA) uses an engine to perform tests in the Ground
Segment infrastructure, specially the Operational Simulator. This engine uses
many different tools to ensure the development of regression testing
infrastructure and these tests perform black-box testing to the C++ simulator
implementation. VST (VisionSpace Technologies) is one of the companies that
provides these services to ESA and they need a tool to infer automatically
tests from the existing C++ code, instead of writing manually scripts to
perform tests. With this motivation in mind, this paper explores automatic
testing approaches and tools in order to propose a system that satisfies VST
needs
Contract-based slicing helps on safety reuse
In this poster we describe a work in progress
aimed at using a variant of specification-based slicing to
improve the reuse of annotated software components, developed
under the so called design-by-contract approach. We have
named this variant as contract-based because we use the
annotations, more precisely the pre and post-conditions, to slice
programs intra and inter-procedures. The idea, expressed in
the poster, is to take the pre-condition of the reused annotated
component as slicing criterion, and slice backward the program
where the component is called. In that way, we can isolate the
statements that have influence on the variables involved on the
pre-condition and check if it is preserved by that invocation,
or not.Fundação para a Ciência e a Tecnologia (FCT
Una Experiencia de la Practica de Enseñanza de la Agroecológica en una Escuela del de Enseñanza Fundamental II en el Estado de Bahia Brasil
La educación en todo su ambito constituye en un instrumento político que tiene como finalidad educar al individuo y lo colectivo en la interacción permanente y, como consecuencia, a la transferencia de valores a la Sociedad (introducción de valores). Lo objetivo del estudio es busca despertar la importancia y la apreciación del espacio comunitario a través del proceso de enseñanza / aprendizaje Agroecología, comprender el contexto de este proceso en la formación de estos estudiantes, la apropiación del conocimiento, y por lo tanto tratar de relacionar las prácticas de enseñanza con la realidad y la necesidad de que los estudiantes experimentan a diario en sus comunidades. A lograr con del objetivo la metodología utilizados se basaron en Paulo Freire a la educación popular, la valoración de la Educación Rural y Agroecología, con la ayuda de métodos Freinet. Los resultados cuentan de que los estudiantes manifestaron un aprendizaje significativo acerca de las prácticas de la agroecología. Se analizaron 21 ensayos. Además de los ensayos se hicieron mapas de la comunidad en torno a la escuela. Fundamentada en estas producciones de textos, se observó que los estudiantes desarrollaron una conciencia de la importancia del manejo agroecológico en la siembra para la conservación y preservación del medio ambiente. El proceso de la conciencia de la preservación del medio ambiente debe impregnar el campo de la afectividad, habilitada por mirar lo que la conciencia crítica se despierta. Todo aprendizaje, incluyendo el contenido científico, tiene una dimensión afectiva. Sentimientos y emociones modulan las actitudes, gustos, disposición y motivación para aprender, promoviendo tanto encanto e interés, como la hostilidad y aversión. La conciencia crítica despertado en los estudiantes que caminan a clase con el conocimiento de la siembra agroecológica, permitió a los estudiantes a aprender acerca de otra forma de producir alimentos en cantidad y calidad
Code analysis: past and present
The integration of Software components within complex industrial applications with severe security standards, requires strict quality assessment of each integrated component. That is, requires a guarantee that each component is compliant with the software development good practices and all the standards in use. If full certification is easy to obtain for proprietary modules, it is particularly hard to achieve when dealing with Open-Source Software pieces, demanding for rigorous methods and techniques to implement their certification process.
In this context, code analysis plays an important role as the basis for the automatization of quality assessment of open source software projects – code analysis provides the techniques and tools to implement the necessary validation process. Although source code is still the most explored (the main support for analysis), nowadays this assessment process should be able to deal with code at different compilation levels.
Due to its relevance for the open source software certification task, this paper reviews code analysis area (stages of the analyzing process, traditional approaches, and future trends), aiming at identifying what is available, and what deserves further research.Fundação para a Ciência e a Tecnologia (FCT
Contract-based slicing
In the last years, the concern with the correctness of programs has been leading programmers to enrich their programs with annotations following the principles of design-by-contract, in order to be able to guarantee their correct behaviour and to facilitate reuse of verified components without having to reconstruct proofs of correctness.
In this paper we adapt the idea of specification-based slicing to the scope of (contract-based) program verification systems and behaviour specification languages. In this direction, we introduce the notion of contract-based slice of a program and show how any specification-based slicing algorithm can be used as the basis for a contract-based slicing algorithm.Fundação para a Ciência e a Tecnologia (FCT) - RESCUE (PTDC / EIA / 65862 / 2006), CROSS (PTDC / EIACCO/ 108995 / 2008)
Program analysis and evaluation using QUIMERA
During last years, a new challenge rose up inside the programming communities: the programming contests.
Programming contests can vary slightly in the rules but all of them are intended to assess the competitor skills concerning the ability to solve problems using a computer. These contests raise up three kind of challenges:
to create a nice problem statement (for the members of the scientific committee); to solve the problem in a good way (for the programmers); to find a fair way to assess the results (for the judges).
This paper presents a web-based application, QUIMERA intended to be a full programming-contest management system, as well as an automatic judge. Besides the traditional dynamic approach for program evaluation, QUIMERA still provides static analysis of the program for a more fine assessment of solutions. Static analysis takes profit from the technology developed for compilers and language-based tools and is supported by source code analysis and software metrics.(undefined
Parser generation in Perl : an overview and available tools
There are some modules on Comprehensive Perl Archive Network to help with the parser generation process in Perl. Unfortunately, some are limited, only supporting a particular parser algorithm and do not covering some developer needs. In this document we will analyse some of these modules, testing them in terms of performance and usability, allowing a proper evaluation of the results and careful considerations about the state of art of parser generation using Perl
Properties preservation during transformation
To prove the correctness of a program (written in a high level programming language) with respect to a specification (a set of proof obligations) does not assure the correctness of the machine code
that the end-user will run after compilation and deployment phases. The code generated by the compiler should be verified again to guarantee
that its correctness was preserved, and then that it can be executed in safety.
In the context of a Ph.D. work in the area of software analysis and transformation, we are looking for a suitable approach to prove that the
software properties (validated at source level) are kept during translation.
In this position paper we introduce our architectural proposal, and discuss the platform and we are building for Java+JML on the top of Eclipse.Fundação para a Ciência e a Tecnologia (FCT) - MAPi/FCT, bolsa de doutoramento nº. SFRH/BD/33231/2007
Safe integration of annotated components in open source projects
The decision of using existing software components versus building from scratch custom software is one of the most complex and important choices of the entire development/integration process. However, the reuse of software components raises a spectrum of issues, from requirements negotiation to product selection and integration. The correct tradeoff is reached after having analyzed advantages and issues correlated to the reuse. Despite the reuse failures in real cases, many efforts have been made to make this idea successful.
In this context of software reuse in open source projects, we address the problem of reusing annotated components proposing a rigorous approach to assure the quality of the application under construction. We introduce the concept of caller-based slicing as a way of certifying that the integration of a component annotated with a contract into a system will preserve the correct behavior of the former, avoiding malfunctioning after integration.
To complement the efforts done and the benefits of slicing techniques, there is also a need to find an efficient way to visualize the main program with the annotated components and the slices. To take full profit of visualization, it is crucial to combine the visualization of the control/data flow with the textual representation of source code. To attain this objective, we extend the notions of System Dependence Graph
and Slicing Criterion to cope with annotations.Fundação para a Ciência e a Tecnologia (FCT
GamaSlicer : an online laboratory for program verification and analysis
In this paper we present the GamaSlicer tool, which is primarily a
semantics-based program slicer that also offers formal verification
(generation of verification conditions) and program visualization
functionality. The tool allows users to obtain slices using a
number of different families of slicing algorithms (\precond-based,
\postcond-based, and specification-based), from a correct software
component annotated with pre and postconditions (contracts written
in JML-annotated Java). Each family in turn contains algorithms of
different precision (with more precise algorithms being
asymptotically slower). A novelty of our work at the theoretical
level is the inclusion of a new, much more effective algorithm for
specification-based slicing, and in fact other current work at this
level is being progressively incorporated in the tool.
The tool also generates (in a step-by-step fashion) a set of
verification conditions (as formulas written in the SMT-lib
language, which enables the use of different automatic SMT
provers). This allows to establish the initial correctness of the
code with respect to their contracts.Fundação para a Ciência e a Tecnologia (FCT
- …
