TEKNIK PERANCANGAN PERANGKAT LUNAK BERORIENTASI OBYEK

Teknik Perancangan Berorientasi Obyek  

Memahami teknik Object Oriented Design  Konsep dan Prinsip Dasar Berorientasi Obyek  Analisis dan modelling  Metodologi desain  Class dan object  Operasi dan Penggunaan Ulang Perangkat Lunak  Komponen program dan interface  Unified Modelling Language (UML) Dapat menjelaskan dan menerapkan metode ObjectOriented pada Perancangan Perangkat Lunak

Pentingnya Perancangan

Dua Teknik Perancangan Perangkat Lunak
‡ Perancangan Berorientasi pada Fungsi
Sistem di dekomposisi menjadi sejumlah fungsi (prosedur, logika) dengan sistem tersentralisasi dimana data dapat dibagi dan digunakan secara bersama.

‡ Perancangan Berorientasi pada Obyek
Sistem dianggap sebagai kumpulan obyek (konsep, benda) dalam dunia nyata yang melaksanakan sejumlah pelayanan secara terdesentralisasi. Setiap obyek membungkus (encapsulate) sejumlah prosedur dan data yang berinteraksi dengan obyek lainnya melalui suatu pesan (message).

Object Oriented Design (OOD)
Mengapa menggunakan OOD  Karena lebih dekat pada tingkat abstraksi di dunia nyata (mengunakan obyek-obyek untuk konsep penstrukturan perangkat lunak).  Interaksi menjadi lebih mudah dalam suatu komputer.  Pengembangan dan Perawatannya dapat dilakukan secara mudah, iteratif dan terpadu  

Encapsulation: menggabungkan data dan fungsi/program secara bersama-sama Reuse: tidak perlu ada penulisan kembali kode.

Reuseable Assets 

Reuse of all models, that is of everything   

architecture -- most important but just a fraction of what is reusable use cases, analysis, design, implementation and test user interface models, business models, etc. process with tools projects guidelines 

Reuse of technology 
 

Pertanyaan
Jelaskan perbedaan antara perangkat lunak fungsional dengan perangkat lunak berorientasi obyek ?

Perangkat Lunak Fungsional terfokus pada: 


Fungsi dalam struktur terhirarki Proses dan Prosedur Obyek-obyek dalam dunia nyata yang bekerja sama (tidak terhirarki). Model dari obyek-obyek di dunia nyata tersebut (skenario). Peranan obyek-obyek ini dalam penggambaran sistem perangkat lunak (task).

Perangkat Lunak berorientasi-obyek terfokus pada: 
 

Lebih Rinci Lagi 

Objects masuk disini

Penggambaran Fungsional
Menggambarkan dunia sebagai sejumlah fungsi-fungsi yang saling berhubungan
Angka-angka Pengurutan Angka-angka terurut dari kecil ke besar  

Umumnya dekomposisi Top-Down (dari abstraksi sampai tingkat rendah). Memanipulasi (mengfungsikan) data utama berarti memahami permasalahan.

Penggambaran Berorientasi Obyek
Menggambarkan dunia sebagai sejumlah obyek-obyek  

Sistem perangkat lunak digambarkan sebagai sekumpulan obyek-obyek yang saling berinteraksi. Obyek-obyek dapat digunakan kembali dengan suatu standar karakteristik.

ObjectObject-oriented System Development Cycle
1. 2. 3.

Object-oriented Analysis (OOA) Object-oriented Design (OOD) Object-oriented Implementation

1. Object-Oriented Analysis Definisikan kebutuhan-kebutuhan sistem melalui skenario atau penggunaan kasus-kasus. Kemudian, buat suatu model obyek dengan kemampuan memuaskan kebutuhan-kebutuhan. Output: Model kebutuhan-kebutuhan Biasanya menggunakan CRC Cards.

ObjectObject-Oriented Analysis 


Memberikan gambaran rinci dari suatu sistem. Mengidentifikasi WHAT kebutuhan fungsional (Use Cases) 


Identifikasi: objects, classes, operations Identifikasi: object relationships, object interations 

Bangun model-model di dunia nyata menggunakan tampilan OO 

Tujuan dari OOA 


Untuk memahami domain masalah Meningkatkan ketelitian, konsistensi, kelengkapan

Object-Oriented Design  Model kebutuhan-kebutuhan yang dibuat pada fase analisis diperkaya dalan fase perancangan.  Kadang-kadang ditambahkan lebih banyak lagi atribut dan pelayanan.  Ditambahkan antarmuka obyek-obyek. Object-Oriented Implementation  Dikembangkan penggunaan sistem.  Menggunakan bahasa pemrograman yang berorientasi obyek.  Jika dibutuhkan, memberikan kaitan pada suatu sistem manajemen basisdata yang terpisah.

ObjectObject-Oriented Design 


Memberikan blueprint untuk implementasi Menspesifikasi HOW 


Menspesifikasi: class definitions, class categories Menspesifikasi: subsystems, system architectures 

OOA + Rincian Implementasi Tujuan dari OO Design  

Mengoptimalkan maintainability, reusability, enhancebility dan reliability

What is Object-Oriented Programming ? ObjectGaya pemrograman yang terberhubungan dengan notasi object, class dan inheritance.
Peter Wegner pada ³Dimensions of OOPLs´

Object

Class

Inheritance

Object-Oriented Programming

SNU OOPSLA Lab.

19

Model Proses Berorientasi Obyek   

Orientasi obyek cocok untuk proses evolusioner dengan pendekatan penggunaan kembali komponenkomponen sistem. Rekayasa perangkat lunak OO menekankan penggunaan ulang kelas-kelas dalam pustaka. Bila suatu kelas tidak ada pada pustaka, maka perekayasa perangkat lunak meangaplikasikan analisis berorientasi obyek (OOA), perancangan berorientasi obyek (OOD), pemrograman berorientasi obyek (OOP) dan pengujian berorientasi obyek (OOT).

