Selasa, 24 November 2015

Model Pada Life Cycle Software

1. Waterfall
Pengertian Waterfall
Permodelan dalam suatu perangkat lunak merupakan suatu hal yang dilakukan di tahapan awal. Di dalam suatu rekayasa perangkat lunak, sebenarnya masih memungkinkan tanpa melakukan permodelan. Hal ini tidak dapat lagi dilakukan dalam suatu industri perangkat lunak.
Permodelan dalam perangkat lunak merupakan suatu yang harus dikerjakan di bagian awal rekayasa, dan permodelan ini akan mempengaruhi pekerjaan-pekerjaan dalam rekayasa perangkat lunak tersebut.

Waterfall model pertama kali diperkenalkanoleh 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.
Model ini telah diperoleh dari proses rekayasa lainnya dan menawarkan cara pembuatan rekayasa perangkat lunak secara lebih nyata.  Model ini melibatkan tim SQA (Software Quantity Assurance) dengan 5 tahapan, dimana setiap tahapan selalu dilakukan verifikasi atau testing.  Tahapan model waterfall meliputi :
  • Requirment
Dalam tahapan ini jasa, kendala dan  tujuandari 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, kemdian diverifikasi klien dan tim SQA.
  • Specification
Dokumentasi spesifikasi, kemudian diperiksa oleh tim SQA.  Selanjutnya jika disetujui oleh klien, maka dokumen tersebutmerupakan kontrak kerjaantaraklien dan pengembang s0ftware.  Selanjutnya merencanakan jadwal pengembangan software. Jika disetujui oleh SQA, tahap desain baru dilakukan.
  • Design
Proses design sistem membagi kebutuhan-kebutuhan menjadi sistem perangkat lunak atau perangkat keras.  Proses tersebut menghasilkan sebuah arsitektur keseluruhan. Desain perangkat lunak termasuk menghasilkan fungsi sistem perangkatlunak dalam bentuk yang mungkin ditransformasi kedalam satu atau lebih program yang dapat dijalankan.  Tahapan ini telah menentukan alur software hingga pada tahap algoritma detail.  Di akhir tahap ini, kembali diperksa tim SQA.
  • Implementation
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.
  • Integration
Unit program diintegrasikan dandiuji menjadi sistem yang lengkap untuk meyakinkan bahwa persyaratan perangkat lunak telah dipenuhi.  Setelah uji coba, sistem disampaikan ke konsumen.
  • Operaton mode & retirement
Normalnya, ini adalah tahap yang terpanjang.  Sistem dipasang dan digunakan. Pemeliharaan termasuk pembetulan kesalahan yang tidak ditemukan pada langkah sebelumnya.  Perbaikan inmplementasi unit sistem dan peningkatan jasa sistem sebagai kebutuhan baru ditemukan.
Setiap tahap dari modelini menggunakan Document Drivent, yaitu tahap selanjutnya selalu bekerja berdasarkan dokumen yang telah diberikan sebelumnya.
Tahapan pada waterfall model tidak akan selesai jika tidak disetujui SQA.  Modifikasi pada tahap tertentu (tidak sesuai dengan dokumen sebelumnya), proses harus kembali pada tahap sebelumnya untuk penyesuaian dan peninjauan ulang.
Dalam prakteknya, setiap langkah sering tumpang tindih dan saling memberi informasi satu sama lain.  Proses perangkat lunak tidak linierdan sederhana,  tapi mengandung urutan iterasi dari aktifitas pengembangan.  Selama di langkah terakhir, perangkat lunak telah digunakan.  Kesalahan dan kelalaian dalam menentukan kebutuhan perangkat lunak original dapat diatasi.


















berikut ini langkah-langkah pengembangan sistem dengan proses SDLC dengan model

waterfall, yaitu:

      a.      Sistem Engineering
      adalah suatu disiplin rancang-bangun yang mana bertanggung jawab menciptakan dan           melaksanakan proses disiplin untuk memastikan bahwa pelanggan dan kebutuhan stakeholder's terpuaskan dengan kualitas tinggi, terpercaya, efisiensi biaya dan menjadwalkan cara memenuhi sepanjang keseluruhan jalan kehidupan.

