Anda di halaman 1dari 13

Object Oriented Analysis and Design

Fokus pada object dimana sistem dibagi ke dalam beberapa object yang ada di dalamnya. Function (behavior) dan data (state) yang berhubungan ke suatu object tunggal adalah self-contained atau encapsulated pada satu tempat. Keuntungan object-oriented: Reusability Modularity Maintainability Object adalah suatu abstraksi dari sesuatu dalam suatu domain masalah, menyatakan kemampuan sistem untuk : menyimpan informasi tentang object tsb, berinteraksi dengan object tsb, atau keduanya Object adalah entitas suatu sistem software yang menyatakan kejadian (instances) dari real-world an entitas sistem Object Class Class adalah deskripsi dari sekumpulan object yang membagi (share) attributes, methods, relationship dan semantic yang sama; Object class adalah template untuk object, yang dapat digunakan untuk membuat object, Object menyatakan suatu kejadian khusus tertentu dari suatu class Contoh: Class name: string address: string 3 dateOfBirth: date employeeNo: integer socialecurityNo: string department: string manager: string salary: real status: {current, left, retired} taxCode: integer Join( ) Retire( ) ChnageDetail( )

Object name: John address: M Street No.23 dateOfBirth: 02/10/65 employeeNo: 324 socialecurityNo:E342545 department: Sale manager: Employee1 salary: 2340 status:current taxCode: 3432 Eployee16.join(02/05/1997) Eployee16.retire(03/08/2005) Eployee16.changeDetail(X Street No. 12)
1

Inheritance Object classes dapat menurunkan atribut dan services dari object class yang lain, Inheritance menyatakan suatu generalisasi suatu class, Generalisasi
Employee

Manager
budgetsControlled dateAppointed

Programmer project progLanguage

Project Manager
projects

Dept. Manager
dept

Strategic Manager
responsibilities

Library Class Hierarchy


Library item Catalogue number Acquisition date Cost Type Status Number of copies Acquire () Catalogue () Dispose () Issue () Return ()

Published item Title Publisher

Recorded item Title Medium

Book Author Edition Publication date ISBN

Magazine Y ear Issue

Film Director Date of release Distributor

Computer program Version Platform

Keuntungan Inheritance: Merupakan mekanisme abstraksi yang dapat digunakan untuk mengklasifikasikan entitas Merupakan mekanisme re-use pada tahap perancangan dan pemrograman Grafik Inheritance adalah suatu bentuk gambaran tetang organisasi pada suatu domain dan sistem Multiple Inheritance
Book Author Edition Publication date ISBN Voice recording Speaker Duration Recording date

Talking book # Tapes

Suatu object class dapat pula dibentuk dari turunan beberapa superclass, Akan memberikan dampak konflik semantic dimana atribut/service dengan nama yang sama pada super-class yang berbeda memiliki semantic yang berbeda Membentuk hierarchy yang lebih kompleks Masalah dengan Inheritance Object class tidak self-contain, sehingga tidak dapat diketahui tanpa referensi ke super-classnya Perancang memiliki tendensi untuk melakukan reuse terhadap graph inheritance yang sudah dibuat sehingga dapat menimbulkan ketidak efisiensian yang signifikan Object Agregasi Model agregasi menunjukkan bagaimana class-class dibentuk dari class yang lainnya Similar dengan relasi: part-of dalam model data semantic

St udy p ack Course title Number Year Ins t ructor


1 1 1 1 1 1 1 0

Assignment Credits
1 1 1 1

OHP slides Slides

Lecture notes Text

Videotape Tape ids.

Exercises #Problems Description

Solutions Text Diagrams

Encapsulation Private: attributes dan methods dienkapsulasi dalam class sehingga dapat diakses oleh clien akses tersebut -> hanya dapat diakses oleh member class tersebut. Public: metode mendefinisikan inteface sebagai sarana mengakses class dari clint-nya.Dapat diakses oleh object manapun. Protected: hanya dapat diakses oleh object-class turunannya

Custome
private attributes
- numCustomers = 0 - MIN_BUDGET = 200 - name: String - address: String - budget: int

public methods

+ printNumCustomer( ): void + placeOrder( ): void


Customer class

