Model Domain

13
DOMAIN MODEL Domain model adalah penggambaran obyek nyata terhadap situasi riil dari suatu lingkup area/domain melalui perwujudan ide abstraksi kelas (conceptual class). Domain model umumnya digambarkan memakai notasi UML class diagram berikut notasi attribute, association, role danmultiplicity. Oleh karena itu dalam penyajiannya, domain model mampu menjelaskan informasi properti, aturan dan keterhubungan relasi antar kelas sehingga secara tidak langsung domain model juga memiliki peranan sebagai data model yang diperlukan sistem. Tetapi apakah itu mengartikan domain model sama dengan data model? Dalam bukunya Applying UML and Pattern , Craig Larman menegaskan “a domain model is not a data model (which by definition shows persistent data to be stored somewhere)”. Penulis setuju dengan penegasan Larman ini serta menambahkan bahwa Anda dapat saja mengekstraksi data model dari domain model yang telah ada (dalam subbab berikutnya, Larman menuliskan tentang motivasi penulisan domain model sebagai usaha penekanan gap perancangan model OO antara ketika tahapan analisis dan tahapan design). Melalui penyusunan domain model diharapkan dapat mempermudah dan mempercepat tahap perancangan solusi masalah. Domain model membantu pengembang dalam menangkap abstraksi, perbendaharaan kata dan informasi yang terkandung dalam setiap jargon kata. Hal ini menjadikan domain model dapat mencakup seluruh kelas obyek yang dimiliki oleh lingkup area/domain tertentu. Beririsan dengan data model yang hanya terbatas oleh obyek-obyek kelas yang perlu diingat informasinya. Domain model memperbolehkan masuk sebuah obyek kelas tanpa atribut (cukup memiliki “behavior role”), sedangkan data model mengharuskan obyek kelas yang beratribut (perlu “information role”).

description

IT

Transcript of Model Domain

Page 1: Model Domain

DOMAIN MODEL

Domain model adalah penggambaran obyek nyata terhadap situasi riil dari suatu lingkup area/domain melalui perwujudan ide abstraksi kelas (conceptual class). Domain model umumnya digambarkan memakai notasi UML class diagram berikut notasi attribute, association, role danmultiplicity. Oleh karena itu dalam penyajiannya, domain model mampu menjelaskan informasi properti, aturan dan keterhubungan relasi antar kelas sehingga secara tidak langsung domain model juga memiliki peranan sebagai data model yang diperlukan sistem. Tetapi apakah itu mengartikan domain model sama dengan data model?Dalam bukunya Applying UML and Pattern, Craig Larman menegaskan “a domain model is not a data model (which by definition shows persistent data to be stored somewhere)”. Penulis setuju dengan penegasan Larman ini serta menambahkan bahwa Anda dapat saja mengekstraksi data model dari domain model yang telah ada (dalam subbab berikutnya, Larman menuliskan tentang motivasi penulisan domain model sebagai usaha penekanan gap perancangan model OO antara ketika tahapan analisis dan tahapan design). Melalui penyusunan domain model diharapkan dapat mempermudah dan mempercepat tahap perancangan solusi masalah.

Domain model membantu pengembang dalam menangkap abstraksi, perbendaharaan kata dan informasi yang terkandung dalam setiap jargon kata. Hal ini menjadikan domain model dapat mencakup seluruh kelas obyek yang dimiliki oleh lingkup area/domain tertentu. Beririsan dengan data model yang hanya terbatas oleh obyek-obyek kelas yang perlu diingat informasinya. Domain model memperbolehkan masuk sebuah obyek kelas tanpa atribut (cukup memiliki “behavior role”), sedangkan data model mengharuskan obyek kelas yang beratribut (perlu “information role”).

Lebih lanjut, penegasan itu juga memberikan siynal bahwa domain model berbeda dengan “domain layer” yaitu suatu lapisan dalam arsitektur sistem yang berada dibawah “presentation layer” yang tersusun atas domain objects–obyek entitas yang berhubungan dengan logik proses bisnis. Domain layer memiliki erat kaitannya dengan data model dimana sama-sama tersusun atas domain objects yang saling berelasi.

Sebagai catatan penting, domain model juga tidak mengisyaratkan suatu pembentukan software object seperti kelas pada JAVA, C# dan bahasa OO lainnya. Tetapi Anda dapat mengekstraksi dari padanya.

Page 2: Model Domain

class Online BookStore

Buku

- ISBN- judulBuku

katalogBuku

pengarangBuku

- id- namaPengarang

penerbit

- idPenerbit- namaPenerbit

orderLines

- quantity: int

order

- orderDate- totalPrice

customer

- customerID- namaCustomer

pembayaran

konfirmasiOrder

- orderID- confirmationDate- isConfirmed

pengiriman

- shippingDate

