Ooad Intro

download Ooad Intro

of 41

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