A Framework for Software Component Interface Specification and Analysis
Although markets are emerging for commercial off-the-shelf components (such as Sun JavaBeans), there are many barriers to widespread component adoption. This is due to the inherent `black-box' nature of software components: developers have no knowledge or control of the component's internal characteristics. Without source or design details, developers only have the component's interface, documentation and test results to answer important questions about reliability, proper use, behavior andperformance. The current best practice of specifying a component's capabilities by providing only the syntax and informal documentation is insufficient to assemble mission or safety-critical systems successfully. To address these problems we have developed a framework forcreating and analyzing the concise specifications of components and their related interfaces. The framework extends a formal model for software architecture descriptions to support the specification of a range of terms. With formal component specifications developers can use the framework to analyze the properties of individual components or of entire systems. Unlike other approaches, the formal basis and implementation of our framework enhance understanding and automates much of thecomponent analysis process.