83,194 research outputs found
Towards Practical Graph-Based Verification for an Object-Oriented Concurrency Model
To harness the power of multi-core and distributed platforms, and to make the
development of concurrent software more accessible to software engineers,
different object-oriented concurrency models such as SCOOP have been proposed.
Despite the practical importance of analysing SCOOP programs, there are
currently no general verification approaches that operate directly on program
code without additional annotations. One reason for this is the multitude of
partially conflicting semantic formalisations for SCOOP (either in theory or
by-implementation). Here, we propose a simple graph transformation system (GTS)
based run-time semantics for SCOOP that grasps the most common features of all
known semantics of the language. This run-time model is implemented in the
state-of-the-art GTS tool GROOVE, which allows us to simulate, analyse, and
verify a subset of SCOOP programs with respect to deadlocks and other
behavioural properties. Besides proposing the first approach to verify SCOOP
programs by automatic translation to GTS, we also highlight our experiences of
applying GTS (and especially GROOVE) for specifying semantics in the form of a
run-time model, which should be transferable to GTS models for other concurrent
languages and libraries.Comment: In Proceedings GaM 2015, arXiv:1504.0244
A Graph-Based Semantics Workbench for Concurrent Asynchronous Programs
A number of novel programming languages and libraries have been proposed that
offer simpler-to-use models of concurrency than threads. It is challenging,
however, to devise execution models that successfully realise their
abstractions without forfeiting performance or introducing unintended
behaviours. This is exemplified by SCOOP---a concurrent object-oriented
message-passing language---which has seen multiple semantics proposed and
implemented over its evolution. We propose a "semantics workbench" with fully
and semi-automatic tools for SCOOP, that can be used to analyse and compare
programs with respect to different execution models. We demonstrate its use in
checking the consistency of semantics by applying it to a set of representative
programs, and highlighting a deadlock-related discrepancy between the principal
execution models of the language. Our workbench is based on a modular and
parameterisable graph transformation semantics implemented in the GROOVE tool.
We discuss how graph transformations are leveraged to atomically model
intricate language abstractions, and how the visual yet algebraic nature of the
model can be used to ascertain soundness.Comment: Accepted for publication in the proceedings of FASE 2016 (to appear
Modelling human-computer interaction
Human-computer interaction (HCI) can effectively be understood as a continuous process
of cyclic interaction between the user and the environment. The action the user takes leads
to changes to the system or the environment. These are evaluated by the user, and then this
evaluation results in changes to goals, and then the user takes another action based on the
changes to goals. In order to effectively describe the continuous process of cyclic
interaction, a notation that a user interface designer could reason about the interactivity is
needed. This paper claims that a cyclic notation is able to account for the intimate
connection between goal, action and the environment, allowing a user interface designer to
make explicit what a process achieves, as well as what triggers that process. It is thus
possible for designers to build interactive versions of the designs so as to assess the
assumptions made or being made regarding the interaction between the user and the system
Recommended from our members
AODM as a framework and model for characterising learner experiences with technology
The task of characterising learner experiences with technology is increasingly becoming complex due to continuous technological advancements that enable learners to connect, collaborate, generate educational resources and promptly share them in various settings. The challenge for the educator is to understand how to effectively capture and represent learners’ current and future experiences with technology. This paper presents ‘Activity-Oriented Design Method’ (AODM) as a framework and model for characterising personalised and contextualised learner experiences with technology. The objective is to show how AODM can be used to understand learner experiences by examining learner practices with technology and interactions with each other. The aim is to assess the significance and adequacy of AODM as a framework and model that contributes to future understanding of learner experiences with technology. In order to support our arguments, we draw practical insights from two studies that applied AODM to e-learning investigations. The outcome of this analysis is an assessment of the capacity of AODM as a model and framework for characterising both current and future learner experiences with technology. Furthermore, the analysis illuminates the processes of change that inform the design and use of future technologies for learning
A CSP-Based Trajectory for Designing Formally Verified Embedded Control Software
This paper presents in a nutshell a procedure for producing formally verified concurrent software. The design paradigm provides means for translating block-diagrammed models of systems from various problem domains in a graphical notation for process-oriented architectures. Briefly presented CASE tool allows code generation both for formal analysis of the models of software and code generation in a target implementation language. For formal analysis a highquality commercial formal checker is used
Model transformations and Tool Integration
Model transformations are increasingly recognised as being of significant importance to many areas of software development and integration. Recent attention on model transformations has particularly focused on the OMGs Queries/Views/Transformations (QVT) Request for Proposals (RFP). In this paper I motivate the need for dedicated approaches to model transformations, particularly for the data involved in tool integration, outline the challenges involved, and then present a number of technologies and techniques which allow the construction of flexible, powerful and practical model transformations
Automated Verification of Design Patterns with LePUS3
Specification and [visual] modelling languages are expected to combine strong abstraction mechanisms with rigour, scalability, and parsimony. LePUS3 is a visual, object-oriented design description language axiomatized in a decidable subset of the first-order predicate logic. We demonstrate how LePUS3 is used to formally specify a structural design pattern and prove (‗verify‘) whether any JavaTM 1.4 program satisfies that specification. We also show how LePUS3 specifications (charts) are composed and how they are verified fully automatically in the Two-Tier Programming Toolkit
A Survey of Requirements Engineering Methods for Pervasive Services
Designing and deploying ubiquitous computing systems, such as those delivering large-scale mobile services, still requires large-scale investments in both development effort as well as infrastructure costs. Therefore, in order to develop the right system, the design process merits a thorough investigation of the wishes of the foreseen user base. Such investigations are studied in the area of requirements engineering (RE). In this report, we describe and compare three requirements engineering methods that belong to one specific form of RE, namely Goal-Oriented Requirements Engineering. By mapping these methods to a common framework, we assess their applicability in the field of ubiquitous computing systems
- …