Stephen R. Schach 1990 terbatas pada menanggulangi kekurangan yang terjadi jika tidak menerapkan rekayasa perangkat lunak. IEEE 610.12
memberikan pengertian yang paling baik dalam menyampaikan wujud dari rekayasa perangkat lunak.
Perangkat lunak merupakan ilmu yang penting untuk diperdalam karena teknologi ini memberikan stabilitas, kontrol, dan organisasi
aktifitas. Beberapa tujuan yang dilakukan rekayasa perangkat lunak antara lain Kristianto, 2004 :
1. Dapat membangun software yang benar right software dan software
yang tepat correct. 2.
Menciptakan sistem pengelolaan dan pemeliharaan software yang sesuai.
2.1.3. Karakteristik perangkat lunak
Perangkat lunak lebih merupakan elemen logika dan bukan merupakan elemen sistem fisik. Dengan demikian, perangkat lunak
memiliki ciri yang berbeda dari perangkat keras Pressman, 2005 : 1.
Perangkat lunak dibangun dan dikembangkan serta tidak dibuat dalam bentuk yang klasik.
Banyak kesamaan di antara pabrik perangkat keras dan perangkat lunak, tetapi aktivitas keduanya secara mendasar sangat berbeda.
Dalam kedua aktivitas tersebut, kualitas yang tinggi dicapai melalui perancangan yang baik tetapi di dalam fase pembuatan perangkat
keras, selalu ditemukan masalah kualitas yang tidak mudah untuk
disesuaikan dengan perangkat lunak. Kedua aktivitas tersebut tergantung pada manusia, tetapi hubungan antara penerapan yang
dilakukan manusia dengan usaha yang diperoleh sangat berbeda. Kedua aktivitas tersebut membutuhkan konstruksi sebuah produk,
tetapi pendekatan yang digunakan berbeda. Dibangunnya perangkat lunak ini tidak menyatakan bahwa adanya
perkembangan perangkat lunak dan pembuatan perangkat keras itu ekivalen. Terlebih lagi, perusahaan perangkat lunak mengijinkan
pemakaian alat-alat yang diotomatisasi untuk pengembangan perangkat lunak.
2. Perangkat lunak tidak pernah usang.
Perangkat lunak tidak rentan terhadap pengaruh lingkungan yang merusak sehingga menyebabkan perangkat lunak menjadi usang.
Kesalahan-kesalahan yang tidak dapat ditemukan akan menyebabkan tingkat kegagalan menjadi sangat tinggi pada awal hidup program.
Tetapi hal tersebut dapat diperbaiki dan diharapkan tidak lagi ditemukan kesalahan yang lain.
Aspek lain dari keusangan menunjukkan perbedaan antara perangkat keras dan perangkat lunak. Bila komponen suatu perangkat telah
usang, komponen dapat diganti dengan suku cadangnya. Namun tidak ada suku cadang bagi perangkat lunak. Setiap kegagalan perangkat
lunak menggambarkan kesalahan dalam perancangan atau proses di
mana rancangan diterjemahkan ke dalam kode mesin yang dapat dieksekusi.
3. Sebagian besar perangkat lunak dibuat secara costum-built, serta tidak
dapat dirakit dari komponen yang sudah ada. Para perancang perangkat lunak tidak diberi fasilitas seperti halnya
perangkat keras. Dengan sedikit pengecualian, tidak ada katalog komponen dalam perangkat lunak. Memang memungkinkan untuk
memesan perangkat lunak secara terpisah, tetapi tetap merupakan satu kesatuan yang lengkap, bukan sebagai komponen yang dapat
dipasangkan ke dalam program-program baru. Jika adanya pemesanan perangkat yang terpisah-pisah memungkinkan adanya penggunaan
yang tidak sesuai dengan harapan yang diinginkan sehingga hanya menambahkan permasalahan yang ada.
2.1.4. Aplikasi Perangkat Lunak