Pemodelan Proses Pengembangan Perangkat Lunak



Pengantar
Proses pengembangan perangkat lunak (Software Process / Development Paradigm) adalah sekumpulan tahap, tugas dan aktivitas yang dibutuhkan untuk secara effisien mentransformasikan kebutuhan pemakai ke suatu solusi perangkat lunak yang efektif.  Pemodelan proses perangkat lunak (Software Process Modeling) bertujuan untuk merepresentasikan aktivitas yang terjadi selama pembuatan perangkat lunak dan perubahan-perubahannya (evolusi).  Latar belakang penggunaan model-model tersebut adalah kebutuhan untuk menghasilkan suatu sistem yang benar sedini mungkin didalam proses pengembangannya.  Alasan utama adalah biaya.  Semakin dini suatu kesalahan bisa dideteksi dalam pengembangan sistem, biaya perbaikannya semakin rendah.

Suatu model proses yang baik dan terstruktur akan (Boehm, 1988):
·        menentukan urutan tahap dalam suatu proses
·        menciptakan kriteria transisi untuk maju ke tahap selanjutnya

Suatu proses model harus bisa menangani hal-hal sebagai berikut:
·        Kualitas
·        Requirement yang berubah-ubah
·        Kompleksitas

Requirement dan karakteristik dari sistem perangkat lunak dari jenis aplikasi berbeda sangat bervariasi, sehingga tidak ada suatu model proses atau paradigma yang bisa mencakup segala jenis pengembangan sistem perangkat lunak.

Model Waterfall
Model Waterfall ini juga dikenal dengan nama model tradisional atau model klasik.  Model ini adalah model yang paling banyak dikenal dan dipakai.


 
                 Requirements
          analysis and definition



 
                                          System and
                                       software design



 
                                                             Implementation
                                                             and unit-testing


                                                                                   Integration and
                                                                                    system-testing

Gambar 2.1: Model waterfall

Keuntungan:
·        Terstruktur
·        Tiap tahap memiliki metode untuk menghasilkan suatu dokumen yang bisa diserahkan ke pemakai
·        Dokumen yang dihasilkan tiap tahap bisa di spesifikasikan secara jelas dan mendetail
Kerugian:
·        Linear, tidak ada umpan balik (feedback)
·        Sumber daya dan penjadwalan harus di perkirakan pada awal proyek
·        Tahap terisolasi, kurang terjalin transisi ke tahap berikutnya.  Akibat paling besar terasa pada tahap requirement
·        Pemakai tidak bisa melihat produk perangkat lunak sampai akhir proyek
·        Penekanan terbesar pada dokumen

Model waterfall ini cocok untuk produksi suatu aplikasi tunggal yang biayanya rendah dengan menggunakan:
·        Dekomposisi fungsi top-down
·        3GL konvensional untuk implementasinya

Model Prototyping
Prototyping adalah suatu proses yang memungkinkan pengembang aplikasi untuk menciptakan suatu model dari perangkat lunak yang harus dikembangkan.  Tujuan utama dari prototyping adalah untuk mengurangi resiko dan ketidak-pastian selama tahap-tahap awal dari life-cycle pengembangan perangkat lunak.  Prototyping meneruskan tahap analisa requirement untuk mengurangi biaya pengembangan perangkat lunak secara keseluruhan.













 
   Establish outline                  Develop                      Evaluate                         Specify
     specifications                   prototype                     prototype                       system

                        components

 



                           Design and                            Validate
                     implement system             system


 


Gambar 2.2: Model prototyping

Keuntungan:
·        Mengurangi kesalah-pahaman antara pengembang dan pemakai perangkat lunak
·        Contoh sistem bisa diperlihatkan ke pemakai dalam tempo singkat
·        Prototype dipakai sebagai dasar spesifikasi dari sistem


Kerugian:
·        Biaya pengembangan prototype sering merupakan bagian yang cukup besar dari keseluruhan biaya sistem
·        Dari contoh prototype, harapan pemakai seringkali berlebihan / tidak sesuai dengan sistem yang sesungguhnya

Selesai dipakai, prototype tidak boleh diteruskan untuk dipakai oleh sistem sesungguhnya, karena:
·        Fasilitas penting kemungkinan diabaikan untuk menyederhanakan implementasi secepatnya
·        Prototype biasanya dikembangkan secara ad-hoc tanpa kontrol

Model Exploratory
Model ini dipakai dengan awal seadanya. Pengembang sistem tidak sepenuhnya mengerti dan menguasai requirement dari sistem. Sistem dikembangkan sejalan dengan adanya requirement baru. Model ini dipakai pada konteks dimana pengembang sulit sekali untuk membuat suatu spesifikasi. Model ini banyak dipakai pada area yang memiliki budget tinggi, misalnya militer.

           Develop                                    Build                                        Use
  outline specifications       software system                      software system



                                                                                    NO               System
                                                                                                        adequate?

                                                                                                                YES

                                                                                                        Deliver
                                                                                                  software system

Gambar 2.3: Model Exploratory

Keuntungan:
·        Terkadang, model ini adalah satu-satunya pendekatan yang masuk akal (tidak ada pilihan lain)

Kerugian:
·        Manajemen
·        Perubahan yang terus-menerus bisa mengerosi struktur sistem



