Software Licensing: Principles and Practical Strategies