download

Metode
Perancangan
Program
Pert 21 : Specifying
Operation
Specifying operation
• Operation specification mendukung model
grafik dengan menambahkan rincian
sehingga user dapat mengkonfirmasikan
kebenaran model, dan designer dapat
menggunakannya untuk pengembangan
software
• Di dalam specifying operation dibutuhkan
contract, yaitu sebuah list spesifikasi.
The role of operation
specification
• Peranan operation specification adalah
sebagai framework untuk spesifikasi detail
yang akan membantu programmer untuk
mengetahui method yang cocok untuk
implementasi operation dalam code.
• Sebuah operation specification dapat juga
digunakan untuk menverifikasi bahwa
method yang digunakan akan memenuhi
spesifikasinya yang pada akhirnya akan
memenuhi kebutuhan user.
Contract
• Adalah sebuah refleksi legal atau komersial
kontrak antara orang dalam organisasi.
Menandatangani kontrak membutuhkan
komitment untuk menjalankan service yang telah
disetujui.
• Beberapa hal yang ada di dalam contract:
–
–
–
–
Tujuan perusahaan
Spesifikasi operation termasuk return type
Gambaran yang tepat
Operation lain yang digunakan, mungkin berada di
object yang sama ataupun berbeda
– Event yang dikirimkan ke object lain
– Respon terhadap pengecualian
– Kebutuha non-functional yang lainnya
Describing operation logic
• Ada dua cara untuk menggambarkan
logik operation :
– Pendekatan Non-algorithmic
– Pendekatan algorithmic
Pendekatan non-algorithmic
• Pendekatan ini berkonsentrasi pada
penggambaran logic dari sebuah
operation sebagai sebuah black box.
• Pendekatan ini digunakan karena:
– Class yang ada sudah di encapsulasi
dengan baik, dan hanya designer dan
programmer tertentu yang bertanggung
jawab atas class tertentu
– Hasil dari operation simple
Pendekatan no-algorithmic
• Decision table
– Decision table adalah sebuah matrix
yang menunjukkan condisi dimana
sebuah keputusan dibuat, dan aksi yang
akan terjadi dan bagaimana keduanya
dihubungkan
– Decision table tepat jika hasilnya lebih
dari satu output atau action, semuanya
tergantung dari hasil kombinasi input
Pendekatan no-algorithmic
• Contoh decision table
condition and actions
condition
is budget likely to be overspent ?
is overspent likely to exceed 2%?
Actions
No Action
Send Letter
Set up meeting
Rule 1
Rule 2
Rule 3
N
-
Y
N
Y
Y
X
X
X
X
Pendekatan non-algorithmic
• Pre and post condition
– Sesuai dengan namanya, tekbik ini
berkonsentrasi pada menyediakan
jawaban atas pertanyaan berikut:
• Kondisi apa yang harus dipenuhi sebelum
operation di jalankan ?
• Kondis apa yang akan diterapkan, jika
operation sudah dijalankan
Pendekatan non algorithmic
• Contoh pre dan post condition
– Campaign.assignstaff(creativeStaff)
– Pre-condition : creativeStaffObject is
valid
– Post-condition: sebuah link dibuat
antara CampaignObject dan
creativeStaffObject
Pendekatan Algorithmic
• Sebuah algoritma menggambarkan logik
internal dari sebuha proses atau
keputusan yang dibagi kedalam langkahlangkah kecil.
• Algoritma juga memuat urutan
pengerjaannya.
• Teknik algoritma biasanya selalu
digunakan selama design method, ini
dikarenakan designer memperhatikan
implementasi requirement yang efisien,
dan karena harus memilih algoritma yang
tepat.
Pendekatan algorithmic
• Structure English
– Adalah semacam dialek Inggris tertulis yang
merupakan antara bahasa non-technical dan
bahasa pemrograman
– Struktur logikal yang ada terlihat jelas melalui
keyword dan indent. Tetapi, keyword yang
terlalu spesifik terhadap bahasa pemrograman
tertentu sebaiknya dihindari
– Prinsip utama adalah
• sebuah spesifikasi dibuat dari beberapa kalimat
sederhana. Masing masing terdiri dari sebuah
statement sederhana atau perhitungan
• Statement hanya dapat digabungkan dengan cara
tertentu yaitu sequence, selection atau iteration.
Pendekatan Algorithmic
• Contoh structured English
If client contact is ‘Sushila’
set discount rate to 5%
Else
set discount rate to 2%
Endif
Pendekatan algorithmic
• Pseudocode
– Pseudocode berbeda dengan structured
english, karena pseudocode lebih
mendekati bahasa pemrograman
tertentu.
– Walaupun ada beberapa dialek
pseudocode, masing masing mengacu
pada bahasa pemrograman tertentu.
Pendekatan algorithmic
• Contoh pseudocode
{
}
{ while more adverts:
next advert;
get advertcost;
cumcost = cumcost + advertcost;
endwhile
}
{ campaigncost = cumcost x ohrate;
get campaignbudget;
case campaigncost >= campaignbudget:
return warningflag;
endcase;
}
Pendekatan algorithmic
• Activity diagram
– Activity diagram dapat digunakan untuk
spesifikasi operation
Object Constraint Language
• OCL menyediakan bahasa formal untuk
batasan yang ada.
• Biasanya OCL akan terdiri dari:
– Context, yang menjelaskan sebuah domain
dimana expression bernilai valid
– Property, milik dari instance, sesuai context
dari expression. Properties mungkin termasuk
attribute, association, dan query operation
– OCL operation, yang diterapkan oada
expression. Operation termasuk operator
aritmetika, set operators, dan tipe operator
OCL
• Contoh OCL
OCL expression
Person
self.gender
Company
self.employee->select (age <60)
Interpretation
in the context of a spesific person,
the value of the property 'gender' of
the set of employees of a company
whose age is less than 60
Creating an operation
spesification
• Penulisan spesification dibedakan
dengan jenis tulisan.
– Spesification structure : biasanya
digunakan Arial
– Content : biasanya digunakan courier
• Contoh
Operation specification : checkCampaignBudget
Operation intent : return difference between campaign
budget and actual costs