Judy Bowen
University of Waikato
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Judy Bowen.
Innovations in Systems and Software Engineering | 2008
Judy Bowen; Steve Reeves
There are many different ways of building software applications and of tackling the problems of understanding the system to be built, designing that system and finally implementing the design. One approach is to use formal methods, which we can generalise as meaning we follow a process which uses some formal language to specify the behaviour of the intended system, techniques such as theorem proving or model-checking to ensure the specification is valid (i.e., meets the requirements and has been shown, perhaps by proof or other means of inspection, to have the properties the client requires of it) and a refinement process to transform the specification into an implementation. Conversely, the approach we take may be less structured and rely on informal techniques. The design stage may involve jotting down ideas on paper, brainstorming with users etc. We may use prototyping to transform these ideas into working software and get users to test the implementation to find problems. Formal methods have been shown to be beneficial in describing the functionality of systems, what we may call application logic, and underlying system behaviour. Informal techniques, however, have also been shown to be useful in the design of the user interface to systems. Given that both styles of development are beneficial to different parts of the system we would like to be able to use both approaches in one integrated software development process. Their differences, however, make this a challenging objective. In this paper we describe models and techniques which allow us to incorporate informal design artefacts into a formal software development process.
Electronic Notes in Theoretical Computer Science | 2007
Judy Bowen; Steve Reeves
Many different methods exist for the design and implementation of software systems. These methods may be fully formal, such as the use of formal specification languages and refinement processes, or they may be totally informal, such as jotting design ideas down on paper prior to coding, or they may be somewhere in between these two extremes. Formal methods are naturally suited to underlying system behaviour while user-centred approaches to user interface design fit comfortably with more informal approaches. The challenge is to find ways of integrating user-centred design methods with formal methods so that the benefits of both are fully realised. This paper presents a way of capturing the intentions behind informal design artefacts within a formal environment and then shows several applications of this approach.
engineering interactive computing system | 2013
Judy Bowen; Steve Reeves
Formally modelling the software functionality and interactivity of safety-critical devices allows us to prove properties about their behaviours and be certain that they will respond to user interaction correctly. In domains such as medical environments, where many different devices may be used, it is equally important to ensure that all devices used adhere to a set of safety, and other, principles designed for that environment. In this paper we look at modelling important properties of interactive medical devices including safety considerations mandated by their users. We use ProZ for model checking to ensure that properties stated in temporal logic hold, and also to check invariants. In this way we gain confidence that important properties do hold of the device, and that models of particular devices adhere to the properties described.
australian software engineering conference | 2006
Judy Bowen; Steve Reeves
Before we build any piece of software we would, surely, need to be certain that what we intend to build is what is required by the users of that software. In addition, we would want to be sure that the proposed software will behave as expected, do the right thing under all circumstances and also be usable. These functional and usability requirements are often considered separately. The functional requirements may be considered by way of formal specifications or models which are then subjected to verification and validation to ensure that the required properties hold. Similarly, the usability and user requirements may be captured using task analysis methods and checked by design methods such as GOMS, scenario development and usability testing of incremental prototypes. This paper looks at one way of bringing these two processes together by including the graphical user interface (GUI) design process and design concerns in the formal process of specification and refinement. In particular it considers what it means for a prototype of a GUI to be considered as a formal refinement of a specification. In this paper we show how we can consider the visual display, or presentation, of the GUI as the refinement, rather than the code which produces that presentation, and how this allows us to apply standard and well-known refinement techniques to informal design artefacts
Electronic Notes in Theoretical Computer Science | 2008
Judy Bowen; Steve Reeves
Formal approaches to software development require that we correctly describe (or specify) systems in order to prove properties about our proposed solution prior to building it. We must then follow a rigorous process to transform our specification into an implementation to ensure that the properties we have proved are retained. Different transformation, or refinement, methods exist for different formal methods, but they all seek to ensure that we can guide the transformation in a way which preserves the desired properties of the system. Refinement methods also allow us to subsequently compare two systems to see if a refinement relation exists between the two. When we design and build the user interfaces of our systems we are similarly keen to ensure that they have certain properties before we build them. For example, do they satisfy the requirements of the user? Are they designed with known good design principles and usability considerations in mind? Are they correct in terms of the overall system specification? However, when we come to implement our interface designs we do not have a defined process to follow which ensures that we maintain these properties as we transform the design into code. Instead, we rely on our judgement and belief that we are doing the right thing and subsequent user testing to ensure that our final solution remains useable and satisfactory. We suggest an alternative approach, which is to define a refinement process for user interfaces which will allow us to maintain the same rigorous standards we apply to the rest of the system when we implement our user interface designs.
engineering interactive computing system | 2012
Judy Bowen; Steve Reeves
Ensuring that users can successfully interact with software and hardware devices is a critical part of software engineering. There are many approaches taken to ensure successful interaction, e.g. the use of user-centred design, usability studies, training and education etc. In this paper we consider how the users of modal medical devices, such as syringe pumps, are supported (or not) post-training by documentation such as user manuals. Our intention is to show that modelling such documents is a useful component in the software engineering process, allowing us to discover inconsistencies between devices and manuals as well as uncovering potentially undesirable properties of the devices being modelled.
engineering interactive computing system | 2011
Judy Bowen; Steve Reeves
Test-driven development (TDD) is a software development approach, which has grown out of the Extreme Programming and Agile movements, whereby tests are written prior to the implementation code which is then developed and refactored so that it passes the tests. Test-first development (TFD) takes a similar approach, but rather than relying on the testers to infer the correct tests from the requirements (often expressed via use cases) they use models of the requirements as the basis for the tests (and as such have a more formal approach). One of the problems with both TDD and TFD is that is has proven hard to adapt it for interactive systems as it is not always clear how to develop tests to also support user interfaces (UIs). In this paper we propose a method which uses both formal models of informal UI design artefacts and formal specifications to derive abstract tests which then form the basis of a test-first development process.
Electronic Communication of The European Association of Software Science and Technology | 2010
Judy Bowen; Steve Reeves
Testing interactive systems is notoriously difficult. Not only do we need to ensure that the functionality of the developed system is correct with respect to the requirements and specifications, we also need to ensure that the user interface to the system is correct (enables a user to access the functionality correctly) and is usable. These different requirements of interactive system testing are not easily combined within a single testing strategy. We investigate the use of models of interactive systems, which have been derived from design artefacts, as the basis for generating tests for an implemented system. We give a model-based method for testing interactive systems which has low overhead in terms of the models required and which enables testing of UI and system functionality from the perspective of user interaction.
Archive | 2017
Benjamin Weyers; Judy Bowen; Alan Dix; Philippe A. Palanque
This book provides a comprehensive collection of methods and approaches for using formal methods within Human-Computer Interaction (HCI) research, the use of which is a prerequisite for usability and user-experience (UX) when engineering interactive systems. World-leading researchers present methods, tools and techniques to design and develop reliable interactive systems, offering an extensive discussion of the current state-of-the-art with case studies which highlight relevant scenarios and topics in HCI as well as presenting current trends and gaps in research and future opportunities and developments within this emerging field. The Handbook of Formal Methods in Human-Computer Interaction is intended for HCI researchers and engineers of interactive systems interested in facilitating formal methods into their research or practical work.
Innovations in Systems and Software Engineering | 2013
Judy Bowen; Steve Reeves
Testing interactive systems is a notoriously difficult task. Not only do we need to ensure that the functionality of the developed system is correct with respect to the requirements and specifications, but also we need to ensure that the user interface (UI) to the system is correct (enables a user to access the functionality correctly) and is usable. These different requirements of interactive system testing are not easily combined within a single testing strategy. We investigate the use of models of interactive systems, which have been derived from design artefacts, as the basis for generating tests for an implemented system. We show how automatically generated abstract tests can be used as the basis for a model-based method for testing interactive systems which has low overhead in terms of the models required and which enables testing of UI and system functionality from the perspective of user interaction. We also examine other testing strategies which use the same abstract tests as their basis and discuss general problems in the area of interactive system testing and propose some solutions.