Rekayasa perangkat lunak dapat dimaknai sebagai suatu pendekatan yang sistematis, disiplin dan terkuantifikasi atas pengembangan, penggunaan dan pemeliharaan perangkat lunak, serta studi atas pendekatan-pendekatan ini, yaitu penerapan pendekatan engineering atas perangkat lunak.
Sehingga seorang Software Engineering harus mendalami cara-cara pengembangan perangkat lunak termasuk pembuatan, pemeliharaan, manajemen organisasi pengembangan perangkat lunak dan manajemen kualitas, karena Karakteristik khusus dari kualitas perangkat lunak adalah sebuah hal yang kompleks dan tak mudah untuk langsung dimengerti (intangibility). Banyak sekali beda persepsi dan ekspektasi mengenai kualitas perangkat lunak, diantaranya kebutuhan, keinginan, kemauan, dan prioritas dari pengguna perangkat lunak tersebut.
Selanjutnya, untuk menyatakan apakah sebuah perangkat lunak dapat dinyatakan berkualitas harus terlebih dahulu dilakukan pengujian (testing) dan pengukuran (measurement) tingkat kualitasnya. Pengujian ini dimaksudkan untuk memastikan apakah perangkat lunak tersebut benar-benar dapat digunakan (useable) oleh penggunanya.
Terakhir yang tidak kalah penting adalah dilakukannya pengukuran terhadap kualitas perangkat lunak yang dimana hasil pengukurannya akan dijadikan acuan bagi pola pengembangan rekayasa perangkat lunak kedepannya, terutama yang erat hubungannya dengan antarmuka pengguna (user interface) dan pengalaman pengguna (user experience) dalam menggunakan perangkat lunak tersebut