Kamis, 25 April 2013

Rekayasa Perangkat Lunak: Kelebihan dan Kekurangan Software Proses Model

Untuk postingan kali ini adalah membahas tentang kelebihan dan kekurangan software proses model.


1. Waterfall model
     Waterfall yaitu sebuah metode pengembangan software yang bersifat sekuensial dan terdiri dari 5 tahap yang saling terkait dan mempengaruhi.
a. Merupakan model pengembangan paling handal dan paling lama digunakan
b. Cocok untuk system software berskala besar.
c. Cocok untuk system software yang bersifat generic.
d. Pengerjaan project system akan terjadwal dengan baik dan mudah dikontrol.

  •    Kekurangan Waterfall
a. Persyaratan system harus digambarkan dengan jelas
b. Rincian proses harus benar-benar jelas dan tidak boleh berubah-ubah.
c. Sulit untuk mengadaptasi jika terjadi perubahan spesifikasi pada suatu tahapan pengembangan.


2. Prototyping Model
Metode prototype system melibatkan user secara langsung dengan analisis dan perancangan, sangat efektif untuk pengoreksian sistem.

  •     Kelebihan Prototyping

a. Komunikasi berlangsung baik antara pengembang dan pelanggan.
b. Pengemban dapat bekerja dengan baik dalam menentukan kebutuhan pelanggan.
c. Menghemat waktu dalam pengembangan sistem.
d. Pelanggan berperan aktif dalam pengembangan sistem.
e. Kemudahan dalam penerapan dikarenakan pemakai mengetahui apa yang diharapkan.
f. Mempunyai kemampuan menangkap requirement secara konkret daripada secara abstrak.

  •    Kekurangan Prototyping :
a. Tidak disadarinya bahwa perangkat lunak yang ada belum mencantumkan kualitas perangkat lunak secara keseluruhan dan belum memikirkan kemampuan pemeliharaan untuk jangka waktu lama.
b. Hubungan pelanggan dengan komputer yang disediakan mungkin tidak mencerminkan teknik perancangan yang baik.


3. Spiral Model
Spiral Model merupakan penggabungan ide pengembangan berulang (prototyping) dengan aspek sistematis  terkendali model air terjun (waterfall). 


  •    Kelebihan Spiral
a. Lebih cocok untuk pengembangan sistem dan perangkat lunak skala besar.
b. Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadap resiko setiap tingkat evolusi karena perangkat lunak terus bekerja selama proses.
c. Membutuhkan pertimbangan langsung terhadp resiko teknis sehingga mengurangi resiko sebelum menjadi permaslahan yang serius.

  •    Kekurangan Spiral 
a. Sulit untuk menyakinkan pelanggan bahwa pendekatan evolusioner ini bisa dikontrol.
b. Memerlukan penaksiran resiko yang masuk akal dan akan menjadi masalah yang serius jika resiko mayor tidak ditemukan dan diatur.
c. Butuh waktu lama untuk menerapkan paradigma ini menuju kepastian yang absolut.


4. Incremental Model
Incremental model yaitu model pengembangan sistem pada software engineering berdasarkan requirement software yang dipecah menjadi beberapa fungsi atau bagian sehingga model pengembangannya secara bertahap.


  • Kelebihan Incremental Model
a. Merupakan model dengan manajemen yang sederhana
b. Nilai penggunaan dapat ditentukan pada setiap increment sehingga fungsionalitas sistem disediakan lebih awal.
c. Memiliki resiko lebih rendah terhadap keseluruhan pengembagan sistem.
d. Prioritas tertinggi pada pelayanan sistem adalah yang paling diuji.

  • Kekurangan Incremental Model
a. Kemungkinan tiap bagian tidak dapat diintegrasikan.
b. Dapat menjadi build and Fix Model, karena kemampuannya untuk selalu mendapat perubahan selama proses rekayasa berlangsung.
c. Mungkin terjadi kesulitan untuk memetakan kebutuhan pengguna ke dalam rencana spesifikasi masing-masing hasil increment. 


5. Extreme Programming

Suatu model yang menekankan pada keterlibatan user secara langsung, pengujian,  design.


  • Keuntungan XP
