Technology

Bagaimana TDD dan Agile Model Driven Development (AMDD) bekerja?

Dianty Anggraini Putri
July 21, 2017

Share

Artboard 2-3-1.jpg

     Menurut Ambler (2012) AMDD merupakan versi agile dari Model Driven Development(MDD). MDD adalah sebuah pendekatan dalam pengembangan perangkat lunak yang mana pembuatan model secara ekstensif (menyeluruh) dilakukan sebelum mulai menulis kode. Perbedaan dengan AMDD adalah pada AMDD pembuatan model tidak dilakukan secara ekstensif melainkan cukup membuat model yang dapat membuat pengembangan segera dijalankan. Langkah-langkah yang dilakukan dalam pengembangan menggunakan Agile Model Driven Development yaitu: Envisioning, Iteration Modelling, Model Storming dan implementasi via Test Driven Development (TDD). Langkah-lankah akan dijelaskan, yaitu:

  1. Envisioning

Proses envisioning dilakukan untuk mendapatkan gambaran umum dari sistem yang akan dibuat yang nantinya di Envisioning ini berisi user stories dan use case aplikasi.

  1. Iterasi Pemodelan

Pada tahap ini pengembang agile harus menyusun estimasi jadwal dan pekerjaan yang akan dilakukan pada setiap iterasi. Untuk melakukan estimasi yang tepat maka pengembang harus memahami pekerjaan seperti apa untuk mengimplementasikannya, dan itulah tujuan pemodelan pada tahap ini.

Pemodelan yang akan dibuat dapat dirancang berdasarkan informasi yang tersedia dari sketsa antar muka dan user stories yang telah dibuat. Berdasarkan informasi tersebut tim dapat melakukan estimasi dan menentukan prioritas fitur-fitur mana yang akan diselesaikan lebih dahulu. Seperti tahap agile yang lain pemodelan pada tahap ini tidak perlu terlalu detail karena akan lebih disempurnakan saat model storming atau Test Driven Development (TDD).

  1. Model Storming

Menurut Ambler (2012) model storming adalah Just In Time (JIT) modeling yang artinya pengembang mengindentifikasi masalah yang akan diselesaikan, jika dalam tim maka pengembang mengajak rekan yang dapat membantu, tim tersebut kemudian mengeksplorasi masalah dan kemudian kembali masing-masing melanjutkan pekerjaan seperti sebelumnya. Ambler (2012) menjelaskan bahwa model storming merupakan kegiatan yang spontan dan berlangsung dalam hitungan menit, rata-rata lima sampai sepuluh menit. Pada sesi model storming terdapat uda tahap yaitu analisi Model Storming dan desain Model Storming. 

  1. Implementasi via Test Driven Development

Spesifikasi yang telah dibuat pada iteration modeling dan model storming dikerjakan menggunakan pendekatan TDD. Menurut (Beck 2003; Astel 2003) dalam Ambler (2012) Test-Driven Development (TDD) adalah sebuah pendekatan evolusioner dalam pengembangan yang mengkombinasikan test-first development dimana anda menulis sebuah tes sebelum anda sepenuhnya menulis kode yang akan diperuntukkan untuk memenuhi tes dan refactoring tersebut. Menurut Fowler (1999) dalam Ambler (2012) refactoring adalah sebuah cara dalam melakukan restrukturisasi (perubahan) pada kode.

Secara singkat Ambler (2012) mendeskripsikan TDD sebagai kombinasi dari refactoring dan Test-First Development (TFD). Langkah-langkah pada TFD adalah menambahkan sebuah tes secara cepat, dibuat cukup untuk membuat sebuah kode akan gagal. Langkah berikutnya adalah menjalankan tes untuk memastikan apakah kode gagal atau tidak. Jika gagal maka ubah (refactor) bagian kode tersebut hingga dapat lolos. Jika menambahkan fungsionalitas baru pada kode maka buat dulu tes dari fungsionalitas tersebut kemudian jalankan tes, refactor bagian kode hingga lolos tes. Lakukan berulang kali, ilustrasi dari alur tersebut ditunjukkan pada gambar dibawah ini:

Screen Shot 2017-07-20 at 2.39.29 PM-1.png

Menurut Beck (2002) tujuan utama TDD adalah untuk menciptakan kode yang bersih dan bekerja. Beck (2002) mengemukakan sebuah istilah yang disebut red/green/refactor. Maksud dari istilah tersebut adalah:

  1. Red – Tulis tes kecil yang tidak dapat bekerja, atau bahkan mungkin tidak dapat di-compile.
  2. Green – Buatlah tes berhasil secepatnya, perbaiki semua kesalahan yang diperlukan selama proses tersebut.
  3. Refactor – Eliminasi semua duplikasi yang tercipta dalam proses membuat tes itu berhasil.

 

Screen Shot 2017-07-20 at 2.41.52 PM-1.png

Menurut Ambler (2012) keuntungan yang signifikan pada TDD adalah membantu pengembang mengambil beberapa langkah kecil saat menulis software. Karena hal tersebut terbukti lebih produktif daripada mencoba menulis kode langsung dalam jumlah yang banyak. Manfaat lain adalah kesalahan akan lebih mudah ditemukan dan diperbaiki.

 

inspired by:  ttp://agiledata.org

Comments