CIRICIRI-CIRI DARI PERANCANGAN BERORIENTASI OBYEK 

Karena komunikasi antara obyek dilakukan melalui pegerakan pesan maka data yang digunakan bersama oleh beberapa obyek akan kecil sehingga mengurangi ketergantungan (minimum coupling). Obyek adalah terpadu (cohesive) dan tak tembus dari luar, sehingga seluruh informasi dalam obyek terlindungi terhadap akses dari luar obyek yang tidak dikehendaki. Obyek dapat dimodifikasi tanpa mempengaruhi operasi dari obyek-obyek yang lain, sehingga dapat meningkatkan kemampuan pemeliharaan sistem.  

Pertanyaan
Mengapa walaupun sudah ada Perancangan Berorientasi Object (OOD), Perancangan Fungsional masih tetap digunakan ?

Perancangan Fungsional tetap digunakan karena:  Beberapa domain permasalahan lebih baik digambarkan dalam bentuk fungsional dari pada obyek.  Sudah banyak metoda dan standard yang dikembangkan untuk mendukung perancangan berorientasi kepada fungsi ini.  Sudah banyak pengalaman yang dilakukan dengan perancangan berorientasi fungsi.  Perancangan berorientasi fungsi menjadi komplemen (pelengkap) dari perancangan berorientasi obyek.

Pertanyaan 

Bagaimana keunggulan dari perancangan berorietasi-obyek dalam memecahkan masalah perancangan perangkat lunak ?

Kelebihan OOD 

Penggunaan kembali Obyek-obyek  

Obyek-obyek yang dirancang baik dapat digunakan dan ditambahkan ke proyek-proyek lain. Obyek dapat ditambah dengan inheritance. Penggunaan obyek-obyek yang sudah teruji. Encapsulation mencegah kesalahan penggunaan data oleh modul yang lain dan membantu melokalisasi kesalahan (bugs) yang terjadi. Obyek-obyek dapat digunakan kembali dengan karakteristik standar. 

Keluwesan dan Reliabilitas 
 

Pengembangan dan Standarisasi  

Produktivitas  

Meningkatkan kecepatan pengembangan perangkat lunak. Pengalaman: OOD meningkatkan kecepatan pengembangan sekitar faktor 10 kali.

The SW development effort

Conventional
Effort: Labor-Months

OO Technology
Effort: Labor-Months

Size or Functionality

Size or Functionality

ObjectObject-Oriented Software

Dapat memodelkan masalah dengan baik Lebih mudah dimengerti. Lebih mudah untuk diperbaiki. Lebih mudah untuk digunakan kembali.

Produktivitas ! Kualitas !
SNU OOPSLA Lab. 30

KONSEP & MEKANISME OBJECTORIENTED DESIGN

Pertanyaan
Apa yang dimaksud dengan obyek dan bagaimana anatomi (bagian dalam) dari suatu obyek ? Bagaimana obyek dapat berinteraksi dengan dunia luar ?

OBJECT
Biasanya berupa benda atau sesuatu kejadian  Benda konkrit : pesawat  Konseptual : terbang

Anatomi suatu Obyek
Obyek
Interface Pesan-pesan (msg)

Data Metoda

Obyek adalah sekumpulan data (atribut) bersama dengan gabungan fungsi (metoda) yang digunakan untuk mengoperasikan data tersebut. Obyek = Data + Metoda Dunia luar berkomunikasi ke obyek dengan mengirimkan pesan (message).

Contoh: File Object
open close read write file1

file1 open() file1 close()

: file1, tolong buka dirimu. : file1, silahkan tutup kembali dirimu.

file1 read(ch) : file1, tolong berikan saya karakter

Windows Sistem Operasi yang digerakkan pesan

Window Event open ( ) close ( ) move ( ) display ( ) handleEvent ( )

ConsoleWindow

DialogBox

Control

Sifat Obyek   

Suatu obyek dikenal dengan apa itu dan apa yang dapat dilakukannya (pelayanan). Obyek-obyek memiliki ciri-ciri atau sifat-sifat tertentu yang disebut atribut (abstraksi data). Obyek menunjukkan perilaku (behaviour) atau dapat melakukan suatu pelayanan (methods).

OBJECT ATTRIBUTES
ATRIBUT: Adalah data yang menunjukan  Ciri-ciri atau sifat-sifat dari obyek  Penggambaran obyek
Warna Tipe mesin

Panjang

METHODS / OPERATIONS ± BEHAVIOUR  

Behaviour mengacu kepada apa-apa yang dapat dilakukan oleh suatu obyek dan berhubungan dengan fungsi diterapkan pada suatu atribut. Behaviour obyek-obyek biasanya methode atau operasi pelayanan.

Berenang Ikan

Penyelam

Mobil bisa bergerak, meyalakan lampu, membunyikan klakson

OBJECT DIAGRAM

Circle CenterPosition RadiusLength FillColor

Pertanyaan
Apa yang dimaksud dengan kelas dan sebutkan komponen-komponen dari suatu kelas ?

KELAS (CLASS)    

Seperti di dunia nyata, obyek-obyek dapat dikelompokkan atau diklasifikasikan kedalam suatu kelas. Kelas adalah koleksi dari obyek-obyek yang memiliki anggota-anggota yang sama (ciri-ciri, struktur dan perilakunya). Obyek-obyek dibuat berdasarkan sebuah kelas (type declaration), atau obyek adalah wujud (instance) dari sebuah kelas. Suatu Kelas adalah kategori umum dan suatu obyek adalah kejadian spesifik dari suatu kelas.

