5/12/2013
Unified Modeling Language Arna Fariza
Aturan Analisa dan Desain Memisahkan konstruksi software o o o o o o
Analisa kebutuhan Arsitektur software Spesifikasi (High-Level/Early design) Desain detail Implementasi dan testing Maintenance dan evolusi
Setiap fase desain/development dipisahkan
1
5/12/2013
Aturan Analisa dan Desain Desain o Mengembangkan solusi logika o Mewakili satu cara untuk penyelesaian permasalahan o Menentukan sistem BAGAIMANA yang memenuhi APA!
Desain OO o Menekankan pada menentukan obyek dan komponen software logika o Evaluasi desain OO alternatif o Menuju implementasi untuk pemecahan kelayakan
Peringatan: A+D adalah proses yang berkelanjutan Kesuksesan dan verifikasi A+D menuju ke rekayasa software yang dapat diukur
Konsep Mendefinisikan Komponen Komponen terdiri dari satu atau lebih class (atau komponen lain) dan dimaksudkan untuk mendukung unit fungsional yang dibangun Class dapat digunakan pada banyak komponen Class yang digunakan dalam banyak komponen menggunakan semantik yang sama dalam semua konteks Terdiri dari: o o o o
Desain berbasis komponen Saling ketergantungan antar komponen Pandangan alternatif dari interaksi komponen Kerangka komponen reusable
2
5/12/2013
Sejarah Desain OO Selama 15+ tahun terakhir, beberapa pemain dalam OOD o Booch: The Booch Method • “Object-Oriented Design with Application,” Benjamin/Cummings, 1991.
o Rumbaugh: OMT • “Object-Oriented Modeling and Design,” Prentice-Hall, 1991.
o Meyer: Client/Server Contract Approach • “Object-Oriented Software Construction,” Prentice-Hall, 1988.
o Jacobson: Use-Cases and Software Engrg. • “Object-Oriented Software Engineering: A Use Case Driven Approach,” Addison-Wesley, 1992.
Sejarah Desain OO Pemain dalam OOD - lanjutan o Coleman: The Fusion Method • “Object-Oriented Development - The Fusion Method,” Prentice-Hall, 1994.
o Lieberherr: Adaptive OO Software • “Adaptive OO Software: The Demeter Method with Propagation Patterns,” PWS, 1996.
o Gamma: Design Patterns • “Design Patterns: Elements of Reusable Object-Oriented Software,” Addison-Wesley, 1995.
o Booch and Rumbaugh: UML Predecessor • “Unified Method for Object-Oriented Development,” Rational TR, 1995
3
5/12/2013
Kekuatan UML Unified Modeling Language (UML) adalah desain dan analisa OO yang ekuivalen dengan Java Penyeragaman Booch, Rumbaugh, dan Jacobson Materi o Apakah UML itu? o Tujuh tujuan UML o Pemodelan konstruksi dan diagram • • • • •
Diagram Diagram Diagram Diagram Diagram
Use-Case Class Perilaku Interaksi Implementasi
Apakah UML itu? UML adalah bahasa untuk spesifikasi, visualisasi, konstruksi dan dokumentasi pembuatan software
4
5/12/2013
Sejarah UML Penyeragaman Booch dan Rumbaugh - 1994 Versi 0.8 dikeluarkan Oktober 1995 Ivar Jacobson dan Objectory disatukan menjadi Rational pada Fall 1995 UML 2.0 – versi resmi - dalam fase upgrading UML 1.5 – versi sebelumnya - Lengkap
Representasi Arsitektur Sistem
Logical View
Implementation View
End-user Fungsi
Programmer Manajemen software
Use Case View Process View
Deployment View
Integrator Sistem Performansi Skalabilitas Throughput
Konseptual
Rekayasa Sistem Topologi Sistem Delivery, instalasi Komunikasi
Fisik
5
5/12/2013
UML 2.0!
Pembuatan UML
UML 1.5 UML 1.3 OMG Acceptance, Nov 1997
UML 1.1
Final submission to OMG, Sep ‘97 public feedback
First submission to OMG, Jan ´97
UML 1.0
UML partners
UML 0.9
Web - June ´96
OOPSLA ´95
Unified Method 0.8
Booch method
Other Methods
OMT
OOSE
Kontribusi UML Harel
Meyer Before and after conditions
Statecharts
Gamma, et al Frameworks and patterns,
HP Fusion Booch
Operation descriptions and message numbering
Booch method
Embley
Rumbaugh
Singleton classes and high-level view
OMT
Jacobson
Wirfs-Brock
OOSE
Responsibilities
Shlaer - Mellor Object lifecycles
Odell Classification
6
5/12/2013
Pembangunan/Diagram Pemodelan UML Klasifikasi berdasarkan Kapabilitas/Timeline Diagram Use-Case Diagram Class dan Obyek Diagram Perilaku o Diagram Statechart o Diagram Activity
Diagram Interaksi o Sequence Diagram o Collaboration Diagram
Diagram Implementasi o Component Diagram o Deployment Diagram
Hubungan antara Model dan Diagram
Use Case Use Case Diagrams Sequence Diagrams Diagrams
Scenario Scenario Diagrams Collaboration Diagrams Diagrams
Scenario Scenario Diagrams Statechart Diagrams Diagrams
Use Case Use Case Diagrams Use Case Diagrams Diagrams
State State Diagrams Class Diagrams Diagrams
State State Diagrams Object Diagrams Diagrams
State State Diagrams Component Diagrams Diagrams
Model
Component Component Diagrams Deployment Diagrams
Activity Diagrams
Diagrams
7
5/12/2013
Pemodelan Use Case
Agenda Apakah use case itu? Keuntungan Use Case Use Cases vs. dokumen kebutuhan Membangun model Use Case o o o o
System Aktor Use Case Relasi Use Case
Contoh
8
5/12/2013
Apakah Use Case itu? Dibuat oleh Ivar Jacobson (1994) “use case adalah urutan transaksi dari aktor pada sistem” Menggambarkan APA yang sistem (“Black Box”) lakukan dari perspektif user Sekumpulan skenario yang menjadi satu untuk tujuan user Model use case BUKAN teknik pemodelan berorientasi obyek yang berjalan inherent
Keuntungan Use Case Menangkap kebutuhan fungsional dari perspektif user Memberi diskripsi jelas dan konsisten dari apa yang seharusnya dilakukan sistem Dasar membentuk tes sistem Menyediakan kemampuan untuk melacak kebutuhan fungsional ke dalam class aktual dan operasi dalam sistem Berfungsi sebagai unit estimasi Unit terkecil dari delivery o Setiap increment yang direncanakan dan di-deliver digambarkan dalam use case yang akan di-deliver secara increment
9
5/12/2013
Use Case vs. Kebutuhan Dokumen kebutuhan menyatakan apa yang seharusnya dilakukan sistem. Use case menggambarkan aksi yang dilakukan user dan respon dari sistem Use case biasanya digunakan untuk mengartikan kebutuhan Kebutuhan lebih efektif didokumentasikan sebagai use case o Lebih baik dalam pelacakan o Lebih mudah untuk validasi user terhadap kebutuhan fungsional o Membantuk struktur manual user o Perangkat membangun class
Diagram Use Case pada UML Model use case digambarkan dalam UML sebagai satu atau lebih diagram use case Terdapat 4 elemen utama: o o o o
Sistem Aktor yang berinteraksi pada sistem Use case atau servis yang tersedia pada sistem Relasi antar elemen
10
5/12/2013
Sistem Bagian dari pemodelan use case, merupakan definisi batasan pengembangan sistem Sistem tidak perlu harus berupa software Mendefinisikan batasan sistem o Bagian mana yang otomatis dan bagian mana yang manual? o Bagian mana yang dilakukan oleh sistem lain? • Keseluruhan solusi yang ditampilkan dimasukkan dalam batasan sistem • Dapat dilakukan secara inkremental
Sistem direpresentasikan sebagai kotak Nama sistem muncul dibawah atau di dalam kotak
Traffic Violations Report System
Aktor Seseorang atau sesuatu yang berinteraksi dengan sistem (pertukaran informasi dalam sistem Aktor merupakan aturan yang dimainkan dalam sistem, bukan user individu dari sistem Contoh: o Clerk – Menginputkan data o Supervisor – mengijinkan modifikasi/menghapus data o Manager – mengijinkan melihat statistik
Satu user dapat berlaku lebih dari satu aturan Aktor tidak harus manusia o Bisa berupa sistem eksternal yang berhubungan dengan pengembangan sistem
Aktor mempunyai nama yang menyatakan aturan Use case dilakukan oleh aktor
11
5/12/2013
Icon Aktor
<< Actor >> Clerk
Clerk
Relasi antar Aktor Bila beberapa aktor adalah bagian dari aturan, juga berlaku aturan yang digeneralisasi, digambarkan sebagai generalisasi Perilaku aturan general digambarkan dalam aktor super-class Aktor spesialisasi mewarisi perilaku super-class dan menambahkan beberapa cara Relasi antar aktor tidak selaku diperlukan
Manager
Supervisor
Clerk
12
5/12/2013
Identifikasi Aktor
Siapa yang merupakan fungsi utama dalam sistem? Siapa yang memerlukan maintain, administrasi dan menjalankan sistem? Dengan software/hardware lain yang mana sistem perlu berinteraksi? o Sistem komputer lain o Aplikasi lain dari komputer yang sama (misalnya client/server)
Use Case Menyatakan fungsi lengkap yang dilakukan aktor o Use case memenuhi tujuan aktor
Selalu dilakukan oleh aktor Use case menghasilkan nilai ke aktor Use case lengkap o Jangan membagi use case ke dalam use case yang lebih kecil yang mengimplementasikan use case lain (dekomposisi fungsional)
Skenario use case biasanya digambarkan secara tekstual o Spesifikasi sederhana dan konsisten tentang bagaimana aktor dan sistem berinteraksi o Use case menggambarkan template
Menggambarkan dimana level user dan respon sistem o Bebas dari teknologi dan mekanisme detail, terutama yang berhubungan dengan antar muka user
13
5/12/2013
Menemukan Use Case Untuk setiap aktor yang sebelumnya didefinisikan: o Servis apa yang dibutuhkan aktor dari sistem • Membaca, membuat, menghapus, memodifikasi, menyimpan informasi
o Event apa yang dilakukan aktor? o Dapatkan pekerjaan harian dari aktor disederhanakan? • Tidak terkonsentrasi hanya pada sistem saat ini
Icon Use Case Ellips yang berisi nama use case Ditempatkan dalam batasan sistem yang dimodelkan Berhubungan setidaknya satu aktor dengan komunikasi asosiasi o Kecuali untuk use case spesial/tambahan
Traffic Violations Report system Add Traffic Violation Clerk
14
5/12/2013
Relasi Use Case Relasi Include relationship o Bila sejumlah use case mempunyai perilaku umum, perilaku ini dapat dimodelkan dalam satu use case yang digunakan oleh use case lain o X << includes >> Y menyatakan bahwa proses yang dilakukan X selalu melibatkan Y setidaknya satu kali o Berlaku sebagai dekomposisi fungsional o Use case include harus lengkap o X harus memenuhi kondisi awal dari Y sebelum memasukinya
<< include >>
X
Y
Relasi Use Case Relasi Generalisasi o Digunakan bila sejumlah use case merupakan sub bagian, tetapi masing-masih mempunyai perbedaan yang tidak mungkin disatukan dalam satu use case o Generalisasi dan spesialisasi use case harus mempunyai tujuan yang sama o Use case spesialisasi menyatakan skenario alternatif dari use case generalisasi o Generalisasi use case harus lengkap o Use case spesialisasi dapat berhubungan dengan aktor baru o Use case spesialisasi menambahkan kondisi awal dan akhir (semantik AND) Specialized
Generalized
15
5/12/2013
Relasi Use Case Relasi Extend o Mirip dengan relasi generalisasi tetapi dengan aturan tambahan di dalamnya o Use case spesialisasi hanya extend use case generalisasi o Use case tambahan harus dideklarasikan secara eksplisit tambahannya
New Offender
<< extend >> (5: confirmation)
Add T.R. (5: confirmation)
Rekomendasi Alur Kerja 1. 2.
Identifikasi aktor (dan relasinya jika diperlukan) Untuk setiap aktor, identifikasi use case sampai tidak ada use case yang tertinggal a. b. c.
Tentukan tujuan aktor Putuskan kegiatan utama untuk mendapatkan tujuan Buat use case untuk setiap tujuan –
d.
3.
Aktor/tujuan baru kemungkinan ditemukan
Validasi/pembetulan use case yang ada
Gambarkan diagram use case
16
5/12/2013
Contoh – Traffic Violation Report System (TVRS)
Traffic Violations Report System Edit T.V. (8)
<<extend>>
Replace Offender
<
>
OffendersDB
Clerk Lookup T.V
Add T.V. (9)
<<extend>>
New Offender
Remove T.V
Supervisor
PolicemenDB
Contoh: Supermarket HTSS: System View
HTSS Scan Items Ring Order
Cashier
Buy Items
Customer Catalog Check Status
Sales Person Place Order
Customer
Catalog: Class View
Fill Order Estb. Credit
Supervisor
17
5/12/2013
Contoh: Supermarket
Contoh: Manajemen Survey Institusi survey yang melakukan/mengatur survey publik. Setelah data mentah dikumpulkan, staf senior menambah header survey ke database, staf senior atau junior menambah pertanyaan ke dalam survey, berupa mengelompokkan pertanyaan atau menambah katagori pertanyaan. Pertanyaan yang sensitif terbatas ke staf senior
18
5/12/2013
Skenario Use Case Health Care Application (HCA) - Write Rx Dokter menentukan resep untuk pasien Dokter memberikan informasi obat: nama obat, takaran, jumlah dos dan refill Komputer melakukan cross-ce antara obat dan sejarah obat/medis yang sudah ada
+
Resep dikirim secara elektronik ke apotik atau dicetak untuk pasien
Contoh: Health Care
19
5/12/2013
Latihan
Buatlah diagram use case untuk rental VCD
Analisa Class
20
5/12/2013
Agenda Tujuan Apakah analisa class itu? Tipe analisa class o Class Boundary o Class Entity o Class Control
Mencari analisa class Contoh
Tujuan Identifikasi kumpulan kandidat (analisis) class yang pantas digunakan sesuai perilaku yang digambarkan dalam use case o Perilaku lengkap dari use case harus didistribusikan ke analisis class o Kebutuhan non-fungsional tidak dimasukkan o Konsentrasi pada mencari atribut dan relasi class
21
5/12/2013
Apakah Analisis Class itu? Teknik mencari class menggunakan tiga perspektif sistem o Batasan antara sistem dan aktor o Informasi yang digunakan sistem o Logika kontrol dari sistem
Apakah Analisis Class itu?
Stereotype yang mendefinisikan elemen model baru dalam hubungan dengan elemen model lain
<>
=
<<entity>>
=
<>
=
22
5/12/2013
Tipe Analisis Class
<>
Koordinasi perilaku use case
<>
<>
Actor1 <>
Model interaksi antara sistem dan lingkungan
<<entity>>
Actor2
<<entity>>
Menyimpan dan mengatur informasi dalam sistem
Class Boundary Memodelkan interaksi antara sistem dan pekerjaan yang ada di dalamnya o Class user interface • Berkonsentrasi pada informasi apa yang diberikan ke user • Tidak terkonsentrasi pada user interface secara detail • Contoh – ViolationsDialog
o Class System / Device interface • Konsentrasi pada protokol apa yang harus didefinisikan. Tidak terkonsentrasi pada bagaimana protokol diimplementasikan
Lingkungan class boundary tergantung pada: o User interface o Komunikasi protokol
23
5/12/2013
Class Entity Memodelkan konsep utama dari sistem Biasanya informasi model bersifat persistent Berisi logika untuk pemecahan masalah sistem Tidak tergantung pada lingkungan Dapat digunakan banyak use case
Class Control Mengontrol dan mengkoordinasikan perilaku use case Mendelegasikan pekerjaan dari use case ke class o Class control memberitahu class lain untuk mengerjakan sesuatu dan tidak pernah mengerjakan sesuatu kecuali untuk atas perintah class control
Class contol merupakan gabungan class boundary dan entity Meskipun, terdapat satu class control untuk satu use case Tergantung pada use case dan lingkungan Contoh: o ViolationsController
24
5/12/2013
Mencari Analisis Class 1. Untuk setiap use case: a. Tentukan deskripsi use case b. Identifikasi class boundary, entity an kontrol c. Untuk setiap class identifikasikan • •
Atribut Relasi
2. Validasi model, ulangi proses jika perlu
Identifikasi Class Class mungkin tersembunyi dalam: o o o o o
Dokumen kebutuhan Model use case Permintaan stakeholder Domain permasalahan Dokumentasi proyek
25
5/12/2013
Identifikasi Class Class boundary o Setidaknya terdapat satu class boundary untuk setiap aktor / pasangan use case
Class control o Biasanya, terdapat satu class control per use case o Jika ada dua class contol yang sejenis, use case yang berhubungan harus digabung • Contoh: “manage traffic report” menggantikan use case “edit/add/remove traffic report”
Class Entity o Diidentifikasi dengan menggunakan kata benda dan frasa kata benda untuk menggambarkan permasalahan, dokumen kebutuhan, use case dan dokumentasi lain o Kata benda berupa: • • • •
Obyek Deskripsi state obyek (atribut) Aktor Bukan salah satunya
Eliminasi Kata Benda Class duplikat o Perbedaan hanya pada nama : “System”, “TVRS”...
Class yang tidak berhubungan o Class yang tidak mengerjakan sesuatu dalam sistem (solusi): “police headquarters”...
Atribut / operasi o Beberapa kata benda yang sejenis dimodelkan sebagai atribut atau operasi daripada sebagai class: “ID”, “name”, “Report Lookup”...
Aturan o Beberapa kata benda sebagai obyek yang terlibat hubungan daripada sebagai class • Contoh: “Teaching Assistant” dan “Student” mungkin mempunyai aturan yang berbeda dari class “Person”
Kata benda abstrak o “identifikasi ide atau kuantitas yang tidak ada secara fisik” o Jarang berhubungan dengan analisa class, tetapi sebagai atribut: “Request”, “Opinion”
26
5/12/2013
Mencari Atribut Class Properti atau karakteristik dari class yang diidentifikasi o Informasi yang ada pada class o Atomik
Kata benda yang tidak menjadi class o Informasi berupa nilai yang penting untuk solusi o Informasi yang secara unik dimiliki oleh obyek
Mencari Relasi Asosiasi biasanya berhubungan dengan kata kerja atau frasa kata kerja o o o o o
Lokasi fisik: next to, above, inside... Aksi langsung: drives, creates, manages... komunikasi: talks to, listens, notifies... Kepemilikan: has, part of, belongs to, contained... Lainnya: works for, married to, studies at...
Eliminasi asosiasi yang tidak berhubungan dengan permasalahan / solusi Asosiasi biasanya ditemukan menggunakan diagram interaksi
27
5/12/2013
Contoh: Analisa Class TVRS Daftar kata benda dari kebutuhan dan use case TVRS (Kandidat class entity):
Traffic report
Offender
ID
Supervisor
Policeman
Password
Report lookup
Vehicle number
Police headquarters
Confirmation
License number
Shutdown
TVRS
Fault
Date
Offender Details Form
Traffic policeman
Speed
Traffic report addition
Commander
Traffic Violation
System
Violation
Clerk
Eliminasi Class Duplikat
Traffic report
Offender
ID
Supervisor
Policeman
Password
Report lookup
Vehicle number
Police headquarters
Confirmation
License number
Shutdown
TVRS
Fault
Date
Offender Details Form
Traffic policeman
Speed
Traffic report addition
Commander
Traffic Violation
System
Violation
Clerk
28
5/12/2013
Eliminasi Class Duplikat
Traffic report
Offender
ID
Supervisor
Policeman
Password
Report lookup
Vehicle number
Police headquarters
Confirmation
License number
Shutdown
TVRS
Fault
Date
Offender Details Form
Traffic policeman
Speed
Traffic report addition
Commander
Traffic Violation
System
Violation
Clerk
Clerk dan Supervisor Diganti dengan User
Eliminasi Class yang tidak Relevan
Traffic report
Offender
ID
User
Policeman
Password
Report lookup
Vehicle number
Police headquarters
Confirmation
License number
Shutdown
TVRS
Date
Offender Details Form
Traffic policeman
Traffic report addition
Commander
Speed
Violation
29
5/12/2013
Eliminasi Class yang tidak Relevan
Traffic report
Offender
ID
User
Policeman
Password
Report lookup
Vehicle number
Police headquarters
Confirmation
License number
Shutdown
TVRS
Date
Offender Details Form
Traffic policeman
Traffic report addition
Commander
Speed
Violation
Eliminasi atribut dan operasi
Traffic report
Offender
ID
User
Policeman
Password
Report lookup
Vehicle number
Confirmation
License number
Shutdown Date
TVRS Offender Details Form
Traffic policeman
Traffic report addition
Commander
Speed
Violation
30
5/12/2013
Eliminasi atribut dan operasi
Traffic report
Offender
ID
User
Policeman
Password
Report lookup
Vehicle number
Confirmation
License number
Shutdown Date
TVRS Offender Details Form
Traffic policeman
Traffic report addition
Commander
Speed
Violation
Eliminasi kata benda abstrak
Traffic report
Offender
User
Policeman
Confirmation TVRS Offender Details Form
Traffic policeman
Violation
31
5/12/2013
Eliminasi kata benda abstrak
Traffic report
Offender
User
Policeman
Confirmation TVRS Offender Details Form
Traffic policeman
Violation
Class Entity (partial) Traffic report User TVRS Offender Details Form Offender Policeman Traffic policeman Violation …
Daftar yang tersisa biasanya berisi class yang bukan class entiti, seperti “Offender Details Form”. Class boundary dan control lebih mudah ditemukan dengan analisa use case secara langsung.
32
5/12/2013
Class Boundary ReportDetailsForm PolicemanDetailsForm LookupReportForm ConfirmationDialog OffendersDBProxy PolicemanDBProxy ...
database proxy merupakan API level tinggi dan membungkus komunikasi dan bahasa pemrograman secara detail
Class Control AddReportController RemoveReportController LookupReportController EditReportController AuthenticationController ...
33
5/12/2013
Analisis Diagram Class I
TrafficReport
TrafficPoliceman 1 issues *
id : long description : String occuredAt : Date
Offender 1..*
1
name : String id : long
reports of 1..* Policeman Violation
id : long name : String rank : int
id : long description : String
<>
Analisis Diagram Class II
ReportDetailsForm <>
1 1
Of f endersDBProxy <> Of f endersDB
EditReportController <> Clerk Conf irmationDialog <>
1
1 1
PolicemanDBProxy <> PolicemenDB
Traf f icReport
Violation
Of fender
Traff icPoliceman
34
5/12/2013
Diagram Class
Agenda Apakah class itu? Relationship dan Multiplicity Contoh diagram class Package Contoh package Diagram obyek
35
5/12/2013
Apakah Class itu? Class adalah gambaran himpunan obyek yang menggunakan atribut, operasi, metode, relasi dan semantik yang sama Class direpresentasi secara grafis sebagai kotak untuk o Nama Class, atribut Private dan operasi Public o Properti, responsibiliti, aturan, sejarah modifikasi dll.
Desainer mengembangkan Class sebagai himpunan ruang yang berkembang sepanjang waktu untuk meningkatkan fungsionalitas dan fitur
Relationship dan Multiplicity Relationship: o Asosiasi – antar 2 class jika anggota satu class harus mengetahui anggota class lain untuk melakukan pekerjaan o Agregasi – asosiasi dimana satu class milik sekumpulan class o Generalisasi – hubungan pewarisan yang menyatakan satu ckass adalah superclass dari class lain
Multiplicity o 0..1 nol atau satu anggota o n . . m mengindikasikan anggota n ke m o 0..* atau * tidak ada batasan jumlah anggota (termasuk tanpa anggota) o 1 tepat satu anggota o 1..* paling sedikit satu anggota
36
5/12/2013
Contoh Diagram Class Window {abstract, author=Joe, status=tested} +size: Area = (100,100) #visibility: Boolean = invisible +default-size: Rectangle #max-size: Rectangle -xptr: XWindow +display() +hide() +create() -attachXWindow(xsin:Xwindow)
Providing Specialized Views Window
What do +, #, - Represent?
+size: Area = (100,100) +default-size: Rectangle
+ Public # Protected - Private
+display() +hide() +create()
Generalisasi dan Asosiasi Contoh: Supermarket *
Item
GroceryOrder 1 Customer
NonPItem
DeliItem
PerishItem
DiaryItem
ProduceItem
* 1 contains DeliOrder
37
5/12/2013
Contoh: Supermarket secara Detail
Contoh: Manajemen Survey
38
5/12/2013
Diagram Class HCA: Gambaran Statis Rx RxNum PhysicanName PatientName MedicationName Dosage NumDoses NumRefills RefillsLeft WriteRx
n
n n
PharmacyDB AddRxRec FillRx RefillRx DeleteRxRec
1
1 PatientRec PatientName PatientSSN DateOfBirth Insurer PolicyNum etc... UpdateRec etc...
MedicalHistory MedicationHistory KnownAllergies Immunizations PregnancyData etc...
1 Medication MedicationName ConflictInfo CheckForConflict UpdateConflictInfo
Diagram Class Menangkap daftar sistem
39
5/12/2013
Diagram Class
Package pada Diagram Class Diagram class komplek bersifat abstrak Package terdiri dari beberapa class dan diasosiasikan dan dihubungkan satu sama lain o Panah Dependency dalam bentuk garis putus-putus o Mengindikasikan bahwa satu Package bergantung pada Package lain o Perubahan tujuan (kepala panah) menyebabkan perubahan asal (ekor panah)
Mendukung konsep arsitektur software yang belum sempurna Tetapi, tidak ada pemeriksaan/pelaksanaan dependency dalam diagram berikutnya
40
5/12/2013
Contoh Package
Diagram Obyek Transisi dari desain ke implementasi Mengindikasikan anggota dan hubungan obyek Dibangun selama desain dan analisa Tujuan: o Ilustrasi struktur data/obyek o Menentukan snapshot
Dikembangkan oleh analis, desainer dan implementer
41
5/12/2013
Perilaku Antar muka jejak Diagram Class
Diagram Anggota
Diagram Obyek Menangkap Instance dan Link
42
5/12/2013
Latihan
Buatlah diagram class untuk rental VCD
Sequence Diagram
43
5/12/2013
Agenda Diagram Interaksi Apakah Sequence Diagram? Obyek Message Kontrol Informasi Contoh
Diagram Interaksi Beberapa diagram untuk menggambarkan perilaku dinamis pada sistem berorientasi obyek o Beberapa pesan ditukas pada beberapa obyek dalam konteks untuk mencapai tujuan
Biasanya digunakan pada model dimana use case direalisasikan ke dalam urutan pesan antar obyek
44
5/12/2013
Diagram Interaksi Tujuan diagram interaksi adalah: o Model interaksi antar obyek o Menuntun untuk mengerti bagaimana sistem (use case) bekerja o Verifikasi bahwa diskripsi use case didukung oleh class yang ada o Identifikasi tanggung jawab/operasi dan menyatakannya dalam class
Diagram Interaksi Pada UML, ada 2 macam o Collaboration Diagram • Penekanan pada struktur relasi antar obyek
o Sequence Diagram • Penekanan pada pertukaran pesan pada obyek
45
5/12/2013
Apakah Sequence Diagram itu? Menggambarkan bagaimana obyek saling berinteraksi Penekanan pada urutan waktu pesan Dapat memodelkan secara sederhana urutan kerja, pencabangan, iterasi, rekursi dan konkurensi
Contoh Sequence Diagram
member: LibraryMember
book:Book
:Book Copy
borrow(book) ok = mayBorrow()
[ok] borrow(member) setTaken(member)
46
5/12/2013
Contoh Sequence Diagram X-Axis (objects) member: LibraryMember
:Book Copy
book:Book
borrow(book)
Y-Axis (time)
Life Line
ok = mayBorrow()
message [ok] borrow(member)
setTaken(member)
Object
Activation box
condition
Obyek Penamaan Obyek: o Sintak : [NamaAnggota][:NamaClass] o Nama class konsisten dengan diagram class (class yang sama) o Berisi nama anggota jika obyek diacu atau jika beberapa obyek dengan tipe yang sama ada dalam diagram
myBirthdy :Date
Garis putus-putus (Life-Line) menyatakan obyek digunakan selama interaksi
47
5/12/2013
Pesan Interaksi antara 2 obyek dibentuk sebagai pesan yang dikiriim dari satu obyek ke obyek yang lain o Biasanya diimplementasikan dengan operasi pemanggilan yang sederhana o Dapat berupa pesan aktual dikirim melalui beberapa mekanisme komunikasi, baik melalui network atau secara internal dalam komputer • Komunikasi antar proses (pengiriman sinyal, …) • Remote Procedure Call (RMI, CORBA, …)
Jika obyek obj1 mengirim pesan ke obyek lain obj2 , harus terdapat hubungan antar dua obyek tersebut o o o o
Ketergantungan struktural obj2 adalah daerah global dari obj1 obj2 adalah daerah lokal dari obj1 (method argument) obj1 dan obj2 adalah obyek yang sama
Pesan Pesan digambarkan sebagai panah antara life line dari 2 obyek o Pemanggilan diri sendiri diperbolehkan o Waktu yang dibutuhkan oleh obyek penerima untuk memproses pesan dinyatakan dengan activation-box.
Pesan dilabeli secara minimal dengan nama pesan o Argumen dan informasi kontrol (kondisi, iterasi) kemungkinan dimasukkan o Lebih dipilih menggunakan diskripsi tekstual bila aktor adalah sumber atau target pesan
48
5/12/2013
Tipe Pesan
Synchronous Asynchronous Simple Create Destroy
<> <<destroy>>
Pesan Synchronous Sekumpulan aliran kontrol, biasanya diimplementasikan sebagai pemanggilan operasi o Rutin yang menangani pesan dilengkapi sebelum pemanggil melakukan eksekusi
:A
:B doYouUnderstand()
Pemanggil di-blok
yes
return (opsional)
49
5/12/2013
Nilai Return Digunakan opsional dengan panah putus-putus yang dilabeli nilai return o Jangan memodelkan nilai return jika ternyata dikembalikan, misalnya getTotal() o Modelkan nilai return hanya jika diperlukan untuk diacu oleh tempat yang lain, misalnya sebagai parameter yang dilewatkan ke pesan yang lain o Lebih dipilih memodelkan nilai return sebagai bagian dari method invocation, seperti ok = isValid()
Pembuatan Obyek Obyek dapat membuat obyek lain melalui pesan <>
Preferred :A
:B <>
:A <>
:B
Constructor
50
5/12/2013
Penghapusan Obyek Obyek dapat menghapus obyek lain melalui pesan <<destroy>> o Obyek dapat menghapus dirinya sendiri o Menghindari memodelkan panghapusan obyek kecuali manajemen memori kritis
:A
:B <<destroy>>
Pesan Asynchronous Digunakan untuk memodelkan sistem yang konkuren Pemanggil harus menunggu pesan ditangani sebelum melanjutkan eksekusi o Seperti jika menghasilkan nilai segera
Obyek aktif mempunyai thread eksekusi dan dapat menginisialisasi aktifitas kontrol Pesan asynchronous dapat o Membuat thread baru (daftar aktifasi baru) o Membuat obyek baru o Komunikasi dengan thread yang sedang berjalan
51
5/12/2013
Informasi Kontrol Kondisi o Sintak: ‘[‘ ekspresi ’]’ label-pesan o Pesan dikirim hanya jika kondisi benar o Contoh: [ok] borrow(member)
Iterasi o Sintak: * [ ‘[‘ ekspresi ‘]’ ] label-pesan o Dikirim beberapa kali sehingga dimungkinkan untuk obyek penerima lebih banyak
Informasi Kontrol Contoh iterasi:
:CompoundShape draw()
*draw()
:Shape
:Driver
:Bus
*[until full] insert()
Sintak dari ekspresi bukan standart
52
5/12/2013
Informasi Kontrol Mekanisme kontrol dari sequence diagram hanya cukup untuk pemodelan alternatif sederhana o Perlu membuat beberapa diagram untuk skenario pemodelan yang komplek o Jangan menggunakan sequence diagram untuk pemodelan algoritma secara detail (lebih baik menggunakan diagram aktifitas, pseudo-code atau diagram state –chart
Sequence Diagram
53
5/12/2013
Sequence Diagram
Example 1 :Violations Dialog
:Violations Controller
:Violations DBProxy
Clerk lookup
Lookup Traffic Violation
viewButton() id=getID()
Bisa mengguna kan pseudo code
getViolation(id)
display(v)
v
<>
v:Traffic Violation
DB di-query dan hasilnya dikembalikan sebagai obyek
54
5/12/2013
Example 2 Printing A Document Obyek Aktif
:PrintServer
:Queue
:Printer Proxy
Client print(doc,client)
Repeated forever with 1 min interludes [job] done(status)
enqueue(job)
job=dequeue() [job]print(job.doc) status
Sequence Diagram HCA
55
5/12/2013
Sequence Diagram HCA Rx
Medication
Medical History
Pharmacy DB
EnterRxInfo CheckForConflict GetMedHistory PerformConflictChk ConflictResults RxRecord
Sequence Diagram Supermarket
56
5/12/2013
Sequence Diagram Supermarket
Latihan
Buatlah sequence diagram untuk rental VCD
57
5/12/2013
Collaboration Diagram
Collaboration Diagram Collaboration Diagram: dibentuk dari perspektif interaksi antar obyek Menangkap perilaku dinamis (berorientasi pesan)
58
5/12/2013
Collaboration Diagram
Collaboration Diagram Menyampaikan info yg sama seperti Sequence Diagram tetapi fokus ke aturan obyek daripada pesan Aturan obyek sebagai kotak Misalnya aHotel, aChain, dll.
59
5/12/2013
Collaboration Diagram
Diagram State
60
5/12/2013
Diagram State Tipe finite state machine. Berguna untuk pemodelan suatu class yang perilakunya tergantung pada state tertentu o Memodelkan state obyek dan bagaimana berpindah dari satu state ke state yang lain selama daur hidup o Menggambarkan perilaku obyek melewati beberapa use case
Suatu class mempunyai diagram state sendiri jika mempunyai perilaku dinamis yang menarik o Pengontrol o Perangkat (contoh: modem – dialing, sending, receiving) o Obyek yang mengubah state atau tugas (contoh: buku dapat dipinjam, terlambat atau berada di perpustakaan)
Contoh Titik awal
State Event
Titik akhir
State
makan lahir Idle
mati
Transisi
terbang
61
5/12/2013
Event “Event adalah sesuatu yang terjadi yang menyebabkan beberapa aksi” Stimuli yang berpengaruh pada obyek o Dasarnya komunikasi antar obyek
Memindahkan obyek dari satu state ke state lain Berhubungan dengan o Operasi o Modifikasi nilai atribut o Melintasi periode waktu
Event asal tidak ditentukan
State
Semua komponen opsional
Nama Variabel State Aktivitas & Aksi
62
5/12/2013
Variabel State Nilai gabungan semua atribut dan hubungan dilakukan oleh obyek yang merupakan identitas obyek Mengabaikan atribut yang tidak berpengaruh pada perilaku obyek Kesatuan nilai yang mempunyai respon yang sama ke event Atribut sementara (yang membangkitkan event) kemungkinan juga ditentukan
Aktifitas & Aksi Aktifitas o o o o o
Memakan waktu Dihubungkan hanya dengan state Mungkin di-interupsi oleh beberapa event Dapat dimodelkan sebagai diagram state berulang Contoh: • Download file • Mencetak
Aksi o o o o
Mempunyai durasi pendek Diasosiasikan dengan state dan transisi Atomik Contoh: • • • •
Terdengar bunyi beep Menampilkan menu Mengeset flag Pembakaran event
63
5/12/2013
Aktifitas & Aksi Aksi dapat ditimbulkan pada entry dan exit ke state o entry/ entry-action o exit/ exit-action
Aktifitas mungkin dinyatakan o do/ activity
Event internal mungkin dinyatakan (Internal events may be indicated (termasuk transisi berarah ke dirinya sendiri) o internal-event/ action
Aktifitas & Aksi Contoh:
Login terdaftar = true Aksi/aktifitas harus ditentukan sebagai tanda operasi yang mungkin
entry/tipe “login” exit/login(nama user, password) do/mendapatkan nama user do/mendapatkan password help/menampilkan help Event internal
64
5/12/2013
Transisi Transisi adalah hubungan antara state asal dan state target yang menyatakan bahwa obyek mempunyai state asal akan mengubah state ke state target, jika kumpulan event tertentu terjadi dan/atau kumpulan kondisi terpenuhi Transisi diri sendiri adalah transisi dimana state asal dan target sama Aksi terdapat pada transisi Transisi dari state yang sama harus mutually exclusive. Sebaliknya, state obyek tidak terdifinisi
Transisi Direpresentasikan dengan garis berarah antara dua state Sintak transisi (umum): o event (atribut) [ kondisi ] / aksi ^ kirim-ketentuan o Semua komponen opsional
Semantik transisi: o JIKA event terjadi DAN semua kondisi tertentu benar MAKA tempatkan aksi tertentu dan ubahlah state obyek ke state target o Jika event pencetus tidak ditentukan, transisi akan dicoba jika semua state aktifitas lengkap
65
5/12/2013
Transisi o Kirim-ketentuan digunakan untuk mengirimkan pesan (event) ke obyek lain (atau ke obyek yang sama) • Sintak: ekspresi-tujuan ‘.’ nama-event-tujuan(argumen) • Contoh:
bangun
mengantuk() ^ Temanku.berkatal(“diam”)
tertidur
Contoh Idle - Puppy do/ Menggonggong()
duduk(bidang)
Duduk Puppy do/ MenjilatBagTubuhRandom
Lebih baik lagi menambahkan kondisi hatihati[!Lapar]
[Lapar]
Puppy makan entry/ TemukanDot(Induk)
do/ mengisap(dot) Boot do/ run bios
Memulai OS do/ buka OS
Memulai aplikasi do/ buka aplikasi
66
5/12/2013
Sub-state Sub-state adalah state yang berisi state lain (state komposit) Sub-state dapat diulang ke semua level Contoh: State komposit Sub state
makan
menggigit
mengunyah
menelan
Transisi ke/dari state komposit Jika transisi adalah ke state komposit, diagram state berulang harus mempunyai state inisial Jika transisi ke adalah ke sub-state, aksi masukan sub-state dieksekusi setelah semua aksi masukan dari state komposit dieksekusi Jika transisi adalah dari sub-state ke aksi keluar sub-state dieksekusi dilanjutkan dengan aksi keluar dari state komposit Transisi dari state komposit bisa terjadi dari sembarang sub-state dan harus didahulukan daripada transisi dari sub-state saat itu
67
5/12/2013
Sub-state ‘atau’ sub-state (biasanya disebut ‘cluster’) o Sub-state dapat terjadi hanya satu kali Mengemudi Mesin A
Maju
Mundur
Mesin B
Perbincangan Telepon
Mesin B bekerja setelah mesin A
Sub-state ‘dan’ sub-state (biasanya disebut ‘set’) o Beberapa su-state berada secara simultan Mengemudi Maju
Kec Rendah
Mundur
Kec Tinggi
68
5/12/2013
History indicator Digunakan untuk menyimpan state internal o Biasanya digunakan bila ingin mengembalikan state yang ter-interupsi
Memasak Menyiapkan bahan-bahan Menyiapkan dapur Menyiapkan makanan H
Menjawab telepon
Statechart Diagram Menangkap perilaku dinamis (Event-Oriented)
69
5/12/2013
Statechart Diagram
Statechart Diagram Ilustrasi gabungan state Berupa Fork dan Join
70
5/12/2013
Statechart Diagram HCA
pulse detected Finding Pulse
pulse not detected
Cuff Deflating (2mmHg/sec) Finding pulse Systolic Pulse detected Found
emergecy shut-off
Cuff Inflating
pulse not detected
start Idle cuff deflated
Diastolic Found
Cuff Deflating (max deflation rate)
Statechart Diagram
71
5/12/2013
Diagram Aktifitas Aktifitas adalah eksekusi task yang berupa aktifitas fisik atau eksekusi kode. Diagram Aktifitas menggambarkan aliran perilaku pada system. Diagram aktifitas menunjukkan urutan aktifitas yang dilakukan. Seperti flow chart, diagram aktifitas mendukung perilaku kondisional, dengan tambahan dukungan untuk eksekusi parallel. Start : setiap activity diagram mempunyai satu start (letaknya diatas) pada saat memulai aksi End : setiap activity diagram mempunyai satu finish pada saat mengakhiri aksi.
Activity : aktifitas yang dihubungkan oleh transisi. Transisi berupa panah berarah yang mengalir dari aktifitas sebelumnya ke aktifitas berikutnya. Biasanya diikuti label tekstual yang opsional dalam bentuk [guard] label Guard adalah ekspresi kondisional apabila transisi terjadi maka bernilai true. Label juga opsional dan bentuknya bebas.
Diagram Aktifitas Untuk menunjukkan perilaku kondisional menggunakan cabang dan gabungan. Untuk menunjukkan perilaku parallel gunakan fork dan join. Fork mempunyai satu transisi yang masuk dan beberapa transisi yang keluar, semua akan dilakukan. Join merepresentasikan akhir dari perilaku parallel dan mempunyai beberapa transisi yang masuk dan hanya satu yang keluar.
72
5/12/2013
Struktur Activity Diagram
Activity Diagram Menangkap perilaku dinamis (orientasi aktivitas)
73
5/12/2013
Activity Diagram
Activity Diagram HCA Waiting for Heart Signal
timeout
irregular beat
Heartbeat
Heart Signal
Waiting for Resp. Signal
Breath Trigger Local Alarm
Trigger Remote Alarm
Resp Signal
Alarm Reset
74
5/12/2013
Implementation / Diagram Fisik Garis besar sistem dapat dilihat pada implementation diagram. Ada dua tipe implementation diagram yaitu deployment diagram dan component diagram. Deployment diagram menunjukkan relasi fisik antara hardware dan software dalam sistem. Component diagram menampilkan komponen software dari sistem dan bagaimana hubungannya dengan komponen software lain. Deployment dan component diagram dapat dikombinasikan dalam implementation diagram. Kombinasi ini akan menggabungkan fitur dari kedua diagram ini ke dalam satu diagram.
Deployment Diagram Deployment diagram terdiri dari titik dan koneksi. Titik biasanya merepresentasikan bagian hardware dari sistem. Koneksi menggambarkan bagian komunikasi yang digunakan oleh hardware untuk berkomunikasi dan biasanya menggunakan suatu metode misalnya TCP/IP.
75
5/12/2013
Component Diagram Component diagram berisi komponen dan dependensi. Component merepresentasikan paket fisik dari modul pengkodean. Dependensi antar komponen menunjukkan bagaimana perubahan dilakukan pada satu komponen berakibat pada komponen lain dalam system. Dependency pada component diagram direpresentasikan dengan garis putus-putus antara dua atau lebih komponen. Component diagram juga menunjukkan interface yang digunakan untuk berkomunikasi antar komponen.
Kombinasi Deployment dan Component diagram
76
5/12/2013
Contoh Kombinasi Deployment dan Component diagram
77