Redevelopment of an Industrial Case Study Using Event-B and Rodin

Size: px
Start display at page:

Download "Redevelopment of an Industrial Case Study Using Event-B and Rodin"

Transcription

1 Redevelopment of an Industrial Case Study Using Event-B and Rodin Abdolbaghi Rezazadeh 1, Neil Evans 2 and Michael Butler 1 1 School of Electronics and Computer Science, University of Southampton, UK 2 AWE, Aldermaston, UK Abstract CDIS is a commercial air traffic information system that was developed using formal methods 15 years ago by Praxis, and it is still in operation today. This system is an example of an industrial scale system that has been developed using formal methods. In particular, the functional requirements of the system were specified using VVSL a variant of VDM. A subset of the original specification has been chosen to be reconstructed on the Rodin platform based on the new Event-B formalism. The goal of our reconstruction was to overcome three key difficulties of the original formalisation, namely the difficulty of comprehending the original specification, the lack of any mechanical proof of the consistency of the specification and the difficulty of dealing with distribution and atomicity refinement. In this paper we elucidate how a new formal notation and tool can help to overcome these difficulties. Keywords: CDIS, Formal Methods, Event-B, Rodin 1. INTRODUCTION The CCF 1 Display and Information System (CDIS) [1] is a computerised system that provides important airport and flight data for the duties of air traffic controllers based at the London Terminal Control Centre. Each user position is a workstation that includes a page selection device (to select CDIS pages) and an electronic display device (to display the selected pages). The original system was developed by Praxis 2 in 1992 and has been operational ever since. This system is an example of an industrial scale system that has been developed using formal methods. In particular, the functional requirements of the system were specified using VVSL [2] a variant of VDM [3]. The formal development resulted in about 1200 pages of specification documents and about 3000 pages of design documents. The reliability of the delivered system is encouraging for formal methods in large scale system development because the defect rate was a considerable improvement on other similarly sized projects [4]. However, no formal reasoning was applied to the specification. This paper describes a case study of the RODIN project 3 that is based on CDIS. The RODIN project is an EU-IST project concerned with the provision of methods and tools for rigorous development of complex software-based systems. Contemporary tool support has been used to develop a formal specification. The objective of the experiment (that we shall refer to as the CDIS subset ) is to derive a methodology for large scale formal development. Redeveloping an existing system also allows us to reflect on the lessons learned from the original development. Our aim in this paper is to demonstrate how we have attempted to overcome the lack of comprehensibility, dealing with distribution and formal proof of the original CDIS development by adopting a methodology that makes use of available tool support in an effective way. The rest of the paper is as follows: Section 2 gives an overview of the case study and how it has been extracted form the original specification, Section 3 describes Event-B (which is our notation of choice), and Section 4 describes our methodology in defining an abstract specification of a 1 Central Control Function 2 Praxis High Integrity Systems Ltd., U.K. 3 RODIN (Rigorous Open Development Environment for Complex Systems) is an EU funded research project IST

2 generic display system and demonstrates how layered refinement is used to achieve the main goals of the project. We conclude this approach in Section THE CDIS CASE STUDY It is apparent from the previous section that the CDIS system as a whole is very complex. In order to keep the case study manageable in the context of the RODIN project, a subset of the original CDIS has been carefully chosen for redevelopment [5]. However, rather than focusing on individual aspects of CDIS, a vertical slice has been taken so that all of the interesting features of the system are covered (albeit in a lesser form). At the heart of the CDIS subset is the core specification that gives the functional properties of the system, and shall be the focus of this paper. In addition to the core specification, there is a concurrency specification and a description of the user interface The Original Specification The core specification is only one part of the overall CDIS documentation. It gives an idealised view of the entire functional behaviour of the system. (The design document states how this is actually realised.) In order to avoid ambiguity, in this paper we will often refer to the core specification as the original VDM specification. The core specification consists of a number of VVSL modules, each of which contains type, constant and state definitions. (The bulk of the specification is made up of Boolean functions that are used in the pre/post conditions of other definitions.) A module can import other modules so that the imported definitions are available in the importing module. This gives a VVSL specification its structure. This approach encourages a bottom-up development in which the overall specification emerges from the way in which its modules are combined. The core specification of CDIS comprises 15 modules. However, we can identify three main parts (or contexts): Airport-related data. This concerns airport-specific values such as weather or runway information. The Meta data module identifies the airport attributes and their value types. Functions are defined to update the values of the attributes. The Airport records module declares a state variable that holds all of the actual values of the attributes. Page-related data. This gives a device-independent and data-independent record of the pages that can be displayed by CDIS. Types are declared to model the layouts of pages. Actual pages are held in the state variables declared in the Pages module. Display-related data. This concerns the physical devices that are used to retrieve and display information. Other subsidiary modules such as the date/time module are concerned with other important features of CDIS. By far the largest module in the core specification is EDD displays that contains the operations of the system. All of the modules listed above are imported by EDD displays to enable the definition of the operations Preliminary Observation and Reflection on the Original Specification It is worth emphasising that the CDIS specification is necessarily complicated. Even though the core specification has been criticised for its complexity, it is unrealistic to expect any significant improvements in the size of a specification that captures all aspects of CDIS, regardless of the notation used. However, the bottom-up construction in VVSL forces a level of specification that is too detailed to get an appreciation of the overall system behaviour. Too much complexity also precludes formal analysis. In order to reason about a specification formally, it is necessary to keep the level of detail as simple as possible. Otherwise mathematical proof becomes infeasible. Analysing monolithic specifications such as the CDIS core specification would be beyond the capabilities of contemporary formal methods tools without intense human intervention. This was not an issue during the original CDIS development because tool support was largely unavailable, and large-scale formal analysis was out of the question. 2

