Object Oriented Analysis (OOA) dan Object Oriented Design (OOD)

dokumen-dokumen yang mirip
TESTING DAN IMPLEMENTASI SISTEM. WAHYU PRATAMA, S.Kom., MMSI.

PENGUJIAN BERORIENTASI OBJEK

Teknik Informatika S1

Perancangan Kasus Pengujian

Pengujian Perangkat Lunak Berorientasi Objek. Tim RPL Teknik Informatika

DASAR REKAYASA PERANGKAT LUNAK

BAB III OBJEK DAN METODE PENELITIAN. tempat sanggar seni mayang sari di bandung dimana terletak di jalan Moch Toha

BAB III METODOLOGI PENELITIAN

BAB III OBJEK DAN METODOLOGI PENELITIAN. sesuai dengan pendapat Sugiyono (2003:58) mendefinisikan bahwa:

Review Rekayasa Perangkat Lunak. Nisa ul Hafidhoh

Pengenalan Obyek. Arna Fariza. Materi

PENGANTAR RUP & UML. Pertemuan 2

Object-Oriented Design

Pengujian Berorientasi Obyek

RANCANGAN APLIKASI LATIHAN BELAJAR TENSES DENGAN METODE OBJECT ORIENTED DESIGN

Pengujian Perangkat Lunak

Teknik Informatika S1

BAB III METODOLOGI PENELITIAN. dalam pengumpulan data atau informasi guna memecahkan permasalahan dan

BAB II TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI. bersama-sama untuk mencapai tujuan tertentu. bersatu untuk mencapai tujuan yang sama.

DAFTAR ISTILAH. Activity Diagram

SOFTWARE TESTING. Ratna Wardani

SEJARAH UML DAN JENISNYA

Unified Modelling Language UML

Teknik Informatika S1

Nama : Rendi Setiawan Nim :

Object Oriented Analysis and Design -Pendahuluan- Nisa ul Hafidhoh

PENGUJIAN PERANGKAT LUNAK DENGAN MENGGUNAKAN METODE WHITE BOX DAN BLACK BOX

BAB II TINJAUAN PUSTAKA

Nama : Rendi Setiawan Nim :

PEMANFAATAN ARDUINO DALAM PENGEMBANGAN SISTEM RUMAH PINTAR BERBASIS MOBILE DAN WEB (Studi Kasus : Penjadwalan Lampu Rumah)

OOAD (Object Oriented Analysis and Design) UML part 2 (Activity diagram, Class diagram, Sequence diagram)

BAB I PENDAHULUAN 1.1 Latar Belakang

MODEL DESAIN & DOKUMENTASI DESAIN

Strategi Pengujian Perangkat Lunak. Minggu ke 8

BAB III OBJEK DAN METODE PENELITIAN. Sejarah singkat mengenai berdirinya CV. Jadikom ini diawali oleh ide dari 3

Sistem (3 sks) Black Box Testing (1) Black Box Testing

A. Pengujian Perangkat Lunak

14. PENGUJIAN PERANGKAT LUNAK Dasar-dasar Pengujian 14.2 Teknik Pengujian 14.3 Strategi Pengujian dan V&V

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI

4/18/14 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta

BAB III ANALISIS DAN PERANCANGAN SISTEM

1. Penggunaan Pemodelan

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM. pengembangan sistem yang lazim disebut Waterfall Model. Metode ini terdiri dari enam

BAB III METODOLOGI PENELITIAN

Unified Modeling Language

REKAYASA PERANGKAT LUNAK. 3 sks Sri Rezeki Candra Nursari reezeki2011.wordpress.com

BAB III OBJEK DAN METODE PENELITIAN. domain & Web Hosting. Untuk lebih jelas mengenai gambaran umum perusahaan,

PERTEMUAN 13 STRATEGI PENGUJIAN PERANGKAT LUNAK

Gambar Use Case Diagram

Testing dan Implementasi Sistem Informasi

BAB II LANDASAN TEORI. pembelian dilakukan dengan mengubah bentuk barang. 2003). Menurut Soemarso S.R (1994) kegiatan pembelian dalam perusahaan

PertemuanI. Object Oriented

RANCANG BANGUN APLIKASI ALOKASI RESOURCE MANAGEMENT DI FAKULTAS TEKNIK UNIVERSITAS TANJUNGPURA

BAB III OBJEK DAN METODE PENELITIAN. Penulis bermaksud untuk melakukan penelitian yang dilakukan di Sabilla

2. BAB II LANDASAN TEORI. lanjut sehingga terbentuk suatu aplikasi yang sesuai dengan tujuan awal.

MEMAHAMI PENGGUNAAN UML

