Model-based tools enable developers to produce prototype user-interface designs from a model of the system. Existing model-based tools do not enable a developer to work from an abstract specification of the system to ...
详细信息
Model-based tools enable developers to produce prototype user-interface designs from a model of the system. Existing model-based tools do not enable a developer to work from an abstract specification of the system to produce a prototype design. Consequently, much design work focuses prematurely on the concrete visual appearance of the user interface. To address this issue, patterns are discussed that provide a formal model-based design process commencing from an abstract specification.
Even with increasing use of formal methods for software development, software testing continues to be a dominant technique for verification and validation. With specification-based testing, the precision of formal spe...
详细信息
Even with increasing use of formal methods for software development, software testing continues to be a dominant technique for verification and validation. With specification-based testing, the precision of formal specifications can make the testing more systematic. This paper describes a tool to assist the derivation of test cases from Object-Z specifications. The tool supports the Test Template Framework and manages the testing information for the user. Management of the generated testing information is regarded as a high priority and is one of the tool's features. The tool is demonstrated on a simple example to indicate its core functionality.
Timed-trace formalisms have emerged as a powerful method for specifying and reasoning about concurrent real-time systems. We present a simple variant which builds methodically on set theory, and is thus suitable for u...
详细信息
Inheritance is a feature of the feature-oriented paradigm that permits substantial reuse of code. For us to have confidence in reused code, it must be adequately tested. Whilst object-oriented analysis, design and imp...
详细信息
Inheritance is a feature of the feature-oriented paradigm that permits substantial reuse of code. For us to have confidence in reused code, it must be adequately tested. Whilst object-oriented analysis, design and implementation techniques have received much attention in recent literature, object-oriented testing has been given comparatively little consideration. This paper presents an adaptation of the ClassBench methodology to the testing of inheritance hierarchies in C++. A small case study which applies the strategy to an inheritance hierarchy of a commercial class library is presented.
In this paper, we present an approach that combines specification-based testing and class testing. In particular, we provide a method for generating Finite State Machines (FSMs) from formal, object-oriented specificat...
详细信息
In this paper, we present an approach that combines specification-based testing and class testing. In particular, we provide a method for generating Finite State Machines (FSMs) from formal, object-oriented specifications, and use the ClassBench testing framework to build a test suite from those formally generated FSMs. We briefly outline our approach and focus on one step in the approach; the transformation of the formally derived FSM into a ClassBench testgraph, which is used by ClassBench to drive the test execution. We illustrate the method with a simple bounded queue class, and discuss the application of the method to a larger example, which is a simplified model of a process scheduling system.
The paper contains a case study demonstrating a complete process for specification based class testing. The process starts with an abstract specification written in Object-Z and concludes by exercising an implementati...
详细信息
The paper contains a case study demonstrating a complete process for specification based class testing. The process starts with an abstract specification written in Object-Z and concludes by exercising an implementation with test cases and evaluating the results. The test cases are derived using the Test Template Framework for each individual operation. They are analysed to generate a finite state machine that can execute test sequences within the ClassBench framework. An oracle is also derived from the Object-Z specification. The case study demonstrates how a formal specification contributes to the development of practical tests that can be executed by a testing tool. It also shows how a test oracle can be derived from a specification and used by the same testing tool to evaluate test results.
Formal specification using mathematical text provides a sound basis for developing complex systems, especially safety-critical systems. The paper discusses three formal specification styles for state-based systems fro...
详细信息
Formal specification using mathematical text provides a sound basis for developing complex systems, especially safety-critical systems. The paper discusses three formal specification styles for state-based systems from monolithic, through Z to modular each illustrated by the same simple example. In each case, formal text which is left implicit in practice is identified and discussed. The paper includes a denotational semantics for operations within a modular system, including their conjunctive, parallel, choice and sequential composition. The importance of extending the semantics to unwritten formal text implicit in Z and modular style specifications is emphasised because misinterpretation of the implicit can have serious consequences.
We show how software architectural styles can be used to guide object oriented design. Design guidance is important, as the initial phases of software design significantly impact software quality. We use two different...
详细信息
We show how software architectural styles can be used to guide object oriented design. Design guidance is important, as the initial phases of software design significantly impact software quality. We use two different architectural styles to guide the design process from a formal specification to a design. software architectural styles assist by providing a different level of reuse than currently practised in software design. A style provides a framework for top level structure and guides selection of components and interfaces. We show the impact of software architectural styles on software design.
暂无评论