Kelas Record Mahasiswa
Record Mahasiswa

Desi

Abdurahman

Widodo   

Obyek-obyek dikelompokkan ke dalam suatu jenis yang disebut kelas Record Mahasiswa . Obyek Desi, Abdurahman dan Widodo dibuat (instance) berdasarkan tipe kelas Record Mahasiswa Kelas adalah template yang menghasilkan obyekobyek dengan perilaku yang sejenis.

Hubungan antara Obyek dan Kelas 

Kelas Person menggabarkan atribut dari suatu obyek orang. Setiap orang mempunyai atribut: nama, tanggal lahir, dan alamat dalam himpunan data instance-nya dengan empat metode ('getName', 'getAge', 'setAddress', 'getAddress ). Metode ini memungkinkan akses dari luar ke atributatribut tersebut. Dua obyek berikut (Mike, Neil) diciptakan dari Kelas Person.   

message 2
M4 Object 1 M1 M2 M3 M2 Object 2 M1 M4 M3

message 1 message 3

M3 M2 Object 3 M1

M4

Komponen-komponen suatu Class Komponen  



Koleksi dari anggota-anggota data atau atributatribut. Kolekasi dari deklarasi fungsi-fungsi anggota, pelayanan-pelayanan, metoda-metoda. Tingkat akses: private, protected, atau public. Nama tag sekutu : tipe data yang didefinisikan pemakai.

General Structure of a Class

className public private {data, data, «.}

{method,method, «.}

Tingkat Akses Anggota Kelas

Anggota Kelas
class A { public:
Variabel-variabel anggota biasanya private Variabel-variabel anggota dideklarasikan dengan cara stardar: m_notasi.

A(); private: char m_char; int m_int; float m_float; UINT m_uint; };

Pertanyaan
Jelaskan bedanya antara instance dan inheritance (penurunan/pewarisan) ?

Modeling Class

Instance by

Is Inherited by

INSTANCE
Object didefinisikan oleh Class Setiap Object adalah instance dari suatu Class

class

instances

instantiations

object

object

OBJECT INSTANCE

Rumah jadi

Buat suatu intance dari obyek anda CLASS

Object instance

OBJECT

Instances
Class Methods Class variables Instance variables paragraph justify font = arial text = 3 Instances
Four score and seven years ago our forefathers brought forth on this continent, a new nation «.. When in the course of human events it become necessary for one people «.. We the people of the United States, in order to form a more perfect union, ensure «..

INHERITANCE (PEWARISAN)    

Hirarki klasifikasi memungkinkan kelas-kelas obyek mewarisi atribut-atribut dari kelas-kelas yang lebih umum. Pewarisan adalah suatu mekanisme menciptakan kelas-kelas baru (sub-kelas) dari kelas-kelas yang sudah ada. Kelas turunannya adalah sebuah subkelas atau subtype dari kelas sebelumnya. Sub-kelas tersebut dapat diperluas perilakunya dengan menambah metode-metode baru atau struktur-sturktur data baru. Misalnya obyek Ford Escorts dapat diwariskan berdasarkan kelas mobil.

Pewarisan Kelas / Obyek
Umum

Khusus

Ford Mustang Base Model:
4 cylinder engine vanilla chassis standard interior

specialization

Mustang LX:
better interior v6 or v8 engine

Base Model +
luxury interior

Mustang GT:
sport suspension sport v8 engine special body work

Contoh Inheritance

Masalah

Apa itu Zebra ?

³Zebra adalah seperti kuda tetapi punya strip-strip´

Kuda
diturunkan + strip-strip

Zebra

Examples of generalization, inheritance, and constraints Employee superclass with three subclasses

Rectangle
add ³resize´ method

Window

Class Window inherit Rectangle add operation resize(int h1, w1); { h=h1; w=w1; display(); }

Rectangle

Window

ScrolledWindow

MenuWindow

ENCAPSULATION (Pengkapsulan)    

Pengkapsulan berarti mengemas beberapa item bersama-sama menjadi satu unit yang tertutup dalam rangka menyembunyikan struktur internal suatu obyek dari lingkungan/dunia luar. Pengapsulan seringkali dianggap sebagai penyembunyian informasi . Setiap kelas hanya menampakkan interface yang diperlukan untuk berkomunikasi dengan dunia luar (methode) dan menyembunyikan (encapsulating) implementasi aktual didalam kelas. Kita hanya membutuhkan pemahamam tentang interface (methode), tidak perlu paham tentang internalnya (implementation).  

Pengapsulan merupakan kemampuan sebuah obyek kelas untuk membatasi akses client ke representasi internal obyek (data dan fungsi). Ada tiga metode enkaspulasi: - Private - Protected - Public

Component Interfaces

POLYMORPHISM  

Polymorphism memungkinkan memiliki koleksi elemenelemen dengan bentuk berbeda dari item-item yang berhubungan. Disini obyek-obyek atau kelas-kelas yang berbeda dapat melakukan implementasi suatu metode yang sama. Contoh: suatu kelas segi-empat dan kelas segi-tiga dapat melakukan suatu metode hitungLuas tetapi dengan menggunakan rumus perhitungan luas yang berbeda.

Soal
1.

Ada adalah bahasa pemrograman yang mendukung obyek-obyek dan encapsulation, tetapi tidak mendukung inheritance, dynamic behavior, atau aturan-aturan. Ada dapat dikelompokkan pada bahasa pemrograman jenis apa ? (a) Object oriented language; (b) Class-based language; (c) Object-based language; (d) Object procedure language.

2. Ketika seseorang menambahkan suatu kelas yang diambil dari suatu kelas dasar dengan meningkatkan kemampuan kelas dasar tersebut, maka disebut: (a) Data encapsulation (b) Inheritance (c) Polymorphism (d) Instant 3. Suatu metoda yang hanya dapat digunakan oleh metoda lain dalam satu kelas, mempunyai jenis akses: (a) Public (b) Protected

(c) Private

(d) Indeterminate.

4. Kelas A adalah kelas dasar. Kelas B diturunkan dari kelas A. Kelas C diturunkan dari kelas B. Maka jenis dari turunan disini adalah: (a) Multiple inheritance. (b) Composition (c) Abstract inheritance (d) Serial Inheritance

Class hierarchy
Emplo y ee Name Address Salar y Manager ...

Mana g er Dept Staf f Gr ade ...

Pr ogrammer Project Prog languages

Pr oject mana g er Project Date Appointed .. .

Multiple inheritance
Emplo y ee Name Address Salar y Manager

Mana g er ept Staf f r ade ...

r ogrammer roject rog languages

Pr oject mana g er Project ate Appointed .. .

Software pr oject mana g er Project name: renames Project manager .Project

PERKEMBANGAN BAHASA PEMROGRAMAN Generasi Awal (Pemrograman Prosedural)  Bahasa prosedural seperti Assembler, FORTRAN dan COBOL.  Pemrograman merupakan suatu karya seni yang kreatif.  Kode rumit seperti spaghetti karena penuh dengan perintah-perintah GOTO yang sulit untuk dipertahankan.

Prosedural
DIM N(100), M(500) ------------------------------------------10 ---------------------IF -----c THEN GOTO 5000 c ELSE GOTO 10 ------------------------------------------100 ---------------------------------------------------------------5000 ---------------------------------------------------------------6500 ---------------------GOTO 100

Generasi Kedua (Pemrograman Terstruktur)  Perangkat lunak meniru struktur dari suatu model bisnis.  GOTO diganti dengan suatu putaran (loop) seperti while, do-while, dan if-then-else.  Deretan yang sangat cocok untuk aplikasiaplikasi ilmiah (matematika adalah suatu prosedur alamiah).

Terstruktur
while -------- do

------------------------------------------------------------if --------then --------------------------else --------------------------endIf ----------------------------------------endWhile

Generasi Dewasa ini (Pemrograman Berorientasi Obyek)  Data dan kode dikemas kedalam suatu obyek.  Penggunaan kembali dan pemekaran melalui kerjasama antara obyek-obyek.  Memungkinkan kombinasi kode struktural dan prosedural dalam obyek.  Memungkinkan pemakai mendefiniskan tipe data sebagai sejumlah obyek yang memberikan model sistem yang lebih alamiah dari pada tipe-tipe standard.

Bahasa Pemrograman Berorientasi Obyek  

Penggunaan bahasa pemrograman berorientasi obyek memungkinkan implementasi langsung perancangan berorientasi obyek, tetapi membutuhkan ruang dan sumber-sumber yang lebih besar. Efektivitas perancangan berorientasi obyek tidak tergantung pada penggunaan bahasa pemrograman tertentu.

Soal
Pemrograman berorientasi obyek mengarah kepada hasil berupa: (a) Reuse of code (Kode yang digunakan kembali ) (b) Sphagetti code (c) Building code (d) Structured code

DEFINISI
Perancangan Berorientasi Obyek
Mendefinisikan sebuah hubungan antara antarmuka (interface), kelas-kelas (classes), dan obyek-obyek (objects) yang masing-masing saling bekerjasama dengan aturan tertentu yang unik untuk menyelesaikan suatu masalah.

Menurut Meyer: Perancangan berorientasi obyek adalah metoda yang membawa kita ke arsitektur perangkat lunak berbasis obyek-obyek yang dimanipulasi (difungsikan) oleh setiap sistem atau subsistem.

Perancangan Sistem Berorientasi Obyek   

Merancang sistem berorientasi obyek adalah bagaimana memecah sistem kedalam obyek-obyek berdasarkan pada informasi yang diperoleh terutama pada tahap analisis. Membuat suatu generalisasi dari obyek-obyek untuk mendefinisikan kelas-kelas bagi setiap obyek dalam sistem. Menghasilkan sebuah diagram kelas (struktur dari sistem) menggunakan berbagai notasi standar seperti: OMT (Object Modelling Technique), UML (Unified Modelling Language).

Pencipta Unified Modeling Language

Grady Booch James Rumbaugh Ivar Jacobson

Sejarah UML
Revisi n Task F rce (RTF) report, Apr 1999 OMG Acceptance, OMG vi i OMG v 1997

UML 1.3 UML 1.1
OMG Feedback

Industrialization

, Sep µ97 ,J ´97

b i i

Standardization

UML partners

UML 1.0 UML 0.9

Other sub issions

W b-J

´96

Microsoft, Unification Oracle, OOPSLA ´95 Uni ied Method 0.8 IBM, HP, & other industry leaders OOSE & Booch ethod OMT Fragmentation Other ethods

Apa itu UML? 


UML singkatan dari Unified Modeling Language UML mengkombinasikan / koleksi dari:  

 

Data Modeling concepts (Entity Relationship Diagrams) Business Modeling (work flow) Object Modeling Component Modeling 

UML adalah bahasa standarpemodelan untuk menggambarkan, menspesifikasikan, membangun, dan mendokumenkan sistem perangkat lunak.

UML adalah: 

UML adalah bukan:   

Bahasa pemodelan standard. Mendefinisikan suatu metamodel semantik Tidak tergantung pada proses.  

Bahasa pemrograman Visual. Suatu perangkat antarmuka, penyimpan, atau model run-time. Suatu proses standard.

Konsep Dasar O-O dalam UML O   

Inheritance Associations Aggregation Composition
Inheritance Associations

AGGREGATION 

Aggregation adalah bentuk khusus dari Association dimana suatu obyek dari Kelas X berisi atau mempunyai obyek dari Kelas Y  

Notasi intan terbuka menunjukkan bahwa instance Kelas X mempunyai lebih banyak intance Kelas Y atau Kelas Nol. * menandakan dapat diganti oleh suatu nilai integer.

Contoh
has School 1 .. * member * Student * 1 .. * attends * Course * teaches 1 .. * 1 1 .. * Department 1 .. * 1 .. * assignedTo 1 .. * 0 .. 1 chairperson 0 .. 1

Instructor

COMPOSITION 

Composition adalah bentuk khusus dari Aggregation dimana kandungan obyek tidak dapat di-share oleh containers yang lain dan obyek harus dihapus jika container-nya dihilangkan. 

Jika intance Kelas X dihapus maka bagian-bagiannya juga harus dihapus.

Tujuan Perancangan dengan UML    

Memberikan pemakai bahasa pemodelan visual yang siap pakai sehingga mereka dapat mengembangkan dan mempertukarkan modelmodel yang berguna. Tidak tergantung kepada bahasa pemrograman tertentu dan proses-proses pengembangan. Memberikan basis formal untuk memahami bahasa pemodelan. Mendukung pengembangan konsep-konsep tingkat tinggi, seperti: kolaborasi, framework, pola-pola dan komponen-komponen.

Model dan Diagram
A model is a complete description of a system from a particular perspective
Use Case Use Case Diagrams Sequence Diagrams Diagrams Use Case Use Case Diagrams Use Case Diagrams Diagrams State State Diagrams Class Diagrams Diagrams

State State Diagrams Object Diagrams Diagrams

Scenario Scenario Diagrams Collaboration Diagrams Diagrams

Models

State State Diagrams Component Diagrams Diagrams

Scenario Scenario Diagrams Statechart Diagrams Diagrams

Activity Diagrams

Component Component Diagrams Deployment Diagrams

Diagrams

Scope UML  

   

Object-Oriented Analysis
Use Case diagram Object interaction diagram Class diagram State diagram Activity diagram  

 

Object-Oriented Design
Process diagram Architecture diagram Deployment diagram

UML Diagrams

DIAGRAM UML

Phases of a Development Cycle
0. Requirement analysis
Use Case analysis

Requirement specification

1. Analysis UML diagram

4. Test

2. Design 3. Code UML diagram  

 

Pengembangan perangkat lunak adalah suatu proses yang dilakukan secara bertahap. Proses ini harus mengikuti suatu metodologi. Setiap tahapan didukung dengan grafik dan diagram. UML adalah bahasa khusus untuk membuat diagramdiagram.

DIAGRAM DAN PROSES

Metode Booch
Metode Booch adalah metoda umum digunakan dalam analisis dan perancangan berorientasi obyek yang dikembangkan dalam empat model dasar yaitu: 1. 2. 3. 4. Logical Model Physical Model Static Model Dynamic Model

Komponen-komponen dokumennya terdiri dari : class, kategori-kategori class, objects, operations, modules, processes, processors, devices, dan hubunganhubungan antara mereka.

DiagramDiagram-diagram dalam Metode Booch 
    

Diagram Diagram Diagram Diagram Diagram Diagram

Kelas (Class Diagram) Obyek (Object Diagram) Modul (Module Diagram) Keadaan (State Diagram) Interaksi (Interaction Diagram) Proses (Process Diagram)

Beberapa diagram dapat mengandung informasi dari beberapa model berbeda, dan beberapa model dapat memuat informasi yang berakhir pada sejumlah diagram-diagram yang berbeda.

Contoh Soal
Masalah yang akan kita pecahkan adalah masalah perpustakaan universitas. Aplikasi yang ingin dikembangkan harus dapat mendukung pencarian bahan-bahan pustaka yang meliputi: buku, video dan CD ROM. Users akan memasukan Identitas (ID) anggota perpustakaan untuk menggunakan sistem pencarian melalui katalog pustaka. Persyaratan Setiap peminjaman dibatasi maksimum 5 item dimana waktu peminjamannya buku 14 hari, video 2 hari dan CD ROM 7 hari. Jika terlambat dikenakan denda untuk buku $0,5/hari, video $1,5/hari dan CD ROM $2,5/hari. Denda maksimum adalah $25 (tidak boleh pinjam lagi yang baru kalau belum dilunasi).

Spesifikasi Masalah 

Perpustakaan universitas minta dibuatkan sistem yang mendukung kegiatan perpustakaan. Pustakawan memperbolehkan mahasiswa meminjam beberapa bahan pustaka, mengembalikan bahan pustaka yang dipinjam, dan membayar denda. Jenis Buku: Video: CD Roms Denda per hari $ 0.50 $ 1.5 $ 2.50 Lama peminjaman 14 hari 2 hari 7 hari  

Tanggal peminjaman dimulai ketika bahan pustaka yang dipinjam dikeluarkan. Mahasiswa yang sudah meminjam 5 jenis bahan pustaka atau denda lebih dari 25.00 tidak diperkenankan mendapat pinjaman bahan pustaka yang baru.

Identifikasi Kelas-kelas Kelas

Abstraksi kunci dari pelaku-pelaku (obyek) yang memberikan model solusi adalah:  Librarian (Pustakawan)  User (Pemakai/Mahasiswa)  Book (Buku)  Video (Video)  CD Rom  5 bahan pustaka

Diagram Kelas    

Diagram kelas memperlihatkan keberadaan dari kelas-kelas dan hubungan diantara mereka dalam pandangan logis dari sistem. Pertama mengidentifikasi kelompok awal dari kelas-kelas: pemakai (user), pustakawan (librarian), koleksi (collection), peminjam (borrower) , bahan pustaka (lendable), buku (book), video, CD ROM, dan tanggal (date). Kita dapat menarik garis-garis antara kelas untuk menggambarkan suatu hubungan. Dua kelas yang terhubung dapat memanggil suatu metoda atau menukar pesan-pesan.

Diagram Kelas Mula-mula Mula-

Inheritance Hierarchy
lendable is the abstract class never instantiated

lendable

book

cdRom

video

concrete classes inheritance

Kenapa tidak satu kelas saja? 

Beberapa perilaku (persyaratan) berbeda: 


Perhitungan lama peminjaman Perhitungan denda keterlambatan Buku memiliki ISBN Video dapat diberi identifikasi studio 

Data berbeda 
 

Dapat dihimpun dalam kelas abstrak bahan pustaka (lendable) 

 

Panah ditarik dari subkelas ke super kelas. Panah dari tiga kelas-kelas bahan pustaka ke kelas lendable menunjukkan inheritance dalam notasi blooch, artinya buku, video dan CD ROM adalah obyek-obyek untuk dipinjamkan. Pada gambar berikutnya titik hitam pada akhir garis menunjukkan adanya hubungan dimana kelas dengan titik hitam menunjukkan sisi pemilik (owner) atau pengguna fasilitas.

Diagram Kelas Pass Kedua

Diagram Obyek   

Diagram obyek tujuannya untuk memperlihatkan keberadaan obyek-obyek, hubungan antara obyek dalam pandangan logis dari sistem, dan bagaimana mereka melaksanakan suatu skenario tertentu atau kasus. Dalam suatu skenario, kita mengidentifikasi setiap tugas (task) yang harus ditangani sistem dan memberikan tugas tersebut ke kelas yang menangani ini. Metode Blooch kadang kala mengacu pada suatu teknik perancangan disebut metoda responsibilitydriven design.

Diagram skenario obyek untuk memeriksa keluarnya suatu buku

Gambar Hubungan-hubungan Hubungan-

users

librarian
oordinates activities

borrowerList
Stores valid borrowers

borrower lendableList
Stores all books, D OMs, videos

lendable
lendables

date

book

CDROM

video

CRH Card untuk abstract class
base class: lendable derived classes: book, video, cdRom Responsibilities Knows due date Knows borrower computeDueDate computeLateFee checkSelfIn checkSelfOut(borrower) isOverdue, isAvailable Date Date Date Helpers Date

Diagram Modul 

Diagram modul memperlihatkan alokasi dari kelaskelas dan obyek-obyek ke modul-modul dalam tampilan fisik suatu sistem.

Menrancang C++ Class Definitions
c ass endab e { // first draft pub ic: // ... boo isOverdue(); boo isAvai ab e(); void checkSe fIn(); void checkSe fOut(string borrowersID); private: // TBA };

Contoh
class book : public lendable { public: 

//--constructor 


book(string initID, string initAuthor, string initTitle); Date computeDueDate() const; double computeLateFee() const; string author(); string title();

//--virtual functions that must be implemented 


//--additional accessors 
 

private:  string my_author; // Additional data members  string my_title; }; 

UML Diagrams 

Modeling Diagrams  Use case  Interaction
Sequence  Collaboration 

Object Use Case Actor Relationship State Deployment Component

Class  State Transition  Component  Deployment 

Component Class

Konsep UML 

UML menggunakan diagram-diagram untuk:     

Use case diagrams untuk memperlihatkan batasbatas dari suatu sistem dan fungsi-fungsi utama. Interaction diagrams untuk merealisasikan kasus yang digunakan. Class diagrams untuk menggambarkan struktur statis dari suatu sistem. State transition diagrams untuk memodelkan perilaku dari obyek-obyek. Component & deployment diagrams untuk mengungkapkan arsitektur dari implementasi fisik.

Use Case Diagram Sederhana

Memesan buku

Meminjam buku

MengembaliMengembalikan buku

CRC Cards 

CRC Cards adalah cara sederhana untuk memulai menganalisis domain.

UML Modeling Serial View

UML Modeling

Contoh UML
Universitas ingin komputerisasi sistem registrasi  Pencatat membuat kurikulum untuk satu semester.  Mahasiswa memilih 4 kuliah utama/wajib dan 2 kuliah pilihan.  Setelah melakukan registrasi, sistem pembayaran dicatat sehingga mahasiswa dapat melakukan pembayaran untuk semester tsb.  Mahasiswa dapat menggunakan sistem untuk menambah atau membatalkan kuliah yang telah dipilih dalam jangka waktu tertentu setelah registrasi.  

Dosen menggunakan sistem ini untuk menawarkan jadwal kuliah mereka. Pemakai dari sistem registrasi ini diberikan password untuk validasi masuk ke logon sistem.

Tahap 1 OOA: Use Case Modeling 
   

Diperkenalkan oleh Jacobson(1994) Use Case modeling berdasarkan user requirement Hubungan antara actors dan Use Cases Use Case adalah suatu interaksi khusus antara user dan sistem komputer. Use Case is a typical interaction between a user and a computer system

Actors 

Aktor adalah seseorang atau sesuatu yang harus berinteraksi dengan sistem yang akan dikembangkan.

Registrar Professor Student Billing System

Use Cases 

Use case adalah suatu pola perilaku dari sistem 

Setiap use case adalah suatu urutan transaksi yang berkaitan yang dilakukan oleh seorang aktor dan sistem dalam suatu dialog. 

Aktor-aktor diperiksa untuk menentukan kebutuhan mereka 
  

Registrar menyusun dan mengawasi kurrikulum Professor meminta daftar roster Student memilih jadwal Billing System menerima informasi pembayaran dari registrasi.

Chain of responsibility

Maintain Curriculum

Request Course Roster

Diagram Use Case 

Diagram use case dibuat
aktor-aktor dan kasus-kasus yang digunakan.

untuk menggambar-kan hubungan antara

Request Course Roster Student Maintain Schedule Professor

Billing System Registrar

Maintain Curriculum

Use Case Diagram
Use Case Actor - Person, Organization, or System

Interaction

Information Flow System

Contoh UML lain 

Buat struktur spesifikasi sistem bisnis dengan UML.

Pemetaan Konsep Workflow dan UML

Penggambaran dari proses bisnis, obyek-obyek bisnis dan peranan Tim dalam UML.

Use Case Diagram

Use Case Diagram menggambarkan hubungan statik antara proses bisnis.

Sequence Diagram

Sequence Diagram menggambarkan instance proses bisnis.

Sequence Diagram

Sequence Diagram menggambarkan interaksi antara proses-proses bisnis dan aktor.

Collaboration Diagram

Collaboration Diagram menggambarkan interaksi dan relasi antara proses-proses bisnis dan aktor.

Pola Perancangan

Tingkat Abstraksi: 1. Tingkat Organisasi 2. Tingkat Sistem 3. Tingkat Arsitektur 4. Tingkat Kelas 5. Tingkat Prosedur

Use Case Diagram
Use Case for a financial trading system
Set Limits
Trading Manager

Update Accounts

Accounting System

Analyze Risk

<<uses>> <<uses>> Valuation

Actor
Trader

Price eal

Capture eal

Use Case

<<extends>> Limits Exceeded

Salesperson

Tahap 2 OOA: Class Finding & Refinement 

Untuk setiap Use Case, tentukan Kelas-kelas  Class Finding 

Class Diagram Remove redundant Name same, semantics different 

Class Refinement 


Class Diagrams  

Suatu class diagram memperlihatkan keberadaan kelas-kelas dan hubungannya dari pandangan logis suatu sistem. UML memodelkan elemen-elemen dalam class diagrams 
 



Struktur kelas-kelas dan perilakunya. Hubungan-hubungan: association, aggregation, dependency, dan inheritance Indilkator pelipatan dan navigasi Nama-nama peran.

Classes
Class

RegistrationForm RegistrationManager

ScheduleAlgorithm

Attribute Methods

Course Student

Professor

CourseOffering

Contoh Lain Class Diagram
Class Relationship

Attribute

Methods

Operations  

Perilaku suatu kelas dinyatakan dengan operasioperasinya. Operasi-operasi dapat ditemukan dengan memeriksa diaram-diagram interaksi.
registration manager RegistrationManager 3: add course (joe, math 01)

registration form

addCourse(Student,Course)

Attributes  

Struktur suatu kelas dinyatakan oleh atributatributnya. Atribut-atribut dapat ditemukan dengan memeriksa definisi kelas, kebutuhan masalah dan dengan menerapkan domain pengetahuan.
CourseOffering

Setiap kuliah menawarkan nomor, lokasi dan waktu

number location time

Tahap 3 OOA: Object Finding  

Untuk setiap class, tentukan objects, dan buat object interaction diagram  Sequence Diagram  Collaboration Diagram Tentukan messages pada objects

Object Diagram 
 

Memperlihatkan instances dan hubungan (links) Dibangun pada tahap analisis dan perancangan Tujuan 


Menggambarkan struktur data/object Menspesifikasi titik bidik 

Dikembangkan oleh penganalis, perancang dan penerap.

Object Diagram 

Memperlihatkan instances dan links

Sequence Diagram   

Menunjukkan prilaku dinamik (berorientasi pada waktu) Tujuan  Model alur kendali  Mengambarkan skenario tertetu. Suatu sequence diagran memperlihatkan interaksi antara obyek-obyek yang diatur dalam suatu urutan waktu.

Sequence Diagram
Objects

: Student

registration form

registration manager

math 101

math 101
section 1

1: fill in info 2: submit 3: add course (joe, math 01) 4: are you open? 5: are you open? 6: add (joe) 7: add (joe)

Method Invocation Messages

Contoh Lain Sequence Diagram
Objects

Method Invocation

Messages

Sequence Diagram 

Menampilkan perilaku dinamis (berorientasi pada waktu)

Collaboration Diagram  

Menampilkan perilaku dinamis (berorientasi pada pesan). Tujuan 


Model alur kendali Mengambarkan koordinasi struktur dan kendali obyek-obyek. 

Collaboration diagram memperlihatkan interkasi obyek yang diorganisasikan sekitar obyekobyek dan kaitannya antara satu dengan yang lain.

Contoh Collaboration Diagram
Objects Message

Relationship

1: set course info 2: process

course form : CourseForm

: Registrar

3: add course

aCourse : Course 4: new course

theManager : CurriculumManager

Contoh Lain Collaboration Diagram
Objects

Relationship Message Return Value

Contoh Collaboration Diagram 

Menampilkan prilaku dinamis (berorientasi pada pesan)

Fasa 4 OOA: Class Relationship  

 

Menentukan class relationships dari Object Diagrams Association Aggregation Link

Relationships   

Relationships memberikan jalur tapak untuk komunikasi antara obyek-obyek. Sequence diagram dan/atau collaboration diagram diperiksa untuk menentukan keterhubungan apa yang dibutuhkan antara obyekobyek untuk memenuhi perilakunya. Tiga jenis relationships yaitu: 
 

Association Aggregation Link / Dependency   

Association adalah koneksi dua arah antara kelas yang digambarkan berupa garis yang menghubungkan kelas-kelas tersebut. Aggregation adalah bentuk relationship yang sangat kuat yang digambarkan berupa garis yang menghubungkan kelas-kelas dengan intan pada kelas yang menggambarkan keseluruhan. Dependency adalah bentuk paling lemah dari relationship memperlihatkan suatu relationship antara client dan supplier dimana client tidak memiliki pengetahuan semantik dari supplier. Digambarkan berupa garis putus-putus dari client ke supplier.

Menentukan Relationships 

Relationships diperoleh dengan memeriksa diagram interaksi. 

Jika dua obyek harus berbicara maka harus ada suatu jalur tapak untuk komunikasi.
RegistrationManager

Registration Manager

Math 101: Course

3: add student(joe)

Course

Relationships
Association Dependencies

RegistrationForm RegistrationManager
addStudent (Course, StudentInfo)

ScheduleAlgorithm

Course
name numberCredits open() addStudent(StudentInfo)
Aggregation

Student
name major

Professor
name tenureStatus

CourseOffering
location open() addStudent(StudentInfo)

Multiplicity & Navigation 

Multiplicity mendefinisikan berapa obyek-obyek terlibat dalam suatu relationships  

Multiplicity adalah jumlah instances dari satu kelas berhubungan dengan SATU instance kelas yang lain. Untuk setiap association dan aggregation, ada dua putusan multiplicity : satu untuk setiap akhir dari relationship  

Walaupun associations dan aggregations secara default adalah dua arah, sering diinginkan navigasi dibatasi hanya pada satu arah. Jika navigasi dibatasi maka ditambahkan satu kepala panah untuk menunjukkan arah dari navigasi.

Multiplicity & Navigation
ScheduleAlgorithm RegistrationForm
0..*

RegistrationManager 1
addStudent(Course, StudentInfo)

1 0..*

Course
name numberCredits open() addStudent(StudentInfo)

Student
major

3..10

1 4 1..*

Professor
tenureStatus 1

CourseOffering
0..4
location open() addStudent(StudentInfo)

Inheritance  

Inheritance adalah suatu relationships antara superclass dan subclasses-nya. Ada dua cara menentukan inheritance: 


Generalization Specialization 

Attribut-atribut bersama, operasi, dan/atau relationships diperlihatkan pada tingkat aplikasi tertinggi dalam hirarki

Inheritance
RegistrationForm RegistrationManager
addStudent(Course, StudentInfo)

ScheduleAlgorithm

Course RegistrationUser
name name numberCredits

Student
major

open() addStudent(StudentInfo)

Professor
tenureStatus

CourseOffering
location open() addStudent(StudentInfo)

State Transition Diagram 

State transition diagram memperlihatkan 
 

Sejarah hidup suatu kelas Kejadian-kejadian yang menyebabkan perubahan dari suatu keadaan ke keadaan yang lain. Aksi-aksi yang menghasilkan suatu perubahan keadaan.   

State transition diagrams dibuat untuk obyekobyek dengan perilaku dinamis yang menonjol. Menunjukkan perilaku dinamis (berorientasi pada kejadian.) Tujuan 


Model siklus hidup obyek Model reactive objects (user interfaces, devices, dll.)

Statechart Diagram
Add student[ count < 10 ] Initialization
do: Initialize course

Add Student / Set count = 0

Open
entry: Register student exit: Increment count

Cancel Cancel Canceled
do: Notify registered students

[ count = 10 ]

Cancel

Closed
do: Finalize course

Statechart Diagram (lanjutan)

Contoh Lain State Transition Diagram
Transition State Initial State

Final State

Component Diagrams  

Component diagrams memperlihatkan organisasi dan ketergantungan antara komponenkomponen perangkat lunak. Komponen dapat berupa: 
 

Source code Run time Executable component

Component Diagram
Billing.exe Billing System Register.exe Dependencies

People.dll Components Course.dll Course User

Student Course Course Offering

Professor

Component Diagram
Components Dependencies

Deploying Diagram  

Deployment diagram menunjukkan konfigurasi dari elemen-elemen pengolahan run-time dan proses-proses perangkat lunak yang ada padanya. Deployment diagram memperlihatkan distribusi dari komponen-komponen yang melintasi perusahaan.

Deployment Diagram
Registration Database

Library Dorm

Main Building

Deployment Diagram 

Memperlihatkan topologi perangkat keras sistem

Deployment Diagram
Components

Activity Diagram  

Memperlihatkan perilaku dinamis (berorientasi pada aktivitas) Tujuan 


Model business workflows Model operations

Activity Diagram

Object Oriented Requirements

Component Diagram

Perkembangan Teknologi Database

Traditional vs. Object-Oriented ObjectDatabases
Traditional DBMS
Applications

Object Base
User Interface Initiate Request Result

DBMS
Query Data

Object Data Method

Object Data Method Messages Object Data Method

Passive, structured Data e.g.; Relations

Sistem Manajemen Basisdata Berorientasi-Obyek BerorientasiSistem basisdata harus: 1. Mendukung obyek-obyek yang kompleks, 2. Mendukung identitas obyek. 3. Memungkinkan obyek-obyek untuk dikapsulkan. 4. Mendukung Types atau classes. 5. Mendukung inheritance. 6. Menghindari peningkatan prematur. 7. Dilakukan perhitungan lengkap. 8. Dapat dikembangkan 9. Dapat pulih dari kerusakan hardware/software. 10. Mendukung query data dengan cara sederhana

Pendekatan Tradisional untuk Mengubah suatu file pegawai

Pendekatan Berorientasi-Obyek untuk BerorientasiMengubah suatu file pegawai

Class Eployee in C++
class Employee { char name[25], int age; public: virtual void Add (char *name, int age); virtual void Delete (char *name); void Change (char *name, int age); };

Sign up to vote on this title
UsefulNot useful

Master Your Semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master Your Semester with a Special Offer from Scribd & The New York Times

Cancel anytime.