-->

Selasa, 24 April 2012

Tahapan dalam Analisis Web Engineering

Rekayasa Web
Rekayasa web adalah proses yang diunakan untuk menciptakan aplikasi web yang berkualitas tinggi. Rekayasa web mengadaptasi rekayasa perangkat lunak dalam hal konsep dasar yang menekankan pada aktifitas teknis dan manajemen. Namun demikian adaptasi tidak secara utuh, tapi dengan perubahan dan penyesuaian. Rekayasa web gabungan antara web publishing (suatu konsep yang berasal dari printed publishing) dan aktifitas rekayasa perangkat lunak. Dikatakan demikian karena desain sebuah aplikasi web menekankan pada desain grafis, desain informasi, teori hypertext, desain sistem dan pemrograman.

Tahapan-tahapan dalam rekayasa web

Formulasi
Kegiatan yang berfungsi untuk merumuskan tujuan dan ukuran dari aplikasi berbasis web serta menentukan batasannya sistem. Beberapa pertanyaan berikut dapat membantu menentukan tujuan :
- Apa motivasi utama pembangunan WebApp?
- Mengapa WebApp diperlukan?
- Siapa yang akan menggunakan WebApp?
Ada dua macam tujuan:
- Informational goals
Menyediakan suatu informasi tertentu kepada pengguna, berupa teks, grafik, audio, dan video
- Applicative goals
Kemampuan untuk melakukan suatu fungsi yang dibutuhkan pengguna, misal dengan menggunakan aplikasi tersebut seorang dosen dapat memperoleh nilai akhir dan statistik nilai mahasiswa dari data-data ujian, tugas, kuis yang ia input ke dalam aplikasi

Perencanaan
Kegiatan yang digunakan untuk menghitung estimasi biaya proyek pembuatan aplikasi berbasis web ini, estimasi jumlah pengembang, estimasi waktu pengembangan, evaluasi resiko pengembangan proyek, dan mendefinisikan jadwal pengembangan untuk versi selanjutnya (jika diperlukan)

Analisis
Ada 4 tipe analisis dalam rekayasa web:
1. Content Analysis
Mengidentifikasi isi yang akan ditampilkan pada aplikasi berbasis web ini. Isi informasi dapat berupa teks, grafik, audio, maupun video
2. Interaction Analysis
Analisis yang menunjukkan hubungan antara web dengan pengguna
3. Functional Analysis
Menentukan operasi yang akan diaplikasikan pada WebApp dan termasuk di dalamnya fungsi-fungsi yang melakukan proses. Semua operasi dan fungsi dideskripsikan secara detil
4. Configuration Analysis
Konfigurasi yang digunakan pada aplikasi berbasis web, internet, intranet, atau extranet. Selain itu, analisis ini juga meliputi relasi database dengan web jika diperlukan

Desain Web
1. Architectural design: menggambarkan struktur WebApp
a. Struktur linier
- urutan interaksi sudah bisa dipastikan
- misal untuk presentasi tutorial, pemesanan produk yang harus mengikuti urutan tertentu

b. Struktur Grid:
    
- isi dapat dikatagorikan dalam 2 atau lebih dimensi
- misal: e-commerce menjual handphone. Horizontal adalah katagori berdasarkan feature hp, sedang vertikal adalah merek HP

c. Struktur jaringan:
- komponen pada struktur ini terhubung satu sama lain
- sekalipun bersifat fleksibel, struktur ini membingungkan user

d. Struktur Hirarki:
- struktur paling umum digunakan
- memungkinkan aliran secara horizontal selain jalur vertikal yang umum
- aliran secara horizontal juga bisa mengakibatkan kebingungan user

2. Navigation design: menentukan navigasi halaman-halaman web. Setelah arsitektur WebApp sudah terbentuk dan komponen-komponen seperti halaman, scripts, applet dan fungsi lain sudah ada, developer menentukan navigasi yang memungkinkan user mengakses isi WebApp dan layananlayanannya. Jika user tidak bisa berpindah ke halaman lain dalam web dengan mudah dan cepat maka mungkin karena grafik, dan isi tidak relevant, ini masalah navigasi.
Dalam desain navigasi beberapa hal perlu dilakukan :
- menentukan semantik (arti ) dari navigasi untuk user yang berbeda
- menentukan cara yang tepat: pilihannya adalah text-based links, icons, buttons and switches, dan graphical metaphors

3. Interface design: membangun interaksi dengan user yang konsisten dan efektif. User interface pada WebApp adalah kesan pertama. Sekalipun nilai isinya baik, kemampuan prosesnya canggih, layanannya lengkap namun jika user interfacenya buruk maka hal lain tidak berguna, karena akan membuat user
berpindah ke web lain. Beberapa petunjuk dalam merancang interface design :
- Server errors, menyebabkan user pindah ke website
- Membaca di layar monitor lebih lambat 25% dari pada di kertas, karena itu teks jangan terlalu banyak
- Hindari tanda “under construction”
- User tidak suka scroll. Pastikan informasi cukup dalam satu layar
- Navigasi menu dan headbar harus konsisten
- Keindahan tidak seharusnya lebih penting dari pada fungsinya
- Opsi navigasi harus jelas sehingga tahu bagaimana berpindah atau mencari hal lain pada halaman aktif

