Selasa, 25 Oktober 2011

RPLL 03

Web Engineering

Perkembangan sistem berbasis web sangat berpengaruh pada sejarah perkembangan komputer. Sistem berbasis web juga memiliki beberapa perbedaan dalam prinsip rekayasanya, konsep, dan metode yang digunakan disebabkan oleh kompleksitasnya (kekacauan di sebuah sistem web dapat menyebabkan kekacauan di seluruh sistem internet).

Berikut beberapa atribut yang menyertai setiap aplikasi web,


  1. Network intensiveness
    Web aplikasi harus melayani komunitas yang berbeda beda.
  2. Concurency
    Banyak user dapat mengakses web dalam waktu yang bersamaan.
  3. Unpredictable Load
    Jumlah user yang mengakses dapat bervariasi.
  4. Performance
    Aplikasi web harus dapat diakses dengan cepat.
  5. Availibility
    Tingkat ketersediaan layanan web ketika dibutuhkan oleh berbagai macam user diberbagai wilayah di seluruh dunia ketika suatu aplikasi web sedang memasuki masa perbaikan.
  6. Data Driven
    Lalu lintas data yang mengalir dalam sebuah sistem web, seringkali membutuhkan data yang sebenarnya bukan bagian internal dalam aplikasi web itu sendiri.
  7. Content Sensitive
    Kualitas isi web dilihat dari berbagai sudut pandang.
  8. Continuous Evolution
    Aplikasi web biasanya menampilkan informasi yang up to date, harus terus diperbarui dan ditingkatkan.
  9. Immediacy
    Terkait dengan point sebelumnya, aplikasi web memiliki batas waktu yang sangat singkat dalam pengupdatean datanya yang harus dalam keadaan segar dalam waktu waktu tertentu.
  10. Security
    Untuk melindungi sistem web dibutuhkan sistem keamanan yang sangat kuat karena web diakses lewat jaringan internet yang sangat luas.
  11. Aesthetics
    faktor estetika, desain web harus menarik dan sesuai dengan tema dan tujuannya.
Metode yang digunakan dalam web engineering adalah sebagai berikut;

  1. Communication methods
    Mendefinisikan komuniksi antar seluruh bagian web, termasuk user akhir, klien bisnis, desainer, dsb.
  2. Requirements analysis methods
    Analisa untuk mendefinisikan isi web yang tepat.
  3. Design methods
    Desain keseluruhan struktur web, termasuk konten, struktur aplikasi dan informasi, desain interface, juga desain navigasinya.
  4. Testing methods
    Testing, meliputi tes navigasi, usability, keamanan, dan konfigurasi.
Framework umum dalam sebuah proses web engineering meliputi:

  1. Customer communication.
  2. Planning.
  3. Modeling.
  4. Construction.
  5. Deployment.

Selasa, 27 September 2011

RPLL 02

ANALISA TERSTRUKTUR

Analisa Terstruktur mulai dipopulerkan pada tahun 1979 oleh DeMarco
Analisa Terstruktur adalah tahapan penyelesaian masalah menggunakan pemodelan yang terstruktur. Dalam Software Engineering analisa terstruktur merupakan analisa terhadap suatu masalah atau kebutuhan kebutuhan sebuah proyek perangkat lunak, terkait dengan spesifikasi, program, dan konfigurasi hardware.
Termasuk didalamnya adalah penerjemahan konsep sistem menjadi aliran data yang dikontrol dalam sebuah sistem.


Didalamnya digunakan notasi grafis yang disebut Diagram Arus Data (DAD) atau Data Flow Diagram (DFD).

Terdiri dari:
1. External Entity
2. Data Store
3. Data Flow

Berdasarkan tingkatannya dapat dibagi menjadi beberapa, yaitu:

1. Context Diagram
2. Hierarchical Diagram
3. Overview Diagram
4. Level Diagram

DAD/DFD tersebut membutuhkan penjelasan proses serta kamus data yang memberikan penjelasan lengkap untuk membaca diagram yang ada.

Selasa, 20 September 2011

RPLL 01

Rekayasa Perangkat Lunak

