Rabu, 21 September 2011

Metode dan Model Proses Rekayasa Perangkat Lunak

Metode Rekayasa Perangkat Lunak

Pendekatan-pendekatan terstruktur terhadap pengembangan perangkat lunak mencakup model, notasi, aturan, saran pengembangan sistem (rekomendasi), dan panduan proses.
  1. Deskripsi model sistem adalah Deskripsi model yang harus dikembangkan dan notasi yang digunakan untuk mendefinisikan model-model ini.
  2.  Aturan adalah Batasan yang berlaku bagi model sistem. 
  3. Rekomendasi adalah Saran dalam membentuk perancangan yang baik.
  4. Panduan Proses adalah Aktifitas yang bisa diikuti untuk mengembangkan model sistem
Model-model Proses Rekayasa Perangkat Lunak
  • SDLC Model
Dalam perkembangan Rekayasa Perangkat Lunak banyak berbagai model yang digunakan untuk membantu dalam pengembangan perangkat lunak (software). Pada umumnya model-model tersebut berpatokan pada model proses pengembangan system yang disebut SDLC (System Development Live Cycle).

System Development Live Cycle (SDLC) sendiri terdiri dari beberapa tahapan yaitu :
  1. Identifikasi dan Pemilihan Proyek : semakin jelas mengidentifikasi masalah akan memudahkan dalam penyelesainnya. Oleh karena itu identifikasi secara detail sangatlah penting baik dalam menyelesaikan masalah ataupun untuk kelanjutan tahapan selanjutnya.
  2. Inisiasi dan Perencanaan Proyek : permulaan / memulai melakukan perencanaan atas apa yang akan dilakukan pada tahap-tahap selanjutnya.
  3. Analisis Menganalisa : data-data / requirement yang sudah didapat dari tahap indentifikasi. Semakin jelas hasil identifikasi semakin mudah juga melakukan analisanya.
  4. Disain : selanjutnya membuat disain software yang akan dibuat setelah memperhatikan requirement dan hasil analisa.
  5. Implementasi : implementasi merupakan tahapan melakukan coding atau memulai sesungguhnya dalam pembuatan sebuah software, yang kemudian diikuti dengan testing.
  6. Perawatan / Maintenance : setelah software jadi pun tidak serta merta selesai begitu saja, harus dilakukan perawatan jika nantinya masih terdapat bugs didalamnya harus diperbaiki.
  • Waterfall Model
Model ini merupakan model yang dianggap kuno dan disebut juga sebagai “classic life cycle”. Tetapi model ini paling banyak digunakan dalam Software Engineering. Disebut dengan waterfall karena tahap yang pertama harus dilalui dan diselesaikan terlebih dahulu untuk dapat melanjutkan ke tahapan selanjutnya. Tahapan yang harus dilalui dalam model waterfall ini dapat dilihat pada gambar dibawah ini.

Model ini menggunakan pendekatan secara sistematis dan urut mulai dari level : 
  1. Communication : yang berisi project initiation dan pengumpulan kebutuhan
  2. Planning : yang berisi estimating, scheduling dan tracking
  3. Modeling : berisi analysis dan design
  4. Construction : berisi code/coding dan testing
  5. Deployment : berisi delivery, support, dan feedback
Kelebihan dari model Waterfall adalah :
  • Mudah dalam pengaplikasiannya
  • Ketika semua kebutuhan sistem dapat didefinisikan secara utuh dan benar sejak awal project, maka Software Engineering dapat berjalan dengan baik tanpa masalah.
  • Walaupun dalam pengumpulan kebutuhan tidak selalu dapat didefinisikan secara utuh seperti yang diinginkan akan tetapi masalah yang timbul saat pengumpulan kebutuhan sistem ketika awal project tidak mengeluarkan biaya yang besar baik uang, waktu dan usaha.
