PENGARUH LIFE CYCLE SDLC Dan PERANAN CASE TOOLS MODEL PROSES DALAM PEMBUATAN PENGEMBANGAN PERANGKAT LUNAK

SDLC (Systems Development Life Cycle, Siklus Hidup Pengembangan Sistem) atau Systems Life Cycle (Siklus Hidup Sistem), dalam rekayasa sistem dan rekayasa perangkat lunak, adalah proses pembuatan dan pengubahan sistem serta model dan metodologi yang digunakan untuk mengembangkan sistem – sistem tersebut. Konsep ini umumnya merujuk pada sistem komputer atau informasi. SDLC juga merupakan pola yang diambil untuk mengembangkan sistem perangkat lunak, yang terdiri dari tahap – tahap: rencana(planning), analisis (analysis), desain (design), implementasi (implementation), uji coba (testing) dan pengelolaan (maintenance).

Seperti halnya dengan manusia, suatu sistem juga memiliki siklus atau daur hidup. Siklus Hidup Produk (Product Life Cycle) ini yaitu suatu grafik yang menggambarkan riwayat sistem sejak diperkenalkan ke pasar sampai dengan ditarik dari pasar . Siklus Hidup sistem (Product Life Cycle) ini merupakan konsep yang penting dalam pemasaran karena memberikan pemahaman yang mendalam mengenai dinamika bersaing suatu sistem. Konsep ini dipopulerkan oleh levitt (1978) yang kemudian penggunaannya dikembangkan dan diperluas oleh para ahli lainnya. Pada prinsipnya, Hampir setiap sistem di dunia ini mengalami Siklus Hidup Sistem. Namun jangka waktu siklus hidup sistem pada setiap sistem tersebut berbeda – beda, ada yang cepat hilang, ada juga yang dapat bertahan dalam jangka waktu yang relatif lama. Apalagi pada sistem – sistem yang berorientasi pada Teknologi seperti pada sistem – sistem Elektronika (Ponsel, Komputer, Televisi).

SDLC terdiri dari beberapa tahapan – tahapan berdasarkan analisa kebutuhan yang ada . Dimulai dari analisa kebutuhan perangkat lunak akan dibuat terlebih dahulu desain dari kebutuhan tersebut untuk mempermudah dalam pengerjaannya. Kemudian segala kebutuhan tersebut di implementasikan dengan dua tahap yaitu tahap analisa dan tahap evaluasi (User Acceptance Test). Setelah melakukan implementasi, maka proses tersebut akan dikembalikan kembali ke dalam tahap desain untuk pengembangan kembali perangkat lunak ke versi yang terbaru.

Tahap – tahap SDLC dalam pembangunan sistem informasi Web :

Plaining (perencanaan) adalah feasibility dan wawancara , observasi, Quesener. Jika pada tahap Feasibility hasilnya baik maka langsung ketahap investigasi dan diberi form kepada client untuk mencatat kebutuhan client. Dalam sistem investigasi, dapat berupa wawancara, kuosiener atau observation. Dalam tahap ini hal yang pertama dilakukan adalah memberikan form ke user yang digunakan untuk mengetahui permintaan user.

a. Analisa TeknologiMemerlukan data penyimpanan secara informasi produk, Informasi Berita digunakan database seeprti Mysql, MSAccess.. Menganalisis teknologi apa yang digunakan pemilik desain Web seperti menggunakan desain grafis maka memerlukan teknologi seperti Adobe Photoshop, Macromedia Flash, Dreamweaver.

b. Analisa informasi. Mengenai informasi data yang akan menjadi data tetap dan data dinamis, kategori informasi data tetap adalah : profile perusahaan, visi dan misi, sejarah perusahaan, latar belakang perusahaan. Informasi dinamis adalah informasi yang selalu berubah dalam setiap periodik dapat setiap hari atau setiap jam. Informasi dinamis dalam sistem ini adalah :

1) Informasi persediaan ( stock ) produk.

2) Informasi Harga Produk dan diskon.

3) Informasi Artikel, tips dan trik.

4) Informasi dari masing keunggulan Produk atau produk yang sedang trend.