Rekayasa Perangkat Lunak (RPL) adalah disiplin ilmu yang berkaitan dengan perangkat lunak (software). Dikerjakan dengan sistematis berdasarkan alat dan teknik yang sesuai terkait dengan masalah yang dihadapi, batasan batasan dan sumber daya yang tersedia.

RPL memiliki beberapa model dalam mengembangkan sistem yang diperlukan dalam proses rekayasa perangkat lunak, disebut SDLC (System Development Life Cycle / Software Development Life Cycle).

Berikut contoh model SDLC beserta penjelasan singkatnya:


Waterfall Model
Model ini bernama Waterfall karena tiap tahap dilalui dalam aliran yang urut dari awal proses hingga akhirnya, bila ditampilkan dalam diagram, tampak seperti air terjun.

Urutan tahapan waterfall menurut Pressman sebagai berikut:
1. Analysis
2. Design
3. Coding
4. Testing

Sedangkan menurut Sommerville, tahapan disusun sebagai berikut:
1. Requirement definition : Mengumpulkan serta menganalisa kebutuhan yang harus dipenuhi
2. System and software design : Desain sistem berdasarkan kebutuhan yang harus dipenuhi
3. Implementation and Unit testing : Implementasi dalam bentuk kode program
4. Integration and system testing : Menyusun keseluruhan bagian program dan melakukan pengujian
5. Operation and maintenance : Pengoperasian program beserta pemeliharaannya

Kekurangan:
Sulit diadakan perubahan, karena harus melalui fase yang urut seperti pada awal pembuatannya

Incremental Model
Model yang berisi penggabungan mode Waterfall dengan sifat perulangan.
Model ini melakukan sistem Waterfall pada suatu kebutuhan tertentu (spesifik) dan kemudian mengulang proses tersebut dengan penambahan kebutuhan-kebutuhan satu demi satu hingga akhirnya produk menjadi sempurna (memenuhi semua kebutuhan yang dihadapkan).

Kekurangan:
1. Lebih cocok untuk proyek kecil.
2. Terkadang ada kebutuhan-kebutuhan yang saling berkaitan sehingga sulit memetakan kebutuhan mana
    yang harus dipenuhi dalam suatu fase increment.

Kelebihan:
1. Cepat terbentuk suatu produk yang dapat langsung digunakan, sekalipun belum memenuhi seluruh
    kebutuhan yang diharapkan dari hasil akhirnya.
2. Akomodasi perubahan lebih mudah dilakukan daripada model Waterfall yang biasa.

Spiral Model
Model ini menggabungkan sistem prototype dengan waterfall, dimana sebuah produk dihasilkan lalu dikembangkan prototype produk yang baru berdasarkan analisa permasalahan yang muncul pada penggunaan program yang pertama, kemudian membentuk sebuah program yang lebih baik beserta mengatur perawatannya. Berbagai fase tersebut dikerjakan dengan tahapan-tahapan yang sama dan urut (seperti pada mode Waterfall), kelebihannya dibandingkan dengan model Waterfall dan model Increment adalah produk dapat diupdate dalam waktu lebih cepat dan penganalisaan resiko yang lebih baik.
Tahapan-tahapan yang dilalui dapat disusum sebagai berikut:
1. Komunikasi pelanggan (Customer communication) : membangun komunikasi yang baik dengan
    pengguna/customer.
2. Perencanaan (Planning) : mendefinisikan sesumber, batas waktu, informasi-informasi lain seputar proyek
3. Analisis resiko (Risk analysis) : mengidentifikasi resiko managemen dan teknis
4. Rekayasa (Engineering) : pembangunan contoh-contoh aplikasi, misalnya prototype
5. Konstruksi dan peluncuran (Construction and release) : pembangunan, test, install dan support.
6. Evaluasi pelanggan (Customer evaluation) : mendapatkan feedback dari pengguna berdasarkan evaluasi
    perangkat Lunak pada fase engineering dan fase instalasi.


Tahapan-tahapan diatas diulang setiap spiral, yaitu fase fase berikut:

1. Pengembangan konsep
2. Pengembangan produk baru
3. Perbaikan
4. Pemeliharaan

Kelemahan:
Biaya yang dibutuhkan cukup besar

Kelebihan:
1. Realistik untuk proyek skala besar
2. pengguna beserta pembuat memahami dengan baik produk tersebut
3. Proses dapat diamati dengan baik