Kekurangan dari model Waterfall adalah :
  • Karena pendekatan yang dilakukan secara urut / sequential, maka ketika suatu tahap terhambat maka tahap berikutnya tidak dapat dikerjakan dengan baik
  • Ketika ada masalah, maka proses harus dihentikan dan harus dicari apa dan dari mana masalahnya berasal beserta solusinya terlebih dahulu karena tidak dapat melanjutkan ketahap berikutnya. Dan apabila masalah tersebut berasal dari tahapan sebelumnya maka proses harus membenarkan dulu tahap sebelumnya yang tentu saja membuang waktu pengerjaan Software Engineering
  • Pengerjaan model ini terbilang sangat lama karena prosesnya dapat berlanjut ke tahap selanjutnya jika tahap sebelumnya sudah selesai(tidak dapat dikerjakan secara bersamaan)
  • Pada setiap tahap proses dibutuhkan pekerja sesuai spesialisasinya masing-masing. Sehingga jika suatu tahap sudah tidak dikerjakan maka pekerja juga tidak terpakai lagi. Maka pada model ini seringkali dibutuhkan orang yang multi-skilled agar dapat membantu tahap selanjutnya.
  • Incremental Model
Incremental model mengkombinasikan elemen dari Waterfall model yang diaplikasikan dalam bentuk iterative. Proses tahapan pada model ini samahalnya dengan waterfall model akan tetapi dilakukan secara berbaris-baris dan setiap baris disebut dengan increment. Dimana setiap increment menghasilkan fungsi produksi yang berbeda. Dan biasanya hasil increment pertama merupakan bagian inti dari software yang akan dikirimkan lebih dulu kepada customer. Sedangkan hasil increment yang lainnya merupakan tambahan atau fitur tambahan dari software utama. Gambar dari Incremental model dapat dilihat dibawah ini.


Kelebihan model Incremental adalah :
  • Early increments dapat diimplementasikan dengan sedikit orang
  • Jika produk inti dengan baik diterima, penambahan staff jika dibutuhkan dapat dilakukan untuk mengimplementasi increment selanjutnya
  • Model ini dapat merencanakan untuk mengatur resiko technical.
Kekurangan model Incremental adalah :
  • Membutuhkan biaya yang besar
  • Membutuhkan waktu yang lama
  • Apabila increment pertama gagal, maka increment berikutnya akan berantakan karena increment pertama merupakan inti dari produk
  • RAD Model
Rapid Application Development(RAD) merupakan model proses incremental software yang menekankan pada short development cycle. RAD model adalah adaptasi berkecepatan tinggi “high-speed” dari waterfall model yang mana secara cepat perkembangan dicapai menggunakan pendekatan konstruksi berbasis komponen. Jika kebutuhan dipahami dengan baik, proses RAD memungkinkan tim pengembang menciptakan “sistem fungsional yang utuh” dalam periode waktu yang singkat kira-kira 60 sampai 90 hari. Seperti pada model yang lain proses model RAD juga melalui beberapa tahapan yang dapat dilihat pada gambar dibawah.

Tahapan model RAD adalah sebagai berikut :
  1. Communication : memahami masalah dan informasi khusus yang harus cocok dengan software yang akan dibuat
  2. Planning : merupakan perencanaan yang penting untuk dilakukan karena beberapa software tim bekerja secara bersamaan / parallel pada fungsi sistem yang berbeda
  3. Modeling : berisi business modeling, data modeling, dan process modeling menjadi dasar komponen dari tahap konstruksi yang dikerjakan secara bersamaan oleh beberapa tim yang berbeda
  4. Construction : berisi penggunaan kembali komponen software yang telah ada, automatic code generation, dan melakukan testing
  5. Deployment : berisi integration, delivery, dan feedback
Kelebihan dari model RAD adalah :
  • 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 adalah :
  • 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
  • Prototyping Model
