Penjelasan Model-Model Proses 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. Model Sekuensial Linier (Waterfall)

Waterfall

Model Sekuensial Linier atau Waterfall adalah sebuah pendekatan kepada perkembangan perangkat lunak yang sistematik dan sekuensial yang mulai pada tingkat dan kemajuan sistem pada seluruh analisis, desain, kode, pengujian dan pemeliharaan, .

Tahapan – tahapan dalam pengembangan  model sekuensial linear / Waterfall sebagai berikut:

1.  Rekayasa dan Pemodelan Sistem / Informasi
Karena perangkat lunak selalu merupakan bagian dari sebuah sistem (bisnis) yang lebih besar, kerja dimulai dengan membangun syarat dari semua elemen sistem dan mengalokasikan beberapa subset dari kebutuhan ke perangkat lunak tersebut. Pandangan sistem ini penting ketika perangkat lunak harus berhubungan dengan elemen-elemen yang lain seperti perangkat lunak, manusia dan database.

2.  Analisis kebutuhan perangkat lunak
Proses pengumpulan kebutuhan difokuskan khususnya untuk perangkat lunak,perekayasa perangkat lunak (Analis) harus memahami domain permasalahan (problem domain), tingkah laku, unjuk kerja dan antarmuka (interface) yang diperlukan. Kebutuhan baik untuk sistem maupun perangkat lunak didokumentasikan dan dilihat lagi dengan pelanggan.

