Software Components as Invariant-Typed Arrows
Invariants are constraints on software components which restrict their behavior in some desirable way, but whose maintenance entails some kind of proof obligation discharge. Such constraints may act not only over the input and output domains, as in a purely functional setting, but also over the underlying state space, as in the case of reactive components. This talk introduces an approach for reasoning about invariants which is both compositional and calculational: compositional because it is based on rules which break the complexity of such proof obligations across the structures involved; calculational because such rules are derived thanks to an algebra of invariants encoded in the language of binary relations. A main tool of this approach is the pointfree transform of the predicate calculus, which opens the possibility of changing the underlying mathematical space so as to enable agile algebraic calculation. The development of a theory of invariant preservation requires a broad, but uniform view of computational processes embodied in software components able to take into account data persistence and continued interaction. Such is the plan for this talk: we first introduce such processes as arrows, and then invariants as their types.
KeywordsBinary Relation Software Component Computational Process Proof Obligation Business Rule
Unable to display preview. Download preview PDF.
- 2.Barbosa, L.S.: Towards a Calculus of State-based Software Components. Journal of Universal Computer Science 9(8), 891–909 (2003)Google Scholar
- 5.Bird, R., Moor, O.: The Algebra of Programming. Series in Computer Science. Prentice Hall (1997)Google Scholar
- 6.Börger, E., Stärk, R.: Abstract state machines: A method for high-level system design and analysis. Springer (2003)Google Scholar
- 9.Meng, S., Barbosa, L.S.: Towards the introduction of qos information in a component model. In: Shin, S.Y., Ossowski, S., Schumacher, M., Palakal, M.J., Hung, C.-C. (eds.) Proceedings of the 2010 ACM Symposium on Applied Computing, Sierre, Switzerland, pp. 2045–2046. ACM (2010)Google Scholar
- 11.Poll, E., Zwanenburg, J.: From algebras and coalgebras to dialgebras. In: CMCS 2001. ENTCS, vol. 44, pp. 1–19. Elsevier (2001)Google Scholar
- 14.Trnková, V., Goralcík, P.: On products in generalized algebraic categories. Commentationes Mathematicae Universitatis Carolinae 1, 49–89 (1972)Google Scholar
- 16.Voutsadakis, G.: Universal dialgebra: Unifying universal algebra and coalgebra. Far East Journal of Mathematical Sciences 44(1) (2010)Google Scholar