3 Another drawback of the original development is the lack of continuity from the specification to the design. In the idealised view of the core specification, updates are performed instantaneously at all user positions, whilst there is an inevitable delay in the actual system because the information must be distributed to the user positions. Hence, there is no natural refinement of the original specification (in the usual sense of the word) to the design. We are investigating more novel notions of refinement in order to find a suitable link between the two viewpoints. 3. NEW EVENT-B, NOTATION, METHODOLOGY AND DEVELOPMENT ENVIRONMENT The original B method [6] is a well known approach to the formal specification and development of sequential computer programs. Inspired by action systems and other research in the area of distributed systems modelling, the B method has evolved to incorporate system modelling and distributed system development. This extension is called Event-B [7]. An abstract Event-B model comprises a static part called the context, and a dynamic part called the machine. The machine has access to the context via a SEES relationship. All sets, constants, and their properties are defined in the context. The machine contains all of the state variables. The values of the variables are set up using the INITIALISATION clause, and values can be changed via the execution of events. Ultimately, we aim to prove properties of the specification, and these properties are made explicit using the INVARIANT clause. The tool support generates proof obligations which must be discharged to verify that the invariant is maintained. Events are specialised forms of standard B operations [6]. In general, an event E can appear in one of the following three forms: E = BEGIN S(v) END E = WHEN P (v) THEN S(v)END E = ANY t WHERE P (t, v) THEN S(t, v) END where P (...) is a predicate denoting the guard, t denotes some variables that are local to the event, and S(...) denotes the action that updates some variables. The variables of the machine containing the event are denoted by v. The action consists of a collection of assignments that modify the state simultaneously. An assignments has one of the following three simple forms: x := E(t, v) x : E(t, v) x : Q(t, v, x0) where x are some variables, E(...) denotes an expression, and Q(...) a predicate. If there is more than one action in the body of an event the assumption is that all can take place simultaneously. Any variables that do not appear on the left hand side of an assignment of action do not change. In order to refine an abstract Event-B specification, it is possible to refine the model and context separately. Refinement of a context consists of adding additional sets, constants or properties (the sets, constants and properties of the abstract context are retained). Refinement of existing events in a model is similar to refinement in the B method: a gluing invariant in the refined model relates its variables to those of the abstract model. Proof obligations are generated to ensure that this invariant is maintained. In Event-B, abstract events can be refined by more than one event. In addition, Event-B allows refinement of a model by adding new events on the proviso that they cannot diverge (i.e. execute forever). This condition ensures that the abstract events can still occur. Since the new events operate on the state variables of the refined model, they must implicitly refine the abstract event skip. More information on Event-B methodology can be found in [7] and [8]. 3

4 A contemporary tool has been developed under the RODIN project [9] to fully support the Event- B notation and methodology. Rodin is an open tool platform for the rigorous development of dependable complex software systems and services. It provides natural support for refinement and mathematical proof. This platform is based on the Eclipse framework and it is extendable with plug-ins. The extensibility of the main platform and its support for combination of different complementary tools, openness and customizability are very important aspects of the tool. They allow users to customize and adapt the basic tools to their particular needs. 4. CDIS REDEVELOPMENT IN EVENT-B In this section we describe our formal development of CDIS in Event-B. The original core specification of CDIS is our reference model and the main objectives are to address the following issues: The difficulty in comprehending the original specification and the need for better modularisation. The lack of any formal proof in the original development. The need to formally link the abstract specification to the distributed design. In order to get a better overview of the entire process, we follow a top-down approach. At the top level, we ignore all of the airport-specific features to produce a specification describing a generic display system. Through an iterated refinement process, we introduce more features into the specification until all of the CDIS functionality is specified. This procedure is supported by the Rodin tool. At each step the tool generates a number of proof obligations which must be discharged in order to show that the models are consistent with their invariants. Since each refinement introduces only a small part of the overall functionality, the number of proof obligations at each step is relatively small (approximately less than 20) Description of the Achieved Results - Centralised Version In this stage we address the first two issues which we have identified in the previous section. Thus we shall be concerned with an idealised view of the system, as modelled in the original core specification. We model a system that has a centralised database from which information can be retrieved. We begin by constructing a specification for a generic system (which will be, of course, somewhat influenced by the original VDM specification) and, through subsequent refinements, introduce more and more airport specific details so that we produce a specification of the necessary complexity, and reason about it along the way. By providing a top-down sequence of refinements it is possible to select an appropriate level of abstraction to view the system: an abstract overview can be obtained from higher level specifications whilst specific details can be obtained from lower levels Abstract Specification (CDIS Context + ABS DISPLAY) The abstract specification for a generic system includes two parts. The static part, which defines the reference sets and constants, such as Pages, Displays and other related attributes is named CDIS Context. The second part, the dynamic part, is defining the variables, their related invariants, and events. One of the main functionalities of the system is to allow operators to select and view a particular page. Each defined page in the system contains a collection of attributes and their values (e.g. temperature at Airport X). The system stores information on these attributes in a database. The variable database represents this stored information which in its simplest view contains a collection of attributes and their associated values. The page selections records the page number currently selected at a user position. The variable private pages holds the page contents of a page prior to release. This is intended to model an editor s ability to construct new pages before they are made public. Finally, trq models the timed release queue that enables a new version of a page to be stored until a given time is reached, whereupon it is made public. 4

5 Almost all of the events given in the ABS DISPLAY correspond to operations defined in the original VDM specification. These are UPDATE DATABASE, SET DATA VALUE, ADD PAGE, RELEASE PAGE, DELETE PAGE, RELEASE PAGE CURRENT, DISPLAY PAGE, DISMISS PAGE, ADD PAGE TO TRQ and RELEASE PAGES FROM TRQ. One exception is the VIEW PAGE event that uses the disp values function to output an actual display. This is an addition to the original VDM specification but, since outputs must be preserved during refinement, it forces us to ensure that the appearance of actual displays is preserved First Refinement - Introducing Page Layout History This refinement is not introducing significant changes into the specification. In this level we have just introduced the history for page layout. When an existing page layout has been updated by the editors, the system keeps the previous page layout as one step history of changes. In this level no new context has been introduced Second Refinement - Adding time The abstract specification omitted many of the features that characterise CDIS. However, this made it possible to give a broad overview of the system, including its state variables and operations, within a few pages. Now we use the specification as a basis for further refinements in which the omitted details are introduced. As a second refinement, we introduce a notion of time so that we can add age information to attributes, and add creation and release times to pages. This will give us the necessary apparatus to model the intended behaviour of the timed release queue. This refinement and subsequent refinements will demonstrate how important features of CDIS are added to the specification incrementally. In terms of the CDIS subset, there are two main reasons for adding time: each piece of airport data has an age which affects how it is displayed, and the version of each page that is displayed is also time-dependent. In this stage both the context and the model have been extended with appropriate constructs to deal with the notion of time. To add the time we have used the proposed syntax for record types in [10]. This approach provides a method for gradual refinement of complex data types and upholds the principles of Event-B refinement Third Refinement - Introducing Critical Fields and Acknowledge Several other aspects of CDIS can affect the way values are displayed. One requirement is that there is some critical information which they subjected to regular updates. Any new updated values should be highlighted when they are displayed and they should be acknowledged by the operators. Hence, with each attribute value, we need to record whether it is a critical field or not. When a critical field has been updated it may effects many active pages currently viewed by different user positions. In this stage we have introduced the edd acks required and related sets and constants to extent our model with the critical fields requirement. Again here we have extended both the context and the model Fourth Refinement - Introducing Page Overlays Airport pages comprise a pair of graphic background overlays and a layout descriptor for transient data fields. One overlay is permanently displayed, the other is selectable using the reveal/conceal facility. Transient data fields are always displayed - they are unaffected by the reveal/conceal state. Airport pages need to be validated to ensure that none of the transient data fields are obscured by the background or overlay. The reveal/conceal facility applies only to EDDs displaying pages. For all EDDs there is a means of toggling the reveal/conceal state of the display. This affects only those pages on display that consist of a permanent background and an overlay. Concealed displays models the set of EDDs for which the overlay is concealed. The overlays of pages displayed on all other EDDs are revealed. The act of toggling reveal/conceal at an EDD adds the EDD to the set if it is not a 5

