merancang sistem dengan uml
TRANSCRIPT
-
8/11/2019 Merancang Sistem Dengan UML
1/15
Merancang Sistem Dengan UML: Mulai Dari Mana?
19 FEBRUARI 20132 !"ME#$AR
10 %&tes
Sala' satu (ertan)aan )ang (aling sering sa)a temu*an +ari (ara ma'asis,a a+ala' a(a sa-a ste(.ste( )ang 'arus +item(u'
+alam merancang sistem /er/asis UML? Sa)a /iasan)a a*an mem(er/ai*i (ertan)aan ini *arena UML (a+a +asarn)a 'an)a
*um(ulan +iagram atau te*ni* isualisasi UML ti+a* men+i*te lang*a'.lang*a' (engem/angan sistem Lalu a(a )ang 'arus
+ila*u*an +alam merancang se/ua' sistem?
Sa)a )a*in (ara ma'asis,a tela' mem(er&le' mata *ulia' (engem/angan sistem in&rmasi se/elumn)a4 ta(i *ena(a mere*a
/ertan)a +emi*ian +isaat mere*a 'arus merancang sistem )ang n)ata 5misaln)a untu* s*ri(si6? Sala' satu (en)e/a/n)aa+ala' analisa 7 (erancangan terlalu te&ritis se'ingga ti+a* men+u*ung im(lementasi8(em/uatan *&+e (r&gram
Dari /e/era(a /u*u analisa 7 (erancangan )ang sa)a /aca4 /u*u Use Case Driven Object Modeling with UML: Theory and
Practicea+ala' sala' satu /u*u )ang s(esial +an sangat mem/antu Bu*an 'an)a +ileng*a(i +engan 'um&r4 teta(i /u*u ini
mem/eri*an met&+e analisa 7 (erancangan )ang sangant /erguna saat +itera(*an +alam (em/uatan *&+e (r&gram Bu*u
)ang mema*ai met&+e ICONIX Processini +itulis &le' anal)st )ang memili*i latar /ela*ang (r&grammer
Sa)a ta'u /a',a sangat sulit merang*um se/ua' /u*u 3; 'alaman +alam se/ua' arti*el /l&g4 ta(i sa)a ingin menun-u**an
/a',a +iagram UML 'asil analisa 7 (erancangan /u*anla' se*e+ar /asa /asi )ang +i'asil*an anal)st Dengan met&+e )ang
sala'4 anal)st *era( terli'at ti+a* /erguna +i mata +eel&(er Met&+e )ang sala' -uga men)e/a/*an ma'asis,a le/i' senang
mem/uat *&+e (r&gram terle/i' +a'ulu4 /aru mela*u*an reerse engineering untu* meng'asil*an +iagram UML Dengan
*ata lain4 sistem +i/uat tan(a analisas 7 (erancangan4 sementara +iagram UML 'an)a (r&+u* sam(ingan )ang menam/a'
*ete/alan s*ri(si tan(a ungsi )ang sangat /erarti
-
8/11/2019 Merancang Sistem Dengan UML
2/15
-
8/11/2019 Merancang Sistem Dengan UML
3/15
!alimat )ang +i(a*ai +alam use case 'arus /eru(a )ali%at a)ti"4 misaln)a C(engguna men.*li* t&m/&l L&gin*ali%at
asi"se(erti CSistem men)e+ia*an t&m/&l L&gin a+ala' ciri.ciri "#nctional re$#ire%ent+an /u*an /agian +ari use case
Use case 'arus mengan+ung nama +i do%ain %odel Dengan +emi*ian4 sa)a /isa meng'u/ung*an class.class )ang a*an
+irancang +engan use case Setia( 'alaman8la)ar )ang +ireerensi*an +i +alam use case se/ai*n)a +i/eri nama )ang
*&nsisten4 misaln)a Halaman Tambah Sparepartatau Screen TambahSparepart
Se/ua' use case 'am(ir miri( se(erti +&*umentasi sistem !ita (erlu mens(esii*asi*an se(erti a(a cara (a*ai sistem
5termasu* res(&n sistem6 se/elum se/ua' sistem +i/uat Beri*ut ini a+ala' c&nt&' use case +iagram /er+asar*an"#nctional
re$#ire%ent+i lang*a' 1 +an mema*ai do%ain %odel+ari lang*a' 2:
Use =ase Diagram
Se/ua' use case selain memili*i s#nny'day scenario4 se/ai*n)a -uga memili*i rainy'day scenario5a(a )ang a*an ter-a+i
/ila sesuatu sala'?6 atau alternati Se/agai c&nt&'4 /eri*ut ini c&nt&' use case scenari& untu* use case +iagram +i atas:
Membuat WorkOrder baru
Basic Scenario
Front Desk memilih Motor di Sreen !istMotor dan men-klik tombol untuk membuat "ork#rder.
Sistem akan membuat sebuah "ork#rder baru dengan status sedang antri.
Alternate Scenario
Motor belum terdaftar- Front Desk terlebih dahulu menambah Motor baru dengan
http://thesolidsnake.files.wordpress.com/2013/02/gambar2.png -
8/11/2019 Merancang Sistem Dengan UML
4/15
men-klik tombol untuk menambah Motor baru sebelum mengerjakan langkah
yang ada di $asi Senario.
Motor sudah memiliki WorkOrder yang sedang antri- Sistem akan menampilkan pesan kesalahan.
%&atatan' pada saat membuat use ase ini, terlihat bahwa dibutuhkan use ase menambah Motor.
(gar ringkas, use ase tersebut akan diabaikan.)
Mengubah Status WorkOrder menjadi sedang dikerjakan oleh Mekanik
Basic Scenario
Front Desk memilih sebuah "ork#rder di Sreen !ist"ork#rder dan memilih menu untuk
menandakan bahwa "orkorder tersebut sedang dikerjakan.
Sistem akan menampilkan Sreen *engerjaan"ork#rder. Front Desk memilih nama Mekanik
yang mengerjakan "ork#rder dan men-klik tombol untuk menyimpan perubahan.
Sistem akan mengubah status "ork#rder menjadi sedang dikerjakan
serta menatat tanggal + jam mulai dikerjakan.
Alternate Scenario
Status WorkOrder yang dipilih bukan sedang antri- Sistem akan menampilkan pesan kesalahan.
Menambah Sparepart yang dipakai selama pengerjaan WorkOrder
Basic Scenario
Front Desk memilih sebuah "ork#rder di Sreen !ist"ork#rder dan memilih menu untuk
menambah Sparepart di "ork#rder. Sistem akan menampilkan Sreen ambahSparepart yang
berisi daftar Sparepart untuk "ork#rder yang dipilih. Disini Front Desk akan mengisi
data temSparepart dengan memilih Sparepart, memasukkan jumlah Sparepart, lalu men-klik
tombol ambah temSparepart. Sistem akan memperbaharui daftar temSparepart di layar.
Front Desk men-klik tombol Simpan untuk selesai. Sistem akan menyimpan perubahan Sparepart
pada "ork#rder terpilih.
Alternate Scenario
Terdapat lebih dari satu jenis Sparepart yang perlu ditambahkan- Front Desk kembali
menambah data temSparepart. Setelah semua temSparepart selesai dimasukkan, Front Desk
-
8/11/2019 Merancang Sistem Dengan UML
5/15
men-klik tombol Simpan di Sreen ambahSparepart. Sistem akan menyimpan perubahan.
Status WorkOrder yang dipilih bukan sedang dikerjakan- Sistem akan menampilkan pesan
kesalahan.
%&atatan' pada saat membuat use ase ini, terlihat bahwa ada yang kurang pada domain model,
yaitu temSparepart. Segera update domain model erlihat juga bahwa dibutuhkan sebuah
metode untuk menghapus Sparepart dan meng-edit jumlah Sparepart terpakai.
(gar ringkas, use ase tersebut akan diabaikan.)
Mengubah status WorkOrder menjadi selesai dikerjakan
Basic Scenario
Front Desk memilih sebuah "ork#rder di Sreen !ist"ork#rder, lalu memilih menu untuk mengubah
status "ork#rder menjadi selesai dikerjakan. Sistem akan menampilkan dialog konfirmasi.
$ila kasir menkonfirmasi, Sistem akan mengubah status "ork#rder tersebut menjadi selesai
dikerjakan dan menatat jam selesai dikerjakan. Front Desk kemudian mengerjakan
use ase /Menetak rinian "ork#rder termasuk biaya/.
Alternate Scenario
Status WorkOrder bukan sedang dikerjakan- Sistem akan menampilkan pesan kesalahan.
Mencetak rincian WorkOrder termasuk biaya
Basic Scenario
Front Desk memilih tombol untuk menetak. Sistem kemudian menetak detail "ork#rder
ke printer.
Detail "ork#rder yang dietak meliputi tanggal, plat nomor motor, jam mulai dikerjakan,
jam selesai dikerjakan, nama mekanik yang mengerjakan, rinian seluruh Sparepart yang dipakai
0jumlah + harga eeran tertinggi Sparepart1, ongkos servis dan total yang harus dibayar.
Alternate Scenario
Status WorkOrder bukan selesai dikerjakan- Sistem akan menampilkan pesan kesalahan.
%&atatan' use ase ini dipisahkan dari use ase /Mengubah status "ork#rder menjadi
selesai dikerjakan/ karena dianggap nanti akan ada use ase lain yang dapat
-
8/11/2019 Merancang Sistem Dengan UML
6/15
menetak rinian "ork#rder tetapi tidak ditampilkan disini.)
Re@uirements Reie,
a+a saat mela*u*an analisa +alam mem/uat use case4 sa)a menemu*an 'al )ang masi' *urang Misaln)a4 sa)a (erlu
menam/a'*an class temSparepart(a+a do%ain %odel Selain itu4 (a+a /e/era(a situasi4 sa)a /a'*an /isa
menemu*an a+a use case )ang masi' *urang4 misaln)a use case CTambah Motor baruC
a+a lang*a' ini4 sa)a *em/ali memasti*an /a',a use case 7 do%ain %odel tela' +i/uat +engan /ai* elanggan -uga
(erlu +ili/at*an untu* memasti*an /a',a use case 5behavioral re$#ire%ent6 7 "#nctional re$#ire%entsesuai +engan )ang
+i'ara(*an Ingatla' selalu /a',a /agian ter(enting +ari se/ua' sistem /u*anla' se/era(a *erendesign pattern)ang
+itera(*an +i class +iagram4 teta(i se-au' mana sistem terse/ut mem/eri*an (r&it /agi (enggunan)a 5memenu'i
re@uirements6
Mela*u*an R&/ustness Anal)sis
Analisis a+ala' memi*ir*an Ca(a 5,'at64 sementara (erancangan a+ala' memi*ir*an C/agaimana 5'&,6 Sala' satu alasan
ma'asis,a sering menga/ai*an UML +an langsung ter-un *e c&+ing a+ala' cela' )ang cu*u( -au' antara analisis +an
(erancangan se'ingga mere*a memili' merancang secara e*s(erimental +engan langsung c&+ing Umumn)a mere*a
/era*'ir +alam -e/a*an si*lus (eru/a'an Cc&+ing terus menerus 5guna mem(er/ai*i rancangan6 a+a'al4 (eru/a'an
Cc&+ing a+ala' sesuatu )ang sangat mema*an ,a*tu +an u(a)a /ila +i/an+ing*an +engan mengu/a' +iagram UML
+ob#stness analysis+i(a*ai untu* men-em/atani analisis +an (erancangan +ob#stness analysis'arus +itera(*an (a+a
setia( use case )ang a+a a+a Enter(rise Arc'itect4 rob#stness analysis+a(at +igam/ar*an +engan
mengguna*an ,nalysis Diagra%s -ter+a(at +i *ateg&ri ./tended6
Beri*ut ini a+ala' c&nt&' 'asil rob#stness analysisuntu* use case )ang a+a:
Anal)sis Diagram Untu* Use =ase Mem/uat &r*"r+er Baru
http://thesolidsnake.files.wordpress.com/2013/02/gambar3.png -
8/11/2019 Merancang Sistem Dengan UML
7/15
Anal)sis Diagram Untu* Use =ase Mengu/a' Status &r*"r+er Men-a+i Se+ang DI*er-a*an "le' Me*ani*
Menam/a' S(are(art )ang +i(a*ai selama (enger-aan &r*"r+er
http://thesolidsnake.files.wordpress.com/2013/02/gambar5.pnghttp://thesolidsnake.files.wordpress.com/2013/02/gambar4.png -
8/11/2019 Merancang Sistem Dengan UML
8/15
Anal)sis Diagram Untu* Use =ase Mengu/a' Status &r*"r+er Men-a+i Selesai Di*er-a*an
Anal)sis Diagram Untu* Use =ase Menceta* Rincian &r*"r+er $ermasu* Bia)a
Sema*in +etail rob#stness analysis4 ma*a sema*in /an)a* 'al )ang *urang +ari use case +an do%ain %odel)ang a*an
+itemu*an u( a+a a,aln)a sa)a ragu *ena(a sa)a 'arus menam/a' controlCmengisi -umla'4 Cmengisi nama4 +s/ untu*
http://thesolidsnake.files.wordpress.com/2013/02/gambar7.pnghttp://thesolidsnake.files.wordpress.com/2013/02/gambar6.png -
8/11/2019 Merancang Sistem Dengan UML
9/15
setia( iel+ )ang a+a $a(i sa)a cu*u( ter*e-ut saat menemu*an +ari 'al se(ele terse/ut4 sa)a menemu*an /e/era(a
alternate scenari& )ang *urang
Se/agai c&nt&'4 sa)a menemu*an /a',a sa)a lu(a menam/a'*an alternate scenari& C-umla' S(are(art ti+a* mencu*u(i
saat mela*u*an analisa r&/ustness (a+a use case CMenam/a' S(are(art )ang +i(a*ai selama (enger-aan &r*"r+er
Sema*in ce(at sa)a men)a+ari a+a )ang *urang4 sema*in /ai* I+ealn)a a+ala' se/elum c&+ing +ila*u*an +ob#stness
analysisa+ala' sala' satu sen-ata )ang am(u' untu* itu
Sa)a -uga menemu*an /a',a (a+a use case CMengu/a' Status &r*"r+er men-a+i se+ang +i*er-a*an &le' Me*ani*4 sa)a
lu(a menulis*an /a',a Fr&nt Des* &icer -uga (erlu memili' 2enis*ekerjaan Sa)a (erlu segera mengu/a' te*s use
case terse/ut
Selain itu4 ter*a+ang sa)a -uga +a(at menemu*an a+a class )ang *urang (a+a +&main m&+el Misaln)a4 +ari
'asilrob#tsness analysis4 terli'at /a',a sa)a (erlu menam/a'*an class Mekanik+i +&main m&+el
a+a ta'a( ini4 sa)a -uga (erlu mengisi +&main m&+el +engan atri/ut4 se(erti )ang terli'at (a+a gam/ar /eri*ut ini:
D&main M&+el ang $ela' Memili*i Atri/ut
G reliminar) Design Reie,
!em/ali lagi seluru' tim mela*u*an reie, +an memasti*an /a',a semua )ang tela' +i/uat sesuai +engan re@uirement Ini
a+ala' lang*a' tera*'ir +imana (elanggan 5stac*'&l+er6 terli/at Hal ini *arena lang*a' /eri*utn)a meli/at*an (r&ses
tec'incal A*an /er/a'a)a /ila mem/iar*an (elanggan )ang n&n.tec'nical atau semi-tec'nical mengam/il *e(utusan untu*
'al.'al )ang /ersiat te*nis 5misaln)a rame,&r* atau +ata/ase )ang +i(a*ai6 alau(un +emi*ian4 (elanggan /&le'
mem/eri*an *&mentar mengenai tam(ilan
Setela' lang*a' ini4 ti+a* a+a lagi (eru/a'an re@uirement Lalu /agaimana /ila (elanggan ingin menam/a' re@uirement?
Buat se/ua' rilis atau milest&ne /aru +engan *em/ali lagi *e lang*a' (ertama +i atas
Menentu*an $ec'nical Arc'itecture
$entu*an rame,&r* a(a )ang a*an +i(a*ai Se/agai c&nt&'4 sa)a a*an mem/uat se/ua' a(li*asi +es*t&( +engan
-
8/11/2019 Merancang Sistem Dengan UML
10/15
-
8/11/2019 Merancang Sistem Dengan UML
11/15
Se@uence Diagram Untu* Mem/uat &r*"r+er Baru
Se@uence Diagram Untu* Mengu/a' Status &r*"r+er Men-a+i Se+ang Di*er-a*an "le' Me*ani*
http://thesolidsnake.files.wordpress.com/2013/02/gambar11.pnghttp://thesolidsnake.files.wordpress.com/2013/02/gambar10.png -
8/11/2019 Merancang Sistem Dengan UML
12/15
Se@uence Diagram Untu* Menam/a' S(are(art ang Di(a*ai Selama enger-aan &r*"r+er
Se@uence Diagram Untu* Mengu/a' Status &r*"r+erMen-a+i Selesai Di*er-a*an
http://thesolidsnake.files.wordpress.com/2013/02/gambar13.pnghttp://thesolidsnake.files.wordpress.com/2013/02/gambar12.png -
8/11/2019 Merancang Sistem Dengan UML
13/15
Se@uence Diagram Untu* Menceta* Rincian &r*"r+er $ermasu* Bia)a
r&ses analisa )ang /erulang *ali lagi.lagi mem/antu sa)a menemu*an *e*urangan Sa)a selama ini tern)ata lu(a /a',a
(a+a use case CMenam/a' S(are(art )ang +i(a*ai selaman (enger-aan &r*"r+er4 sistem 'arus mengurangi -umla'
st&* Sparepart/ila (engguna men.*li* t&m/&l sim(an "le' se/a/ itu4 sa)a segera mem(er/a'arui te*s use case
Selain itu4 sa)a -uga menemu*an se/ua' *esala'an )ang sa)a /uat +ari a,al +an ti+a* ter+ete*si 'ingga se*arang4 )ang
/er'u/ungan +engan class #ngkosServis
-
8/11/2019 Merancang Sistem Dengan UML
14/15
!ong ongkos 3 5uery.getSingle7esult01
$erli'at a+a )ang ti+a* /eres Bu*an*a' "" 'arus intuitie 7 /isa +i(a*ai +engan mu+a'? !ena(a ti/a2 'arus mela*u*an
@uer) secara e*s(lisit untu* mem(er&le' se/ua' &ng*&s seris? Selain itu4 class #ngkosServisti+a* (erna' +i(a*ai
secara langsung +i *&+e (r&gram4 'an)a +i(a*ai +i @uer) sa-a
"le' se/a/ itu4 sa)a mem(er/ai*in)a +engan mem/uang class #ngkosServis4 +an menam/a'*an
atri/utongkosServis+i class 2enis*ekerjaan+engan ti(e +ata /eru(a Map:ipeMotor,!ong; Dengan
+emi*ian4 sa)a /isa mema*ain)a se(erti /eri*ut ini:
ipeMotor tipeMotor 3 model.seletedipeMotor
2enis*ekerjaan jenis*ekerjaan 3 model.seleted2enis*ekerjaan
!ong ongkos 3 jenis*ekerjaan.get#ngkosServis0tipeMotor1
=ara +i.atas -au' le/i' intuitie +an mu+a' +i(a'ami Kuer) +ata/ase teta( ter-a+i4 teta(i *ali ini secara im(lisit 5secara
&t&matis6 &le' Hi/ernate tan(a cam(ur tangan +eel&(er
Ini a+ala' alasan *ena(a sa)a selalu mem/eri*an (esan (a+a ma'asis,a agar ti+a* memi*ir*an (r&ses (en)im(anan +ata
saat mem/uat do%ain %odel Jangan men)ama*an do%ain %odel+an ERD a+a saat merancang do%ain %odel4
(i*ir*an /agaimana class.class )ang a+a a*an saling /erintera*si +an +i(a*ai &le' +eel&(er Ba'*an /ila ti+a* mema*ai
"RM se(erti Hi/ernate4 teta( -angan memi*ir*an /agaimana (en)im(anan +ata +i do%ain %odel4 melain*an /uat ERD
ter(isa' untu* +i(a*ai &le' (ersistence la)er 5DA"6
9 =ritical Design Reie,
!em/ali mela*u*an reie, untu* memasti*an /a',a ti+a* a+a )ang *urang (a+a se$#ence diagra% asti*an /a',a setia(
class )ang a+a tela' memili*i atri/ut +an &(erasi )ang +i+einisi*an secara leng*a( 5memili*i nama4 ti(e +ata4 (arameter4 +s/6
Beri*ut ini a+ala' c&nt&' 'asil +&main m&+el )ang tela' +ileng*a(i +engan &(erasi +an multi(licit):
D&main M&+el ang $ela' Leng*a(
-
8/11/2019 Merancang Sistem Dengan UML
15/15