b&c. Analisis & Design
       Ini tahap yang penting dalam pengembangan sistem dimana melakukan perancangan sistem yang akan dikembangkan. Dengan kata lain database mendisain, perancangan arsitektur yang dipilih, spesifikasi fungsional disain, disain yang tingkat rendah dokumen, dokumen disain yang tingkat tinggi dan seterusnya berlangsung. Kita harus menyiapkan dokumen disain ini sebab tahap yang berikutnya yakni tahap pengembangan didasarkan pada dokumen disain ini. Jika suatu sumur yang tersusun dan dianalisa dokumen disain disiapkan maka akan mengurangi waktu untuk melakukan langkah-langkah berikutnya yakni pengembangan dan menguji tahap dari pengembangan software.

d.  Pengkodean
       pada tahap ini akan secara langsung dipraktekan pada sistem yang sedang berlangsung.Desain Dokumen sudah disiapkan di nulai dari tahap pengkodean awal ditulis di teknologi programming yang dipilih. Setelah kode dikembangkan generasi dari kode juga berlangsung di tahap ini. Dengan kata lain kode diubah jadi executables di tahap ini setelah generasi kode.

e. Testing
Suatu perangkat lunak akan dilakukan pengujian untuk menghasilkan produk yang berkwalitas. tahap ini akan mengetahui debugger atau kesalahan dalam sistem yang sedang dibangun. Pada tahap ini berbeda dan metoda uji didasarkan untuk koreksi dari kesalahan. Proses ini melanjut sampai sistem dibebaskan dari kesalahan.
Suatu perangkat lunak akan dilakukan pengujian untuk menghasilkan produk yang berkwalitas. tahap ini akan mengetahui debugger atau kesalahan dalam sistem yang sedang dibangun. Pada tahap ini berbeda dan metoda uji didasarkan untuk koreksi dari kesalahan. Proses ini melanjut sampai sistem dibebaskan dari kesalahan.
SDLC akan menghasilkan suatu sistem yang berkualitas sesuai requirement (kebutuhan) user dan dapat diselesaikan dalam waktu dan biaya yang telah diperkirakan secara efektif dalam infrastruktur tehologi informasi saat ini dan yang akan datang.
SDLC mudah dikembangkan dalam merespon berbagai kebutuhan pemakai (user) dan lebih murah pemeliharaan serta hemat biaya dalam pengembangan.
Sistem komputer sudah menjadi lebih kompleks dan sering juga merupakan arsitektur yang berorientasi memenuhi kebutuhan user dengan cara mengembangkan berbagai sistem yang konvensional (tradisional) agar berpotensi sehingga dapat menyajikan berbagai perangkat lunak yang berbeda.
SDLC merupakan alur kerja standart yang biasa dipakai oleh perusahaan-perusahaan vendor software dalam mengembangkan software aplikasi produksinya. SDLC ini tidak hanya penting untuk proses produksi software saja, namun terlebih juga sangat penting untuk proses maintenance software itu sendiri, karena tanpa pengarsipan data-data development suatu software, maka akan sangat menyulitkan perusahaan dalam maintenance software tersebut dikemudian hari.
            f. Maintenance
          Melakukan pemeliharaan, seperti penyesuaian atau perubahan karena adaptasi dengan situasi sebenarnya. Model ini juga mencerminkan kepraktisan engineering karena ketika sudah berada diakhir fase jika terjadi kesalahan akan lebih mudah diperbaiki. Namun kelemahan metode ini adalah ketika suatu fase sudah terlewati dan ada perubahan kebutuhan sesuai keinginan pemakai/user terkadang model ini sulit untuk diakomodasi. Dampaknya akan menyebabkan kebingungan bagi tim pembuat. Sehingga keadaan ‘block state’ atau status terblok akan terjadi. Block state bisa terjadi ketika beberapa anggota tim harus menunggu anggota lain team ini untuk menyelesaikan tugas yang ada kaitannya. Akibatnya, waktu yang diperlukan untuk menunggu bisa melebihi waktu produktif yang diperlukan untuk mengerjakan tugasnya.Secara umum masalah-masalah yang sering terjadi dalam model ini adalah :Perubahan sulit dilakukan karena sifatnya yang kaku.


Karena sifat kakunya, model ini cocok ketika kebutuhan dikumpulkan secara lengkap sehingga perubahan bisa ditekan sekecil mungkin. Tapi pada kenyataannya jarang sekali konsumen/pengguna yang bisa memberikan kebutuhan secara lengkap, perubahan kebutuhan adalah sesuatu yang wajar terjadi.Waterfall pada umumnya digunakan untuk rekayasa sistem yang besar dimana Proyek dikerjakan di beberapa tempat berbeda, dan dibagi menjadi beberapa bagian sub-Proyek

