Rabu, 07 Oktober 2015

Pengertian dan Model-Model
Proses Perangkat Lunak

Pengertian Rekaya Perangkat Lunak.
Menurut Roger S.Pressman,ph.D. dalam bukunya yang berjudul Rekaya Perangkat Lunak Edisi 7, terdapat beberapa definisi tentang perangkat lunak dan rekayasa perangkat lunak yaitu :
1.Instruksi-instruksi (program komputer) yang ketika dijalankan menyediakan fitur-fitur, fungsi-fungsi, dan kinerja-kinerja yang dikehendaki.
Struktur data yang memungkinkan program-program memanipulasi informasi, dan
Informasi deskriptif pada salinan tercetak dan bentuk-bentuk maya yang menggambarkan pengoperasian dan pengunaan program-program.
Sedangkan definisi rekayasa perangkat lunak sendiri adalah
Aplikasi atau suatu pendekatan yang sistematik, disiplin, dan dapat diukur pada pengembangan, operasi, dan perawatan pada perangkat lunak  yaitu, penerapan rekayasa pada perangkat lunak.
Rekayasa perangkat lunak adalah teknologi berlapis. Hal itu dapat ditunjukan dengan gambar sebagai berikut,



Gambar 1


Dari gambar di atas dapat diartikan bahwa  setiap pendekatan rekayasa (termasuk rekayasa perangkat lunak) harus menekankan pada  kualitas.
Dasar untuk rekayasa perangkat lunak adalah lapisan proses. Proses rekayasa perangkat lunak adalah proses yang terus berulang, karena karakteristik perangkat lunak yang membutuhkan pemeliharaan dan pengembangan berkelanjutan agar perangkat lunak tidak kadarluasa.
proses didefinisikan sebagai kumpulan aktivitas kerja, tindakan, dantugas-tugas yang dilakukan ketika  ada produk kerja yang akan dibuat. Masing-masing kegiatan, tindakan, dan tugas berada dalam kerangka atau model yang mendefinisikan mereka berhubungan dengan proses  dan dengan satu sama lain.
Proses perangkat lunak diwakili skematis pada Gambar berikut.


  Gambar 2.
Mengacu pada Angka, setiap aktivitas kerangka kerja dihuni oleh serangkaian tindakan rekayasa perangkat lunak.
Setiap tindakan rekayasa perangkat lunak didefinisikan oleh satu set tugas yang mengidentifikasi pekerjaan tugas-tugas yang harus diselesaikan, produk pekerjaan yang akan diproduksi, kualitas poin jaminan yang akan diperlukan, dan tonggak yang akan digunakan untuk menunjukkan kemajuan.


Kerangka Proses Generik
kerangka proses generik untuk rekayasa perangkat lunak
mendefinisikan lima kerangka kegiatan-komunikasi, perencanaan, pemodelan,
konstruksi, dan penyebaran. Selain itu, satu set payung kegiatan-proyek
pelacakan dan kontrol, manajemen risiko, jaminan kualitas, manajemen konfigurasi,

ulasan teknis, dan lain-lain-yang diterapkan selama proses berlangsung. Proses aspek menjelaskan bagaimana kerangka kegiatan dan tindakan dan tugas yang terjadi dalam setiap kerangka kerja Kegiatan diselenggarakan sehubungan dengan urutan dan waktu dan diilustrasikan dalam Gambar berikut.


Gambar 3.

Model Proses Perspektiv

Model proses preskriptif awalnya diusulkan untuk membawa solusi kekacauan
pengembangan perangkat lunak. Sejarah telah menunjukkan bahwa model-model tradisional
telah membawa sejumlah struktur yang berguna untuk pekerjaan rekayasa perangkat lunak dan telah menyediakan peta jalan cukup efektif untuk tim perangkat lunak.
 Namun, perangkat lunak pekerjaan rekayasa dan produk yang menghasilkan tetap di "tepi kekacauan."
Dalam sebuah makalah yang menarik tentang hubungan aneh antara ketertiban dan kekacauan di dunia perangkat lunak, Nogueira dan rekan-rekannya  negara
Tepi kekacauan didefinisikan sebagai "keadaan alami antara ketertiban dan kekacauan, kompromi besar antara struktur dan kejutan “ . Tepi kekacauan dapat divisualisasikan
tidak stabil, sebagai terstruktur negara. . . . Hal ini tidak stabil karena selalu tertarik
kekacauan atau untuk memesan mutlak.
.Pada bagian berikut, saya memeriksa proses preskriptif
Pendekatan di mana urutan dan konsistensi proyek adalah masalah yang dominan. Saya menyebutnya "Preskriptif" karena mereka meresepkan satu set proses kegiatan elemen-kerangka, tindakan rekayasa perangkat lunak, tugas, produk kerja, jaminan kualitas, dan
mengubah mekanisme kontrol untuk setiap proyek. Setiap model proses juga mengatur sebuah aliran proses (juga disebut alur kerja) -yaitu, cara di mana proses
elemen yang saling terkait satu sama lain.
Semua model proses perangkat lunak dapat mengakomodasi kegiatan kerangka generik , tetapi masing-masing berlaku penekanan yang berbeda untuk kegiatan ini dan mendefinisikan alur proses yang memanggil setiap kegiatan kerangka (serta perangkat lunak tindakan rekayasa dan tugas) dengan cara yang berbeda.