3.  Desain
Desain perangkat lunak sebenarnya adalah proses multi langkah yang berfokus pada empat atribut sebuah program yang berbeda (struktur data, arsitektur perangkat lunak, representasi interface, dan detail (algoritma) prosedural. Proses desain menerjemahkan syarat/kebutuhan ke dalam sebuah representasi perangkat lunak yang dapat diperkirakan demi kualitas sebelum dimulai pemunculan kode (coding). Sebagaimana analisis, desain ini juga didokumentasikan.

4.  Generasi kode
Desain harus diterjemahkan ke dalam bentuk mesin yang bisa dibaca. Langkah pembuatan kode meliputi pekerjaan dalam langkah ini, dan dapat dilakukan secara mekanis.

5.  Pengujian (Tes)
Sekali kode dibuat, pengujian program dimulai. Proses pengujian berfokus pada logika internal perangkat lunak, memastikan bahwa semua pernyataan seudah diuji, dan pada eksternal fungsional, yaitu mengarahkan pengujian untuk menemukan kesalahan-kesalahan dan memastikan bahwa input yang dibatasi akan memberikan hasil aktual yang sesuai dengan hasil yang dibutuhkan.

6.  Pemeliharaan
Perangkat luna akan mengalami perubahan setelah disampaikan kepada pelanggan (perkecualian yang mungkin adalah perangkat lunak yang dilekatkan). Perubahan akan terjadi karena kesalahan-kesalahan karena perangkat lunak harus disesuaikan untuk mengakomodasi perubahan-perubahan di dalam lingkungan eksternalnya atau karena pelanggan membutuhkan perkembangan fungsional atau unjuk kerja. Pemeliharaan perangkat lunak mengaplikasikan lagi setiap fase program sebelumnya dan tidak membuat yang baru lagi.

Model Waterfall adalah model yang paling lama dan banyak secara luas digunakan sebagai paradigma untuk rekayasa software.

Kelebihan :
1. Sederhana.
2. Langkah-secara terurut.
3. Fokus.
4. Mudah diikuti.

Kekurangan:
1. Tidak flesible sebab proyek yang nyata jarang mengikuti aliran yang terurut untuk menyusun Model.
2. Sangat sulit untuk customer terhadap mengahadapi semua kebutuhan yang eksplisit.
3. Customer harus memiliki kesabaran untuk menunggu keabsahan produk software dalam fase
4. Yang terlambat.(sampai program dimplementasikan)
5. Customer tercakup dalam awal proyek.
6. Pembuat sering ditunda secara tidak berhubungan diantara fase.

2. Model Prototipe

Prototipe

Metode Prototype merupakan suatu paradigma baru dalam metode pengembangan perangkat lunak dimana metode ini tidak hanya sekedar evolusi dalam dunia pengembangan perangkat lunak, tetapi juga merevolusi metode pengembangan perangkat lunak yang lama yaitu sistem sekuensial yang biasa dikenal dengan nama SDLC atau waterfall development model.

Secara ideal prototipe berfungsi sebagai sebuah mekanisme untuk mengidentifikasi kebutuhan perangkat lunak. Prototipe bisa menjadi paradigma yang efektif bagi rekayasa perangkat lunak. Kuncinya adalah mendefinisikan aturan-aturan main pada saat awal, yaitu pelanggan dan pengembang keduanya harus setuju bahwa prototype dibangun untuk berfungsi sebagai mekanisme pendefinisian kebutuhan. Prototype kemudian disingkirkan dan perangkat lunak actual direkayasa dengan tertuju kepada kualitas dan kemampuan pemeliharaan.

Berikut adalah Tahapan – tahapan Proses Pengembangan dalam Model Prototype, yaitu :

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 keinginan pelanggan atau belum. Jika sudah sesuai, maka langkah selanjutnya akan diambil. Namun jika tidak, prototyping direvisi dengan mengulang langkah-langkah sebelumnya. 

4. Mengkodekan sistem 
Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan ke dalam bahasa pemrograman yang sesuai. 

5. Menguji sistem 
Setelah sistem sudah menjadi suatu perangkat lunak yang siap pakai, kemudian dilakukan proses Pengujian. Pengujian ini dilakukan dengan White Box, Black Box, Basis Path, pengujian arsitektur, dll. 

6. Evaluasi Sistem 
Pelanggan mengevaluasi apakah perangkat lunak yang sudah jadi sudah sesuai dengan yang diharapkan . Jika ya, maka proses akan dilanjutkan ke tahap selanjutnya, namun jika perangkat lunak yang sudah jadi tidak/belum sesuai dengan apa yang diharapkan, maka tahapan sebelumnya akan diulang. 

7. Menggunakan sistem 
Perangkat lunak yang telah diuji dan diterima pelanggan siap untuk digunakan.

Model Prototyping ini sangat sesuai diterapkan untuk kondisi yang beresiko tinggi di mana masalah-masalah tidak terstruktur dengan baik, terdapat fluktuasi kebutuhan pemakai yang berubah dari waktu ke waktu atau yang tidak terduga, bila interaksi dengan pemakai menjadi syarat mutlak dan waktu yang tersedia sangat terbatas sehingga butuh penyelesaian yang segera. Model ini juga dapat berjalan dengan maksimal pada situasi di mana sistem yang diharapkan adalah yang inovatif dan mutakhir sementara tahap penggunaan sistemnya relatif singkat.

Berikut merupakan Jenis – jenis dari Prototyping :
1. Feasibility prototyping
Digunakan untuk menguji kelayakan dari teknologi yang akan digunakan untuk system informasi yang akan disusun.

2. Requirement prototyping
Digunakan untuk mengetahui kebutuhan aktivitas bisnis user.

3. Desain Prototyping
Digunakan untuk mendorong perancangan sistem informasi yang akan digunakan.

4. Implementation prototyping
Merupakan lanjutan dari rancangan prototype, prototype ini langsung disusun sebagai suatu sistem informasi yang akan digunakan.

Kelebihan:
1. Mudah dan cepat identifikasi kebutuhan customer           
2. Customer mengecek protipe di awal tingkatan dan menyediakan input dan umpan baliknya.
3. Persetujuan yang baik dengan mengikuti kasus:
    a. Customer tidak bisa menyediakn kebutuhan yang jelas.
    b. Sangat rumit interaksi sistem dari pengguna
    c. Menggunakan teknologi baru, hardware dan algoritma
    d. Membuat domain baru sistem aplikasi                    

Kelemahan : 
1. Prototipe bisa melayani sebagai “sistem pertama”.Brooks merekomendasikan untuk membuangnya.
2. Developer biasa ikut membuat produk didasarkan pada prototipe.
3. Developer sering membuat perjanjian implementasi dalam memerintahkan untuk dapat prototipe bekerja secara cepat.
4. Customer boleh terkejut bahwaa protipe adalah tidak sebuah produk, yang dibuat dengannya.

3. Model RAD

RAD

Rapid Application Development (RAD) adalah sebuah model proses perkembangan perangkat lunak sekuensial linier yang menekankan siklus perkembangan yang sangat pendek. Model RAD ini merupakan sebuah adaptasi “kecepatan tinggi” dari model sekuensial linier dimana perkembangan cepat dicapai dengan menggunakan pendekatan konstruksi 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-90 hari).

