Hukum perangkat lunak mendukung transaksi perangkat lunak dan melindungi kekayaan intelektual yang disertakan dalam perangkat lunak itu sendiri. Transaksi umumnya mencakup perizinan, dukungan, dan pengembangan. Perangkat lunak dilindungi oleh berbagai hak kekayaan intelektual.
Perjanjian lisensi untuk perangkat lunak dapat berupa kontrak sederhana atau perjanjian terperinci, biasanya tergantung pada nilai transaksi. Konsumen dapat mengunduh aplikasi dari Internet dan menyetujui persyaratan perjanjian lisensi perangkat lunak dengan mengklik persyaratan perjanjian online. Perjanjian lisensi ini tidak dapat dinegosiasikan. Konsumen harus menerima persyaratan jika dia ingin melisensikan perangkat lunak.
Hukum perangkat lunak mencakup transaksi lisensi perangkat lunak yang lebih besar yang dinegosiasikan antara pihak-pihak. Pihak-pihak ini dapat memulai dengan perjanjian dasar yang disediakan oleh vendor perangkat lunak, tetapi perjanjian akhir adalah perjanjian yang telah dimodifikasi oleh kedua belah pihak agar sesuai dengan transaksi tertentu. Perjanjian tersebut mencakup persyaratan kepemilikan dan hak khusus yang diberikan kepada penerima lisensi oleh pemberi lisensi. Tingkat perubahan dari kontrak dasar asli agak tergantung pada jumlah penyesuaian perangkat lunak oleh vendor perangkat lunak untuk penerima lisensi.
Beberapa transaksi perangkat lunak termasuk modifikasi perangkat lunak asli oleh vendor. Modifikasi ini mungkin merupakan bagian dari perjanjian lisensi perangkat lunak atau mungkin dicakup oleh perjanjian pengembangan perangkat lunak yang terpisah. Transaksi perangkat lunak lain mungkin untuk perangkat lunak berpemilik tertentu. Perjanjian yang menggambarkan transaksi ini akan menunjuk siapa yang memiliki perangkat lunak yang baru dikembangkan ini dan pihak mana yang menerima lisensi. Para pihak harus mempertimbangkan berbagai aspek hukum perangkat lunak saat mereka menegosiasikan transaksi ini.
Perjanjian dukungan perangkat lunak menetapkan parameter di mana vendor perangkat lunak akan memberikan dukungan. Perjanjian ini bervariasi berdasarkan biaya perangkat lunak yang mendasari dan tingkat penyesuaian. Perangkat lunak yang murah umumnya memiliki jumlah dukungan yang terbatas. Perangkat lunak yang lebih disesuaikan atau mahal memiliki persyaratan dukungan yang sangat spesifik.
Perjanjian dukungan dapat mencakup berbagai tingkat dukungan. Tingkat dasar disediakan selama jam kerja. Tingkat dukungan berikutnya dapat diberikan di luar jam kerja, dan mungkin ada biaya tambahan. Hukum perangkat lunak membahas parameter di mana dukungan ini diberikan kepada pelanggan.
Perlindungan hak cipta disediakan untuk sebagian besar aplikasi perangkat lunak. Beberapa aplikasi perangkat lunak mungkin menerima perlindungan paten. Ada area perlindungan khusus yang mungkin mencakup jenis perangkat lunak tertentu. Perlindungan hukum perangkat lunak berbeda-beda di setiap negara. Negosiasi lisensi perangkat lunak antara dua klien internasional semakin memperumit kontrak karena hukum, peraturan, dan perjanjian masing-masing negara harus dipertimbangkan karena para pihak menentukan hak khusus yang diberikan dalam perjanjian ini.