Keuntungan:
Simple dan mudah diimplementasikan
mudah diatur
Cocok untuk proyek kecil
Kerugian:
Tidak mengakomodasi perubahan requirement
Resiko ketidakpastian tinggi
Model yang buruk untuk proyek yang berorientasi obyek
Model yang buruk untuk proyek lama
2.V-Model
Pengertian V-Model
Model ini merupakan perluasan dari model waterfall. Disebut sebagai perluasan karena tahap-tahapnya mirip dengan yang terdapat dalam model waterfall. Jika dalam model waterfall proses dijalankan secara linear, maka dalam model V proses dilakukan bercabang. Dalam model V ini digambarkan hubungan antara tahap pengembangan software dengan tahap pengujiannya.

Berikut penjelasan masing-masing tahap beserta tahap pengujiannya:

       a.      Requirement Analysis & Acceptance Testing
       Tahap Requirement Analysis sama seperti yang terdapat dalam model waterfall. Keluaran dari tahap ini adalah dokumentasi kebutuhan pengguna.
Acceptance Testing merupakan tahap yang akan mengkaji apakah dokumentasi yang dihasilkan tersebut dapat diterima oleh para pengguna atau tidak.

      b.      System Design & System Testing
       Dalam tahap ini analis sistem mulai merancang sistem dengan mengacu pada dokumentasi kebutuhan pengguna yang sudah dibuat pada tahap sebelumnya. Keluaran dari tahap ini adalah spesifikasi software yang meliputi organisasi sistem secara umum, struktur data, dan yang lain. Selain itu tahap ini juga menghasilkan contoh tampilan window dan juga dokumentasi teknik yang lain seperti Entity Diagram dan Data Dictionary.

      c.      Architecture Design & Integration Testing
      Sering juga disebut High Level Design. Dasar dari pemilihan arsitektur yang akan digunakan berdasar kepada beberapa hal seperti: pemakaian kembali tiap modul, ketergantungan tabel dalam basis data, hubungan antar interface, detail teknologi yang dipakai.

      d.      Module Design & Unit Testing
      Sering juga disebut sebagai Low Level Design. Perancangan dipecah menjadi modul-modul yang lebih kecil. Setiap modul tersebut diberi penjelasan yang cukup untuk memudahkan programmer melakukan coding. Tahap ini menghasilkan spesifikasi program seperti: fungsi dan logika tiap modul, pesan kesalahan, proses input-output untuk tiap modul, dan lain-lain.
  
      e.      Coding
      Dalam tahap ini dilakukan pemrograman terhadap setiap modul yang sudah dibentuk.
V Model memiliki beberapa kelebihan. Kelebihan-kelebihan tersebut secara garis besar dapat dijelaskan seperti berikut:

 V Model sangat fleksibel. V Model mendukung project tailoring dan penambahan dan pengurangan method dan tool secara dinamik. Akibatnya sangat mudah untuk melakukan tailoring pada V Model agar sesuai dengan suatu proyek tertentu dan sangat mudah untuk menambahkan method dan tool baru atau menghilangkan method dan tool yang dianggap sudah obsolete.

·       V Model dikembangkan dan di-maintain oleh publik. User dari V Model berpartisipasi dalam change control board yang memproses semua change request terhadap V Model.

V Model juga memiliki beberapa kekurangan. Kekurangan-kekurangan tersebut yaitu:

·      V Model adalah model yang project oriented sehingga hanya bisa digunakan sekali dalam suatu proyek.

·      V Model terlalu fleksibel dalam arti ada beberapa activity dalam V Model yang digambarkan terlalu abstrak sehingga tidak bisa diketahui dengan jelas apa yang termasuk dalam activity tersebut dan apa yang tidak.

Keuntungan V Model
- Bahasa yang digunakan untuk merepresentasikan konsep V model menggunakan bahasa formal.Contoh: dengan menggunakan objek model ataupun frame-frame 
- Meminimalisasikan kesalahan pada hasil akhir karena ada test pada setiap prosesnya
-  Penyesuaian yang cepat pada projek yang baru
- Memudahkan dalam pembuatan dokumen projek
-   Biaya yang murah dalam perawatan dan modifikasinya
-   V Model sangat fleksibel. V Model mendukung project tailoring dan penambahan dan pengurangan method dan tool secara dinamik. Akibatnya sangat mudah untuk melakukan tailoring pada V Model agar sesuai dengan suatu proyek tertentu dan sangat mudah untuk menambahkan method dan tool baru atau menghilangkan method dan tool yang dianggap sudah obsolete.
-   V Model dikembangkan dan di-maintain oleh publik. User dari V Model berpartisipasi dalam change control board yang memproses semua change request terhadap V Model.

