The objective of this research is to promote the integration and reuse of engineering software components and systems by developing pertinent approaches, notations, and tools. Such capabilities are needed to remain competitive in the engineering and construction marketplace with the growing need for multi-disciplinary analyses and simulations, design-for- construction and -manufacturing, and the integration of analysis, design, and decision-support tools. To enable integration and reuse, software components must be characterized by their functional properties, i.e., a description of the services they provide. Otherwise, one can only examine the program text itself, attempt to characterize its behavior, and try putting the pieces together. Even object-oriented languages are inadequate for promoting integration since they cannot be used to state what a component does, only how it is implemented. Declarative descriptions of functional properties offer the potential to characterize the interaction of complex software components and systems, thus enabling software integration and reuse. This study will develop formal notations for specifying engineering software components, and apply them by developing a handbook of reusable specifications. By using formal methods, the resulting specifications are independent of a particular programming language and may be manipulated and combined using ordinary mathematics.