IN1253 – Pemrograman Berorientasi Obyek

advertisement
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 ]
Download