Selasa, Juni 21, 2011

Design Analysis

Analisis Sistem

adalah sebuah teknik pemecahan masalah yang menguraikan sebuah sistem menjadi komponen-komponennya dengan tujuan mempelajari seberapa bagus komponen-komponen tersebut bekerja dan berinteraksi untuk meraih tujuan mereka.

Analisis mungkin adalah bagian terpenting dari proses rekayasa perangkat lunak. Karena semua proses lanjutan akan sangat bergantung pada baik tidaknya hasil analisis. Ada satu bagian penting yang biasanya dilakukan dalam tahapan analisis yaitu pemodelan proses bisnis.

Disain Perangkat Lunak

adalah tugas, tahapan atau aktivitas yang difokuskan pada spesifikasi detil dari solusi berbasis computer.

Disain perangkat lunak sering juga disebut sebagai physical design. Jika tahapan analisis sistem menekankan pada masalah bisnis (business rule), maka sebaliknya disain perangkat lunak fokus pada sisi teknis dan implementasi sebuah perangkat lunak.

Output utama dari tahapan disain perangkat lunak adalah spesifikasi disain. Spesifikasi ini meliputi spesifikasi disain umum yang akan disampaikan kepada stakeholder sistem dan spesifikasi disain rinci yang akan digunakan pada tahap implementasi. Spesifikasi disain umum hanya berisi gambaran umum agar stakeholder sistem mengerti akan seperti apa perangkat lunak yang akan dibangun.Biasanya diagram USD tentang perangkat lunak yang baru merupakan point penting dibagian ini.

Spesifikasi disain rinci atau kadang disebut disain arsitektur rinci perangkat lunak diperlukan untuk merancang sistem sehingga memiliki konstruksi yang baik, proses pengolahan data yang tepat dan akurat, bernilai, memiliki aspek user friendly dan memiliki dasar-dasar untuk pengembangan selanjutnya.

Desain arsitektur ini terdiri dari desain database, desain proses, desain user interface yang mencakup desain input, output form dan report, desain hardware, software dan jaringan. Desain proses merupakan kelanjutan dari pemodelan proses yang dilakukan pada tahapan analisis.

Testing

Testing adalah proses menjalankan sebuah program dengan tujuan untuk menemukan kesalahan sebelum pengiriman ke end user

STRATEGI PENGUJIAN PL

Big Bang

Pengujian PL secara keseluruhan, setelah seluruh komponen PL selesai dibuat

Incremental

Pengujian Secara bertahap

METODA PENGUJIAN PL

Functional (Black Box)

Fokus pada output yang dihasilkan dengan memberikan input dan kondisi eksekusi

Membandingkan kesesuaian output dengan spesifikasi kebutuhan fungsional

STRUCTURAL (WHITE BOX)

Menguji dengan memperhatikan mekanisme internal sistem

Menguji untuk memastikan operasi internal berjalan sesuai spesifikasi

Semua komponen diuji

UNIT TESTING

Pengujian unit (komponen) secara terisolir à menguji di luar program yang menggunakan unit ini.

Memeriksa apakah suatu individual program unit (subprogram, object class, package, module) memiliki perilaku yang benar.

TIPE PENGUJIAN

Pengujian Statis (Static Testing)

Pengujian terhadap satu unit tanpa melakukan eksekusi terhadap unit tersebut

Pengujian Dinamis (Dynamic Testing)

Pengujian dengan mengeksekusi unit dengan menggunakan data uji.

White Box dan Black Box

STATIC TESTING

Code Walktrough

Kode program dan dokumentasi di-review oleh tim

Fokus ada pada kode program

Informal

Dipimpin oleh programmer

Code Inspection

Kode program dan dokumentasi di-review oleh tim dengan suatu daftar rujukan

Definisi dan struktur data

Algoritma

Interface antar komponen

Prakiraan unjuk kerja program à penggunaan memori, kecepatan pengolahan

Fokus ada pada kode program

formal

Dipimpin oleh moderator BUKAN programmer

BASIS PATH TESTING

Seluruh independent path diuji