Komunikasi dalam object Object berkomunikasi dengan object lain melalui pengiriman pesan (messages) o Suatu pesan adalah suatu metode call dari suatu object pengirim-pesan ke suatu object penerima pesan o Suatu pesan terdiri dari: Object referensi yang mengindikasikan penerima pesan, nama method dan parameter (argumen dari method) Object penerima pesan disebut server ke object pengirim pesan, dan objek pengirim pesan adalah client dari server.
message
name = Alex address = 1 Robinson Rd budget = 2000

takeOrder(sofa, name, address, 120799)

name = Lawrence employeeNo =15 commission = 200 takeOrder( ): int

19 placeOrder( ): void return value

alex

lawrence

message lawrence.takeOrder(sofa, Alex,1 Robinson Rd, 120799) object reference method name parameters

Object Cohesion dan Coupling Cohesion suatu komponen adalah ukuran tentang hubungan antara komponen suatu object class. Setiap operasi menyediakan fungsi untuk mengubah, melihat, atau menggunakan atribut object sebagai layanan dasar, Coupling adalah suatu indikasi kekuatan interkoneksi antara program units. Sistem dengan coupling yg kuat memiliki interkoneksi yang kuat sehingga setiap program unit sangat ketergantungan dengan yang lainnya (mis.: shared variables, interchange control function). Sistem dengan couple yang lemah tidak memiliki ketergantungan yang kuat antar program units.

Polymorphism Kemampuan object yang berbeda untuk menjalankan method yang sesuai untuk merespon ke pesan yg sama Pemilihan method yang sesuai tergantung pada class yg digunakan untuk membuat object
Shape
name getName( ) calculateArea( )

radius calculateArea( )

Circle

Square

side calculateArea( )

Contoh:
class Shape { private String name; public Shape(String aName) { name=aName; } public String getName( ) { return name; } public float calculateArea( ) { return 0.0f; } } // End Shape class class Circle extends Shape { private float radius; public Circle(String aName) { super(aName); radius = 1.0f; } public Circle(String aName, float radius) { super(aName); this.radius = radius; } public float calculateArea() { return (float)3.14f*radius*radius; } } // End Circle class class Square extends Shape { private float side; public Square(String aName) { super(aName); side = 1.0f; } public Square(String aName, float side) { super(aName); this.side = side; } public float calculateArea() { return (float) side*side; } } // End Square classpublic class ShapeDemoClient { public static void main(String argv[ ]) { Shape c1 = new Circle("Circle C1"); Shape c2 = new Circle("Circle C2", 3.0f); Shape s1 = new Square("Square S1"); Shape s2 = new Square("Square S2", 3.0f); Shape shapeArray[ ] = {c1, s1, c2, s2}; for (int i = 0; i < shapeArray.length; i++) { System.out.println("The area of " + shapeArray[i].getName( ) + " is " + shapeArray[i].calculateArea( ) + " sq. cm."); } } // End main } // End ShapeDemoClient1 class

OO Analysis: mencari kebutuhan dari perpektif class dan object yang ditemukan dalam suatu vocabulary dari domain masalah. Dengan kata lain, world (system) dimodelkan dalam bentuk object dan class, OO Design: Dekomposisi OO dan suatu notasi untuk menggambarkan model system pada tahap pengembangan. Struktur dibentuk setelah object yang berhubungan dengan system sudah didefinisikan. OO-Analisis: Menganalisa domain masalah Menggambarkan proses system Identifikasi object Spesifikasi atribut Mendefinisikan Operation Inter-object Communication Identifikasi Suatu Object Entitas luar (mis.: system lain, alat, orang) yang menghasilkan / menggunakan informasi yang digunakan system Benda (mis.: laporan, tampilan, surat, signal) yang merupakan bagian informasi Peran (mis: manager, engineer, salesperson) yang dimainka oleh orang yang berinteraksi dengan system, Tempat(mis.: ruangan) yang menyediakan konteks permasalah dan fungsi keseluruhan system, Unit organisasi (mis.: divisi, group, team) yang relevan ke aplikasi,

Student to

Staff

Catalog

Got to

Book

Student

Got to

Loaned Book

Charge

Return

Magazine

Check Book
Late Returne

Give List of Loaned

Journal

Check

