Download - Introduction to OOAD
![Page 1: Introduction to OOAD](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/1.jpg)
1
Introduction to OOAD(Object-Oriented Analysis and Design)
![Page 2: Introduction to OOAD](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/3.jpg)
3
Why Object-Oriented?
![Page 4: Introduction to OOAD](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/4.jpg)
Video
4
![Page 5: Introduction to OOAD](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/6.jpg)
6
apabila kita gagal membuat perencanaan dengan baik, maka kita sebetulnya
merencanakan untuk gagal . . .
![Page 7: Introduction to OOAD](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/8.jpg)
Functional Decomposition
8
![Page 9: Introduction to OOAD](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/13.jpg)
• 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](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/14.jpg)
Memahami Objek
14
![Page 15: Introduction to OOAD](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/16.jpg)
Classes of Objects
How many classes do you see?
![Page 17: Introduction to OOAD](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/20.jpg)
Abstraksi (Abstraction)Pewarisan (Inheritance)Banyak Bentuk (Polymorphism)Pembungkusan (Encapsulation)Pengiriman Pesan (Message Sending)
20
Basic Principles of Object Orientation
![Page 21: Introduction to OOAD](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/22.jpg)
22
Abstraksi Terkait Sudut Pandang
![Page 23: Introduction to OOAD](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/24.jpg)
24
![Page 25: Introduction to OOAD](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/25.jpg)
25
![Page 26: Introduction to OOAD](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/28.jpg)
Pewarisan
![Page 29: Introduction to OOAD](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/29.jpg)
29
Contoh Pewarisan
![Page 30: Introduction to OOAD](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/31.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/32.jpg)
32
![Page 33: Introduction to OOAD](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/33.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/34.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/35.jpg)
35
Sending Message
Cara object bekerjasama
Pesan diterima untuk melakukan sebuah operasi
![Page 36: Introduction to OOAD](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/36.jpg)
36
How to do OOAD- notation
UML is a notation. So are English,
Elvish, Ku, …
![Page 37: Introduction to OOAD](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/37.jpg)
37
A Unified Language + A Good Process + A Good Goal, perhaps
![Page 38: Introduction to OOAD](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/38.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/39.jpg)
Software
UML Tool :Rational Rose
Bahasa Pemrograman :Java .NET≠ ASP,PHP dan Script yang lain
![Page 40: Introduction to OOAD](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/40.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061603/568147ad550346895db4ea42/html5/thumbnails/41.jpg)
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