Module 1: Introduction to OOAD

Download Report

Transcript Module 1: Introduction to OOAD

Introduction to OOAD
(Object-Oriented Analysis and Design)
1
Faktor Utama Kegagalan P/L





Kebutuhan kustomer tidak bisa dipahami dan
ditangkap dengan tepat
Kebutuhan kustomer sering mengalami
perubahan
Kustomer tidak bisa bekerja sama dengan
pengembang
Pengembang kurang memiliki kecakapan dalam
menjalankan tugas
Sistem yang dikembangkan tidak terlalu banyak
memberikan manfaat kepada kustomer
2
Why Object-Oriented?
3
Video
4
What is a model and why?






A model is a simplification of reality.
Pemodelan adalah suatu cara berpikir tentang
persoalan menggunakan model-model yang
diorganisasikan seputar dunia nyata.
To understand why a software system is needed, what it should do, and how it should do it.
To communicate our understanding of why, what and how.
To detect commonalities and differences in your perception, my perception, his perception
and her perception of reality.
To detect misunderstandings and miscommunications.



5
apabila kita gagal membuat perencanaan
dengan baik, maka kita sebetulnya
merencanakan untuk gagal . . .
6
METODE ANALISIS
Ada beberapa pendekatan yang biasa
digunakan dalam menganalisa suatu
sistem,
 yaitu:




Functional Decomposition
Data Flow Approach
Object Oriented
7
Functional Decomposition
8
Object-oriented development



OOA Mempelajari domain permasalahan bisnis untuk
merekomendasikan perbaikan dan menentukan
kebutuhan sistem untuk menyelesaikan
permasalahan.
OOD Menentukan solusi teknis atau
rancangan/computer-based dimana solusi ini
berdasarkan kebutuhan sistem yang telah
diidentifikasi pada proses analisis.
OOP is concerned with realising an OOD using an OO
programming language such as Java or C++.
Kenapa OOAD

Karena :




Memudahkan pemanfaatan ulang code dan arsitektur
Lebih mencerminkan dunia nyata (lebih tepat dalam
menggambarkan entitas perusahaan, dekomposisi berdasarkan
pembagian yang natural, lebih mudah untuk dipahami dan
dirawat)
Kestabilan (perubahan kecil dalam requirement tidak berarti
perubahan yang signifikan dalam system yang sedang
dikembangkan)
Lebih mudah disesuaikan dengan perubahan
Kenapa OOAD




Melihat segala hal sebagai sebuah objek
Komunikasi/Interaksi antar objek dilakukan melalui
pengiriman pesan (message)
Objek bersifat independen : dipandang sebagai
sebuah entitas mandiri yang memiliki peran atau
tanggung jawab tertentu
Objek Di Sekitar Kita?
11
What is an Object?

Informally, an object represents an entity, either physical,
conceptual, or software (sebuah object adalah representasi dari
sebuah entitas, baik fisik, konseptual maupun software.)
 Physical entity
Truck

Conceptual entity
Chemical Process

Software entity
Linked List
Konsep OO
• Object
•
adalah:
Definisi Formal : sebuah object adalah
sebuah entitas dengan boundary yang
terdefinisi dengan baik dan identitas yang
menengkapsulasi state dan behaviour.
•
•
State : direpresentasikan oleh atribut dan
relationship
Behaviour : direpresentasikan oleh operasi,
method dan state machine
13
Memahami Objek
14
The Relationship Between Classes and
Objects


Sebuah Class merupakan definisi abstract dari sebuah object.
• Class mendefinisikan struktur dan behaviour dari masingmasing object di dalam sebuah class.
• Class bertugas sebagai template untuk pembuatan class.
Jadi obyek merupakan hasil instansiasi dari class Obyek disebut
juga dengan instance
Class
Objects
Professor
Professor Smith
Professor Mellon
Professor Jones
Classes of Objects

How many classes do you see?
Atribut

Atribut adalah data yang dapat membedakan
antara satu obyek dengan obyek yang lain
 Sebuah class bisa memiliki beberapa atribut
atau tidak sama sekali
Instance variable vs
class variable ?
17
Behaviour atau Method


Method merupakan hal-hal yang bisa dilakukan oleh
obyek dari suatu class
Yang bisa dilakukan oleh method :
–Merubah nilai atribut suatu obyek
–Menerima informasi dari obyek lain
–Mengirim informasi ke obyek lain untuk melakukan
sesuatu.
18
Employee object & class
Class
Object
Employee
Employee16
name: string
address: string
dateOfBirth: Date
employeeNo: integer
socialSecurityNo: string
department: Dept
ma nager: Employee
salary: integer
status: {current, left, retired}
taxCode: integer
. ..
name: John
address: M Street No.23
dateOfBirth: 02/10/65
employeeNo: 324
socialecurityNo:E342545
department: Sale
manager: Employee1
salary: 2340
stauts:current
taxCode: 3432
….
join ()
leave ()
retire ()
changeDetails ()
Eployee16.join(02/05/1997)
Eployee16.retire(03/08/2005)
Eployee16.changeDetail(“X Street No. 12”)
19
Basic Principles of Object Orientation
Abstraksi (Abstraction)
 Pewarisan (Inheritance)
 Banyak Bentuk (Polymorphism)
 Pembungkusan (Encapsulation)
 Pengiriman Pesan (Message Sending)

