Metode Perancangan Program Pert 24 – Object Design Object Design Object design mengacu pada detail design dari object dan interactionnya. Secara khusus, object design mengacu pada spesfikasi tipe attribute, bagaimana operation berjalan, dan bagaimana object berhubungan dengan object lain. Class spesification Attribute Pada tahap ini, attribute di berikan tipe data. Beberapa tipe data primitive adalah Boolean (true atau false), Character (numerik atau spesial character), integer (angka) dan floating point (bilangan desimal). Pada object oriented ada tambahan tipe data yang lebih kompleks yaitu money, string, date, atau name. Penulisan tipe data attribute pada UML, sintaksnya adalah sbb: Name ‘:’ type-expression ‘=‘ initial-value ‘{‘property-string’}’ Contoh: Balance:money = 0.00 Class spesification Operation Operation juga harus ditentukan parameter yang akan diterima dan dikirimkan Syntax yang digunakan : Operation name ‘(‘parameterlist’)’’:’ return-type-expression Contoh: Credit(amount:money):boolean creditOk = accobject.credit(500.00) Object Visibility Pada tahap ini ditentukan tingkat visibility dari object dan operation. Tingkat visibility ini memberikan ketentuan apakah sebuah object atau operation dapat di akses dari luar object tersebut. Object visibility Visibility Symbol Visibility + Public - Private # Protected ~ Package Meaning The feature (an operation or an attribute) is directly accessible by an instance of any class The feature may only be used by an instance of the class that includes it The feature may be used either by instances of the class that includes it or of a subclass or descendant of that class The feature is directly accessible only by instances of a class in the same package BankAccount -nextAccountNumber : int -accountNumber : int -accountName : string -balance : float +open(in accountName : string) : boolean(idl) Interface Interface pad UML adalah sebuah group operation external Interface tidak memiliki attribute, association dan implementasi operation tidak didefinisikan. Ada dua notasi untuk menuliskan interface, tetapi yang paling sederhana adalah lingkaran Interface Client -companyName -companyAddress -companyTelephone -companyFax -companyEmail -contactName -contactTelephone -contactEmail +assignStaffContact() +changeStaffContact() CreativeStaff <<use>> -staffNo -staffName -staffStartDate -qualification +calculateBonus() +linkToNote() Advert manageable <<realize>> «interface» Manageable +getCost() +setCompleted() +view() -title -type -targetDate -estimatedCost -completionDate +getCost() +setCompleted() +view() viewable <<realize>> «interface» Viewable +view() <<use>> Kriteria Design yang baik Coupling : menggambarkan tingkat hubungan antara komponen design dan ditampilkan dalam jumlah link yang dimiliki object. Cohesion: tingkat dimana sebuah element berkontribusi untuk suatu tujuan. Kriteria design yang baik Coupling: Interaction coupling: adalah ukuran atas jumlah message yang di kirimkan ke object lain dan jumlah parameter yang dikirimkan dengan message. Interaction coupling harus dalam jumlah minimal Inheritance coupling : menggambarkan level dimana sebuah subclass membutuhkan fitur yang ada di base classnya. Kriteria design yang baik Cohesion Operation cohesion : mengukur level dimana operation fokus pada sebuah functional requirement Class cohesion: mengambarkan level dimana sebuah class fokus pada sebuah requirement Specialization cohesion: mengacu pada semantik dari hirarki inheritance cohesion Designing Association Association antara dua class menunjukkan kemungkinan link yang ada antara instance class tersebut One to one association One to many association Many to many association One to one association Owner -name : String -address : String -dateOflicence : Date -numberOfConviction : Integer -ownedCar : car car 1 owns 1 -registrationNumber : registration -make : String -model : String -colour : String One to many association dan many to many association * manageCampaign -staffNo -staffName 1 -staffStartDate workOnCampaign -qualification +calculateBonus() +linkToNote() 1..* Campaign -title -campaignStartDate -campaignFinishDate -estimatedCost -completionDate -datePaid -actualCost +assignManager() +assignStaff() +checkBudget() +checkStaff() +completed() +getDuration() +getTeamMember()() +linkToNote() +ListAdverts() +recordPayment() CreativeStaff * owns * 1 Advert -title -type -targetDate -estimatedCost -completionDate +getCost() +setCompleted() +view() Integrity Constraint Integrity constraint mempunyai tiga bentuk: Referential integrity: memastikan bahwa sebuah identifier object benar bener mengacu pada object yang ada Dependency constraint: memastikan bahwa attribute dependency, dimana satu attribue dapat dihasilkan dari attribute lain, dan dimaintain secara konsisten Domain integrity : memastikan bahwa attribute adalah nilai yang layak Designing operation Mendesain operation membutuhkan algoritma yang baik untuk melaksanakan fungsi. Beberapa hal yang harus dipertimbangkan sebelum menentukan algoritma yang cocok: Computational complexity Ease of implementation and understandability Flexibiilty Fine-tuning the object model Normalization Normalisasi digunakan jika menggunakan relational database management system Kebanyakan pendekatan object oriented tidak memandang normalisasi adalah penting, dan struktur yang tidak dinormalisasi dapat diterima
© Copyright 2024 Paperzz