Model – Model Pengembangan Perangkat

8Pada postingan kali ini, saya akan membahas tentang “Model – Model Pengembangan Perangkat Lunak Beserta Contoh Penerapannya”. Sebelumnya, Apa itu Pengembangan Perangkat Lunak? 

Proses Pengembangan Perangkat Lunak (Software Development Process) adalah suatu penerapan struktur pada pengembangan suatu Perangkat Lunak (Software), yang bertujuan untuk mengembangkan sistem dan memberikan panduan untuk menyukseskan proyek pengembangan sistem melalui tahapan-tahapan tertentu. Dalam prosesnya, terdapat beberapa paradigma model pengembangan sistem perangkat lunak, diantaranya :
 
1. Agile Software Development
Agile Software Development adalah sebuah grup metodologi-metodologi pengembangan software yang berbasis pada pengembangan iteratif dimana keperluan dan solusi pengembangan software berubah terus menerus.  Agile Software Development terdiri dari beberapa model pengembangan seperti SCRUM dan Extreme Programming (XP) yang cukup terkenal di kalangan para pengembang berbasis Agile. Pada Agile, kepuasan pelanggan adalah nomor 1, oleh karena itu Agile menekankan pada komunikasi yang intens dengan pelanggan.


Dokumen-dokumen design awal software pada Agile tidak selengkap metode pengembangan lainnya seperti Waterfall dan Spiral. Sejalan dengan perkembangan software di tiap iterasi pengembangan, design software nantinya akan lengkap dengan sendirinya.
Iterasi pengembangan software pada Agile biasanya maksimal 1 bulan lama pengembangannya dan waktu pengembangan diukur secara mingguan. Jika pada suatu iterasi terjadi kegagalan, design software dapat diubah tanpa memerlukan biaya dan penundaan yang signifikan. Idealnya setiap akhir iterasi, software sudah siap atau setidaknya hampir siap untuk dikirimkan ke pelanggan. Setelah akhir iterasi, tim pengembang mengevaluasi kembali seluruh proyek dan menentukan langkah ke depan.
Fitur-fitur yang diberikan oleh Agile Software Development adalah sebagai berikut:
  1. Iterasi yang cepat dan pengiriman software yang berfungsi secara reguler memastikan kepuasan pelanggan
  2. Perubahan yang telat dapat ditangani dengan mudah dan juga diterima secara terbuka
  3. Perkembangan dinilai berdasarkan implementasi software
  4. Komunikasi pelanggan dan pengguna ditekankan secara bertatap muka
  5. Setiap pertemuan dengan anggota tim dilakukan secara bertatap muka
  6. Setiap anggota tim pengembang adalah orang yang berkomitmen dan bermotivasi tinggi serta kompeten dan dapat dipercaya
Agile, dengan segudang keuntungannya tentu memiliki kekurangan juga, berikut saya jabarkan kelebihan dan kekurangan Agile yang saya temukan:

Kelebihan
  1. Meningkatkan rasio kepuasan pelanggan
  2. Bisa melakukan review pelanggan mengenai software yang dibuat lebih awal
  3. Mengurangi resiko kegagalan implementasi software dari segi non-teknis
  4. Besar kerugian baik secara material atau imaterial tidak terlalu besar jika terjadi kegagalan
Kekurangan
  1. Total lama pengembangan menjadi lebih lama
  2. Meningkatkan resiko kesalahan teknis
  3. Proses pengembangan menjadi agak kurang terorganisir
Meskipun memiliki beberapa kekurangan, Agile memiliki banyak kelebihan yang menutupi kekurangan tersebut. Beberapa perusahaan besar seperti Microsoft juga sering menggunakan metode Agile untuk mengembangkan beberapa produk mereka. Mungkin untuk para pembaca Agile Software Development bisa dijadikan salah satu pilihan untuk memilih metode yang tepat untuk mengembangkan sebuah aplikasi
Saat ini saya masih belajar menganai metode Agile, mungkin untuk pembaca yang memiliki ketertarikan di metode Agile ini bisa berdiskusi dengan kami dengan mengisi komen di artikel ini. Kedepan akan saya tulis artikel-artikel lainnya mengenai Agile seperti perbandingan Agile dengan metode lainnya atau penggunaan Agile untuk pengembangan software independen.