Desain Informasi dalam tahap ini dimodelkan informasi link dari setiap halaman, jika dalam sistem tersebut terdapat database maka digunakan tahap development dan database disain.

a. Desain Grafis. Dalam tahap ini disesuaikan dari warna, layout, gambar dan graphic.

c. Model Development Database Design PHP Library Development. Tahap untuk memodelkan seluruh peruses yang ada,seperti peruses penyimpanan data,update artikel, dan menampilkan data dari database.

a. Penulisan Program dan Instalasi. Merupakan tahap penulisan program yang telah dianalisis dan diesain semua maka perogeram yang digunakan adalah PHP dan database yang digunakan MySql

b. Desain Review. Dalam tahap ini tidak hanya menguji desain yang digunakan namun menguji semua sistem yang telah diterapkan seperti tidak ada lokasi lingk, image yang salah, pengujian sistem seperti penyimpanan data, update artikel dan lain-lain.

c. Pemilihan Sumber daya Hardware dan Software. Dalam tahap ini software dan hardware digunakan untuk Web server.

d. Pengujian Web dan Dokumen Web. Menguji Web dengan berbagai teknologi browser yang ada, serta pemeriksaan dokumen Web. Siklus hidup pengembangan sistem mempunyai beberapa tahapan, yaitu :

1) Analisis sistem, merupakan tahap awal dari SDLC, merupakan orang yang dididik khusus untuk mengembangkan sistem secara profesional.

2) Perancangan sistem memiliki dua tujuan utama, yaitu memberikan perancangan sistem logika atau perancangan sistem secara umum (general system design), dan memberikan perancangan sistem secara terinci (detail system design).

3) Implimentasi system, proses mengganti atau meninggalkan sistem yang lama dengan sistem baru.

4) Operasi dan perawatan beberapa kelebihan dan kekurangan. Kelebihannya yaitu menyediakan tahapan yang dapat digunakan sebagai pedoman mengembangkan sistem, dan akan memberikan hasil sistem yang lebih baik. Kemudian kekurangnnya, yaitu hanya menyediakan tahapan-tahapan saja, hasil dari metode ini sangat tergantung ari hasil di tahap, analisis, membuthkan waktu yang lama, membutuhkan biaya yang relatif lebih besar, dan hasilnya tidak luwes untuk dimodifikasi.

Supaya pengembangan sistem dapat bekerja dengan efisien dan efektif, maka metodologi pengembangaan sistem perlu diketahui. Metodologi pengembangan sistem yang populer dan banyak digunakan adalah metodologi pengembangan sistem terstruktur, yang memberikan cara top down dan cara dekomposisi dan beberapa abit pengembangan sistem. Model SDLC atau Sekuensial Linier sering disebut juga Model Air Terjun. Model ini mengusulkan sebuah pendekatan perkembangan perangkat lunak yang sistematik dan sekunsial yang dimulai pada tingkat dan kemajuan sistem pada seluruh analisis, desain, kode, pengujian, dan pemeliharaan. Model ini disusun bertingkat, setiap tahap dalam model ini dilakukan berurutan, satu sebelum yang lainnya. Model ini biasanya digunakan untuk membuat sebuah software dalam skala besar dan yang akan dipakai dalam waktu yang lama. Sangat cocok untuk pengembangan sistem yang besar.

• Memberikan template tentang metode analisis, desain, pengkodean, pengujian, dan pemeliharaan.

• Jarang sekali proyek riil mengikuti aliran sekuensial yang dianjurkan model karena model ini bisa melakukan itersi tidak langsung.

• Pelanggan sulit untuk menyatakan kebutuhan secara eksplisit sehingga sulit untuk megakomodasi ketidakpastian pada saat awal proyek.

• Pelanggan harus bersikap sabar karena harus menunggu sampai akhir proyrk dilalui. Sebuah kesalahan jika tidak diketahui dari awal akan menjadi masalah besar karenaharus mengulang dari awal.

• Pengembang sering malakukan penundaan yang tidak perlu karena anggota tim proyek harus menunggu tim lain untuk melengkapi tugas karena memiliki ketergantungan hal ini menyebabkan penggunaan waktu tidak efesien.