3.1 APLIKASI YANG DITANGANI OLEH CODE GENERATOR

P10 Konsep & Prinsip Desain. A. Sidiq P.

MODUL 8 : Object Interaction

BAB III METODOLOGI PENELITIAN. Pada pembuatan Plugin Penjadwalan Seminar pada Jurusan Ilmu

UML UNIFIED MODELLING LANGUAGE

BAB III METODOLOGI PENELITIAN

REKAYASA PERANGKAT LUNAK LANJUT DESIGN ENGINEERING. Defri Kurniawan M.Kom

BAB II LANDASAN TEORI

BAB III OBJEK DAN METODE PENELITIAN. Dengan demikian objek yang akan penulis kaji adalah Sistem Informasi

BAB II TINJAUAN PUSTAKA. permintaan pengguna dengan tujuan tertentu. Jenis program ini mempunyai sifat

PEMANFAATAN ARDUINO DALAM PENGEMBANGAN SISTEM KEAMANAN RUMAH BERBASIS WEB

PENGEMBANGAN PERANGKAT LUNAK. Karmilasari

ABSTRAK. Kata kunci : Information Retrieval system, Generalized Vector Space Model. Universitas Kristen Maranatha

Pemrograman Web Berbasis Framework. Pertemuan 13 : Pengembangan Project (Bag. 1) Hasanuddin, S.T., M.Cs. Prodi Teknik Informatika UAD

Metode Coad -Yourdon

Sistem Informasi OOAD dengan UML (1) Teknik Informatika UNIKOM

TESTING & IMPLEMENTASI SISTEM 4KA. Teknik Pengujian Perangkat Lunak. helen.staff.gunadarma.ac.id

PENGEMBANGAN PERANGKAT LUNAK PEMESANAN TIKET TRAVEL BERBASIS WEB DAN MOBILE

BAB 3 METODOLOGI PENELITIAN

METODE PENGUJIAN PERANGKAT LUNAK

Dibuat Oleh : 1. Andrey ( )

DAFTAR ISI... LEMBAR JUDUL LEMBAR PENGESAHAN... SURAT PERNYATAAN... ABSTRAK... ABSTRACT... KATA PENGANTAR... DAFTAR TABEL... DAFTAR GAMBAR...

Object Oriented Analaysis Object Oriented Design

PENDAHULUAN. A. Berorientasi Objek. 1. Karakteristik dari Objek

BAB III METODOLOGI PENELITIAN

BAB II LANDASAN TEORI

BAB III PERANCANGAN PROGRAM

Hubungan antara rencana pengujian dan proses pengembangan system. Tim RPL 1 3

BAB IV ANALISIS DAN PERANCANGAN SISTEM

BAB III ANALISIS DAN PERANCANGAN APLIKASI. Aplikasi chatting mobile phone yang menggunakan NetBeans IDE 6.0 yang di

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

REKAYASA PERANGKAT LUNAK. 3 sks Sri Rezeki Candra Nursari reezeki2011.wordpress.com

BAB V PERANCANGAN MOXIE

BAB III METODE PENELITIAN

BAB II LANDASAN TEORI. terpadu untuk mengembangkan rencana rencana strategis yang diarahkan pada

IMPLEMENTASI ONLINE TESTING DENGAN BATCH PROCESSING SYSTEM

MODUL 4 Unified Software Development Process (USDP)

Testing dan Implementasi Sistem

ABSTRAK. Kata kunci : voucher elektronik SMS (Short Message Service)

Tugas Rekayasa Perangkat Lunak

Yuli Purwati, M.Kom USE CASE DIAGRAM

Transkripsi:

