Sebelum
dimulai, perlu diingatkan kembali mengenai Rekaya Perangkat Lunak. Rekayasa
Perangkat Lunak adalah Suatu disiplin ilmu yang membahas semua
aspek produksi perangkat lunak, mulai dari tahap awal requirement capturing
(analisa kebutuhan pengguna), specification (menentukan spesifikasi dari
kebutuhan pengguna), desain, coding, testing sampai
pemeliharaan sistem setelah digunakan. Pada mata kuliah sebelumnya barangkali
Anda memahami rekayasa perangkat lunak menggunakan pendekatan terstruktur (Data
Oriented Approach). Sedangkan pada bahasan-bahasan berikutnya kita akan
membahas rekayasa perangkat lunak menggunakan pendekatan objek (Object Oriented
Approach).
A. Perangkat
Lunak Sebagai Suatu Produk
Perangkat lunak komputer (PL), telah diakui merupakan salah satu penggerak
kegiatan industri, bisnis, dan berbagai sektor kehidupan. Perangkat lunak
merupakan mesin yang membantu kehidupan manusia dalam pengambilan keputusan.
Perangkat lunak menjadi basis pengembangan keilmuan modern dan proses pemecahan
masalah.
Perkembangan perangkat lunak yang sangat pesat ini
telah mempengaruhi pemikiran masyarakat. Masyarakat sadar dan melihat perangkat
lunak sebagai fakta teknologi yang bermanfaat bagi kehidupan. Manusia
mempertaruhkan pekerjaan mereka, kenyamanan, hiburan, keputusan, dan berbagai
kepentingan kehidupan mereka kepada perangkat lunak.
Saat ini, perangkat lunak memainkan dua peran.
Perangkat lunak merupakan sebuah produk dan pada saat yang bersamaan, PL
merupakan sarana atau alat untuk menghasilkan produk. Produk, dapat kita
interpretasikan sebagai segala sesuatu yang dapat dihasilkan oleh PL, contohnya
layanan.
Sebagai sebuah produk, PL memberikan kemampuan
komputasi pada sebuah sistem perangkat keras (komputer). Perangkat lunak juga merupakan agen pengubah
informasi (information transformer) – memproduksi, mengatur, mengakuisisi data,
memodifikasi, menyampaikan, dan mengirimkan informasi.
Sebagai sebuah sarana untuk menghasilkan sebuah
produk, PL berperan sebagai basis kontrol sistem komputer (sistem operasi),
komunikasi informasi (networks), dan sebagai penciptaan serta kontrol
program-program lain (software tools dan environments).