Minggu, 12 Desember 2010

Proses Pengembangan Aplikasi Web

1.1    Motivasi
Web berkembang dari sebuah informasi murni ke media aplikasi medium (Ginige
dan Murugesan 2001a, Murugesan et al. 1999). Kecenderungan dalam aplikasi Web adalah sistem software yang kompleks. Pentingnya sebuah keteraturan dan struktur yang baik dalam proses pembangunan sebagai kompleksitas aplikasi Web dalam meningkatkan pengembangan. Sebagian besar pendekatan pengembangan yang dipraktekkan saat ini terlalu pragmatis (McDonald dan Welland 2001a). Meskipun hal ini membutuhkan waktu pengembangan yang singkat, pendekatan seperti itu sering disebut cara "Cepat dan kotor".

  1. Fundamental
    Kami membedakan antara process models dan methods yang digunakan dalam proses pengembangan perangkat lunak. Literatur yang sering digunakan pada kedua persamaan, karena proses model dan metode menjelaskan bagaimana suatu proyek pengembangan perangkat lunak berlangsung. Cara termudah untuk melihat perbedaan adalah dengan melihat ciri-ciri umum.


 

Properti penting dari proses pengembangan perangkat lunak modern adalah iteratif. Ide dasarnya adalah untuk mengembangkan sistem perangkat lunak secara bertahap dari hasil awal ke final produk dalam beberapa iterasi (lihat Gambar 10-2).


 

Tujuan ini berfungsi untuk menangani resiko proyek sedini mungkin. Selain itu, kegiatan metodologis yang muncul adalah untuk menangani risiko yang teridentifikasi dapat diberikan ke fase. Proses perangkat lunak yang dikenal dapat membangun dikelompokkan menjadi dua kategori: lightweight processes yang lebih dikenal sebagai agile processes dan heavyweight processes.

  1. Persyaratan untuk Proses Pengembangan Aplikasi Web

Sejumlah konsekuensi juga akan dibahas dalam bagian ini, ada enam persyaratan:

  1. Penanganan Pembangunan Siklus Pendek

Fakta yang ditemukan di studi empiris multiple bahwa waktu pengembangan aplikasi Web
sangat singkat, tetapi biasanya tidak melebihi enam bulan, dan durasi rata-rata kurang
dari tiga bulan (McDonald dan Welland 2001a, McDonald dan Welland 2001b).

  1. Penanganan Perubahan

Titik yang sangat terkait dengan kebutuhan sebelumnya adalah fakta persyaratan untuk aplikasi Web sering muncul selama perkembangannya, atau patuh pada perubahan besar yang
berkenaan baik dengan isi dan teknologi.

  1. Rilis dengan Tepat waktu dan isi yang Fleksibel

Konsekuensi bukan dari kebutuhan terakhir yaitu kebutuhan untuk menggunakan jenis khusus dari prototyping dalam proses pembangunan. Lebih khusus lagi, "sekali pakai" release yang dikembangkan secara detail dan memvalidasi kebutuhan pelanggan.

  1. Pengembangan Paralel Pers

Persaingan ketat para pesaing untuk memperpendek siklus rilis. Di bawah tekanan waktu, proyek-proyek pembangunan paralel dapat menyebabkan distribusi lengkap aplikasi atau rilis pada waktunya.

  1. Reuse dan Integrasi

Salah satu konsekuensi dari tekanan waktu yang sangat besar dalam pengembangan aplikasi Web adalah pengembang harus mencoba untuk menggunakan kembali komponen sebanyak mungkin (Ramesh et al 2002.).

  1. Beradaptasi terhadap Tingkat Kompleksitas Aplikasi Web's

Skalabilitas dan maintainability adalah contoh untuk kualitas yang sering disisihkan. Berturut-turut maju fungsionalitas produk yang diterbitkan. Kualitas hilang dalam tahap pengembangan awal diperkenalkan di rilis berikutnya dengan mengganti komponen dan mengembangkan yang baru.

  1. Ringkasan

