Rabu, 24 Oktober 2012

Software Process

Kali ini saya akan membahas mengenai model-model software. Model-model software yang ada sebagai berikut : 
  • Linear Sequential Model atau Waterfall Model
  • Incremental Model
  • Prototyping Model
  • Rapid Application Development (RAD)
  • Spiral Model
Mari kita membahas satu per satu model software .....

1). Linear Sequential Model atau Waterfall Model

             Model ini merupakan model yang paling banyak dipakai oleh para pengembang software. Ada lima tahap dalam model waterfall, yaitu: Requirement Analysis, System Design, Implementation, Integration & Testing, Operations & Maintenance. Sesuai dengan namanya waterfall (air terjun) maka tahapan dalam model ini disusun bertingkat, setiap tahap dalam model ini dilakukan berurutan, satu sebelum yang lainnya (lihat tanda anak panah). Selain itu dari satu tahap kita dapat kembali ke tahap sebelumnya.


Berikut ini penjelasan tentang masing-masing tahap dalam model waterfall:

1. Requirement Analysis        
         Seluruh kebutuhan software harus bisa didapatkan dalam fase ini, termasuk didalamnya kegunaan   software yang diharapkan pengguna dan batasan software. Informasi ini biasanya dapat diperoleh melalui wawancara, survey atau diskusi. Informasi tersebut dianalisis untuk mendapatkan dokumentasi kebutuhan pengguna untuk digunakan pada tahap selanjutnya.
2.  System Design
         Tahap ini dilakukan sebelum melakukan coding. Tahap ini bertujuan untuk memberikan gambaran apa yang seharusnya dikerjakan dan bagaimana tampilannya. Tahap ini membantu dalam menspesifikasikan kebutuhan hardware dan sistem serta mendefinisikan arsitektur sistem secara keseluruhan.
3.  Implementation
         Dalam tahap ini dilakukan pemrograman. Pembuatan software dipecah menjadi modul-modul kecil yang nantinya akan digabungkan dalam tahap berikutnya. Selain itu dalam tahap ini juga dilakukan pemeriksaaan terhadap modul yang dibuat, apakah sudah memenuhi fungsi yang diinginkan atau belum.
4.  Integration & Testing
        Di tahap ini dilakukan penggabungan modul-modul yang sudah dibuat dan dilakukan pengujian ini dilakukan untuk mengetahui apakah software yang dibuat telah sesuai dengan desainnya dan masih terdapat kesalahan atau tidak.
5.  Operation & Maintenance
Ini merupakan tahap terakhir dalam model waterfall. Software yang sudah jadi dijalankan serta dilakukan pemeliharaan. Pemeliharaan termasuk dalam memperbaiki  kesalahan yang tidak ditemukan pada langkah sebelumnya. Perbaikan implementasi unit sistem dan peningkatan jasa sistem sebagai kebutuhan baru.

   Kelebihan Waterfall
  •  Merupakan 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 Waterfall
  • Persyaratan system harus digambarkan dengan jelas.
  • Rincian proses harus benar-benar jelas dan tidak boleh berubah-ubah.
  • Sulit untuk mengadaptasi jika terjadi perubahan spesifikasi pada suatu tahapan pengembangan
Refensi dari :
  • http://itsum.wordpress.com/2010/09/27/kelebihan-dan-kekurangan-setiap-model-pada-software-development-life-cycle-sdlc/
  • http://bluewarrior.wordpress.com/2009/10/12/waterfall-model-vs-v-model/

