Senin, 24 September 2012

Waterfall Model


    Waterfall model pertama kali diperkenalkan oleh Winston Royce tahun 1970. Waterfall Model merupakan model klasik yang sederhana dengan aliran sistem yang linier. Output dari setiap tahap merupakan input bagi tahap berikutnya.

      Waterfall Model adalah sebuah metode pengembangan software yang bersifat sekuensial . selain ini Model ini merupakan model yang paling banyak dipakai oleh para pengembang software. Inti dari metode waterfall adalah pengerjaan dari suatu sistem dilakukan secara berurutan atau secara linear. Jadi jika langkah satu belum dikerjakan maka tidak akan bisa melakukan pengerjaan langkah 2, 3 dan seterusnya.  Secara otomatis tahapan ke-3 akan bisa dilakukan jika tahap ke-1 dan ke-2 sudah dilakukan. Berikut tahapan dari model waterfall:




      1. Analisis dan definisi persyaratan

                Pelayanan, batasan, dan tujuan sistem ditentukan melalui konsultasi dengan user, Dalam tahapan ini jasa, kendala dan tujuan dari konsultasi dengan pengguna sistem. Kemudian semuanya dibuat dalam bentuk yang dapat dimengerti oleh user dan staf pengembang. Dengan kata lain, dalam tahapn ini dilakukan analisa kebutuhan, kemudian diverifikasi klien dan tim SQA.

Beberapa macam requirement:
1. User Requirement (Kebutuhan Pengguna)
                Pernyataan tentang layanan yang disediakan sistem dan tentang batasan-batasan operasionalnya. Dilengkapi dengan gambar/diagram yang dapat dimengerti dengan mudah.
2. System Requirement (Kebutuhan Sistem)
                Sekumpulan layanan/kemampuan sistem dan batasan-batasannya yang ditulis secara detil. Ini bisa berlaku sebagai kontrak antara klien dan pembangun.
3. Software Requirement Specification (Spesifikasi Kebutuhan Perangkat Lunak)
                Gambaran abstrak dari rancangan perangkat lunak yang menjadi dasar bagi perancangan dan implementasi yang lebih detil.

      2. Perancangan sistem dan perangkat lunak

                Perancangan perangkat lunak adalah proses dimana analisa diterjemahkan menjadi “cetak-biru” untuk membangun perangkat lunak. Awalnya, cetak biru menggambarkan pandangan menyeluruh perangkat lunak. Yaitu, desain diwakili pada tingkat yang dapat langsung ditelusuri pada sistem tertentu objektif dan data yang lebih rinci, fungsional, dan persyaratan yang diperlukan. Seperti terjadi pengulangan desain, perbaikan dari desain sebelumnya.

                Kegiatan ini menentukan arsitektur sistem secara keseluruhan Fokus pada struktur data, arsitektur perangkat lunak, representasi interface, dan detail algoritma prosedural. Proses ini menerjemahkan syarat / kebutuhan ke dalam sebuah representasi perangkat lunak.

Metode Perancangan:
  • Perancangan Data

                Yaitu transformasi model data yang dihasilkan oleh proses analisis menjadi struktur  data yang dibutuhkan pada saat implementasi.
Hasil perancangan data adalah:
- struktur data siap diprogram
- struktur basis data siap dibuat oleh pemrogram
- prosedur/operasi untuk mengakses data, siap   deprogram
  • Perancangan Arsitektur

                Yaitu definisi keterkaitan antar elemen-elemen utama yang akan membentuk program.
Hasil perancangan arsitektural:
Structure Chart yang merepresentasikan gambaran menyeluruh struktur/ arsitektur perangkat lunak, beserta seluruh hierarki kendali/passing parameter, yang siap dituliskan dalam bentuk modul program.
  • Perancangan Antarmuka

                Yaitu penjabaran komunikasi: internal perangkat lunak, antara perangkat lunak, dengan sistem diluarnya, dan antara perangkat lunak dengan usernya.
Hasil perancangan antarmuka adalah:
- definisi antarmuka modul yang siap untuk diprogram
- definisi / format rancangan layar yang siap diimplementasikan
  • Perancangan Prosedur

                Yaitu transformasi elemen struktural dari arsitektur program menjadi deskripsi prosedur.
Hasil perancangan prosedur adalah:
- Flow-chart
- Algoritma/pseudocode/program design language

      3. Implementasi dan pengujian unit

            Pada tahap ini dilakukan kerja untuk membangun perangkat lunak berdasarkan analisa dan pemodelan yang telah dilakukan. Sehigga hasil dari tahap ini adalah basis data dan source code perangkat lunak.

            Selama tahap ini, desain perangkat lunak disadari sebagai sebuah program lengkap atau unit program. Desain yang telah disetujui, diubah dalam bentuk kode-kode program. Tahap ini, kode-kode program yang dihasilkan masih pada tahap modul-modul. Diakhir tahap ini, tiap modul di testing tanpa diintegrasikan. Perancangan perangkat lunak direalisasikan sebagai serangkaian program




      4. Integrasi dan pengujian system

                  Unit program diintegrasikan atau diuji sebagai sistem yang lengkap untuk menjamin bahwa persyaratan sistem telah terpenuhi 

                  Setelah source code dihasilkan, perangkat lunak harus diuji untuk menemukan (dan membenarkan) sebanyak mungkin kesalahan yang dibuat.

                  Unit program diintegrasikan dan diuji menjadi sistem yang lengkap untuk meyakinkan bahwa persyaratan perangkat lunak telah dipenuhi. Setelah uji coba, sistem disampaikan ke konsumen.

Metode pengetesan:
1. Black box testing
                Black box testing memperlakukan pengujian perangkat lunak sebagai “kotak hitam” – tanpa pengetahuan tentang pelaksanaan internal.
                 
2. White box testing
                White box testing adalah ketika penguji memiliki akses ke struktur data internal dan algoritma termasuk source code.

      5. Operasi dan pemeliharaan

                Merupakan fase siklus yang paling lama. Sistem diinstall dan dipakai. Perbaikan mencakup koreksi dari berbagai error, perbaikan dan implementasi unit sistem dan pelayanan sistem.

                Proses pemeliharaan perangkat lunak dan keseluruhan sistem bila terjadi kesalahan pada program, atau terjadi perubahan lingkungan perangkat lunak dan juga bila terjadi perubahan requirements dan maintenance yang bersifat preventif untuk mengantisipasi keadaan yang tidak diinginkan.

                Sistem diinstall dan dipakai. Perbaikan mencakup koreksi dari berbagai error, perbaikan dan implementasi unit sistem dan pelayanan sistem.

Kelebihan waterfall :

v  Developer dituntut bekerja secara disiplin
v  Simple dan mudah diimplementasikan
v  Dokumen lengkap
v  Selalu dalam kontrol SQA
v  Maintenance mudah, karena dokumen lengkap

Kekurangan Waterfall :

v  Konsumen kesulitan membaca dokumen, komunikasi menjadi sulit
v  Alur linier, proses lambat
v  Konsumen tidak dapat melihat hasil hingga akhir tahapan
v   Personil tidak bekerja optimal, karena ada waktu tunggu sebuah tahapan selesai
v   Model ini hanya pas jika requirement nya dapat dipahami dengan baik dan perubahan yang terjadi sangat terbatas selama proses desain berlangsung.



0 komentar:

Posting Komentar