when a SIMPLE PATH becomes an IMPORTANT ONE...
Yv's Territory: SOFTWARE PROCESS

Thursday, October 25, 2012

SOFTWARE PROCESS

hi readers ♥
Dalam tulisan kali ini, saya akan membahas mengenai software process, seperti yang tertera di judul post ini.
Software Process itu kurang lebih nya adalah kegiatan-kegiatan yang berkaitan dengan bagaimana kita sebagai software developer mengkomunikasikan rancangan dan bagaimana user mengkomunikasikan keinginan nya.
Untuk itu, dalam software process terdapat berbagai macam bentuk / model, yaitu :

♣ Linear Sequential Model / Waterfall Model

Model ini seringkali disebut sebagai classic life cycle, yang sistematis, dan berurutan (sequential).
Model yang satu ini mengharuskan kita benar-benar menyelesaikan suatu tahapan baru melangkah ke tahapan selanjutnya. Seperti yang terlihat pada gambar, ada tahapan-tahapan : Requirements (mengumpulkan, menganalisis, dan mendefinisikan kebutuhan user. Tahap ini harus dikerjakan secara lengkap sebelum maju ke tahap berikutnya),Design (mendesign software yang dapat dilakukan hanya setelah requirements nya lengkap), implementation and unit testing (diterjemahkan ke dalam bahasa pemrograman yang diinginkan, yang sudah ditentukan sebelumnya. Program yang dibangun langsung dapat diuji bagian-bagian nya), integration & system testing (penggabungan bagian-bagian program, yang langsung dites secara keseluruhan), dan maintenance (program dioperasikan di lingkungan nya, dan dilakukan pemeliharaan,seperti penyesuaian/adaptasi dengan situasi sebenarnya).
Karena itu, software developer harus benar-benar mengerti requirements (kebutuhan) user dengan baik, sehingga perubahan dapat ditekan sekecil mungkin.
Kelebihan dari model ini adalah ada penjadwalan / pengaturan yang dilakukan pada setiap tahap, sehingga mempermudah dalam pengontrolannya. Model ini juga cocok untuk sistem berskala besar. Sayangnya, selain dari sifatnya kaku (sulit menerima perubahan-perubahan), pembuatan software dengan model ini cenderung memakan waktu yang lama.


♣ Incremental Model










Pada model ini, software developer membagi proses dalam beberapa inkremen. Setiap inkremen nanti nya akan menyediakan sedikit dari fungsional sistem. 
Model ini tidak sekaku model sebelumnya(waterfall model), karena bisa saja, sebelum inkremen pertama benar-benar selesai, inkremen kedua telah boleh dijalankan, karena inkremen kedua merupakan lanjutan / pengembangan yang lebih dalam dari inkremen pertama.
Kelebihan dari model ini adalah user tidak harus menunggu sampai keseluruhan program / inkremen selesai baru bisa menggunakan programnya, karena ketika inkremen pertama telah selesai, user dapat mulai menggunakan nya. Jadi, dengan model ini, user dapat menggunakan program yang sedang dikembangkan, dan dapat pula memberikan informasi yang nanti nya dapat menjadi referensi untuk inkremen berikutnya.
Oleh karena itu, maka inkremen pertama pasti harus menjalani testing yang ketat, karena inkremen selanjutnya akan berhubungan dengan nya. Hanya saja, terkadang ada kesulitan dalam memberi gambaran tentang kebutuhan pelanggan pada inkremen dengan ukuran yang benar. (Mungkin saja pelanggan ingin lebih lengkap pada tahap inkremen awal, dst)

♣ Prototyping Model

Pembuatan software dengan model ini sangat melibatkan user / customer. Biasanya, developer akan membuat suatu prototype sederhana untuk diperlihatkan kepada customer / user untuk dievaluasi olehnya. Setelah menerima evaluasi dari customer, maka mulailah program tersebut terus dikembangkan sesuai keinginan dari user, sedangkan bila tidak sesuai dengan apa yang diinginkan oleh si user, maka developer harus mengulang prototype nya lagi. Model ini biasanya digunakan pada customer / user yang belum benar-benar mengerti tentang program seperti apa yang diinginkan nya. 
Kelebihan dari model ini, tentu saja bahwa user sangat berperan dalam pembuatan software nya, dan dapat mempersingkat waktu pengembangan softwarenya.
Sayangnya, developer biasanya tidak maksimal dalam implementasi nya, dan kalau waterfall model tadi mudah dalam dokumentasinya, maka model yang satu ini mengalami kesulitan dalam hal dokumentasi dikarenakan struktur / prototype program yang bisa saja terus mengalami perubahan.

♣ Rapid Application Development (RAD)

Model ini dapat dikatakan sebagai pengembangan lebih lanjut dari waterfall model dan incremental model. Karena, dalam model ini tahapan-tahapan yang dilakukan juga sama dengan waterfall hanya saja dibagi menjadi 3 tim, yang akan mengerjakan pekerjaan yang sama dengan deadline yang sama pula. Hal ini agak mirip dengan incremental model yang juga membagi pekerjaan nya, tetapi kalau incremental model maka pekerjaan yang dikerjekan dan deadline nya itu berbeda.
Tahapan-tahapan dalam model ini mulai dari business modelling(lebih kepada seperti apa jenis bisnis nya / jenis informasi bisnis yang akan diproses oleh sistem nantinya, dan hal-hal mendasar seputar itu), data modelling (bentuk data nya, objek nya, dll), process modelling (seperti apa proses nya), application generation (mirip dengan tahap design, tentang bagaimana model aplikasinya dalam bentuk program), dan testing/turnover (pengecekan kesalahan dalam sistem / program). Nantinya, ketiga tim ini akan menggabungkan hasil kerja nya dan membentuk suatu software secara utuh. 
Kelebihan dari sistem ini, tentu saja akan menghemat waktu bia sampai 60-90 hari dan cocok untuk sistem berskala besar, tapi seperti yang bisa kita bayangkan, model ini akan membutuhkan tenaga kerja yang cukup banyak.

♣ Spiral Model / Incremental Prototyping Model
Seperti yang terlihat pada gambar, tahapan pertama dalam model ini adalah CUSTOMER COMMUNICATION di mana user akan mengkomunikasikan keinginan nya untuk membuat program yang diinginkan nya kepada developer. 
Selanjutnya, PLANNING. User dan developer merencanakan bersama tentang software seperti apa yang sesuai dengan kebutuhan nya,waktu yang dibutuhkan dan informasi-informasi lainnya.
RISK ANALYSIS. Pada tahapan ini, developer akan menganalisis mengenai apa-apa saja yang dibutuhkan dalam sistem beserta resiko-resikonya.
ENGINEERING. Pembuatan contoh-contoh aplikasi ,misalnya prototype,
CONSTRUCTION AND RELEASE. Pembangunan/pembuatan program/sistem, menguji, memasang, dan memberikan help/buku panduan dalam penggunaan nya yang ditujukan untuk user.
CUSTOMER EVALUATION. Evaluasi dari customer mengenai program yang telah digunakan nya.

Kelebihan dari model ini, adalah :
Software dapat digunakan untuk waktu yang cukup lama, cocok pula untuk program berskala besar dan pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadap resiko setiap tingkat evolusi karena perangkat lunak terus bekerja selama proses.
Akan tetapi, ada kesulitan dalam meyakinkan pelanggan bahwa setiap evolusi ini bisa dikontrol dan cenderung butuh waktu yang lama.

Referensi : 


That's all.



♥ ♥ miss. yv


No comments:

Post a Comment