2. Rapid Aplication Development (RAD)
Rapid Aplication Development (RAD) adalah sebuah model proses perkembangan software sekuensial linier yang menekankan siklus perkembangan yang sangat pendek. Model RAD ini merupakan sebuah adaptasi “kecepatan tinggi” dari model sekuensial linier di mana perkembangan cepat dicapai dengan menggunakan pendekatan kontruksi berbasis komponen. Jika kebutuhan dipahami dengan baik, proses RAD memungkinkan tim pengembangan menciptakan “sistem fungsional yang utuh” dalam periode waktu yang sangat pendek (kira-kira 60 sampai 90 hari). Karena dipakai terutama pada aplikasi sistem konstruksi, pendekatan RAD melingkupi fase – fase sebagai berikut :

1. Bussiness modeling
Aliran informasi di antara fungsi – fungsi bisnis dimodelkan dengan suatu cara untuk menjawab pertanyaan – pertanyaan berikut : informasi apa yang mengendalikan proses bisnis? Informasi apa yang di munculkan? Siapa yang memunculkanya? Ke mana informasi itu pergi? Siapa yang memprosesnya?

2. Data modeling
Aliran informasi yang didefinisikan sebagai bagian dari fase bussiness modelling disaring ke dalam serangkaian objek data yang dibutuhkan untuk menopang bisnis tersebut. Karakteristik (disebut atribut) masing–masing objek diidentifikasi dan hubungan antara objek – objek tersebut didefinisikan.

3. Prosess modeling
Aliran informasi yang didefinisikan di dalam fase data modeling ditransformasikan untuk mencapai aliran informasi yang perlu bagi implementasi sebuah fungsi bisnis. Gambaran pemrosesan diciptakan untuk menambah, memodifikasi, menghapus, atau mendapatkan kembali sebuah objek data.

4. Aplication generation
RAD mengasumsikan pemakaian teknik generasi ke empat. Selain menciptakan perangkat lunak dengan menggunakan bahasa pemrograman generasi ketiga yang konvensional, RAD lebih banyak memproses kerja untuk memkai lagi komponen program yang ada ( pada saat memungkinkan) atau menciptakan komponen yang bisa dipakai lagi (bila perlu). Pada sem
ua kasus, alat – alat bantu otomatis dipakai untuk memfasilitasi konstruksi perangkat lunak.

5. Testing and turnover
Karena proses RAD menekankan pada pemakaian kembali, banyak komponen program telah diuji. Hal ini mengurangi keseluruhan waktu pengujian. Tetapi komponen baru harus di uji dan semua interface harus dilatih secara penuh.
rada
Keunggulan model RAD adalah :
  1. Setiap fungsi mayor dapat dimodulkan dalam waktu tertentu kurang dari 3 bulan dan dapat dibicarakan oleh tim RAD yang terpisah dan kemudian diintegrasikan sehingga waktunya lebih efisien
  2. RAD mengikuti tahap pengembangan sistem seperti umumnya, tetapi mempunyai kemampuan untuk menggunakan kembali komponen yang ada sehingga pengembang tidak perlu membuat dari awal lagi dan waktu yang lebih singkat
Kekurangan model RAD adalah :
  1. Bagi proyek yang besar tetapi berskala, RAD memerlukan sumber daya manusia yang memadai untuk menciptakan jumlah tim RAD yang baik.
  2. RAD menuntut pengembangan dan pelanggan memiliki komitmen di dalam aktivitas rapid-fire yang diperlukan untuk melengkapi sebuah sistem, di dalam kerangka waktu yang sangat diperpendek. Jika komitmen tersebut tidak ada, proyek RAD akan gagal.

3. Dynamic Systems Development Method (DSDM)

Pada Dynamic System Development Method menyajikan kerangka kerja (framework) untuk membangun dan memelihara sistem dalam waktu yang terbatas melalui penggunaan prototyping yang incremental dalam lingkungan yang terkondisikan. Metode ini akan membangun software dengan cepat: 80% dari proyek diserahkan dalam 20% dari waktu total untuk menyerahkan proyek secara utuh.

Dynamic System Development Method dapat dikombinasikan dengan Extreme Programmning menghasilkan kombinasi model proses yang mengikuti Dynamic System Development Method dan praktek yang sejalan dengan Extreme Programmning.

Dynamic System Development Method memiliki beberapa aaktifitas seperti :

- Feasibility study : siapkan requirement, dan batasan, lalu uji apakah sesuai gunakan proses DSDM.

- Business Study: susun kebutuhan fungsional dan informasi, tentukan arsitektur aplikasi dan identifikasi kebutuhan pemeliharaan untuk aplikasi.

- Functional model iteration : hasilkan incremental prototype yang perlihatkan fungsi software ke klien untuk dapatkan kebutuhan lebih jelas dan konfirmasi.

