Object Oriented Analysis and Design€¦  · Web viewObject Oriented Analysis and Design. Fokus...

16
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 Object name: string address: string 3 name: John address: M Street No.23 1 School Student Department Course Instructor ..* teaches attends er has 1 1 ..* * * * 1 ..* 1 ..* Assigns to 1 ..* 1 ..* 1 ..* 0 ..1 chairperson

Transcript of Object Oriented Analysis and Design€¦  · Web viewObject Oriented Analysis and Design. Fokus...

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 ClassClass 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 Objectname: stringaddress: string 3dateOfBirth: dateemployeeNo: integersocialecurityNo: stringdepartment: stringmanager: stringsalary: realstatus: {current, left, retired}taxCode: integer

name: Johnaddress: M Street No.23dateOfBirth: 02/10/65employeeNo: 324socialecurityNo:E342545department: Salemanager: Employee1salary: 2340status:currenttaxCode: 3432

Join( )Retire( )ChnageDetail( )

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

Programmer

projectprogLanguage

Manager

ProjectManager

budgetsControlleddateAppointed

projects

Dept.Manager

StrategicManager

dept responsibilities

Library Class Hierarchy

Catalogue numberAcquisition dateCostTypeStatusNumber of copies

Library item

Acquire ()Catalogue ()Dispose ()Issue ()Return ()

AuthorEditionPublication dateISBN

Book

YearIssue

MagazineDirectorDate of releaseDistributor

Film

VersionPlatform

Computerprogram

TitlePublisher

Published itemTitleMedium

Recorded item

2

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

# Tapes

Talking book

AuthorEditionPublication dateISBN

Book

SpeakerDurationRecording date

Voice recording

Suatu object class dapat pula dibentuk dari turunan beberapa super-class,

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 AgregasiModel agregasi menunjukkan bagaimana class-class dibentuk dari class yang lainnyaSimilar dengan relasi: part-of dalam model data semantic

3

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

4

Videotape

Tape ids.

Lecturenotes

Text

OHP slides

Slides

Assignment

Credits

SolutionsTextDiagrams

Exercises

#Problems Description

Course titleNumberYearInstructor

Study pack

1 ..*

1 1 1 1

0 ..*1 ..*1 ..*

1 1

1 ..* 1 ..*

- numCustomers = 0- MIN_BUDGET = 200

- name: String- address: String

- budget: int

+ placeOrder( ): void

Customer

public methods + printNumCustomer( ): void

private attributes

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 pesano 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.

Object Cohesion dan CouplingCohesion 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.

5

name = “Alex”address =

“1 Robinson Rd”budget = 2000

placeOrder( ): void

name = “Lawrence”employeeNo =15commission = 200

takeOrder( ): int

takeOrder(“sofa”, name, address, “120799”)

199

message

return valuealex lawrence

lawrence.takeOrder(“sofa”, “Alex”,“1 Robinson Rd”, “120799”)

parametersmethod nameobject reference

message

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

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 classclass 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 classclass 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

6

Shape

SquareCircle

namegetName( )calculateArea( )

sidecalculateArea( )

radiuscalculateArea( )

Student to Library

Got to Staff

Got to Catalog

Return Book

Check Book Return Expired

Give List of Loaned Book

Late ReturnedCharge

Pay the charge Approved

Staff Catalog

Book Student

Loaned Book Charge

Check ID

Process the Loan Book

Check Loaned Book by ID

Warned to return book first

Get the Book

Magazine

Journal

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,

7

Class Fitting

Object Relations

Package

Unified Modelling Language

8

Student

IDNamedateOfBirth….

Register( )ChangItems( )….

Staff

IDNamedateOfBirthDepartment:

Join ( )AssignDept( )….

Student Bookloan

Staff

Checked / served byloanedBook

BookIDloanDatestudentID

LoanProcess

Student Book

loanedBook

search

addLoanedBook

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

ThingsRelationshipsDiagrams

Things:Structural things

classes, interfaces, collaborations, use cases, active classes, components, nodes.

Behavioral things interactions, state machines.

Grouping things packages.

Annotational things notes.

Shape

origin

mov e()resize()display ()

Class Inheritance

Shapeorigin : Variant

move()resize()display()

<<Class Module>>

Rectanglecorner : Point

Circleradius : Double

Polygonpoint : List

Square

Class - DependenciesA change in specification of one thing may effect another thing that uses it

9

FilpClipname

playOn()start()stop()reset()

Channel

Class – AssociationA structural relationship that specifies that objects of one thing are connected to objects of another.Name: name of associationRole: a specific role of class in an associationMultiplicity, 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-part”Association, Multiplicity, Aggregation and Role

Structural Things – Use CaseSpecifies 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.

LoanOfficerProcess Loan

Use Case Diagram

10

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

Reconcile Transaction

Customer

Perform Card T ransaction

Retail Institution

Process Customer Bil l

Manage Customer Account

Sponsoring Financial

Statechart DiagramA statechart diagram shows a state machine, consisting of states, transitions, events, and activities.

Start

Meminta Informasi

Melengkapi Persyaratan

Memberi Informasi

Mencatat Pendaftaran

Cek Persyaratan

End

Menyerahkan Persyarat

[Tidak Lengkap]

[Lengkap]

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 Visaul

Generate Gesture

Read Text

Generate Phoneme

Generate Speech Generate Lip

Articulation

Sync Mouth and Gesture Stream Audio

Clean Buffer

Sequence DiagramA sequence diagram is an interaction diagram that emphasizes the timeordering of messages.

: Petugas Loket

: Layar Utama Sis tem Pendaftaran

: Membuat Pendaftaran Baru

: Formulir Pendaftaran : Pendaftaran Baru1: Pendaftaran Baru( )

2: Pendaftaran Baru( )

3: Jalankan Formulir Pendaftaran( )

4: Tampilkan Form Pendaftaran( )

5: Masukan Pendaftaran( )

6: Buat Pendaftaran( )

7: Tambahkan Pendaftaran( )

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

12

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

13