2). Incremental Model
     
    Model incremental menggabungkan elemen-elemen model sekuensial linier (diimplementasikan secara berulang) dengan filosofi prototype interatif. Model ini memakai urutan-urutan linier di dalam model yang membingungkan, seiring dengan laju waktu kalender. Setiap urutan linier menghasilkan pertambahan perangkat lunak yang kemudian dapat disampaikan kepada pengguna.

        Pada saat model incremental (pertambahan) ini digunakan, pertambahan pertama sering merupakan produk inti (core product), yaitu sebuah model pertambahan yang dipergunakan, tetapi beberapa muka tambahan (beberapa diketahui dan beberapa tidak) tetap tidak disampaikan. Produk inti tersebut dipergunakan oleh pelanggan (atau mengalami pengkajian detail). Sebagai hasil dari pemakaian dan/atau evaluasi maka dikembangkan rencana bagi pertambahan selanjutnya. Rencana tersebut menekankan modifikasi produk inti untuk secara lebih baik memenuhi kebutuhan para pelanggan dan penyampaian fitur serta fungsional tambahan. Proses ini mengikuti penyampaian setiap pertambahan sampai bisa menghasilkan produk yang lengkap.

       Model proses incremental tersebut, seperti model prototype dan pendekatan-pendekatan evolusioner yang lain, bersifat iterative. Tetapi tidak seperti model prototype, model pertambahan berfokus pada penyampaian produk operasional dalam setiap pertambahannya. Pertambahan awal ada di versi stripped down dari produk akhir, tetapi memberikan kemampuan untuk melayani pemakai dan juga menyediakan platform untuk evaluasi oleh pemakai.

     Perkembangan pertambahan, khususnya berguna pada saat staffing, tidak bisa dilakukan dengan menggunakan implementasi lengkap oleh batasan waktu bisnis yang sudah disepakati untuk proyek tersebut. Jika produk inti diterima dengan baik, maka staf tambahan (bila dibutuhkan) bisa ditambahkan untuk mengimplementasi pertambahan selanjutnya. Sebagai tambahan, system mayor yang sedang pada masa perkembangan serta waktu penyampaiannya belum pasti, mungkin membutuhkan keberadaan perangkat keras yang baru. Bisa juga rencana tertentu dibuat untuk menghindari pemakaian perangkat lunak ini, sehingga memungkinkan fungsionalitas partial disampaikan kepada pemakai tanpa harus banyak tertunda. 
Kelebihan Incremental Model
  • Personil bekerja optimal
  • Pihak konsumen dapat langsung menggunakan dahulu bagian-bagian yang telah selesai dibangun. COntohnya pemasukan data karyawan
  • Mengurangi trauma karena perubahan sistem.  Klien dibiasakan perlahan-lahan menggunakan produknya bagian per bagian
  • Memaksimalkan pengembalian modal investasi konsumen
Kekurangan Incremental Model
  • kemungkinan tiap bagian tidak dapat diintegrasikan
  • Dapat menjadi build and Fix Model, karena kemampuannya untuk selalu mendapat perubahan selama proses rekayasa berlangsung
  • Harus Open Architecture
Referensi dari :
  • http://trisnowlaharwetan.wordpress.com/2010/03/10/perbandingan-model-dalam-rekayasa-perangkat-lunak/
  • http://evi-mursalim.blogspot.com/2011/01/rekayasa-perangkat-lunak-incremental.html
3). Prototyping Model
     

        Prototyping merupakan salah satu metode pengembangan perangkatlunak yang banyak digunakan. Dengan metode prototyping ini pengembang dan pelanggan dapat saling berinteraksi selama proses pembuatan sistem. Sering terjadi seorang pelanggan hanya mendefinisikan secara umum apa yang dikehendakinya tanpa menyebutkan secara detal output apa saja yang dibutuhkan, pemrosesan dan data-data apa saja yang dibutuhkan. Sebaliknya disisi pengembang kurang memperhatikan efesiensi algoritma, kemampuan sistem operasi dan interface yang menghubungkan manusia dan komputer. Untuk mengatasi ketidakserasian antara pelanggan dan pengembang , maka harus dibutuhakan kerjasama yanga baik diantara keduanya sehingga pengembang akan mengetahui dengan benar apa yang diinginkan pelanggan dengan tidak mengesampingkan segi-segi teknis dan pelanggan akan mengetahui proses-proses dalm menyelasaikan system yang diinginkan. Dengan demikian akan menghasilkan sistem sesuai dengan jadwal waktu penyelesaian yang telah ditentukan. Kunci agar model prototype ini berhasil dengan baik adalah dengan mendefinisikan aturan-aturan main pada saat awal, yaitu pelanggan dan pengembang harus setuju bahwa prototype dibangun untuk mendefinisikan kebutuhan. Prototype akan dihilangkan sebagian atau seluruhnya dan perangkat lunak aktual aktual direkayasa dengan kualitas dan implementasi yang sudah ditentukan.


 Tahapan-tahapan Prototyping :
