Slicing Software for Model Construction
نویسندگان
چکیده
Applying nite state veri cation techniques e g model check ing to software requires that program source code be trans lated to a nite state transition system that safely models program behavior Automatically checking such a transition system for a correctness property is typically very costly thus it is necessary to reduce the size of the transition sys tem as much as possible In fact it is often the case that much of a program s source code is irrelevant for verifying a given correctness property In this paper we apply program slicing techniques to remove automatically such irrelevant code and thus reduce the size of the corresponding transition system models We give a simple extension of the classical slicing de nition and prove its safety with respect to model checking of linear tem poral logic LTL formulae We propose various re nements to slicing that take advantage of common structural patterns appearing in LTL software speci cations Finally we discuss how this slicing strategy ts into a general methodology for deriving e ective software models using abstraction based program specialization
منابع مشابه
Debugging Statecharts Via Model-Code Traceability
Model-driven software development involves constructing behavioral models from informal English requirements. These models are then used to guide software construction. The compilation of behavioral models into software is the topic of many existing research works. There also exist a number of UML-based modeling tools which support such model compilation. In this paper, we show how Statechart m...
متن کاملDetermine Cohesion and Coupling for Class Diagram through Slicing Techniques
High cohesion or module strength indicates that a system has been well partitioned into components which have strong internal relationships between attribute, method and class. Cohesion is an important factor in term of software design. Coupling indicates the degree of interdependence among the component of a software system. Coupling is thought to be a desirable goal in software construction, ...
متن کاملOptimizing Slicing of Formal Specifications by Deductive Verification
Slicing is a technique for extracting parts of programs or specifications with respect to certain criteria of interest. The extraction is carried out in such a way that properties as described by the slicing criterion are preserved, i.e., they hold in the complete program if and only if they hold in the sliced program. In verification, slicing is often employed to reduce the state space of spec...
متن کاملAn optimal algorithm for the construction of the system dependence graph
Program slicing can be used to aid in a variety of software maintenance activities including code understanding, code testing, debugging, and program reengineering. Program slicing (as well as other program analysis functions including forward slicing) can be efficiently performed on an internal program representation called a system dependence graph (SDG). The construction of the SDG depends p...
متن کاملHeterogeneous Megamodel Slicing for Model Evolution
Slicing is a widely used technique for supporting comprehension and assessing change impact during software evolution activities. While there has been substantial research into the slicing of particular model types, model-based software development typically involves heterogeneous collections of related models and there is little work addressing slicing in this context. In this paper, we propos...
متن کامل