digilib@itb.ac.id +62 812 2508 8800

Abstrak
PUBLIC karya

Kompleksitas lingkungan sistem telah menumbuhkan tantangan tersendiri bagi para pengembang perangkat lunak. Perubahan dapat terjadi secara cepat, tidak terduga, dan berkesinambungan, sehingga suatu sistem perangkat lunak dituntut memiliki kemampuan untuk dapat memahami dan bertindak atas apa yang terjadi di dalam sistem itu sendiri dan lingkungannya. Self-adaptive systems telah muncul sebagai jawaban atas tantangan tersebut, namun persoalan ketidakpastian masih menjadi pusat perhatian para peneliti sampai dengan saat ini. Deskripsi requirements yang dipersiapkan saat desain bisa menjadi tidak berlaku pada saat run-time ketika terjadi keadaan yang tidak diprediksi sebelumnya. Oleh karena itu, aktivitas requirements engineering tidak hanya cukup menangkap dan memahami pengetahuan sesuai dengan kondisi saat ini. Namun, pengetahuan untuk kebutuhan sistem kedepan merupakan requirements yang harus dipenuhi. Dengan kata lain, requirements engineering harus dapat menjembatani dan menyelaraskan kebutuhan pada saat desain dan run-time. Selain itu, faktor penting lainnya adalah pemenuhan preferensi pengguna yang dapat dianggap sebagai bagian dari kemampuan adaptasi sistem secara keseluruhan. Persoalan utama dari ketidakpastian dalam self-adaptive systems disebabkan oleh efek dari variabilitas kontekstual, karena kebutuhan kontekstual mengandung ketidakpastian saat run-time dan sebagai salah satu fitur evolusi yang tidak terduga. Saat ini telah dilakukan berbagai upaya untuk merealisasikan kebutuhan adaptasi dalam self-adaptive systems, bahkan sudah terdapat banyak karya yang sudah cukup matang. Namun, pendekatan untuk menangani ketidakpastian berdasarkan kebutuhan kontekstual masih kurang mendapatkan perhatian, terutama di dalam pendekatan goal-oriented requirements engineering, yaitu, untuk menangkap dan menangani seperangkat asumsi lingkungan yang dapat menyebabkan pengetahuan menjadi tidak lengkap atau tidak konsisten. Oleh karena itu, diperlukan suatu pemodelan realitas yang dapat mengandung ketidakpastian kontekstual, tujuannya memanfaatkan pengetahuan yang terbatas tentang domain dan menumbuhkannya melalui perubahan atau pengetahuan baru yang muncul pada saat run-time. Pada dasarnya model yang dikembangkan harus dapat beradaptasi secara mudah dan fleksibel dengan berbagai tingkat pengetahuannya. Disertasi ini memperkenalkan model requirements engineering untuk self-adaptive systems dengan empat kontribusi utama. Pertama, memperkenalkan elemen-elemen penting di dalam bahasa pemodelan requirements yang dapat digunakan perancang perangkat lunak untuk mendefinisikan kebutuhan adaptasi self-adaptive systems. Kedua, memperkenalkan pendekatan untuk memodelkan kebutuhan adaptasi melalui bahasa pemodelan requirements yang diperluas dengan pola control loop dan hieraki pewarisan konteks, sehingga bahasa pemodelan mengandung pola adaptasi dan mampu menangkap kebutuhan kontekstual, serta memungkinkan pemetaannya terhadap komponen perangkat lunak. Ketiga, memperkenalkan pemetaan bahasa pemodelan requirements ke dalam dynamic bayesian network untuk menentukan perilaku adaptasi terkait dengan ketidakpastian kebutuhan kontekstual saat run-time dengan mengakomodasi preferensi pengguna. Keempat, memperkenalkan metamodel pengetahuan kebutuhan adaptasi sebagai panduan penerapan bagi para perancang perangkat lunak. Hasil eksperimen menunjukan bahwa model telah mampu mengatur perilaku sistem dalam merespon perubahan, baik yang disebabkan oleh pengetahuan yang tidak lengkap, asumsi yang salah dari kebutuhan kontekstual, maupun faktor lainnya yang berhubungan dengan ketidakpastian, termasuk dukungannya untuk requirements baru. Berdasarkan perbandingan dengan pekerjaan terkait, karya ini memberikan dukungan desain self-adaptive systems dengan tingkatan architecture adaptability index (AAI) = 0.80, serta mampu merespon persoalan variabilitas domain dan evolusi requirements pada saat run-time. Selain itu, hasil evaluasi metamodel menunjukan tingkat konsistensi 100% terkait struktur, bahasa, dan sintaks dari pengetahuan requirements yang terbentuk melalui 6 class utama, 10 subclass, 18 object properties, 12 data properties, serta 45 instances (untuk kasus cleaner robot) dengan nilai rata-rata cohesion 0.279 dan coupling 0.013.