Object Oriented Analysis (OOA) dan Object Oriented Design (OOD) Object-Oriented Analysis Object-oriented analysis adalah suatu metoda analisis yang memeriksa syarat-syarat dari sudut pandang kelas-kelas dan objek-objek yang ditemui pada ruang lingkup permasalahan dengan tujuanuntuk memahami domain masalah dan meningkatkan ketelitian, konsistensi, kelengkapan analisis. Mendefinisikan kebutuhan-kebutuhan sistem melalui skenario atau penggunaan kasus-kasus. Kemudian, membuat suatu model obyek (class) dengan kemampuan memenuhi kebutuhan-kebutuhan (attributes). Outputnya berupa model kebutuhan-kebutuhan, biasanya menggunakan CRC Card (classresponsibility-collaborator). Memberikan gambaran rinci dari suatu sistem dan mengidentifikasi WHAT kebutuhan fungsional (Use Cases) dengan identifikasi: objects, classes, operations, object relationships, object interations. Kemudian membangun model-model di dunia nyata dengan menggunakan tampilan Object Oriented Object-Oriented Design Object-oriented design adalah metoda untuk meng-arahkan arsitektur perangkat lunak yang didasarkan pada manipulasi objek-objek sistem atau subsistem. Model kebutuhan-kebutuhan yang dibuat pada fase analisis diperkaya dalam fase perancangan. Kadang-kadang ditambahkan lebih banyak lagi atribut dan pelayanan dan ditambahkan antarmuka obyek-obyek. Object Oriented Design bertujuan untuk mengoptimalkan maintainability, reusability, enhancebility dan reliability. Memberikan blueprint untuk implementasi dan menspesifikasi HOW dengan menspesifikasi class definitions, class categories, subsystems, system architectures. Object Oriented Design merupakan Object-Oriented Analysis dengan tambahan rincian implementasi. Hubungan antara OOA dengan OOD A t tr ib u t e s, o p e r a t i o n s, c o lla b o r a t o r s C R C In d e x C a r d s O b je c t - r e la t io n s h ip m o d e l r e s p o n s i b i l i t i e s U s e c a s e s m e s s a g e O b je c t -B e h a v io r M o d e l C l a s s a n d o b j e c t s u b s y s t e m T H E A N A L Y S I S M O D E L T H E D E S I G N M O D E L Gambar 1. Hubungan Model Analisis dengan Model Desain 1

AnalysisModel clases atributes methods relationships behavior DesignModel objects datastructures algorithms mesaging control Gambar 2. Kaitan OOA dengan OOD Object-Oriented Testing Tujuan Pembelajaran : Aktivitas-aktivitas dalam object-oriented testing Menjelaskan strategi object-oriented testing (class testing, integration testing, validation testing) Menjelaskan desain kasus uji untuk perangkat lunak berorientasi Objek (OO software) Mendefinisikan dan menjelaskan metode ujicoba yang dapat diterapkan pada tingkatan class Menjelaskan desain kasus uji inter-class Menjelaskan metoide ujicoba yang dapat diterapkan pada tingkatan inter-class Pendahuluan Proses ujicoba sistem yang berorientasi objek (object-oriented system) dimulai dengan meninjau ulang analisis dan model desain berorientasi obyeknya (object-oriented analysis and design models). Ketika sebuah program telah dituliskan, object-oriented testing (OOT) dimulai dengan menguji "in the small" dengan class testing (class operations dan collaborations). Ketika class-class tersebut diintegrasikan menjadi sebuah subsistem, maka masalah kolaborasi class akan diketahui. Terakhir, use-cases dari model OOA digunakan untuk menemukan kesalahan validasi software. OOT hampir mirip dengan ujicoba software konvensional dalam hal kasus uji yang akan dibangun untuk melatih class-class yang ada dan kolaborasi antar class-nya juga prilakunya. OOT berbeda dari ujicoba software konvensional dalam hal penekanan terhadap konsistensi dan kelengkapan penaksiran dari model OOA dan OOD yang telah dibangun. OOT cenderung lebih fokus kepada masalah integrasi dari pada unit testing. Object-Oriented Testing Activities Meninjau ulang model OOA dan OOD Ujicoba Class setelah penulisan program sumber Ujicoba Integrasi dalam subsistems Ujicoba Integrasi subsistem yang telah ditambahkan kedalam sistem Ujicoba validasi berdasarkan OOA use-cases Ujicoba Model OOA dan OOD OOA dan OOD tidak dapat diujikan tetapi dapat ditinjau ulang untuk ketepatan (correctness) dan konsistensinya (consistency). 2

