Paten perangkat lunak
FOLDOC mendefinisikan paten perangkat lunak sebagai "paten yang dimaksudkan untuk menghalangi orang lain untuk menggunakan suatu teknik pemrograman". Namun definisi ini belum diterima secara universal.
Rekayasa perangkat lunak
rekayasa perangkat lunak adalah pengubahan perangkat lunak itu sendiri guna mengembangkan, memelihara, dan membangun kembali dengan menggunakan prinsip reakayasa untuk menghasilkan perangkat lunak yang dapat bekerja lebih efisien dan efektif untuk pengguna.