Anthony J. H. Simons
University of Sheffield
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Anthony J. H. Simons.
ACM Computing Surveys | 2009
Robert M. Hierons; Kirill Bogdanov; Jonathan P. Bowen; Rance Cleaveland; John Derrick; Jeremy Dick; Marian Gheorghe; Mark Harman; Kalpesh Kapoor; Paul Krause; Gerald Lüttgen; Anthony J. H. Simons; Sergiy A. Vilkomir; Martin R. Woodward; Hussein Zedan
Formal methods and testing are two important approaches that assist in the development of high-quality software. While traditionally these approaches have been seen as rivals, in recent years a new consensus has developed in which they are seen as complementary. This article reviews the state of the art regarding ways in which the presence of a formal specification can be used to assist testing.
Behavioral Specifications of Businesses and Systems | 1999
Anthony J. H. Simons; Ian Graham
The authors offer a catalogue of problems experienced by developers, using various object modelling techniques brought into prominence by the widespread adoption of UML standard notations. The catalogue is revised to reflect changes made between UML versions 1.1 and 1.3, in which a number of semantic inconsistencies in the notation were fixed. Notwithstanding this, developers still seem to create inordinate problems for themselves by pursuing unproductive development strategies that are apparently fostered by UML. This article shows how the biggest problem by far is cognitive misdirection, or the apparent ease with which the rush to build UML models may distract the developer from important perspectives on a system. This problem is more serious than the outstanding inconsistencies and ambiguities which still exist in UML 1.3. A number ofinadequacies are also highlighted, where UML somehow still fails to express what we believe are important semantic issues. While UML itself is mostly neutral with respect to good or bad designs, the consequences of allowing UML to drive the development process include: inadequate object conceptualisation, poor control structures and poorly-coupled subsystems.
The Journal of Object Technology | 2002
Anthony J. H. Simons
The reconstruction of the classic set of subtyping rules for object types, which include rules for recursive types is discussed. The syntactic subtyping rules were constructed to determine when it is safe to substitute one object in place of another, where a different type was possibly expected. It is stated that the object types are recursive where the type signatures of their methods accept or return objects of the same type. It is also stated that the flexible object-oriented notion of type compatibility is based on a safe substitution property. It is stated that a countable number of languages obey both the covariant and contravariant parts of the function subtyping rule.
Information & Software Technology | 1999
K.G. van den Berg; Anthony J. H. Simons
The control-flow for five kinds of use cases is analysed: for common use cases, variant use cases, component use cases, specialised use cases and for ordered use cases. The control-flow semantics of use cases - and of the uses-relation, the extends-relation and the precedes-relation between use cases - is described in terms of flowgraphs. Sequence diagrams of use cases are refined to capture the control-flow adequately. Guidelines are given for use case descriptions to attain a well-defined flow of control.
automated software engineering | 2007
Anthony J. H. Simons
Abstract Popular software testing tools, such as JUnit, allow frequent retesting of modified code; yet the manually created test scripts are often seriously incomplete. A unit-testing tool called JWalk has therefore been developed to address the need for systematic unit testing within the context of agile methods. The tool operates directly on the compiled code for Java classes and uses a new lazy method for inducing the changing design of a class on the fly. This is achieved partly through introspection, using Java’s reflection capability, and partly through interaction with the user, constructing and saving test oracles on the fly. Predictive rules reduce the number of oracle values that must be confirmed by the tester. Without human intervention, JWalk performs bounded exhaustive exploration of the class’s method protocols and may be directed to explore the space of algebraic constructions, or the intended design state-space of the tested class. With some human interaction, JWalk performs up to the equivalent of fully automated state-based testing, from a specification that was acquired incrementally.
Proceedings of the 3rd International Workshop on Monitoring, Adaptation and Beyond | 2010
Konstantinos Bratanis; Dimitris Dranidis; Anthony J. H. Simons
Trust in Web services will be greatly enhanced if these are subject to run-time verification, even if they were previously tested, since their context of execution is subject to continuous change; and services may also be upgraded without notifying their consumers in advance. Conversational Web services introduce added complexity when it comes to run-time verification, since they follow a conversation protocol and they have a state bound to the session of each consumer accessing them. Furthermore, conversational Web services have different policies on how they maintain their state. Access to states can be private or shared; and states may be transient or persistent. These differences must be taken into account when building a scalable architecture for run-time verification through monitoring. This paper, building on a previously proposed theoretical framework for run-time verification of conversational Web services, presents the design, implementation and validation of a novel run-time monitoring architecture for conversational services, which aims to provide a holistic monitoring framework enabling the integration of different verification tools. The architecture is validated by running a sequence of test scenarios, based on a realistic example. The experimental results revealed that the monitoring activities have a tolerable overhead on the operation of a Web service.
balkan conference in informatics | 2013
Fotis Gonidis; Anthony J. H. Simons; Iraklis Paraskakis; Dimitrios Kourtesis
Growing interest towards cloud application platforms has resulted in a large number of platform offerings to be already available on the market and new related products to be continuously launched. However, there are a number of challenges that prevent cloud application platforms from becoming widely adopted. One such challenge is application portability. This paper reports on an ongoing effort to explore the area of cloud application portability. We briefly examine the issue of heterogeneity in cloud platforms and highlight specific platform characteristics that may hinder the portability of cloud applications. We present some high level approaches and existing work that attempts to address this challenge. In order to narrow down the area of our exploration we have been carrying out an experiment in cross-platform application development and deployment with four prominent cloud platforms: OpenShift, Google App Engine, Heroku, and Amazon Elastic Beanstalk. We briefly discuss our initial conclusions from this ongoing experimentation.
european semantic web conference | 2009
Ervin Ramollari; Dimitrios Kourtesis; Dimitris Dranidis; Anthony J. H. Simons
Recent years have seen the utilisation of Semantic Web Service descriptions for automating a wide range of service-related activities, with a primary focus on service discovery, composition, execution and mediation. An important area which so far has received less attention is service validation, whereby advertised services are proven to conform to required behavioural specifications. This paper proposes a method for validation of service-oriented systems through automated functional testing. The method leverages ontology-based and rule-based descriptions of service inputs, outputs, preconditions and effects (IOPE) for constructing a stateful EFSM specification. The specification is subsequently utilised for functional testing and validation using the proven Stream X-machine (SXM) testing methodology. Complete functional test sets are generated automatically at an abstract level and are then applied to concrete Web services, using test drivers created from the Web service descriptions. The testing method comes with completeness guarantees and provides a strong method for validating the behaviour of Web services.
The Journal of Object Technology | 2003
Anthony J. H. Simons
The theory of classification in object oriented languages are discussed. The differences between classes and types in object oriented languages are described by developing the alternative formal model of classification and inheritance. Extensibility and polymorphism are the two characteristics that hold classes apart from the traditional variable types. Classes are used to refer to a polymorphic family and types are used to refer one member of this family.
ABZ '08 Proceedings of the 1st international conference on Abstract State Machines, B and Z | 2008
John Derrick; Siobhán North; Anthony J. H. Simons
In this paper we discuss our progress towards building a model-checker for Z. The approach we take in our Z2SAL project involves implementing a translation from Z into the SAL input language, upon which the SAL toolset can be applied. The toolset includes a number of model-checkers together with a simulator. In this paper we discuss our progress towards implementing as complete as a translation as possible, the limitations we have reached and the optimizations we have made. We illustrate with a small example.