324,515 research outputs found
Life of occam-Pi
This paper considers some questions prompted by a brief review of the history of computing. Why is programming so hard? Why is concurrency considered an “advanced” subject? What’s the matter with Objects? Where did all the Maths go? In searching for answers, the paper looks at some concerns over fundamental ideas within object orientation (as represented by modern programming languages), before focussing on the concurrency model of communicating processes and its particular expression in the occam family of languages. In that focus, it looks at the history of occam, its underlying philosophy (Ockham’s Razor), its semantic foundation on Hoare’s CSP, its principles of process oriented design and its development over almost three decades into occam-? (which blends in the concurrency dynamics of Milner’s ?-calculus). Also presented will be an urgent need for rationalisation – occam-? is an experiment that has demonstrated significant results, but now needs time to be spent on careful review and implementing the conclusions of that review. Finally, the future is considered. In particular, is there a future
Guidelines For Pursuing and Revealing Data Abstractions
Many data abstraction types, such as networks or set relationships, remain
unfamiliar to data workers beyond the visualization research community. We
conduct a survey and series of interviews about how people describe their data,
either directly or indirectly. We refer to the latter as latent data
abstractions. We conduct a Grounded Theory analysis that (1) interprets the
extent to which latent data abstractions exist, (2) reveals the far-reaching
effects that the interventionist pursuit of such abstractions can have on data
workers, (3) describes why and when data workers may resist such explorations,
and (4) suggests how to take advantage of opportunities and mitigate risks
through transparency about visualization research perspectives and agendas. We
then use the themes and codes discovered in the Grounded Theory analysis to
develop guidelines for data abstraction in visualization projects. To continue
the discussion, we make our dataset open along with a visual interface for
further exploration
A Formulation of the Potential for Communication Condition using C2KA
An integral part of safeguarding systems of communicating agents from covert
channel communication is having the ability to identify when a covert channel
may exist in a given system and which agents are more prone to covert channels
than others. In this paper, we propose a formulation of one of the necessary
conditions for the existence of covert channels: the potential for
communication condition. Then, we discuss when the potential for communication
is preserved after the modification of system agents in a potential
communication path. Our approach is based on the mathematical framework of
Communicating Concurrent Kleene Algebra (C2KA). While existing approaches only
consider the potential for communication via shared environments, the approach
proposed in this paper also considers the potential for communication via
external stimuli.Comment: In Proceedings GandALF 2014, arXiv:1408.556
Safe and Verifiable Design of Concurrent Java Programs
The design of concurrent programs has a reputation for being difficult, and thus potentially dangerous in safetycritical real-time and embedded systems. The recent appearance of Java, whilst cleaning up many insecure aspects of OO programming endemic in C++, suffers from a deceptively simple threads model that is an insecure variant of ideas that are over 25 years old [1]. Consequently, we cannot directly exploit a range of new CASE tools -- based upon modern developments in parallel computing theory -- that can verify and check the design of concurrent systems for a variety of dangers\ud
such as deadlock and livelock that otherwise plague us during testing and maintenance and, more seriously, cause catastrophic failure in service. \ud
Our approach uses recently developed Java class\ud
libraries based on Hoare's Communicating Sequential Processes (CSP); the use of CSP greatly simplifies the design of concurrent systems and, in many cases, a parallel approach often significantly simplifies systems originally approached sequentially. New CSP CASE tools permit designs to be verified against formal specifications\ud
and checked for deadlock and livelock. Below we introduce CSP and its implementation in Java and develop a small concurrent application. The formal CSP description of the application is provided, as well as that of an equivalent sequential version. FDR is used to verify the correctness of both implementations, their\ud
equivalence, and their freedom from deadlock and livelock
A distributed Real-Time Java system based on CSP
CSP is a fundamental concept for developing software for distributed real time systems. The CSP paradigm constitutes a natural addition to object orientation and offers higher order multithreading constructs. The CSP channel concept that has been implemented in Java deals with single- and multi-processor environments and also takes care of the real time priority scheduling requirements. For this, the notion of priority and scheduling has been carefully examined and as a result it was reasoned that priority scheduling should be attached to the communicating channels rather than to the processes. In association with channels, a priority based parallel construct is developed for composing processes: hiding threads and priority indexing from the user. This approach simplifies the use of priorities for the object oriented paradigm. Moreover, in the proposed system, the notion of scheduling is no longer connected to the operating system but has become part of the application instead
How software engineering research aligns with design science: A review
Background: Assessing and communicating software engineering research can be
challenging. Design science is recognized as an appropriate research paradigm
for applied research but is seldom referred to in software engineering.
Applying the design science lens to software engineering research may improve
the assessment and communication of research contributions. Aim: The aim of
this study is 1) to understand whether the design science lens helps summarize
and assess software engineering research contributions, and 2) to characterize
different types of design science contributions in the software engineering
literature. Method: In previous research, we developed a visual abstract
template, summarizing the core constructs of the design science paradigm. In
this study, we use this template in a review of a set of 38 top software
engineering publications to extract and analyze their design science
contributions. Results: We identified five clusters of papers, classifying them
according to their alignment with the design science paradigm. Conclusions: The
design science lens helps emphasize the theoretical contribution of research
output---in terms of technological rules---and reflect on the practical
relevance, novelty, and rigor of the rules proposed by the research.Comment: 32 pages, 10 figure
Recommended from our members
Communicating, learning and the in-between: a study of the impact of open-access, informal online learning environments
1. The broad aim of this project has been to contribute understandings of the uses of computer-mediated communication in 'informal' (not leading to certification) yet institutionally-hosted online spaces. The project consisted of an investigation into engagement with communication and discussion tools provided by OpenLearn, the Open University's Open Content Initiative (http://www.open.ac.uk/openlearn).
2. The research focused on a selection of examples of asynchronous and synchronous communication situations within OpenLearn, including a selection of forums from the LearningSpace (http://openlearn.open.ac.uk) and various instances of synchronous communication using FM (FlashMeeting) that took place within the context of two pilot studies organised by the researcher in coordination with discipline-based colleagues.
3. Whilst the research was based on an action research orientation, the approach was predominantly exploratory and ethnographic methods (observation and participant observation) were used, complemented with semi-structured interviews, as appropriate. Thematic analysis was used within a grounded theory approach.
4. The study suggests 5 themes as core elements of engagement in CMC within an OER context: 'validation�; 'privacy�; 'trust�; 'purposefulness�; 'leadership'. The themes are mutually-dependent and each warrants more detailed investigation, and relevant topics are discussed.
5. In short, the study provides a contribution to enquiries on the impact of OERs in that it brings to light, from within a sample of learning situations across the 'informal�/�formal' space, a number of boundary issues concerning curriculum and, in particular, pedagogy. It suggests that a major aspect of the impact of OERs is that their availability is not only creating new challenges but also uncovering previously veiled tensions and questions regarding identity and boundaries.
6. A number of outputs have been generated, including two new projects that capitalise on understandings facilitated during the pilots carried out within the remit of this study
Building Blocks for Control System Software
Software implementation of control laws for industrial systems seem straightforward, but is not. The computer code stemming from the control laws is mostly not more than 10 to 30% of the total. A building-block approach for embedded control system development is advocated to enable a fast and efficient software design process.\ud
We have developed the CTJ library, Communicating Threads for JavaÂż,\ud
resulting in fundamental elements for creating building blocks to implement communication using channels. Due to the simulate-ability, our building block method is suitable for a concurrent engineering design approach. Furthermore, via a stepwise refinement process, using verification by simulation, the implementation trajectory can be done efficiently
gCSP: A Graphical Tool for Designing CSP systems
For broad acceptance of an engineering paradigm, a graphical notation and a supporting design tool seem necessary. This paper discusses certain issues of developing a design environment for building systems based on CSP. Some of the issues discussed depend specifically on the underlying theory of CSP, while a number of them are common for any graphical notation and supporting tools, such as provisions for complexity management and design overview
- …