Sabtu, 15 September 2012

REKAYASA KEBUTUHAN APLIKASI WEB

REKAYASA KEBUTUHAN APLIKASI WEB

  • Pendahuluan
  • Fundamental
  • Tantangan rekayasa kebutuhan (Requirement Engineering, RE) dalam web engineering
  • Asas rekayasa kebutuhan aplikasi web
  • Adaptasi metode RE untuk pengembangan aplikasi web
  • Harapan ke depan

A. PENDAHULUAN

  • Kebutuhan atau persyaratan sistem memegang peranan kunci dalam proyek pengembangan aplikasi web.
  • RE berurusan dengan prinsip, metode dan tool untuk mengidentifikasi, menggambarkan, memvalidasi, dan mengelola kebutuhan di dalam pengembangan sistem.
B. FUNDAMENTAL
  • Kebutuhan tidak dihasilkan secara otomatis tetapi harus diidentifikasi dalam aktifitas engineering.
  • Terlambat memperbaiki kerusakan dapat menyebabkan kerugian s.d 200 kali dibandingkan masalah diidentifikasi dan dikoreksi sejak awal
  • Pengumpulan dan menyaringan kebutuhan adalah fungsi utama insinyur software bagi pelanggan.
  • Masih sedikit pengalaman dalam aplikasi web dibandingkan domain lain. Kebutuhan diperoleh, didokumentasikan dan dikelola secara sangat tidak sistematis.
  • 16% dari aplikasi web 100% memenuhi kebutuhan, 53% tidak memenuhi kemampuan yang dibutuhkan.
C. DARI MANA KEBUTUHAN HADIR?
  • Stakholder: orang atau organisasi yang yang mempunyai pengaruh langsung atau tak langsung pada kebutuhan dalam pengembangan sistem(pelanggan, pengguna dan pengembang).
  • Stakeholder bagi aplikasi web termasuk penulis content, pakar bidang terkait, pakar usability atau profesional pemasaran.
D. KATEGORI KEBUTUHAN
  • Fungsional: kemampuan dan layanan yang diberikan sistem.
  • Non-fungsional: menggambarkan tingkat kualitas yang diinginkan (“Berapa aman?”, “Berapa usable?”).
  • Batasan: kondisi yang tak dapat dinegosiasikan tetapi mempengaruhi proyek. Misal: tingkat keterampilan dari tim pengembangan, anggaran yang tersedia, tanggal delivery atau infrastruktur komputer.
E. DEFINISI KEBUTUHAN
  1. Kondisi atau kemampuan yang dibutuhkan oleh pengguna untuk memecahkan masalah atau mencapai suatu tujuan.
  2. Kondisi atau kemampuan yang harus dipenuhi atau diproses oleh sistem atau komponen sistem untuk memenuhi suatu kontrak, standard, spefisikasi atau dokumen yang ditentukan secara formal lainnya.
  3. Representasi dari kondisi atau kemampuan sebagaimana dalam (1) atau (2). Terdokumentasi.
F. DOKUMEN KEBUTUHAN
Merangkum semua kebutuhan dan batasan yang disetujui antara pengembang dan pelanggan.

G. AKTIFITAS REKAYASA KEBUTUHAN
  • Mencakup pengumpulan, dokumentasi, verifikasi dan validasi, juga manajemen dari kebutuhan sepanjang proses pengembangan.
  • Konsekwensinya:

- Pengumpulan & Negosiasi Kebutuhan

- Dokumentasi Kebutuhan

- Verifikasi & Validasi Kebutuhan

- Manajemen Kebutuhan

H. PENGUMPULAN DAN NEGOISASI
  • “ Kebutuhan tidak terkoleksi dengan mengajukan pertanyaan yang benar”. Kebutuhan merupakan hasil dari proses pembelajaran dan pembangunan kesepakatan.
  • Dalam proses ini, komunikasi antar stakeholders merupakan hal yang sangat penting.
I. DOKUMENTASI KEBUTUHAN
  • Stakeholders’ agreements (kesepakatan para stakeholder) harus disaring dan dideskripsikan dalam requirements document (Dokumen Kebutuhan) secara rinci (detail), formal dan tepat bagi konteks proyek.
  • Deskripsi informal seperti cerita pengguna dan deskripsi semi-formal seperti use case, adalah sangat relevan dalam Web engineering.
J. VALIDASI DAN VERIFIKASI
  • Kebutuhan perlu divalidasi (disahkan) (Apakah kita menetapkan hal-hal yang benar?)
  • dan diverifikasi (dibuktikan) (Apakah kita menetapkan hal-hal secara benar?).
  • Ada beberapa metode konvensional untuk tujuan ini seperti review, inspection atau prototyping.
K. MANAJEMEN KEBUTUHAN
  • Kebutuhan merupakan subyek yang sering berubah
  • Metode dan tool untuk tujuan ini harus mendukung integrasi kebutuhan baru, perubahan kebutuhan yang ada, mengevaluasi pengaruh perubahan dan mengelola hubungan antar kebutuhan.
