Prototyping

Mengutip dari tugas mata kuliah Rekayasa Perangkat Lunak (RPL) yang saya dan kelompok saya selesaikan tadi tentang model proses atau paradigma rekayasa perangkat lunak, yaitu mengenai model proses prototype yang merupakan bagian dari model proses Evolutionary. Semoga bermanfaat🙂

Prototype adalah suatu mekanisme untuk mengidentifikasi kebutuhan dari perangkat lunak yang akan dihasilkan. Terkadang klien hanya memberikan beberapa kebutuhan umum software tanpa detail input, proses atau detail output. Di lain waktu mungkin dimana tim developer tidak yakin terhadap efisiensi dari algoritma yang digunakan, tingkat adaptasi terhadap sistem operasi atau rancangan form user interface. Ketika situasi seperti ini terjadi, model prototyping sangat membantu proses pembangunan software. Meskipun prototyping dapat digunakan sebagai model proses yang berdiri sendiri, namun lebih sering digunakan sebagai teknik yang diimplementasikan bersama dengan model-model yang lain. Tanpa memperhatikan cara bagaimana model ini dipakai, paradigma prototyping membantu developer dan user untuk memiliki pemahaman yang lebih baik tentang apa yang akan dibangun ketika kebutuhan yang diinginkan tidak diuraikan secara jelas. Paradigma prototyping diawali dengan komunikasi antara developer dan user yang bertemu dan mendefinisikan sasaran-sasaran menyeluruh dari perangkat lunak yang akan dibangun, mengidentifikasi kebutuhan apa saja yang diinginkan. Iterasi prototyping direncanakan secara cepat, demikian juga pemodelan dalam bentuk rancangan segera dibuat.

Perancangan yang cepat berfokus pada penggambaran aspek-aspek perangkat lunak yang akan dilihat oleh user, seperti tampilan interface antara user dengan sistem, atau format tampilan output. Rancangan yang cepat ini akan membawa ke arah pembuatan program (konstruksi) dari prototype. Prototype diserahkan dan dievaluasi oleh user. Feedback dari user digunakan untuk memperbaiki kriteria kebutuhan perangkat lunak. Hal ini dilakukan berulang-ulang dimana prototype disesuaikan untuk memenuhi kebutuhan user, sementara pada saat yang sama developer memiliki pemahaman yang lebih baik mengenai apa yang diinginkan user untuk dipenuhi.

Pada saat prototype ini dikembangkan, developer berusaha menggunakan program atau tools yang ada, seperti report generator, windows manager, yang memungkinkan prototype dibuat secara cepat. Prototype berlaku sebagai sistem pengenal, bukan sebagai system yang benar-benar dibuat untuk dioperasikan. Banyak user dan developer yang menyukai model prototyping. User dapat merasakan sistem yang akan diwujudkan, dan developer dapat membangun sesuatu dengan segera.

Proses model prototyping diatas dapat dijelaskan sebagai berikut:

  • Communication

Developer dan klien bertemu dan menentukan tujuan umum, kebutuhan yang diinginkan dan gambaran bagian-bagian yang akan dibutuhkan berikutnya.

  • Quick Plan

Perancangan dilakukan cepat dan mewakili semua aspek software yang diketahui, dan rancangan ini menjadi dasar pembuatan prototype.

  • Modelling Quick Design

Berfokus pada representasi aspek software yang bisa dilihat customer/user. Modelling Quick Design cenderung ke pembuatan prototipe.

  • Construction of Prototype

Membangun kerangka atau rancangan  prototype dari software yang akan dibangun.

  • Deployment Delivery & Feedback

Prototype yang telah dibuat oleh developer akan disebarkan kepada user/klien untuk dievaluasi, kemudian klien akan memberikan feedback yang akan digunakan untuk merevisi kebutuhan software yang akan dibangun.

Perulangan proses ini terus berlangsung hingga semua kebutuhan terpenuhi. Prototype-prototype dibuat untuk memuaskan kebutuhan klien dan untuk memahami kebutuhan klien lebih baik. Prototype yang dibuat dapat dimanfaatkan kembali untuk membangun software lebih cepat, namun tidak semua prototype bisa dimanfaatkan.

Dengan prototype, komunikasi antar developer dan klien akan lebih mudah. Hal ini akan membuat klien mendapat gambaran awal dari prototype dan membantu mendapatkan kebutuhan detail lebih baik. Namun demikian prototype juga menimbulkan masalah sebagai berikut:

  1. Dalam membuat prototype banyak hal yang diabaikan seperti efisiensi, kualitas, kemudahan dikembangkan, dan kecocokan dengan lingkungan yang sebenarnya. Jika klien merasa cocok dengan prototype yang disajikan dan berkeinginan kuat terhadap produk tersebut, maka developer harus kerja keras untuk mewujudkan produk tersebut menjadi lebih baik, sesuai kualitas yang seharusnya.
  2. Developer biasanya melakukan kompromi dalam beberapa hal karena harus membuat prototype dalam waktu singkat. Mungkin sistem operasi yang tidak sesuai, bahasa pemrograman yang berbeda, atau algoritma yang lebih sederhana. Agar model ini bisa berjalan dengan baik, perlu disepakati bersama oleh klien dan developer bahwa prototype yang dibangun merupakan alat untuk mendefinisikan
    kebutuhan software.
  3. User melihat bahwa apa yang muncul dan dilihat dari prototype adalah perangkat lunak yang akan dioperasionalkan. User tidak menyadari bahwa prototype tersebut belum dibangun dengan memperhatikan kualitas perangkat lunak beserta pemeliharaannya. Jika disampaikan bahwa produk yang akan dioperasionalkan harus dibangun ulang sehingga produk memiliki kualitas tinggi dan dapat dipelihara dengan baik, maka user mengeluh dan bahkan meminta beberapa perbaikan untuk turut diterapkan dalam sistem yang akan dioperasionalkan.

Meskipun permasalahan ada, prototyping dapat menjadi model yang efektif untuk rekayasa perangkat lunak. Kuncinya adalah aturan permainan harus dijelaskan di awal proyek, bahwa developer dan user harus memiliki kesepahaman bahwa prototype dibuat sebagai sarana untuk mendefinisikan kebutuhan. Sedangkan perangkat lunak sesungguhnya dibangun dengan berdasarkan kualitas.

3 thoughts on “Prototyping

  1. aizurikimaru says:

    Makasi banget sis isti gw lagi pusying ngerjain tugas kampus jadi ketolong.. ^_^ sekali lagi makasi yaaa n_n n salam kenal..

  2. istiaprillani says:

    salam balik
    itu juga tugas kampus kok hehe😀
    sekalian sharing aja. semoga membantu🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s