Model Proses dalam RPL

Waterfall Model / Linear Sequential Model
Waterfall model adalah model yang melakukan pendekatan pada perkembangan perangkat lunak secara seistematik dan sekuensial. Yang artinya kegiatan pada model ini dilakukan secara terurut berdasarkan panduan proses mulai dari komunikasi kepada client atau pelanggan sampai dengan aktifitas sampai pengorderan setelah masalah dipahami secara lengkap dan berjalan stabil sampai selesai.
(Menurut referensi Pressman )


Gambar 4.
Model yang paling luas dipakai dan tertua. Mengusulkan suatu pendekatan sekuensial dan sistematis pada pengembangan PL. Meliputi aktivitas-aktivitas :
System / information engineering (rekayasa dan pemodelan sistem) : menyangkut pengumpulan kebutuhan (requirement gathering) pada level sistem dengan sejumlah kecil analisis serta top desain.

Analisis : kebutuhan PL, proses requirement gathering diintesifkan dan difokuskan, khususnya pada PL. Untuk memahami sifat program yang dibangun, analis harus memahami domain informasi, tingkah laku, unjuk kerja, dan interface yang diperlukan. Kebutuhan sistem maupun PL didokumentasikan dan direview bersama user.
Desain : fokus pada 4 hal : desain database, arsitektur PL, interface, dan algoritma prosedural. Proses desain menerjemahkan kebutuhan ke dalam representasi PL sebelum dimulai coding. Coding : menerjemahkan desain ke dalam bahasa yang dimengerti mesin.
Testing : fokus pada :

  • Logika internal PL : memastikan bahwa semua statement telah diuji
  • Fungsi eksternal : mengarahkan testing untuk menemukan kesalahan-kesalahan dan memastikan bahwa input yang diberikan akan menghasilkan output sesuai yang diinginkan.
  • Maintenance

Kelemahan model :

Meskipun mengakomodasi iterasi, model linier melakukannya secara tidak langsung sehingga perubahan-perubahan dapat menyebabkan keraguan saat tim proyek berjalan Jika user sulit menyatakan semua kebutuhannya secara explisit, model ini sulit mengakomodasi ketidakpastian itu .User harus bersabar karena hasil baru bisa dinikmati setelah testing (akhir waktu). Jika ada kesalahan besar yang tidak terdeteksi sampai program yang bekerja tersebut dikaji ulang, bisa menjadi petaka.
Pengembang sering melakukan penundaan yang tidak perlu. Anggota tim harus menunggu anggota tim lain selesai mengerjakan tugasnya yang mempunyai keterkaitan dan ketergantungan tinggi.
Meski memiliki kelemahan, model ini masih lebih baik daripada pendekatan yang sembrono / sembarangan.
Contoh : model Waterfall terdiri dari fase investigasi -> analisis -> desain -> implementasi (coding) -> testing -> maintenance.



Prototyping Model
Berfungsi sebagai mekanisme pendefinisian kebutuhan. Pertama, developer menggali semua kebutuhan user secara cepat kemudian membangun prototipe yang sesuai dengan yang diinginkan dengan cepat pula dan ditunjukkan ke user, baru dibuat PL yang sesungguhnya berdasarkan komentar user terhadap prototipe.
Kelebihan model : user dapat langsung melihat wujud PL yang akan dibangun meskipun sederhana dan dari sana dapat digali kebutuhan yang lebih dalam sebagai bahan penyusunan PL berikutnya.
Gambar 5.

Masalah yg muncul :
User merasa prototipe merupakan PL yang sesungguhnya, padahal ketika membuat prototipe belum disertakan kualitas PL secara keseluruhan / kemampuan pemeliharaan untuk jangka panjang Developer sering membuat kompromi-kompromi implementasi untuk membuat prototipe bekerja dengan cepat sehingga akan ditemui ketidakcocokan pada prototipe ketika prototipe dibangun dengan bahasa yang sederhana Program dibuat ulang / prototipe selalu baru
Contoh : model Iterative : investigasi -> membuat PL -> testing / deliver ke user dengan program prototipe.




Rapid Application Development (RAD) Model
Model proses perkembangan PL sekuensial linier yang menekankan siklus perkembangan yang sangat pendek. Menekankan perkembangan komponen program yang bisa dipakai lagi sehingga mendasari konsep Object-Oriented.


Gambar 6.