- Design and Build Iteration : cek ulang prototype yang dibangun untuk pastikan bahwa prototype dibangun dengan cara yang memungkinkan fungsi tersebut benar-benar bekerja.

- Implementation: menempatkan software pada lingkungan sebenar sekalipun belum lengkap, atau masih ada perubahan.


4. Extreme Programming Methodology
Model proses ini diciptakan dan dikembangkan oleh Kent Beck. Model ini adalah model proses yang terbaru dalam dunia rekayasa perangkat lunak dan mencoba menjawab kesulitan dalam pengembangan software yang rumit dan sulit dalam implementasi. Menurut Kent Beck Extreme Programming Methodology adalah : “A lightweight, efficient, low-risk, flexible,predictable, scientific and fun way to develop software”. Suatu model yang menekankan pada:
► keterlibatan user secara langsung
► pengujian
► pay-as-you-go design
Sebagai contoh :
d616a-extremeprogramming

Adapun empat nilai penting dari Extreme Programming Methodology :
  1. Communication/Komunikasi : komunikasi antara developer dan klien sering menjadi masalah. Karena itu komunikasi dalam Extreme Programming Methodology dibangun dengan melakukan pemrograman berpasangan (pair programming). Developer didampingi oleh pihak klien dalam melakukan coding dan unit testing sehingga klien bisa terlibat langsung dalam pemrograman sambil berkomunikasi dengan developer. Selain itu perkiraan beban tugas jugadiperhitungkan.
  2. Simplicity/ sederhana: Menekankan pada kesederhanaan dalam pengkodean: “What is the simplest thing that could possibly work?” Lebih baik melakukan hal yang sederhana dan mengembangkannya besok jika diperlukan. Komunikasi yang lebih banyak mempermudah, dan rancangan yang sederhana mengurangi penjelasan.
  3. Feedback / Masukan/Tanggapan: Setiap feedback ditanggapi dengan melakukan tes, unit test atau system integration dan jangan menunda karena biaya akan membengkak (uang, tenaga, waktu).
  4. Courage / Berani: Banyak ide baru dan berani mencobanya, berani mengerjakan kembali dan setiap kali kesalahan ditemukan, langsung diperbaiki.

5. Scrum Methodology

Pertama kali diperkenalkan oleh Jeff Sutherland tahun awal tahun 1990an, dan dikembangkan selanjutnya dilakukan oleh Schwaber dan Beedle. Pada dasarnya Scrum merupakan salah satu komponen dari metodologi pengembangan Agile mengenai pertemuan harian untuk membahas kemajuan dan XP adalah menekankan metodologi yang berbeda sepasang ujian dulu pemrograman dan pembangunan.

Scrum menguraikan proses untuk mengidentifikasi dan katalogisasi pekerjaan yang perlu dilakukan, memprioritaskan yang bekerja dengan berkomunikasi dengan pelanggan atau wakil pelanggan, dan pelaksanaan yang bekerja menggunakan rilis iterative dan memiliki tujuan utama untuk mendapatkan perkiraan berapa lama akan pembangunan. XP lebih lanjut tentang pengembang membantu menyelesaikan pekerjaan secepat dan maintainably mungkin

Scrum memiliki prinsip yaitu :

- Ukuran tim yang kecil melancarkan komunikasi, mengurangi biaya, dan memberdayakan satu sama lain.

 - Proses dapat beradaptasi terhadap perubahan teknis dan bisnis.

- Proses menghasilkan beberapa software increment.

 - Pembangunan dan orang yang membangun dibagi dalam tim yang kecil.

- Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun.

 - Proses scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan.

Scrum memiliki aktifitas yang meliputi :

1. Backlog Backlog adalah daftar kebutuhan yang jadi prioritas klien, dan daftar yang dibuat dapat bertambah.

2. Sprints Aktifitas Sprints merupakanunit pekerjaan yang diperlukan untuk memenuhi kebutuhan yang ditetapkan dalam backlog sesuai dengan waktu yang ditetapkan dalam time-box (biasanya 30 hari). Selama proses ini berlangsung backlog tidak ada penambahan.

3. Scrum Meetings Aktifitas Scrum Meeting merupakan pertemuan yang rutin dilakukan perhari untuk evaluasi apa yang dikerjakan, hambatan yang ada, dan target penyelesaian untuk bahan meeting selanjutnya.

4. Demo Aktifitas Demo adalah penyerahan software increment ke klien didemonstrasikan dan dievaluasi oleh klien.




0 Response to "Model – Model Pengembangan Perangkat"

Posting Komentar