Jumat, 13 Februari 2015

Model dalam membangun program

Model Proses pembuatan Software
            Dalam proses pembuatan sebuah program ataupun aplikasi yang akan digunakan kita membutuhkan tahapan yang benar baik dari programnya maupun dari proses pembuatannya, hal ini akan mempermudah dalam pembuatan suatu program. Berikut model-model pembuatan dalam pembuatan program:
1.      Waterfall model

Waterfall model juga disebut sebagai Linear Sequential model. Model ini adalah model yang sangat klasik dan bersifat sistematis, yaitu mempinyai proses yang berurutan dalam pembuatannya. Adapun gambaran yang terdapat dalam reverensi sommervile:



1.      Requirement analysis and definition : Mengumpulkan kebutuhan secara lengkap kemudian dianalisis dan didefinisikan kebutuhan yang harus dipenuhi untuk membangun program yang telah ditentukan. Untuk menghasilkan hasil yang lengkap maka fase ini harus dikumpulkan selengkap-lengkapnya.

2.      System and software design : membuat gambaran sebuah system hal ini di kerjakan setelah mengumpulkan hasil analisa secara lengkap.

3.      Implementation and system testing : Design program diterjemahkan di dalam kode-kode dengan menggunakan bahasa pemrograman yang sudah ditentukan.

4.      Integration and system testing : Menyatukan unit-unit program dan diuji secara keseluruhan.

5.      Operation and maintenance : mengoperasikan program dilingkungannya dan melaukuan pemeliharaannya, seperti penyesuaian atau perubahan karena adaptasi terhadap situasi sebenarnya.

Adapun kekurangan dari waterfall ini berkaitan dengan fase sebelumnya, beberapanya :
1.      Perubahan sedikit sulit dilakuakan karena sifatnya yang kaku.
2.      Model ini sangat cocok ketika kebutuhan dikumpulkan secara lengkap sehingga kebutuhan bias ditekankan sekecil mungkin, tetepi kenyataannya jarang orang yang bias memberikan kebutuhannya secara lengkap.
3.      Sering dipakai membuat proyek yang besar sehingga melibatkan banyak orang yang mengerjakan di berbagai tempat.

2.      Prototyping Model

Terkadang clien memberikan kebutuhan umum software tanpa memiliki detail input,    proses dan detail output. Di lain waktu developer tidak yakin terhadap efisiensi dari algoritma yang digunakan, tingkat adaptasi terhadap system operasi atau rancangan form user interface, ketika situasi ini terjadi begitu saja model Prototyping ini sangatlah membantu proses pembangunan software.Adapun gambaran dari model prototyping  sebagai berikut:
-          Pengumpulan kebutuhan : developer dank lien bertemu dan menentukan tujuan umum, kebutuhan yang diketahui dan gambaran bagian-bagian yang akan dibutuhkan nantinya, namun untuk kebutuhan mungkin beelum dijelaskan secara detail disini.
-          Perancangan : perancangan dilakukan secara cepat dan rancangan mewakili semua aspek software yang diketahui, dan rancangan inipun digunakan sebagai dasar dari proses prtotyping ini.
-          Evaluasi prototype : klien mengevaluasi prototype yang telah dibuat dan digunakan untuk memperjelas kebutuhan software.
Perulangan ketiga proses tersebut terus berlangsung hingga semua kebutuhan terpenuhi. Prototype dibuat untuk memuaskan kebutuhan klien dan untuk memahami kebutuhannya lebih baik.
Prototype yang telah dibuat dapat dipergunakan kembali untuk membangun software lebih cepat, namun tidak semuanya dapat digunakan. Sekalipun prototype memudahkan komunikasi antara klien dan developer, membuat klien mengerti akan gambaran awal prototype, membantu mendapatkan kebutuhan lebih baik, namun meskipun begitu prototype juga memiliki beberapa masalah, diantaranya:
1.      Dalam pembautan prototype banyak hal yang diabaikan seperti efesiensi, kualitas, kemudahan untuk dikembangkan selanjutnya, serta kecocokan dengan lingkungan yang sebenarnya. Jika klien merasa cocok dengan prototype yang telah disajikan dan bersikeras untuk produk tersebut, maka developer harus bekerja keras untuk mewujudkan produk tersebut menjadi lebih baik,sesuai dengan kualitas yang sebenarnya.
2.      Developer biasanya melakukan kompromi dalam beberapa hal karena harus membuat prototype dalam tempo yang singkat, dan mungkin system tersebut tidak sesuai, menggunakan bahasa pemrograman yang berbeda atau algoritma yang lebih sederhana.
Agar model ini dapat berjalan dengan baik, perlu disepakati bersama oleh klien dan developer bahwa prototype yang dibangun merupakan alat untuk mendefinisikan kebutuhan sebuah software.
3.Spiral Model
            Model ini memiliki nama spiral karena prosesnya yang berbentuk spiral. Setiap loop mewakili satu fase dari software proses. Loop yang paling dalam terfokus pada kelayakan system, loop selanjutnya tentang definisi dari kebutuhan, loop berikutnya berkaitan dengan desain system dan seterusnya. Setiap loop dibagi menjadi beberapa sector:
