On the Benefits of Providing
Versioning Support for End Users: An Empirical Study
SANDEEP K. KUTTAL, ANITA SARMA, and GREGG ROTHERMEL, University of
Nebraska-Lincoln
ABSTRACT
End users with little formal programming background are creating software
in many different forms, including spreadsheets, web macros, and web mashups.
Web mashups are particularly popular because they are relatively easy to
create, and because many programming environments that support their creation
are available. These programming environments, however, provide no support for
tracking versions or provenance of mashups. We believe that versioning support
can help end users create, understand, and debug mashups. To investigate this
belief, we have added versioning support to a popular wire-oriented mashup
environment, Yahoo! Pipes. Our enhanced environment, which we call “Pipes
Plumber,” automatically retains versions of pipes and provides an interface
with which pipe programmers can browse histories of pipes and retrieve specific
versions. We have conducted two studies of this environment: an exploratory
study and a larger controlled experiment. Our results provide evidence that
versioning helps pipe programmers create and debug mashups. Subsequent
qualitative results provide further insights into the barriers faced by pipe
programmers, the support for reuse provided by our approach, and the support
for debugging provided.
Categories and Subject Descriptors: D2.9 [Software Engineering]: Management—Software configuration
management; D2.5 [Software Engineering]:
Testing and Debugging—Debugging aids; H1.2 [Models and Principles]: User/MachineSystems—Human factors; human information
processing; H5.2 [Information Interfaces
and Presentation]: User Interfaces—Evaluation/methodology
General Terms: Human Factors
Additional Key Words and Phrases: End-user software engineering,
versioning, Mashups, Yahoo! Pipes, reuse, debugging, programming barriers
ACM Reference Format:
Sandeep K. Kuttal, Anita Sarma, and Gregg Rothermel. 2014. On the
benefits of providing versioning support for end users: An empirical study. ACM
Trans. Comput.-Hum. Interact. 21, 2, Article 9 (February 2014), 43 pages.
Pengkaji: Zahratul Rahmi, G64120066
Ulasan
End-user programming menjadi fenomena yang meluas.
Sejumlah end-users membuat aplikasi
perangkat lunak untuk kebutuhannya sendiri dengan menggunakan alat pemrograman
dan lingkungan seperti Scratch, Labview, web macros, and web mashup
environments. Para reasearcher end-user
programming fokus pada penggunaan prinsip-prinsip rekayasa perangkat lunak
dan teknik yang menyediakan dukungan tersebut dengan tujuan membantu end-users dalam usaha mereka. Version support memungkinkan developer untuk menelusuri alternatif
sumber daya, menentukan versi ini berbeda dengan yang lain dan memilih versi
tertentu atau kembali ke versi sebelumnya. Dalam sebuah penelitian, mengamati
bahwa terdapat kebutuhan untuk version
control untuk meningkatkan pemeliharaan dan penggunaan kembali visual, domain-specific languages. Dukungan versioning dapat membantu pengguna dalam
eksplorasi melalui versi di repositori serta eksplorasi perubahan itu sendiri.
Artikel ini menyelidiki apakah versioning
support dapat membantu end-user
programmer dalam pembuatan program dan debugging.
Mashup web adalah aplikasi yang menggabungkan data, fungsi dan elemen antarmuka
dari dua atau lebih sumber untuk menciptakan layanan baru. Mashup populer
karena peran dalam tren utama, dimana end-user
dapat membuat konten dinamis untuk web, membangun aplikasi perangkat lunak
situsional, serta membangun dan berbagi aplikasi melalui repositori host publik.
Yahoo! Pipes adalah salah satu lingkunan penciptaan mashup paling populer
yang tersedian dan digunakan oleh profesional dan end-user programmer. Mashup ini berbasis web visual programming yang dikenalkan oleh Yahoo! dengan tujuan
memungkinkan para pengguna untuk rewire
web, dan juga cocok untuk solusi dataflow
berbasis masalah pemrosesan dengan menggabungkan perintah sehingga salah
satu output berindak sebagai input untuk yang lainnya, serta
menfasilitasi menghubungkan modul dan transfer data. Pipes Plumber adalah
pendekatan yang digunakan untuk kemampuan versioning
pada Yahoo! Pipes, termasuk fitur, arsitektur, dan antarmuka yang
digunakan. Fitur Versioning, versioning
support disediakan oleh sistem manajemen konfigurasi yang dibangun untuk
profesional yang mengharuskan untuk mempelajari perintah dan konsep tertentu. Untuk
mendapatkan versioning support Yahoo!
Pipes mempertimbangkan setiap fitur versioning
yang tersedia pada profesional sistem manajemen konfigurasi dan membuat fitur analog yang cocok. Sistem arsitektur,
untuk implementasi versioning support
dibuat sebuah proxy wrapper menyadap
kode JSON yang dapat transmisi user’s
client dan Yahoo! Pipes server.
Hal ini memungkinkan Pipes Plumber akan beroperasi pada sebagian web browser. Pada sistem arsitektur ini
menggunakan sebuah proxy server untuk
mengatur komunikasi antara web browser
dan Yahoo! Pipes server. Penggunaan
Internet Content Adaptation Protocol (ICAP), sebuah proxy wrapper memodifikasi respon pesan yang diterima dengan
memasukkan widgets yang terhubung
dengan versioning dan debugging kedalam UI sebelum mengirim pesan ke client.
Interface (antarmuka), UI Pipe
Plumber menambahkan 4 widget pada
antarmuka Yahoo! Pipes client, yaitu
Undo, Redo, Tested dan History. Undo dan Redo adalah tombol yang memungkinkan
user untuk menelusuri antara version
yang bertalian pada pipe. Tested
adalah tombol yang memungkinkan user
untuk mengidentifikasi yang mereka percaya pada kebenaran pipes. History of pipe menampilkan modul tambahan atau dihilangkan
pada pipe per version sehingga user dapat melihat perbedaan antara version dan diimplementasikan dalam
bentuk drop-down list.
Empirical studies, terdapat 2 pembelajaran user. Pertama, eksplorasi studi
melibatkan 9 partisipan dan fokus pada pipe
creation dan memahami tugas dalam ketiadaan dan kehadiran versioning support. Kedua, ekperimen
yang dikontol, melibatkan 24 partisipan dan fokus pada pipe creation dan debugging
tugas dalam ketiadaan dan kehadiran versioning
support. Analisis kualitatif penggunaan versioning,
investigasi kualitifitas peran dan dampak versioning
pada memperbolehkan user untuk
penggunaan kembali dan debug program
pada sebuah domain web mashup. Secara keseluruhan tujuannya adalah untuk
investigasi reasearch bagaimana versioning bermaanfaat bagi programer
dalam reduksi hambatan pembelajaran, membantu dalam penggunaan kembali bagian pipe dan memperbaiki kemampuan debug. Proggramming barriers, studi utama end-users membuat mashup untuk observasi tantangan penting yang
dihadapi user, dengan menentukan
tantangan yang muncul pada Yahoo! Pipes dan memahami kemampuan asal pipe dan kemampuan untuk mengubah ke
tipe awal dari pipe yang akan dikurangi tantangannya. Reuse, ditemukan menjadi mekanisme utama bagi end-users untuk membuat program baru, tetapi reuse
bukan tugas yang mudah maka dilakukan investigasi bagaimana end-users menunjukkan penggunaan kembali
pada Yahoo! Pipes. Debugging, adalah
bagian integral programming. Debugging membutuhkan waktu yang lama dan
tidak mudah dan sebaiknya dibantu pada programming
lingkungan dengan cara menyusun observasi dengan menggunakan klasifikasi framework dari strategi debugging.
Kesimpulan, artikel ini menunjukkan perluasan Pipes Plumber menjadi
Yahoo! Pipes yang menyediakan versioning
support untuk programer mashup menggunakan lingkungan. Hasil empirikal
studi penggunaan lingkungan pada penciptaan mashup dan tugas debugging menyediakan bukti yang versioning support dapat membantu
programer mashup menciptakan dan debug mashup. Analisis kualitatif mengungkapkan
tambahan wawasan yang hambatan alamat versioning dihadapi oleh programer
mashup, penggunaan kembali masalah dan masalah debugging.