Generic Software Process Model
Merupakan cara,metode dan bisa disebut sebagai model dalam pengembangan perangkat lunak.. tentunya setiap pembuatan perangkat lunak akan berbeda satu sama lainya. dan pastinya dari setiap pembuatan software tersebut menggunakan metode yang berbeda pula sesuai dengan kebutuhan masing-masing.. ada banyak model dalam pembuatan perangkat lunak ini,setiap metode emiliki kekuranagan dan kelebihan masing-masing..beberapa metode itu antara lain adalah sebagai berikut..
1. Model Waterfall
Waterfall merupakan jenis metode pembuatan perangkat lunak yang cara kerjanya seperti sebuah air terjun.model ini bisa dibilang sebagai model klasik yang mengusung pengembangan perangkat lunak secara sistematis, berurutan/sekuensial layaknya seperti air terjun (waterfall) dimulai pada tingkat dan kemajuan system pada seluruh persyaratan dalam analisis, perancangan (desain), pengkodean, pengujian (testing), hingga ke tahap perawatan/maintenance.. setiap tahap demi tahap kita analogikan sebagai air yang turun dari tempat yang tingi ke tempat yang rendah,seperti layaknya air tahap demi tahap itu dilalui secara berurutan dan sistematis..
Berikut ini merupakan tahapan dari Waterfall process model..
1.Analisis merupakan tahap pengumpulan semua data dan informasi yang kita butuhkan yang bertujuan untuk mengetahui peralatan/perangkat apa saja yang akan kita butuhkan pada saat membuat sebuah perangkat lunak tentu harus sesuai dengan permintaan customer..
analisis harus dilakukan dari berbagai sudut pandang, karena keinginan kita dan customer pastinya berbeda. oleh karena itu tahap ini sangat penting, karena tingakt ketelitian kita pada tahap ini akan menentukan kualitas softwaer yang kita buat nantinya..
2.Tahap desain: proses ini melibatkan empat atribut sebuah program yaitu struktur data, arsitektur, perangkat lunak, representasi interface, dan detail (algoritma) prosedural..thaap ini merupakan tahap penggambaran software yang akan kita buat nantinya..
3.Tahap Pengkodean,ini merupakan tahap pembangunan software itu sendiri.. tahap pengkodean sering disebut dengan koding..proses ini juga sering disebut proses penterjemahan bahasa manusia kedalam bahasa mesin.. tahap ini merupakan tahap yang paling vitala dalam pembangunan sebuah software. oleh karena itu tingkat ketelitian harus tinggi...
4.Tahap Testing ,ini meripakan tahap dimana para seorang programmer akanmengujian software yang telah dibuat.. karena dengan tahap ini kita bisa mengetahui hal tersebut..
5.Tahap Pemeliharaan, tahap ini adalah bagaimana cara kita merawat sebuah seoftware, apabila perawaatan kita baik maka software akan baik juga begitupun sebaliknya..
Kelebihan
Berikut ini merupakan tahapan dari Waterfall process model..
1.Analisis merupakan tahap pengumpulan semua data dan informasi yang kita butuhkan yang bertujuan untuk mengetahui peralatan/perangkat apa saja yang akan kita butuhkan pada saat membuat sebuah perangkat lunak tentu harus sesuai dengan permintaan customer..
analisis harus dilakukan dari berbagai sudut pandang, karena keinginan kita dan customer pastinya berbeda. oleh karena itu tahap ini sangat penting, karena tingakt ketelitian kita pada tahap ini akan menentukan kualitas softwaer yang kita buat nantinya..
2.Tahap desain: proses ini melibatkan empat atribut sebuah program yaitu struktur data, arsitektur, perangkat lunak, representasi interface, dan detail (algoritma) prosedural..thaap ini merupakan tahap penggambaran software yang akan kita buat nantinya..
3.Tahap Pengkodean,ini merupakan tahap pembangunan software itu sendiri.. tahap pengkodean sering disebut dengan koding..proses ini juga sering disebut proses penterjemahan bahasa manusia kedalam bahasa mesin.. tahap ini merupakan tahap yang paling vitala dalam pembangunan sebuah software. oleh karena itu tingkat ketelitian harus tinggi...
4.Tahap Testing ,ini meripakan tahap dimana para seorang programmer akanmengujian software yang telah dibuat.. karena dengan tahap ini kita bisa mengetahui hal tersebut..
5.Tahap Pemeliharaan, tahap ini adalah bagaimana cara kita merawat sebuah seoftware, apabila perawaatan kita baik maka software akan baik juga begitupun sebaliknya..
Kelebihan
- mudah diaplikasikan karena urutan-urutan pengerjaan sudah sering dipakai;
- cocok untuk software berskala besar dan yang bersifat umum
- pengerjaan proyek akan mudah dikontrol dan terjadwal dengan baik.
kelemahan
- kurang fleksibel, dikarenakan rincian prosesnya harus benar-benar jelas dan tidak boleh diubah-ubah.
- Jika terjadi kesalahan akan menyita waku karena harus kembali pada pada proses sebelumnya dan bisa dikatakan harus mendesign ulang supaya tidak terjadi kesalahan pada proses berikutnya..
2. Incremental Model
Model ini merupakan hasil kombinasi elemen-elemen dari model waterfall yang diaplikasikan secara berulang. 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.
Kelebihan model ini adalah mampu mengakomodasi perubahan secara fleksibel, dengan waktu yang relatif singkat dan tidak dibutuhkan anggota/tim yang banyak untuk menjalankannya.
Kekurangannya adalah tidak cocok untuk proyek berukuran besar (lebih dari 200.000 baris coding) dan sulit untuk memetakan kebutuhan pemakai ke dalam rencana spesifikasi tiap-tiap hasil dari increament.
Model ini cocok dipakai untuk proyek kecil dengan anggota tim yang sedikit dan ketersediaan waktu yang terbatas.
3 . Spiral Model/Spiral Boehm
Model ini mengadaptasi dua model perangkat lunak yang ada yaitu model prototyping dengan pengulangannya dan model waterfall dengan pengendalian dan sistematikanya. Model ini dikenal dengan sebutan Spiral Boehm. Pengembang dalam model ini memadupadankan beberapa model umum tersebut untuk menghasilkan produk khusus atau untuk menjawab persoalan-persoalan tertentu selama proses pengerjaan proyek.
Tahap-tahap model ini dapat dijelaskan secara ringkas sebagai berikut.
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.
Kelebihan
- Analisa kesalahan sudah dilakukan sedetail mungkin sehingga kesalahan yang terjadi resikonya sangat sedikit.
- Lebih realistis dan sesuai dengan keadaan dilapangan
Kekurangan
- Waktu yang dibutuhklan cukup lama dan biayanya juga relatif tinggi.
- Pengembanganya yang dilakukan sedetail mungkin membutuhkan tenaga ahli sehingga menimbulkan ketergantungan
4 . Prototyping Model
Metode ini menyajikan gambaran yang lengkap dari sistem, terdiri atas model kertas, model kerja dan program. Pihak pengembang akan melakukan identifikasi kebutuhan pemakai, menganalisa sistem dan melakukan studi kelayakan serta studi terhadap kebutuhan pemakai, meliputi model interface, teknik prosedural dan teknologi yang akan dimanfaatkan.
Dapat kita simpulkan tahap-tahap dari prototyping model adalah sebagai berikut..
Tahap Pengumpulan kebutuhan: pada tahap ini, pelanggan dan pengembang saling bantu dalam mendefinisikan format seluruh perangkat lunak, menentukan keperluan dan garis besar sistem yang akan dirancang.pengembang sangat membutuhkan keperluan si pelanggan supaya apa yang mereka inginkan bisa terpenuhi dengan baik.
Tahap Quick design: membangun rancangan global sebagai contoh bagi user
Tahap Pembangunan Prototipe: proses perancangan sementara yang fokusnya kepada penyajian kepada pelanggan, termasuk pengujian dan penyempurnaan.
Tahap Evaluasi Pelanggan: di mana pelanggan melakukan pengujian terhadap prototipe yang ada dan pengembang memperhalus analisis kebutuhan pemakai.
Tahap Pembuatan dan Implementasi: tahap ini termasuk proses desain (rancang), pengkodean dan testing.
Keunggulan
- sangat interaktif sehingga pengembang dan pengguna (pemakai) dapat terus berinteraksi selama pengerjaan tahapan-tahapan tersebut.
- menhemat waktu dalam pengembangan
Kelemahan
- Biaanya software yang dihasilkan kurang fleksibel dan akanmenemui banyak kesalahan/error pada jangka panjang
- Program/software yang dihasilkan biasanya kurang kompleks
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.
5 . Agile Model
(Widodo Journal : 2006:1) Pada dekade 90-an diperkenalkan metodologi baru yang dikenal dengan nama agile methods. Metodologi ini sangat revolusioner perubahannya jika dibandingkan dengan metode sebelumnya. Agile Methodsdikembangkan karena pada metodologi tradisional terdapat banyak hal yang membuat proses pengembangan tidak dapat berhasil dengan baik sesuai tuntutanuser. Saat ini metodologi ini sudah cukup banyak berkembang, diantaranya adalah:
1) eXtreme Programming (XP)
2) Scrum Methodology
3) Crystal Family
4) Dynamic Systems Development Method (DSDM)
5) Adaptive Software Development (ASD)
6) Feature Driven Development (FDD)
Jika kita lihat, agile bisa berarti tangkas, cepat, atau ringan. Agility merupakan metode yang ringan dan cepat dalam pengembangan perangkat lunak. Agile Alliance mendefinisikan 12 prinsip untuk mencapai proses yang termasuk dalamagility:
- Prioritas tertinggi adalah memuaskan pelanggan melalui penyerahan awal dan perangat lunak yang bernilai.
- Menerima perubahan requirements meskipun perubahan tersebut diminta pada akhir pengembangan.
- Memberikan perankat lunak yang sedangdikerjakan dengan sering,beberapa min ggu atau bulan, dengan pilihan waktu yang paling singkat.
- Pihak bisnis dan penggembangan harus berkerja sama setiap hari selam penggembangan berjalan.
- Bangun proyek dengan individu-individu yang bermotivasi tinggi dengan memberikan lingkungan dan dukungan yang diperlukan, dan mempercyai mereka sepenuhnya untuk menyelesaikan pekerjaannya.
- Metode yang paling efektif dan efisien dala m menyampaikan informasi kepada tim pengembangan adalah dengan komunikasi langsung face to face.
- Perangkat lunak yang dikerjakan merupakan pengukur utama kemajuan.
- Proses agile memberikan proses pengembangan yang bias ditopang.Sponsor,pengembangan, dan user garus bias menjaga ke-konstanan langkah yang tidak pasti.
- Perhatian yang harus terus mennerus terhadap rangcangan dan teknik yang baik meningkatkan agility.
- Keserdahanaan seni untuk meminimalkan jumlah pekerjaan adalah penting
- Arsitektur,requirements, dan rancangan terbaik muncul dari tim yang mengatur sendiri.
- Pada interval reguler tertentu,tim merefleksikan bagaimana menjadi lebih efektif,kemudian menyesuaikannya
Kelebihan Metode Agile
- Meningakatkan rasio kepuasan pelanggan.
- Bisa melakukan reviw pelanggan mengenai software yang dibuat lebih awal.
- Mengurangi resiko kegagalan implementasi software dari non-teknis.
- Besar kerugian baik secara material atau imaterial tidak terlalu besar jiak terjadi kegagalan
- Cara pengembanganya cukup sulit,sehingga hanya orang-orang tertentu saja yang menggunakanya
- biaya yang dibutuhkan cukup tinggi
Sumber : if-unsika-2011176.blogspot.co.id