Programming from specifications
Programming from specifications
Contracts: specifying behavioral compositions in object-oriented systems
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
ACM Transactions on Programming Languages and Systems (TOPLAS)
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Inside COM
Component software: beyond object-oriented programming
Component software: beyond object-oriented programming
Refinement Calculus: A Systematic Introduction
Refinement Calculus: A Systematic Introduction
Revised Lectures from the International Symposium on Compositionality: The Significant Difference
COMPOS'97 Revised Lectures from the International Symposium on Compositionality: The Significant Difference
A Plea for Grey-Box Components
A Plea for Grey-Box Components
Products in the Refinement Calculus
Products in the Refinement Calculus
Encoding, Decoding and Data Refinement
Encoding, Decoding and Data Refinement
Developing Components in the Presence of Re-entrance
Developing Components in the Presence of Re-entrance
Hi-index | 0.01 |
Independent development of components according to their specifications is complicated by the fact that a thread of control can exit and re-enter the same component. This kind of re-entrance may cause problems as the internal representation of a component can be observed in an inconsistent state. We argue that the ad-hoc reasoning used in establishing conformance of components to their specifications that intuitively appears to be correct does not account for the presence of re-entrance. Such reasoning leads to a conflict between assumptions that component developers make about the behavior of components in a system, resulting in the component re-entrance problem. We formulate the modular reasoning property that captures the process of independent component development and introduce two requirements that must be imposed to avoid the re-entrance problem. Then we define a customized theory of components, component systems, and component refinement which models the process of component development from specifications. Using this theory, we prove that the formulated requirements are sufficient to establish the modular reasoning property.