IN1253 – Pemrograman Berorientasi Obyek KONSEP DASAR ANALISA & DESAIN BERBASIS OBYEK Metode Analisis Apa itu analisis sistem? The study of a problem, prior to taking some action [De Marco, 1978] The study of a problem domain, leading to a specification of externally observable behavior; a complete, consistent, and feasible statement of what is needed; a coverage of both functional and quantified operational characteristics [Edward Yourdon, 1990] Biasanya analisa sistem dimulai dengan adanya dokumen permintaan (requirement) yang diperoleh dari semua pihak yang berkepentingan. (Mis: klien, developer, pakar, dll) Dokumen permintaan memiliki 2 fungsi: (1) (2) memformulasikan kebutuhan klien membuat suatu daftar tugas Ada beberapa pendekatan yang biasa digunakan dalam menganalisa suatu sistem, yaitu: 1. Functional Decomposition 2. Data Flow Approach 3. Information Modeling Masing-masing memiliki kelebihan dan kekurangan. Object Oriented Analysis, berusaha menggabungkan kelebihan dari pendekatan-pendekatan yang telah ada. Konsep Dasar Analisa & Desain Berbasis Obyek [ 1 ] Functional Decomposition Functional Decomposition = functions + sub-functions + functions interfaces Disebut juga analisa modular Strategi: Langkah-langkah (proses) apa yang harus dilakukan dalam sistem? Functional decomposition hanya menghasilkan suatu spesifikasi fungsional yang memetakan subyek secara tidak langsung. Functional decomposition sulit dilakukan karena sifat sistem yang mudah berubah. Oleh sebab itu sistem analist harus dapat menentukan fungsi-fungsi yang memiliki potensi untuk berubah. Data Flow Approach Data Flow Approach = data (& control) flows + data (& control) transformation + data (& control) stores + terminators + process specs (mini-specs) + data dictionary Disebut juga analisa terstruktur (structured analysis) Konsep Dasar Analisa & Desain Berbasis Obyek [ 2 ] Strategi: Mengikuti alir data yang terjadi dalam sistem. Yang menjadi masalah adalah, manusia tidak terbiasa berpikir dengan cara tersebut dalam memecahkan permasalahan (Metode pengorganisasian). Untuk menentukan ‘bubbles’ pada suatu diagram alir data, digunakan Modern Structure Analysis: 1. mendefinisikan suatu even (even adalah semua kejadian yang harus direspon oleh sistem) 2. menenetukan alir data input/output ke/dari tiap-tiap even (bubble) 3. memasukkan data yang harus disimpan pada data store. 4. mengelompokkan bubble-bubble yang saling berhubungan dan menganggap sebagai satu bubble yang baru. 5. mengulang langkah ke-4 hingga diperoleh 1 bubble yang merupakan gambaran sistem secara umum. Information Modeling Information Modeling = objects + attributes + relationships + supertype / subtypes + associative objects Hasil evolusi dari entity-relationship modeling. Obyek adalah symbol yang merepresentasikan satu atau beberapa kejadian. Konsep Dasar Analisa & Desain Berbasis Obyek [ 3 ] Strategi: 1. tentukan serangkaian atribut dari tiap-tiap kejadian 2. tambahkan hubungan antar kejadian yang saling terkait 3. kelompokkan kejadian-kejadian dengan atribut yang sama menjadi satu supertype. Object Oriented Object Oriented = classes and objects + inheritance + communication with messages Analisis berbasis obyek memetakan problem domain dan tanggung jawab sistem secara langsung pada model. (Mis. pemilik, kendaraan, petugas, dll) Structured vs. Object-Oriented Design Structured - Pendekatan masalah berorientasi pada aksi atau data Object-Oriented - Pendekatan masalah berorientasi pada aksi dan data Faktor Pendorong Konsep pendekatan OO yang sudah cukup matang. Fokus: pengkodean desain analysis Dekomposisi: pemrograman terstruktur desain terstrukur analysis terstruktur Kemajuan teknologi yang memungkinkan pembuatan sistem berorientasi obyek Assembler,Fortran Pascal, ALGOL, PL/1 C++, Smalltalk Sifat dari sistem/program yang dibuat banyak berubah Sistem sekarang yang domain-oriented. abstraksi prosedural vs. abstraksi data Konsep Dasar Analisa & Desain Berbasis Obyek [ 4 ] Kenapa OO? Dari sudut pandang umum Alasan-alasan non teknis (Charles Richter’s FBS) Mudah dipahami Praktis Dari sudut pandang pemrograman Reusability Stability Reliability Parallel computing Interoperability Kualitas Perangkat Lunak (Software Engineering: A Practicioner’s Approach, Roger Pressman, 1982) 1. Architecture 2. Modularity 3. Abstraction 4. Information hiding 5. High Cohesion 6. Low Coupling Kapan OOA tidak begitu bermanfaat Tanggungjawab sistem tidak terlalu besar (sederhana). Sistem yang hanya terdiri dari satu atau dua class saja Terminologi Problem Domain (Lingkup Permasalahan) Problem: suatu isu, masalah, pertanyaan yang membutuhkan suatu penyelesaian, jawaban atau perhatian (Webster Dictionary, 1977) Domain: ruang lingkup suatu kegiatan atau pengaruh. (Webster Dictionary, 1977) Problem Domain: ruang lingkup usaha penyelesaian masalah yang diperhatikan. Konsep Dasar Analisa & Desain Berbasis Obyek [ 5 ] System Responsibility (Tanggung Jawab Sistem) System: A set or arrangement of things so related or connected as to form a unity or organic whole (Webster Dictionary, 1977) Responsibility: The conditon, quality, fact, or instance of being responsible, answerable, accountablef or liable (Webster Dictionary, 1977) System Responsibity: An arrangement of things accountable for, related together as a whole. Abstraction (Abstraksi) Abstraction: The principle of ignoring those aspects of a subject that are not relevant to the current purpose in order to concentrate more fully on those that are. (Oxford, 1986) Procedural Abstraction: The principle that any operation that achieves a welldefined effect can be treated by its users as a single entity, despite the fact that the operation may actually be achieved by some sequence of lower-level operations, (Oxford, 1986) Data Abstraction: The principle of defining a data type in terms of the operations that apply to objects of the type, with the constra;nt that the values, of such objects can be modified and observed only by the use of the operations. (Oxford, 1986) Encapsulation (Penyembunyian Informasi) Encapsulation: A principle, used when developing an overall program structure, that each component of a program should encapsulate or hide a single design decision. The interface to each module is defined in such a way as to reveal as little as possible about its inner workings (Oxford, 1986) Konsep Dasar Analisa & Desain Berbasis Obyek [ 6 ] Inheritance (Pewarisan) Inheritance: A mechanism for expressing similarity among Classes, simplifying definition of Classes similar to one(s) previously defined. (Edward Yourdon, 1991) Association (Hubungan) Association: The union or connection of ideas (Webster Dictionary, 1977) Message (Pesan) Message: Any communication, written or oral, sent between persons. (Webster Dictionary, 1977) Konsep Dasar Analisa & Desain Berbasis Obyek [ 7 ]