CASE adalah perangkat komputer yang berbasis sistem yang bertujuan untuk mendukung satu atau lebih kegiatan rekayasa perangkat lunak dalam proses pengembangan software. Penulis lainnya telah berusaha untuk membuat finer-grained distinctions berbeda antara ent kelas CASE alat bersama sejumlah dimensi. Distinctions yang paling umum adalah:

1. Antara orang dan alat yang bersifat interaktif (seperti desain mendukung metode alat) dan orang-orang yang tidak (seperti kompilator). Mantan kelas kadang-kadang disebut CASE tool, sedangkan yang kedua kelas yang disebut alat-alat pembangunan.

2. Antara orang dan alat yang mendukung kegiatan di awal siklus hidup dari software proyek (seperti persyaratan desain dan dukungan alat – alat) dan orang – orang yang digunakan nanti dalam siklus hidup (seperti kompiler dan alat uji dukungan). Mantan kelas kadang – kadang disebut front-end CASE tool, dan yang kedua adalah kembali disebut akhir CASE tools.

3. Antara orang dan alat yang khusus untuk tertentu siklus hidup langkah atau domain (seperti persyaratan perangkat atau alat coding) dan orang – orang yang umum di sejumlah langkah siklus hidup atau domain (seperti dokumentasi atau alat konfigurasi manajemen alat). Mantan kelas kadang-kadang disebut vertikal CASE tool, sedangkan yang kedua kelas dipanggil horisontal CASE tools.

Secara umum seorang software engineer maupun engineer dari disiplin ilmu yang lain dalam membangun/mengembangkan suatu sistem, memiliki karakteristik sebagai berikut:

1. Mengetahui manfaat tools yang dapat membantu dalam membangun/mengembangkan suatu sistem.

2. Mampu mengorganisasikan tools yang memungkinkan untuk bekerja cepat dan efisien.

3. Memiliki pengetahuan teknik membangun/mengembangkan produk serta handal dalam menggunakan tools untuk membantu pekerjaannya.

Dalam software engineering telah dikenal banyak tools (computer-base system) yang dikenal dengan Computer-Aided Software Engineering (CASE). CASE merupakan suatu teknik yang digunakan untuk membantu satu atau beberapa fase dalam life-cycle software, termasuk fase analisis, desain, implementasi dan maintenance dari software tersebut. Manfaat CASE tools untuk software engineer dijabarkan sebagai berikut:

1. CASE tools memperbesar kemungkinan otomatisasi pada setiap fase life-cycle software.

2. CASE tools sangat membantu dalam meningkatkan kualitas design model suatu software sebelum software itu dibangun/dikembangkan, baik itu untuk software yang dibangun dalam simple maupun complex environment.

CASE tools diklasifikasikan sebagai berikut:

1. Upper CASE. CASE tools yang didesain untuk mendukung perencanaan, identifikasi, dan seleksi proyek (permulaan dari perencanaan proyek), tepatnya pada fase analisis dan desain dari suatu system Tools yang termasuk kelas ini adalah jenis Diagramming tools, Form and report generators, dan Analysis tools. Contoh CASE tools: Cradle, PRO-IV Workbench, ProKit*WORKBENCH.

2. Lower CASE. CASE tools yang didesain untuk mendukung tahap implementasi dan maintenance dari SDLC. Tools yang termasuk kelas ini adalah jenis Code generators.

Contoh CASE tools: Level/l-User Sensitive CASE, PRO-IV application Development.

3. Cross life-cycle CASE/Integrated CASE (I-CASE). CASE tools yang dirancang untuk mendukung aktifikas-aktifitas yang terjadi pada beberapa fase dari SDLC. Mengkombinasikan Upper dan Lower CASE menjadi satu. Tools yang termasuk kelas ini adalah jenis Project management tools. Contoh CASE tools: Rational Rose, Poseidon, ArgoUML, Catalyze, in-Step, Juggler, PRINCE.

Fase Pengembangan dan Fase Pemeliharaan