Model Evolutionary / Incremental
Model ini adalah pengembangan lebih lanjut dari model exploratory yang didesain untuk menjawab kritik terhadap model prototyping.  Requirement didefinisikan dan diserahkan kepada pemakai dalam bentuk incremental (bertahap).  Penyelesaian suatu tahap adalah dalam bentuk suatu unit perangkat lunak yang sudah berfungsi, bersama-sama dengan semua materi pendukungnya (misalnya dokumentasi dan user manual).  Secara keseluruhan, model incremental ini adalah gabungan dari beberapa proses waterfall mini yang saling berurutan.
      
    Define system deliverables


 


       Specify system                         Build system                              Validate
            increment                              increment                    increment




 
                                                    Deliver system             NO           System
                                                        increment                     complete?

                                                                                                                YES


 
                                                                                        Deliver complete system

Gambar 2.4: Model Incremental

Keuntungan:
·        Bisa mengantisipasi perubahan

Kerugian:
·        Hanya cocok untuk sebagian kecil dari bermacam-macam sistem, pemakai dan pengembang sistem

Model Transformational
Model ini adalah model yang berorientasi pada spesifikasi formal.  Spesifikasi ini ditransformasikan melalui beberapa tahap yang telah diuji kebenarannya sebelum menjadi suatu sistem yang seutuhnya.  Konsepnya: bila setiap tahap telah dibuktikan kebenarannya dari suatu step ke step selanjutnya, maka sistem secara keseluruhan bisa diyakini kebenarannya dan sesuai dengan spesifikasi yang diminta.

Keuntungan:
·        Sistem keseluruhan dijamin kebenarannya sesuai dengan spesifikasi yang ada
·        Setiap perubahan step terdokumentasi, termasuk alasan-alasan dalam memutuskan bentuk desain sistem
·        Pemrogram tidak bisa mengubah source-code secara langsung, tetapi harus melalui transformasi

Kerugian:
·        Masih berorientasi pada riset
·        Membutuhkan alat bantu (tool) yang cukup lengkap


Model Spiral

Planning
 
Model ini dikembangkan oleh Boehm. Model ini cocok digunakan untuk organisasi yang besar.










Risk Analysis
 


Customer
Communication
 





Customer
Evaluation
 

 













Gambar 2.5 Model Spiral

Langkah-langkah pengembangan perangkat lunak dengan menggunakan model Spiral:
  1. Costumer communication
Komunikasi effektif antara pemakai dan pengembang perangkat lunak
  1. Planning
Menentukan segala hal yang berhubungan dengan pengembangan perangkat lunak
  1. Risk Analisis
Menentukan resiko manajemen dan resiko teknik
  1. Engineering
Merekayasa perangkat lunak
  1. Construction and release
Menguji, menginstall dan memberikan segala hal yang dibutuhkan konsumen (dokumentasi, training)
  1. Customer evaluation
Mendapatkan masukan dari konsumen tentang perangkat lunak yang baru dikembangkan.

Keuntungan:
  • Dapat digunakan untuk mengembangkan proyek yang sangat besar

Kerugian:
  • Dibutuhkan biaya yang besar dalam pengembangan karena proyek yang dikembangkan biasanya proyek yang besar

Model 4GT

Pada alat bantu 4GT (Fourth Generation Technique) memungkinkan pengembangan spesifikasi perangkat lunak secara otomatis sesuai dengan yang akan diterjemahkan ke program. Dengan menggunakan 4GT, software engineering memusatkan perhatian hanya kepada spesifikasi perangkat lunak yang diinginkan. Langkah-langkah yang dilakukan pada alat bantu ini adalah:



 













Gambar 2.6 Model 4GT

Keuntungan:
  • Pengembangan dilakukan dengan cepat

Kerugian
  • Dibutuhkan skill yang tinggi untuk mengembangkan proyek karena menggunakan teknik 4GT

Model Kombinasi

Model ini merupakan gabungan dari tiga model sebelumnya yaitu: model waterfall, model prototyping dan model 4GT.



 











Gambar 2.7 Model Kombinasi

Kesimpulan
Tahap pertama dari setiap pengembangan sistem perangkat lunak adalah pemilihan model proses yang sesuai dengan kebutuhan.  Tidak ada model proses yang bisa memenuhi segala jenis kebutuhan sistem perangkat lunak yang sangat beraneka ragam.

Model proses harus mampu untuk menemukan kesalahan dan kesalah-pahaman yang mungkin terjadi sedini mungkin.  Keterlibatan pemakai sangat penting dalam hal ini.


Dalam banyak hal, model yang kaku dan tidak fleksibel sebaiknya digantikan oleh pendekatan-pendekatan yang lebih fleksibel.

·        Model Waterfall                             : berorientasi pada dokumentasi (document)
·        Model Prototyping              : berorientasi pada pemakai (user)
·        Model Exploratory             : berorientasi pada unjuk kerja (performance)
·        Model Evolutionary/Incremental      : berorientasi pada penambahan (increment)
·        Model Transformational                  : berorientasi pada spesifikasi (specification)



Referensi

·         Pressman, R.S. 1997, Software Engineering, a practitioner’s approach, 4th ed., McGraw-Hill. (chapter 2)
·        Jones, G.W. 1990, Software Engineering, John Wiley & Sons, New York ( Chapter 1)

« Previous
 
Next »
 

1 komentar:

terimakasih, sangat membantu sekali..

Your comment / Pemodelan Proses Pengembangan Perangkat Lunak