Check Loaned Process the Loan

Warned to return book Pay the Appr

Get the 7

Class Fitting

Student

Staff

ID Name dateOfBirth .
Register( ) ChangItems( ) .

ID Name dateOfBirth Department: Join ( ) AssignDept( ) .

Object Relations

loan Student
Checked / served by

Book

loanedBook Staff BookID loanDate studentID

Package

LoanProces Studen searc Boo

addLoanedBoo loanedBoo

Unified Modelling Language


8

The Unified Modeling Language (UML) is a standard language for writing software blueprints. The UML may be used to visualize, specify, construct, and document the artifacts of a softwareintensive system.
Building Blocks

Things Relationships Diagrams


Things: Structural things
classes, interfaces, collaborations, use cases, active classes, components, nodes.

Behavioral things
interactions, state machines.

Grouping things
packages.

Annotational things

Sha pe
origin mov e() resize() display ()
notes.

Class Inheritance
< <Cl ass Mo dul e>>

Shape origin : Variant m ove() resize() display()

Rectangle
corner : Point

Circle
radius : Double

Po lygon
point : List

Square

Class - DependenciesA change in specification of one thing may effect another thing that uses it
FilpClip
name playOn() start() stop() reset()

Channel

Class Association A structural relationship that specifies that objects of one thing are connected to objects of another. Name: name of association Role: a specific role of class in an association Multiplicity, an association represent a structural relationship among objects: zero to one(0..1), many(0..*) or one or more (1..*) Aggregation: a plain association between two classes represents a structural relationship whole-a-partAssociation, Multiplicity, Aggregation and Role
0

School
1 1

has
1

Department
1 1

member
*

Assigns to
1 1 * 1
chairperso

Student

attends
*

Course

teach

Instructor

Structural Things Use Case Specifies the behavior of a system or a part of a system and is a description of a set of sequences of actions, including variants, that a system performs to yield an observable result of value to an actor.

Process Loan LoanOf fic er

10

Use Case Diagram One of the five diagrams (activity diag., statechart diag., sequence diag., collaboration diag.) in the UML for modeling the dynamic aspects of systems. Central to modeling the behavior of a system, a subsystem, or a class, Use Case Diagram

Pe rform Card T ransa ct ion RetailInstitution

Process Customer Bill

Customer Reconcile T ransaction Sponsoring Financial

Manage Custom er Account

Statechart Diagram A statechart diagram shows a state machine, consisting of states, transitions, events, and activities.
S tart

Mem inta Inform asi

Mem beri Inform asi

Melen gkapi Persyara tan

Menyerahkan Persyarat

Cek Persyaratan

[Tidak Lengkap]
[L engkap]

Mencatat Pendafta ran

End

Activity DiagramAn activity diagram is a special kind of a statechart diagram that shows the flow from activity to activity within a system.
11

Prepare Text TO Vis aul

Read Text

Generate Ge s ture

Generate Phonem e

Gene rate Speech

Generate Lip Articulation

Syn c Mouth and Ges ture

Stream Audio

Clean Buffer

Sequence DiagramA sequence diagram is an interaction diagram that emphasizes the timeordering of messages.
: P e tu g a s : L a ya r U ta m a S i s te m L o ke t P e n d a fta r a n 1 : P e n d a fta r a n B a r u ( ) : Me m b u a t P e n d a fta r a n B a r u

: F o r m u l i r P e n d a fta r a n

: P e n d a fta r a n B a ru

2 : P e n d a fta r a n B a r u ( )
3 : J a l a n k a n F o r m u l i r P e n d a fta r a n ( )

4 : T a m p i l k a n F o r m P e n d a fta r a n ( )

5 : M a s u k a n P e n d a ft a ra n ( )
6 : B ua t P e n d af ta ra n ( )

7 : T a m b a h ka n P e n d a fta r a n ( )

Component DiagramComponent diagram shows an organization and dependencies of a group of components.

12

Deployment Diagram
Deployment diagram shows the configuration of run-time node processing and its components.

Server SIMTAP

<<network>> WAN

Komputer Pej abat SOPD

<<network>> LAN

Kom puter Loket Pendaftaran

Kom puter Loket Penyerahan

Kom puter Bupati Kom puter Sekreteris

13