Building reliable interactive information systems
IEEE Transactions on Software Engineering
Strategies for real-time system specification
Strategies for real-time system specification
Communications of the ACM
An Applicable Family of Data Flow Testing Criteria
IEEE Transactions on Software Engineering
STATEMATE: A Working Environment for the Development of Complex Reactive Systems
IEEE Transactions on Software Engineering
Test Selection Based on Finite State Models
IEEE Transactions on Software Engineering
Object-oriented modeling and design
Object-oriented modeling and design
Semi-automatic test suite generation from Estelle
Software Engineering Journal
IEEE Software
Simulating the Behavior of Software Modules by Trace Rewriting
IEEE Transactions on Software Engineering
Requirements Specification for Process-Control Systems
IEEE Transactions on Software Engineering
Strategies for incorporating formal specifications in software development
Communications of the ACM
An executive system implemented as a finite-state automaton
Communications of the ACM
Design of a separable transition-diagram compiler
Communications of the ACM
Object Orientation in Z
Compiler Construction for Digital Computers
Compiler Construction for Digital Computers
Are We Testing for True Reliability?
IEEE Software
State-Based Model Checking of Event-Driven System Requirements
IEEE Transactions on Software Engineering
Using assertions about traces to write abstract specifications for software modules
Proceedings of the 2nd Conference of the European Cooperation on Informatics: Information Systems Methodology
Object-Oriented Software Engineering: A Use Case Driven Approach
Object-Oriented Software Engineering: A Use Case Driven Approach
Structured Development for Real-Time Systems
Structured Development for Real-Time Systems
Config: a case study in combining software engineering techniques
Scientific Programming
Hi-index | 0.00 |
This paper examines a connection between well known specification, design, implementation methodologies and test-design which appears not to have been previously well-formulated. We refer to the fact that the use of finite state machines (FSMs) in each development phase (specification, design, implementation and testing) is well known and documented. However, despite the fact that much of this work is more than twenty years old, there appears to be no detailed proposal for a consistent FSM-based approach be used across all development phases for other than very specific application types. We suggest that the adoption of a systematic FSM-based approach across all phases, including implementation, may allow a number of major problems in software development to be either eliminated or simplified. In this way, testable, highly dependable systems can be produced. In such systems, behaviour is explicitly defined, built, and tested using both functional and structural methods. Undesired behaviours can be found and eliminated, and abnormal or unexpected input explicitly handled. We discuss the issues we consider to be involved, and the benefits which we expect may be gained. We also identify those areas where further work appears to be required.