6 member beforehand, otherwise removes it. The specification has been augmented by a fourth refinement in which this features are introduced Fifth Refinement - Highlighting Manual Interaction Another aspect of CDIS that can affect the way values are displayed is manually updated values. One requirement is that any manually updated values should be highlighted when they are displayed. Hence, with each attribute value, we need to record whether it was updated manually. Once again, we use our notion of record refinement to achieve this. The Boolean value associated with the new field manually updated indicates whether the attribute s latest recorded value (accessed via the value field) has been input manually. In this case, we extend the record type Attrs with a Boolean flag which indicate whether or not the field has been updated manually. We included this requirement in the fifth refinement level Sixth Refinement - Introducing Concrete Values and Error Handling The ultimate aim of the refinement process is to construct a specification in which constants and variables are associated with concrete values and events are defined to maintain the state accordingly. As part of this process, we have to separate a single abstract type into several subtypes. In the case of CDIS, this technique is used to introduce concrete attribute identifiers and value types into the specification. For example, the original VDM specification defines Attr value as a union type made up of value types such as Wind direction and Wind speed. Although union types do not exist in B, we employ a separation technique to achieve the same goal. We define a new context in which Wind direction and Wind speed are defined as subtypes of Attr value. Wind direction and Wind speed are just two examples of many different subtypes of the Attr value (see [10] for approach to representing subtypes in Event-B). In the two subsequent refinements we have introduced many other similar subtypes. These refinements enforce extension of some events to ensure that only values of the correct type update the database. For example the SET DATA VALUE event in the previous levels updated any given attribute identifier with any attribute value. Now it must be refined in such a way that checks the matching between any possible subtype of Attr id with its corresponding Attr value before updating the database. This potentially can make our refinement very complex. To avoid having a collection of events, each referring to a specific subtype of Attr id and Attr value we have used a matching function. Again here the constant mapping has been used to model this matching function Description of the Achieved Results - Distributed Version As it has been stated earlier the lack of formal connection between the idealised specification and the more realistic design, was one the weaknesses of the initial CDIS development. In this section we describe our attempt to construct a more realistic specification which unlike the initial VVL specification can be linked to the distributed design. Using the experiences that we have achieved by developing the idealised version, we have developed a set of new models which includes both horizontal and vertical refinements. Horizontal refinement refers to a mechanism by which we incorporate more requirements into the model, whilst in vertical refinement we take design decisions Abstract Specification for Distributed Version of CDIS This specification is an extension of the idealised version. We have introduced a history tracking system both for the transient data and the page layouts and selections. In a realistic system it is possible that different terminals in different user position have a different view of both transient data and page layout in a specific time. These differences arise due to delays in the system. In our distributed specification we have assumed that we can model the actual behaviour of the system by storing the history of all applied changes over the time. By having the past history of all 6

7 changes it is possible to model a system which allows different terminals to have different view of the system data Refinements of Distributed CDIS After devising this specification of the CDIS which allowed tackling issues that arise in a distributed system, there are two methods to refine the initial specification. One possible approach is to apply all subsequent refinement of the idealised version before applying any vertical refinement. An expected advantage of this approach is the similarities between the generated proof obligations. This can assist the developers to discharge the interactive proof obligation more easily. After completing all horizontal refinements in which we introduce new requirements we can proceed to the vertical refinement. During this stage we have replaced the history tracking mechanism by a system which comprises a central database, a history of only changed data and a local database for each viewing position. The main advantage of this approach form an implementation viewpoint is that storing the history of applied changes should need much smaller memory in comparison of storing the whole database history. Another approach to the refinement of the distributed specification is that the vertical refinement precedes horizontal refinements. We have not pursued this path because we believe that the vertical refinement is a design decision and we should not mix specification with design decisions. 5. OVERVIEW OF ACHIEVED RESULTS AND CONCLUSIONS A very different methodology and modelling style was adopted in the Event-B development than in the original VVSL development. The original VVSL development produced a single large specification that required a lot of effort to comprehend and difficult to reason about using the technology available at the time. In the Event-B development first we have focused our effort on tackling the comprehensibility issue and the issue of mechanical proof. We quickly found that both these issues could be tackled by using refinement to layer in the functionality of the system in series of steps rather than trying to model all the functionality in one large specification. The layered development helped the comprehensibility considerably because we were able to capture the essential functionality of the system in the abstract specification. The abstract model is just under 4 pages of Event-B and we claim that this abstract model allows the reader to quickly grasp the essence of the system. Six subsequent refinements were used to introduce additional features of the system. The nature of these refinements was that they added additional details to the information structures and placed further constraints on when various actions could happen. The layered nature of their introduction means they can be absorbed in a stepwise fashion thus easing comprehensibility. In the second stage we focused on the issue of distribution and by having the experience of the idealised version we developed this extended version very smoothly. We have successfully overcome this problem by extending the idealised version to a more realistic specification. We have demonstrated that this specification could be refined to a distributed model with a reasonable effort in the context of the Rodin tool. We found the Rodin tool support for mechanical proof very helpful. All proofs were carried out using the Rodin tool and we found its prover very powerful. The layered development eased the proof of consistency of the specification since at each step we had a small number of relatively simple proof obligations. In addition to the consistency proofs the Rodin tool now is capable of handling wider forms of proof such as Well- Definedness. All of these increase the confident in to the produced system. ACKNOWLEDGEMENTS The authors thank Anthony Hall and Peter Amey of Praxis for their help with understanding of the original VVSL Development. REFERENCES [1] A. Hall, Using Formal Methods to Develop an ATC Information System, Software, Vol. 13, No. 2, Pages 66-76, IEEE Software, March

8 [2] C. A. Middleburg, VVSL: A Language for Structured VDM Specifications, Formal Aspects of Computing, Vol. 1, No. 1, Springer, [3] C. Jones, Systematic Software Development using VDM, Prentice Hall, [4] S. Pfleeger and L Hatton, Investigating the Influence of Formal Methods, Computer, Vol. 30, No. 2, IEEE, February [5] RODIN Deliverable D4, Tracable Requirements Document for Case Studies, [6] J. -R. Abrial, The B Book: Assigning Programs to Meanings, Cambridge University Press (1996). [7] RODIN Deliverable D7, Event-B Language, [8] J. -R Abrial, M. Butler, S. Hallerstede and L. Voisin, An Open Extensible Tool Environment for Event-B, ICFEM, 2006, Springer, LNCS, Pages [9] Rodin platform: [10] N. Evans and M. Butler, A Proposal for Records in B, FM06, Springer, LNCS, Pages ,