1. Pengumpulan kebutuhan
Pelanggan dan pengembang bersama-sama mendefinisikan format seluruh perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar sistem yang akan dibuat.
2. Membangun prototyping
Membangun prototyping dengan membuat perancangan sementara yang berfokus pada penyajian kepada pelanggan (misalnya dengan membuat input dan format output)
3. Evaluasi protoptyping
Evaluasi ini dilakukan oleh pelanggan apakah prototyping yang sudah dibangun sudah sesuai dengan keinginann pelanggan. Jika sudah sesuai maka langkah 4 akan diambil. Jika tidak prototyping direvisi dengan mengulangu langkah 1, 2 , dan 3.
4. Mengkodekan sistem
Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan ke dalam bahasa pemrograman yang sesuai
5. Menguji system
Setelah sistem sudah menjadi suatu perangkat lunak yang siap pakai, harus dites dahulu sebelum digunakan. Pengujian ini dilakukan dengan White Box, Black Box, Basis Path, pengujian arsitektur dan lain-lain
6. Evaluasi Sistem
Pelanggan mengevaluasi apakah sistem yang sudah jadi sudah sesuai dengan yang diharapkan . Jika ya, langkah 7 dilakukan; jika tidak, ulangi langkah 4 dan 5.
7. Menggunakan system
Perangkat lunak yang telah diuji dan diterima pelanggan siap untuk digunakan .

Kelebihan  Prototyping
  • Prototype melibatkan user dalam analisa dan desain.
  • Punya kemampuan menangkap requirement secara konkret daripada secara abstrak.
  • Untuk digunakan secara standalone.
  • Digunakan untuk memperluas SDLC.
  • Mempersingkat waktu pengembangan Sistem Informasi

Kekurangan Prototyping
  •  Proses analisis dan perancangan terlalu singkat.
  •  Mengesampingkan alternatif pemecahan masalah.
  •  Bisanya kurang fleksible dalam mengahdapi perubahan.
  •  Protitype yang dihasilkan tidak selamanya mudah dirubah
  •   Protype terlalu cepat selesai
Referensi dari
  • http://itsum.wordpress.com/2010/09/27/kelebihan-dan-kekurangan-setiap-model-pada-software-development-life-cycle-sdlc/
4). Rapid Application Development (RAD)

            RAD (Rapid Application Development) adalah sistem pemrograman yang memungkinkan programmer membuat program dengan cepat. Secara umum, Sistem RAD menyediakan sejumlah alat-bantu untuk membuat antarmuka pengguna grafis (graphical user interfaces) yang biasanya membutuhkan usaha dan waktu yang lama untuk membuatnya. Dua sistem RAD yang paling populer untuk Windows adalah Visual Basic dan Delphi.

RAD Mempunyai 4 Unsur Penting : Manajemen, Manusia, Metodologi, dan Peralatan.



Tahapan-tahapan dalam RAD :
  1. Bussiness Modelling. Fase ini untuk mencari aliran informasi yang dapat menjawab pertanyaan berikut: Informasi apa yang menegndalikan proses bisnis? Informasi apa yang dimunculkan? Di mana informasi digunakan ? Siapa yang memprosenya ?
  2. Data Modelling.Fase ini menjelaskanobjek data yang dibutuhkan dalam proyek. Karakteristik (atribut) masing-masing data diidentifikasikan dan hubungan anta objek didefinisikan.
  3. Process Modelling. Aliran informasi pada fase data medelling ditransformasikan untuk mendapatkan aliran informasi yang diperlukan pad implementasi fungsi bisnis. Pemrosesan diciptakan untuk menambah, memodifikasi, menghapus, atu mendapatkan kembali objek data tertentu
  4. Aplication Generation. Selain menggunakan bahasa pemrograman generasi ketiga, RAD juga memakai komponen program yang telah ada atau menciptakan komponen yang bisa dipakai lagi. Ala-alat baantu bisa dipakai untuk memfasilitasi konstruksi perangkat lunak.
  5. Testing and Turnover. Karena menggunakan kembali komponen yang telah ada, maka akan mengurangi waktu pengujian. Tetapi komponen baru harus diuji dan semua interface harus dilatih secara penuh.
