The Unified Modeling Language user guide
The Unified Modeling Language user guide
Extreme programming explained: embrace change
Extreme programming explained: embrace change
Refinement Calculus: A Systematic Introduction
Refinement Calculus: A Systematic Introduction
Software Construction by Stepwise Feature Introduction
ZB '02 Proceedings of the 2nd International Conference of B and Z Users on Formal Specification and Development in Z and B
Data Refinement: Model-Oriented Proof Methods and their Comparison
Data Refinement: Model-Oriented Proof Methods and their Comparison
Hi-index | 0.00 |
Refinement calculus [1,5] is a formal framework for reasoning about program correctness and correctness preserving program refinements. It serves as the foundation for an object-oriented software architecture and construction method that we refer to as stepwise feature introduction (SFI) [3]. Characteristic for this approach is that each software module is described in terms of thin layers. Each layer extends the software with some new feature, in a way that preserves the features that have been introduced by earlier layers. This amounts to requiring that the new layer is a superposition refinement [4] of the layers below. The modules are interconnected using interface specifications, usually providing a more abstract view of the module state than what will actually be implemented. The implementation is required to be a data refinement [9,6] of the interface specification. SFI is based on structuring software with these two basic mechanisms, modularization and extension, while the refinement calculus provides the formal framework for reasoning about the correctness of software constructed in this way.We use UML [8] to describe the software architecture, with refinement calculus providing a rigorous mathematical semantics for the UML constructs employed. This will also give us a formal framework for reasoning about UML class diagrams, in essence using these as proof schemes when arguing about software properties.