Communicating sequential processes
Communicating sequential processes
CSP-OZ: a combination of object-Z and CSP
FMOODS '97 Proceedings of the IFIP TC6 WG6.1 international workshop on Formal methods for open object-based distributed systems
The Object-Z specification language
The Object-Z specification language
The Theory and Practice of Concurrency
The Theory and Practice of Concurrency
A Survey of Software Refactoring
IEEE Transactions on Software Engineering
Architectural Design in Object-Z
ASWEC '04 Proceedings of the 2004 Australian Software Engineering Conference
Formalizing refactorings with graph transformations: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice
Model refactorings through rule-based inconsistency resolution
Proceedings of the 2006 ACM symposium on Applied computing
Defining and validating transformations of UML models
HCC '03 Proceedings of the 2003 IEEE Symposium on Human Centric Computing Languages and Environments
Data Refinement: Model-Oriented Proof Methods and their Comparison
Data Refinement: Model-Oriented Proof Methods and their Comparison
Behavior-preserving refinement relations between dynamic software architectures
WADT'04 Proceedings of the 17th international conference on Recent Trends in Algebraic Development Techniques
Changing programs correctly: refactoring with specifications
FM'06 Proceedings of the 14th international conference on Formal Methods
Model transformations incorporating multiple views
AMAST'06 Proceedings of the 11th international conference on Algebraic Methodology and Software Technology
Introducing Objects through Refinement
FM '08 Proceedings of the 15th international symposium on Formal Methods
A Minimal Set of Refactoring Rules for Object-Z
FMOODS '08 Proceedings of the 10th IFIP WG 6.1 international conference on Formal Methods for Open Object-Based Distributed Systems
From UML Activities to TAAL - Towards Behaviour-Preserving Model Transformations
ECMDA-FA '08 Proceedings of the 4th European conference on Model Driven Architecture: Foundations and Applications
Refinement-Preserving Co-evolution
ICFEM '09 Proceedings of the 11th International Conference on Formal Engineering Methods: Formal Methods and Software Engineering
Showing full semantics preservation in model transformation: a comparison of techniques
IFM'10 Proceedings of the 8th international conference on Integrated formal methods
Model evolution and refinement
Science of Computer Programming
Hi-index | 0.00 |
Refactoring is a method for improving the structure of programs/ specifications as to enhance readability, modularity and reusability. Refactorings are required to be behaviour-preserving in that - to an external observer - no difference between the program before and after refactoring is visible. In this paper, we develop refactorings for an object-oriented specification formalism combining a state-based language (Object-Z) with a process algebra (CSP). In contrast to OO-programming languages, refactorings moving methods or attributes up and down the class hierarchy, in addition, need to change CSP processes. We formally prove behaviour preservation with respect to the failures-divergences model of CSP.