Anda di halaman 1dari 59

1

0lll00 N000ll l8080 0lll00 N000ll l8080 0lll00 N000ll l8080 0lll00 N000ll l8080
Arna FarIza
|emIsahkan konstruksI software
o AnalIsa kebutuhan
o ArsItektur software
o SpesIfIkasI (HIghLevel/Early desIgn)
o 0esaIn detaIl
o mplementasI dan testIng
o |aIntenance dan evolusI
SetIap fase desaIn/development dIpIsahkan
l0f8 8ll88 08 0088l
2
0esaIn
o |engembangkan solusI logIka
o |ewakIlI satu cara untuk penyelesaIan permasalahan
o |enentukan sIstem 8ACA|ANA yang memenuhI APA!
0esaIn DD
o |enekankan pada menentukan obyek dan komponen software
logIka
o EvaluasI desaIn DD alternatIf
o |enuju ImplementasI untuk pemecahan kelayakan
PerIngatan: A+0 adalah proses yang berkelanjutan
Kesuksesan dan verIfIkasI A+0 menuju ke rekayasa
software yang dapat dIukur
l0f8 8ll88 08 0088l
k080 N000lll8lk8 k0M00
Komonen terdIrI darI satu atau lebIh class (atau
komponen laIn) dan dImaksudkan untuk mendukung
unIt fungsIonal yang dIbangun
Class dapat dIgunakan pada banyak komonen
Class yang dIgunakan dalam banyak komponen
menggunakan semantk yany sama dalam semua
konteks
TerdIrI darI:
o 0esaIn berbasIs komponen
o SalIng ketergantungan antar komponen
o Pandangan alternatIf darI InteraksI komponen
o Kerangka komponen reusable
3
Selama 15+ tahun terakhIr, beberapa pemaIn dalam
DD0
o 8ooch: The ooch hethod
- "DbjectDrIented 0esIgn wIth ApplIcatIon," 8enjamIn/CummIngs,
1991.
o Fumbaugh: DhT
- "DbjectDrIented |odelIng and 0esIgn,"
PrentIceHall, 1991.
o |eyer: CIIentlServer Contract Approach
- "DbjectDrIented Software ConstructIon,"
PrentIceHall, 1988.
o Jacobson: Use-Cases and Software Engrg.
- "DbjectDrIented Software EngIneerIng: A Use Case 0rIven
Approach," AddIsonWesley, 1992.
$0(8f80 0088l 00
PemaIn dalam DD0 lanjutan
o Coleman: The FusIon hethod
- "DbjectDrIented 0evelopment The FusIon |ethod,"
PrentIceHall, 1994.
o LIeberherr: AdaptIve DD Software
- "AdaptIve DD Software: The 0emeter |ethod wIth PropagatIon
Patterns," PWS, 1996.
o Camma: 0esIgn Patterns
- "0esIgn Patterns: Elements of Feusable DbjectDrIented
Software," AddIsonWesley, 1995.
o 8ooch and Fumbaugh: UhL Predecessor
- "UnIfIed |ethod for DbjectDrIented 0evelopment," FatIonal
TF, 1995
$0(8f80 0088l 00
4
Unjed Modelny Lanyuaye (UML) adalah desaIn
dan analIsa DD yang ekuIvalen dengan Java
Penyeragaman 8ooch, Fumbaugh, dan Jacobson
|aterI
o Apakah U|L Itu:
o Tujuh tujuan U|L
o Pemodelan konstruksI dan dIagram
- 0Iagram UseCase
- 0Iagram Class
- 0Iagram PerIlaku
- 0Iagram nteraksI
- 0Iagram mplementasI
k0k08l8 0Nl
U|L adalah bahasa untuk spesIfIkasI, vIsualIsasI,
konstruksI dan dokumentasI pembuatan
software
8k80 0Nl ll0F
5
Penyeragaman 8ooch dan Fumbaugh 1994
7ersI 0.8 dIkeluarkan Dktober 1995
var Jacobson dan Dbjectory dIsatukan menjadI
FatIonal pada Fall 1995
U|L 2.0 - versI resmI dalam fase upgradIng
U|L 1.5 - versI sebelumnya Lengkap
$0(8f80 0Nl
80f080l88l f8ll0kl0f $l8l0M
Konseptual Fisik
Logical View
End-user
Fungsi
Implementation View
Programmer
Manajemen software
Process View
Performansi
Skalabilitas
Throughput
Integrator Sistem
Deployment View
Topologi Sistem
Delivery, instalasi
Komunikasi
Rekayasa Sistem
Use Case View
6
F0M008l8 0Nl
Booch method OMT
Unified Method 0.8 OOPSLA 95
OOSE
Other
Methods
UML 0.9
Web - June 96
public
feedback
Final submission to OMG, Sep 97
First submission to OMG, Jan 97
UML 1.1
OMG Acceptance, Nov 1997
UML 1.3
UML 1.0 UML partners
UML 2.0!
UML 1.5
Meyer
Before and after
conditions
Harel
Statecharts
Gamma, et al
Frameworks and patterns,
HP Fusion
Operation descriptions and
message numbering
Embley
Singleton classes and
high-level view
Wirfs-Brock
Responsibilities
Odell
Classification
Shlaer - Mellor
Object lifecycles
Rumbaugh
OMT
Booch
Booch method
Jacobson
OOSE
k0lfl008l 0Nl
7
0Iagram UseCase
0Iagram Class dan Dbyek
0Iagram PerIlaku
o 0Iagram Statechart
o 0Iagram ActIvIty
0Iagram nteraksI
o Sequence 0Iagram
o CollaboratIon 0Iagram
0Iagram mplementasI
o Component 0Iagram
o 0eployment 0Iagram
F0M0808l0l8f8M F0M000l8 0Nl
kl88lllk88l 00f0888fk8 k880llll88l1lM0ll0
80008 8l8f8 N000l 08 0l8f8M
Use Case
Diagrams
Use Case
Diagrams
Use Case
Diagrams
Scenario
Diagrams
Scenario
Diagrams
Collaboration
Diagrams
State
Diagrams
State
Diagrams
Component
Diagrams
Component
Diagrams
Component
Diagrams
Deployment
Diagrams
State
Diagrams
State
Diagrams
Object
Diagrams
Scenario
Diagrams
Scenario
Diagrams
Statechart
Diagrams
Use Case
Diagrams
Use Case
Diagrams
Sequence
Diagrams
State
Diagrams
State
Diagrams
Class
Diagrams
Activity
Diagrams
Model
8
Pemodelan Use Case
Agenda
Apakah use case Itu:
Keuntungan Use Case
Use Cases vs. dokumen kebutuhan
|embangun model Use Case
o System
o Aktor
o Use Case
o FelasI Use Case
Contoh
9
Apakah Use Case itu?
0Ibuat oleh var Jacobson (1994)
"use case adalah urutan transaksI darI aktor
pada sIstem"
|enggambarkan APA yang sIstem ("8lack 8ox")
lakukan darI perspektIf user
Sekumpulan skenarIo yang menjadI satu untuk
tujuan user
|odel use case 8UKAN teknIk pemodelan
berorIentasI obyek yang berjalan Inherent
Keuntungan Use Case
|enangkap kebutuhan fungsIonal darI perspektIf user
|emberI dIskrIpsI jelas dan konsIsten darI apa yang
seharusnya dIlakukan sIstem
0asar membentuk tes sIstem
|enyedIakan kemampuan untuk melacak kebutuhan
fungsIonal ke dalam class aktual dan operasI dalam
sIstem
8erfungsI sebagaI unIt estImasI
UnIt terkecIl darI delIvery
o SetIap Increment yang dIrencanakan dan dIdelIver
dIgambarkan dalam use case yang akan dIdelIver secara
Increment
10
Use Case vs. Kebutuhan
0okumen 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 |embantuk struktur manual user
o Perangkat membangun class
Diagram Use Case pada UML
|odel use case dIgambarkan dalam U|L sebagaI
satu atau lebIh dIagram use case
Terdapat 4 elemen utama:
o SIstem
o Aktor yang berInteraksI pada sIstem
o Use case atau servIs yang tersedIa pada sIstem
o PeIasI antar elemen
11
Sistem
8agIan darI pemodelan use case, merupakan defInIsI batasan
pengembangan sIstem
SIstem tIdak perlu harus berupa software
|endefInIsIkan batasan sIstem
o 8agIan mana yang otomatIs dan bagIan mana yang manual:
o 8agIan mana yang dIlakukan oleh sIstem laIn:
- Keseluruhan solusI yang dItampIlkan dImasukkan dalam batasan sIstem
- 0apat 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 - |engInputkan data
o SupervIsor - mengIjInkan modIfIkasI/menghapus data
o |anager - mengIjInkan melIhat statIstIk
Satu user dapat berlaku lebIh darI satu aturan
Aktor tIdak harus manusIa
o 8Isa berupa sIstem eksternal yang berhubungan dengan
pengembangan sIstem
Aktor mempunyaI nama yang menyatakan aturan
Use case dIlakukan oleh aktor
12
Icon Aktor
Clerk
<< Actor >>
Clerk
Relasi antar Aktor
8Ila beberapa aktor adalah bagIan darI aturan, juga berlaku aturan
yang dIgeneralIsasI, dIgambarkan sebagaI generalIsasI
PerIlaku aturan general dIgambarkan dalam aktor superclass
Aktor spesIalIsasI mewarIsI perIlaku superclass dan menambahkan
beberapa cara
FelasI antar aktor tIdak selaku dIperlukan
Clerk Supervisor Manager
13
Identifikasi Aktor
SIapa yang merupakan fungsI utama dalam sIstem:
SIapa yang memerlukan maIntaIn, admInIstrasI dan
menjalankan sIstem:
0engan software/hardware laIn yang mana sIstem
perlu berInteraksI:
o SIstem komputer laIn
o AplIkasI laIn darI komputer yang sama (mIsalnya
clIent/server)
Use Case
|enyatakan 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
|enggambarkan dImana level user dan respon sIstem
o 8ebas darI teknologI dan mekanIsme detaIl, terutama yang
berhubungan dengan antar muka user
14
Menemukan Use Case
Untuk setIap aktor yang sebelumnya
dIdefInIsIkan:
o ServIs apa yang dIbutuhkan aktor darI sIstem
- |embaca, membuat, menghapus, memodIfIkasI,
menyImpan InformasI
o Event apa yang dIlakukan aktor:
o 0apatkan pekerjaan harIan darI aktor
dIsederhanakan:
- TIdak terkonsentrasI hanya pada sIstem saat InI
Icon Use Case
EllIps yang berIsI nama use case
0Itempatkan dalam batasan sIstem yang dImodelkan
8erhubungan setIdaknya satu aktor dengan komunIkasI
asosIasI
o KecualI untuk use case spesIal/tambahan
Add Traffic Violation
Traffic Violations Report system
Clerk
15
Relasi Use Case
FelasI IncIude relatIonshIp
o 8Ila 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 8erlaku 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
FelasI CeneraIIsasI
o 0Igunakan bIla sejumlah use case merupakan sub bagIan, tetapI
masIngmasIh mempunyaI perbedaan yang tIdak mungkIn
dIsatukan dalam satu use case
o CeneralIsasI dan spesIalIsasI use case harus mempunyaI tujuan
yang sama
o Use case spesIalIsasI menyatakan skenarIo alternatIf darI use
case generalIsasI
o CeneralIsasI use case harus lengkap
o Use case spesIalIsasI dapat berhubungan dengan aktor baru
o Use case spesIalIsasI menambahkan kondIsI awal dan akhIr
(semantIk AN0)
Specialized Generalized
16
Relasi Use Case
FelasI Extend
o |IrIp 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
<< extend >>
(5: confirmation)
New Offender
Add T.R.
(5: confirmation)
Rekomendasi Alur Kerja
1. dentIfIkasI aktor (dan relasInya jIka dIperlukan)
2. Untuk setIap aktor, IdentIfIkasI use case sampaI
tIdak ada use case yang tertInggal
a. Tentukan tujuan aktor
b. Putuskan kegIatan utama untuk mendapatkan tujuan
c. 8uat use case untuk setIap tujuan
- Aktor/tujuan baru kemungkInan dItemukan
d. 7alIdasI/pembetulan use case yang ada
J. Cambarkan dIagram use case
17
Contoh Traffic Violation Report System (TVRS)
Remove T.V
Lookup T.V
Replace Offender
New Offender
Edit T.V.
(8)
Add T.V.
(9)
Clerk
Supervisor
Traffic Violations Report System
<<extend>>
<<extend>>
<<include>>
OffendersDB
PolicemenDB
00l00. $00fM8fk0l
HTSS HTSS
Scan Items
Ring Order
Buy Items
Customer
Cashier
Catalog Catalog
Check Status
Place Order
Fill Order
Estb. Credit
Customer
Sales Person
Supervisor
HTSS: System View
Catalog: Class View
18
00l00. $00fM8fk0l
00l00. N88(0M0 $0f90
InstItusI survey yang meIakukanlmengatur survey pubIIk. SeteIah data
mentah dIkumpuIkan, staf senIor menambah header survey ke
database, staf senIor atau junIor menambah pertanyaan ke daIam
survey, berupa mengeIompokkan pertanyaan atau menambah katagorI
pertanyaan. Pertanyaan yang sensItIf terbatas ke staf senIor
19
$k08fl0 080 0880
808ll0 08f0 ll08ll0 I80l Nfll0 8K
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
+
00l00. 808ll0 08f0
20
l8ll08
8uatlah dIagram use case untuk rental 7C0
8ll88 0l888
21
008
Tujuan
Apakah analIsa class Itu:
TIpe analIsa class
o Class 8oundary
o Class EntIty
o Class Control
|encarI analIsa class
Contoh
10(08
dentIfIkasI 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 nonfungsIonal tIdak dImasukkan
o KonsentrasI pada mencarI atrIbut dan relasI class
22
8k80 8ll8l8 0l888 ll0F
TeknIk mencarI class menggunakan tIga
perspektIf sIstem
o 8atasan antara sIstem dan aktor
o nformasI yang dIgunakan sIstem
o LogIka kontrol darI sIstem
8k80 8ll8l8 0l888 ll0F
<<boundary>>
<<entity>>
<<control>>
=
=
=
Stereotype yang
mendefinisikan
elemen model
baru dalam
hubungan
dengan elemen
model lain
23
1l0 8ll8l8 0l888
<<boundary>>
<<boundary>>
<<entity>>
<<control>>
<<entity>>
<<boundary>>
Actor1
Actor2
Model interaksi
antara sistem dan
lingkungan
Menyimpan dan
mengatur
informasi dalam
sistem
Koordinasi
perilaku use
case
0l888 80008f
|emodelkan InteraksI antara sIstem dan pekerjaan
yang ada dI dalamnya
o Clase user Interface
- 8erkonsentrasI pada InformasI apa yang dIberIkan ke user
- TIdak terkonsentrasI pada user Interface secara detaIl
- Contoh
- 7IolatIons0Ialog
o Class System / 0evIce 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
24
0l888 llll
|emodelkan konsep utama darI sIstem
8Iasanya InformasI model bersIfat persIstent
8erIsI logIka untuk pemecahan masalah sIstem
TIdak tergantung pada lIngkungan
0apat dIgunakan banyak use case
0l888 00lf0l
|engontrol dan mengkoordInasIkan perIlaku use case
|endelegasIkan 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
o Controls and coordInates the behavIor of a use case
Class contol merupakan gabungan class boundary dan
entIty
|eskIpun, terdapat satu class control untuk satu use
case
Tergantung pada use case dan lIngkungan
Contoh:
o 7IolatIonsController
25
N008fl 8ll8l8 0l888
1. Untuk setIap use case:
a. Tentukan deskrIpsI use case
b. dentIfIkasI class boundary, entIty an kontrol
c. Untuk setIap class IdentIfIkasIkan
- AtrIbut
- FelasI
2. 7alIdasI model, ulangI proses jIka perlu
l00llllk88l 0l888
Class mungkIn tersembunyI dalam:
o 0okumen kebutuhan
o |odel use case
o PermIntaan stakeholder
o 0omaIn permasalahan
o 0okumentasI proyek
26
l00llllk88l 0l888
Class boundary
o SetIdaknya terdapat satu class boundary untuk setIap aktor /
pasangan use case
Class control
o 8Iasanya, 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 0IIdentIfIkasI dengan menggunakan kata benda dan frasa kata
benda untuk menggambarkan permasalahan, dokumen
kebutuhan, use case dan dokumentasI laIn
o Kata benda berupa:
- Dbyek
- 0eskrIpsI state obyek (atrIbut)
- Aktor
- 8ukan salah satunya
lllMl88l k8l8 8008
Class duplIkat
o Perbedaan hanya pada nama : "System", "T7FS"...
Class yang tIdak berhubungan
o Class yang tIdak mengerjakan sesuatu dalam sIstem (solusI): "polIce
headquarters"...
AtrIbut / operasI
o 8eberapa kata benda yang sejenIs dImodelkan sebagaI atrIbut atau
operasI darIpada sebagaI class: "0", "name", "Feport Lookup"...
Aturan
o 8eberapa 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:
"Fequest", "DpInIon"
27
N008fl lfl00l 0l888
PropertI atau karakterIstIk darI class yang
dIIdentIfIkasI
o nformasI yang ada pada class
o AtomIk
Kata benda yang tIdak menjadI class
o nformasI berupa nIlaI yang pentIng untuk solusI
o nformasI yang secara unIk dImIlIkI oleh obyek
N008fl 80l88l
AsosIasI bIasanya berhubungan dengan kata kerja
atau frasa kata kerja
o LokasI fIsIk: next to, above, InsIde...
o AksI langsung: drIves, creates, manages...
o komunIkasI: talks to, lIstens, notIfIes...
o KepemIlIkan: has, part of, belongs to, contaIned...
o LaInnya: works for, marrIed to, studIes at...
ElImInasI asosIasI yang tIdak berhubungan dengan
permasalahan / solusI
AsosIasI bIasanya dItemukan menggunakan dIagram
InteraksI
28
00l00. 8ll88 0l888 18$
0aftar kata benda darI kebutuhan dan use case
T7FS (KandIdat class entIty):
Traffic report
Supervisor
Report lookup
Confirmation
TVRS
Offender Details Form
Traffic report addition
System
Offender
Policeman
Vehicle number
License number
Fault
Traffic policeman
Commander
Violation
ID
Password
Police headquarters
Shutdown
Date
Speed
Traffic Violation
Clerk
lllMl88l 0l888 00llk8l
Traffic report
Supervisor
Report lookup
Confirmation
TVRS
Offender Details Form
Traffic report addition
System
Offender
Policeman
Vehicle number
License number
Fault
Traffic policeman
Commander
Violation
ID
Password
Police headquarters
Shutdown
Date
Speed
Traffic Violation
Clerk
29
lllMl88l 0l888 00llk8l
Traffic report
Supervisor
Report lookup
Confirmation
TVRS
Offender Details Form
Traffic report addition
System
Offender
Policeman
Vehicle number
License number
Fault
Traffic policeman
Commander
Violation
ID
Password
Police headquarters
Shutdown
Date
Speed
Traffic Violation
Clerk
Clerk dan
Supervisor
Diganti
dengan User
lllMl88l 0l888 8 ll08k 80l098
Traffic report
User
Report lookup
Confirmation
TVRS
Offender Details Form
Traffic report addition
Offender
Policeman
Vehicle number
License number
Traffic policeman
Commander
Violation
ID
Password
Police headquarters
Shutdown
Date
Speed
30
lllMl88l 0l888 8 ll08k 80l098
Traffic report
User
Report lookup
Confirmation
TVRS
Offender Details Form
Traffic report addition
Offender
Policeman
Vehicle number
License number
Traffic policeman
Commander
Violation
ID
Password
Police headquarters
Shutdown
Date
Speed
lllMl88l 8lfl00l 08 00f88l
Traffic report
User
Report lookup
Confirmation
TVRS
Offender Details Form
Traffic report addition
Offender
Policeman
Vehicle number
License number
Traffic policeman
Commander
Violation
ID
Password
Shutdown
Date
Speed
31
lllMl88l 8lfl00l 08 00f88l
Traffic report
User
Report lookup
Confirmation
TVRS
Offender Details Form
Traffic report addition
Offender
Policeman
Vehicle number
License number
Traffic policeman
Commander
Violation
ID
Password
Shutdown
Date
Speed
lllMl88l k8l8 0008 808lf8k
Traffic report
User
Confirmation
TVRS
Offender Details Form
Offender
Policeman
Traffic policeman
Violation
32
lllMl88l k8l8 0008 808lf8k
Traffic report
User
Confirmation
TVRS
Offender Details Form
Offender
Policeman
Traffic policeman
Violation
TraffIc report
User
T7FS
Dffender 0etaIls Form
Dffender
PolIceman
TraffIc polIceman
7IolatIon
.
0l888 llll I8fll8ll
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.
33
0l888 80008f
Feport0etaIlsForm
PolIceman0etaIlsForm
LookupFeportForm
ConfIrmatIon0Ialog
Dffenders08Proxy
PolIceman08Proxy
...
database proxy
merupakan API
level tinggi dan
membungkus
komunikasi dan
bahasa
pemrograman
secara detail
0l888 00lf0l
AddFeportController
FemoveFeportController
LookupFeportController
EdItFeportController
AuthentIcatIonController
...
34
8ll8l8 0l8f8M 0l888 l
id : long
name : String
rank : int
Policeman
<<abstract>>
TrafficPoliceman
id : long
description : String
TrafficReport
id : long
description : String
Violation
name : String
id : long
Offender
1..* 1
reports of
1..*
issues 1 *
occuredAt : Date
8ll8l8 0l8f8M 0l888 ll
Violation
EditReportController
<<control>>
Traf f icReport
Of f ender Traf f icPoliceman
Clerk
ReportDetailsForm
<<boundary>>
Conf irmationDialog
<<boundary>>
PolicemanDBProxy
<<boundary>>
Of f endersDBProxy
<<boundary>>
Of f endersDB
PolicemenDB
1
1 1
1
1
35
0l8f8M 0l888
008
Apakah class Itu:
FelatIonshIp dan |ultIplIcIty
Contoh dIagram class
Package
Contoh package
0Iagram obyek
36
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.
0esaIner mengembangkan Class sebagaI hImpunan
ruang yang berkembang sepanjang waktu untuk
menIngkatkan fungsIonalItas dan fItur
8k80 0l888 ll0F
FelatIonshIp:
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 CeneralIsasI - hubungan pewarIsan yang menyatakan satu ckass
adalah superclass darI class laIn
|ultIplIcIty
o 0..1 nol atau satu anggota
o n . . m mengIndIkasIkan anggota n ke m
o 0..* ctcu * tIdak ada batasan jumlah anggota (termasuk tanpa
anggota)
o 1 tepat satu anggota
o 1..* palIng sedIkIt satu anggota
80l8ll080l 08 N0lllll0ll
37
00l00 0l8f8M 0l888
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)
What do +, #, What do +, #, - - Represent? Represent?
+ Public + Public
# Protected # Protected
- - Private Private
Window
+size: Area = (100,100)
+default-size: Rectangle
+display()
+hide()
+create()
Providing Providing
Specialized Views Specialized Views
600f8ll888l 08 808l88l
00l00. $00fM8fk0l
Item
NonPItem PerishItem
DeliItem ProduceItem DiaryItem
Customer
GroceryOrder
1
*
DeliOrder
1
*
contains
38
00l00. $00fM8fk0l 8008f8 00l8ll
00l00. N88(0M0 $0f90
39
0l8f8M 0l888 80. 68M08f8 $l8ll8
PharmacyDB
AddRxRec
FillRx
RefillRx
DeleteRxRec
Medication
MedicationName
ConflictInfo
CheckForConflict
UpdateConflictInfo
1
Rx
RxNum
PhysicanName
PatientName
MedicationName
Dosage
NumDoses
NumRefills
RefillsLeft
WriteRx
PatientRec
PatientName
PatientSSN
DateOfBirth
Insurer
PolicyNum
etc...
UpdateRec
etc...
MedicalHistory
MedicationHistory
KnownAllergies
Immunizations
PregnancyData
etc...
1 n
n
n
1
0l8f8M 0l888
|enangkap
daftar sIstem
40
0l8f8M 0l888
F80k80 808 0l8f8M 0l888
0Iagram class komplek bersIfat abstrak
Package terdIrI darI beberapa class dan
dIasosIasIkan dan dIhubungkan satu sama laIn
o Panah 0ependency dalam bentuk garIs putusputus
o |engIndIkasIkan bahwa satu Package bergantung
pada Package laIn
o Perubahan tujuan (kepala panah) menyebabkan
perubahan asal (ekor panah)
|endukung konsep arsItektur software yang
belum sempurna
TetapI, tIdak ada pemerIksaan/pelaksanaan
dependency dalam dIagram berIkutnya
41
00l00 F80k80
0l8f8M 000k
TransIsI darI desaIn ke ImplementasI
|engIndIkasIkan anggota dan hubungan obyek
0Ibangun selama desaIn dan analIsa
Tujuan:
o lustrasI struktur data/obyek
o |enentukan snapshot
0Ikembangkan oleh analIs, desaIner dan
Implementer
42
F0fll8k0 l8f M0k8 (0(8k
0Iagram
Class
0Iagram
Anggota
0l8f8M 000k
|enangkap nstance dan LInk
43
l8ll08
8uatlah dIagram class untuk rental 7C0
$0@0000 0l8f8M
44
008
0Iagram nteraksI
Apakah Sequence 0Iagram:
Dbyek
|essage
Kontrol nformasI
Contoh
0l8f8M ll0f8k8l
8eberapa dIagram untuk menggambarkan
perlcku dncms pada sIstem berorIentasI
obyek
o 8eberapa pesan dItukas pada beberapa obyek dalam
konteks untuk mencapaI tujuan
8Iasanya dIgunakan pada model dImana use
case dIrealIsasIkan ke dalam urutan pesan antar
obyek
45
0l8f8M ll0f8k8l
Tujuan dIagram InteraksI adalah:
o |odel InteraksI antar obyek
o |enuntun untuk mengertI bagaImana sIstem (use
case) bekerja
o 7erIfIkasI bahwa dIskrIpsI use case dIdukung oleh
class yang ada
o dentIfIkasI tanggung jawab/operasI dan
menyatakannya dalam class
0l8f8M ll0f8k8l
Pada U|L, ada 2 macam
o CollaboratIon 0Iagram
- Penekanan pada struktur relasI antar obyek
o Sequence 0Iagram
- Penekanan pada pertukaran pesan pada obyek
46
8k80 $0@0000 0l8f8M ll0F
|enggambarkan bagaImana obyek salIng
berInteraksI
Penekanan pada urutan waktu pesan
0apat memodelkan secara sederhana urutan
kerja, pencabangan, IterasI, rekursI dan
konkurensI
00l00 $0@0000 0l8f8M
member:
LibraryMember
book:Book
:Book
Copy
borrow(book)
ok = mayBorrow()
[ok] borrow(member)
setTaken(member)
47
00l00 $0@0000 0l8f8M
member:
LibraryMember
book:Book
:Book
Copy
borrow(book)
ok = mayBorrow()
[ok] borrow(member)
setTaken(member)
X-Axis (objects)
Y
-
A
x
i
s

(
t
i
m
e
)
Object
Life
Line
message
Activation
box
condition
000k
Penamaan Dbyek:
o SIntak : [NcmcAnyyotc][:NcmcClcss]
o Nama class konsIsten dengan dIagram class (class
yang sama)
o 8erIsI nama anggota jIka obyek dIacu atau jIka
beberapa obyek dengan tIpe yang sama ada dalam
dIagram
CarIs putusputus (L]eLne) menyatakan
obyek dIgunakan selama InteraksI
myBirthdy
:Date
48
F088
nteraksI antara 2 obyek dIbentuk sebagaI pesan yang
dIkIrIIm darI satu obyek ke obyek yang laIn
o 8Iasanya dIImplementasIkan dengan operasI pemanggIlan yang
sederhana
o 0apat berupa pesan aktual dIkIrIm melaluI beberapa
mekanIsme komunIkasI, baIk melaluI network atau secara
Internal dalam komputer
- KomunIkasI antar proses (pengIrIman sInyal, .)
- Femote Procedure Call (F|, CDF8A, .)
JIka obyek obj
1
mengIrIm pesan ke obyek laIn obj
2
,
harus terdapat hubungan antar dua obyek tersebut
o Ketergantungan struktural
o obj
2
adalah daerah global darI obj
1
o obj
2
adalah daerah lokal darI obj
1
(method argument)
o obj
1
dan obj
2
adalah obyek yang sama
F088
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 cctvctonbox.
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
49
1l0 F088
Synchronous
Asynchronous
SImple
Create
0estroy
<<create>>
<<destroy>>
F088 $00f0008
Sekumpulan alIran kontrol, bIasanya
dIImplementasIkan sebagaI pemanggIlan operasI
o FutIn yang menanganI pesan dIlengkapI sebelum
pemanggIl melakukan eksekusI
:A :B
doYouUnderstand()
Pemanggil
di-blok
return
(opsional)
yes
50
8ll8l 80l0f
0Igunakan opsIonal dengan panah putusputus
yang dIlabelI nIlaI return
o Jangan memodelkan nIlaI return jIka ternyata
dIkembalIkan, mIsalnya getTotal()
o |odelkan 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()
F0M008l8 000k
Dbyek dapat membuat obyek laIn melaluI pesan
<<create>>
:A :B
<<create>>
Constructor
:A
<<create>>
:B
Preferred
51
F008088 000k
Dbyek dapat menghapus obyek laIn melaluI pesan
<<destroy>>
o Dbyek dapat menghapus dIrInya sendIrI
o |enghIndarI memodelkan panghapusan obyek kecualI
manajemen memorI krItIs
:A :B
<<destroy>>
F088 800f0008
0Igunakan untuk memodelkan sIstem yang konkuren
PemanggIl harus menunggu pesan dItanganI sebelum
melanjutkan eksekusI
o SepertI jIka menghasIlkan nIlaI segera
Dbyek ckt] mempunyaI thread eksekusI dan dapat
mengInIsIalIsasI aktIfItas kontrol
Pesan asynchronous dapat
o |embuat thread baru (daftar aktIfasI baru)
o |embuat obyek baru
o KomunIkasI dengan thread yang sedang berjalan
52
ll0fM88l k0lf0l
KondIsI
o SIntak: '[' ekspresI ']' labelpesan
o Pesan dIkIrIm hanya jIka kondIsI benar
o Contoh:
terasI
o SIntak: * [ '[' ekspresI ']' ] labelpesan
o 0IkIrIm beberapa kalI sehIngga dImungkInkan
untuk obyek penerIma lebIh banyak
[ok] borrow(member)
ll0fM88l k0lf0l
Contoh IterasI:
:Driver
*[until full] insert()
:Bus
Sintak dari
ekspresi bukan
standart
:CompoundShape :Shape
*draw()
draw()
53
ll0fM88l k0lf0l
|ekanIsme 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 dcyrcm ckt]tcs, pseudocode atau
dcyrcm stcte -chcrt
$0@0000 0l8f8M
54
$0@0000 0l8f8M
getViolation(id)
lK8Ml0 1
Clerk
:Violations
Dialog
:Violations
Controller
:Violations
DBProxy
lookup
viewButton()
id=getID()
v:Traffic
Violation
display(v)
<<create>>
v
Lookup
Traffic
Violation
Bisa
mengguna
kan
pseudo
code
DB di-query
dan hasilnya
dikembalikan
sebagai obyek
55
print(doc,client)
lK8Ml0 Z
Client
:PrintServer :Queue
:Printer
Proxy
enqueue(job)
status
Printing A
Document
job=dequeue()
[job]print(job.doc)
[job] done(status)
Repeated
forever with 1
min interludes
Obyek
Aktif
$0@0000 0l8f8M 80
56
Pharmacy
DB
Rx Medication Medical
History
EnterRxInfo
CheckForConflict
GetMedHistory
ConflictResults
PerformConflictChk
RxRecord
$0@0000 0l8f8M 80
$0@0000 0l8f8M $00fM8fk0l
57
$0@0000 0l8f8M $00fM8fk0l
00ll800f8ll0 0l8f8M
58
00ll800f8ll0 0l8f8M
CollaboratIon 0Iagram: dIbentuk darI perspektIf
InteraksI antar obyek
|enangkap perIlaku dInamIs (berorIentasI
pesan)
00ll800f8ll0 0l8f8M
59
00ll800f8ll0 0l8f8M
|enyampaIkan Info yg sama
sepertI Sequence 0Iagram tetapI
fokus ke aturan obyek darIpada
pesan
Aturan obyek sebagaI kotak
|Isalnya aHotel, aChaIn, dll.
00ll800f8ll0 0l8f8M

Anda mungkin juga menyukai