Refactoring SPIN for Safety
نویسندگان
چکیده
We show how to refactor SPIN for safety model checking resulting in a compact model checker occupying less than 200 lines of code without appreciable loss of performance while reusing much of SPIN’s front-end facilities. In addition to being far easier to understand and being eminently suitable as a basis for extensions by the researcher and developer community, the resulting model checker is also eminently suitable for distributed model checking—a project that is underway. We also show that employing graphical means of visualizing the asynchronous product graph can be very valuable in debugging a model checker—a facility we implemented and extensively employed in both understanding the original SPIN and discovering three subtle flaws in it.
منابع مشابه
TAPE Test Code Adaptation Plug-in for Eclipse
Refactoring improves the design of software and makes it easier to maintain by eliminating code smells. As manual refactoring is often error-prone and time-consuming, automated refactoring is considered a better choice. Refactoring tools are available in almost all major object oriented programming languages like java, C++, C# etc and provide varying degree of automation. The problem with these...
متن کاملEfficiently Refactoring Java Applications to Use Generic Libraries
Java 1.5 generics enable the creation of reusable container classes with compiler-enforced type-safe usage. This eliminates the need for potentially unsafe down-casts when retrieving elements from containers. We present a refactoring that replaces raw references to generic library classes with parameterized references. The refactoring infers actual type parameters for allocation sites and decla...
متن کاملA Metric Based Evaluation of Unit Tests as Specialized Clients in Refactoring
In the context of refactoring, a unit test significantly differs from an ordinary client. A unit test is the only safety net available to verify the impact of refactoring. In addition, tight coupling and stronger association with the refactored class are its key discriminating characteristics. Hence, any change in the code readily affects the behavior and quality of the test code. But if test c...
متن کاملEmpirical evaluation of syntactic and semantic defects introduced by refactoring support
Software maintenance is a major source of expense in software projects. A proper evolution process is a critical ingredient in the cost-efficient development of high-quality software. A special case of software evolution is refactoring that cannot change the external behaviour of the software system yet should improve the internal structure of the code. Hence, there is always a need to verify a...
متن کاملCode Search API, Base of Parallel Code Refactoring System For Safety Standards Compliance
New technologies of multi-core and massively parallel processors are becoming common parts of today’s desktop computers. These state-of-the-art technologies allow programming of parallel applications and systems, however, creating parallel applications puts higher demands on programmers’ skills, project maintenance and modification of existing source codes. Program flaws entered on source codes...
متن کامل