Banyak karakteristik yang khas untuk proses pengembangan aplikasi Web dapat
ditemukan dalam proses pengembangan perangkat lunak tradisional, kejadian dan intensitas yang berbeda (Ramesh et al 2002.).

  1. Analisis Proses Unified Rasional

Bagian ini membahas bagaimana Rational Unified Process (RUP) sebagai wakil dari
model proses kelas berat dapat digunakan untuk pengembangan aplikasi Web.

  1. Pendahuluan

Bab ini menjelaskan Rational Unified Process (RUP) (Jacobson et al 1999.) sebagai perwakilan
dari keluarga kelas berat proses, fase-oriented, incremental, dan iteratif.
Tujuan dari proses ini adalah untuk mendukung pengembangan produk berkualitas tinggi dalam tetap periode waktu dan pada harga tetap.


 

Keempat fase dan peranannya diuraikan di bawah ini (Hunt 2000):
• Fase Inception

• Fase Uraian


 

• Tahap Konstruksi

• Transisi fase

  1. Kesesuaian Umum Pengembangan Aplikasi Web

Bagian ini membahas bagaimana tahapan RUP dapat digunakan untuk pengembangan Web
aplikasi. Diantaranya : fase Inception, Tahap Elaborasi, Tahap Konstruksi, Transisi fase.

  1. Apakah RUP memenuhi Persyaratan Aplikasi Web?

1. Penanganan siklus pengembangan yang pendek : Siklus khas proyek yang RUP adalah
dirancang sangat berbeda dari yang khas untuk pengembangan aplikasi Web

2. Penanganan mengubah persyaratan : Menurut definisi dari fase RUP, ada
harus menjadi visi konkret dari aplikasi Web yang sedang dikembangkan pada akhir
tahap awal.

3. Rilis dengan tenggat waktu tetap dan isi fleksibel : Suatu proses berdasarkan RUP menghasilkan rilis pada akhir setiap iterasi.

4. Paralel perkembangan rilis yang berbeda : Dalam proses berdasarkan RUP, pengembangan paralel pelepasan yang berbeda akan harus dilakukan iterasi paralel

5. Reuse dan integrasi : RUP adalah proses pengembangan berbasis komponen, yang berarti bahwa mengejar tujuan untuk mengembangkan komponen dapat digunakan kembali.

6. Beradaptasi dengan tingkat kompleksitas aplikasi Web : RUP adalah suatu kerangka kerja proses yang dapat disesuaikan dengan berbagai aplikasi dan persyaratan organisasi.

  1. Analisis Extreme Programming

Bagian ini membahas kesesuaian Extreme Programming (XP) (Beck 1999, Beck dan Fowler
2000) - software paling populer pengembangan model proses agile - untuk pengembangan
Aplikasi web.

  1. Pendahuluan

Bagian ini menganalisa XP sebagai wakil proses iteratif tangkas.


 

Tujuan utama dari nilai inti adalah untuk menghentikan masalah pada titik sedini mungkin selama proses pembangunan. Dalam permainan perencanaan, kontraktor bertanggung jawab untuk menetapkan prioritas untuk kemungkinan perkembangan lebih lanjut, sedangkan pengembang bertanggung jawab untuk memperkirakan biaya dan waktu perkembangan lebih lanjut untuk membuat dasar prioritas.


 

Gambar 10-6 menunjukkan program skema peristiwa dalam suatu iterasi. Setelah rencana iterasi,
para pengembang membentuk pasangan yang kemudian bekerja sama dalam program lebih lanjut iterasi itu. Pada berikutnya iterasi, pasangan akan dikocok. Setiap pasangan dapat mengubah kode yang dikembangkan oleh pasangan lain. Dan unit test memastikan bahwa perubahan tidak akan menyebabkan kesalahan baru.


 

Inti fungsionalitas untuk pembangunan dalam sebuah proyek percontohan harus dipilih, dan tidak boleh lebih dari satu sub-proyek harus dimulai pada saat yang sama.

  1. Apakah XP memenuhi Persyaratan Aplikasi Web

