Wednesday, October 24, 2012

Software Process


Blog kali ini saya akan membahas mengenai model - model software. Model - model software yang kami bahas yaitu :
  • Linear Sequential Model / Waterfall Model
  • Incremental Model
  • Prototyping Model
  • Spiral Model
  • RAD ( Rapid Application Development)
Mari kita liat dari model pertama yaitu Waterfall Mode ^^
Ini gambarnya :

Waterfall model adalah model pengembangan sistem berskala besar dimana prosesnya harus dikerjakan secara bertahap / berurutan dari awal sampai akhir agar sistem dapat berjalan. Apabila tidak dikerjakan secara bertahap , maka sistem yang dikerjakan tidak akan selesai.
Yang perlu diketahui lagi dari Waterfall Model, apabila terjadi kesalahan di salah satu prosesnya, maka akan diulang dari awal dan dikerjakan secara bertahap lagi.

Langkah - langkah Waterfall Model :
  1. System / Information Engineering and Modeling. Permodelan ini diawali dengan mencari kebutuhan dari keseluruhan sistem yang akan diaplikasikan ke dalam bentuk software. Hal ini sangat penting, mengingat software harus dapat berinteraksi dengan elemen-elemen yang lain seperti hardware, database, dsb. Tahap ini sering disebut dengan Project Definition.
  2. Software Requirements Analysis. Proses pencarian kebutuhan diintensifkan dan difokuskan pada software. Untuk mengetahui sifat dari program yang akan dibuat, maka para software engineer harus mengerti tentang domain informasi dari software, misalnya fungsi yang dibutuhkan, user interface, dsb. Dari 2 aktivitas tersebut (pencarian kebutuhan sistem dan software) harus didokumentasikan dan ditunjukkan kepada pelanggan.
  3. Design. Proses ini digunakan untuk mengubah kebutuhan-kebutuhan diatas menjadi representasi ke dalam bentuk “blueprint” software sebelum coding dimulai. Desain harus dapat mengimplementasikan kebutuhan yang telah disebutkan pada tahap sebelumnya. Seperti 2 aktivitas sebelumnya, maka proses ini juga harus didokumentasikan sebagai konfigurasi dari software.
  4. Coding. Untuk dapat dimengerti oleh mesin, dalam hal ini adalah komputer, maka desain tadi harus diubah bentuknya menjadi bentuk yang dapat dimengerti oleh mesin, yaitu ke dalam bahasa pemrograman melalui proses coding. Tahap ini merupakan implementasi dari tahap design yang secara teknis nantinya dikerjakan oleh programmer.
  5. Testing / Verification. Sesuatu yang dibuat haruslah diujicobakan. Demikian juga dengan software. Semua fungsi-fungsi software harus diujicobakan, agar software bebas dari error, dan hasilnya harus benar-benar sesuai dengan kebutuhan yang sudah didefinisikan sebelumnya.
  6. Maintenance. Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah pengembangan, karena software yang dibuat tidak selamanya hanya seperti itu. Ketika dijalankan mungkin saja masih ada errors kecil yang tidak ditemukan sebelumnya, atau ada penambahan fitur-fitur yang belum ada pada software tersebut. Pengembangan diperlukan ketika adanya perubahan dari eksternal perusahaan seperti ketika ada pergantian sistem operasi, atau perangkat lainnya.
Kelebihan dari Waterfall Model :
  • Model pengembangan paling handal dan paling lama digunakan
  • Cocok untuk system software berskala besar
  • Cocok untuk system software yang bersifat generic
  • Pengerjaan project system akan terjadwal dengan baik dan mudah dikontrol.
Kekurangan dari Waterfall Model :
  • Persyaratan system harus digambarkan dengan jelas
  • Rincian proses harus benar-benar jelas dan tidak boleh berubah
  • Sulit beradaptasi jika terjadi perubahan spesifikasi pada suatu tahap pengembangan.
