Analisis dan Pemodelan P Proses Bi Bisnis i
Pokok Bahasan • Menentukan Object (entitas yang memiliki nilai atribut yang unik) • Menentukan Menent kan Class (Kumpulan (K mp lan objek) • Menentukan Event (kejadian / kegiatan sesaat pada d sebuah b h class) l )
Analisis Problem Domain System Definition
Behavior
Classes
Structure Model
Class of ?
Class of Humans
Class of Mammals
Class of Animals
?
Class of Domestic Animals
?
Menentukan Class • Principle: Klasifikasikan object didalam problem domain – Object: suatu entitas yang mempunyai identitas, state dan behavior • Harus bisa mengidentifikasi dan membatasi entity Independent.
– Class: adalah deskripsi dari kumpulan object yang mempunyai struktur, behavior pattern dan attribute yang sama
• Principle : Object diberi karakter sesuai dengan eventnya – Event: Insident yang terjadi seketika yang melibatkan satu atau lebih object
Menentukan Class Classes Agreement Customer Bank employee Contract description … Enter into contract Contract is terminated …
Problem domain
Events
Object Vs Class • Object adalah suatu entitas yang memiliki identitas,, state,, dan behavior • Class adalah kumpulan dari object yang mempunyai structure structure, behavioral pattern pattern, dan attributes yang bersamaan
Menentukan Class dan Event Cari candidate Untuk Class
Cari candidate Untuk event
Evaluasi dan pilih Secara sistematis
Event table
Contoh Event Table Class
Events reserved
cancelled
treated X
Customer
X
X
Assistant
X
X
Apprentice R Reservation i
X
Plan
X
X
employed
resigned
X
X
X
X
graduated
agreed
X X
X
X X
Class • Cari Calon – Jangan membuang terlalu cepat, lebih baik dievaluasi dengan teliti
• Model baru atau perbaiki situasi tidak hanya seperti apa p adanya y • Bagaimana menemukan candidate untuk Class – – – –
Kata benda didalam keterangan atau pembicaraan Daftar dari tipical object Cari persamaan dengan sistem komputer Literatur teknis didalam problem domain
• Beri nama Class secara hati hati – Sederhana, mudah dibaca, tepat, tidak membingungkan, seperti yang digunakan di problem domain
Contoh Class Phenomena
Class
Thing
Car, goods, packaging, materials
People & Role
Employee, parent, customer, member
Organizations
Company, Department, Group, Project
Places
Shelf, parking spot, construction site, city
Concepts
Square, currency, quality, parameters, fee
Resources
Money, time, energy, labor force, info
Apparatuses
Radar, sensor, valve, motor
System y
Street register, g , cash register, g , alarm system y
Kriteria Evaluasi untuk Class • Dapatkah D tk h mengidentifikasikan id tifik ik object bj t dari d i class l – Perlu dapat mengidentifikasikan object secara jelas
• Apakah class mempunyai informasi yang unik – Dapatkah informasi diturunkan dari class lain
• Apakah class dapat menurunkan banyak object ? – Jika hanya satu instance, biasanya hampir tidak diperlukan
• Apakah class mempunyai jumlah event yang cocok dan dapat di manage ? – Terlalu banyak y event bisa menunjukkan j butuh class lagi g
Events • Cari event didalam problem domain domain, bukan didalam sistem komputer • Jika event tidak instantaneous harus dipecah menjadi event yang lebih kecil • Dimana menemukan e e u candidate c d d e events eve s : – – – –
Kt kerja didalam penjelasan atau wawancara Daftar event yang umum atau tipikal type dari event Sistem komputer yang sejenis Literatur teknis didalam problem domain
Example Events Process
Events
Work & Production
Engine g installed,, customer served,, order finished
Transport
Shipment received, article sent, car delivered
Consumption
Item purchased, budget updated, item rejected
Life Cycle
Person created, rejected, conference finished
Career & Education
Graduate, job offered, resigned, enrolled
Contract & Exchange
Reservation made, schedule agreed
Monitoring & Control
Vehicle dispatched, temperature exceeded pump started d
Planning & Management
Employee allocated, schedule agreed
g Decision making
Article reviewed,, article chosen
Kriteria evaluasi untuk event • Apakah event itu instant ? – Jika tidak, maka kita perhatikan dengan mulai dan y suatu event,, dan mungkin g event diantaranya y berhentinya
• Apakah event atomic? – Jika mempunyai p y sub-event,, ggantikan event utama dengan g sub-event
• Apakah event dapat diidentifikasi pada saat terjadi ? – Bagaimana kita tahu bahwa events tersebut sudah terjadi ?
Evaluating Classes & Events • Evaluasi secara sistematis • What should be part of the problem domain and what should not? • More difficult with abstract concepts, e.g. account, but may be b helpful h l f l to ... – think of as physical object, e.g. box of receipts – think thi k off as what h t it actually t ll represents, t e.g. contract t t to t allow ll withdrawal of money deposited
• Principle: Have an open mind, but select critically
Kriteria Evaluasi Secara Umum • Kebutuhan akan informasi – Masukan classes dan events hanya jika system function akan menggunakan informasi tersebut
• Fokus pada problem domain bukan application domain – Interested in those things that future users will administrate, monitor, or control
• Harus relevan pada definisi sistem – Jika tidak, perlu didiskusikan dengan user – Mungkin perlu mengubah definisi sistem
Pokok Bahasan • Menentukan struktur hubungan antar object dan class • Aggregation • Association • Generalisasi • Cluster
Problem Domain Analysis System Definition
Behaviour
Classes
Structure Model
Menentukan Structure • Dimulai dengan class dan event yang ada ppada event table • Tentukan struktur object dan struktur class • Hubungkan antar class • Hasilnya adalah class diagram
Association Anywhere from one to many Car
0 * 0..*
Anywhere from zero to many
Ownership
1..*
Person
Name is optional, but recommended
Aggregation Car
1 1
1 1
Body
One and only l one
Anywhere from four to many 1 4..*
Motor
1 1..*
Cam Shaft
Wheel
1 2..*
Cylinder
Assembly side Component side (min and max)
Generalisation Passenger Car
Taxi
Group under one generalisation Bank book
Private Car
Person
Taxi “is a” passenger car or Taxis are Customer a subset of passenger cars
Account
Checking
Class without objects j Employee
Loan
Service
Multiple inheritance
Clusters «cluster» Cars
«cluster» People Car
O ner Owner
Motor
Passenger Car
Cylinder
Taxi
Clerk
Membuat Class Diagram
Event table
Explore patterns
Find candidates for structure
Evaluate systematically
Class diagram g
Contoh Class Diagram Customer
1
0 * 0..* 0..*
Appointment 1
1 1
1..*
Employee
Day Schedule 1
1..*
Apprentice
Assistant Time Slot
1
Work
Free
Other
Menentukan Structures • Coba temukan secara sistematis – Clusters: • Cluster biasanya dilakukan yang terakhir • Kelompokan Class untuk memberikan kejelasan lebih baik
– Generalisation: • Periksa setiap p ppasangan g class untuk struktur generalisasi g antar class,, atau cari common class • Periksa masing masing class untuk spesialisasi (inheritance) yang relevan
Menentukan Structures – Aggregation: • Periksa setiap pasangan class untuk (1) whole-part, containerp antar class,, dan content,, atau association-member relationships untuk (2) a common whole yang menghubungkan mereka • Periksa setiap class untuk (3) components yang relevan
– Association: ssoc at o : • Periksa setiap pasangan class untuk needed association(s)
• Tetapi, jangan hanya membuat structure karena anda d t dapat – Apakah mereka relevan atau berguna? – Apakah mereka dapat di representasikan dengan lebih sederhana ?
• Mungkin perlu melacak ulang ke class
Mencari Pola untuk Structures • Pola memberikan sumber inspirasi dan patokan untuk bagaimana memodel situasi • Pola yang ang umum m m termasuk termas k … – – – –
Role pattern: object dengan multiple roles Relation l i pattern: relationship l i hi dengan d attributes ib Hierarchy pattern: Item-descriptor pattern:
The Role Pattern Person
Employee
Person
Customer
CustomerEmployee
Employee Role
Customer Role
Shouldn’t dynamically change object from customer class or employee class to customerp y class or vice versa employee
The Role Pattern Person
Person
1 0..*
1 1..*
Role
Role
Employee
Customer
Role1
Role2 ...
Rolen
Generic Pattern
The Relation Pattern Person
1..* 1 Owns
Car
Partyy1
Person
1 0..*
1 0..*
Ownership
But … What if need attributes for the owns relationship? E.g., date_purchased date purchased
1..* 1
Car
Relation
0..* 1
Party2
G Generic i P Pattern tt
The Hierarchy Pattern University
Book
1 1..* Division
1 1..*
1 1..* Chapter
1 1..* School
Leveln
1 1..* Section ...
Leveln-1 ... 1 1..* Level1
Generic Pattern
The Item Item-Descriptor Descriptor Pattern
Book 1 0 * 0.. Copy
Descriptor
Logical
1 0 * 0.. Item
Physical
Generic Pattern
Contoh Unit Enrolment Student
0..* 0..* Enrolls in
Unit
• Tetapi, bagaimana dengan student dari semester yang lama ? • Bagaimana mendapatkan daftar student dari unit ? • Tetapi masih dapat diketahui unit yang mana yang mempunyai syarat apa ?
Unit Enrolment • Gunakan item item-descriptor descriptor untuk mengembangkan unit class Unit 1
Unit U i title, i l number b Prerequisites, etc.
0..*
Student
0..* 0..* Enrolls in
Unit Offering
Semester, Year, Instructor etc Instructor, etc.
• Tetapi bagaimana kita dapat menyimpan nilai atau tanggal pendaftaran unit ?
Unit Enrolment Example • Gunakan relation pattern untuk mengembangkan enroll dengan association dan student class Name, Student #, Address Address, etc. Enrol Date, Date Unit Mark, etc.
Student
Unit
1
1
0..*
0..*
0..* 0.. 1 0.. 0..* Unit Unit Enrolls in Enrolment Offering
Unit title, number Prerequisites, etc.
Semester, Year, Instructor, etc.
Evaluating Structures • Evaluate systematically – Structure types must be used correctly • aggregation vs association
– Structures must be conceptually p y true – Structures must be simple
• Another golden rule – Structures must increase clarity
Summary y of Principles p for Determining Structures • Study abstract, static relationships between classes • Study concrete, dynamic relationships between objects • Model only the necessary structural relationships – focus on important aspects – include only a minimal number
Tutorial: Structures • Individually, identify a list of candidate structures from the case description. p – Remember to check each pair of classes, etc. – Remember to check for all kinds of structures. – Be sure that the “is a kind of” and “a part of” semantics are applied pp correctlyy
Pokok Bahasan
• Menentukan Struktur • Menggambarkan Class Diagram • Menentukan Cluster • Explore Pattern
Kasus Persewaan Video
Video Rental Store Suatu sistem untuk mengelola pelanggan dan penyewaan video didalam toko persewaan video. Tokonya menawarkan video dalam kategori yang ber-beda-beda. Untuk menjadi member gratis dan terbuka untuk semua orang tetapi diharuskan mendaftar untuk menyewa video. Tokonya melacak aktifitas dari setiap pelanggan dan akan mengirimkan reminder bila video tidak dikembalikan dalam waktu kt 48 jam. j R i d kedua Reminder k d akan k diki i setelah dikirim t l h satu t minggu, dan jika tidak mengembalikan video, pelanggan akan diexclude hingga videonya di kembalikan. Untuk setiap video title, ada beberapa tape untuk disewakan, dan member dapat memesan video tertentu untuk di sewa pada tanggal tertentu. tertentu
Class & Event • • • • •
Video Kategori Member Reminder Vid Title Video Titl
• • • • • •
Mendaftar Menyewa Mengirim Mengembalikan g Exclude Memesan
EVENT TABLE CLASS Video Kategori Member Reminder Video Title EVENT Mendaftar M d f Menyewa Mengirim Mengembalikan Exclude Memesan
*
*
*
*
*
*
* * * * * *
* * * *
Struktur
Kategori
1 1..*
Video Vid Title
Member
1 1..*
Video
Rimender
CLASS DIAGRAM Kategori
1 1..*
Video Title 1 1..*
Video 0..* 0..* 1
Member
0..2
Rimender
CLASS DIAGRAM Kategori
• • •
• •
1 1..*
Video Kategori Member : – Member Aktif – Member Exclude Reminder Video Title
Video Title
Rimender 1
1 1..*
Video
0..2 0..* 0..*
Member
Member Aktif
Member Exclude
CLUSTER <> <>
Rimender
Video
Kategori
1 1..*
Video Title
Rimender 1
1 1..*
Video
<>
Member 0..*
0..*
0..2
Member
Member Aktif
Member Exclude
Explore Patterns
Video 0..* 0..*
Member
Video Karena * to *,, maka dipecah
1 1....* 1..*
Transaksi
1
Member
Pokok Bahasan • Behaviour pattern • State • Event E t • Statechart
Problem Domain Analysis System Definition
Behaviour
Classes
Structure Model
Definisi • Event Trace – Urutan dari event yang terjadi pada suatu object
• Behavioural Pattern – Daftar kemungkinan event traces yang terjadi pada semua object didalam class
• Attribute – Keterangan property dari class atau event
Behaviour Explore patterns Eventt table E t bl and d class diagram
Describe behavioural patterns
Consider structures and classes
Describe attributes Behavioural patterns p with attributes
Menjelaskan Behaviour • Perlu dibuat untuk setiap class • Coba buat typical behaviour (event trace) terlebih dahulu, baru kemudian ditambahkan behaviour yang ada • Hasilnya adalah behavioural pattern – Kumpulan pola event dari kemungkinan urutan eventt untuk t k object bj t didalam did l class l
• Ditampilkan dengan menggunakan statechart • Dapat ditampilkan dalam bentuk lain – regular expression – state table
Struktur kontrol didalam Statecharts U t Urutan
Pilih Pilihan
It Iterasi i
T
T
a State
a
b
z
a
T1
b
E Event t Perpindahan ke S State berikutnya
T2
z
a
z
b T1
T2
a
Contoh Statechart dengan Pilihan End point
Article author title status
Event
Decision announced (date of decision)
Received States
Article submitted (date)
Letter of intent submitted (date of submission, submission title)
Deadline p passed
Waiting Attributes associated with event Start point
A choice of events
Statechart dengan Iterasi Account owner account # balance
account opened (date) account closed (date)
Open p
Closed account opened (date)
Single-state Single state iterations
amount deposited (date, amount)
amount withdrawn (date, amount)
A multi-state iteration
Hierarchical States a
b
z
S1
Sn
S2
terminate terminate
terminate
a
S
a
b S1
z Sn
S2
terminate
Explore Patterns • The Stepwise Relation Pattern – Digunakan untuk associations dengan agregation multiple level
• The h Stepwise i Role l Pattern – Digunakan untuk lifecycle yang menambah peran baru
• The Composite Pattern – Digunakan ketika part dapat ditambahkan secara rucursive
The Stepwise Relation Pattern Semester 1 0..* Class
0..* 1 0.. 0 *
1 0..* Group
Class
Stepwise St i relation pattern (example)
1
Student
Student pattern (partial) assigned t to semester
0..* 1
Class pattern (partial) A i i Assigning
student assigned to class
assigned to class
assigned to group
The Stepwise Role Pattern Sale
1 0..1
Offer Offer
Stepwise Role Pattern (example)
1 0..1
Order
1 0..1
Delivery
Offer pattern Off tt (partial) offer requested
Sale S l pattern (partial)
offer rejected offer accepted
offer requested Negotiating offer accepted Arranging order received Awaiting delivery made sale cancelled
The Composite Pattern Part
Part pattern
1 * 1..*
assembly of part started
part mounted in composite Readyy
part at hand
Simple
Composite 1
Simple part pattern
part mounted in composite
part at hand Ready
Composite Pattern ((all three parts needed)
Composite part pattern this part mounted assembly of part started
into another composite
Assembly Assembly part mounted into this composite
Inheritance dari Behavioural Patterns • Subclass harus mempunyai semua events dari superclass • Subclass harus mengikuti behavioural patterns dari superclassnya, tetapi dapat menambahkan constrain dari behaviournya subclass • Dengan multiple inheritance, menurunkan event dan behaviour dari kedua superclassnya • Jika event dan behaviour dari superclass tidak consisten perlu mencari struktur generalisasinya
Consider Structures • Jika dua atau lebih object mempunyai event yang sama, kemungkinan mempunyai hubungan aggregation atau association • Sebaliknya y juga j g sama,, pada p saat membuat atau menghapus hubungan ? j pada p dua class, • Jika event yyangg sama terjadi kemungkinan satu class adalah generalisasi dari yang lainnya. – Events dari subclass harus menjadi bagian dari yang lainnya
• Jika event yang sama terjadi pada dua class, class yang k ti diperlukan ketiga di l k untuk t k menjadi j di superclassnya. l
Menentukan Class • Memerlukan beberpa p peran p dari class bila urutan event saling bekerja bersamaan atau paralel • Contoh seperti p ppendidikan dan karir seseorangg – – – –
Keduanya terjadi bersamaan disetiap saat Masingg masing g mempunyai p y progress p g masingg masingg Mungkin saling berinteraksi antar sesama Dapat memodel seperti dua peran untuk satu orang, jadi dua peran class membentuk aggregation kedalam class person
Keterangan dari Class ‘Customer’ dan ‘Account’ Customer name address
Account opened p (date) Account opened (date)
Account closed (date)
Active
Account closed (date)
1 Amount deposited
1..*
Amount withdrawn
Account opened (date)
Account balance
Open
Amount deposited
Amount withdrawn
Account closed (date)
Menjelaskan Attribut • Adalah nama dari keterangan properti dari class atau event • Diturunkan dari class’s behavioural pattern • Hampir p semua data dihubungkan g ppada event • Beberapa data tidak dihubungkan pada single events yang menunjukkan state atau object seperti account balance
Menurunkan Class Attributes • Apakah karakteristik umum dari Class • Bagaimana data diterangkan di dalam problem bl domain d i • Data dasar apa yang harus diambil tentang object dari class ? • Hasil dari event trace y yang g mana yyang g harus diambil
Menurunkan Event Attributes • Kapan event ini terjadi? – Tanggal, Jam – Perbedaan antara bila terjadi dan bila ditemukan tentang event?
• Angka atau nilai mana yang diperhatikan oleh event? – Seperti Jumlah uang, uang jumlah barang terjual
Prinsip dari Modeling Behaviour • Buat behavioural pattern dari event traces • Create behavioural patterns from event traces. • Study common events. events • Derive class attributes from behavioural patterns.
Pokok Bahasan
• Menggambarkan Behavior Pattern • Menentukan M t k Attribut Att ib t • Menentukan Operation
Kasus Persewaan Video
EVENT TABLE CLASS Video Kategori Member Reminder Video Title EVENT Mendaftar M d f Menyewa Mengirim Mengembalikan Exclude Memesan
*
*
*
*
*
*
* * * * * *
* * * *
STATE DIAGRAM MEMBER Menyewa (Tgl, Judul, Seri)
Mendaftar (Tgl) Mengirim (NoRimender, Tgl) Kirim i i Reminder i d ke k 2 (No. ( Reminder, i d Tgl) l)
Aktif Mengembalikan (Tgl, Judul, Seri)
Member Nama Alamat Telp
Mengembalikan (Tgl, Judul, Seri)
Exclude
Memesan (T l Judul, (Tgl, J d l Seri) S i)
Member Nama, Alamat, Telp, Tgl_Daftar Tgl_Kembali, Judul_Kembali, Seri_Kembali Tgl Pesan Judul_Pesan, Tgl_Pesan, Judul Pesan Seri Seri_Pesan Pesan Tgl_Sewa, Judul_Sewa, Seri_Sewa Tgl_Rimender, No_Rimender Mendaftar() Menyewa() Mengembalikan() M Memesan() () Mengirim_Rimender()
STATE DIAGRAM MEMBER Menyewa (Tgl, Judul, Seri)
Mendaftar (Tgl) Mengirim (NoRimender, Tgl)
Aktif Mengembalikan (Tgl Judul, (Tgl, Judul Seri)
Kirim Reminder ke 2 (No. Reminder, Tgl)
Memesan (Tgl, Judul, Seri)
Member
Kirim Reminder ke 2 (No. Reminder, Tgl)
Exclude Mengembalikan (Tgl, Judul, Seri)
Member Aktif
Member Exclude