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

Model ini model yang paling sering dipakai dan paling tua. Karena model ini mengusulkan sebuah pendekatan Perangkat Lunak(Software) secara sistematik atau sekuensial yang berurut mulai dari seluruh tahapan analisis,desain,kode,pengujian, dan pemeliharaan.

a.       Tahapan pengembangan metode waterfall development model :
-          Analisis kebutuhan perangkat lunak
Pada proses ini, dilakukan penganalisaan pengumpulan kebutuhan system yang meliputi domain informasi,fungsi yang digunaka untuk kerja secara antarmuka.
-          Desain
Di proses Desain, dilakukan penerjemahan syarat kebutuhan sebuah. perancangan perangkat lunak yang dapat diperkirakan sebelum dibuatnya proses pengkodean (coding). Proses ini berfokus pada  struktur data, arsitektur perangkat lunak, representasi interface, dan detail algoritma procedural.
-          Pengkodean
Menterjemahkan desain kedalam bentuk yang dimengeti oleh mesin melalui Bahasa pemrograman.
-          Pengujian
Memeriksa atau menguji segala kemungkinan yang akan terjadi. Agar sesuai dengan hasil yang diinginkan.
-          Pemeliharaan
Proses Pemeliharaan erupakan bagian paling akhir dari siklus pengembangan dan dilakukan setelah perangkat lunak dipergunakan. Kegiatan yang dilakukan pada proses pemeliharaan antara lain :
·   Corrective Maintenance : yaitu mengoreksi apabila terdapat kesalahan pada perangkat lunak, yang baru terdeteksi pada saat perangkat lunak dipergunakan.
·   Adaptive Maintenance : yaitu dilakukannya penyesuaian/perubahan sesuai dengan lingkungan yang baru, misalnya hardware, periperal, sistem operasi baru, atau sebagai tuntutan atas perkembangan sistem komputer, misalnya penambahan driver, dll.
·   Perfektive Maintenance : Bila perangkat lunak sukses dipergunakan oleh pemakai. Pemeliharaan ditujukan untuk menambah kemampuannya seperti memberikan fungsi-fungsi tambahan, peningkatan kinerja dan sebagainya.
b.      Kelebihan dan Kekurangan Waterfall Development Model
Kelebihan :
o  Tahapan proses pengembangannya tetap (pasti), mudah diaplikasikan, dan prosesnya teratur.
o  Cocok digunakan untuk produk software/program yang sudah jelas kebutuhannya di awal, sehingga minim kesalahannya.
o  Software yang dikembangkan dengan metode ini biasanya menghasilkan kualitas yang baik.
o  Documen pengembangan sistem sangat terorganisir, karena setiap fase harus terselesaikan dengan lengkap sebelum melangkah ke fase berikutnya.
Kekurangan :
o     Proyek yang sebenarnya jarang mengikuti alur sekuensial seperti diusulkan, sehingga perubahan yang terjadi dapat menyebabkan hasil yang sudah didapatkan tim pengembang harus diubah kembali/iterasi sering menyebabkan masalah baru.
o     Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel, karena komitmen harus dilakukan pada tahap awal proses.
o     Sulit untuk mengalami perubahan kebutuhan yang diinginkan oleh customer/pelanggan.
o     Pelanggan harus sabar untuk menanti produk selesai, karena dikerjakan tahap per tahap, dan proses pengerjaanya akan berlanjut ke setiap tahapan bila tahap sebelumnya sudah benar-benar selesai.
o     Perubahan ditengah-tengah pengerjaan produk akan membuat bingung tim pengembang yang sedang membuat produk.
o     Adanya waktu kosong (menganggur) bagi pengembang, karena harus menunggu anggota tim proyek lainnya menuntaskan pekerjaannya.
Penerapan Model : 

  • Sistem program untuk pendaftaran dibuat menggunakan bahasa pemrograman PHP, dengan Sistem Database yang dibuat menggunakan MySQL, dan diterapkan (diaplikasikan) pada PC (personal computer) dengan sistem operasi berbasis Microsoft Windows, Linux, dan sebagainya.
  • Setelah program selesai dibuat dan kemudian dipergunakan oleh user, programmer akan memelihara serta menambah atau menyesuaikan program dengan kebutuhan serta kondisi user.
2.      Rapid Application Development Model(RAD)

