Software Engineering and Knowledge Engineering:Theory