a. Menjalin komunikasi yang baik dengan client sehingga keinginan  akan software dapat direalisasikan.
b. Hemat biaya jika terjadi perubahan requirement client, karena lifecycle yang lebih pendek
c. komunikasi yang baik antar developer menjaga kualitas software


Kekurangan XP


a. Mau tidak mau developer harus siap dengan perubahan sewaktu-waktu
b. konsep simplicity (keserhanaan) membuat developer tidak bisa coding secara detail di awal, karna hanya melakukan apa yang di perlukan di hari itu juga.


6. Rational Unified Process (RUP)
Rational Unified Process (RUP) merupakan suatu metode rekayasa perangkat lunak yang dikembangkan dengan mengumpulkan berbagai best practises yang terdapat dalam industri pengembangan perangkat lunak. menggunakan konsep object oriented, dengan aktifitas yang berfokus pada pengembangan model dengan menggunakan Unified Model Language (UML).


  • Kelebihan RUP
a. Menyediakan akses yang mudah terhadap pengetahuan dasar bagi anggota tim.
b. Menyediakan petunjuk bagaimana menggunakan UML secara efektif.
c. Mendukung proses pengulangan dalam pengembangan software.
d. Memungkinkan adanya penambahan-penambahan pada proses.
e. Memungkinkan untuk secara sistematis mengontrol perubahan-perubahan yang terjadi pada software selama proses pengembangannya.
f. Memungkinkan untuk menjalankan test case dengan menggunakan Rational Test


  • Kekurangan RUP
Metodologi ini hanya dapat digunakan pada pengembangan perangkat lunak yang berorientasi objek dengan berfokus pada UML (Unified Modeling Language)

Sabtu, 06 April 2013

Software Proses

Jelaskan bagaimana Software Proses menurut Anda, dan mengapa kita perlu menggunakan software proses dalam mengembangkan perangkat lunak?
Dari kalimat pertanyaan diatas, setidaknya terdapat dua pertanyaan inti yaitu bagaimana software proses itu, dan manfaat serta tujuan proses software dalam pengembangan perangkat lunak. So, mari kita uraikan jawabannya satu persatu.

  1. Proses Software
Proses Software adalah sekumpulan aktifitas terstruktur yang dibutuhkan untuk mengembangkan sistem software, yang meliputi kegiatan:

  • Spesifikasi Perangkat Lunak

  • Pengembangan (Desain & Implementasi) Perangkat Lunak

  • Validasi Perangkat Lunak

  • Evolusi Peangkat Lunak
Ada beberapa metode yang digunakan dalam pengembangan perangkat lunak, yaitu:

    • Waterfall model
Model waterfall yaitu pemodelan yang prosesnya menyerupai air terjun, yaitu lurus. Dalam model ini terdapat beberapa tahapan, yaitu:
    1. Definisi kebutuhan
    2. Desain sistem dan software
    3. Implementasi dan testing unit
    4. Integrasi dan testing sistem
    5. Operasi dan maintenance
Kelebihan dari waterfall model adalah program akan lebih terorganisir, karena penyelesaiannya berurutan dan harus menyelesaikan tahap demi tahap baru melangkah ke tahap selanjutnya.
Masalah yang biasanya timbul adalah software tidak fleksibel karena harus komitmen dengan apa yang sudah dirancang pada awal proses.

    • Model Pengembangan Evolusioner
Model ini lebih  efektif dari pendekatan model waterfall, sifatnya juga fleksibel karena perubahannya berdasarkan pemahaman pelanggan.

    • Pengembangan Sistem Formal
Pengembangannya berdasarkan pada transformasi matematis dari spesifikasi sistem menjadi program yang dapat dijalankan.

    • Pengembangan Berdasarkan Pemakaian Ulang
Pengembangan ini berdasarkan pada perangkat lunak yang sudah ada (terjadi pemakaian ulang)
  1. Tujuan Proses Software
Berdasarkan pengertiannya, maka tujuan dari Proses Software adalah:
  1. Agar kita mengetahui apa saja aktifitas yang dibutuhkan dalam proses pengembangan software.
  2. Memilih model apa yang sekiranya cocok dengan perangkat lunak yang akan dikembangkan.
  3. Agar dapat melakukan pengembangan software secara benar.