An Engineering Approach to Digital Design