Intellectual Property Protection For Software: Concept and Practices