Fase2 pendekatan RAD :

  • Bussines modeling
  • Data modeling
  • Proses modeling
Application generation : RAD mengasumsikan pemakaian teknik 4G (generasi keempat). Selain menciptakan PL dengan bahasa pemrograman generasi ketiga yang konvensional, RAD lebih banyak memproses kerja untuk memakai lagi komponen program atau menciptakan komponen yang bias dipakai lagi.
Testing and Turn Over : karena menekankan pada reusability, banyak komponen program yang telah diuji sehingga mengurangi keseluruhan waktu pengujian. Tapi komponen baru harus diuji dan semua interface harus dilatih secara penuh.

The Incremental Model
Mengadopsi model sekuensial linier dan model prototipe. Fungsi dasar sama, tapi ada tambahan asesoris (contoh : ada M.Word 1997, 2000). Fungsi tambahan ditambahkan terus untuk membuat sistem menjadi lebih baik. Pada increment pertama PL yang jadi, mengakomodasi kebutuhan inti. Baru pada tahap berikutnya ditambahkan kemampuan baru.

Gambar.7
Dalam model Incremental ini proses pengerjaan perangkat lunak akan dilakukan perbagian sehingga bagian selanjutnya akan dikerjakan setelah bagian awal telah selesai dan selanjutnya sampai menghasilkan perangkat lunak yang lengkap dengan semua fungsi yang diperlukan dan pengerjaan perangkat lunak berakhir. Sebelum pengerjaan perangkat lunak akan dilakukan perancangan arsitektur software sebagai kerangka dalam pengerjaan perbagian.

Tahapan dari Incremental Model :

  • Requirement -> penentuan kebutuhan perangkat lunak yang akan dibangun.
  • Specification -> spesifikasi bagian dari perangkat lunak.
  • Architecture Design -> pembuatan perancangan perangkat lunak (dasar dari kerangka kerja)
Kelebihan incremental model

  • Resiko yang rendah pada pengembangan sistem.
  • Mengutamakan fungsi-fungsi pada sistem perangkat lunak sehingga kemudahan pemakaian sistem yang paling di utamakan.
  • Tahap awal adalan dasar dari pembuatan tahap berikutnya (dikerjakan secara terurut)


The Spiral Model

         Spiral model adalah model proses yang pendekatannya bersifat realistis pada software besar karena proses dari awal sampai proses pengiriman dan perbaikan dapat dipahami dnegan baik oleh clieent dan developer. Model ini mempunyai rangkaian kerja yang iterasi (peningkatan pada model) awal yang berbentuk prototype dan kemudian iterasi selanjutnya akan menjadi perkembangan dari model sebelumnya. Model ini dapat terus digunakan meskipun software sudah dikirimkan karena proses (siklus)dapat berputar lagi jika ada perubahan pada software sampai tidak ada permintaan perupbahan pada software oleh client.




Ada 6 pembagian proses pembuatan pada spiral model : 

  • Komunikasi Pelanggan
  •  Perencanaan
  • Analisis resiko
  •    Perekayasaan
  •  Konstruksi dan Peluncuran
  •   Evaluasi Client


Kelebihan model Spiral :
Setiap tahap pengerjaan dibuat prototyping sehingga kekurangan dan apa yang diharapkan oleh client dapat diperjelas dan juga dapat menjadi acuan untuk client dalam mencari kekurangan kebutuhan.


Kekurangan model Spiral :
Banyak konsumen (Client) tidak percaya bahwa pendekatan secara evolusioner dapat dikontrol oleh kedua pihak. Model spiral mempunyai resiko yang harus dipertimbangkan ulang oleh konsumen dan developer.

Concurrent Development Model
Pada model ini aktifitas kerja dilakukan secara bersamaan, setiap proses kerja memiliki beberapa triger(pemicu) kerja dari aktifitas. Pemicu dapat berasal dari awal proses kerja maupun dari pemicu yang lain   karena setiap trigrer akan sling berhubungan.
Misalnya proses Desain akan berubah atau berhenti sementara karena ada perubahan permintaan kebutuhan dari konsumen(client).
Kekurangan dari model ini:
Berhentinya suatu kegiatan karena kegiatan yang lain tentunya akan menyebabkan pengunduran waktu dari target yang ditentukan, yang artinya akan semakin banyak waktu yang ditunda untuk pengerjaan. Lebih lama proses pembuatan terhenti akan lebih banyak timbul masalah saat mulainya proses pembuatan setelah terhenti.




Daftar Pustaka :
 Buku Pressman, Roger S. .”Software Enginering A practitioners Approach 7.edition.”
 Buku Pressman, Roger S. 2002.”Rekayasa Perangkat Lunak (Pendekatan Praktis).” 
Jauhari,Jaidan..“ModulRekayasaPerangkatLunak.”__:__.pdf.http://heckerlaye.files.wordpress.com/2009/11/modul-rekayasa-perangkat-lunak.pdf
-