EBook UML

download EBook UML

of 59

description

penjelasan tentang uml

Transcript of EBook UML

10lll00 N000ll l8080 0lll00 N000ll l8080 0lll00 N000ll l8080 0lll00 N000ll l8080Arna FarIza|emIsahkan konstruksI softwareo AnalIsa kebutuhano ArsItektur softwareo SpesIfIkasI (HIghLevel/Early desIgn)o 0esaIn detaIlo mplementasI dan testIngo |aIntenance dan evolusISetIap fase desaIn/development dIpIsahkanl0f8 8ll88 08 0088l20esaIno|engembangkan solusI logIkao|ewakIlI satu cara untuk penyelesaIan permasalahano|enentukan sIstem 8ACA|ANA yang memenuhI APA!0esaIn DDo|enekankan pada menentukan obyek dan komponen software logIkaoEvaluasI desaIn DD alternatIfo|enuju ImplementasI untuk pemecahan kelayakanPerIngatan: A+0 adalah proses yang berkelanjutanKesuksesan dan verIfIkasI A+0 menuju ke rekayasasoftware yang dapat dIukurl0f8 8ll88 08 0088lk080 N000lll8lk8 k0M00Komonen terdIrI darI satu atau lebIh class (ataukomponen laIn) dan dImaksudkan untuk mendukungunIt fungsIonal yang dIbangunClass dapat dIgunakan pada banyak komonenClass yang dIgunakan dalam banyak komponenmenggunakan semantk yany sama dalam semuakonteksTerdIrI darI:o0esaIn berbasIs komponenoSalIng ketergantungan antar komponenoPandangan alternatIf darI InteraksI komponenoKerangka komponen reusable3Selama 15+ tahun terakhIr, beberapa pemaIn dalamDD0o 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 00PemaIn dalam DD0 lanjutano 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 004Unjed Modelny Lanyuaye (UML) adalah desaIndan analIsa DD yang ekuIvalen dengan JavaPenyeragaman 8ooch, Fumbaugh, dan Jacobson |aterIo Apakah U|L Itu:o Tujuh tujuan U|Lo Pemodelan konstruksI dan dIagram- 0Iagram UseCase- 0Iagram Class- 0Iagram PerIlaku- 0Iagram nteraksI- 0Iagram mplementasIk0k08l8 0NlU|L adalah bahasa untuk spesIfIkasI, vIsualIsasI, konstruksI dan dokumentasI pembuatansoftware8k80 0Nl ll0F5Penyeragaman 8ooch dan Fumbaugh 19947ersI 0.8 dIkeluarkan Dktober 1995var Jacobson dan Dbjectory dIsatukan menjadIFatIonal pada Fall 1995U|L 2.0 - versI resmI dalam fase upgradIngU|L 1.5 - versI sebelumnya Lengkap$0(8f80 0Nl80f080l88l f8ll0kl0f $l8l0MKonseptual FisikLogical ViewEnd-user FungsiImplementation ViewProgrammer Manajemen softwareProcess ViewPerformansiSkalabilitasThroughputIntegrator SistemDeployment ViewTopologi SistemDelivery, instalasiKomunikasiRekayasa SistemUse Case View6F0M008l8 0NlBooch method OMTUnified Method 0.8 OOPSLA 95OOSEOtherMethodsUML 0.9Web - June 96 publicfeedbackFinal submission to OMG, Sep 97First submission to OMG, Jan 97UML 1.1OMG Acceptance, Nov 1997UML 1.3UML 1.0 UML partnersUML 2.0!UML 1.5MeyerBefore and after conditionsHarelStatechartsGamma, et alFrameworks and patterns,HP FusionOperation descriptions and message numberingEmbleySingleton classes andhigh-level viewWirfs-BrockResponsibilitiesOdellClassificationShlaer - MellorObject lifecyclesRumbaughOMTBoochBooch methodJacobsonOOSEk0lfl008l 0Nl70Iagram UseCase0Iagram Class dan Dbyek0Iagram PerIlakuo 0Iagram Statecharto 0Iagram ActIvIty0Iagram nteraksIo Sequence 0Iagramo CollaboratIon 0Iagram0Iagram mplementasIo Component 0Iagramo 0eployment 0IagramF0M0808l0l8f8M F0M000l8 0Nlkl88lllk88l 00f0888fk8 k880llll88l1lM0ll080008 8l8f8 N000l 08 0l8f8MUse CaseDiagramsUse CaseDiagramsUse CaseDiagramsScenarioDiagramsScenarioDiagramsCollaborationDiagramsStateDiagramsStateDiagramsComponentDiagramsComponentDiagramsComponentDiagramsDeploymentDiagramsStateDiagramsStateDiagramsObjectDiagramsScenarioDiagramsScenarioDiagramsStatechartDiagramsUse CaseDiagramsUse CaseDiagramsSequenceDiagramsStateDiagramsStateDiagramsClassDiagramsActivityDiagramsModel8Pemodelan Use CaseAgendaApakah use case Itu:Keuntungan Use CaseUse Cases vs. dokumen kebutuhan|embangun model Use Caseo Systemo Aktoro Use Caseo FelasI Use CaseContoh9Apakah Use Case itu?0Ibuat oleh var Jacobson (1994)"use case adalah urutan transaksI darI aktorpada sIstem"|enggambarkan APA yang sIstem ("8lack 8ox") lakukan darI perspektIf userSekumpulan skenarIo yang menjadI satu untuktujuan user|odel use case 8UKAN teknIk pemodelanberorIentasI obyek yang berjalan InherentKeuntungan Use Case|enangkap kebutuhan fungsIonal darI perspektIf user|emberI dIskrIpsI jelas dan konsIsten darI apa yang seharusnya dIlakukan sIstem0asar membentuk tes sIstem|enyedIakan kemampuan untuk melacak kebutuhanfungsIonal ke dalam class aktual dan operasI dalamsIstem8erfungsI sebagaI unIt estImasIUnIt terkecIl darI delIveryoSetIap Increment yang dIrencanakan dan dIdelIver dIgambarkan dalam use case yang akan dIdelIver secaraIncrement10Use Case vs. Kebutuhan0okumen kebutuhan menyatakan apa yang seharusnya dIlakukan sIstem. Use case menggambarkan aksI yang dIlakukan user dan respondarI sIstemUse case bIasanya dIgunakan untuk mengartIkankebutuhanKebutuhan lebIh efektIf dIdokumentasIkan sebagaIuse caseoLebIh baIk dalam pelacakanoLebIh mudah untuk valIdasI user terhadap kebutuhanfungsIonalo|embantuk struktur manual useroPerangkat membangun classDiagram Use Case pada UML|odel use case dIgambarkan dalam U|L sebagaIsatu atau lebIh dIagram use case Terdapat 4 elemen utama:o SIstemo Aktor yang berInteraksI pada sIstemo Use case atau servIs yang tersedIa pada sIstemo PeIasI antar elemen11Sistem 8agIan darI pemodelan use case, merupakan defInIsI batasanpengembangan sIstem SIstem tIdak perlu harus berupa software |endefInIsIkan batasan sIstemo 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 kotakTraffic Violations Report SystemAktorSeseorang atau sesuatu yang berInteraksI dengan sIstem(pertukaran InformasI dalam sIstemAktor merupakan aturan yang dImaInkan dalam sIstem, bukan user IndIvIdu darI sIstemContoh:oClerk - |engInputkan dataoSupervIsor - mengIjInkan modIfIkasI/menghapus datao|anager - mengIjInkan melIhat statIstIkSatu user dapat berlaku lebIh darI satu aturanAktor tIdak harus manusIao8Isa berupa sIstem eksternal yang berhubungan denganpengembangan sIstemAktor mempunyaI nama yang menyatakan aturanUse case dIlakukan oleh aktor12Icon AktorClerk>ClerkRelasi antar Aktor 8Ila beberapa aktor adalah bagIan darI aturan, juga berlaku aturanyang dIgeneralIsasI, dIgambarkan sebagaI generalIsasI PerIlaku aturan general dIgambarkan dalam aktor superclass Aktor spesIalIsasI mewarIsI perIlaku superclass dan menambahkanbeberapa cara FelasI antar aktor tIdak selaku dIperlukanClerk Supervisor Manager13Identifikasi AktorSIapa yang merupakan fungsI utama dalam sIstem:SIapa yang memerlukan maIntaIn, admInIstrasI danmenjalankan sIstem:0engan software/hardware laIn yang mana sIstemperlu berInteraksI:oSIstem komputer laInoAplIkasI laIn darI komputer yang sama (mIsalnyaclIent/server)Use Case|enyatakan fungsI lengkap yang dIlakukan aktoroUse case memenuhI tujuan aktorSelalu dIlakukan oleh aktorUse case menghasIlkan nIlaI ke aktorUse case lengkapoJangan membagI use case ke dalam use case yang lebIh kecIlyang mengImplementasIkan use case laIn (dekomposIsIfungsIonal)SkenarIo use case bIasanya dIgambarkan secara tekstualoSpesIfIkasI sederhana dan konsIsten tentang bagaImana aktordan sIstem berInteraksIoUse case menggambarkan template|enggambarkan dImana level user dan respon sIstemo8ebas darI teknologI dan mekanIsme detaIl, terutama yang berhubungan dengan antar muka user14Menemukan Use CaseUntuk setIap aktor yang sebelumnyadIdefInIsIkan:o ServIs apa yang dIbutuhkan aktor darI sIstem- |embaca, membuat, menghapus, memodIfIkasI, menyImpan InformasIo Event apa yang dIlakukan aktor:o 0apatkan pekerjaan harIan darI aktordIsederhanakan:- TIdak terkonsentrasI hanya pada sIstem saat InIIcon Use CaseEllIps yang berIsI nama use case0Itempatkan dalam batasan sIstem yang dImodelkan8erhubungan setIdaknya satu aktor dengan komunIkasIasosIasIoKecualI untuk use case spesIal/tambahanAdd Traffic ViolationTraffic Violations Report systemClerk15Relasi Use CaseFelasI IncIude relatIonshIpo8Ila sejumlah use case mempunyaI perIlaku umum, perIlakuInI dapat dImodelkan dalam satu use case yang dIgunakanoleh use case laInoX Includes Y menyatakan bahwa proses yang dIlakukan X selalu melIbatkan Y setIdaknya satu kalIo8erlaku sebagaI dekomposIsI fungsIonaloUse case Include harus lengkapoX harus memenuhI kondIsI awal darI Y sebelummemasukInya>X YRelasi Use CaseFelasI CeneraIIsasIo0Igunakan bIla sejumlah use case merupakan sub bagIan, tetapImasIngmasIh mempunyaI perbedaan yang tIdak mungkIndIsatukan dalam satu use caseoCeneralIsasI dan spesIalIsasI use case harus mempunyaI tujuanyang samaoUse case spesIalIsasI menyatakan skenarIo alternatIf darI use case generalIsasIoCeneralIsasI use case harus lengkapoUse case spesIalIsasI dapat berhubungan dengan aktor baruoUse case spesIalIsasI menambahkan kondIsI awal dan akhIr(semantIk AN0)Specialized Generalized16Relasi Use CaseFelasI Extendo |IrIp dengan relasI generalIsasI tetapI dengan aturantambahan dI dalamnyao Use case spesIalIsasI hanya extend use case generalIsasIo Use case tambahan harus dIdeklarasIkan secaraeksplIsIt tambahannya>(5: confirmation)New OffenderAdd T.R.(5: confirmation)Rekomendasi Alur Kerja1. dentIfIkasI aktor (dan relasInya jIka dIperlukan)2. Untuk setIap aktor, IdentIfIkasI use case sampaItIdak ada use case yang tertInggala. Tentukan tujuan aktorb. Putuskan kegIatan utama untuk mendapatkan tujuanc. 8uat use case untuk setIap tujuan- Aktor/tujuan baru kemungkInan dItemukand. 7alIdasI/pembetulan use case yang adaJ. Cambarkan dIagram use case17Contoh Traffic Violation Report System (TVRS)Remove T.VLookup T.VReplace OffenderNew OffenderEdit T.V.(8)Add T.V.(9)ClerkSupervisorTraffic Violations Report System

OffendersDBPolicemenDB00l00. $00fM8fk0lHTSS HTSSScan ItemsRing OrderBuy ItemsCustomerCashierCatalog CatalogCheck StatusPlace OrderFill OrderEstb. CreditCustomerSales PersonSupervisorHTSS: System ViewCatalog: Class View1800l00. $00fM8fk0l00l00. N88(0M0 $0f90InstItusI survey yang meIakukanlmengatur survey pubIIk.SeteIah data mentah dIkumpuIkan, staf senIor menambah header survey kedatabase, staf senIor atau junIor menambah pertanyaan ke daIamsurvey, berupa mengeIompokkan pertanyaan atau menambah katagorIpertanyaan.Pertanyaan yang sensItIf terbatas ke staf senIor19$k08fl0 080 0880808ll0 08f0 ll08ll0 I80l Nfll0 8KDokter menentukan resep untuk pasienDokter memberikan informasi obat: nama obat, takaran, jumlah dos danrefillKomputer melakukan cross-ce antaraobat dan sejarah obat/medis yang sudah adaResep dikirim secara elektronik keapotik atau dicetak untuk pasien+00l00. 808ll0 08f020l8ll088uatlah dIagram use case untuk rental 7C08ll88 0l88821008TujuanApakah analIsa class Itu:TIpe analIsa classo Class 8oundaryo Class EntItyo Class Control|encarI analIsa classContoh10(08dentIfIkasI kumpulan kandIdat (analIsIs) class yang pantas dIgunakan sesuaI perIlaku yang dIgambarkan dalam use caseo PerIlaku lengkap darI use case harus dIdIstrIbusIkanke analIsIs classo Kebutuhan nonfungsIonal tIdak dImasukkano KonsentrasI pada mencarI atrIbut dan relasI class228k80 8ll8l8 0l888 ll0FTeknIk mencarI class menggunakan tIgaperspektIf sIstemo 8atasan antara sIstem dan aktoro nformasI yang dIgunakan sIstemo LogIka kontrol darI sIstem8k80 8ll8l8 0l888 ll0F

===Stereotype yang mendefinisikanelemen model baru dalamhubungandengan elemenmodel lain231l0 8ll8l8 0l888

Actor1Actor2Model interaksiantara sistem danlingkunganMenyimpan danmengaturinformasi dalamsistemKoordinasiperilaku use case0l888 80008f|emodelkan InteraksI antara sIstem dan pekerjaanyang ada dI dalamnyaoClase user Interface- 8erkonsentrasI pada InformasI apa yang dIberIkan ke user- TIdak terkonsentrasI pada user Interface secara detaIl- Contoh- 7IolatIons0IalogoClass System / 0evIce Interface - KonsentrasI pada protokol apa yang harus dIdefInIsIkan. TIdakterkonsentrasI pada bagaImana protokol dIImplementasIkanLIngkungan class boundary tergantung pada:oUser InterfaceoKomunIkasI protokol240l888 llll|emodelkan konsep utama darI sIstem8Iasanya InformasI model bersIfat persIstent8erIsI logIka untuk pemecahan masalah sIstemTIdak tergantung pada lIngkungan0apat dIgunakan banyak use case0l888 00lf0l|engontrol dan mengkoordInasIkan perIlaku use case|endelegasIkan pekerjaan darI use case ke classoClass control memberItahu class laIn untuk mengerjakansesuatu dan tIdak pernah mengerjakan sesuatu kecualI untukatas perIntah class controloControls and coordInates the behavIor of a use caseClass contol merupakan gabungan class boundary danentIty|eskIpun, terdapat satu class control untuk satu use caseTergantung pada use case dan lIngkunganContoh:o7IolatIonsController25N008fl 8ll8l8 0l8881. Untuk setIap use case:a. Tentukan deskrIpsI use caseb. dentIfIkasI class boundary, entIty an kontrolc. Untuk setIap class IdentIfIkasIkan- AtrIbut- FelasI2. 7alIdasI model, ulangI proses jIka perlul00llllk88l 0l888Class mungkIn tersembunyI dalam:o 0okumen kebutuhano |odel use caseo PermIntaan stakeholdero 0omaIn permasalahano 0okumentasI proyek26l00llllk88l 0l888Class boundaryoSetIdaknya terdapat satu class boundary untuk setIap aktor / pasangan use caseClass controlo8Iasanya, terdapat satu class control per use caseoJIka 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 EntItyo0IIdentIfIkasI dengan menggunakan kata benda dan frasa katabenda untuk menggambarkan permasalahan, dokumenkebutuhan, use case dan dokumentasI laInoKata benda berupa:- Dbyek- 0eskrIpsI state obyek (atrIbut)- Aktor- 8ukan salah satunyalllMl88l k8l8 8008 Class duplIkato Perbedaan hanya pada nama : "System", "T7FS"... Class yang tIdak berhubungano Class yang tIdak mengerjakan sesuatu dalam sIstem (solusI): "polIce headquarters"... AtrIbut / operasIo 8eberapa kata benda yang sejenIs dImodelkan sebagaI atrIbut atauoperasI darIpada sebagaI class: "0", "name", "Feport Lookup"... Aturano 8eberapa kata benda sebagaI obyek yang terlIbat hubungan darIpadasebagaI class-Contoh: "TeachIng AssIstant" dan "Student" mungkIn mempunyaI aturanyang berbeda darI class "Person" Kata benda abstrako "IdentIfIkasI Ide atau kuantItas yang tIdak ada secara fIsIk"o Jarang berhubungan dengan analIsa class, tetapI sebagaI atrIbut:"Fequest", "DpInIon"27N008fl lfl00l 0l888PropertI atau karakterIstIk darI class yang dIIdentIfIkasIo nformasI yang ada pada classo AtomIkKata benda yang tIdak menjadI classo nformasI berupa nIlaI yang pentIng untuk solusIo nformasI yang secara unIk dImIlIkI oleh obyekN008fl 80l88lAsosIasI bIasanya berhubungan dengan kata kerjaatau frasa kata kerjaoLokasI fIsIk: next to, above, InsIde...oAksI langsung: drIves, creates, manages...okomunIkasI: talks to, lIstens, notIfIes...oKepemIlIkan: has, part of, belongs to, contaIned...oLaInnya: works for, marrIed to, studIes at...ElImInasI asosIasI yang tIdak berhubungan denganpermasalahan / solusIAsosIasI bIasanya dItemukan menggunakan dIagram InteraksI2800l00. 8ll88 0l888 18$0aftar kata benda darI kebutuhan dan use case T7FS (KandIdat class entIty):Traffic reportSupervisorReport lookupConfirmationTVRSOffender Details FormTraffic report additionSystemOffenderPolicemanVehicle numberLicense numberFaultTraffic policemanCommanderViolationIDPasswordPolice headquartersShutdownDateSpeedTraffic ViolationClerklllMl88l 0l888 00llk8lTraffic reportSupervisorReport lookupConfirmationTVRSOffender Details FormTraffic report additionSystemOffenderPolicemanVehicle numberLicense numberFaultTraffic policemanCommanderViolationIDPasswordPolice headquartersShutdownDateSpeedTraffic ViolationClerk29lllMl88l 0l888 00llk8lTraffic reportSupervisorReport lookupConfirmationTVRSOffender Details FormTraffic report additionSystemOffenderPolicemanVehicle numberLicense numberFaultTraffic policemanCommanderViolationIDPasswordPolice headquartersShutdownDateSpeedTraffic ViolationClerkClerk danSupervisorDigantidengan UserlllMl88l 0l888 8 ll08k 80l098Traffic reportUserReport lookupConfirmationTVRSOffender Details FormTraffic report additionOffenderPolicemanVehicle numberLicense numberTraffic policemanCommanderViolationIDPasswordPolice headquartersShutdownDateSpeed30lllMl88l 0l888 8 ll08k 80l098Traffic reportUserReport lookupConfirmationTVRSOffender Details FormTraffic report additionOffenderPolicemanVehicle numberLicense numberTraffic policemanCommanderViolationIDPasswordPolice headquartersShutdownDateSpeedlllMl88l 8lfl00l 08 00f88lTraffic reportUserReport lookupConfirmationTVRSOffender Details FormTraffic report additionOffenderPolicemanVehicle numberLicense numberTraffic policemanCommanderViolationIDPasswordShutdownDateSpeed31lllMl88l 8lfl00l 08 00f88lTraffic reportUserReport lookupConfirmationTVRSOffender Details FormTraffic report additionOffenderPolicemanVehicle numberLicense numberTraffic policemanCommanderViolationIDPasswordShutdownDateSpeedlllMl88l k8l8 0008 808lf8kTraffic reportUserConfirmationTVRSOffender Details FormOffenderPolicemanTraffic policemanViolation32lllMl88l k8l8 0008 808lf8kTraffic reportUserConfirmationTVRSOffender Details FormOffenderPolicemanTraffic policemanViolationTraffIc reportUserT7FSDffender 0etaIls FormDffenderPolIcemanTraffIc polIceman7IolatIon.0l888 llll I8fll8llDaftar yang tersisabiasanya berisi class yang bukan class entiti, sepertiOffender Details Form. Class boundary dancontrol lebih mudahditemukan dengan analisause case secara langsung.330l888 80008f Feport0etaIlsFormPolIceman0etaIlsFormLookupFeportFormConfIrmatIon0IalogDffenders08ProxyPolIceman08Proxy...database proxy merupakan API level tinggi danmembungkuskomunikasi danbahasapemrogramansecara detail0l888 00lf0lAddFeportControllerFemoveFeportControllerLookupFeportControllerEdItFeportControllerAuthentIcatIonController...348ll8l8 0l8f8M 0l888 lid : longname : Stringrank : intPoliceman

TrafficPolicemanid : longdescription : StringTrafficReportid : longdescription : StringViolationname : Stringid : longOffender1..* 1reports of1..*issues 1 *occuredAt : Date8ll8l8 0l8f8M 0l888 llViolationEditReportController

Traf f icReportOf f ender Traf f icPolicemanClerkReportDetailsForm

Conf irmationDialog

PolicemanDBProxy

Of f endersDBProxy

Of f endersDBPolicemenDB11 111350l8f8M 0l888008Apakah class Itu:FelatIonshIp dan |ultIplIcItyContoh dIagram classPackageContoh package0Iagram obyek36Class adalah gambaran hImpunan obyek yang menggunakan atrIbut, operasI, metode, relasI dansemantIk yang samaClass dIrepresentasI secara grafIs sebagaI kotakuntuko Nama Class, atrIbut PrIvate dan operasI PublIco PropertI, responsIbIlItI, aturan, sejarah modIfIkasI dll.0esaIner mengembangkan Class sebagaI hImpunanruang yang berkembang sepanjang waktu untukmenIngkatkan fungsIonalItas dan fItur8k80 0l888 ll0FFelatIonshIp: oAsosIasI - antar 2 class jIka anggota satu class harus mengetahuIanggota class laIn untuk melakukan pekerjaanoAgregasI - asosIasI dImana satu class mIlIk sekumpulan classoCeneralIsasI - hubungan pewarIsan yang menyatakan satu ckassadalah superclass darI class laIn|ultIplIcItyo0..1 nol atau satu anggotaon . . m mengIndIkasIkan anggota n ke mo0..* ctcu* tIdak ada batasan jumlah anggota (termasuk tanpaanggota)o1tepat satu anggotao1..*palIng sedIkIt satu anggota80l8ll080l 08 N0lllll0ll3700l00 0l8f8M 0l888Window {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 PrivateWindow+size: Area = (100,100)+default-size: Rectangle+display()+hide()+create()Providing ProvidingSpecialized Views Specialized Views600f8ll888l 08 808l88l00l00. $00fM8fk0lItemNonPItem PerishItemDeliItem ProduceItem DiaryItemCustomerGroceryOrder1*DeliOrder1*contains3800l00. $00fM8fk0l 8008f8 00l8ll00l00. N88(0M0 $0f90390l8f8M 0l888 80. 68M08f8 $l8ll8PharmacyDBAddRxRecFillRxRefillRxDeleteRxRecMedicationMedicationNameConflictInfoCheckForConflictUpdateConflictInfo1RxRxNumPhysicanNamePatientNameMedicationNameDosageNumDosesNumRefillsRefillsLeftWriteRxPatientRecPatientNamePatientSSNDateOfBirthInsurerPolicyNumetc...UpdateRecetc...MedicalHistoryMedicationHistoryKnownAllergiesImmunizationsPregnancyDataetc...1 nnn10l8f8M 0l888|enangkapdaftar sIstem400l8f8M 0l888F80k80 808 0l8f8M 0l8880Iagram class komplek bersIfat abstrakPackage terdIrI darI beberapa class dandIasosIasIkan dan dIhubungkan satu sama laIno Panah 0ependency dalam bentuk garIs putusputuso |engIndIkasIkan bahwa satu Package bergantungpada Package laIno Perubahan tujuan (kepala panah) menyebabkanperubahan asal (ekor panah)|endukung konsep arsItektur software yang belum sempurnaTetapI, tIdak ada pemerIksaan/pelaksanaandependency dalam dIagram berIkutnya4100l00 F80k800l8f8M 000kTransIsI darI desaIn ke ImplementasI|engIndIkasIkan anggota dan hubungan obyek0Ibangun selama desaIn dan analIsaTujuan:o lustrasI struktur data/obyeko |enentukan snapshot0Ikembangkan oleh analIs, desaIner danImplementer42F0fll8k0 l8f M0k8 (0(8k0IagramClass0IagramAnggota0l8f8M 000k|enangkap nstance dan LInk43l8ll088uatlah dIagram class untuk rental 7C0$0@0000 0l8f8M440080Iagram nteraksIApakah Sequence 0Iagram:Dbyek|essageKontrol nformasIContoh0l8f8M ll0f8k8l8eberapa dIagram untuk menggambarkanperlcku dncms pada sIstem berorIentasIobyeko 8eberapa pesan dItukas pada beberapa obyek dalamkonteks untuk mencapaI tujuan8Iasanya dIgunakan pada model dImana use case dIrealIsasIkan ke dalam urutan pesan antarobyek450l8f8M ll0f8k8lTujuan dIagram InteraksI adalah:o |odel InteraksI antar obyeko |enuntun untuk mengertI bagaImana sIstem (use case) bekerjao 7erIfIkasI bahwa dIskrIpsI use case dIdukung olehclass yang adao dentIfIkasI tanggung jawab/operasI danmenyatakannya dalam class0l8f8M ll0f8k8lPada U|L, ada 2 macamo CollaboratIon 0Iagram- Penekanan pada struktur relasI antar obyeko Sequence 0Iagram- Penekanan pada pertukaran pesan pada obyek468k80 $0@0000 0l8f8M ll0F|enggambarkan bagaImana obyek salIngberInteraksIPenekanan pada urutan waktu pesan0apat memodelkan secara sederhana urutankerja, pencabangan, IterasI, rekursI dankonkurensI00l00 $0@0000 0l8f8Mmember:LibraryMemberbook:Book:BookCopyborrow(book)ok = mayBorrow()[ok] borrow(member)setTaken(member)4700l00 $0@0000 0l8f8Mmember:LibraryMemberbook:Book:BookCopyborrow(book)ok = mayBorrow()[ok] borrow(member)setTaken(member)X-Axis (objects)Y-Axis (time)ObjectLife LinemessageActivation boxcondition000kPenamaan Dbyek:oSIntak : [NcmcAnyyotc][:NcmcClcss]oNama class konsIsten dengan dIagram class (class yang sama)o8erIsI nama anggota jIka obyek dIacu atau jIkabeberapa obyek dengan tIpe yang sama ada dalamdIagramCarIs putusputus (L]eLne) menyatakanobyek dIgunakan selama InteraksImyBirthdy:Date48F088nteraksI antara 2 obyek dIbentuk sebagaI pesan yang dIkIrIIm darI satu obyek ke obyek yang laIno8Iasanya dIImplementasIkan dengan operasI pemanggIlan yang sederhanao0apat berupa pesan aktual dIkIrIm melaluI beberapamekanIsme komunIkasI, baIk melaluI network atau secaraInternal dalam komputer- KomunIkasI antar proses (pengIrIman sInyal, .)- Femote Procedure Call (F|, CDF8A, .)JIka obyek obj1 mengIrIm pesan ke obyek laIn obj2 , harus terdapat hubungan antar dua obyek tersebutoKetergantungan strukturaloobj2 adalah daerah global darI obj1oobj2 adalah daerah lokal darI obj1 (method argument)oobj1 dan obj2 adalah obyek yang samaF088Pesan dIgambarkan sebagaI panah antara lIfe lIne darI 2 obyekoPemanggIlan dIrI sendIrI dIperbolehkanoWaktu yang dIbutuhkan oleh obyek penerIma untuk memprosespesan dInyatakan dengan cctvctonbox.Pesan dIlabelI secara mInImal dengan nama pesanoArgumen dan InformasI kontrol (kondIsI, IterasI) kemungkInandImasukkanoLebIh dIpIlIh menggunakan dIskrIpsI tekstual bIla aktor adalahsumber atau target pesan491l0 F088SynchronousAsynchronousSImpleCreate0estroy

F088 $00f0008Sekumpulan alIran kontrol, bIasanyadIImplementasIkan sebagaI pemanggIlan operasIo FutIn yang menanganI pesan dIlengkapI sebelumpemanggIl melakukan eksekusI:A :BdoYouUnderstand()Pemanggildi-blokreturn (opsional)yes508ll8l 80l0f0Igunakan opsIonal dengan panah putusputusyang dIlabelI nIlaI returno Jangan memodelkan nIlaI return jIka ternyatadIkembalIkan, mIsalnya getTotal()o |odelkan nIlaI return hanya jIka dIperlukan untukdIacu oleh tempat yang laIn, mIsalnya sebagaIparameter yang dIlewatkan ke pesan yang laIno LebIh dIpIlIh memodelkan nIlaI return sebagaI bagIandarI method InvocatIon, sepertI ok = isValid()F0M008l8 000kDbyek dapat membuat obyek laIn melaluI pesan

:A :B

Constructor:A

:BPreferred51F008088 000kDbyek dapat menghapus obyek laIn melaluI pesan

oDbyek dapat menghapus dIrInya sendIrIo|enghIndarI memodelkan panghapusan obyek kecualI manajemen memorI krItIs:A :B

F088 800f00080Igunakan untuk memodelkan sIstem yang konkurenPemanggIl harus menunggu pesan dItanganI sebelum melanjutkan eksekusIoSepertI jIka menghasIlkan nIlaI segeraDbyek ckt] mempunyaI thread eksekusI dan dapat mengInIsIalIsasI aktIfItas kontrolPesan asynchronous dapato|embuat thread baru (daftar aktIfasI baru)o|embuat obyek baruoKomunIkasI dengan thread yang sedang berjalan52ll0fM88l k0lf0lKondIsIo SIntak: '[' ekspresI ']' labelpesano Pesan dIkIrIm hanya jIka kondIsI benaro Contoh:terasIo SIntak: * [ '[' ekspresI ']' ] labelpesano 0IkIrIm beberapa kalI sehIngga dImungkInkan untuk obyek penerIma lebIh banyak[ok] borrow(member)ll0fM88l k0lf0lContoh IterasI::Driver*[until full] insert():BusSintak dari ekspresi bukan standart:CompoundShape :Shape*draw()draw()53ll0fM88l k0lf0l|ekanIsme kontrol darI sequence dIagram hanya cukup untuk pemodelan alternatIf sederhanao Perlu membuat beberapa dIagram untuk skenarIo pemodelan yang kompleko Jangan menggunakan sequence dIagram untuk pemodelan algorItma secara detaIl (lebIh baIk menggunakan dcyrcm ckt]tcs, pseudocode atau dcyrcm stcte -chcrt$0@0000 0l8f8M54$0@0000 0l8f8MgetViolation(id)lK8Ml0 1Clerk:ViolationsDialog:ViolationsController:ViolationsDBProxylookupviewButton()id=getID()v:TrafficViolationdisplay(v)

vLookup Traffic ViolationBisa menggunakan pseudo codeDB di-query dan hasilnya dikembalikan sebagai obyek55print(doc,client)lK8Ml0 ZClient:PrintServer :Queue:PrinterProxyenqueue(job)statusPrinting A Documentjob=dequeue()[job]print(job.doc)[job] done(status)Repeated forever with 1 min interludesObyek Aktif$0@0000 0l8f8M 8056PharmacyDBRx Medication MedicalHistoryEnterRxInfoCheckForConflictGetMedHistoryConflictResultsPerformConflictChkRxRecord$0@0000 0l8f8M 80$0@0000 0l8f8M $00fM8fk0l57$0@0000 0l8f8M $00fM8fk0l00ll800f8ll0 0l8f8M5800ll800f8ll0 0l8f8MCollaboratIon 0Iagram: dIbentuk darI perspektIf InteraksI antar obyek|enangkap perIlaku dInamIs (berorIentasI pesan)00ll800f8ll0 0l8f8M5900ll800f8ll0 0l8f8M|enyampaIkan Info yg sama sepertI Sequence 0Iagram tetapI fokus ke aturan obyek darIpada pesanAturan obyek sebagaI kotak|Isalnya aHotel, aChaIn, dll.00ll800f8ll0 0l8f8M