Referensi dari :
Nah, model selanjutnya yaitu Incremental Model ^^
Incremental model yaitu proses pengembangan perangkat lunak dimana perangkat lunak tersebut dipecah - pecah menjadi bagian - bagian atau modul - modul yang dikerjakan secara terpisah dan bertahap. Increment pertama sudah memenuhi kebutuhan dasar pengguna maka increment pertama sudah dapat berfungsi karena sudah memenuhi spesifikasi dasar. Apabila terjadi kesalahan di salah satu increment maka kesalahan tersebut     dapat diperbaiki di increment tersebut atau ditambahkan dan increment itu akan terus dilanjutkan tanpa harus  diulang dari tahap awal. Proses ini akan terus dilakukan berulang - ulang sampai memenuhi keebutuhan si pengguna.

Langkah-langkah Incremental Model:
  • Tahapan awal yang dilakukan pada incremental model adalah penentuankebutuhan (requirement)Setelah dilakukan analisis kebutuhan, maka dilakukanspesifikasi (specification)dengan menggunakan analisis kebutuhan tersebut sebagaiacuannya. Tahap selanjutnya adalah perancangan arsitektur software (architecture design) yang terbuka agar dapat diterapkan sistem pembangunan per-bagian pada tahapan selanjutnya.Apabila desain telah dibuat, maka tahap selanjutnya adalah pengkodean (coding) kemudian dilakukan uji coba (testing). Tahapan-tahapan tersebut dilakukan secara berurutan. Setiap bagian yang sudah selesai dilakukan testing, kemudian dikirim ke pemakai untuk langsung dapat digunakan. Setelah pengembangan suatu increment  dimulai, kebutuhan  dibekukan dulu hingga increment berikutnya dimulai. Padaincremental model, tiga tahapan awal harus diselesaikan terlebih dahulu sebelum tahap pembangunan tiap modul/increment .

 Kelebihan Incremental Model
  1. Personil bekerja optimal
  2. Pihak konsumen dapat langsung menggunakan dahulu bagian-bagian yang telah selesai dibangun. contohnya pemasukan data karyawan
  3. Mengurangi trauma karena perubahan sistem. Klien dibiasakan perlahan-lahan menggunakan produknya bagian per bagian
  4. Memaksimalkan pengembalian modal investasi konsumen

Kekurangan Incremental Model
  1. Kemungkinan tiap bagian tidak dapat diintegrasikan
  2. Dapat menjadi build and Fix Model, karena kemampuannya untuk selalu mendapat perubahan selama proses rekayasa berlangsung.
  3. Harus Open Architecture


Referensi dari :

Model ketiga yaitu Prototyping Model ^^
Prototyping model adalah salah satu model pengembangan perangkat lunak dimana pembuat dan pengguna saling berinteraksi dalam pengembangan perangkat lunak yang diinginkan oleh pengguna. Perangkat lunak yang dikerjakan oleh si pembuat murni adalah keinginan si pengguna, maka apabila terjadi kesalahan pada saat pembuat memperlihatkan hasil kerjanya atau adanya komplain dari pengguna maka harus dikerjakan dari awal lagi sampai pengguna menyetujuinya.

Penjelasan dari gambar di atas sebagai berikut:
  • 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 Mengacu pada pemilahan fungsi yang harus ditampilkan oleh prototyping. Pemilahan harus selalu dilakukan berdasarkan pada tugas-tugas yang relevan yang sesuai dengan contoh kasus yang akan diperagakan.

Keunggulan Prototyping:
  1. User dapat berpartisipasi aktif
  2. Penentuan kebutuhan lebih mudah diwujudkan
  3. Mempersingkat waktu pengembangan SI
Kelemahan Prototyping :
  1. Proses analisis dan perancangan terlalu singkat
  2. Mengesampingkan alternatif pemecahan masalah
  3. Bisanya kurang fleksible dalam mengahadapi perubahan
  4. Prototype yang dihasilkan tidak selamanya mudah dirubah
  5. Prototype terlalu cepat selesai
Referensi dari :

Model keempat yaitu Spiral Model ^^

Spiral Model adalah gabungan dari model incremental dan model prototyping.Pengguna dan pembangun bisa memahami dengan baik software yang dibangun karena setiap kemajuan yang dicapai selama proses dapat diamati dengan baik. Namun demikian, waktu yang cukup panjang mungkin bukan pilihan bagi pengguna, karena waktu yang lama sama dengan biaya yang lebih besar. Model ini juga dilakukan terus berulang sampai kebutuhan pengguna terpenuhi. Apabila terjadi kesalahan maka akan diulang dari awal lagi.