1. Penanganan siklus pengembangan yang singkat : Cepat rilis berturut-turut adalah salah satu karakteristik proyek XP.

2. Penanganan persyaratan berubah : Kesederhanaan, yang merupakan salah satu dari empat nilai inti XP, berarti bahwa setiap perencanaan jangka panjang hanya dapat menjadi kasar dan awal dalam sebuah XP proyek.

3. Rilis dengan tenggat waktu tetap dan isi fleksibel : Mendahului penerimaan sukses uji
penerbitan sebuah rilis.

4. pengembangan paralel dari rilis yang berbeda : XP tidak mendasar mengecualikan paralel
rilis pengembangan yang berbeda.

5. Reuse dan integrasi: Karena perkembangan tekanan waktu Webapplication besar,
adalah penting untuk menggunakan kembali komponen yang ada.
6. Beradaptasi dengan tingkat kompleksitas aplikasi Web: Hal positif tentang XP untuk awal
tahapan proyek pengembangan aplikasi Web adalah untuk dapat menangani yang belum jelas persyaratan, dan bahwa aplikasi Web dapat digunakan setelah siklus pengembangan yang singkat.

  1. Outlook

Pembahasan proses perangkat lunak seberapa populer pembangunan dapat memenuhi persyaratan untuk pengembangan aplikasi web telah menunjukkan bahwa tidak ada proses yang dibahas dalam bab memenuhi semua persyaratan.


 

(lihat Gambar 10-8). Sebagai contoh, salah satu tugas dari proses-meta adalah untuk terus-menerus memantau tanda-tanda transisi ke tingkat kompleksitas yang lebih tinggi.

Selasa, 07 Desember 2010

BAB VII

Testing Web Application

Aplikasi web telah berkembang menjadi sebuah platform komunikasi yang penting bagi banyak perusahaan. Pengujian metodis dan sistematis didirikan pada skema tersebut, layak dan berguna selama pengembangan dan evolusi dari aplikasi Web.

  1. Introduction

Aplikasi Web merupakan tantangan baru untuk jaminan kualitas dan pengujian. Aplikasi Web terdiri dari komponen perangkat lunak yang beragam yang disediakan oleh produsen yang berbeda. Kualitas Aplikasi web pada dasarnya ditentukan oleh kualitas setiap komponen perangkat lunak yang terlibat dan kualitas keterkaitan mereka. Pengujian adalah salah satu instrumen yang paling penting dalam pengembangan aplikasi Web untuk mencapai produk-produk berkualitas tinggi yang memenuhi harapan bagi pengguna.

  1. Fundamentals
  2. Terminology

Pengujian adalah kegiatan dilakukan untuk mengevaluasi kualitas suatu produk dan untuk meningkatkan itu dengan mengidentifikasi cacat dan masalah. Jika kita menjalankan program dengan maksud untuk menemukan kesalahan, maka kita bicara tentang pengujian (Myers 1979). Gambar 7-1 menunjukkan bahwa pengujian merupakan bagian dari jaminan kualitas analitis langkah-langkah (Bourque dan Dupuis 2005).


  1. Quality Characteristics

Pengguna mengharapkan aplikasi yang mudah digunakan, handal, cepat, kompatibel dengan sistem lain dan masa depan versi, dan sejenisnya. Oleh karena itu, penting untuk menguji aplikasi apakah memenuhi persyaratan kualitas, yaitu jenis karakteristik mutu yang diharapkan oleh pengguna.

  1. Test Objectives

Pengujian tidak akan mengarah pada peningkatan mutu kecuali kesalahan yang terdeteksi. Tujuan utama pengujian adalah untuk menemukan kesalahan.
Sebuah pengujian tersebut berhasil jika kesalahan yang terdeteksi, masing-masing informasi tambahan tentang masalah dan status aplikasi tersebut diperoleh.Kita harus memulai pengujian sedini mungkin pada awal proyek.Simak

  1. Test Levels