Kedua fase ini tidak berada dalam satu fase, karena kedua fase ini memiliki fase/tahapan-tahapan masing-masing. Namun fase pemeliharaan didalam pengembangan secara cyclic ini, berada didalam fase pengembangan atau menjadi salah satu kegiatan fase pengembangan perangkat lunak. Namun walaupun begitu fase pemeliharaan memiliki fase kegiatan tersendiri setelah system diinstall dan dipakai. Pemeliharaan mencakup koreksi dan perbaikan berabagai error yang ada.

Pengembangan perangkat lunak yang bersifat cyclic meliputi kegiatan-kegiatan antara lain :

5. Operasi dan Pemeliharaan

Jadi kedua fase ini tidak berada dalam satu fase tertentu, namun secara syclyc fase pemeliharaan menjadi bagian dari kegiatan fase pengembangan perangkat lunak.

Case merupakan suatu teknik yang digunakan untuk membantu satu atau beberapa fase dalam life-cycle software, termasuk fase analisis, desain, implementasi dan maintenance dari software.

Manfaat case tools untuk software engineer adalah :

1. Memperbesar kemungkinan otomatisasi pada setiap fase life-cycle software.

2. Membatu dalam meningkatkan kualitas design model suatu software sebelum software itu dibangun/dikembangkan, baik itu untuk software yang dibangun dalam simple maupun complex environment.

Contoh Software Upper Case :

1. Photoshop : perangkat lunak editor citra buatan adobe system yang dikhususkan untuk pengeditan foto/gambar dan pembuatan efek.

2. Ken Rename : software dengan utilitas untuk mengubah nama tambahan jumlah file dan memiliki pohon direktori untuk memilih file.Ken rename memiliki banyak kebiasaan pintas keyboard untuk membantu pengguna memastikan aliran cepat dan mudah dari aplikasi.

3. Adobe Premier : perangkat lunak editor yang dikhususkan untuk pengeditan video/film dengan berbagai efek.

4. Batch File Rename : Aplikasi yang mempu mengkonversi file ke dalam share point kompatibel serta format yang kompatibel internet dan menyediakan fitur yang berbeda untuk nomor renumbering urutan dan mengubah nama file musik Mp3 dengan bantuan tag seperti album, judul.

5. Software Password Generator : program yang dirancang untuk menghasilkan crack, pasword dengan mudah dan cepat, kita dapat mengubah password yang sangat kuat hingga 128 panjang karakter untuk semua acount. sementara untuk membuat sandi, kita dapat menggunakan huruf, angka, simbol dan juga sebagai kombinasi.

Contoh Software Lower Case :

1. Java : bahasa pemograman yang dapat dijalankan di berbagai komputer termasuk telepon dan dapat dikembangkan ke dalam berbagai aplikasi.

