92 research outputs found
Event-B in the Institutional Framework: Defining a Semantics, Modularisation Constructs and Interoperability for a Specification Language
Event-B is an industrial-strength specification language for verifying
the properties of a given system’s specification. It is supported by its
Eclipse-based IDE, Rodin, and uses the process of refinement to model
systems at different levels of abstraction. Although a mature formalism,
Event-B has a number of limitations. In this thesis, we demonstrate that
Event-B lacks formally defined modularisation constructs. Additionally,
interoperability between Event-B and other formalisms has been
achieved in an ad hoc manner. Moreover, although a formal language,
Event-B does not have a formal semantics. We address each of these
limitations in this thesis using the theory of institutions.
The theory of institutions provides a category-theoretic way of representing
a formalism. Formalisms that have been represented as institutions
gain access to an array of generic specification-building operators
that can be used to modularise specifications in a formalismindependent
manner. In the theory of institutions, there are constructs
(known as institution (co)morphisms) that provide us with the facility to
create interoperability between formalisms in a mathematically sound
way.
The main contribution of this thesis is the definition of an institution
for Event-B, EVT, which allows us to address its identified limitations.
To this end, we formally define a translational semantics from Event-
B to EVT. We show how specification-building operators can provide
a unified set of modularisation constructs for Event-B. In fact, the institutional
framework that we have incorporated Event-B into is more
accommodating to modularisation than the current state-of-the-art for
Rodin. Furthermore, we present institution morphisms that facilitate interoperability between the respective institutions for Event-B and UML.
This approach is more generic than the current approach to interoperability
for Event-B and in fact, allows access to any formalism or logic
that has already been defined as an institution. Finally, by defining
EVT, we have outlined the steps required in order to include similar
formalisms into the institutional framework. Hence, this thesis acts as a
template for defining an institution for a specification language
A Review of Platforms for the Development of Agent Systems
Agent-based computing is an active field of research with the goal of
building autonomous software of hardware entities. This task is often
facilitated by the use of dedicated, specialized frameworks. For almost thirty
years, many such agent platforms have been developed. Meanwhile, some of them
have been abandoned, others continue their development and new platforms are
released. This paper presents a up-to-date review of the existing agent
platforms and also a historical perspective of this domain. It aims to serve as
a reference point for people interested in developing agent systems. This work
details the main characteristics of the included agent platforms, together with
links to specific projects where they have been used. It distinguishes between
the active platforms and those no longer under development or with unclear
status. It also classifies the agent platforms as general purpose ones, free or
commercial, and specialized ones, which can be used for particular types of
applications.Comment: 40 pages, 2 figures, 9 tables, 83 reference
Enhancing System Realisation in Formal Model Development
Software for mission-critical systems is sometimes analysed using formal specification to increase the chances of the system behaving as intended. When sufficient insights into the system have been obtained from the formal analysis, the formal specification is realised in the form of a software implementation. One way to realise the system's software is by automatically generating it from the formal specification -- a technique referred to as code generation. However, in general it is difficult to make guarantees about the correctness of the generated code -- especially while requiring automation of the steps involved in realising the formal specification. This PhD dissertation investigates ways to improve the automation of the steps involved in realising and validating a system based on a formal specification. The approach aims to develop properly designed software tools which support the integration of formal methods tools into the software development life cycle, and which leverage the formal specification in the subsequent validation of the system. The tools developed use a new code generation infrastructure that has been built as part of this PhD project and implemented in the Overture tool -- a formal methods tool that supports the Vienna Development Method. The development of the code generation infrastructure has involved the re-design of the software architecture of Overture. The new architecture brings forth the reuse and extensibility features of Overture to take into account the needs and requirements of software extensions targeting Overture. The tools developed in this PhD project have successfully supported three case studies from externally funded projects. The feedback received from the case study work has further helped improve the code generation infrastructure and the tools built using it
Browser and User Fingerprinting for Practical Deployment
Cílem diplomové práce je zmapovat informace poskytované webovými prohlížeči, které mohou být v praxi použity k identifikaci uživatelů na webových stránkách. Práce se zaměřuje na získání a následnou analýzu informací o zařízeních, prohlížečích a vedlejších efektů způsobených webovými rozšířeními, které maskují identitu uživatelů. Získání informací realizuje navržená a implementovaná knihovna v jazyce TypeScript, která byla nasazena na 4 komerčních webových stránkách. Analýza získaných informací je realizována po měsíci provozu knihovny a zaměřuje se na míru získané informace, rychlost získání informací a stabilitu informací. Z datové sady vyplývá, že až 94 % potenciálně různých uživatelů disponuje unikátní kombinací informací. Hlavní přínos této práce spočívá ve vytvořené knihovně, návrhu nových metod získávání informací, optimalizace stávajících metod a určení kvalitních a nekvalitních informací na základě jejich míry informace, rychlosti získání a stability v čase. The aim of the diploma thesis is to map the information provided by web browsers, which can be used in practice to identify users on websites. The work focuses on obtaining and subsequent analysis of information about devices, browsers and side effects caused by web extensions that mask the identity of users. The acquisition of information is realized by a designed and implemented library in the TypeScript language, which was deployed on 4 commercial websites. The analysis of the obtained information is carried out after a month of operation of the library and focuses on the degree of information obtained, the speed of obtaining information and the stability of information. The dataset shows that up to 94 % of potentially different users have a unique combination of information. The main contribution of this work lies in the created library, design of new methods of obtaining information, optimization of existing methods and the determination of quality and poor quality information based on their level of information, speed of acquisition and stability over time.
Model learning and test generation using cover automata
We propose an approach which, given a state-transition model of a system, constructs, in parallel, an approximate automaton model and a test suite for the system. The approximate model construction relies on a variant of Angluin's automata learning algorithm, adapted to finite cover automata. A finite cover automaton represents an approximation of the system which only considers sequences of length up to an established upper bound . Crucially, the size of the cover automaton, which normally depends on , can be significantly lower than the size of the exact automaton model. Thus, controlling , the state explosion problem normally associated with constructing and checking state based models can be mitigated. The proposed approach also allows for a gradual construction of the model and of the associated test suite, with complexity and time savings. Moreover, we provide automation of counterexample search, by a combination of black-box and random testing, and metrics to evaluate the quality of the produced results. The approach is presented and implemented in the context of the Event-B modeling language, but its underlying ideas and principles are much more general and can be applied to any system whose behavior can be suitably described by a state-transition model
Design components
PhD ThesisAlthough it is generally recognised that formal modelling is crucial for ensuring
the correctness of software systems, some obstacles to its wider adoption in software
engineering persist. One of these is that its productivity is low; another that
for modelling techniques and tools to be used efficiently, a broad range of specific
skills is required. With the gap between computer performance and engineers’
productivity growing, there is a need to raise the level of abstraction at which development
is carried out and off-load much of the routine work done manually today
to computers. Formal modelling has all the characteristics required to replace
programming and offer higher productivity. Nonetheless, as a branch of software
engineering it has yet to be generally accepted. While there is substantial research
accumulated in systems analysis and verification, notmuch has been done to foster
higher productivity and efficiency of modelling activity.
This study puts forward an approach that allows the modeller to encapsulate
design ideas and experience in a reusable package. This package, called a design
component, can be used in differentways. While a design component is generally intended
for constructing a new design using an existing one, we base our approach
on a refinement technique. The design encapsulated in the design component is
injected into a formal development by formally refining an abstract model. This
process is completely automated: the design component is integrated by a tool,
with the corresponding correctness proofs also handled automatically.
To help us construct design components we consider a number of techniques
of transforming models and describing reusable designs. We then introduce the
concept ofmodel transformation to encapsulate syntactic rewrite rules used to produce
new models. To capture high-level design we introduce the pattern language
allowing us to build abstraction and refinement patterns from model transformations.
Patterns automate the formal development process and reduce the number
of proofs. To help the modeller plan and execute refinement steps, we introduce
the concept of themodelling pattern. A modelling pattern combines refinement (or
abstraction) patterns with modelling guidelines to form a complete design component
Design components
Although it is generally recognised that formal modelling is crucial for ensuring the correctness of software systems, some obstacles to its wider adoption in software engineering persist. One of these is that its productivity is low; another that for modelling techniques and tools to be used efficiently, a broad range of specific skills is required. With the gap between computer performance and engineers’ productivity growing, there is a need to raise the level of abstraction at which development is carried out and off-load much of the routine work done manually today to computers. Formal modelling has all the characteristics required to replace programming and offer higher productivity. Nonetheless, as a branch of software engineering it has yet to be generally accepted. While there is substantial research accumulated in systems analysis and verification, notmuch has been done to foster higher productivity and efficiency of modelling activity. This study puts forward an approach that allows the modeller to encapsulate design ideas and experience in a reusable package. This package, called a design component, can be used in differentways. While a design component is generally intended for constructing a new design using an existing one, we base our approach on a refinement technique. The design encapsulated in the design component is injected into a formal development by formally refining an abstract model. This process is completely automated: the design component is integrated by a tool, with the corresponding correctness proofs also handled automatically. To help us construct design components we consider a number of techniques of transforming models and describing reusable designs. We then introduce the concept ofmodel transformation to encapsulate syntactic rewrite rules used to produce new models. To capture high-level design we introduce the pattern language allowing us to build abstraction and refinement patterns from model transformations. Patterns automate the formal development process and reduce the number of proofs. To help the modeller plan and execute refinement steps, we introduce the concept of themodelling pattern. A modelling pattern combines refinement (or abstraction) patterns with modelling guidelines to form a complete design component.EThOS - Electronic Theses Online ServiceGBUnited Kingdo
A Comprehensive Study of Declarative Modelling Languages
Declarative behavioural modelling is a powerful modelling paradigm
that enables users to model system functionality abstractly and
formally. An abstract model is a concise and compact representation
of key characteristics of a system, and enables the stakeholders to
reason about the correctness of the system in the early stages of
development.
There are many different declarative languages and they have greatly
varying constructs for representing a transition system, and they
sometimes differ in rather subtle ways. In this thesis, we compare
seven formal declarative modelling languages B, Event-B, Alloy, Dash,
TLA+, PlusCal, and AsmetaL on several criteria. We classify these
criteria under three main categories: structuring transition systems
(control modelling), data descriptions in transition systems (data
modelling), and modularity aspects of modelling. We developed this
comparison by completing a set of case studies across the data-
vs. control-oriented spectrum in all of the above languages.
Structurally, a transition system is comprised of a snapshot
declaration and snapshot space, initialization, and a transition
relation, which is potentially composed of individual transitions. We
meticulously outline the differences between the languages with
respect to how the modeller would express each of the above components
of a transition system in each language, and include discussions
regarding stuttering and inconsistencies in the transition relation.
Data-related aspects of a formal model include use of basic and
composite datatypes, well-formedness and typechecking, and separation
of name spaces with respect to global and local variables. Modularity
criteria includes subtransition systems and data decomposition. We
employ a series of small and concise exemplars we have devised to
highlight these differences in each language. To help modellers
answer the important question of which declarative modelling language
may be most suited for modelling their system, we present
recommendations based on our observations about the differentiating
characteristics of each of these languages
- …