Pengujian pada Rekayasa web
1. Check isi/informasi untuk kesalahan yang mungkin terjadi, misalnya salah ketik
2. design model WebApp di- review untuk menemukan navigation errors
3. processing components an Web pages diuji
4. Integration test untuk arsitektur web :
- Struktur linier, grid, atau hirarki sederhana seperti pada software dengan pemrograman terstruktur (modular)
- Struktur hirarki campuran atau network (Web) seperti pada Object oriented software
5. Uji WebApp secara keseluruhan setelah disatukan semua komponennya secara lengkap
6. WebApp yang diimplementasikan pada konfigurasi yang berbeda diuji kompatibilitasnya. Misalnya jika membuat di IE, coba di Netscape, dan Firefox
7. WebApp diuji oleh sekelompok pengguna dengan kemampuan yang berbeda.Bagian yang diuji adalah isi, navigation, kemudahan penggunaan, kehandalan dan unjuk kerja

Minggu, 01 April 2012

COUPLING

Coupling  adalah ketergantungan antar modul satu dengan modul lainnya. Jadi Coupling adalah sebuah ukuran untuk mengukur seberapa kuatnya sebuah element terhubung dengan element lain. Ukuran ini dipakai juga untuk mengetahui seberapa kuat informasi yang dimilikinya, atau ketergantungan ke element lain. Bayangkan jika anda mengubah 1 modul A tapi karena modul lain memiliki ketergantungan terhadap modul A, maka efek perubahan ini mungkin saja punya impact terhadap modul lain. Karena itu low coupling sangat penting dalam perancangan software.
Ada tiga kelompok besar coupling yaitu :
    1. Normal Coupling
    2. Common Coupling
    3. Content Coupling


Dalam konsep rancangan yang baik maka :
    - Normal Coupling adalah kopling yang baik dan dapat diterima
    - Common Coupling adalah kopling yang tidak dapat diterima
    - Content Coupling adalah kopling yang tidak boleh ada


Kopling yang termasuk di dalam kelompok Normal Coupling adalah :
    > Data Coupling
    > Stamp Coupling
    > Control Coupling


Dua modul dikatakan mempunyai Data Coupling bila saling berkomunikasi melalui parameter dan tiap parameternya adalah sebuah data elementer.
Dua modul dikatakan mempunyai Stamp Coupling bila saling berkomunikasi melalui  sekumpulan data yang terstruktur (record).
Dua modul dikatakan mempunyai Control Coupling bila sebuah modul mengirimkan informasi dengan tujuan mengontrol logika didalam modul yang lain.
Dua modul dikatakan mempunyai Common Coupling atau kadang disebut juga Global Coupling bila menggunakan struktur data yang ataupun elemen data yang berada pada sebuah area data global.
Dua modul dikatakan mempunyai Content Coupling atau kadang disebut juga Pathological Coupling bila dari dalam sebuah modul terdapat perintah yang langsung menunjuk kepada instruksi didalam modul lainnya.




Coupling dapat juga disebut dependency. Makna bebasnya adalah suatu ketergantungan yang dimiliki suatu class terhadap class yang lain. Batasan coupling dimulai dari "high coupling" hingga "low coupling". Disebut "no coupling" jika benar2 tidak ada ketergantungan antar class. Sebuah aplikasi dikatakan baik, jika modulnya bersifat low coupling.
Sebagai contoh , kita membuat class manusia. Lalu menciptakan variabel object dari class tangan, class badan, class kaki, dan class kepala. Setelah itu kita definisikan method tidur, makan, bicara, berjalan. Dapat terbayang untuk makan saja, kita harus mendeskripsikan aktivitas cuci tangan (yang dilakukan class tangan), proses makan (yang dilakukan class kepala), lalu kenyang (diekspresikan oleh class badan).
Hal diatas "high coupling", ketergantungan dengan class lain begitu tinggi. Dan sebaiknya, modul itu harus diubah menjadi "low coupling". Kenapa? salah satunya karena ini menyebabkan proses testing menjadi "tanggung", karena class manusia tergantung dengan class-class lain yang bisa saja isinya berubah. Ini menyebabkan class menjadi tidak reusable.
Bagaimana mengubahnya menjadi low coupling? Dengan membuat class-class anggota tubuh tadi menjadi interface, lalu biarkan class manusia mengimplementasi abstraksinya. Dengan demikian ini tidak akan mengganggu perubahan di masing2 sisi class.
Secara ga langsung class yang low coupling akan mengarahkan class berkarakter ‘high cohesion’. Vice versa.