2 November 2015

Rekayasa Perangkat Lunak

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