Semantic Components with Conceptual Contracts
Since developers of reusable constructs (like chunks of code or paragraphs of documentation) can not say what they mean, there is a “meaning-mismatch”. This “information-impedance” muddles communication between collaborators as well as complicates composition between components. A new semantic theory, specifically designed to address this and related problems, can help solve this “meaning-mismatch”. It is our belief that if such a product were widely available and integrated into all aspects of system development, then our systems would be easier to build, better documented, and more robust. Put more plainly, our systems would be “more correct”. This paper aims to provide a means by which components can be semantically (conceptually, formally) described, present an algorithm which automatically determines when components can interoperate regardless of syntax or component model, and describe the means by which the adapters necessary to compose such components can be automatically generated. A component that is specified, manipulated, and reasoned about using this (or functionally similar) theory, tools, and techniques is what we call a semantic component. The theoretical foundation for this work is a new logic for describing open collaborative reusable assets called kind theory, which is described in full in Kiniry’s Ph.D. dissertation.
|