7 research outputs found
Modular Analysis of Distributed Hybrid Systems using Post-Regions (Full Version)
We introduce a new approach to analyze distributed hybrid systems by a
generalization of rely-guarantee reasoning. First, we give a system for
deductive verification of class invariants and method contracts in
object-oriented distributed hybrid systems. In a hybrid setting, the object
invariant must not only be the post-condition of a method, but also has to hold
in the post-region of a method. The post-region describes all reachable states
after method termination before another process is guaranteed to run. The
system naturally generalizes rely-guarantee reasoning of discrete
object-oriented languages to hybrid systems and carries over its modularity to
hybrid systems: Only one dL-proof obligation is generated per method. The
post-region can be approximated using lightweight analyses and we give a
general notion of soundness for such analyses. Post-region based verification
is implemented for the Hybrid Active Object language HABS
Software development by abstract behavioural specification
The development process of any software has become extremely important not just in the IT industry, but in almost every business or domain of research. The effort in making this process quick, efficient, reliable and automated has constantly evolved into a flow that delivers software incrementally based on both the developer's best skills and the end user's feedback. Software modeling and modeling languages have the purpose of facilitating product development by designing correct and reliable applications. The concurrency model of the Abstract Behavioural Specification (ABS) Language with features for asynchronous programming and cooperative scheduling is an important example of how modeling contributes to the reliability and robustness of a product. By abstracting from the implementation details, program complexity and inner workings of libraries, software modeling, and specifically ABS, allow for an easier use of formal analysis techniques and proofs to support product design. However there is still a gap that exists between modeling languages and programming languages with the process of software development often going on two separate paths with respect to modeling and implementation. This potentially introduces errors and doubles the development effort. \par The overall objective of this research is bridging the gap between modeling and programming in order to provide a smooth integration between formal methods and two of the most well-known and used languages for software development, the Java and Scala languages. The research focuses mainly on sequential and highly parallelizable applications, but part of the research also involves some theoretical proposals for distributed systems. It is a first step towards having a programming language with support for formal models. Algorithms and the Foundations of Software technolog