Berikut adalah aktivitas-aktivitas yang dilakukan dalam spiral model:
  • Customer communication. Aktivitas yang dibutuhkan untuk membangun komunikasi yang efektif antara developer dengan user / customer terutama mengenai kebutuhan dari customer.
  • Planning. Aktivitas perencanaan ini dibutuhkan untuk menentukan sumberdaya, perkiraan waktu pengerjaan, dan informasi lainnya yang dibutuhkan untuk pengembangan software.
  • Analysis risk. Aktivitas analisis resiko ini dijalankan untuk menganalisis baik resiko secara teknikal maupun secara manajerial. Tahap inilah yang mungkin tidak ada pada model proses yang juga menggunakan metode iterasi, tetapi hanya dilakukan pada spiral model.
  • Engineering. Aktivitas yang dibutuhkan untuk membangun 1 atau lebih representasi dari aplikasi secara teknikal.
  • Construction & Release. Aktivitas yang dibutuhkan untuk develop software, testing, instalasi dan penyediaan user / costumer support seperti training penggunaan software serta dokumentasi seperti buku manual penggunaan software.
  • Customer evaluation. Aktivitas yang dibutuhkan untuk mendapatkan feedback dari user / customer berdasarkan evaluasi mereka selama representasi software pada tahap engineering maupun pada implementasi selama instalasi software pada tahap construction and release.

 Kelebihan model Spiral :
  1.  Dapat disesuaikan agar perangkat lunak bisa dipakai selama hidup perangkat lunak komputer.
  2.  Lebih cocok untuk pengembangan sistem dan perangkat lunak skala besar
  3.  Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadap resiko setiap   tingkat evolusi karena perangkat lunak terus bekerja selama proses .
Kelemahan model Spiral:
  1. Sulit untuk menyakinkan pelanggan bahwa pendekatan evolusioner ini bisa dikontrol.
  2. Memerlukan penaksiran resiko yang masuk akal dan akan menjadi masalah yang serius jika resiko mayor tidak ditemukan dan diatur.
  3. Butuh waktu lama untuk menerapkan paradigma ini menuju kepastian yang absolute
 Referensi dari :

Model terakhir yaitu RAD ( Rapid Application Development) ^^
Model  RAD yaitu pengembangan dari model waterfall dimana model ini dalam mengembangkan perangkat lunaknya hanya memiliki waktu yang singkat karena dalam model ini terdapat tim kerja yang menjalankan bagian-bagiannya masing - masing dalam waktu bersamaan.

Penjelasan gambarnya mungkin seperti ini:
  1. Business modelling : berfungsi menjawab pertanyaan-pertanyaan seperti informasi apa yang mengendalikan proses bisnis? Informasi apa yang dihasilkan? Siapa yang menghasilkan informasi? Kemana informasi itu diberikan? Siapa yang mengolah informasi?
  2. Data modelling: aliran informasi yang sudah didefinisikan, disusun menjadi sekumpulan objek data. karakteristik/atribut dan hubungan antar objek-objek tersebut à analisis kebutuhan dan data
  3. Process Modelling : objek data yang sudah didefinisikan diubah menjadi aliran informasi yang diperlukan untukmenjalankan fungsi-fungsi bisnis.
  4. Application Generation: RAD menggunakan component program yang sudah ada atau membuat component yang bisa digunakan lagi, selama diperlukan.
  5. Testing and Turnover: karena menggunakan component yang sudah ada, maka kebanyakan component sudah melalui uji atau testing. Namun component baru dan interface harus tetap diuji.
Begitu juga Model ini mempunyai kelemahan dan kelebihannya:

Kelemahan model RAD:
  • Sangat Tidak cocok untuk proyek skala besar
  • Proyek bisa gagal karena waktu yang disepakati tidak dipenuhi
Kelebihan model RAD:
  • Lebih efektif dari pendekatan air terjun dalam menghasilkan sistem yang memenuhi kebutuhan langsung dari pelanggan.
  • Cocok untuk proyek yang memerlukan waktu yang singkat.
Referensi dari :

Sekian Blog dari saya x_x

Thank you xD

No comments:

Post a Comment