Sebuah model proses perkembanganperangkat lunak sekuensial linier yang menekankan siklus perkembangan yang sangat pendek (kira-kira 60 sampai 90 hari). Model RAD ini merupakan sebuah adaptasi “kecepatan tinggi” dari model sekuensial linier dimana perkembangan cepat dicapai dengan menggunakan pendekatan konstruksi berbasis komponen.

a.       Tahapan pengembangan metode Rapid Application Model(RAD) :
-             Bussiness Modelling
Fase ini mencari informasi atau jawaban yang pertanyaanya sebagai berikut :
·Informasi apa yang menegndalikan proses bisnis?
·Informasi apa yang dimunculkan?
·Di mana informasi digunakan ?
·Siapa yang memprosenya ?
-       Data Modelling
Aliran informasi yang didefinisikan sebagai bagian dari fase bussiness modeling disaring ke dalam serangkaian objek data yang dibutuhkan untuk menopang bisnis tersebut. Karakteristik (atribut) masing-masing objek diidentifikasi dan hubungan antar objek-objek tersebut didefinisikan.
-          Proses Modelling
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.
-          Application Generation
Selain menggunakan bahasa pemrograman generasi ketiga, RAD juga memakai komponen program yang telah ada atau menciptakan komponen yang bisa dipakai lagi. Ala-alat bantu bisa dipakai untuk memfasilitasi konstruksi perangkat lunak.
-          Testing 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.
b.      Kelebihan dan Kekurangan Rapid Application Development :
Kelebihan :
·            Lebih efektif dari Pengembangan Model waterfall/sequential linear dalam menghasilkan sistem yang memenuhi kebutuhan langsung dari pelanggan.
·            Cocok untuk proyek yang memerlukan waktu yang singkat.
·            Model RAD mengikuti tahap pengembangan sistem seperti pada umumnya, tetapi mempunyai kemampuan untuk menggunakan kembali komponen yang ada sehingga pengembang tidak perlu membuatnya dari awal lagi sehingga waktu pengembangan menjadi lebih singkat dan efisien.
Kekurangan :
·            Model 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.
·            Tidak semua aplikasi sesuai untuk RAD, bila system tidak dapat dimodulkan dengan teratur, pembangunan komponen penting pada RAD akan menjadi sangat bermasalah.
·            RAD tidak cocok digunakan untuk sistem yang mempunyai resiko teknik yang tinggi.
·            Membutuhkan Tenaga kerja yang banyak untuk menyelesaikan sebuah proyek dalam skala besar.
·            Jika ada perubahan di tengah-tengah pengerjaan maka harus membuat kontrak baru antara pengembang dan pelanggan.

3.      V-Model

Model ini merupakan perluasan dari model waterfall. Disebut sebagai perluasan karena tahap-tahapnya mirip dengan yang yang dalam model waterfall. Jika dalam model waterfall proses dijalankan secara linier, maka dalam model V proses dalikukan bercabang dalam model V ini digambarkan hubungan antara tahap pengembangan software dengan tahap pengujiannya.
Bisa dikatakan 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.
a.       Tahapan Pengembangan V Model :
-          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.
-          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.
-          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.
-          Modul 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.
-          Coding
Dalam tahap ini dilakukan pemrograman terhadap setiap modul yang sudah dibentuk.
b.      Kelebihan dan Kekurangan V-Model :
Kelebihan :
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.
Kekurangan :
      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.
Penerapan Mode : 

4.      Incremental Model

