Skip to Main Content
We propose a software architecture based on a combination of object-oriented models and executable formal specifications. In this architecture, the machine control software is viewed as an integration of a set of reusable software components, each modeled with a set of event-based external interfaces for functional definitions, a control logic driver for execution of behavioral specifications, and a set of service protocols for platform adaptation. The behaviors of the entire software can be viewed as an integration of behaviors of components and their integration. Separation of structural specification from behavioral specification enables the controller software structure to be reconfigured independently of application, and software behavior to be reconfigured independently of controller software structure. When the system needs reconfiguration due to changes in either application requirements or the execution platform, the software with our architecture can then be reconfigured by changing reusable components and their interactions in structure for functional capability, and by changing the Control Plan program for behavior. Both types of reconfiguration can be done at the executable code level after the software is implemented. The proposed architecture also supports reconfigurability to facilitate heterogeneous implementations and vendor-neutral products.