Tampilkan postingan dengan label materi kuliah. Tampilkan semua postingan
Tampilkan postingan dengan label materi kuliah. Tampilkan semua postingan

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

Rabu, 12 September 2012

Istilah-Istilah dalam Rekayasa Web

Istilah-Istilah dalam Rekayasa Web :

1. 1. Website Engineering :

Suatu proses yang digunakan untuk menciptakan suatu sistem aplikasi berbasis web dengan menggunakan ilmu rekayasa, prinsip-prinsip manajemen dan pendekatan sistematis sehingga dapat diperoleh sistem dan aplikasi web dengan kualitas tinggi. Tujuannya untuk mengendalikan pengembangan, memininalisasi resiko dan meningkatkan sistem berbasis web. Web engineering berbeda dengan software engineering, walupun keduanya melibatkan pemrograman dan pengembangan perangkat lunak. Web engineering memiliki banyak pendekatan, metoda, alat bantu, teknik, dan panduan yang memenuhi persyaratan pembuatan sistem berbasis web.

2. 2. Hypermermedia Engineering :

ü Hipermedia berhubungan dengan objek informasi yang terhubung (linked). Hipermedia akan secara khusus tertarik pada properti sistem arsitektur(seperti web) yang mendukung hypermedia linking, hipermedia link traversal, dan desain hypermedia linked yang besar (seperti situs web), seperti halnya properti naratif dan retorikal dari struktur tautan (link) hipermedia yang spesifik. Area hipermedia meliputi hal-hal berikut:

a. Desain, yaitu teknik2 untuk penstrukturan dan pemisahan ruang informasi ke dalam halaman hipermedia individual.

b. Visualisasi, yaitu teknik2 grafis untuk penyimpanan suatu ikhtisar dari situs web

c. Usabilitas, yaitu teknik2 analisis dan desain untuk meyakinkan situs web agar menjadi lebih efisien jika di gunakan untuk menyelesaikan tugas-tugas yang spesifik.

d. Tool kolaboratif, yaitu tool perangkat lunak yang mengijinkan jaringan hipermedia untuk dikembangkan secara terus menerus dengan berbagai orang yang berasal dari berbagai organisasi.

ü Istilah lain dari Hypermedia yaitu sebuah istilah yang berasal dari hypertext, memperluas link hypertext untuk menyertakan link antara setiap set objek multimedia, termasuk suara, video gerak, dan virtual reality. Hal ini juga dapat berkonotasi tingkat yang lebih tinggi dari pengguna / jaringan interaktivitas dari interaktivitas yang sudah tersirat dalam hypertext. Atau secara sederhana dapat dikatakan sebagai istilah umum yang digunakan untuk mencakup bagaimana isi web konten ditampilkan, (biasanya berupa hypertext atau hypermedia) yang dikirimkan ke pengguna akhir melalui World Wide Web, dengan menggunakan sebuah browser web atau perangkat lunak berbasis web.

3. 3. Document Engineering

Lembar dokumen sebagai ide pelengkap dari informasi dan analisis sistem, bentuk cetak dari elektronik, analisis proses bisnis, dan informatika bisnis yang bekerjasama dalam proses dengan menggunakan sebuah aplikasi sehingga menghasilkan fakta yang sesuai dan dibutuhkan oleh pengguna (human). Dari sebuah penelitian yang dipublikasikan oleh Robert J. Glushko dan Tim McGrath, rekayasa dokumen mencoba menyatukan antara analisis dan perspektif yang berbeda pemodelannya sehingga dapat membantu dalam menentukan, mendesain, dan melaksanakan dokumen serta proses yang berlangsung dan mengkonsumsinya.
Dalam konteks rekayasa dokumen, dokumen umumnya mengacu pada potongan
perintah informasi yang digunakan oleh aplikasi komputer atau layanan web. Ini memiliki relevansi khusus di bidang desain XML.

4. 4. Content Engineering

Merupakan istilah yang digunakan untuk menggambarkan materi ataupun informasi yang ingin disampaikan kepada publik (dipublikasikan), yang bisa dipresentasikan melalui teks, gambar, suara, animasi dan sebagainya. Content mengarah pada materi yang dilihat oleh viewer. Ditinjau dari segi informatika, content adalah suatu istilah untuk menggambarkan informasi, khususnya dalam suatu konteks digital, bisa dalam bentuk halaman web, seperti informasi yang tersimpan dalam file, seperti: teks, gambar, suara, danvideo.

5. 5. Internet Software Engineering

Satu bidang profesi yang mendalami cara-cara pengembangan perangkat lunak khususnya bidang internet termasuk pembuatan, pemeliharaan, manajemen organisasi pengembanganan dan manajemen kualitas. Rekayasa internet adalah pengubahan dunia internet itu sendiri guna mengembangkan, memelihara, dan membangun kembali dengan menggunakan prinsip rekayasa untuk menghasilkan perangkat lunak (internet) yang dapat bekerja lebih efisien dan efektif untuk pengguna.