Menguji semua pernyataan untuk nilai ‘true’ dan ‘false’

Mengesekusi semua kalang (loop) untuk kondisi-kondisi batas.

Memeriksa struktur data internal

Menganalisa rancangan prosedural

Mendefinisikan basis set dari execution paths

Test cases untuk basis set mengeksekusi setiap statemen program minimal satu kali.

IMPLEMENTASI PENGUJIAN

Langkah-langkah Pengujian

  1. Setlah rancangan unit selesai lakukan pengujian statis unit.
  2. Membuat test plan untuk unit.
  3. Apabila unit yang diuji merujuk unit lain, dan belum selesai, buat stubs untuk unit ini.
  4. Buat test driver untuk unit:

test case data (from the test plan)

Eksekusi unit, menggunakan test case data

Hasil ekseksui test case

INTEGRATED TESTING

Fokus deteksi fault pada sekelompok komponen/unit, seperti fungsi, kelas, packages.

Dua atau lebih komponen diintegrasikan dan diuji.

Jika tidak ada, maka komponen lain ditambahkan dan diuji.

Pendekatan

Bottom-up testing

Top-down testing

Sandwich Testing

LANGKAH INTEGRATION TESTING

  1. Berdasarkan strategi yang dipilih, pilih komponen yang akan diuji. Lakukan pengujian unit untuk semua komponen.
  2. Lakukan persiapan untuk pengujian (pembuatan drivers, stubs)
  3. Lakukan functional testing: Definisikan test cases yang menguji semua komponen yang di uji.
  4. Lakukan structural testing: Definisikan test cases yang menguji semua komponen yang di uji.
  5. Lakukan performance tests
  6. Simpan record test cases dan activitas pengujian.
  7. Ulangi langkah 1 to 6 sampai keseluruhan sistem diuji.

Tujuan integration testing adalah mengidentifikasi errors dalam konfigurasi komponen yang ada.

SYSTEM TESTING

Dilakukan setelah komponen-komponen diintegrasikan.

Menjamin bahwa sistem yang lengkap sesuai dengan kebutuhan fungsional dan non fungsional sistem.

Pada tahap ini fault yang terjadi pada komponen telah teridentifikasi dan dikoreksi.

Functional Testing

Performance Testing

Acceptance Testing

Installation Testing

FUNCTIONAL TESTING

requirements testing à menguji fungsionalitas sistem.

Pada esensinya sama dengan pengujian Blackbox

Test cases dirancang dari dokumen analisis kebutuhan (mis. user manual) dan berfokus pada kebutuhan dan fungsi utama (mis. use cases)

Pengujian dilakukan dengan memiliki test yang relevan pada pengguna dan memiliki peluang yang besar untuk menemukan failure.

PERFORMANCE TESTING

Jenis test:

Menemukan perbedaan antara goal (kebutuhan non fungsional) yang ditentukan pada saat pengembangan sistem dengaan yang diimplementasikan dalam sistem.

Stress testing – menguji apakah sistem dapat merespons banyak request yang datang secara bersamaan.

Volume testing – menguji sistem dengan memberi data uji yang sangat besar/banyak.

Security testing – menguji keamanan sistem (menemukan security faults). Menggunakan hacker untuk menguji sistem.

Timing testing – mengevaluasi waktu tanggap (response times) dan waktu untuk melakukan sebuah fungsi

Environmental test – menguji toleransi terhadap lingkungan seperti panas, kelembaban, gerak

Quality testing – pengujian keandalan, maintain- ability dan availabilitas sistem

Recovery testing – pengujian terhadap tanggapan sistem terhadap adanya kesalahan atau ketiadaan data.

ACCEPTANCE TESTING

Tujuan : menunjukkan bahwa sistem sudah siap untuk pemakaian operasional.

Pilihan test dibuat oleh client/sponsor

Banyak test dapat diambil dari integration testing

Dilakukan oleh client, bukan developer.

Kebanyakan bug dalam perangkat lunak biasanya ditemukan oleh client setelah sistem digunakan, bukan oleh developer atau testers à test tambahan (Pilot Test atau Field Test)

