650 likes | 1.05k Views
Pertemuan 7 Unified Modelling Language (UML). Tim Asisten Praktikum Rekayasa Perangkat Lunak 09/10 Departemen Ilmu komputer FMIPA, IPB. Apa itu UML ???.
E N D
Pertemuan 7Unified Modelling Language(UML) Tim AsistenPraktikum RekayasaPerangkatLunak 09/10 DepartemenIlmukomputer FMIPA, IPB
Apaitu UML ??? • UML adalahkeluarganotasigrafis yang didukungolehmeta‐model tunggal yang membantupendeskripsian dan desain sistemperangkat lunak khususnyasistemyangdibangunmenggunakan OOP
Mengapaperlu ‘model’ ??? • Mengaturkompleksitas. • Fasilitaskomunikasi. • Model : • Kemudahandalamvisualisasiseluruhsistem. • Membandingansegalakemungkinan yang ada • Perancangan
Mengapa UML ??? • Menspesifikasi, memvisualisasi, danmendokumentasikanmodel –model sistemperangkatlunakitusendiri • Current and new systems • Structure dan design • Behavior dan interaction • Notasiyang tidakambigudankonsisten • Dokumentasi
UML 2.0 • Structure diagram
UML 2.0 • Behaviour diagram
Class Diagram • Class diagrammenjelaskanjenis‐jenisobjekdalamsistemdanberbagaijenishubunganstatisyang terdapat di antara objek‐objek tersebut. • Teknikpemodelanpokok yang berjalanhampirpadasemuametodeberorientasiobjek • Notasi terkaya dalam UML
Elemenpentingdalamclass diagram • Class • Attributes • Operations • Relationships • Associations • Generalization • Dependency • Realization • Constraint Rules and Notes
Classes • Classmerupakandeskripsisekumpulanobjek yang memilikiattributes, operations, relationships dan behavior yang sama.
Association • Hubungansemantikantaraduaataulebihclassyang menentukankoneksiantarainstance ‐instance yang dimilikiclasstersebut. • Hubunganstruktural → menerangkanbahwaobjek‐objekdari suatu class terhubung dengan objek‐objek dari kelas lain (atau bisa juga kelas yang sama). • Association antara dua class menandakan bahwa objek‐objek di suatu sisi pada associationtersebut “mengenali” objek‐objekpadasisi lain association, dandapatmengirimkanmessage.
Aggregation • Bentukkhususassociation yang memodelkanhubunganwhole‐partantaraaggregate (the whole) danbagian‐bagiannya. • Object anggotadapatexist tanpakelasyang melingkupinya. →Memodelkanhubungan “has”
Cont…. • “CPU merupakanbagiandaricomputer” • “Sebuahcar memilikiengine dandoorsebagaibagiannya”
AggregationvsAttribute • Attribute : menggambarkanproperty of object. contoh : harga, berat, warnadarisuatu laptop. • Aggregation : menggambarkanassemblies of object. Contoh : CPU dan monitor merupakanbagian (penyusun) dari laptop.
AggregationvsAssociation • Apakahcompanymerupakanagregasidariemployees ATAUKAH company merupakanbentukasosiasidiantaraemployees ???
Composition • Bentuk kuat dari aggregation. • Hubungan“is a part of / is a” • Objekanggotatidakdapatexist diluarkelasyang melingkupinya. • Multiplicitypada whole harus 0 atau 1 • Waktuhiduppartbergantungpadawhole • Composite(whole) harus me‐managepembuatandanpenghancuranpart‐nya.
Generalization • Hubungan ‘is kind of’ • Generalizationmenangkapsimilaritiesantarabeberapaclassdalamsebuahsuperclass.
Realization • Mengindikasikanbahwasuatuclass mengimplementasikanbehavior yang ditentukanolehclasslain (interfaceatauprotocol)
Cont…. Methods denganimplementasi Methods tanpaimplementasi
SEQUENCE DIAGRAM ???
Interaction Diagrams • Sequence diagram termasuksalahsatuinteraction diagram. • Interaction diagrams → menjelaskandynamic behavior darisistemberorientasiobjek • Serangkaianmessagedipertukarkanantarobjekuntukmencapaitujuan • Seringdigunakanuntukmemodelkanbagaimanause case direalisasikanmelaluirangkaian/urutan (sequence) message antarobjek
KegunaanInteraction Diagrams • Memodelkaninteraksiantarobjek • Membantuuntukmengertibagaimanasistem (use case) bekerja • Memverifikasibahwause case description dapatdidukungolehclass‐class yang ada • Mengidentifiaksioperasidanmenugaskannyakepadaclass
ElemenPentingSequence Diagram • Object • Message • Return values • Object creation • Object destruction • Control information
Object honda: Car • Penamaanobject: myBirthdy • Syntax : [instanceName][:className] • Nama Class yang digunakankonsistendenganclass diagram • Mencakupnamainstanceketikaobject diacu dalam message atau ketika beberapa object dari tipe yang sama muncul pada diagram • Life‐Line merepresentasikan “kehidupan” object selamainteraksi
Message • Interaksiantaraduaobjekditampilkansebagaimessage yang dikirimdarisatuobjekke yang lainnya • Message direpresentasikanolehtandapanahantaralife‐line duaobjek. • Self‐called jugadiperbolehkan • Waktu yang dibutuhkanolehobjekpenerimauntukmemprosesmessage dilambangkanolehactivation‐box • Diberikan label namamessage tersebut
Return Values • Ditandaidengantandapanahgarisputus‐putusdengan label yang menandakanreturn value. • Janganmemodelkanreturn value ketikasangatjelasapa yang di‐return, contoh : getTotal() • Modelkanreturn value hanyaketikakitabutuhuntukmengacupadareturn value tersebutditempat lain, contoh sebagai parameter yang di‐pass dalam message lain. • Modelkanreturn value sebagaibagiandarimetodeinvocation,contoh: ok = isValid()
Object Creation • Objekdapatmembuatobjek lain melaluipesan <<create>>
Object Destruction • Objekdapatmenghancurkanobjek lain melaluipesan <<destroy>> • Objek dapat menghancurkan diri sendiri • Hindariobject destruction kecualimanajemenmemorikritis
Control information • Condition • syntax: ‘[‘ expression ’]’ message‐label • Pesandikirimhanyajikakondisinyabenar • Contoh : [OK]borrow(member) • Iteration • Syntax : * [ ‘[‘ expression ‘]’ ] message‐label • Pesandikirimbeberapa kali untukmemungkinkan objekpenerima yang banyak. • Contoh : *[untill full] insert()
Tugas • Selesaikan DPPL bab 1 – 3 • Deadline : Dikumpulke PJ -> Rilan Selasa, 16 November 16.00