A Knowledge Engineering Approach to UML Modeling (S)