SFI: A Refinement Based Layered Software Architecture

  • Authors:
  • Ralph-Johan Back

  • Affiliations:
  • -

  • Venue:
  • ICFEM '02 Proceedings of the 4th International Conference on Formal Engineering Methods: Formal Methods and Software Engineering
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.