Kerugian V Model
- Aktifitas V-Model hanya difokuskan pada projectnya saja, bukan pada keseluruhan organisasi. V-Model adalah proses model yang hanya dikerjakan sekali selama project saja, bukan keseluruhan organisasi.
-  Prosesnya hanya secara sementara. Ketika project selesai, jalannya proses model dihentikan. Tidak berlangsung untuk keseluruhan organisasi.
 Metode yang ditawarkan terbatas. Sehingga kita tidak memiliki cara pandang dari metode yang lain. Kita tidak memiliki kesempatan untuk mempertimbangkan jika ada tools lain yang lebih baik.
-  oolnya tidak selengkap yang dibicarakan. SDE (Software Development Environment).Tidak ada tools untuk hardware di V-Model. Tool yang dimaksud adalah “software yang mendukung pengembangan atau pemeliharaan / modifikasi dari system IT.
-  V Model adalah model yang project oriented sehingga hanya bisa digunakan sekali dalam suatu proyek.
-  V Model terlalu fleksibel dalam arti ada beberapa activity dalam V Model yang digambarkan terlalu abstrak sehingga tidak bisa diketahui dengan jelas apa yang termasuk dalam activity tersebut dan apa yang tidak.

3.Simple Interaction Design Model













        Pada model rancangan interaksi sederhana ini input atau masukan hanya memiliki satu titik. yang mana masukan tersebut diidentifikasikan apakah sesuai dengan kebutuhan, lalu didesain sesuai dengan persyaratan yang telah ditetapkan. Setelah didesain rancangan tersebut dibangun dan harus interaktif. Setelah itu barulah rancangan tersebut dievaluasi.


Evaluasi dapat dilakukan dimana saja, rancangan yang telah di evakuasi dapat kambali didesain ulang atau apakah rancangan tersebut tidak sesuai dengan kebutuhan user, maka alur tersebut akan terus berputar hingga pada tahap evaluasi tidak lagi terjadi kesalahan, baik dalam penetapan kebutuhan user maupun pendesainannya, sehingga pada tahap evaluasi terciptalah sebuah hasil akhir yang valid.


4.Star Lifecycle Model (Hartson & Hix, 1989)


Dalam pengembangan software ada bererapa tahapan utnuk mencapai kualitas pembuatan/ siklus hidup software. Dapat kami jabarkan siklus hidup software atau tahap pengembangan software sebagai berikut:
Tahap Pengembangan Software ( Siklus Hidup Software ) :

a.                   Requirements Analysis ( Analisa Kebutuhan )
Tahap ini menganalisa masalah dan kebutuhan yang harus diselesaikan dengan sistem komputer yang akan dibuat. Tahap ini berakhir dengan pembuatan laporan kelayakan yang mengidentifikasi kebutuhan sistem yang baru dan merekomendasikan apakah kebutuhan atau masalah tersebut dapat diselesaikan dengsn sistem komputer yang ada.

b.                  System and Software Design ( Prencanaan Sistem dan Software )
Tahap ini melakukan rancangan design sistem. Tahap ini memberikan rincian kinerja program dan interaksi antara user dengan program tersebut.

c.                  Implementation ( Implementasi )
            Tahap ini adalah spesifikasi design yang telah dibuat untuk diterjemahkan de dalam program / instruksi yang ditulis dalam bahasa pemrograman.

d.                  System Testing ( Pengujian Sistem )
Tahap ini semua program digabungkan dan diuji sebagai satu sistem yang lengkap untuk menjamin sumua berkerja dan memenuhi kebutuhan penanganan masalah yang dihadapi.

e.                  Operation and Maintenance ( Pengoperasian dan Pemeliharaan )
Tahap ini merupakan pengaplikasian program yang telah dibuat untuk digunakan secara utuh dan masalah baru yang muncul sebagai bahan masukan untuk memperbaiki sistem program yang baru
.

sumber :
raytenimanuel.wordpress.com/2013/01/23/pengertian-waterfall/
theresianihan.blogspot.co.id/2013/01/model-life-cycle-software.html
https://anitamegayanti.wordpress.com/category/software-engineering/system-development-life-cycle/
http://ayip7shortcutsharing.blogspot.co.id/2013/06/pengertian-model-v-keuntungan-model-v.html