Ooad Intro
-
Upload
anggita-mahardika -
Category
Documents
-
view
270 -
download
2
Transcript of Ooad Intro
-
7/26/2019 Ooad Intro
1/41
1
Introduction to OOAD(Object-Oriented Analysis and Design)
-
7/26/2019 Ooad Intro
2/41
2
Faktor Utama Kegagalan P/
Kebutu!an kustomer tidak bisa di"a!ami danditangka" dengan te"at
Kebutu!an kustomer sering mengalami
"eruba!anKustomer tidak bisa bekerja sama dengan
"engembang
Pengembang kurang memiliki kecaka"an dalam
menjalankan tugas
#istem yang dikembangkan tidak terlalu banyak
memberikan man$aat ke"ada kustomer
-
7/26/2019 Ooad Intro
3/41
3
Why Object-Oriented?
-
7/26/2019 Ooad Intro
4/41
%ideo
4
-
7/26/2019 Ooad Intro
5/41
5
What is a model and why?
A model is a sim"li$ication o$ reality.
Pemodelan adala! suatu cara ber"ikir tentang
"ersoalan menggunakan model-model yang
diorganisasikan se"utar dunia nyata& 'o understand whya so$tare system is needed whatit s!ould do and howit s!ould do it& 'o communicate our understanding o$ !y !at and !o& 'o detect commonalities and di$$erences in your "erce"tion my "erce"tion !is "erce"tion
and !er "erce"tion o$ reality& 'o detect misunderstandings and miscommunications&
-
7/26/2019 Ooad Intro
6/41
6
apabila kita gagal membuat perencanaan denganbaik, maka kita sebetulnya merencanakan untuk
gagal . . .
-
7/26/2019 Ooad Intro
7/41
METODE ANALISIS
Ada bebera"a "endekatan yang biasa
digunakan dalam menganalisa suatu
sistem
yaitu* Functional Decomposition
Data Flow Approach
Object Oriented
7
-
7/26/2019 Ooad Intro
8/41
Functiona Deco!"osition
8
-
7/26/2019 Ooad Intro
9/41
Object-oriented de+elo"ment
OOA ,em"elajari domain "ermasala!an bisnis untuk
merekomendasikan "erbaikan dan menentukan
#ebutuhan sistem untuk menyelesaikan
"ermasala!an&
OOD ,enentukan solusi teknis atau
rancan$an%co!"uter-based dimana solusi ini
berdasarkan kebutu!an sistem yang tela!
diidenti$ikasi "ada "roses analisis&
OOP is concerned it! realising an OOD using an OO"rogramming language suc! as a+a or .&
-
7/26/2019 Ooad Intro
10/41
Kena"a OOAD
Karena * ,emuda!kan "eman$aatan ulang code dan arsitektur
ebi! mencerminkan dunia nyata (lebi! te"at dalam
menggambarkan entitas "erusa!aan dekom"osisi berdasarkan
"embagian yang natural lebi! muda! untuk di"a!ami dandiraat)
Kestabilan ("eruba!an kecil dalam re0uirement tidak berarti
"eruba!an yang signi$ikan dalam system yang sedang
dikembangkan)
ebi! muda! disesuaikan dengan "eruba!an
-
7/26/2019 Ooad Intro
11/41
Kena"a OOAD
,eli!at segala !al sebagai sebua! objek
Komunikasi/Interaksi antar objek dilakukan melalui
"engiriman "esan (message)
Objek bersi$at inde"enden * di"andang sebagaisebua! entitas mandiri yang memiliki "eran atau
tanggung jaab tertentu
Objek Di #ekitar Kita1
11
-
7/26/2019 Ooad Intro
12/41
'ruck
.!emical Process
2!at is an Object1
In$ormally an object re"resents an entity eit!er "!ysicalconce"tual or so$tare (sebua! object adala! re"resentasi dari
sebua! entitas baik $isik konse"tual mau"un so$tare&)
P!ysical entity
.once"tual entity
#o$tare entity
-
7/26/2019 Ooad Intro
13/41
3 Object adala!*3 De$inisi Formal * sebua! object adala!
sebua! entitas dengan boundary yang
terde$inisi dengan baik dan identitas yangmenengka"sulasi state dan be!a+iour&
3 #tate * dire"resentasikan ole! atribut dan
relations!i"
3 4e!a+iour * dire"resentasikan ole! o"erasi
met!od dan state mac!ine
13
Konse" OO
-
7/26/2019 Ooad Intro
14/41
,ema!ami Objek
14
-
7/26/2019 Ooad Intro
15/41
Objects
Class
Pro$essor #mit!
Pro$essor ones
Pro$essor ,ellon
Pro$essor
The &eationshi" 'etween (asses and
Objects
#ebua! .lass meru"akan de$inisi abstract dari sebua! object&
3 .lass mende$inisikan struktur dan be!a+iour dari masing-
masing object di dalam sebua! class&
3 .lass bertugas sebagai tem"late untuk "embuatan class&
adi obyek meru"akan !asil instansiasi dari class Obyek disebutjuga dengan instance
-
7/26/2019 Ooad Intro
16/41
.lasses o$ Objects
5o many classes do you see1
-
7/26/2019 Ooad Intro
17/41
Atribut adala! data yang da"at membedakan
antara satu obyek dengan obyek yang lain
#ebua! class bisa memiliki bebera"a atribut
atau tidak sama sekali
17
Atribut
Instance variable vs
class variable ?
-
7/26/2019 Ooad Intro
18/41
,et!od meru"akan !al-!al yang bisa dilakukan ole!obyek dari suatu class
6ang bisa dilakukan ole! met!od *
7,eruba! nilai atribut suatu obyek
7,enerima in$ormasi dari obyek lain7,engirim in$ormasi ke obyek lain untuk melakukan
sesuatu&
18
4e!a+iour atau ,et!od
-
7/26/2019 Ooad Intro
19/41
19
E!"oyee object ) cass
E!"oyee
name* stringaddress* stringdateO$4irt!* Date
em"loyee8o* integersocial#ecurity8o* stringde"artment* De"tmanager* 9m"loyeesalary* integerstatus* :current le$t retired;
ta
-
7/26/2019 Ooad Intro
20/41
Abstraksi (Abstraction)
Pearisan (In!eritance)
4anyak 4entuk (Polymor"!ism)Pembungkusan (9nca"sulation)
Pengiriman Pesan (,essage #ending)
20
'asic *rinci"es o+ Object Orientation
-
7/26/2019 Ooad Intro
21/41
21
Abstraction
Focus on t!e essential
Omits tremendous amount o$ details
'o"#s on 4hat an o(e"t is and does
Se"ara sederhana di5ata5an mem#an$ atri#t oye5 dan
operasi yan$ hanya sampai pada yan$ enarenar
diperl#5an.
Abstraction
-
7/26/2019 Ooad Intro
22/41
22
Abstraksi'erkait#udut Pandang
-
7/26/2019 Ooad Intro
23/41
23
Menyem#nyi5an detail dari se#ah o(e5
7stra"tion dan en"aps#lation salin$ er5omplemen:
7stra"tion fo5#s pada s#d#t pandan$ dari l#ar
En"aps#lation mematasi "lient dari melihat isi dari
dalam se#ah o(e"t
Enca"suation
-
7/26/2019 Ooad Intro
24/41
24
-
7/26/2019 Ooad Intro
25/41
25
-
7/26/2019 Ooad Intro
26/41
26
2!at is Object-Orientation- Anot!er 9
-
7/26/2019 Ooad Intro
27/41
,ekanisme untuk menurunkan/meariskan atribut (data)dan o"erasi (behavior) dari sebua! klas ke klas yang lain
Klas induk/dasar (super class)
Klas turunan (derived class/sub-class)
Atribut dan o"erasi dari klas induk menjadi
bagian/anggota dari klas turunan
Klas turunan bisa memiliki atribut dan o"erasi yang tidak
ada "ada klas induk klas turunan sebagai "erluasan
(etension)
*ewarisan
-
7/26/2019 Ooad Intro
28/41
Pearisan
-
7/26/2019 Ooad Intro
29/41
29
(ontoh*ewarisan
-
7/26/2019 Ooad Intro
30/41
30
- Subcass ,s Su"ercass
3 #"eciali=ation* '!e act o$ de$ining one class as a re$inement o$ anot!er&
3 #ubclass*A class de$ined in terms o$ a s"eciali=ation o$ a su"erclassusing in!eritance&
3 #u"erclass* A class ser+ing as a base $or in!eritance in a class !ierarc!y
3 In!eritance*Automatic du"lication o$ su"erclass attribute and be!a+iorde$initions in subclass&
multiple inheritance?
>erson
nameSSN
St#dent
stdid
le?el
Employee
empidage
-
7/26/2019 Ooad Intro
31/41
31
Se#ah operasi memili5i nama yan$ sama pada "lass
yan$ ereda
Operasi yan$ sama (i5a diterap5an pada o(e"t yan$
ereda a5an men$a5iat5an operasi yan$ ereda p#la
Polymor"!ism
-
7/26/2019 Ooad Intro
32/41
32
-
7/26/2019 Ooad Intro
33/41
33
Objects o$ di$$erent classes res"ond to t!e same message di$$erently&
payTuition
>erson
nameSSN
St#dent
stdidle?el
Employee
empid
@nStateSt#dent
state
payA#ition payA#ition
O#tofStateSt#dent
payA#ition
-
7/26/2019 Ooad Intro
34/41
34
-Inter$aces
3 In$ormation !iding - all data s!ould be !idden it!in a class at least in "rinci"le&3 make all data attributes "ri+ate3 "ro+ide "ublic met!ods to get and set t!e data +alues (c$& a+a design "atterns)3 e&g& >rade in$ormation is usually con$idential !ence it s!ould be ke"t
"ri+ate to t!e student& Access to t!e grade in$ormation s!ould be
done t!roug! inter!aces suc! as set>radeand get>rade
payTuition
setrade),
$etrade),
St#dent
stdidle?el
$etrade
setrade
$rade
-
7/26/2019 Ooad Intro
35/41
35
#ending,essage
Cara object bekerjasama
>esan diterima #nt#5 mela5#5an se#ah operasi
-
7/26/2019 Ooad Intro
36/41
36
5o to do OOAD
- notation
U, is a notation&
#o are 9nglis!
9l+is! Ku ?
-
7/26/2019 Ooad Intro
37/41
37
A Uni$ied anguage A >ood ProcessA "ood "oal, perhaps
-
7/26/2019 Ooad Intro
38/41
Uni$ied ,odeling anguage (U,)
adala! keluarga notasi gra$is yang
didukung ole! meta-model tunggal yang
membantu "endeskri"sian dan desainsistem "erangkat lunak k!ususnya
sistem yang dibangun menggunakan
"emrograman berorientasi objek (OO)&
A"aka! U, itu1
-
7/26/2019 Ooad Intro
39/41
#o$tare
U, 'ool *@ational @ose
4a!asa Pemrograman *a+a
&89'
A#PP5P dan #cri"t yang lain
-
7/26/2019 Ooad Intro
40/41
Dia$ra! .e$unaan
Acti+ity 4e!a+ior "rosedural dan "aralel
.lass .lass $itur dan !ubungan-!ubungan
.ommunication Interaksi antar objekB "enekanan "d jalur
.om"onent #truktur dan koneksi kom"onen
.om"osite structure Dekom"osisi runtime sebua! classDe"loyment Peminda!an arti$ak ke node
Interaction o+er+ie .am"uran se0uence dan acti+ity diagram
Object .onto! kon$igurasi dari conto!-conto!
Package #truktur !irarki com"ile-time
#e0uence Interaksi antar objekB "enekanan "d se0uence
#tate mac!ine 4agaimana e+en menguba! objek selama akti$
'iming Interaksi antar objekB "enekanan "d timing
Use case 4agaimana "engguna berinteraksi dg sistem
Diagram-Diagram U,
-
7/26/2019 Ooad Intro
41/41
41
5o to Do OOAD- 5istorical Pers"ecti+e
OO Prog. Languages
)Smalltal5C &DD,(#st pro$ram
OO Design
)Boo"h, desi$n then
pro$ram
OO Analysis)F#ma#$hC Ja"oson,
Process PerspectiveOO Technology
7nalyGe )#se "ase, firstC
then desi$nC
A then pro$ram