20
Abstraction
Abstraction
Focus on the essential
Omits tremendous amount of details
…Focus on what an object “is and does”
Secara sederhana dikatakan membuang atribut obyek dan
operasi yang hanya sampai pada yang benar-benar
diperlukan.
21
Abstraksi Terkait Sudut Pandang
22
Encapsulation
 Menyembunyikan detail dari sebuah objek
 Abstraction dan encapsulation saling berkomplemen:
- Abstraction fokus pada sudut pandang dari luar
- Encapsulation membatasi client dari melihat isi dari
dalam sebuah object
23
24
25
What is Object-Orientation
- Another Example of Abstraction and Encapsulation
Class Car
<<instanceOf>>
<<instanceOf>>
<<instanceOf>>
Attributes
 Model
 Location
 #Wheels = 4
Operations
 Start
 Accelerate
26
Pewarisan





Mekanisme untuk menurunkan/mewariskan atribut (data)
dan operasi (behavior) dari sebuah klas ke klas yang lain
Klas induk/dasar (super class)
Klas turunan (derived class/sub-class)
Atribut dan operasi dari klas induk menjadi
bagian/anggota dari klas turunan
Klas turunan bisa memiliki atribut dan operasi yang tidak
ada pada klas induk  klas turunan sebagai perluasan
(extension)
Pewarisan
Contoh Pewarisan
29
- Subclass vs. Superclass
• Specialization: The act of defining one class as a refinement of another.
• Subclass: A class defined in terms of a specialization of a superclass
using inheritance.
• Superclass: A class serving as a base for inheritance in a class hierarchy
• Inheritance: Automatic duplication of superclass attribute and behavior
definitions in subclass.
Person
name
SSN
Student
std-id
level
Employee
emp-id
age
multiple inheritance?
30
Polymorphism
 Sebuah operasi memiliki nama yang sama pada class
yang berbeda
 Operasi yang sama jika diterapkan pada object yang
berbeda akan mengakibatkan operasi yang berbeda pula
31
32
Objects of different classes respond to the same message differently.
Person
name
SSN
payTuition
Student
std-id
level
Employee
emp-id
payTuition
In-State
Student
Out-of-State
Student
state
payTuition
payTuition
33
-Interfaces
•
•
•
•
Information hiding - all data should be hidden within a class, at least in principle.
make all data attributes private
provide public methods to get and set the data values (cf. Java design patterns)
e.g. Grade information is usually confidential, hence it should be kept
private to the student. Access to the grade information should be
done through interfaces, such as setGrade and getGrade
Student
std-id
level
setGrade
grade
getGrade
payTuition
setGrade()
getGrade()
34
Sending Message
Cara object bekerjasama
Pesan diterima untuk melakukan sebuah operasi
35
How to do OOAD
- notation

UML is a notation.
 So are English,
Elvish, Ku, …
36
A Unified Language + A Good Process
+ A Good Goal, perhaps
37
Apakah UML itu?

Unified Modeling Language (UML)
adalah keluarga notasi grafis yang
didukung oleh meta-model tunggal, yang
membantu pendeskripsian dan desain
sistem perangkat lunak, khususnya
sistem yang dibangun menggunakan
pemrograman berorientasi objek (OO).
Software

UML Tool :


Rational Rose
Bahasa Pemrograman :
Java
 .NET
 ≠ ASP,PHP dan Script yang lain

Diagram-Diagram UML
Diagram
Kegunaan
Activity
Behavior prosedural dan paralel
Class
Class, fitur, dan hubungan-hubungan
Communication
Interaksi antar objek; penekanan pd jalur
Component
Struktur dan koneksi komponen
Composite structure
Dekomposisi runtime sebuah class
Deployment
Pemindahan artifak ke node
Interaction overview
Campuran sequence dan activity diagram
Object
Contoh konfigurasi dari contoh-contoh
Package
Struktur hirarki compile-time
Sequence
Interaksi antar objek; penekanan pd sequence
State machine
Bagaimana even mengubah objek selama aktif
Timing
Interaksi antar objek; penekanan pd timing
Use case
Bagaimana pengguna berinteraksi dg sistem
How to Do OOAD
- Historical Perspective
OO Technology
OO Prog. Languages
(Smalltalk, C++)
Process Perspective
just program!
OO Design
(Booch)
OO Analysis
design then
program
Analyze (use case) first,
(Rumbaugh, Jacobson)
then design,
T
then program
41