Pendekatan RAD melingkupi fase-fase sebagai berikut :
1. Pemodelan Bisnis
Aliran informasi diantara fungsi-fungsi bisnis dimodelkan dengan suatu cara untuk menjawab pertanyaan-pertanyaan berikut : Informasi apa yang mengendalikan proses bisnis? Informasi apa yang dimunculkan? Siapa yang memunculkannya? Kemana informasi itu pergi? Siapa yang memprosesnya?

2. Pemodelan Data.
Aliran informasi yang didefinisikan sebagai bagian dari fase business modelling disaring kedalam serangkaian objek data yang dibutuhkan untuk mendukung bisnis tersebut.

3. Pemodelan Proses
Aliran informasi yang didefinisikan di dalam fase data modeling ditransfirmasikan 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. Pembentukan Aplikasi
RAD mengasumsikan pemakaian teknik generasi keempat. Selain menciptakan perangkat lunak dengan menggunakan bahasa pemrograman generasi ketiga yang konvensional, RAD lebih banyak memproses kerja untuk memakai lagi komponen program yang ada atau menciptakan komponen yang bisa dipakai lagi.

Pengujian dan Turnover. Karena proses RAD menekankan pada pemakaian kembali, banyak komponen program telah diuji. Hal ini mengurangi keseluruhan waktu pengujian. Tetapi komponen baru harus diuji dan semua interface harus dilatih secara penuh.

Kelebihan :
1. Waktu pembuatan yang pendek.
2.  Pengurangan biaya supaya software digunakan kemabali dan konstruksi dasar komponen.

Kelemahan:
1. Untuk yang besar, tetapi proyek yang berskala, RAD butuh sumber yang cukup.
2. RAD butuh developer dan pelanggan yang diijinkan untuk menyusun.
3. Pembuatan software adalah spesifik proyek, dan tidak boleh dimodulkan secara baik.
4. Kualitasnya tergantung pada kualitas dari komponen yang ada.
5. Proyek yang tidak akurat dengan resiko teknik yang tinggi dan teknologi

4. Model Incremental

Incremental

Merupakan kombinasi linear sequential model (diaplikasikan secara berulang) dan filosofi pengulangan dari prototyping model. Setiap tahapan linear sequential menghasilkan  deliverable increment bagi perangkat lunak, dimana increment pertamanya merupakan sebuah produk inti yang mewakili kebutuhan dasar sistem. Produk inti ini nantinya dikembangkan menjadi increment-increment  selanjutnya setelah digunakan dan dievaluasi sampai didapat produk yang lengkap dan memenuhi kebutuhan pemakai.

