Jumat, 13 Februari 2015

Rekayasa Perangkat Lunak

1.    Definisi Rekayasa Perangkat Lunak
Definisi Rekayasa : Engineering = rekayasa
Ø  Pemakaian ‘science’ untuk menyelesaikan ‘masalah praktis’.
Ø  Dari tidak ada menjadi ada
Definisi Perangkat Lunak :
Ada beberapa definisi perangkat lunak yang pernah dikemukakan antara lain :
• Software = Perangkat lunak. 
Ø  Kumpulan program komputer dengan fungsi tertentu
• Perangkat lunak adalah:
1.     Instruksi (program komputer) yang bila dieksekusi dapat menjalankan fungsitertentu,
2.     Struktur data yang dapat membuat program memanipulasi informasi, dan
3.     Dokumen yang menjelaskan operasi dan penggunaan program (Pressman,1997).
• Perangkat lunak adalah program komputer, prosedur, aturan, dan dokumentasi yang berkaitan serta data, yang bertalian dengan operasi suatu sistem komputer (IEEE,1993).

2. Model Proses Rekayasa Perangkat Lunak
Proses pemodelan Rekayasa Perangkat Lunak merupakan langkah yang dilakukan pada tahap awal.
A.      Linear Sequential Model
Gambar Waterfall Model :



Linear Sequential Model atau disebut juga “classic life cycle” atau “waterfall model”   merupakan metode pengembangan perangkat lunak dengan pendekatan sekuensial dengan cakupan aktivitas :
1.      Rekayasa sistem dan Analisis (Sistem Engineering and Analysis)
Karena perangkat lunak adalah bagian dari sistem yang lebih besar, maka pekerjaan dimulai dari pembentukan kebutuhan-kebutuhan untuk seluruh elemen system. Hal ini penting, ketika perangkat lunak harus berkomunikasi dengan hardware, orang dan basis data.
2.      Analisa Kebutuhan Perangkat Lunak (Software Requirements Analysis)
Pada tahap ini dilakukan dengan pengumpulan kebutuhan yang berfokus pada perangkat lunak, meliputi : domain informasi, fungsi yang dibutuhkan, unjuk kerja atau performansi dan antarmuka. Hasilnya harus didokumentasi dan di review ke pengguna atau user.
3.      Perancangan ( Design)
Ada 4 atribut untuk program yaitu : Struktur Data, Arsitektur perangkat lunak,Prosedur detil dan Karakteristik Antarmuka. Proses desain mengubah kebutuhan-kebutuhan menjadi bentuk karakteristik yang dimengerti perangkat lunak sebelum dimulai penulisan program. Desain ini harus terdokumentasi dengan baik dan menjadi bagian konfigurasi perangkat lunak.
4.      Pembuatan kode (Coding)
Penterjemahan perancangan ke bentuk yang dapat dimengerti oleh mesin,  dengan menggunakan bahasa pemrograman seperti bahasa C, pascall , php dan sebagainya.
5.      Pengujian (Testing)
Setelah kode program selesai testing dapat dilakukan. Testing memfokuskan pada logika internal dari perangkat lunak, fungsi eksternal dan mencari segala kemungkinan kesalahan dan memeriksa apakah sesuai dengan hasil yang diinginkan atau tidak.
6.      Pemeliharaan ( Maintenance)
Merupakan bagian paling akhir dari siklus pengembangan dan dilakukan setelah perangkat lunak dipergunakan. Kegiatannya sebagai berikut :
• Corrective Maintenance : Mengoreksi kesalahan pada perangkat lunak, yang baru terdeteksi pada saat perangkat lunak digunakan.
•  Adaptive Maintenance : Penyesuaian dengan lingkungan baru, misalnya system operasi atau sebagai tuntutan atas perkembangan sistem komputer, misalnya penambahan  printer driver. 
• Perfektive Maintenance : Bila perangkat lunak sukses dipergunakan oleh pemakai. Pemeliharaan ditujukan untuk menambah kemampuannya seperti memberikan fungsi-fungsi tambahan, peningkatan kinerja dan sebagainya.

