1,446 research outputs found
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
GammaPolarSlicer
In software development, it is often desirable to reuse existing software components. This has been recognized since 1968, when Douglas Mcllroy of Bell Laboratories proposed basing the software industry on reuse. Despite the failures in practice, many efforts have been made to make this idea successful. In this context, we address the problem of reusing annotated components as a rigorous way of assuring the quality of the application under construction. We in- troduce the concept of caller-based slicing as a way to certify that the integration of an annotated component with a contract into a legacy system will preserve the behavior of the former.
To complement the efforts done and the benefits of the slicing techniques, there is also a need to find an efficient way to visualize the annotated components and their 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 notion of System Dependence Graph and slicing criterion.Fundação para a Ciência e a Tecnologia (FCT
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
SAVCBS 2004 Specification and Verification of Component-Based Systems: Workshop Proceedings
This is the proceedings of the 2004 SAVCBS workshop. The workshop is concerned with how formal (i.e., mathematical) techniques can be or should be used to establish a suitable foundation for the specification and verification of component-based systems. Component-based systems are a growing concern for the software engineering community. Specification and reasoning techniques are urgently needed to permit composition of systems from components. Component-based specification and verification is also vital for scaling advanced verification techniques such as extended static analysis and model checking to the size of real systems. The workshop considers formalization of both functional and non-functional behavior, such as performance or reliability
Recommended from our members
Towards an aspect weaving BPEL engine
This position paper proposes the use of dynamic aspects and
the visitor design pattern to obtain a highly configurable and
extensible BPEL engine. Using these two techniques, the
core of this infrastructural software can be customised to
meet new requirements and add features such as debugging,
execution monitoring, or changing to another Web Service
selection policy. Additionally, it can easily be extended to
cope with customer-specific BPEL extensions. We propose
the use of dynamic aspects not only on the engine itself
but also on the workflow in order to tackle the problems of
Web Service hot deployment and hot fixes to long running
processes. In this way, composing aWeb Service "on-the-fly"
means weaving its choreography interface into the workflow
Verification, slicing, and visualization of programs with contracts
Tese de doutoramento em Informática (área de
especialização em Ciências da Computação)As a specification carries out relevant information concerning the behaviour of a program, why not explore this fact to slice a program in a semantic sense aiming at optimizing it or easing its verification? It was this idea that Comuzzi, in 1996, introduced with the notion of postcondition-based slicing | slice a program using the information contained in the postcondition (the condition Q that is guaranteed to hold at the exit of a program). After him, several advances were made and different extensions were proposed, bridging the two areas of Program Verification and Program Slicing: specifically precondition-based slicing and specification-based slicing. The work reported in this Ph.D. dissertation explores further relations between these two areas aiming at discovering mutual benefits.
A deep study of specification-based slicing has shown that the original algorithm is not efficient and does not produce minimal slices. In this dissertation, traditional specification-based slicing algorithms are revisited and improved (their formalization is proposed under the name of assertion-based slicing), in a new framework that is appropriate for reasoning about imperative programs annotated with contracts and loop invariants.
In the same theoretical framework, the semantic slicing algorithms are extended to work at the program level through a new concept called contract based slicing. Contract-based slicing, constituting another contribution of this work, allows for the study of a program at an interprocedural level, enabling optimizations in the context of code reuse.
Motivated by the lack of tools to prove that the proposed algorithms work in practice, a tool (GamaSlicer) was also developed. It implements all the existing semantic slicing algorithms, in addition to the ones introduced in this dissertation. This third contribution is based on generic graph visualization and animation algorithms that were adapted to work with verification and slice graphs, two specific cases of labelled control low graphs.Tendo em conta que uma especificação contém informação relevante no que diz respeito ao comportamento de um programa, faz sentido explorar este facto para o cortar em fatias (slice) com o objectivo de o optimizar ou de facilitar a sua verificação. Foi precisamente esta ideia que Comuzzi introduziu, em 1996, apresentando o conceito de postcondition-based slicing que consiste em cortar um programa usando a informação contida na pos-condicão (a condição Q que se assegura ser verdadeira no final da execução do programa).
Depois da introdução deste conceito, vários avanços foram feitos e diferentes extensões foram propostas, aproximando desta forma duas áreas que até então pareciam desligadas: Program Verification e Program Slicing.
Entre estes conceitos interessa-nos destacar as noções de precondition-based slicing e specification-based slicing, que serão revisitadas neste trabalho. Um estudo aprofundado do conceito de specification-based slicing relevou que o algoritmo original não é eficiente e não produz slices mínimos.
O trabalho reportado nesta dissertação de doutoramento explora a ideia de tornar mais próximas essas duas áreas visando obter benefícios mútuos.
Assim, estabelecendo uma nova base teórica matemática, os algoritmos originais de specification-based slicing são revistos e aperfeiçoados | a sua formalizacão é proposta com o nome de assertion-based slicing.
Ainda sobre a mesma base teórica, os algoritmos de slicing são extendidos, de forma a funcionarem ao nível do programa; alem disso introduz-se um novo conceito: contract-based slicing. Este conceito, contract-based slicing, sendo mais um dos contributos do trabalho aqui descrito, possibilita o estudo de um programa ao nível externo de um procedimento, permitindo, por um lado, otimizações no contexto do seu uso, e por outro, a sua reutilização segura.
Devido à falta de ferramentas que provem que os algoritmos propostos de facto funcionam na prática, foi desenvolvida uma, com o nome GamaSlicer, que implementa todos os algoritmos existentes de slicing semântico e os novos propostos. Uma terceira contribuição é baseada nos algoritmos genéricos de visualização e animação de grafos que foram adaptados para funcionar com os grafos de controlo de fluxo etiquetados e os grafos de verificação e slicing.Fundação para a Ciência e a Tecnologia (FCT) através da Bolsa de Doutoramento SFRH/BD/33231/2007Projecto RESCUE (contrato FCT sob a referência PTDC / EIA / 65862 /2006)Projecto CROSS (contrato FCT sob a referência PTDC / EIACCO / 108995 / 2008
Smart performance optimization of energy-aware scheduling model for resource sharing in 5G green communication systems
This paper presents an analysis of the performance of the Energy Aware Scheduling Algorithm (EASA) in a 5G green communication system. 5G green communication systems rely on EASA to manage resource sharing. The aim of the proposed model is to improve the efficiency and energy consumption of resource sharing in 5G green communication systems. The main objective is to address the challenges of achieving optimal resource utilization and minimizing energy consumption in these systems. To achieve this goal, the study proposes a novel energy-aware scheduling model that takes into consideration the specific characteristics of 5G green communication systems. This model incorporates intelligent techniques for optimizing resource allocation and scheduling decisions, while also considering energy consumption constraints. The methodology used involves a combination of mathematical analysis and simulation studies. The mathematical analysis is used to formulate the optimization problem and design the scheduling model, while the simulations are used to evaluate its performance in various scenarios. The proposed EASM reached a 91.58% false discovery rate, a 64.33% false omission rate, a 90.62% prevalence threshold, and a 91.23% critical success index. The results demonstrate the effectiveness of the proposed model in terms of reducing energy consumption while maintaining a high level of resource utilization.© 2024 The Authors. The Journal of Engineering published by John Wiley & Sons Ltd on behalf of The Institution of Engineering and Technology. This is an open access article under the terms of the Creative Commons Attribution License, which permits use, distribution and reproduction in any medium, provided the original work is properly cited.fi=vertaisarvioitu|en=peerReviewed
- …