2. Netbeans : Software untuk pengembangan aplikasi desktop java, dan sebuah Integrated Development Environment (IDE) yang dibangun menggunakan platform NetBeans. Platform NetBeans memungkinkan aplikasi dibangun dari sekumpulan komponen perangkat lunak moduler (arsip java yang memuat kelas – kelas java untuk berinteraksi dengan NetBeans Open API dan file manifestasi yang mengidentifikasinya sebagai modul.

3. BPM ( bussiness process management ) tool : perangkat lunak yang disediakan untuk membantu organisasi dalam mengelola proses bisnis yang dimilikinya mulai dari tahap perancangan, lalu otomasi (komputerisasi), kemudian eksekusi, hingga tahap monitoring.

4. Visual Basic : Pemograman yang mudah digunakan untuk pengembangan aplikasi, baik itu aplikasi kecil maupun aplikasi besar.

5. Desk Tool : alat yang dapat digunakan untuk meminimalkan aplikasi apapun, juga dapat membuat aplikasi transparan. Desk Tool merupakan paket dengan banyak tools canggih lainnya seperti CritHide (menyembunyikan semua aplikasi yang berisi kata kunci particular).

Model Proses Perangkat Lunak

Model proses untuk rekayasa perangkat lunak dipilih berdasarkan sifat aplikasi dan proyeknya, metode dan alat – alat bantu yang akan dipakai, dan kontrol serta penyampaian yang dibutuhkan. Perkembangan perangkat lunak bisa dianggap sebagai lingkaran pemecahan masalah di mana terdapat empat keadaan berbeda, yaitu status quo, definisi masalah, perkembangan teknis memecahkan masalah, dan integrasi dari seluruh pemecahan masalah. Adapun beberapa model pengembangan perangkat lunak yang biasa digunakan adalah sebagai berikut:

1. Model Sekuensial Linear (Waterfall)

Nama model ini sebenarnya adalah “Linear Sequential Model”. Model ini sering disebut dengan “classic life cycle” atau model waterfall. Model ini adalah model yang muncul pertama kali yaitu sekitar tahun 1970 sehingga sering dianggap kuno, tetapi merupakan model yang paling banyak dipakai didalam Software Engineering (SE). Model ini melakukan pendekatan secara sistematis dan urut mulai dari level kebutuhan sistem lalu menuju ke tahap analisis, desain, coding, testing/verification, dan maintenance. Disebut dengan waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan. Sebagai contoh tahap desain harus menunggu selesainya tahap sebelumnya yaitu tahap requirement. Secara umum tahapan pada model waterfall dapat dilihat pada gambar berikut :

Gambar di atas adalah tahapan umum dari model proses ini.Akan tetapi Roger S. Pressman memecah model ini menjadi 6 tahapan meskipun secara garis besar sama dengan tahapan – tahapan model waterfall pada umumnya. Berikut adalah penjelasan dari tahap – tahap yang dilakukan di dalam model ini menurut Pressman:

• System / Information Engineering and Modeling. Permodelan ini diawali dengan mencari kebutuhan dari keseluruhan sistem yang akan diaplikasikan ke dalam bentuk software. Hal ini sangat penting, mengingat software harus dapat berinteraksi dengan elemen – elemen yang lain seperti hardware, database, dsb. Tahap ini sering disebut dengan Project Definition.

• Software Requirements Analysis. Proses pencarian kebutuhan diintensifkan dan difokuskan pada software. Untuk mengetahui sifat dari program yang akan dibuat, maka para software engineer harus mengerti tentang domain informasi dari software, misalnya fungsi yang dibutuhkan, user interface, dsb. Dari 2 aktivitas tersebut (pencarian kebutuhan sistem dan software) harus didokumentasikan dan ditunjukkan kepada pelanggan.

• Design. Proses ini digunakan untuk mengubah kebutuhan – kebutuhan diatas menjadi representasi ke dalam bentuk “blueprint” software sebelum coding dimulai. Desain harus dapat mengimplementasikan kebutuhan yang telah disebutkan pada tahap sebelumnya. Seperti 2 aktivitas sebelumnya, maka proses ini juga harus didokumentasikan sebagai konfigurasi dari software.

• Coding. Untuk dapat dimengerti oleh mesin, dalam hal ini adalah komputer, maka desain tadi harus diubah bentuknya menjadi bentuk yang dapat dimengerti oleh mesin, yaitu ke dalam bahasa pemrograman melalui proses coding. Tahap ini merupakan implementasi dari tahap design yang secara teknis nantinya dikerjakan oleh programmer.

• Testing / Verification. Sesuatu yang dibuat haruslah diujicobakan. Demikian juga dengan software. Semua fungsi-fungsi software harus diujicobakan, agar software bebas dari error, dan hasilnya harus benar-benar sesuai dengan kebutuhan yang sudah didefinisikan sebelumnya.

• Maintenance. Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah pengembangan, karena software yang dibuat tidak selamanya hanya seperti itu. Ketika dijalankan mungkin saja masih ada errors kecil yang tidak ditemukan sebelumnya, atau ada penambahan fitur – fitur yang belum ada pada software tersebut. Pengembangan diperlukan ketika adanya perubahan dari eksternal perusahaan seperti ketika ada pergantian sistem operasi, atau perangkat lainnya.

Proses model yang lain, yang cukup populer adalah Spiral Model. Model ini juga cukup baru ditemukan, yaitu pada sekitar tahun 1988 oleh Barry Boehm pada artikel A Spiral Model of Software Development and Enhancement. Spiral model adalah salah satu bentuk evolusi yang menggunakan metode iterasi natural yang dimiliki oleh model prototyping dan digabungkan dengan aspek sistimatis 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 juga mengkombinasikan top-down design dengan bottom-up design, dimana top-down design menetapkan sistem global terlebih dahulu, baru diteruskan dengan detail sistemnya, sedangkan bottom-up design berlaku sebaliknya. Top-down design biasanya diaplikasikan pada model waterfall dengan sequential-nya, sedangkan bottom-up design biasanya diaplikasikan pada model prototyping dengan feedback yang diperoleh. Dari 2 kombinasi tersebut, yaitu kombinasi antara desain dan prototyping, serta top-down dan bottom-up, yang juga diaplikasikan pada model waterfall dan prototype, maka spiral model ini dapat dikatakan sebagai model proses hasil kombinasi dari kedua model tersebut. Oleh karena itu, model ini biasanya dipakai untuk pembuatan software dengan skala besar dan kompleks.

Spiral model dibagi menjadi beberapa framework aktivitas, yang disebut dengan task regions. Kebanyakan aktivitas2 tersebut dibagi antara 3 sampai 6 aktivitas. Berikut adalah aktivitas – aktivitas yang dilakukan dalam spiral model:

• Customer communication. Aktivitas yang dibutuhkan untuk membangun komunikasi yang efektif antara developer dengan user/customer terutama mengenai kebutuhan dari customer.

• Planning. Aktivitas perencanaan ini dibutuhkan untuk menentukan sumberdaya, perkiraan waktu pengerjaan, dan informasi lainnya yang dibutuhkan untuk pengembangan software.

• Analysis risk. Aktivitas analisis resiko ini dijalankan untuk menganalisis baik resiko secara teknikal maupun secara manajerial. Tahap inilah yang mungkin tidak ada pada model proses yang juga menggunakan metode iterasi, tetapi hanya dilakukan pada spiral model.

• Engineering. Aktivitas yang dibutuhkan untuk membangun 1 atau lebih representasi dari aplikasi secara teknikal.

• Construction & Release. Aktivitas yang dibutuhkan untuk develop software, testing, instalasi dan penyediaan user / costumer support seperti training penggunaan software serta dokumentasi seperti buku manual penggunaan software.

• Customer evaluation. Aktivitas yang dibutuhkan untuk mendapatkan feedback dari user / customer berdasarkan evaluasi mereka selama representasi software pada tahap engineering maupun pada implementasi selama instalasi software pada tahap construction and release.

Model ini diawali dengan penentuan kebutuhan oleh user. Pengembang akan mengumpulkan informasi – informasi mengenai kebutuhan user tersebut dan kemudian membuat sebuah prototype dari perangkat lunak yang akan dikembangkan. Model ini sangat cocok bagi user awam, sehingga dengan adanya prototype pemahaman mereka akan terbantu dan mereka mempunyai landasan dan acuan dalam tahapan selanjutnya, misalnya pada tahapan pengujian perangkat lunak.

McLeod dan Schell (2007) mendifiniskan 2 (dua) tipe dari prototype yaitu:

Evolutionary prototype yaitu, prototype yang secara terus menerus dikembangkan hingga prototype tersebut memenuhi fungsi dan prosedur yang dibutuhkan oleh sistem. Berikut gambar dari tahapan evolutionary prototype:

Gambar: Evolutionary Prototyping Model.

a. Analisis kebutuhan user, pengembang dan pengguna atau pemilik sistem melakukan diskusi dimana pengguna atau pemilik sistem menjelaskan kepada pengembang tentang kebutuhan sistem yang mereka inginkan.

b. Membuat prototype, pengembang membuat prototype dari sistem yang telah dijelaskan oleh pengguna atau pemilik sistem.

c. Menyesuaikan prototype dengan keinginan user, pengembang menanyakan kepada pengguna atau pemilik sistem tentang prototype yang sudah dibuat, apakah sesuai atau tidak dengan kebutuhan sistem.

d. Menggunakan prototype, sistem mulai dikembangkan dengan prototype yang sudah dibuat.

Requirement prototype merupakan prototype yang dibuat oleh pengembang dengan mendifiniskan fungsi dan prosedur sistem dimana pengguna atau pemilik sistem tidak bisa mendefinisikan sistem tersebut. Berikut ini langkah-langkah dari requirement prototype :

Gambar: Requirement Prototype Model

1. Analisis kebutuhan user, pengembang dan pengguna atau pemilik sistem melakukan diskusi dimana pengguna atau pemilik sistem menjelaskan kepada pengembang tentang kebutuhan sistem yang mereka inginkan.

2. Membuat prototype, pengembang membuat prototype dari sistem yang telah dijelaskan oleh pengguna atau pemilik sistem.

3. Menyesuaikan prototype dengan keinginan user, pengembang menanyakan kepada pengguna atau pemilik sistem tentang prototype yang sudah dibuat, apakah sesuai atau tidak dengan kebutuhan sistem.

4. Membuat sistem baru, pengembang menggunakan prototype yang sudah dibuat untuk membuat sistem baru.

5. Melakukan testing sistem, pengguna atau pemilik sistem melakukan uji coba terhadap sistem yang dikembangkan.

6. Menyesuaikan dengan keinginan user, sistem disesuaikan dengan keinginan user dan kebutuhan sistem, jika sudah sesuai sistem siap digunakan.

Kelebihan dari teknik pengembangan prototyping yaitu :

1. Menghemat waktu pengembangan.

2. Menghemat biaya pengembangan.

3. Pengguna atau pemilik sistem ikut terlibat dalam pengembangan, sehingga kemungkinan-kemungkinan terjadinya kesalahpahaman dalam sistem bisa diminimalisir.

4. Implementasi akan menjadi mudah, karena pengguna atau pemilik sistem sudah mempunyai gambaran tentang sistem.

5. Kualitas sistem yang dihasilkan baik.

6. Memungkinan tim pengembang sistem memprediksi dan memperkirakan pengembangan-pengembangan sistem selanjutnya.

Sedangkan kelemahannya adalah :

Pengguna atau pemilik sistem bisa terus menerus menambah kompleksitas sitem hingga sistem menjadi sangat kompleks, hal ini bisa menyebabkan pengembang meninggalkan pekerjaanya sehingga sistem yang dikerjaan tidak akan pernah terselesaikan.

4. Model Rapid Application Development (RAD)

Rapid Aplication Model (RAD) adalah sebuah 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 sampai 90 hari).