Kelebihan dari model RAD
  • Waktu pengerjaannya yang terbilang singkat yaitu kira-kira 60-90 hari
  • RAD dalam prosesnya dapat menggunakan kembali komponen software maupun program yang sudah ada sebelumnya sehingga menghemat waktu dan lebih mudah
Kekurangan dari model RAD
  • Membutuhkan sumber daya manusia yang besar, untuk membentuk tim-tim
  • Developers dan customers dituntut harus commit pada kecepatan aktivitas kerja untuk menyelesaikan sistem sesuai dengan frame time, jika tidak maka project RAD akan gagal
  • Jika sistem tidak dapat dimodulkan dengan benar, maka dalam pembangunan komponen dari RAD akan bermasalah
  • Jika performance hanya berfokus pada perbaikan interface dari komponen sistem, maka pendekatan RAD mungkin tidak bekerja
  • Jika resiko terlalu tinggi maka model RAD bukanlah model yang tepat untuk digunakan
 Referensi dari 
  • http://artikelsayasaja.blogspot.com/2011/09/metode-rad.html
  • http://yuliagroups.wordpress.com/pengertian-rad/
  • http://lindroidspica.blogspot.com/2011/09/metode-dan-model-proses-rekayasa.html
 5). Spiral Model


           Spiral model adalah salah satu bentuk evolusi yang menggunakan metode iterasi natural yang dimiliki oleh model Prototyping dan digabungakan dengan aspek sistematis yang dikembangkan dengan model Waterfall. Tahap desain umumnya digunakan pada model Waterfall, sedangkan tahap Prototyping adalah suatu model dimana software dibuat prototype (incomplete model), “blue-print”-nya, atau contohnya dan ditunjukkan ke user / customer untuk mendapatkan feedback-nya. Jika prototype-nya sudah sesuai dengan keinginan user / customer, maka proses SE dilanjutkan dengan membuat produk sesungguhnya dengan menambah dan memperbaiki kekurangan dari prototype tadi.
Model ini digambarkan dengan bentuk spiral dimana didalamnya terdapat daerah yang disebut dengan region. Proses dimulai dari dalam atau pusat spiral yang berlanjut searah jarum jam menuju tahapan selanjutnya kemudian melebar seperti terlihat pada gambar dibawah ini.
Tahapan proses pada model Spiral :
  1. Communication
  2. Planning
  3. Modeling
  4. Construction
  5. Deployment
Akan tetapi tidak sama halnya dengan model lain yang ketika software sudah dikirimkan maka proses sudah selesai, pada model Spiral proses akan berlanjut terus,  saat software sudah dikirim proses berlanjut membuat project baru dan kembali ke tahap awal yaitu Communication dan seterusnya seperti gambar spiral diatas guna memperbaiki kekurangan-kekurangan pada software yang pertama dikirimkan.

Kelebihan model Spiral
  • Pendekatan dengan model ini sangat baik digunakan untuk pengembangan sistem software dengan skala besar, karena perkembangan dari Software Engineering dapat dipantau oleh kedua belah pihak baik developer maupun customer, sehingga mereka dapat mengerti dengan baik mengenai software ini begitu juga dengan resiko yang mungkin didapat pada setiap aktivitas yang dilakukan
  • Karena merupakan gabungan dari model Waterfall dan Prototyping sehingga terdapat analisis resiko yang dilakukan maka resiko dapat direduksi sebelum menjadi suatu masalah yang besar yang dapat menghambat Software Engineering
  • Dengan iterasi yang dilakukan pada model ini menyebabkan model ini lebih realistis untuk merefleksikan dunia nyata
Kekurangan model Spiral
  • Sulit meyakinkan customer bahwa pendekatan evolutionary bisa dilakukan, khusus pada kontrak kerja
  • Kemampuan untuk memperkirakan dan menanggulangi resiko yang datang sangat menentukan, sebab apabila resiko utama tidak dapat diatasi maka permasalahan akan muncul kembali tanpa diragukan lagi
Referensi dari 
  • http://lindroidspica.blogspot.com/2011/09/metode-dan-model-proses-rekayasa.html

 



1 komentar:

  1. Perlu dikoreksi, bukan 'model-model software', tetapi 'model-model proses pengembangan software'

    BalasHapus