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).
Baca Selengkapnya!!!!!
A.1 Pandangan Industri Mengenai PL
Pada awal komputasi elektronik, sistem berbasis
komputer dikembangkan dengan manajemen pengembangan sistem yang berorientasi
pada perangkat keras (hardware). Manajer proyek saat itu, memfokuskan
pengembangan sistem pada penyediaan perangkat keras karena menurutnya hal
inilah yang memakan anggaran proyek paling besar.
Pengontrolan biaya perangkat keras, dilakukan
dengan metode pengontrolan formal dan standard teknis. Mereka melakukan analisis dan desain sebelum
membangun sesuatu. Proses diukur untuk dapat menentukan dimana mereka dapat
dilakukan peningkatan dan perbaikan kinerja sistem. Mereka pun menekankan
pengembangan sistem kepada kualitas (quality control dan quality assurance).
Singkat kata, mereka telah mengaplikasikan kontrol, metode, dan piranti
pengembangan yang dikenali sebagai rekayasa perangkat keras (hardware
engineering). Pemanfaatan perangkat keras sayangnya jarang atau kurang dipikirkan.
Dahulu pemrograman dipandang hanya sebagai suatu
bentuk seni. Sangat sedikit metode formal yang ada dan masih sedikit orang yang
memanfaatkannya. Pada umumnya mereka melatih kemampuan mereka dan membangun PL
dengan trial and error. Dunia pengembangan perangkat lunak masih belum disiplin
dan banyak praktisi yang menyukainya.
Saat ini, biaya pengembangan sistem berbasis
komputer telah berubah secara dramatis. Perangkat Lunak, dibanding dengan
perangkat keras, adalah item yang memerlukan alokasi budget yang jauh lebih
besar untuk dapat meningkatkan produktivitas industri.
Tetapi selama kurang-lebih dua dekade manajer dan
praktisi teknis mempertanyakan:
-
Mengapa dalam pengembangan perangkat lunak
dibutuhkan waktu yang sangat lama?
-
Mengapa biayanya sangat besar?
-
Mengapa kita menemui kesulitan menemukan kesalahan
(error) sebelum perangkat lunak tersebut kita berikan kepada pemakai?
-
Mengapa begitu sulit menentukan perkembangan
perangkat lunak yang sedang dikembangkan?
Pertanyaan-pertanyaan
tersebut dan masih banyak pertanyaan-pertanyaan lain yang merupakan pemicu
kepedulian kita mengenai perangkat lunak dan cara pengembanganya. Kepedulian
tentang pemanfaatan disiplin ilmu rekayasa perangkat lunak.
1.1 Perangkat Lunak
Dalam
kehidupan sehari-hari sering kita mendengar perangkat lunak atau software.
Sebenarnya sejauh mana kita mengenal perangkat lunak tersebut? Pernahkan kita
bertanya apakah sebenarnya perangkat lunak?
Menurut
beberapa textbook perangkat lunak didefinisikan sebagai beberapa bentuk sebagai
berikut:
-
Kumpulan atau rangkaian instruksi komputer
(program komputer) yang bila kita eksekusi atau jalankan akan menghasilkan
performansi dan fungsi yang kita kehendaki.
-
Struktur data yang memungkinkan dan mencukupi
suatu program untuk dapat memanipulasi informasi.
-
Dokumen yang mendeskripsikan teknis pengembangan
dan pengoperasian program.
Jadi
tiga unsur perangkat lunak adalah program, data, dan dokumen. Perangkat lunak
yang lengkap selau memiliki tiga unsur ini.
Sebagai
agen pembangun dan pengembang perangkat
lunak, kita butuh untuk mengenal secara lebih detil segala sesuatu tentang
perangkat lunak, lebih dari hanya sekedar definisi.
A.2 Karakteristik
Perangkat Lunak
Untuk dapat mengembangkan
perangkat lunak yang berkualitas, langkah awal yang kita butuhkan adalah
mengetahui karakteristik perangkat lunak, yaitu:
1. Perangkat lunak lebih bersifat sebagai
produk logis daripada sebuah elemen fisik sebuah sistem. Oleh sebab itu,
pendekatan pengembangan PL berbeda dengan perangkat keras apalagi dengan
produksi barang.
Perangkat lunak dikatakan sebagai produk logis karena
perangkat lunak dibangun dari kumpulan rangkaian logika.
2. Perangkat lunak dikembangkan atau dibangun
dengan proses rekayasa (engineering), bukan hasil proses manufaktur
dalam pengertian produksi klasik.
Meskipun masih terdapat kesamaan antara pengembangan perangkat
lunak dan proses manufaktur perangkat keras, kedua aktivitas ini merupakan
aktivitas yang benar-benar berbeda.
Kedua aktivitas ini membutuhkan proses desain yang baik untuk
dapat menghasilkan kualitas yang tinggi, kesalahan yang timbul pada proses
manufaktur perangkat keras masih relatif lebih mudah diketahui dan diperbaiki
daripada proses pengembangan perangkat lunak.
Kedua aktivitas ini bergantung kepada ketersediaan sumber daya
manusia, tetapi hubungan antara sumber daya manusia dengan peningkatan
efisiensi dan efektivitas pengembangan produk sangatlah berbeda. Salah satu hal
yang dapat kita lihat adalah pada pengembangan perangkat keras, dengan menambah
tenaga manusia, maka produksi akan meningkat secara linier. Tetapi tidak begitu
halnya dengan penambahan tenaga manusia pada pegembangan perangkat lunak.
Berbagai faktor yang mempengaruhi antara lain :
a. Diperlukan
usaha untuk mensinkronisasi pembagian tugas dalam pengembangan perangkat lunak.
Semakin banyak team atau pemrogram, ternyata usaha sinkronisasi dan koordinasi
semakin rumit.
b. Dengan
penambahan tenaga manusia maka diperlukan tambahan waktu untuk penyesuaian atau
adaptasi tenaga manusia yang baru untuk memahami perilaku perangkat lunak.
Hal
mengenai hubungan sumber daya manusia dengan pengembangan perangkat lunak dalam
sebuah proyek secara lebih detil akan kita kaji dalam bagian manajemen
perangkat lunak. Kemudian terdapat perbedaan pula pada pendekatan pengembangan
sistem.
Biaya
atau budged pengembangan perangkat lunak terkonsentrasikan pada proses rekayasa
(engineering), ini berarti pambangaunan dan pengembangan perangkat lunak
tidak dapat dikelola seperti halnya proses manufaktur, yang pembiayaannya
terkonsentrasi pada biaya seluruh bahan baku
dan sumber daya lain.
3. Perangkat
lunak tidak dapat kedaluarsa (‘wear out’)
Kurva pemanfaatan perangkat
keras sebagai fungsi waktu
Grafik
tersebut mengindikasikan bahwa pada awal pembangunan dan pengembangan,
perangkat keras selalu diperbaiki dari cacat produksi. Cacat ini diperbaiki
dalam selang waktu tertentu hingga pengeleminasian kegagalan yang dimiliki oleh
perangkat keras tersebut berjalan dengan sangat lambat. Pada periode ini,
pemanfaatan perangkat keras cukup optimal. Akan tetapi dalam beberapa periode
waktu pemakaian, pemanfaatan perangkat keras menurun secara drastis. Perangkat
keras tersebut telah ‘usang’ terhadap waktu. Perangkat keras telah usang karena
akumulasi debu, eskploitasi penggunaan perangkat keras, temperature, dan
berbagai pengaruh buruk lingkungan.
Lain
halnya dengan perangkat lunak. PL tidak terpengaruh oleh perubahan dan dampak
fisik lingkungan.
Tingkat
efisiensi dan efektivitas pemanfaatan perangkat lunak selalu mengalami proses
revisi atau perbaikan akibat proses maintenance. Sehingga saat
fungsionalitas atau pun fitur perangkat lunak sudah mulai ‘ketinggalan jaman’,
perangkat lunak yang baik selalu dapat menyesuaikan fungsionalitasnya dengan
kebutuhan yang ada. Artinya perangkat lunak tersebut mudah dimodifikasi.
4. Meskipun
perkembangan industri perangkat lunak bergerak mengarah kepada perakitan
komponen-komponen dasar, pengembangan perangkat lunak selalu membutuhkan
penyesuaian dengan kebutuhan.
Berbeda
dengan pembuatan barang (dalam arti fisik: seperti rumah, perangkat keras,
dll), selalu ada komponen (contohnya bingkai kaca, jendela, pintu) yang dapat
langsung dimanfaatkan atau dirangkai sehingga dapat dihasilkan produk baru
(contoh: rumah).
0 comments:
Posting Komentar