Software engineering merupakan suatu Rekayasa Perangkat Lunak (RPL) atau ilmu atau teori yang mengerjakan suatu proyek perangkat lunak (software) baik itu menciptakan/membangun software baru ataupun mengembangkan software lama. Banyak orang yang bisa melakukan pengkodean perangkat lunak yang biasa kita sebut programmer, namun dalam proses pembuatan perangkat lunak itu dilakukan dengan tidak sistematis sehingga menghasilkan produk perangkat lunak yang lemah.