Menurut IEEE (1993) dlm Pressman (2001), Rekayasa perangkat lunak atau Software Engineering itu adalah :
1) Aplikasi yang sistematis, disiplin dan pendekatan yang terukur untuk pengembangan, penjalanan dan perawatan perangkat lunak.
2) Kajian pendekatan pada angka satu.
Menurut Pressman (2001), rekayasa perangkat lunak dikategorikan atas tiga fase, yaitu :
1) Fase pendefinisian.
Fokus on what : Apa informasi yang harus diproses ? Fungsi dan performan apa dikehendaki ? Perilaku sistem apa yang diharapkan? Antarmuka apa yang akan dibentuk ? Batasan perancangan apa yang ada ? Kriteria validasi apa yang diperlukan untuk mendefinisikan kesuksesan satu sistem ?
2) Fase pengembangan.
Fokus on how : Bagaimana data distrukturkan ? Bagaimana mengimplementasikan satu fungsi didalam satu arsitektur perangkat lunak ? Bagaimana mengimplementasikan satu prosedur detail ? Bagaimana mengkarakteristikkan antarmuka ? Bagaimana mentranslasikan perancangan ke dalam satu bahasa pemograman dan bagaimana satu pengujian akan dilakukan ?
3) Fase dukungan.
Fokus on change : koreksi, adaptasi, peningkatan dan pencegahan.
Menurut standar IEEE 1074-1995 dlm Pressman (2001), kegiatan utama yang ada pada fase pengembangan perangkat lunak itu adalah