introduction to ooad

41
1 Introduction to OOAD (Object-Oriented Analysis and Design)

Upload: paloma

Post on 13-Jan-2016

101 views

Category:

Documents


9 download

DESCRIPTION

Introduction to OOAD. (Object-Oriented Analysis and Design). 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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Introduction to OOAD

1

Introduction to OOAD(Object-Oriented Analysis and Design)

Page 2: Introduction to OOAD

2

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

Page 3: Introduction to OOAD

3

Why Object-Oriented?

Page 4: Introduction to OOAD

Video

4

Page 5: Introduction to OOAD

5

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.

Page 6: Introduction to OOAD

6

apabila kita gagal membuat perencanaan dengan baik, maka kita sebetulnya

merencanakan untuk gagal . . .

Page 7: Introduction to OOAD

METODE ANALISIS

Ada beberapa pendekatan yang biasa digunakan dalam menganalisa suatu sistem,

yaitu: Functional Decomposition Data Flow Approach Object Oriented

7

Page 8: Introduction to OOAD

Functional Decomposition

8

Page 9: Introduction to OOAD

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

Page 10: Introduction to OOAD

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

Page 11: Introduction to OOAD

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

Page 12: Introduction to OOAD

Truck

Chemical Process

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

Conceptual entity

Software entity

Page 13: Introduction to OOAD

• 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

Konsep OO

Page 14: Introduction to OOAD

Memahami Objek

14

Page 15: Introduction to OOAD

ObjectsClass

Professor Smith

Professor Jones

Professor Mellon

Professor

The Relationship Between Classes and Objects

Sebuah Class merupakan definisi abstract dari sebuah object.• Class mendefinisikan struktur dan behaviour dari masing-

masing object di dalam sebuah class. • Class bertugas sebagai template untuk pembuatan class.

Jadi obyek merupakan hasil instansiasi dari class Obyek disebut juga dengan instance

Page 16: Introduction to OOAD

Classes of Objects

How many classes do you see?

Page 17: Introduction to OOAD

Atribut adalah data yang dapat membedakan antara satu obyek dengan obyek yang lain

Sebuah class bisa memiliki beberapa atribut atau tidak sama sekali

17

Atribut

Instance variable vs

class variable ?

Page 18: Introduction to OOAD

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

Behaviour atau Method

Page 19: Introduction to OOAD

19

Employee object & class

Employee

name: stringaddress: stringdateOfBirth: DateemployeeNo: integersocialSecurityNo: stringdepartment: Deptmanager: Employeesalary: integerstatus: {current, left, retired}taxCode: integer. . .

join ()leave ()retire ()changeDetails ()

Employee16

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

Eployee16.join(02/05/1997)Eployee16.retire(03/08/2005)Eployee16.changeDetail(“X Street No. 12”)

ObjectClass

Page 20: Introduction to OOAD

Abstraksi (Abstraction)Pewarisan (Inheritance)Banyak Bentuk (Polymorphism)Pembungkusan (Encapsulation)Pengiriman Pesan (Message Sending)

20

Basic Principles of Object Orientation

Page 21: Introduction to OOAD

21

AbstractionFocus on the essentialOmits 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.

Abstraction

Page 22: Introduction to OOAD

22

Abstraksi Terkait Sudut Pandang

Page 23: Introduction to OOAD

23

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

Encapsulation

Page 24: Introduction to OOAD

24

Page 25: Introduction to OOAD

25

Page 26: Introduction to OOAD

26

What is Object-Orientation- Another Example of Abstraction and Encapsulation

Class Car

Attributes Model Location #Wheels = 4

Operations Start Accelerate

<<instanceOf>>

<<instanceOf>>

<<instanceOf>>

Page 27: Introduction to OOAD

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

Page 28: Introduction to OOAD

Pewarisan

Page 29: Introduction to OOAD

29

Contoh Pewarisan

Page 30: Introduction to OOAD

30

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

multiple inheritance?

PersonnameSSN

Studentstd-idlevel

Employeeemp-idage

Page 31: Introduction to OOAD

31

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

Polymorphism

Page 32: Introduction to OOAD

32

Page 33: Introduction to OOAD

33

Objects of different classes respond to the same message differently.

payTuition

PersonnameSSN

Studentstd-idlevel

Employeeemp-id

In-StateStudent

state

payTuition payTuition

Out-of-StateStudent

payTuition

Page 34: Introduction to OOAD

34

-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

payTuition

setGrade()

getGrade()

Studentstd-idlevel

getGrade

setGrade

grade

Page 35: Introduction to OOAD

35

Sending Message

Cara object bekerjasama

Pesan diterima untuk melakukan sebuah operasi

Page 36: Introduction to OOAD

36

How to do OOAD- notation

UML is a notation. So are English,

Elvish, Ku, …

Page 37: Introduction to OOAD

37

A Unified Language + A Good Process + A Good Goal, perhaps

Page 38: Introduction to OOAD

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

Apakah UML itu?

Page 39: Introduction to OOAD

Software

UML Tool :Rational Rose

Bahasa Pemrograman :Java .NET≠ ASP,PHP dan Script yang lain

Page 40: Introduction to OOAD

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

Diagram-Diagram UML

Page 41: Introduction to OOAD

41

How to Do OOAD - Historical Perspective

OO Prog. Languages

(Smalltalk, C++)just program!

OO Design

(Booch) design then program

OO Analysis(Rumbaugh, Jacobson)

Process PerspectiveOO Technology

Analyze (use case) first,

then design,

T then program