Kelebihan :
1. Personil bekerja optimal.
2. Mampu mengakomodasi perubahan secara fleksibel, dengan waktu yang relatif singkat dan tidak dibutuhkan anggota/tim kerja yang banyak untuk menjalankannya.
3. Pihak konsumen dapat langsung menggunakan dahulu bagian-bagian yang telah selesai dibangun. Contohnya pemasukan data karyawan.
4. Mengurangi trauma karena perubahan sistem. Klien dibiasakan perlahan-lahan menggunakan produknya setiap bagian demi bagian.
5.  Memaksimalkan pengembalian modal investasi konsumen.

Kekurangan :
1. Tidak cocok untuk proyek berukuran besar (lebih dari 200.000 baris coding).
2. Sulit untuk memetakan kebutuhan pemakai ke dalam rencana spesifikasi tiap-tiap hasil dari increament.

5. Model Spiral

Spiral

Merupakan model proses perangkat lunak yang memadukan wujud pengulangan dari model prototyping dengan aspek pengendalian dan sistematika dari linear sequential model. Dalam model ini perangkat lunak dikembangkan dalam suatu seri  incremental release. Spiral model dibagi menjadi 6 aktivitas kerangka kerja sebagai berikut:

1. Komunikasi dengan pemakai
2. Perencanaan
3. Analsis resiko
4. Rekayasa
5. Konstruksi dan pelepasan
6. Evaluasi

Tahap-tahap model ini dapat dijelaskan secara ringkas sebagai berikut :
1. Tahap Liason
Pada tahap ini dibangun komunikasi yang baik dengan calon pengguna/pemakai.

2. Tahap Planning (perencanaan)
Pada tahap ini ditentukan sumber-sumber informasi, batas waktu dan informasi-informasi yang dapat menjelaskan proyek.

3. Tahap Analisis
Resiko:mendefinisikan resiko, menentukan apa saja yang menjadi resiko baik teknis maupun manajemen.

4. Tahap Rekayasa (engineering)
Pembuatan prototipe.

5. Tahap Konstruksi dan Pelepasan (release)
Pada tahap ini dilakukan pembangunan perangkat lunak yang dimaksud, diuji, diinstal dan diberikan sokongan-sokongan tambahan untuk keberhasilan proyek.

6. Tahap Evaluasi
Pelanggan/pemakai/pengguna biasanya memberikan masukan berdasarkan hasil yang didapat dari tahap engineering dan instalasi.

Kelebihan :
Model ini sangat mempertimbangkan resiko kemungkinan munculnya kesalahan sehingga sangat dapat diandalkan untuk pengembangan perangkat lunak skala besar. Pendekatan model ini dilakukan melalui tahapan-tahapan yang sangat baik dengan menggabungkan model waterfall ditambah dengan pengulangan-pengulangan sehingga lebih realistis untuk mencerminkan keadaan sebenarnya. Baik pengembang maupun pemakai dapat cepat mengetahui letak kekurangan dan kesalahan dari sistem karena proses-prosesnya dapat diamati dengan baik.

Kekurangan :
Waktu yang dibutuhkan untuk mengembangkan perangkat lunak cukup panjang demikian juga biaya yang besar. Selain itu, sangat tergantung kepada tenaga ahli yang dapat memperkirakan resiko. Terdapat pula kesulitan untuk mengontrol proses. Sampai saat ini, karena masih relatif baru, belum ada bukti apakah metode ini cukup handal untuk diterapkan.

Referensi :
https://murtri.wordpress.com/2014/08/25/model-model-pengembangan-perangkat-lunak-beserta-contoh-penerapannya/

Komentar

Postingan Populer

Kebutuhan Fungsional Dan Non Fungsional

Metode Prototype, Contoh Penggunaan dan Cara Menggunakannya

Metode Extreme Programming, Contoh Penggunaan dan Cara Menggunakannya

Pengujian Perangkat Lunak

Metode RAD, Contoh Penggunaan dan Cara Menggunakannya

Desain Perangkat Lunak

Metode Waterfall, Contoh Penggunaan dan Cara Mengunakannya

Jenis-jenis Perangkat Lunak Atau Software

Elisitasi Kebutuhan