From Event-B Models to Dafny Code Contracts

From Event-B Models to Dafny Code Contracts From Event-B Models to Dafny Code Contracts Mohammadsadegh Dalvandi, Michael Butler, Abdolbaghi Rezazadeh Electronic and Computer Science School, University of Southampton Southampton, United Kingdom {md5g11,mjb,ra3}@ecs.soton.ac.uk

More information

Intermediate report on methodology

Intermediate report on methodology Project IST-511599 RODIN Rigorous Open Development Environment for Complex Systems RODIN Deliverable D19 Intermediate report on methodology Editor: C. B. Jones (Newcastle University) Public Document 29

More information

Finding Deadlocks of Event-B Models by Constraint Solving

Finding Deadlocks of Event-B Models by Constraint Solving B 2011 June 21st, 2011, Limerick, Ireland Finding Deadlocks of Event-B Models by Constraint Solving Stefan Hallerstede, Michael Leuschel Institut für Informatik, Universität Düsseldorf Universitätsstr.

More information

Scheduling of Compute-Intensive Code Generated from Event-B Models: An Empirical Efficiency Study

Scheduling of Compute-Intensive Code Generated from Event-B Models: An Empirical Efficiency Study Scheduling of Compute-Intensive Code Generated from Event-B Models: An Empirical Efficiency Study Fredrik Degerlund Åbo Akademi University & TUCS - Turku Centre for Computer Science Joukahainengatan 3-5,

More information

Model-based Testing Using Scenarios and Event-B Refinements

Model-based Testing Using Scenarios and Event-B Refinements Model-based Testing Using Scenarios and Event-B Refinements Qaisar A. Malik, Johan Lilius, and Linas Laibinis Åbo Akademi University, Department of Information Technologies Turku Centre for Computer Science

More information

Modelling Fault Tolerance and Parallelism in Communicating Systems

