Knowledge-Based Support for Object-Oriented Software Design and Synthesis: a category theoretic approach | IEEE Conference Publication | IEEE Xplore