1

0..1

1

0..1

11..*1 0..*

1

*

1..*

1..*

1

1..*

0..1

1

0..1

1

Penjelasan model domain diatas :

Setiap buku memiliki pengarang buku. Satu buku dapat ditulis oleh paling sedikit satu pengarang, maksimal oleh banyak pengarang. Satu pengarang dapat menulis paling sedikit satu buku, maksimal menulis banyak buku.

Layaknya pengarang, buku juga memiliki penerbit. Satu penerbit dapat menerbitkan banyak buku. Satu atau banyak buku hanya dapat diterbitkan oleh satu penerbit.

Katalog buku dapat memiliki paling sedikit satu buku, maksimal banyak buku. Sebaliknya, satu atau banyak buku dapat dimiliki oleh satu katalog buku.

Customer pada suatu waktu dapat melakukan pemesanan buku dan dapat juga tidak melakukan pemesanan, maka hubungannya digambarkan dengan 0..1. Sedangkan setiap pemesanan/order

Page 3: Model Domain

pada suatu waktu dilakukan paling sedikit oleh satu customer, dengan demikian hubungannya adalah 1.

Setiap buku yang dipesan tidak berhubungan langsung dengan order/pemesanan. Ada baris pemesanan (orderlines) yang menjembatani antara order dengan buku. Fungsi dari orderLines sendiri adalah untuk me-record jumlah buku yang dipesan. Orderlines dapat memiliki satu buku dalam baris pemesanan-nya. Sedangkan satu buah buku atau banyak buku pada suatu waktu dapat dipesan atau tidak dipesan sama sekali sehingga hubungannya digambarkan dengan 0..* pada orderlines.

Satu kali pemesanan/order dapat memesan paling sedikit satu buku, maksimal banyak buku karena pemesanan dapat dilakukan lebih dari satu jenis buku. Sedangkan orderlines/baris pemesanan sendiri dimiliki oleh hanya satu order.

Setiap pemesanan yang dilakukan oleh customer dapat di konfirmasi tetapi dapat juga tidak di konfirmasi oleh customer, maka hubungan-nya digambarkan dengan 0..1. Setiap konfirmasi order dilakukan berdasarkan order/pemesanan yang diterima dengan demikian hubungannya digambarkan dengan 1.

Pembayaran dalam sistem penjualan buku online dapat dilakukan apabila sistem sudah menerima konfirmasi pemesanan dari customer yang dilakukan dengan menyertakan orderID (nomor unik transaksi online). Apabila customer sudah meng-konfirmasi pemesanan maka pembayaran dapat dilakukan, tetapi apabila customer belum meng-konfirmasi maka pembayaran pun tidak dapat di lakukan. Dengan demikian hubungan-nya digambarkan dengan 0..1. Untuk setiap pembayaran dapat dilakukan berdasarkan konfirmasi pemesanan oleh customer, maka hubungan-nya digambarkan dengan 1.

Pengiriman dapat dilakukan apabila customer telah melakukan pembayaran yang sebelumnya telah meng-konfirmasi pemesanan. Jika customer belum meng-konfirmasi pemesanan dan melakukan pembayaran maka pengiriman tidak dapat dilakukan, dengan demikian hubungannya adalah 0..1. Untuk setiap pengiriman dilakukan berdasarkan pembayaran yang telah dilakukan oleh customer, maka hubungannya adalah 1.

contoh domain model pada Internet Bookstore Project :

Page 5: Model Domain

Apa itu domain model?

"Sebuah model domain menangkap jenis yang paling penting dari benda-benda dalam konteks bisnis. Model domain merupakan 'hal-hal' yang ada atau peristiwa yang termasyhur dalam lingkungan bisnis "-. I. Jacobsen

Mengapa harus d. model?

• Memberikan kerangka konseptual dari hal-hal dalam ruang masalah

• Membantumu berfikir – berfokus pada semantik

• Menyediakan daftar istilah– dasar dari kata benda

• Ini adalah pandangan statis - berarti memungkinkan kita menyampaikan waktu aturan bisnis invarian

• Pondasi untuk use-case/workflow modelling

• Berdasarkan struktur yang didefinisikan, kita dapat menggambarkan keadaan dari domain masalah setiap saat.

Simple domain model

Companyname

Personfirst name : Stringlast name : Stringsalary 0..11..*

Cartypename

*

+employer+employee

+owner

1..* 0..1

*

<<Rule>>If a person is not employed by a company then they do not have a car.

Page 6: Model Domain

Fitur dari Domain Model

• Fitur berikut memungkinkan kita untuk mengekspresikan invarian waktu aturan bisnis statis untuk domain:-

o Domain classes – tiap domain masing-masing kelas menunjukkan jenis objek  

