A Layered Software Architecture with Uncertainty Handling Capabilities for Circuit Computer-Aided Design