Design and Development of Knowledge-Based Systems: from Life Cycle to Development Methodology