Mesin perangkat lunak (bahasa Inggris: software engine) adalah komponen inti dari sistem perangkat lunak yang kompleks. Kata "mesin" merupakan metafora dari mesinmobil. Oleh karena itu, mesin perangkat lunak merupakan sebuah subsistem yang kompleks; tidak jauh berbeda dengan cara kerja mesin mobil. Mesin perangkat lunak bekerja sama dengan komponen lain dari suatu proses atau sistem. Mesin ini pada umumnya memiliki masukan dan keluaran, dan produktivitasnya biasanya berbanding lurus dengan kecepatan eksekusinya.
Tidak ada pedoman formal mengenai apa yang layak disebut sebagai mesin, tetapi istilah ini telah digunakan secara luas dalam industri perangkat lunak.[1][2][3]