Artificial Intelligence, Knowledge-based Systems, Rule-based Systems, Software Product Line, Software Quality, Software Reuse and Ontologies