Prototyping Model digunakan ketika customer tidak tahu secara pasti apa yang dibutuhkannya sehingga developer pun kurang memahami apa yang diinginkan oleh customer. Paradigma Prototyping membantu Software Engineer dan customer lebih memahi akan apa yang akan dibuatnya ketika kebutuhan tidak jelas. Gambar dari model Prototyping dapat dilihat seperti dibawah ini.


Tahapan dari model Prototyping adalah :
  1. Communication : komunikasi antara developer dan customer mengenai tujuan pembuatan dari software, mengidentifikasi apakah kebutuhan diketahui
  2. Quick Plan : perancanaan cepat setelah terjalin komunikasi
  3. Modeling, Quick Design : segera membuat model, dan quick design fokus pada gambaran dari segi software apakah visible menurut customer
  4. Construction of Prototype : quick design menuntun pada pembuatan dari prototype
  5. Deployment, Delivery & Feedback : prototype yang dikirimkan kemudian dievaluasi oleh customer, feedback digunakan untuk menyaring kebutuhan untuk software
perulangan terjadi agar prototype diperbaiki untuk memuaskan kebutuhan dari customer, sementara pada waktu yang sama memungkinkan developer memahami lebih baik apa yang dibutuhkan untuk menyelesaikan software.

Kelebihan model Prototyping adalah :
  • Tidak menghabiskan biaya besar apabila terdapat kekurangan terhadap produk yang telah dikirimkan, karena hanya berupa prototype yang sedang dicoba customer untuk mengetahui kekurangan mengenai prototype tersebut agar developer dapat memperbaiki kekurangan yang ada sehingga menghasilkan produk seperti yang diinginkan
Kekurangan model Prototyping adalah :
  • Customer hanya melihat pada versi kerjanya tanpa menyadari bahwa prototype dikerjakan bersama-sama, hal ini menyebabkan developer tidak memperhatikan kualitas ataupun jangka panjang pemeliharaannya
  • Developer sering melakukan kompromi pada pengimplementasian agar prototype selesai dengan cepat
  • 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 sama dengan model-model lain yaitu :
  1. Communication
  2. Planning
  3. Modeling
  4. Construction
  5. Deployment
akan tetapi tidak samahalnya 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 adalah :
  • 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 adalah :
  • 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
  • Concurrent Development Model
Concurrent Development Model kadang disebut concurrent engineering, dapat direpresentasikan dengan skema sebagai series dari kerangka aktifitas, aksi software engineering dan juga tugas. Pada model ini aktifitas kerja dilakukan secara bersamaan, setiap proses kerja memiliki beberapa pemicu kerja dari aktifitas. Pemicu dapat berasal dari awal proses kerja maupun dari pemicu yang lain karena setiap pemicu akan saling berhubungan. Misalnya proses desain akan berubah atau dihentikan sementara karena ada perubahan permintaan kebutuhan dari costumer. Gambar dari model ini dapat dilihat seperti dibawah ini.


Kekurangan dari model ini adalah :
  • Dimungkinkannya terjadi perubahan besar-besaran, maka akan membuat biaya dan waktu yang diperlukan membengkak


6 komentar:

  1. rajin banget
    wkwkkw
    banyak men

    katan-katanya g ada yang lebih mudah ya?

    BalasHapus
    Balasan
    1. Artikelnya bermanfaat kak, ini saya juga punya artikel tentang Model Proses Pada Rekayasa Perangkat Lunak, semoga bisa saling melengkapi

      Kelebihan dan Kekurangan Model Proses Pada Rekayasa Perangkat Lunak - MARKIJAR.Com

      Hapus
  2. soalnya rajin pangkal kaya :D wkwkwkwk

    sepertinya saya sudah membuat kata-kata yang mudah untuk dipahami, tapi atas masukannya trimakasih :)

    BalasHapus
  3. tks bro izin copas utk modul kuliah ya pliz

    BalasHapus
  4. terimakasih, tuisannya sangat bermanfaat

    My blog

    BalasHapus
  5. tulisan bermanfaat sekali terimakasih

    My Blog

    BalasHapus