PILOT TESTING

Alpha test:

Client menggunakan perangkat lunak di tempat pengembang (development environment).

Perangkat lunak digunakan dalam setting terkendali, pengembang selalu siap untuk memperbaiki kesalahan yang terjadi.

Beta test:

Dilakukan tempat pengguna (lingkungan yang sebenarnya).

Pengembang tidak ada

Perangkat lunak digunakan dalam lingkungan yang sebenarnya (target environment).

INSTALLATION TESTING

Sistem di install pada target environment dan dievalusi.

Mengulangi test cases yang dieksekusi selama functional dan performance testing dalam target environment.

Beberapa kebutuhan mungkin tidak bisa diuji dalam development environment sehingga perlu dibuat test cases yang baru.

Rabu, Juni 15, 2011

PRINSIP UTAMA MENDESAIN INTERFACE

Interface merupakan bagian sistem yang dikendalikan oleh user untuk mencapai dan

melaksanakan fungsi-fungsi suatu sistem. Berikut ini beberapa prinsip utama dalam mendesain antarmuka atau interface :

  1. User Compatibility

Interface harus disesuaikan dengan user, dan tidak dianjurkan merancang interface untuk dirinya sendiri. Hal ini didasarkan karena sistem diciptakan untuk kebutuhan user.

  1. Product Compability

Sebuah interface sistem, harus sesuai dengan bentuk manual atau tradisionalnya. Sehingga diharapkan menghasilkan laporan serta informasi yang detail dan akurat dibandingkan dengan sistem manual.

  1. Task Compability

Interface harus membantu dan memudahkan user dalam menyelesaikan tugasnya.

  1. Work Flow Compability

Sistem manual harus disediakan oleh pengembang perangkat lunak, dan menyediakan runutan-runutan pekerjaan yang ada pada sebuah sistem.

  1. Consistency

Sebuah sistem harus sesuai dengan sistem nyata serta sesuai dengan produk yang dihasilkan.

  1. Familiarity

Interface sebisa mungkin didesain dengan interface pada umumnya, dari segi tata letak, model, dan sebagainya.

  1. Simplicity

Kesederhanaan perlu diperhatikan pada saat membangun interface.

  1. Direct Manipulation

Sistem harus mempunyai media atau tools yang dapat digunakan untuk melakukan perubahan pada interface sesuai dengan keinginan user. Dalam hal ini dicustomize oleh user.

  1. Control

Sistem harus memiliki penanganan terhadap kesalahan yang dilakukan oleh user.

  1. WYSIWYG

“what you see is what you get”, informasi yang ditampilkan harus sesuai dengan usaha yang dilakukan oleh user.

  1. Flexibility

Sistem harus menyediakan berbagai solusi penyelesaian suatu masalah.

  1. Responsiveness

Sistem harus memiliki respon yang baik, maksudnya adalah kecepatan akses suatu sistem akan sangat mempengaruhi mood user.

  1. Invisible Technology

Suatu sistem harus memiliki suatu kelebihan yang tidak melulu diminta oleh user, maksudnya diciptakan suatu terobosan baru pada suatu sistem.

  1. Robustness

Interface yang baik dapat berupa frase-frase menu atau error handling yang sopan.

  1. Protection

Proteksi disini lebih menjaga kenyamanan user. Nyaman dimaksudkan user tidak menemui susasana kacau ketika user salah memasukkan data atau salah eksekusi.

  1. Easy of Learning and Easy of Use

Kemudahan dalam mengoperasikan perangkat lunak hanya dengan memandangi atau belajar beberapa jam saja.

INTERAKSI MANUSIA DAN KOMPUTER DITINJAU DARI SEGI MANUSIA

Manusia

adalah elemen terpenting dalam interaksi manusia dan komputer, yaitu sebagai subjek sekaligus sebagai objek serta sebagai sistem pemroses informasi


1. Saluran Input Output

  • Pandangan (vision)

  • Alat fisik: Mata