Menurut tahap pembangunan yang berbeda ketika kita dapat menghasilkan hasil yang diuji, kami mengidentifikasi tingkat uji untuk memfasilitasi pengujian hasil ini.

  • Baca secara fonetik
  • Tes Unit
  • Tes Integrasi
  • Sistem tes
  • Tes Penerimaan
  • Tes Beta
  1. Role of the Tester

Tujuannya untuk menemukan banyak kesalahan mungkin memerlukan penguji untuk memiliki "destruktif" sikap terhadap pengujian. Sebaliknya, sikap seperti biasanya sulit bagi pengembang untuk memiliki sendiri bagian dari perangkat lunak, sehingga ia biasanya tidak memiliki waktu yang cukup untuk bekerja sendiri setelah pembangunan "konstruktif" dan pemecahan masalah aktivitas.

  1. Test Specifics in Web Engineering

Poin-poin berikut ini menguraikan spesifik yang paling penting dan tantangan di Web pengujian aplikasi berbasis pada karakteristik aplikasi :

  • Kesalahan dalam "isi" sering ditemukan dengan manual atau tindakan organisasi, mis, oleh proofreading.
  • Ketika pengujian struktur hypertext
  • Lembut, persyaratan subjektif pada tingkat penyajian aplikasi Web.
  • Jumlah besar perangkat potensial dan karakteristik yang berbeda kinerja mereka
    (Multi-platform) merupakan tantangan.
  • Ketersediaan global dan penggunaan aplikasi Web, ada banyak tantangan
    sehubungan dengan multilinguality dan kegunaan dalam pengujian aplikasi Web. Simak

Baca secara fonetik


 

  • "usia muda" dan "multidisciplinarity
  • aplikasi Web terdiri dari sejumlah komponen perangkat lunak yang berbeda dan sistem terintegrasi yang sering disediakan oleh vendor yang berbeda, dan dilaksanakan dengan teknologi yang berbeda.
  • "ketidakmatangan" ujian banyak metode dan alat-alat merupakan tantangan tambahan untuk tester.
  • "dominasi perubahan" membuat pengujian aplikasi Web lebih kompleks daripada pengujian konvensional software.
  1. Test Approaches

Penjelasan karakteristik pendekatan pengujian konvensional dan gesit serta perbedaanya.

  1. Conventional Approaches

Dari perspektif pendekatan konvensional, pengujian kegiatan proyek meliputi perencanaan, mempersiapkan, melakukan, dan pelaporan.

  1. Agile Approaches

Pendekatan Agile mengasumsikan bahwa tim akan mencari solusi untuk masalah-masalah bersama dan mandiri.


Praktek-praktek berikut Extreme Programming (XP) memiliki pengaruh tertentu pada pengujian dan jaminan kualitas.

  • Pasangan pemrograman
  • Sebuah pelanggan on-site
  • Integrasi Berkelanjutan
  • Pengembangan Test pertama
  1. Test Scheme

Bagian ini menjelaskan skema generik untuk pengujian aplikasi Web.

  1. Three Test Dimensions

Setiap tes memiliki tujuan yang ditetapkan, misalnya, untuk memeriksa kebenaran suatu algoritma, untuk mengungkapkan keamanan pelanggaran dalam suatu transaksi, atau untuk menemukan ketidaksesuaian gaya dalam sebuah representasi grafis.


  1. Applying the scheme to web applicationSimak

Baca secara fonetik

Kamus - Lihat kamus yang lebih detail

Simak

Baca secara fonetik

Kamus - Lihat kamus yang lebih detail


 

Bagian ini menjelaskan bagaimana dimensi skema generik diperkenalkan pada sebelum bagian dapat terstruktur untuk mengakomodasi karakteristik khusus aplikasi Web dan Simak

Baca secara fonetik

Kamus - Lihat kamus yang lebih detail

Proyek web.

Test Objects ( Objek Uji )

