Merancang Sistem Dengan UML

download Merancang Sistem Dengan UML

of 15

Transcript of Merancang Sistem Dengan UML

  • 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