Ø  Kelemahan model linear sequential :
1.      Proyek yang sebenarnya jarang mengikuti alur sekuensial seperti diusulkan,sehingga perubahan yang terjadi dapat menyebabkan hasil yang sudah didapat timharus diubah  kembali/iterasi sering menyebabkan masalah baru.
2.    Linear sequential model mengharuskan semua kebutuhan pemakai sudah dinyatakansecara eksplisit di awal proses, tetapi kadang-kadang ini tidak dapat terlaksanakarena kesulitan yang dialami pemakai saat akan mengungkapkan semuakebutuhannya tersebut.
3.    Pemakai harus bersabar karena versi dari program tidak akan didapat sampai akhir rentang waktu proyek.
4.    Adanya waktu menganggur bagi pengembang, karena harus menunggu anggota tim proyek lainnya menuntaskan pekerjaannya.

B. Prototyping Model




Pendekatan prototyping model digunakan jika pemakai hanya mendefenisikan objektif umum dari perangkat lunak tanpa merinci kebutuhan input , pemrosesan dan outputnya. Cakupan aktivitas dari prototyping model terdiri dari :
1.      Mendefinisikan objektif secara keseluruhan dan mengidentifikasi kebutuhan yangsudah diketahui.
2.      Melakukan perancangan secara cepat sebagai dasar untuk membuat prototype. Modul Rekayasa Perangkat Lunak
3.      Menguji coba dan mengevaluasi prototype dan kemudian melakukan penambahandan perbaikan-perbaikan terhadap prototype yang sudah dibuat.

Ø  Kelemahan prototyping model :
1.      Pelanggan yang melihat working version dari model yang dimintanya tidak menyadari, bahwa mungkin saja prototype dibuat terburu-buru dan rancangan tidak tersusun dengan baik.
2.      Pengembang kadang-kadang membuat implementasi sembarang, karena inginworking version bekerja dengan cepat.

C. RAD (Rapid Application Development) Model




Merupakan model proses pengembangan perangkat lunak secara linear sequential yang menekankan pada siklus pengembangan yang sangat singkat. Pendekatan RAD model menekankan cakupan :
1.      Pemodelan bisnis ( Bussiness Modelling )
Aliran informasi diantara fungsi-fungsi bisnis dimodelkan dengan suatu cara untuk menjawab pertanyaan-pertanyaan berikut : 
·         Informasi apa yang mengendalikan proses bisnis ? 
·         Kemana informasi itu pergi? 
·         Siapa yang memprosesnya ?
2. Pemodelan data ( Data Modelling )
Aliran informasi yang didefinisikan sebagai bagian dari fase pemodelan bisnis di saring ke dalam serangkaian objek data yang dibutuhkan untuk menopang bisnis tersebut. Karakteristik/atribut dari masing-masing objek diidentifikasi dan hubungan antara objek-objek tersebut didefinisikan.
3.      Pemodelan proses (Process Modelling)
Aliran informasi yang didefinisikan dalam fase pemodelan data ditransformasikan untuk mencapai aliran informasi yang perlu bagi implementasi sebuah fungsi bisnis. Gambaran pemrosesan diciptakan untuk menambah, memodifikasi, menghapus atau mendapatkan kembali sebuah objek data.
4.      Pembuatan aplikasi ( Application generation)
Selain menciftakan perangkat lunak dengan menggunakan bahasa pemrograman generasi ketiga yang konvensional, RAD lebih banyak memproses kerja untuk memakai lagi komponen program yang telah ada atau menciptakan komponen yang bisa dipakai lagi.
5.      Pengujian dan pergantian (Testing and turnover)
Karena proses RAD menekankan pada pemakaian kembali, banyak komponen yang telah diuji. Hal ini mengurangi keseluruhan waktu pengujian. Tapi komponen baru harus diuji.
Ø  Kelemahan RAD model :
1.      Untuk proyek dengan skala besar, RAD membutuhkan sumber daya manusia yang cukup untuk membentuk sejumlah tim RAD.
2.      RAD membutuhkan pengembang dan pemakai yang mempunyai komitmen untuk melaksanakan aktivitas melengkapi sistem dalam kerangka waktu yang singkat

Evolusi Model Proses Perangkat Lunak
A.      The Incremental Model


Model inkremental menggabungkan elemen model sekuensial linier (diterapkan berulang-ulang) dengan filosofi iteratif prototyping. Dalam model ini langkah yang dilakukan harus linear atau berurutan. Langkah pertama merupakan langkah yang paling penting karena pada tahap ini merupakan dasar untuk langkah-langkah berikutnya. Langkah selanjutnya modifikasi produk inti untuk lebih memenuhi keinginan pengguna dengan penambahan fitur yang fungsional.
Tidak seperti model prototyping, model incremental ini lebih berfokus pada pengiriman produk operasional dengan menaikkan masing-masing awal kenaikan yang diambil versi dari produk akhir.





