Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
A behavioral notion of subtyping
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Object-Z specification language
The Object-Z specification language
Consistency-Preserving Model Evolution through Transformations
UML '02 Proceedings of the 5th International Conference on The Unified Modeling Language
Behavioral Subtyping Relations for Active Objects
Formal Methods in System Design
Practical analysis for refactoring
Practical analysis for refactoring
Co-Evolution of Complementary Formal and Informal Requirements
IWPSE '04 Proceedings of the Principles of Software Evolution, 7th International Workshop
CatchUp!: capturing and replaying refactorings to support API evolution
Proceedings of the 27th international conference on Software engineering
Co-evolving application code and design models by exploiting meta-data
Proceedings of the 2007 ACM symposium on Applied computing
Automated traceability analysis for UML model refinements
Information and Software Technology
Refactoring object-oriented specifications with data and processes
FMOODS'07 Proceedings of the 9th IFIP WG 6.1 international conference on Formal methods for open object-based distributed systems
Detecting and resolving model inconsistencies using transformation dependency analysis
MoDELS'06 Proceedings of the 9th international conference on Model Driven Engineering Languages and Systems
Compositional class refinement in object-z
FM'06 Proceedings of the 14th international conference on Formal Methods
Model evolution and refinement
Science of Computer Programming
Hi-index | 0.00 |
Software changes during its lifetime. Likewise, specifications change during their design time, e.g. by removing, adding or changing operations. In a refinement-based approach to software design, we moreover do not deal with a single but with a chain of specifications, related via refinement. Changes thus need to be consistently made to all specifications in the chain so as to keep the refinement structure. In this paper, we describe such co-evolutions of specifications in the context of the formal method Object-Z. More specifically, given a particular evolution of a specification we show how to construct a corresponding evolution for its refinements. We furthermore formally prove our co-evolutions to maintain refinement, thus giving rise to a notion of refinement-preserving co-evolution .