Model Incremental merupakan hasil kombinasi elemen-elemen dari model waterfall yang diaplikasikan secara berulang, atau bisa disebut gabungan dari Model linear sekuensial (waterfall) dengan Model Prototype. Elemen-elemen tersebut dikerjakan hingga menghasilkan produk dengan spesifikasi tertentu kemudian proses dimulai dari awal kembali hingga muncul hasil yang spesifikasinya lebih lengkap dari sebelumnya dan tentunya memenuhi kebutuhan pemakai.
a.       Tahapan Pengembangan Incremental Model :
Perangkat lunak pengolah kata yang dikembangkan dengan menggunakan paradigma pertambahan akan menyampaikan manajemen file, editing, serta fungsi penghasilan dokumen pada pertambahan pertama, dan selanjutnya. Pertambahan pertama dapat disebut sebagai produk inti (core product).  Dan pada pertambahan selanjutnya, produk inti akan dikembangkan terus hingga menghasilkan produk jadi yang siap untuk digunakan/dipasarkan.
b.      Kelebihan dan Kekurangan Incremental Model :
Kelebihan :
·         Personil bekerja optimal.
·         mampu mengakomodasi perubahan secara fleksibel, dengan waktu yang relatif singkat dan tidak dibutuhkan anggota/tim kerja yang banyak untuk menjalankannya.
·         Pihak konsumen dapat langsung menggunakan dahulu bagian-bagian yang telah selesai dibangun. Contohnya pemasukan data karyawan.
·         Memaksimalkan pengembalian modal investasi konsumen.
Kekurangan :
·         Tidak cocok untuk proyek berukuran besar (lebih dari 200.000 baris coding).
·         Sulit untuk memetakan kebutuhan pemakai ke dalam rencana spesifikasi tiap-tiap hasil dari increament.
Penerapan Model : 
      Perangkat lunak pengolah kata yang dikembangkan dengan menggunakan paradigma pertambahan akan menyampaikan manajemen file, editing, serta fungsi penghasilan dokumen pada pertambahan pertama, dan selanjutnya. Pertambahan pertama dapat disebut sebagai produk inti (core product).  Dan pada pertambahan selanjutnya, produk inti akan dikembangkan terus hingga menghasilkan produk jadi yang siap untuk digunakan/dipasarkan.
5.      Spiral Model

 Spiral model adalah model proses yang pendekatannya bersifat realistis pada software besar karena proses dari awal sampai proses pengiriman dan perbaikan dapat dipahami dnegan baik oleh clieent dan developer. Model ini mempunyai rangkaian kerja yang iterasi (peningkatan pada model) awal yang berbentuk prototype dan kemudian iterasi selanjutnya akan menjadi perkembangan dari model sebelumnya. Model ini dapat terus digunakan meskipun software sudah dikirimkan karena proses (siklus)dapat berputar lagi jika ada perubahan pada software sampai tidak ada permintaan perupbahan pada software oleh client.
a.       Tahapan Proses Spiral Model :
·      Tahap Liason:pada tahap ini dibangun komunikasi yang baik dengan calon pengguna/pemakai.
·      Tahap Planning (perencanaan):pada tahap ini ditentukan sumber-sumber informasi, batas waktu dan informasi-informasi yang dapat menjelaskan proyek.
·      Tahap Analisis Resiko:mendefinisikan resiko, menentukan apa saja yang menjadi resiko baik teknis maupun manajemen.
·      Tahap Rekayasa (engineering):pembuatan prototipe.
·      Tahap Konstruksi dan Pelepasan (release):pada tahap ini dilakukan pembangunan perangkat lunak yang dimaksud, diuji, diinstal dan diberikan sokongan-sokongan tambahan untuk keberhasilan proyek.
·      Tahap Evaluasi:Pelanggan/pemakai/pengguna biasanya memberikan masukan berdasarkan hasil yang didapat dari tahap engineering dan instalasi.
c.       Kelebihan dan Kekurangan Spiral Model :
-          Kelebihan :
1.      Setiap tahap pengerjaan dibuat prototyping sehingga kekurangan dan apa yang diharapkan oleh client dapat diperjelas dan juga dapat menjadi acuan untuk client dalam mencari kekurangan kebutuhan.
2.      Lebih cocok untuk pengembangan sistem dan perangkat lunak skala besar.
3.      Dapat disesuaikan agar perangkat lunak bisa dipakai selama hidup perangkat lunak komputer. 
4.      Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadap resiko setiap tingkat evolusi karena perangkat lunak terus bekerja selama proses.
5.      Menggunakan prototipe sebagai mekanisme pengurangan resiko dan pada setiap keadaan di dalam evolusi produk.
6.      Tetap mengikuti langkah-langkah dalam siklus kehidupan klasik dan memasukkannya ke dalam kerangka kerja iteratif.
-          Kekurangan :