Modelling Fault Tolerance and Parallelism in Communicating Systems Modelling Fault Tolerance and Parallelism in Communicating Systems Linas Laibinis 1, Elena Troubitsyna 1, and Sari Leppänen 2 1 Åbo Akademi University, Finland 2 Nokia Research Center, Finland {Linas.Laibinis,

More information

UNIVERSITY OF SOUTHAMPTON Faculty of Engineering and Applied Science Department of Electronics and Computer Science

UNIVERSITY OF SOUTHAMPTON Faculty of Engineering and Applied Science Department of Electronics and Computer Science UNIVERSITY OF SOUTHAMPTON Faculty of Engineering and Applied Science Department of Electronics and Computer Science A progress report submitted for continuation towards a PhD Supervisor: Prof. Michael

More information

Verification of UML models by translation to UML-B

Verification of UML models by translation to UML-B Verification of UML models by translation to UML-B Colin Snook, Vitaly Savicks and Michael Butler University of Southampton Abstract. UML-B is a UML like notation based on the Event-B formalism which allows

More information

Cyber Physical System Verification Seminar: Event-B

Cyber Physical System Verification Seminar: Event-B Cyber Physical System Verification Seminar: Event-B Sebastian Schumb University of Kaiserslautern Embedded Systems Group s schumb10@cs.uni-kl.de 1 Introduction A Cyber-physical systems is a system of computer

More information

Formal Development of Fault Tolerant Transactions for a Replicated Database using Ordered Broadcasts

Formal Development of Fault Tolerant Transactions for a Replicated Database using Ordered Broadcasts Formal Development of Fault Tolerant Transactions for a Replicated Database using Ordered Broadcasts Divakar Yadav and Michael Butler Dependable Systems and Software Engineering School of Electronics and

More information

Tasking Event-B: An Extension to Event-B for Generating Concurrent Code

Tasking Event-B: An Extension to Event-B for Generating Concurrent Code Tasking Event-B: An Extension to Event-B for Generating Concurrent Code Andrew Edmunds School of Electronics and Computer Science, University of Southampton, UK ae2@ecs.soton.ac.uk Michael Butler School

More information

Rodin: An Open Toolset for Modelling and Reasoning in Event-B

Rodin: An Open Toolset for Modelling and Reasoning in Event-B Software Tools for Technology Transfer manuscript No. (will be inserted by the editor) Rodin: An Open Toolset for Modelling and Reasoning in Event-B Jean-Raymond Abrial 1 and Michael Butler 2 and Stefan

More information

Incompatibility Dimensions and Integration of Atomic Commit Protocols

Incompatibility Dimensions and Integration of Atomic Commit Protocols The International Arab Journal of Information Technology, Vol. 5, No. 4, October 2008 381 Incompatibility Dimensions and Integration of Atomic Commit Protocols Yousef Al-Houmaily Department of Computer

More information

Software Construction

Software Construction Software Construction The B Method - Event B J. Christian Attiogbé November 2008, maj 02/2011 J. Christian Attiogbé (November 2008, maj 02/2011) Software Construction 1 / 32 Plan Outline J. Christian Attiogbé

More information

Distributed Systems Programming (F21DS1) Formal Verification

Distributed Systems Programming (F21DS1) Formal Verification Distributed Systems Programming (F21DS1) Formal Verification Andrew Ireland Department of Computer Science School of Mathematical and Computer Sciences Heriot-Watt University Edinburgh Overview Focus on

More information

Guarded Operations, Refinement and Simulation

Guarded Operations, Refinement and Simulation Guarded Operations, Refinement and Simulation Steve Reeves and David Streader Department of Computer Science University of Waikato Hamilton, New Zealand stever,dstr@cs.waikato.ac.nz Abstract Simulation

More information

FORMALIZED SOFTWARE DEVELOPMENT IN AN INDUSTRIAL ENVIRONMENT

FORMALIZED SOFTWARE DEVELOPMENT IN AN INDUSTRIAL ENVIRONMENT FORMALIZED SOFTWARE DEVELOPMENT IN AN INDUSTRIAL ENVIRONMENT Otthein Herzog IBM Germany, Dept. 3100 P.O.Box 80 0880 D-7000 STUTTGART, F. R. G. ABSTRACT tn the IBM Boeblingen Laboratory some software was

More information

Formal Methods. CITS5501 Software Testing and Quality Assurance

Formal Methods. CITS5501 Software Testing and Quality Assurance Formal Methods CITS5501 Software Testing and Quality Assurance Pressman, R. Software Engineering: A Practitioner s Approach. Chapter 28. McGraw-Hill, 2005 The Science of Programming, David Gries, 1981

More information

TIME-BASED CONSTRAINTS IN THE OBJECT CONSTRAINT LANGUAGE OCL

TIME-BASED CONSTRAINTS IN THE OBJECT CONSTRAINT LANGUAGE OCL TIME-BASED CONSTRAINTS IN THE OBJECT CONSTRAINT LANGUAGE OCL Ali Hamie, John Howse School of Computing, Mathematical and Information Sciences, University of Brighton, Brighton, UK. {a.a.hamie@brighton.ac.uk,

More information

Some notes about Event-B and Rodin

Some notes about Event-B and Rodin Some notes about Event-B and Rodin Résumé This document briefly presents the language event-b and the tool Rodin. For a comprehensive presentation, refer to the event-b page http://www.event-b.org/, the

More information

Have we Learned from the Vasa Disaster?

Have we Learned from the Vasa Disaster? Have we Learned from the Vasa Disaster? Jean-Raymond Abrial ETH Zurich September 19th 2006 The Vasa Disaster 1 The Story 2 - August 10, 1628: The Swedish warship Vasa sank. - This was her maiden voyage.

More information

Experiences with OWL-S, Directions for Service Composition:

Experiences with OWL-S, Directions for Service Composition: Experiences with OWL-S, Directions for Service Composition: The Cashew Position Barry Norton 1 Knowledge Media Institute, Open University, Milton Keynes, UK b.j.norton@open.ac.uk Abstract. Having used

More information

arxiv: v1 [cs.se] 4 Jan 2017

arxiv: v1 [cs.se] 4 Jan 2017 Theory Plug-in for Rodin 3.x T.S. Hoang 1, L. Voisin 2, A. Salehi 1, M. Butler 1, T. Wilkinson 1, and N. Beauger 2 1 ECS, University of Southamtpon, U.K. 2 Systerel, France arxiv:1701.08625v1 [cs.se] 4

More information

Modelling ODP Viewpoints. 1 Introduction. 2 Basic Modelling and Specification Concepts

Modelling ODP Viewpoints. 1 Introduction. 2 Basic Modelling and Specification Concepts Richard O. Sinnott and Kenneth J. Turner. Modelling ODP viewpoints. In B. Cameron, C. Geldrez, A. Hopley, D. Howes, B. Mirek, and M. Plucinska, editors, Proc. OOPSLA 94 Workshop on Precise Behavioural

More information

Formal Modelling Techniques for Efficient Development of Railway Control Products

Formal Modelling Techniques for Efficient Development of Railway Control Products ENABLE-S3 ECSEL EU PROJECT Formal Modelling Techniques for Efficient Development of Railway Control Products Michael Butler, Dana Dghaym, Thai Son Hoang, Colin Snook, Tomas Fischer, Klaus Reichl, Peter

More information

IDEF* - A comprehensive Modelling Methodology for the Development of Manufacturing Enterprise Systems

IDEF* - A comprehensive Modelling Methodology for the Development of Manufacturing Enterprise Systems SIMTech Technical Report () IDEF* - A comprehensive Modelling Methodology for the Development of Manufacturing Dr Ang Cheng Leong (Operations & Supply Chain Applications Group, Manufacturing Information

More information

Project IST RODIN. Rigorous Open Development Environment for Complex Systems. RODIN Deliverable D34 (D7.4) Assessment Report 3

Project IST RODIN. Rigorous Open Development Environment for Complex Systems. RODIN Deliverable D34 (D7.4) Assessment Report 3 Project IST-511599 RODIN Rigorous Open Development Environment for Complex Systems RODIN Deliverable D34 (D7.4) Assessment Report 3 Editor: Pete White (Praxis High Integrity Systems) Public Document 26th

More information

Refinement of statemachines using hierarchical states, choice points and joins *

Refinement of statemachines using hierarchical states, choice points and joins * Refinement of statemachines using hierarchical states, choice points and joins * Colin Snook 1 and Marina Waldén 2 1) University of Southampton,Southampton, SO17 1BJ, UK 2) Åbo Akademi University, Lemminkäineng

More information

Chapter 1 Introduction

Chapter 1 Introduction Chapter 1 Introduction We hardly need to point out the importance of business process modelling and of respective automation in this place (see, e.g. [39, 45, 58, 110, 141]). Also the advantages and shortcomings

More information

Code Generation and Scheduling of Event-B Models

Code Generation and Scheduling of Event-B Models Fredrik Degerlund Richard Grönblom Kaisa Sere Code Generation and Scheduling of Event-B Models TUCS Technical Report No 1027, December 2011 Code Generation and Scheduling of Event-B Models Fredrik Degerlund

More information

Contents. References 43

Contents. References 43 Contents 1 Atomicity Decomposition Part 1 - Overview and Background 1 1.1 Introduction................................... 1 1.2 Overview of Atomicity Decomposition Diagram in Event-B........ 1 1.3 Event-B

More information

Keywords: UML-B, refactoring, refinement, object-oriented design, annealing, introduce

Keywords: UML-B, refactoring, refinement, object-oriented design, annealing, introduce Computing and Informatics, Vol. 35, 2016, 411 440 A SET OF REFACTORING RULES FOR UML-B SPECIFICATIONS Mehrnaz Najafi, Hassan Haghighi, Tahereh Zohdi Nasab Faculty of Computer Science and Engineering Shahid

More information

Intelligent Risk Identification and Analysis in IT Network Systems

Intelligent Risk Identification and Analysis in IT Network Systems Intelligent Risk Identification and Analysis in IT Network Systems Masoud Mohammadian University of Canberra, Faculty of Information Sciences and Engineering, Canberra, ACT 2616, Australia masoud.mohammadian@canberra.edu.au

More information

An Approach to Software Component Specification

An Approach to Software Component Specification Page 1 of 5 An Approach to Software Component Specification Jun Han Peninsula School of Computing and Information Technology Monash University, Melbourne, Australia Abstract. Current models for software

More information

Applying Atomicity and Model Decomposition to a Space Craft System in Event-B

Applying Atomicity and Model Decomposition to a Space Craft System in Event-B Applying Atomicity and Model Decomposition to a Space Craft System in Event-B Asieh Salehi Fathabadi 1, Abdolbaghi Rezazadeh 2, and Michael Butler 3 University of Southampton, UK asf08r 1,ra3 2,mjb 3 @ecs.soton.ac.uk

More information

A Formal V&V Framework for UML Models Based on Model Transformation Techniques

A Formal V&V Framework for UML Models Based on Model Transformation Techniques A Formal V&V Framework for UML Models Based on Model Transformation Techniques Soon-Kyeong Kim and David Carrington Information Technology and Electrical Engineering The University of Queensland, St. Lucia,

More information

Flight Systems are Cyber-Physical Systems

Flight Systems are Cyber-Physical Systems Flight Systems are Cyber-Physical Systems Dr. Christopher Landauer Software Systems Analysis Department The Aerospace Corporation Computer Science Division / Software Engineering Subdivision 08 November

More information

Practical Case Studies in Teaching Concurrency. A. J. Cowling

Practical Case Studies in Teaching Concurrency. A. J. Cowling Practical Case Studies in Teaching Concurrency A. J. Cowling Department of Computer Science, University of Sheffield, Sheffield, S10 2TN, UK. Telephone: +44 114 222 1823; Fax: +44 114 222 1810; Email:

More information

Q Body of techniques supported by. R precise mathematics. R powerful analysis tools. Q Rigorous, effective mechanisms for system.

Q Body of techniques supported by. R precise mathematics. R powerful analysis tools. Q Rigorous, effective mechanisms for system. Introduction to Formal Methods 1 Introduction to Formal Methods 2 Formal Specification Requirements specification R notational statement of system services Software specification R formal abstract depiction

More information

Lecture 10: Introduction to Correctness

Lecture 10: Introduction to Correctness Lecture 10: Introduction to Correctness Aims: To look at the different types of errors that programs can contain; To look at how we might detect each of these errors; To look at the difficulty of detecting

More information

Meta-Proof for Structured Specifications

Meta-Proof for Structured Specifications Meta-Proof for Structured Specifications Nuno Amálio Susan Stepney Fiona Polack Department of Computer Science, University of York, Heslington, York, YO10 5DD, UK. [namalio susan fiona]@cs.york.ac.uk Abstract

More information

Language and Tool Support for Event Refinement Structures in Event-B

Language and Tool Support for Event Refinement Structures in Event-B Under consideration for publication in Formal Aspects of Computing Language and Tool Support for Event Refinement Structures in Event-B Asieh Salehi Fathabadi and Michael Butler and Abdolbaghi Rezazadeh

More information

Part I Logic programming paradigm

Part I Logic programming paradigm Part I Logic programming paradigm 1 Logic programming and pure Prolog 1.1 Introduction 3 1.2 Syntax 4 1.3 The meaning of a program 7 1.4 Computing with equations 9 1.5 Prolog: the first steps 15 1.6 Two

More information

Using the Alloy Analyzer to Verify Data Refinement in Z

Using the Alloy Analyzer to Verify Data Refinement in Z Electronic Notes in Theoretical Computer Science 137 (2005) 23 44 www.elsevier.com/locate/entcs Using the Alloy Analyzer to Verify Data Refinement in Z Christie Bolton 1,2 Department of Computer Science

More information

A Summary of Out of the Tar Pit

A Summary of Out of the Tar Pit A Summary of Out of the Tar Pit Introduction This document summarises some points from the paper Out of the Tar Pit (written by Ben Moseley and Peter Marks, dated 6 th February 2006) which are relevant

More information

Handout 9: Imperative Programs and State

Handout 9: Imperative Programs and State 06-02552 Princ. of Progr. Languages (and Extended ) The University of Birmingham Spring Semester 2016-17 School of Computer Science c Uday Reddy2016-17 Handout 9: Imperative Programs and State Imperative

More information

Expression des Besoins et Identification des Objectifs de Sécurité

Expression des Besoins et Identification des Objectifs de Sécurité PREMIER MINISTRE Secrétariat général de la défense nationale Direction centrale de la sécurité des systèmes d information Sous-direction des opérations Bureau conseil Expression des Besoins et Identification

More information

Operational Semantics

Operational Semantics 15-819K: Logic Programming Lecture 4 Operational Semantics Frank Pfenning September 7, 2006 In this lecture we begin in the quest to formally capture the operational semantics in order to prove properties

More information

PROPER TECHNIQUE OF SOFTWARE INSPECTION USING GUARDED COMMAND LANGUAGE

PROPER TECHNIQUE OF SOFTWARE INSPECTION USING GUARDED COMMAND LANGUAGE International Journal of Computer Science and Communication Vol. 2, No. 1, January-June 2011, pp. 153-157 PROPER TECHNIQUE OF SOFTWARE INSPECTION USING GUARDED COMMAND LANGUAGE Neeraj Kumar Singhania University,

More information

Navigating Large Source Files Using a Fisheye View

Navigating Large Source Files Using a Fisheye View Navigating Large Source Files Using a Fisheye View Jakub Dostál 1 1 University College Dublin, Ireland dostal.j@gmail.com Abstract As programs grow larger, it becomes more difficult to understand their

More information

14.1 Encoding for different models of computation

14.1 Encoding for different models of computation Lecture 14 Decidable languages In the previous lecture we discussed some examples of encoding schemes, through which various objects can be represented by strings over a given alphabet. We will begin this

More information

Capturing Design Expertise in Customized Software Architecture Design Environments

Capturing Design Expertise in Customized Software Architecture Design Environments Capturing Design Expertise in Customized Software Architecture Design Environments Robert T. Monroe School of Computer Science, Carnegie Mellon University, Pittsburgh, PA 15213 Abstract: Software architecture

More information

3.7 Denotational Semantics

3.7 Denotational Semantics 3.7 Denotational Semantics Denotational semantics, also known as fixed-point semantics, associates to each programming language construct a well-defined and rigorously understood mathematical object. These

More information

Incompatibility Dimensions and Integration of Atomic Commit Protocols

Incompatibility Dimensions and Integration of Atomic Commit Protocols Preprint Incompatibility Dimensions and Integration of Atomic Protocols, Yousef J. Al-Houmaily, International Arab Journal of Information Technology, Vol. 5, No. 4, pp. 381-392, October 2008. Incompatibility

More information

Implementing Sequential Consistency In Cache-Based Systems

Implementing Sequential Consistency In Cache-Based Systems To appear in the Proceedings of the 1990 International Conference on Parallel Processing Implementing Sequential Consistency In Cache-Based Systems Sarita V. Adve Mark D. Hill Computer Sciences Department

More information

SysML State Machines: a formal model for refinement. COMPASS White Paper WP03. July Public Document

SysML State Machines: a formal model for refinement. COMPASS White Paper WP03. July Public Document Project: COMPASS Grant Agreement: 287829 Comprehensive Modelling for Advanced Systems of Systems SysML State Machines: a formal model for refinement COMPASS White Paper WP03 July 2013 Public Document http://www.compass-research.eu

More information

Formal specification in Event-B

Formal specification in Event-B 2IW80 Software specification and architecture Formal specification in Event-B Alexander Serebrenik, Ulyana Tikhonova Outline Introduction into formal specification Mathematical notation of Event-B Event-B

More information

Using formal methods for quality assurance of interlocking systems L.-H. Eriksson* & K. Johansson^

Using formal methods for quality assurance of interlocking systems L.-H. Eriksson* & K. Johansson^ Using formal methods for quality assurance of interlocking systems L.-H. Eriksson* & K. Johansson^ Email: lhe@l4i.se *6W%#jA AWm^^ Sweden. Email: kjell.johansson@hk. banverket.se Abstract "Formal methods"

More information

JOURNAL OF OBJECT TECHNOLOGY

JOURNAL OF OBJECT TECHNOLOGY JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2002 Vol. 1, No. 2, July-August 2002 The Theory of Classification Part 2: The Scratch-Built

More information

5 The Control Structure Diagram (CSD)

5 The Control Structure Diagram (CSD) 5 The Control Structure Diagram (CSD) The Control Structure Diagram (CSD) is an algorithmic level diagram intended to improve the comprehensibility of source code by clearly depicting control constructs,

More information

ISO/IEC INTERNATIONAL STANDARD. Software and system engineering High-level Petri nets Part 1: Concepts, definitions and graphical notation

ISO/IEC INTERNATIONAL STANDARD. Software and system engineering High-level Petri nets Part 1: Concepts, definitions and graphical notation INTERNATIONAL STANDARD ISO/IEC 15909-1 First edition 2004-12-01 Software and system engineering High-level Petri nets Part 1: Concepts, definitions and graphical notation Ingénierie du logiciel et du système

More information

A Mechanically and Incremental Development of the Remote Authentication Dial-In User Service Protocol

A Mechanically and Incremental Development of the Remote Authentication Dial-In User Service Protocol A Mechanically and Incremental Development of the Remote Authentication Dial-In User Service Protocol Sanae El Mimouni, Rajaa Filali, Anas Amamou, Bahija Boulamaat and Mohamed Bouhdadi Abstract The Remote

More information

Knowledge enrichment through dynamic annotation

Knowledge enrichment through dynamic annotation Knowledge enrichment through dynamic annotation Abstract This paper describes a technique for interceding between users and the information that they browse. This facility, that we term dynamic annotation,

More information

An Approach to Task Attribute Assignment for Uniprocessor Systems

An Approach to Task Attribute Assignment for Uniprocessor Systems An Approach to ttribute Assignment for Uniprocessor Systems I. Bate and A. Burns Real-Time Systems Research Group Department of Computer Science University of York York, United Kingdom e-mail: fijb,burnsg@cs.york.ac.uk

More information

A Method of Refinement in UML-B

A Method of Refinement in UML-B Noname manuscript No. (will be inserted by the editor) A Method of Refinement in UML-B Mar Yah Said Michael Butler Colin Snook Received: date / Accepted: date Abstract UML-B is a UML-like graphical front

More information

Software development using B method. Julien Cervelle LACL - UPEC

Software development using B method. Julien Cervelle LACL - UPEC Software development using B method Julien Cervelle LACL - UPEC Outline Introduction B abstract machine First order logic of set theory Substitutions Proof obligations Refinement Introduction B method

More information

Contract-based Programming: a Route to Finding Bugs Earlier

Contract-based Programming: a Route to Finding Bugs Earlier Contract-based Programming: a Route to Finding Bugs Earlier JSA Research & Innovation February 2018 Subprogram Contracts Type Contracts Contract-based Programming A software development technique, used

More information

POSD - a notation for presenting complex systems of processes

POSD - a notation for presenting complex systems of processes POSD - a notation for presenting complex systems of processes Abstract Peter Henderson 1 and Graham D Pratten 2 Keywords: legacy systems, distributed systems, adaptability, process modelling, dataflow

More information

Requirements Engineering. Establishing what the customer requires from a software system. Requirements Engineering. What is a Requirement?

Requirements Engineering. Establishing what the customer requires from a software system. Requirements Engineering. What is a Requirement? Engineering Establishing what the customer requires from a software system Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 5 and 6 Slide 1 Engineering

More information

CSC 501 Semantics of Programming Languages

CSC 501 Semantics of Programming Languages CSC 501 Semantics of Programming Languages Subtitle: An Introduction to Formal Methods. Instructor: Dr. Lutz Hamel Email: hamel@cs.uri.edu Office: Tyler, Rm 251 Books There are no required books in this

More information

! Use of formal notations. ! in software system descriptions. ! for a broad range of effects. ! and varying levels of use. !

! Use of formal notations. ! in software system descriptions. ! for a broad range of effects. ! and varying levels of use. ! What Are Formal Methods? David S. Rosenblum ICS 221 Winter 2001! Use of formal notations! first-order logic, state machines, etc.! in software system descriptions! system models, constraints, specifications,

More information

ACONCURRENT system may be viewed as a collection of

ACONCURRENT system may be viewed as a collection of 252 IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, VOL. 10, NO. 3, MARCH 1999 Constructing a Reliable Test&Set Bit Frank Stomp and Gadi Taubenfeld AbstractÐThe problem of computing with faulty

More information

2 Introduction to operational semantics

2 Introduction to operational semantics 2 Introduction to operational semantics This chapter presents the syntax of a programming language, IMP, a small language of while programs. IMP is called an "imperative" language because program execution

More information

Language and Tool Support for Class and State Machine Refinement in UML-B

Language and Tool Support for Class and State Machine Refinement in UML-B Language and Tool Support for Class and State Machine Refinement in UML-B Mar Yah Said, Michael Butler and Colin Snook (mys05r,mjb,cfs)@ecs.soton.ac.uk School of Electronic and Computer Science Outline

More information

Software re-use assessment for quality M. Ramachandran School of Computing and Mathematical Sciences, Jo/m Moores C/mrerszZ?/,

Software re-use assessment for quality M. Ramachandran School of Computing and Mathematical Sciences, Jo/m Moores C/mrerszZ?/, Software re-use assessment for quality M. Ramachandran School of Computing and Mathematical Sciences, Jo/m Moores C/mrerszZ?/, ABSTRACT Reuse of software components can improve software quality and productivity

More information

SDMX self-learning package No. 3 Student book. SDMX-ML Messages

SDMX self-learning package No. 3 Student book. SDMX-ML Messages No. 3 Student book SDMX-ML Messages Produced by Eurostat, Directorate B: Statistical Methodologies and Tools Unit B-5: Statistical Information Technologies Last update of content February 2010 Version

More information

OCL Support in MOF Repositories

OCL Support in MOF Repositories OCL Support in MOF Repositories Joachim Hoessler, Michael Soden Department of Computer Science Technical University Berlin hoessler@cs.tu-berlin.de, soden@cs.tu-berlin.de Abstract From metamodels that

More information

Quo Vadis Program Verification

Quo Vadis Program Verification Quo Vadis Program Verification p. 1/2 Quo Vadis Program Verification Krzysztof R. Apt CWI, Amsterdam, the Netherlands, University of Amsterdam We would like to use correct programs. Quo Vadis Program Verification

More information

RAQUEL s Relational Operators

RAQUEL s Relational Operators Contents RAQUEL s Relational Operators Introduction 2 General Principles 2 Operator Parameters 3 Ordinary & High-Level Operators 3 Operator Valency 4 Default Tuples 5 The Relational Algebra Operators in

More information

Component Composition in Business and System Modeling

Component Composition in Business and System Modeling Stuart Kent *, Kevin Lano **, Juan Bicarregui **, Ali Hamie *, John Howse *1 * Division of Computing, University of Brighton, Lewes Rd., Brighton, UK. ** Department of Computing, Imperial College of Science

More information

ISO/IEC INTERNATIONAL STANDARD. Information technology - Syntactic metalanguage - Extended BNF

ISO/IEC INTERNATIONAL STANDARD. Information technology - Syntactic metalanguage - Extended BNF INTERNATIONAL STANDARD ISO/IEC First edition 1996-l -l 5 Information technology - Syntactic metalanguage - Extended BNF Technologies de / information - Mbtalangage syntaxique - BNF &endu Reference number

More information

Self-Recovering Sensor-Actor Networks

Self-Recovering Sensor-Actor Networks Self-Recovering Sensor-Actor Networks Maryam Kamali, Linas Laibinis, Luigia Petre, Kaisa Sere IT-Department, Åbo Akademi University, Turku, Finland {maryam.kamali,linas.laibinis,luigia.petre,kaisa.sere}@abo.fi

More information

Methods for requirements engineering

Methods for requirements engineering Methods for requirements engineering Objectives To explain the role of methods and techniques in requirements engineering To introduce data-flow modelling To introduce semantic data modelling To introduce

More information

Axiomatic Specification. Al-Said, Apcar, Jerejian

Axiomatic Specification. Al-Said, Apcar, Jerejian Axiomatic Specification Al-Said, Apcar, Jerejian 1 Axioms: Wffs that can be written down without any reference to any other Wffs. Wffs that are stipulated as unproved premises for the proof of other wffs

More information

Understanding and Exploring Memory Hierarchies

Understanding and Exploring Memory Hierarchies Understanding and Exploring Memory Hierarchies Issued : Thursday 27th January 2011 Due : Friday 11th March 2011 at 4.00pm (at the ITO) This assignment represents the total practical component of the Computer

More information

Capturing and Formalizing SAF Availability Management Framework Configuration Requirements

Capturing and Formalizing SAF Availability Management Framework Configuration Requirements Capturing and Formalizing SAF Availability Management Framework Configuration Requirements A. Gherbi, P. Salehi, F. Khendek and A. Hamou-Lhadj Electrical and Computer Engineering, Concordia University,

More information

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN NOTES ON OBJECT-ORIENTED MODELING AND DESIGN Stephen W. Clyde Brigham Young University Provo, UT 86402 Abstract: A review of the Object Modeling Technique (OMT) is presented. OMT is an object-oriented

More information

The TOBIAS test generator and its adaptation to some ASE challenges Position paper for the ASE Irvine Workshop

The TOBIAS test generator and its adaptation to some ASE challenges Position paper for the ASE Irvine Workshop The test generator and its adaptation to some ASE challenges Position paper for the ASE Irvine Workshop Y. Ledru Laboratoire Logiciels Systèmes Réseaux/IMAG BP 72, F-38402 Saint-Martin-d Hères CEDEX, FRANCE

More information

Module 3. Requirements Analysis and Specification. Version 2 CSE IIT, Kharagpur

Module 3. Requirements Analysis and Specification. Version 2 CSE IIT, Kharagpur Module 3 Requirements Analysis and Specification Lesson 6 Formal Requirements Specification Specific Instructional Objectives At the end of this lesson the student will be able to: Explain what a formal

More information

Removing Belady s Anomaly from Caches with Prefetch Data

Removing Belady s Anomaly from Caches with Prefetch Data Removing Belady s Anomaly from Caches with Prefetch Data Elizabeth Varki University of New Hampshire varki@cs.unh.edu Abstract Belady s anomaly occurs when a small cache gets more hits than a larger cache,

More information

6.001 Notes: Section 8.1

6.001 Notes: Section 8.1 6.001 Notes: Section 8.1 Slide 8.1.1 In this lecture we are going to introduce a new data type, specifically to deal with symbols. This may sound a bit odd, but if you step back, you may realize that everything

More information

Formal refinement in SysML

Formal refinement in SysML Formal refinement in SysML Alvaro Miyazawa 1 and Ana Cavalcanti 2 1 alvaro.miyazawa@york.ac.uk 2 ana.cavalcanti@york.ac.uk Department of Computer Science, University of York, York, YO10 5GH, UK July 27,

More information

AN ONTOLOGICAL EVALUATION OF JACKSON'S SYSTEM DEVELOPMENT MODEL. Fiona Rohde. Department of Commerce The University of Queensland, 4072.

AN ONTOLOGICAL EVALUATION OF JACKSON'S SYSTEM DEVELOPMENT MODEL. Fiona Rohde. Department of Commerce The University of Queensland, 4072. AN ONTOLOGICAL EVALUATION OF JACKSON'S SYSTEM DEVELOPMENT MODEL Fiona Rohde Department of Commerce The University of Queensland, 4072. Australia ABSTRACT Within the discipline of information systems, numerous

More information

On the Wimer Method for Designing Edge-Based Algorithms

On the Wimer Method for Designing Edge-Based Algorithms On the Wimer Method for Designing Edge-Based Algorithms Alan C. Jamieson Dept of Mathematics and Computer Science St. Mary s College of Maryland, St. Mary s City, MD 20686 and Wayne Goddard, Stephen T.

More information

An Annotated Language

An Annotated Language Hoare Logic An Annotated Language State and Semantics Expressions are interpreted as functions from states to the corresponding domain of interpretation Operators have the obvious interpretation Free of

More information

A Framework for Enforcing Constrained RBAC Policies

A Framework for Enforcing Constrained RBAC Policies A Framework for Enforcing Constrained RBAC Policies Jason Crampton Information Security Group Royal Holloway, University of London jason.crampton@rhul.ac.uk Hemanth Khambhammettu Information Security Group

More information

The Event-B Modelling Notation

The Event-B Modelling Notation The Event-B Modelling Notation J.-R. Abrial October 2007 Version 1.5 The Event-B Modelling Notation Contents 1 Machines and Contexts 1 2 Events 2 3 Variant 3 4 Actions 3 5 Witnesses 4 6 Syntax of the Event-B

More information

Proofs and Proof Certification in the TLA + Proof System

Proofs and Proof Certification in the TLA + Proof System Proofs and Proof Certification in the TLA + Proof System Stephan Merz Inria Nancy Grand-Est & LORIA, Villers-lès-Nancy, France Abstract TLA + is a specification language originally designed for specifying

More information

Stylus Studio Case Study: FIXML Working with Complex Message Sets Defined Using XML Schema

Stylus Studio Case Study: FIXML Working with Complex Message Sets Defined Using XML Schema Stylus Studio Case Study: FIXML Working with Complex Message Sets Defined Using XML Schema Introduction The advanced XML Schema handling and presentation capabilities of Stylus Studio have valuable implications

More information

Conceptual Model for a Software Maintenance Environment

Conceptual Model for a Software Maintenance Environment Conceptual Model for a Software Environment Miriam. A. M. Capretz Software Engineering Lab School of Computer Science & Engineering University of Aizu Aizu-Wakamatsu City Fukushima, 965-80 Japan phone:

More information