o Attributes – atribut adalah deskripsi slot bernama hukum sebagaimana ditentukan dalam kelas domain, masing-masing instance dari kelas terpisah memegang nilai.  

o Associations – asosiasi adalah hubungan antara dua (atau lebih) kelas domain yang menggambarkan hubungan antara objek contoh mereka. Asosiasi dapat memiliki peran, menggambarkan banyaknya dan partisipasi kelas dalam hubungan.

o Additional rules – aturan kompleks yang tidak dapat ditampilkan dengan simbologi dapat ditampilkan dengan catatan terlampir.

Domain classes?

• Setiap kelas domain menunjukkan suatu jenis objek. Ini adalah keterangan untuk satu set hal yang berbagi fitur-fitur umum. Kelas dapat seperti:-

o Business objects - merupakan hal yang dimanipulasi dalam bisnis, misalnya urutan.

o Real world objects – hal-hal yang dapat membuat bisnis terus melacaknya mis Kontak, Situs.

o Events that transpire - misal penjualan and pembayaran.

• Sebuah domain kelas memiliki atribut dan asosiasi dengan kelas lain (dibahas di bawah). Adalah penting bahwa kelas domain diberikan penjelasan yang baik

Bagaimana saya bisa membuat domain model?

Lakukan hal berikut dalam iterasi yang sangat singkat :

o Buatlah daftar calon kelas domain.

o Gambarlah kelas-kelas dalam diagram kelas UML.

o Jika memungkinkan, tambahkan keterangan singkat untuk kelas.

o Identifikasi asosiasi yang diperlukan.

Page 7: Model Domain

o Tentukan kelas domain yang hanya benar-benar atribut.

o Yang mana yang membantu, identifikasikan nama peran dan multiplisitas untuk asosiasi.

o Tambahkan aturan statis tambahan sebagai UML catatan yang tidak dapat disampaikan dengan simbol UML.

o Kelompokkan Diagram / kelas domain berdasarkan kategori dalam paket.

Concentrate more on just identifying domain classes in early iterations !

Identifikasi Domain Class?

• Sebuah cara yang jelas untuk mengidentifikasi kelas domain adalah mengidentifikasi kata benda dan frase dalam deskripsi tekstual dari sebuah domain.

• Pertimbangkan penggunaan deskripsi kasus sebagai berikut :-

• 1.      Pelanggan tiba di kasir dengan barang dan / atau jasa untuk membeli.

• 2.      Cashier memulai penjualan baru.

• 3.      Cashier memasukkan item identifier.

• 4.      System merekam the sale line item dan menunjukkan the item description, price dan total sementara.

Mengidentifikasi atribut?

• Sebuah kelas domain dapat terdengar seperti atribut jika : -

o Hal ini bergantung pada kelas yang terkait untuk identitas itu - misalnya kelas 'nomor urut' terkait dengan kelas 'order'. The 'nomor urut' terdengar curiga seperti atribut 'order'.

o Ini adalah jenis data sederhana - misalnya 'Nomor urut' adalah bilangan bulat sederhana. Sekarang itu benar-benar terdengar seperti atribut!

Contoh

Page 8: Model Domain

Router

Name

N/W Service

NameDedicatedToValidIPRangeConnectivityType

Switch/Hub

Name

Machine

SerialNumberHostNameIPAddressAdministratorSwitchPlugMemoryLocationInRackMaintainerWarranty

Rack

Name

1

*

1

*

1

*

*

0..1

0..1*

Mario Rack 19" Rack

1

1..*

Hard Disk CPU

Network Interface Card

MAC AddressInterfaceType

11

FreePort

Location

1 *

FreeSlot

LocationInRack

1*

FreePlug

Location

* 1

Location

RoomBuildingXY

11

Graphics Card DVD CDMonitor Sound Card

H/W Warranty

MaintainerStartDateEndDate

RackTypes

DimensionsSlotNumberMachineDimensions

*

1

Hardware Component

ManufacturerModel

0..1

*

ModelManufacturer

1 *1 *

*

1

*

1

Page 9: Model Domain

Router

Name

N/W Service

NameDedicatedToValidIPRangeConnectivityType

Switch/Hub

Name

Machine

SerialNumberHostNameIPAddressAdministratorSwitchPlugMemoryLocationInRackMaintainerWarranty

Rack

Name

1

*

1

*

1

*

*

0..1

0..1*

Mario Rack 19" Rack

Network Interface Card

MAC AddressInterfaceType

11

References

• “Business Modelling with UML” – Penker

• “Analysis patterns” – Fowler

Page 10: Model Domain

DOMIN MODEL

Kelompok

Azizul Qodri (09111003058)

Dedy kurniawan (09111003048)

Hasan Ismail (09111003040)

Sistem Informasi Fakultas Ilmu Komputer

Universitas Seriwijaya

Indralaya 2012/2013