B.       Spiral Model


            Merupakan model proses perangkat lunak yang memadukan wujud pengulangan dari model prototyping dengan aspek pengendalian dari sistematika dari linear sequential model, dengan penambahan elemen baru yaitu analisis resiko.
 Model ini memiliki 4 aktivitas penting, yaitu :
1. Perencanaan (Planning), penentuan tujuan, alternatif dan batasan.
2. Analisis resiko (Risk Analysis), analisis alternatif dan identifikasi/pemecahan resiko.
3. Rekayasa ( Engineering), pengembangan level berikutnya dari produk.
4. Evaluasi Pemakai (Customer Evaluation) penilaian terhadap hasil rekayasa.
Ø  Kelemahan spiral model :
1. Sulit untuk meyakinkan pemakai (saat situasi kontrak) bahwa penggunaan pendekatan ini akan dapat dikendalikan.
2. Memerlukan tenaga ahli untuk memperkirakan resiko, dan arus mengandalkannya supaya sukses.
3. Belum terbukti apakah metode ini cukup efisien karena usianya relatif baru.

C.      The WINWIN Spiral Model

Model Spiral yang telah dijelaskan sebelumnya memiliki tujuan yaitu untuk memperoleh proyek persyaratan dari pelanggan. Dalam konteks yang ideal, pengembang hanya meminta pelanggan apa yang dibutuhkan dan pelanggan memberikan rincian yang memadai untuk dilanjutkan oleh pengembang. Akan tetapi, hal ini jarang terjadi. Pada kenyataannya, pelanggan dan pengembang masuk dalam proses negosiasi, di mana pelanggan mungkin akan diminta untuk menyeimbangkan fungsi, kinerja, dan produk lainnya atau sistem karakteristik terhadap biaya dan waktu.
The WINWIN Spiral Model ini mendefinisikan setiap negosiasi awal pada tahap spiral. Kegiatannya sebagai berikut:
1. Identifikasi sistem atau subsistem
2. Penentuan stakeholder '"memenangkan kondisi."
3. Negosiasi kondisi menang pemangku kepentingan untuk mendamaikan mereka menjadi memiliki satu kesepakatan.
Selain menekankan negosiasi awal, model ini juga menggunakan tiga proses yang disebut dengan “anchor points”.


D.      Fourth Generation Techniques (4GT)




Istilah generasi ke empat, mengarah ke perangkat lunak yang umum yaitu tiap pengembang perangkat lunak menentukan beberapa karakteristik perangkat lunak pada level tinggi.
Saat ini pengembangan perangkat lunak yang mendukung 4GT, berisi tool-tool berikut :
• Bahasa non prosedural untuk query basis data.
• Report generation.
• Data manipulation.
• Interaksi layar.
• Kemampuan grafik level tinggi.
• Kemampuan spreadsheet.
Tiap tool ini ada tapi hanya untuk sauatu aplikasi khusus.Menggunakan perangkat bantu (tools) yang akan membuat kode sumber secaraotomatis berdasarkan spesifikasi dari pengembang perangkat lunak. Hanya digunakanuntuk menggunakan perangkat lunak yang menggunakan bahasa khusus atau notasigrafik yang diselesaikan dengan syarat yang dimengerti pemakai. Cakupan aktivitas 4GT :
1.      Pengumpulan kebutuhan, idealnya pelanggan akan menjelaskan kebutuhan yangakan ditranslasikan ke prototype operasional.
2.      Translasi kebutuhan menjadi prototype operasional, atau langsung melakukanimplementasi secara langsung dengan menggunakan bahasa generasi keempat (4GL) jika aplikasi relatif kecil.
3.      Untuk aplikasi yang cukup besar, dibutuhkan strategi perancangan sistem walaupun4GL akan digunakan.
4.      Pengujian.
5.      Membuat dokumentasi.
6.      Melaksanakan seluruh aktivitas untuk mengintegrasikan solusi-solusi yang membutuhkan paradigma rekayasa perangkat lunak lainnya.
Salah satu keuntungan penggunaan model 4GT adalah pengurangan  waktu peningkatan produktivitas secara besar, sementara kekurangannya terletak pada kesulitan penggunaan perangkat baru (tools) dibandingkan dengan bahasa pemograman, dan juga kode sumber yang dihasilkannya tidak efisien.
Sumber :

Pressman, Roger S. 1997.Software Engineering. New York : Mc Graw Hill

Blog :