1.      Banyak konsumen (Client) tidak percaya bahwa pendekatan secara evolusioner dapat dikontrol oleh kedua pihak. Model spiral mempunyai resiko yang harus dipertimbangkan ulang oleh konsumen dan developer.
2.      Memerlukan tenaga ahli untuk memperkirakan resiko, dan harus mengandalkannya supaya sukses.
3.      Belum terbukti apakah metode ini cukup efisien karena usianya yang relatif baru.
4.      Memerlukan penaksiran resiko yang masuk akal dan akan menjadi masalah yang serius jika resiko mayor tidak ditemukan dan diatur.
5.      Butuh waktu lama untuk menerapkan paradigma ini menuju kepastian yang absolute.

6              6.      Prototype Model


Pendekatan prototyping model digunakan jika pemakai hanya mendefinisikan objektif umum dari perangkat lunak tanpa merinci kebutuhan input, pemrosesan dan outputnya, sementara pengembang tidak begitu yakin akan efisiensi algoritma, adaptasi sistem operasi, atau bentuk interaksi manusia-mesin yang harus diambil. 
a.       Tahapan Proses Prototype Model :
·      Pengumpulan kebutuhan
Pelanggan dan pengembang bersama-sama mendefinisikan format seluruh perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar sistem yang akan dibuat.
·                     Membangun prototyping
Membangun prototyping dengan membuat perancangan sementara yang berfokus pada penyajian kepada pelanggan (misalnya dengan membuat input dan format output).
·                     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.
·                     Mengkodekan sistem
Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan ke dalam bahasa pemrograman yang sesuai.
·                     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.
·                     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.
·                     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.
b.      Kelebihan dan Kekurangan Prototype Model :
-          Kelebihan :
1.   Pelanggan berpartisipasi aktif dalam pengembangan sistem, sehingga hasil produk pengembangan akan semakin mudah disesuaikan dengan keinginan dan kebutuhan pelanggan.
2.   Penentuan kebutuhan lebih mudah diwujudkan.
3.   Mempersingkat waktu pengembangan produk perangkat lunak.
4.   Adanya komunikasi yang baik antara pengembang dan pelanggan.
5.   Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan.
6.   Lebih menghemat waktu dalam pengembangan sistem.
7.   Penerapan menjadi lebih mudah karena pelanggan mengetahui apa yang diharapkannya.

-          Kekurangan :
1.   Proses analisis dan perancangan terlalu singkat.
2.   Biasanya kurang fleksibel dalam mengahadapi perubahan.
3.   Walaupun pemakai melihat berbagai perbaikan dari setiap versi prototype, tetapi pemakai mungkin tidak menyadari bahwa versi tersebut dibuat tanpa memperhatikan kualitas dan pemeliharaan jangka panjang.
4.   Pengembang kadang-kadang membuat kompromi implementasi dengan menggunakan sistem operasi yang tidak relevan dan algoritma yang tidak efisien.
Penerapan Model : 
    Sebuah rumah sakit ingin membuat aplikasi sistem database untuk pendataan pasiennya. Seorang atau sekelompok programmer akan melakukan identifikasi mengenai apa saja yang dibutuhkan oleh pelanggan, dan bagaimana model kerja program tersebut. Kemudian dilakukan rancangan program yang diujikan kepada pelanggan. Hasil/penilaian dari pelanggan dievaluasi, dan analisis kebutuhan pemakai kembali di lakukan.
7.         Concurent Develompent Model

            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 customer.
a.       Tahapan Proses Concurent Develompent Model
-          Sistem dan komponen aktivitas terjadi secara simultan dan dapat diperagakan menggunakan pendekatan yang berorientasi status sebelumnya.
-          Kekhasan aplikasi Client/Server adalah diterapkan dengan banyak komponen, masing-masing dapat dirancang dan direalisasi secara bersamaan.
b.      Kelebihan dan Kekurangan Concurent Development Model :
-          Kelebihan :
Hasil yang di dapat akan menghasilkan suatu sistem yang sangat baik karena terdapat perancangan yang terjadi secara besar dan terencana secara matang.
-          Kekurangan :
Memungkinkan terjadinya perubahan besar-besaran, maka akan membuat biaya dan waktu yang diperlukan membengkak.



Referensi : 
https://murtri.wordpress.com/2014/08/25/model-model-pengembangan-perangkat-lunak-beserta-contoh-penerapannya/
http://www.materi-it.com/2014/11/mengenal-concurrent-development-model.html?id-ID
http://dibyosusanto.blogspot.co.id/2015/08/model-proses-perangkat-lunak.html

Komentar

Postingan Populer