The following are established ways of protecting intellectual property rights in software:
1. Copyright
2. Patent
3. Trademark
Describe the purpose of each of these approaches and explain how each of them can be used to protect property rights in software. Please include any experiences you have had with these approaches.