Karena dipakai terutama pada aplikasi sistem konstruksi, pendekatan RAD melingkupi fase-fase sebagai berikut :

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 dimunculkan? Siap yang memunculkannya? Ke mana informasi itu pergi? Siapa yang memprosesnya?

Aliran informasi yang didefinisikan sebagai bagian dari fase bussiness modeling disaring ke dalam serangkaian objek data yang dibutuhkan untuk menopang bisnis tersebut. Karakteristik masing-masing objek didefinisikan dan hubungan antara objek-objek tersebut didefinisikan.

Objek data yang telah 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.

RAD mengasumsikan pemakaian teknik generasi keempat. Selain menciptakan perangkat lunak dengan menggunakan bahasa pemrograman general yang konvensional, RAD lebih banyak memproses kerja untuk mamakai lagi komponen program yang ada atau menciptakan komponoen yang bisa dipakai lagi. Pada semua kasus, alat-alat bantu otomatis dipakai untuk memfasilitasi konstruksi perangkat lunak.

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.

Secara jelas batasan waktu yang dibebankan pada sebuah proyek RAD memerlukan “ruang lingkup yang bisa diskala”. Jika sebuah aplikasi bisnis dapat dimodulkan dengan cara tertentu sehingga memungkinkan setiap fungsi mayor untuk dilengkapi dalam waktu kurang dari 3 bulan (dengan menggunakan pendekatan yang digambarkan di atas), maka aplikasi itu merupakan kandidat bagi RAD. Masing – masing fungsi mayor bisa dibicarakan oleh suatu tim RAD yang terpisah dan kemudian diintegraikan untuk membentuk suatu kesatuan.