Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Augusto Sampaio is active.

Publication


Featured researches published by Augusto Sampaio.


formal methods | 2002

Refinement in Circus

Augusto Sampaio; Jim Woodcock; Ana Cavalcanti

We describe refinement in Circus, a concurrent specification language that integrates imperative CSP, Z, and the refinement calculus. Each Circus process has a state and accompanying actions that define both the internal state transitions and the changes in control flow that occur during execution. We define the meaning of refinement of processes and their actions, and propose a sound data refinement technique for process refinement. Refinement laws for CSP and Z are directly relevant and applicable to Circus, but our focus here is on new laws for processes that integrate state and control. We give some new results about the distribution of data refinement through the combinators of CSP. We illustrate our ideas with the development of a distributed system of cooperating processes from a centralised specification.


Electronic Notes in Theoretical Computer Science | 2008

Formal Specification Generation from Requirement Documents

Gustavo Cabral; Augusto Sampaio

Automatic generation of formal specifications from requirement reduces cost and complexity of formal models creation. Thus, the generated formal model brings the possibility to carry out system property verification. This paper proposes a Controlled Natural Language (CNL, a subset of English), use case specification templates, and a strategy and tool support to generate process algebraic formal models (in CSP notation) from use cases specified using the templates and CNL. We define templates that represent requirement at different levels of abstraction. Moreover, a refinement notion is defined based on events mapping between abstract and concrete models.


european conference on object-oriented programming | 2003

A Refinement Algebra for Object-Oriented Programming

Paulo Borba; Augusto Sampaio; Márcio Cornélio

In this article we introduce a comprehensive set of algebraic laws for ROOL, a language similar to sequential Java but with a copy semantics. We present a few laws of commands, but focus on the object-oriented features of the language. We show that this set of laws is complete in the sense that it is sufficient to reduce an arbitrary ROOL program to a normal form expressed in a restricted subset of the ROOL operators. We also propose a law for data refinement that generalises the technique from traditional modules to class hierarchies. Together, these laws are expressive enough to derive more elaborate rules that can be useful, for example, to formalize object-oriented design practices; this is illustrated through the systematic derivation of a refactoring from the proposed laws.


international colloquium on theoretical aspects of computing | 2008

Guided Test Generation from CSP Models

Sidney Nogueira; Augusto Sampaio; Alexandre Mota

We introduce an approach for the construction of feature test models expressed in the CSP process algebra, from use cases described in a controlled natural language. From these models, our strategy automatically generates test cases for both individual features and feature interactions, in the context of an industrial cooperation with Motorola Inc., where each feature represents a mobile device functionality. The test case generation can be guided by test purposes, which allow selection based on particular traces of interest. More generally, we characterise a testing theory in terms of CSP: test models, test purposes, test cases, test execution, test verdicts and soundness are entirely defined in terms of CSP processes and refinement notions. We have also developed a tool, ATG, which mechanises the entire generation process.


unifying theories of programming | 2006

Object-orientation in the UTP

Thiago L. V. L. Santos; Ana Cavalcanti; Augusto Sampaio

In this paper, we study object-oriented programming concepts present in languages like Java and C++ in the framework of the Unifying Theories of Programming (UTP). This work shows how subtyping, data inheritance, (mutually) recursive methods, and dynamic binding can be described in the UTP by combining and extending the theories of designs and higher-order procedures. A distinguishing feature of our approach is modularity: following the style of the UTP, we deal with each concept in isolation; this makes our theory convenient to model integrated languages that include constructs from several paradigms.


software engineering and formal methods | 2008

Laws of Object-Orientation with Reference Semantics

Leila Silva; Augusto Sampaio; Zhiming Liu

Algebraic laws have been proposed to support program transformation in several paradigms. In general, and for object-orientation in particular, these laws tend to ignore possible aliasing resulting from reference semantics. This paper proposes a set of algebraic laws for object-oriented languages in the context of a reference semantics. Soundness of the laws is addressed, and a case study is also developed to show the application of the proposed laws for code refactoring.


Archive | 2006

Refinement Techniques in Software Engineering

Ana Cavalcanti; Augusto Sampaio; Jim Woodcock

Refinement: An overview.- Transformation Laws for Sequential Object-Oriented Programming.- Using CSP.- Developing and Reasoning About Probabilistic Programs in pGCL.- Real-Time and Fault-Tolerant Systems.- A Tutorial Introduction to CSP in Unifying Theories of Programming.- Using the Compliance Notation in Industry.- Techniques for Temporal Logic Model Checking.


Proceedings of the 3rd international workshop on Hardware/software co-design | 1994

Towards provably correct hardware/software partitioning using OCCAM

Edna Barros; Augusto Sampaio

We present some ideas towards an approach to provably correct hardware/software partitioning. We use OCCAM as the source programming language and perform the partitioning by applying a series of algebraic transformations on the source program. The result is still an OCCAM program; its structure reflects the hardware and software components, and how they interact to achieve the overall goal. A simple case study is developed to illustrate the partitioning and to show how the transformations can be proved to preserve an algebraic semantics of OCCAM.<<ETX>>


international colloquium on theoretical aspects of computing | 2004

A framework for specification and validation of real-time systems using circus actions

Adnan Sherif; He Jifeng; Ana Cavalcanti; Augusto Sampaio

In this work we propose a framework for specification and validation of real-time programs using Circus actions. Circus is a language that combines CSP, Z, and refinement calculus constructs. We have extended Circus and its model to capture time properties, and explored the relationship between the timed and the untimed model. Here we present a framework based on the integration of the timed and untimed versions of Circus. The integration aims at building a heterogeneous model that can express time properties using the untimed model. It is useful for the validation of real-time systems properties based on techniques and tools available for untimed languages. To illustrate the use of the framework, we apply it to an alarm system controller.


formal methods | 1997

A Normal Form Reduction Strategy for Hardware/Software Partitioning

Leila Silva; Augusto Sampaio; Edna Barros

In this paper we present a characterisation of the hardware/software partitioning problem as a program transformation task. Both the input and the output of the partitioning are expressed as processes in occam, and the partitioning itself is conducted by the application of a set of rules derived from an algebraic semantics of occam. The partitioning is designed in such a way to allow the complete separation of the efficiency and the correctness aspects of the process. A complete set of rules to turn an arbitrary program into a normal form is presented; this form is the parallel composition of very simple subprocesses, allowing a very flexible analysis of how they can be combined (in clusters) to produce the final result of the partitioning.

Collaboration


Dive into the Augusto Sampaio's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar

Alexandre Mota

Federal University of Pernambuco

View shared research outputs
Top Co-Authors

Avatar

Gustavo Carvalho

Federal University of Pernambuco

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Juliano Iyoda

Federal University of Pernambuco

View shared research outputs
Top Co-Authors

Avatar

Flávia A. Barros

Federal University of Pernambuco

View shared research outputs
Top Co-Authors

Avatar

Sidney Nogueira

Federal University of Pernambuco

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Leila Silva

Universidade Federal de Sergipe

View shared research outputs
Top Co-Authors

Avatar

Paulo Borba

Federal University of Pernambuco

View shared research outputs
Researchain Logo
Decentralizing Knowledge