Ketepatan (correctness) model OOA dan OOD Syntactic Semantic Ditetapkan dengan memastikan bahwa keperluan pemodelan dan konvensi simbolisme telah digunakan Berdasarkan pada ketepatan model dengan sumber masalah di dunia nyata Konsistensi (Consistency) model OOA dan OOD 1. Menilai model CRC (class- responsibility-collaborator) dan diagram hubungan antar obyek. 2. Meninjau desain sistem (memeriksa model perilaku objek untuk memeriksa pemetaan perilaku sistem ke subsystems, meninjau konkuresi dan alokasi tugas, menggunakan skenario use-case untuk memeriksa desain antarmuka pengguna) 3. Model Obyek test terhadap jaringan relasi objek untuk memastikan bahwa semua desain objek berisi atribut dan operasi yang diperlukan untuk melaksanakan kolaborasi yang ditetapkan untuk setiap kartu CRC. 4. Periksa rincian spesifikasi algoritma yang digunakan untuk melaksanakan operasi konvensional menggunakan teknik inspeksi Strategi Ujicoba Berorientasi Objek (Object-Oriented Testing Strategies) A) Unit testing dalam konteks OO 1. Unit terkecil yang diujikan adalah enkapsulasi class atau objek 2. Hampir serupa dengan ujicoba sistem pada software konvensional 3. Tidak menguji operasi dalam isolasinya dengan operasi yang lain 4. Dijalankan oleh operasi class dan perilaku tetap, bukan detail algoritmik dan aliran data yang melintasi antar interface modul 5. Ujicoba lengkap keseluruhan class meliputi : - Menguji seluruh operasi yang berhubungan dengan objek - Mengatur dan interogasi semua atribut obyek - Melatih objek dalam semua kemungkinan 6. Mendesain ujicoba untuk class dengan menggunakan metode yang benar - Ujicoba berbasis kesalahan (fault-based testing) - Ujicoba acak (random testing) - Ujicoba Partisi (partition testing) 7. Setiap metode-metode ini akan melatih operasi yang dienkapsulapsi oleh class 8. Urutan ujicoba didesain untuk memastikan bahwa operasi yang relevan telah diujicobakan 9. Posisi tetap suatu class (Nilai atributnya) di uji untuk menentukan apakah terdapat kesalahan B) Integration testing dalam konteks OO 1. difokuskan pada kelompok-kelompok kelas yang berkolaborasi atau berkomunikasi dalam beberapa cara. 2. Integrasi operasi satu per satu ke dalam kelas sering sia-sia 3

3. Ujicoba berbasis thread (uji semua kelas yang dibutuhkan untuk merespon ke satu masukan atau event sistem) 4. Pengujian berbasis Kegunaan (dimulai dengan uji independen oleh kelas pertama dan kelaskelas yang tergantung yang menggunakannya) 5. Pengujian cluster (kerjasama kelompok kelas yang diuji untuk interaksi kesalahan) 6. Pengujian regresi adalah penting karena setiap thread, cluster, atau subsistem yang ditambahkan pada sistem 7. Tingkat integrasi yang lebih sedikit berbeda dalam sistem berorientasi objek C) Validation testing dalam konteks OO 1. Berfokus pada tindakan pengguna yang terlihat dan pengguna dapat mengenali output dari sistem 2. tes validasi didasarkan pada skenario use-case, model perilaku objek, dan diagram alur event dibuat dalam model OOA 3. Pengujian Black box konvensional dapat digunakan untuk mendorong tes validasi Test Case Design untuk software OO 1. Setiap kasus uji harus dapat diidentifikassikan secara unik dan secara eksplisit dihubungkan dengan class yang akan diujikan 2. Tetapkan kegunaan dari setiap ujicoba 3. Tuliskan langkah-langkah ujicoba untuk setiap ujicoba yang disertakan, diantaranya: Tuliskan tahapan ujicoba untuk setiap objek yang disertakan dalam ujicoba Tuliskan pesan-pesan dan operasi yang dijalankan sebagai konsekuensi dari ujicoba ini Tuliskan eksepsi yang muncul ketika suatu objek di ujicoba Tuliskan kondisi eksternal yang memerlukan perubahan untuk ujicoba tersebut Informasi tambahan lainnya yang diperlukan untuk memahami atau mengimplementasikan ujicoba tersebut. 4. Ujicoba Struktur permukaan dan Struktur Dalam (Testing Surface Structure and Deep Structure) Ujicoba struktur permukaan (Testing surface structure) yaitu melatih struktur yang tampak oleh pengguna akhir, sering kali melibatkan pengamatan dan mewawancarai pengguna karena mereka memanipulasi objek sistem. Ujicoba struktur dalam (Testing deep structure) yaitu melatih struktur program internal, seperti ketergantungan, perilaku, dan mekanisme komunikasi yang ada sebagai bagian dari sistem dan desain objek. Metode Testing yang Dapat diaplikasikan pada Tingkatan Class (Testing Methods Applicable at The Class Level) A) Random testing memerlukan sejumlah besar permutasi dan kombinasi data, dan dapat menjadi tidak efisien Identifikasikan operasi yang mungkin pada class Definisikan batasan penggunaannya Identifikasikan urutan ujicoba minimum Buatlah beberapa variasi urutan ujicoba random B) Partition testing Menghilangkan sejumlah kasus uji yang dibutuhkan untuk menguji sebuah class state-based partitioning ujicoba didesain dalam suatu cara sehingga operasi yang menyebabkan perubahan state diujikan secara terpisah dari yang tidak. attribute-based partitioning untuk setiap atribut class, operasi diklasifikasikan berdasarkan pengguna atribut tersebut, yang memodifikasi atribut dan yang tidak menggunakan atau memodifikasi atribut category-based partitioning operasi dikategorikan berdasarkan fungsi yang dilakukannya, seperti : inisialisasi, komputassi, query, terminasi 4