1.      Objective Settings(Menentukan tujuan):menentukan tujuan dari fase yang ditentukan. Batas-batasan pada proses dan produk sudah diketahui. Perencanaan sudah disiapkan. Resiko dari proyek sudah diketahui. Alternatif strategi sudah disiapkan berdasarkan resiko-resiko yang telah diketahui, damn sudah direncanakan.

2.      Risk Assessment and Reduction (Penaganan dan pengurangan resiko): Setiap resiko dianalisis secara detail pada sector ini. Langkah-langakh penanganan dilakukan, misalnya membuat prototype untuk mengetahui ketidak cocokan kebutuhan.

3.      Development and Validation(Pembangunan dan pengujian): Setelah evaluasi resiko, maka model system pengembangan dipilih. Misalnya jika resiko user interface dominan, maka membuat prototype User Interface. Jika bagian keamanan bermasalah, maka menggunakan model formal dengan perhitungan matematis, dan jika masalahnya adalah integrasi system model waterfall lebih cocok.

4.      Planning: Proyek dievaluasi atau ditinjau ulang dan diputuskan untuk terus ke fase loop selanjutnya atau tidak. Jika melanjutkan ke fase berikutnya maka rencana untuk loop yang harus dibuat selanjutnya.
Pembagian sektor tidak bisa dikembangkan begitu saja seperti pada pembagian sektor berikut pada model variasi spiral berikut ini :

1.      Costumer Communication : membangun komunikasi yang baik dengan pengguna/costumer.
2.      Planning : mendefiinisikan sumber, batas waktu, dan informasi lain seputar proyek.
3.      Risk Analysis : identifikasi resiko manajemen dan teknis.
4.      Engineering : pembangunan contoh aplikasi, misalnya prototype.
5.      Construction and Release : pembangunan, test, install, dan support.
6.      Costumer Evaluation : mendapatkan feedback dari pengguna berdasarkan evaluasi PL pada fase engineering dan fase instalasi.
Pada model ini resiko sangat dipertimbangkan. Resiko adalah sesuatu yang mungkin mengakibatkan kesalahan.
Model spiral merupakan pendekatan yang realistik untuk PL berskala besar. Pengguna dan pembangun bisa memahami dengan baik software yang dibangun karena setiap kemajuan yang dicapai selama proses dapat diamati dengan baik. Namun demikian, waktu yang cukup panjang bukanlah hal yang diharapkan oleh pengguna, karena waktu yang lama sama dengan biaya yang besar.

Referensi :
1.      Sommervile, Ian. “Software Engineering” .6th.Addison Wesley. 2001.

2.      Beck, Kent. “Extreme Programing”. www.extremeprograming.org .

Tidak ada komentar:

Posting Komentar