mekanisme untuk menerima cahaya dan mentransformasikannya ke dalam energi elektronik

  • retina

retina mengandung rods untuk pandangan cahaya lemah dan cones untuk pandangan berwarna


2. Interpretasi Sinyal

  • Ukuran dan Kedalaman

    • sudut pandangan mengindikasikan seberap banyak area dari pandangan objek yang tertangkap

    • ketajaman pandangan adalah kemampuan untuk mempersepsikan detil yang sangat baik (terbatas)

  • Kecemerlangan cahaya (brightness)

    • reaksi yang bersifat subjektif pada level-level cahaya

    • ketajaman pandangan meningkat dengan semakin besarnya kejelasan sebagaimana halnya kekeruhan pandangan meningkat dengan semakin besarnya kedip (ficker) yang terjadi.

  • Warna

    • terbentuk dari hue (corak), intensity (intensitas), & saturation (kejenuhan)

    • cones sensitif terhadap panjang gelombang warna


3. Membaca

  • pola visual terpersepsikan

  • di decode (pecahkan sandinya) menggunakan representasi internal bahasa

  • diinterpretasikan menggunakan pengetahuan dari sintaks, semantik dan pragmatik


4. Mendengarkan

Alat fisiknya :

  • telinga bagian luar – melindungi telinga bagian dalam dan menguatkan suara

  • telinga bagian tengah – mentransmisikan gelombang suara dalam bentuk getaran ke telinga bagian dalam

  • telinga bagian dalam – pemancar (transmitter) kimiawi dilepaskan dan ini menimbulkan impuls dalam syaraf pendengaran


5. Sentuhan

Stimulus diterima melalui penerima(receptors) dalam kulit:

  • Thermoreceptors – panas dan dingin

  • Nociceptors – sakit

  • Mechanoreceptors – tekanan (baik tekanan yang hanya seketika atau tekanan yang continue/terus menerus)


6. Gerakan

  • Waktu yang diperlukan untuk menanggapi stimulus: waktu reaksi+waktu gerak

  • Waktu gerak – tergantung pada usia, kebugaran, dll.

  • Waktu reaksi – tergantung pada jenis stimulus


7. Memory

Secara umum ada 3 jenis/fungsi memori :

  1. tempat penyaringan (sensor)

Sebagai buffer untuk menerima rangsang dari indera. Terdiri dari 3 saluran penyaring :

  • iconic : menerima rangsang penglihatan (visual)

  • echoic : menerima rangsang suara

  • haptic : menerima rangsang sentuhan

  1. tempat memproses ingatan (memori jangka pendek)

  • Memori jangka pendek/memori kerja bertindak sebagai tempat menyimpan data sementara, digunakan untuk menyimpan informasi yang hanya dibutuhkan sesaat untuk digunakan kembali kemudian.

  • Kapasitas memori kecil / terbatas

  1. Memori jangka panjang

  • Memori ini diperlukan untuk menyimpan informasi dalam jangka waktu lama

  • Merupakan tempat menyimpan seluruh pengetahuan, fakta informasi, pengalaman, urutan perilaku, dan segala sesuatu yang diketahui.

  • Kapasitas besar / tidak terbatas


8. Berpikir : Pertimbangan dan penyelesaian masalah

  • Pertimbangan (reasoning):

  • deduktif: dipakai untuk mendapatkan kesimpulan logika dari premise (fakta) yang diketahui.

  • induktif: menggeneralisasikan kasus-kasus yang kita lihat untuk mendapatkan informasi yang belum kita ketahui

  • abduktif: dipakai untuk mendapatkan sebab dari suatu kejadian

  • Penyelesaian masalah (problem solving)

Adalah proses untuk mencari solusi dari suatu task yang belum pernah dikenal sebelumnya, dengan menggunakan pengetahuan yang kita miliki


9. Akuisisi Keterampilan

Aktifitas berketrampilan dicirikan oleh :

  • Penggumpalan (chunking) : banyak informasi digumpalkan untuk mengoptimasi memori jangka pendek

  • Pengelompokan masalah secara konseptual dan informasi disusun secara efektif