L. RE DALAM WEB ENGINEERING
Dibandingkan software konvensional:

  • Ada perbedaan dan kemiripan.
  • Sekilas perbedaan terlihat tak berarti (dapat diabaikan) dan diperdebatkan. Jika dilihat lebih dekat ke beberapa pokok, perbedaannya menjadi jelas.
  • Perbedaan akan diperoleh berdasarkan karakteristik dari aplikasi web.
M. TANTANGAN RE WEB ENGINEERING
  1. Multidisciplinary
    Pengembanga aplikasi web melibatkan pakar dari berbagai bidang. Misal: Pakar multimedia, pembuat content, software architecs, pakar usability, ahli database.
  2. Tiadanya Stakeholder
    Banyak stakeholders, seperti pengguna web yang potensial, masih tidak diketahui selama aktifitas RE.
  3. Mengembangnya kebutuhan dan batasan
    Kebutuhan dan batasan (misal property dari deployment platforms atau protokol komunikasi) mudah di definisikan pada software konvensional. Aplikasi web tidak.
  4. Lingkungan operasional sulit diprediksi
    Lingkungan operasional dari aplikasi web sangat dinamis. Sulit diprediksi.
  5. Pengaruh sistem warisan
    Pengembangan aplikasi web dicirikan dengan integrasi berbagai software yang telah ada, baik closed maupun open source
  6. Pentingnya aspek kualitas
    Aspek kualitas menentukan suksesnya aplikasi web (kinerja, keamanan, availability atau usability).
  7. Kualitas user interface
    User interface sangat penting untuk melengkapi definisi dan deskripsi dari kebutuhan.
  8. Kualitas content
    Content web merupakan aspek sangat penting dari aplikasi web.
  9. Kurangnya pengalaman pengembang
    Kurangnya pengalaman memanfaatkan tool pengembagan, standard, bahasa, dll dari teknologi ini dapat menyebabkan kesalahan dalam memperkirakan kejadian dan biaya menerapkan kebutuhan.
  10. Tanggal delivery perusahaan
    Banyak proyek web bersifat proyek design-to-scedhule, dimana semua aktifitas dan keputusan harus memenuhi suatu deadline proyek yang telah di tetapkan.
N. ASAS RE APLIKASI WEB
  1. Memahami konteks sistem
    Banyak aplikasi web dikembangkan sebagai solusi teknis terisolasi, tanpa memahami peran dan pengaruhnya dalam konteks besar.
  2. Melibatkan stakeholder
    Success-critical stakeholders atau perwaliannya ada pada inti (heart) dari RE.
  3. Definisi iteratif dari kebutuhan
    Pendekatan waterfall untuk mendefiniskan kebutuhan biasanya tidak bekerja pada lingkungan yang sangat dinamis.
  4. Fokus pada arsitektur sistem
    Memahami arsitektur sistem memudahkan pengembang mengetahui pengaruh dari solusi yang hadir pada kebutuhan dan memperkirakan pengerjaannya.
  5. Orientasi resiko
    Poin penting munculnya resiko:

    • Integrasi dari komponen yang telah ada (existing) ke dalam aplikasi web
    • Prediksi dari aspek kualitas sistem, atau kurang berlengalamannya pengembang.
O. ANTISIPASI RESIKO
  • Penilaian terhadap resiko dilakukan sebelum pelaksanaan kebutuhan.
  • Resiko yang teridentifikasi disesuaikan dengan rangkaian proyek. Pastikan alternatif solusi tidak mengejar.
  • Kelonggaran resiko harus ditempatkan sedini mungkin.
  • Termasuk pembuatan prototipe, untuk menghindari masalah IKIWISI, rilis awal dari aplikasi web untuk mengumpulkan feedback pengguna atau penggabungan awal dari komponen eksternal untuk menghindari masalah integrasi yang terlambat dan berat.
P. TIPE KEBUTUHAN
  1. Kebutuhan fungsional
    Kemampuan dan layanan sistem

    “Pengguna dapat memilih suatu icon untuk menampilkan artikel dalam shopping cart pada waktu tertentu.”
  2. Kebutuhan non fungsional
    Properti dari kamampuan dan level layanan yang diharapkan

    “Aplikasi web akan mendukung setidaknya 2500 pengguna aktif”.
Q. Tipe kebutuhan relevan dengan proyek pengembangan web
  • Kebutuhan fungsional
  • Kebutuhan content
  • Kebutuhan kualitas
  • Kebutuhan lingkungan sistem
  • Kebutuhan evolusi
R. Ciri kualitas
  1. Fungsionality (kemampuan)
    Menggambarkan kehadiran fungsi yang memenuhi properti yang didefinisikan
  2. Reliability (handal)
    Menggambarkan kemampuan produk software untuk memelihara tingkat kinerjanya
  3. Usability
    Menggambarkan upaya yang diperlukan untuk menggunakan suatu produk software
  4. Efficiency
    Menggambarkan rasio antara tingkat kinerja dari produk software dan sumberdayanya
  5. Maintainability
    Menggambarkan upaya yang dibutuhkan untuk mengimplementasikan perubahan terantisipasi dalam produk software
  6. Portability
    Menggambarkan kesesuaian produk software untuk dipindahkan dari satu lingkungan ke lingkungan lain

0 komentar:

Posting Komentar