C) Fault-based testing Terbaik untuk operasi dan tingkatan class Menggunakan struktur pewarisan Pengujian memeriksa model OOA dan menghipotesis sekumpulan kerusakan yang dipahami yang mungkin terjadi dalam pemanggilan operasi dan sambungan pesan, dan membangun kasus uji yang sesuai Menemukan spesifikasi yang tidak tepat dan kesalahan dalam interaksi subsistem Inter-Class Test Case Design 1. Desain kasus uji menjadi lebih rumit seperti halnya integrasi dari dimulainya sistem OO menguji kolaborasi antar class 2. Ujicoba class yang beragam, seperti : Untuk setiap class client menggunakan daftar operator classs untuk men-generate urutan ujicoba random yang mengirimkan pesan ke server class yang lain Untuk setiap pesan yang di-generate, tentukan class kolaborator dan operator server object yang ditunjuk Untuk setiap operator server class (dimohon oleh pesan dari client object) tentukan pesan yang dikirimkan Untuk setiap pesan, tentukan tingkatan operator berikutkan yang memohon dan menggabungkannya kedalam urutan ujicoba 3. Ujicoba yang dihasilkan dari model perilaku gunakan state transition diagram (STD) sebagai model yang merepresentasikan perilaku dinamis dari suatu class. Kasus uji harus mencakkup seluruh tahapan STD breadth first traversal dari state model dapat digunakan (uji satu transisi dalam satu waktu dan hanya membuat kegunaan daari transisi yang diujikan sebelumnya ketika mengujikan transisi yang baru) Kassus uji juga dapat dihasilkan untuk memastikan bahwa seluruh perilaku untuk class telah diujikan dengan benar Testing Methods Applicable at Inter-Class Level A) Cluster Testing 1. Menitikberatkan pada pengintegrasian dan menguji kelompok objek yang bekerja sama 2. Mengidentifikasi kelompok dengan menggunakan pengetahuan tentang pengoperasian objek dan memiliki sistem yang diterapkan oleh kelompok ini. 3. Pendekatan Cluster Testing o Use-case atau ujicoba skenario Ujicoba berdasarkan pada interaksi user dengan sistem Mempunyai keuntungan bahwa fitur ujicoba sistem seperti yang dialami pengguna. o Thread testing menguji respon sistem terhadap event sebagai pemrosesan thread melalui sistem o Object interaction testing menguji urutan interaksi objek yang berhenti ketika operasi objek tidak memanggil layanan dari objek lainnya B) Use Case/Scenario-based Testing 1. Berdasarkan pada o use cases o corresponding sequence diagrams 2. Identifikassi skenario dari use-case dan menambahkan hal ini dengan diagram interaksi yang menampilkan objek-objek yang termasuk dalam skenario 3. Konsentrasi pada kebutuhan (fungsional) : o Setiap use case o Setiap perluasan kombinasi perpanjangan penuh(<<extend>>) o Setiap perluasan kombinasi penggunaan penuh(<<uses>>) o Ujicoba normal seperti perilaku 5

4. Sebuah skenario adalah sebuah alur/path melalui diagram urutan 5. Banyak skenario yang berbeda dapat dihubungkan dengan sebuah diagram urutan 6. Mengggunakan tugas pengguna yang dideskripsikan dalan use-cases dan membangun kasus uji dari tugas-tugas tersebut dan variasinya 7. Menemukan kesalahan yang muncul ketika pengguna berinteraksi dengan software OO 8. Konsentrasi pada apa yang dilakukan oleh fungsinya, bukan apa yang dilakukan oleh produknya 9. Dapat memperoleh nilai kembali yang lebih besar atas usaha dan waktu lebih yang dikeluarkan dalam meninjau ulang use-cases semenjak mereka dibuat, dari pada membuang waktu untuk uji coba use-case OO Test Design Issues 1. Metode White-box testing dapat diaplikasikan pada ujicoba kegunaan program untuk mengimplementasi operasi class tetapi tidak untuk lainnya 2. Metode Black-box testing method sangat tepat untuk ujicoba sistem OO 3. Object-oriented programming menyebabkan kebutuhan tambahan untuk ujicoba, berupa : class dapat mengandung operasi yang diturunkan dari super classes subclass dapat mengandung operasi yang didefinisikan ulang daripada diturunkan seluruh class dihasilkan dari ujicoba class dasar sebelumnya memerlukan ujicoba lanjutan 6