Pengujian perangkat lunak Tradisional menggambarkan dimensi benda uji terutama oleh fungsi sistem yang diuji, ditetapkan dalam bentuk persyaratan fungsional.

Phases

Dimensi ketiga dari skema - fase - berfokus pada urutan temporal Web aplikasi pengujian. Dimensi ini menunjukkan kapan uji yang harus dijalankan dalam Web siklus hidup aplikasi.

  1. Examples of Using The Test Scheme

Untuk menangani tiga dimensi kubus yang disajikan di bagian sebelumnya, kami menggunakan dua dimensi matriks mewakili irisan atau proyeksi untuk menghapus salah satu dari tiga dimensi.

  1. Test Methods and Techniques

Ketika pengujian aplikasi Web, kita pada dasarnya dapat menerapkan semua metode dan teknik umum digunakan dalam pengujian perangkat lunak tradisional (lihat Myers 1979, Beizer 1990, Kaner et al 1999,. Jorgensen 2002).


Bagian-bagian berikut menjelaskan secara singkat metode yang khas dan teknik untuk aplikasi Web pengujian.

  1. Link Pengujian

Link dalam struktur navigasi hypertext yang mengarah ke sebuah node yang tidak ada (halaman, gambar, dll) atau jangkar disebut broken link dan mewakili terkenal dan sering terjadi kesalahan dalam aplikasi Web.

  1. Pengujian Browser

Sejumlah besar Web browser yang berbeda dapat digunakan sebagai klien untuk aplikasi Web.Selama pengujian ini, seseorang harus mengajukan pertanyaan-pertanyaan berikut:

  • Apakah aplikasi Web dikelola dengan benar?
  • Dapatkah sebuah halaman (yang dihasilkan secara dinamis) Web akan bookmarked selama transaksi, dan dapat pengguna menavigasi ke halaman kemudian tanpa harus memasukkan nama pengguna dan password untuk login di?
  • Dapatkah pengguna menggunakan aplikasi Web untuk membukanya dalam jendela browser beberapa bersamaan?
  • Bagaimana aplikasi Web bereaksi ketika browser memiliki cookies atau bahasa script dinonaktifkan?
  1. PengujianUsability

Usability testing mengevaluasi kemudahan-isu-penggunaan desain Web yang berbeda, tata letak keseluruhan, dan navigations (lihat Bab 11) dari aplikasi Web oleh satu set pengguna yang representatif.

  1. Load, Stress, and Continuous Testing

Load tes, stress test, dan pengujian terus menerus didasarkan pada prosedur yang sama. Beberapa permintaan dikirim ke aplikasi Web yang diuji secara bersamaan oleh pengguna simulasi untuk mengukur respon kali dan throughput.

  1. Testing SecuritySimak

Kriteria yang paling penting untuk aplikasi Web adalah bahwa keamanan. Kebutuhan untuk mengatur akses terhadap informasi, untuk memverifikasi identitas pengguna, dan untuk mengenkripsi informasi rahasia adalah penting penting.

• Kerahasiaan

• Otorisasi

• Otentikasi

• Akuntabilitas

• Integritas

  1. Test-driven DevelopmentSimak

Baca secara fonetik

Kamus - Lihat kamus yang lebih detail


 

pembangunan Test-driven (Beck 2002) muncul dari pendekatan uji-pertama kali digunakan dalam Extreme Pemrograman, tetapi tidak selalu menentukan pendekatan proyek tangkas.

  1. Test Automation

Pengujian sistem yang besar sangat manfaat dari alat-alat yang menerapkan dan mengotomatisasi metode dan teknik

  1. Benefits and Drawbacks of Automated Tests

Otomasi dapat secara signifikan meningkatkan efisiensi pengujian dan, selanjutnya, memungkinkan baru jenis tes yang juga meningkatkan cakupan (misalnya benda uji yang berbeda dan karakteristik kualitas) dan kedalaman pengujian (misalnya jumlah besar dan kombinasi data input).

  1. Test Tools

alat uji Umum digunakan mendukung tugas-tugas berikut:

• Test perencanaan dan manajemen

• Statis dan analisis dinamis

• Mengotomasi percobaan

• Sistem pemantauan

• General tugas

  1. Selecting Test Tools

Kecenderungan saat ini di alat uji untuk aplikasi Web adalah erat digabungkan dengan evolusi terus-menerus teknologi Web dan proses pembangunan modern.

  1. Outlook

Kisaran luas persyaratan mutu pada aplikasi Web mendorong reorientasi luar fokus tradisional pada fungsi dalam pengujian dan membutuhkan pendekatan untuk mengelola upaya pengujian dalam kerangka waktu menyusut dan anggaran berdasarkan pertimbangan risiko.

Senin, 01 November 2010

Web Engineering "SOA, Struts & MVC, Pattern & Framework"

1.Design Pattern adalah sebuah solusi untuk mengulang masalah Design.Solusi ini telah dikembangkan,dikompile dan di saring oleh programmer yang sebelumnya telah menghadapi masalah ini.
Framework adalah desain yang dapat digunakan kembali dan berupa sebuah struktur yang mendukung kerja. Sebuah framework di bangun agar sebuah aplikasi yang dibangun lebih mudah di kerjakan dan mempersingkat waktu. Biasanya sebuah framework terdiri dari modul-modul yang dibuat untuk sebuah aplikasi namun pada suatu saat dapat dimanfaatkan untuk aplikasi lain yang sekiranya membutuhkan salah satu atau lebih modul yang mendukung, misalnya contoh framework berikut :
2.Service Oriented Architecture (SOA) adalah prinsip desain yang diinginkan untuk membangun system terdistribusi yang mengirimkan service fungsionalitasnya, dengan menambahkan penekanan pada loose coupling antar pengguna service. dalam hal ini service mempunyai beberapa karakteristik :
  • logical view
  • message oriented
  • discription oriented
  • network orientation
  • platform neutrality
perhatikan gambar berikut, dalam gambar tersebut mengilustrasikan siklus interaksi service dalam arsitektur system SOA :

Gambar 1: Siklus Service dalam SOA
Dalam arsitektur SOA, Service dapat di definisikan sebagai komponen (Software Component) yang memiliki karakteristik :
  • dapat di deskripsikan dalam suatu bahasa formal
  • dapat dipublikasikan pada suatu registry of service
  • dapat ditemukan (discover) menggunakan mekanisme standart
  • dapat diminta/diperoleh(invoke) melalui jaringan
  • dapat dibangun bersama service lain

3.CodeIgniter adalah aplikasi opensource yang berupa framework dengan model MVC(Model View Controler) untuk membangun website dinamis dengan menggunakan PHP.codeIgniter memudahkan developer untuk membuat aplikasi web dengan cepat dan mudah dibangdingkan dengan membuatnya dari awal.codeigniter adalah sebuah framework yang bisa digunakan dalam pengembangan aplikasi dengan bahasa pemrograman PHP.

4.Arsitektur Model-View-Controller adalah sebuah pola yang terbukti membangun proyek secara lebih efektif. Hal itu dilakukan dengan memilah komponen antara Model, View dan Controller pada bagian – bagian dalam proyek. Pola MVC menyediakan sebuah solosi terhadap permasalahan tersebut dengan membagi aplikasi menjadi bagian – bagian tersendiri, Model, View dan Controller, memisahkan antar bagian tersebut dan membuat tata interaksi diantaranya.

Diagram di atas menunjukkan 3 komponen yang terdapat dalam pola MVC dan interaksi yang terjadi.

Struts merupakan aplikasi framework open source yang di design untuk membantu para developer dalam membangun arsitektur aplikasi berbasis pada Model-View-Controller (MVC) , dimana design MVC sudah merupakan standard umum dalam membangun aplikasi Web dengan penggunaaan servlet Java dan Java Server Pages (JSP) sebagai teknologinya.