1. Formalisasi Standard
- Notasi formal untuk komunikasi
Spesifikasi dapat dibuat sebagai bahasa yang ‘umum’ antar tim desain,
desainer dan pembuat sistem. Ide2 tentang tampilan layar dapat dengan muda
divisualisasikan dengan bantuan paket2 untuk menggambar (drawing tool), tetapi perilaku sistem yang dinamis sulit
dikomunikasikan.
Sering spesifikasi formal menjadi ambigu sehingga deskripsi
sistem menjadi ambigu pula salah !
Simbol yang digunakan dan manipulasinya mempunyai arti dalam
sistem formal, tetapi interpretasi simbol tersebut dapat berbeda untuk setiap
orang.
Contoh : layout layar untuk warna (x,y)
koordinat (0,0)
(x,y) = (0,0) = ? (kiri
bawah atau kanan bawah)
ambigu
- Notasi Formal untuk analisa
Spesifikasi
formal dapat dianalisa dalam berbagai cara :
1)
Periksa konsistensi internal,
Lihat jika setiap statement dibuat dalam satu bagian yang
saling berkontradiksi. Contoh : umumnya tidak memungkinkan membangun system
yang sesuai dengan properti antara teori dan praktek.
2)
Periksa konsistensi eksternal,
Yang berhubugan dengan program (bukan keuntungan dalam IMK). Tugas
verifikasi ini merupakan keuntungan dari spesifikasi formal dari sudut pandang
RPL.
3)
Periksa konsistensi eksternal,
Yang berhubungan dengan kebutuhan2, beberapa diantaranya seperti properti
keamanan, sistem khusus, dll. Kebutuhan lainnya tentang system khusus misalnya
fungsi yang dapat diakses hanya dengan penekanan kurang dari 3 keystrokes.
c. Notasi Berorientasi Model
Dimulai pada akhir 1970 dan 1980
untuk menyediakan software engineer kemampuan menggambarkan dan alasan tentang
komponen software yang menggunakan konstruksi matematika seperti konstruksi
yang digunakan dalam bahasa pemrograman. Notasi matematika ini menggambarkan
perilaku dari system software yang didekatkan dengan bagaimana diprogramkan.
Ada 2 yang digunakan : Z dan VDM, digunakan untuk spesifikasi interface.
Z digunakan untuk menspesifikasikan editor, window manager dan toolkit grafik
Presenter.
1)
Simple Sets
Set yang paling sederhana (standard) : R = bilangan real, Z = bilangan integer, N =
bilangan asli. Yang non standard didefinisikan sebagai set baru dengan
melisting angka-angka finite dari nilai yang mungkin dari set tersebut. Misal bentuk2 geometri dalam grafik.
Shape_type ::= line | ellipse |
rectangle
Keystrokes ::= a | b | … | z | A | B
| … | 0 | … | 9 | cursor_left | …
Atau
[Keystrokes].
Set2 tersebut dapat dibuat lebih kompleks lagi, meliputi tupel yang
terurut, tidak terurut, yang disebut skema dalam Z, deretan dan fungsi.
Contoh : koordinat (x,y) untuk titik (point) memerlukan 2
tupel (pasangan terurut) dari R :
Point ::= R x R;
misal Point (1.2, -3.0)
Bentuk geometri dalam 4 tupel :
Shape_type x R x R x Point
Skema Z :
Shape
type
: Shape_type
wid
: R
ht
: R
centre
: Point
Jika menggunakan deklarasi skema, shape s dengan width atau centre dari s
dituliskan sebagai s.wid atau s.centre (seperti
bahasa pascal dengan tipe record, C dengan ‘struct’)
Deretan (sequence) dapat mempunyai panjang tetap seperti
array pada pascal. Dalam matematika panjang deretan bisa bervariasi. Dua
deretan a dan b dapat digabungkan dengan memberikan deretan baru, ditulis
sebagai a b – tipe list dalam
LISP.
Function : perhitungan standard dalam bahasa pemrograman. Fungsi
memetakan elemen2nya dari satu himpunan ke himpunan lainnya dan berlaku juga
sebagai ‘kamus lookup’. Contoh : sqrt atau log.
Bergantung pada konteks yang digunakan, fungsi dalam spesifikasi
diimplementasikan dengan fungsi tingkat program atau struktur data. Contohnya
adalah fungsi untuk grafik, misal
[Id]
Shape_dict == Id Shape
Set Id adalah set dari identifier yang akan digunakan sebagai label dari
shape. Objek shapes dari tipe shape_dict adalah label yang memetakan fungsi ke
shapes. Jika id adalah label khusus maka kamus shapes dapat memetakan ke
persegi panjang-rectangle dengan lebar 2.3, tinggi 1.4 dan pusat (1.2, -3),
dituliskan sebagai :
Shape(id).type
= rectangle Shape(id).wid = 2.3
Shape(id).height = 1.4
Shape(id).centre = (1.2, -3.0)
Shape_dict sebagai fungsi parsial. Fungsi parsial tidak
dapat memetakan semua elemen sumber ke elemen himpunan tujuan. Tidak semua
dalam Id adalah argument yang valid untuk shapes. Himpunan nilai yang valid
disebut domain dari shapes ‘dom shapes’
dom shapes =
{5,1,7,4}
shapes(5),shapes(1),shapes(7),shapes(4)
adalah valid.
2)
Zdraw – state dan invariant (sebuah system grafik
sederhana)
Spesifikasi
orientasi model sering ditulis dalam model yang imperative. Satu mendefinisikan
state dari system dan kemudian operator sebagai efeknya. State dan operator
dalam Z ditulis dalam notasi skema.
line
rectangle ellipse
Unselect
SKEMA
State identifikasi/
definisi dari komponen
shapes : shape_dict sistem grafik
selection : P id
selection Í dom shapes
Init Sistem
model geometri.
State State tanpa bentuk (shapes) yang
dom shapes = { } dibuat/ dipilih
selection = { }
Init Definisi
dari state awal
State yang menghilangkan predikat
dom shapes = { }
- Issue for model-oriented notations
‘Framing problems’, terlalu mengerti tentang sesuatu yang akan terjadi
secara eksplisit, tetapi sulit untuk memformulasikan (jika sesuatu tidak
disebutkan, diasumsikan tidak berubah). Misal pada state inisialisasi Init,
tidak disebutkan secara eksplisit bahwa bentuk yang dipilih adalah kosong. Pada operasi Unselect sangat penting secara
eksplisit disebutkan bahwa kamus shape tetap sama setelah operasi.
‘Separation’, antara fungsionalitas sistem dan presentasi. Dalam contoh
sebelumnya, ada identifikasi kamus bentuk yang dibuat, tetapi tidak disebutkan
bagaimana bentuk2 tersebut dipresentasikan ke layar user. Informasi presentasi
tidak diperlukan untuk mendefinisikan bagaimana system bekerja secara internal,
tetapi penting untuk tepat tentang isu presentasi tentang fungsionalitas
system.
- Notasi Aljabar
Pada prinsipnya, spesifikasi aljabar tidak membuat gambaran dari komponen
sebuah objek tetapi lebih ke seperti apa gambaran objek terlihat dari luar.
- Aljabar versi Zdraw (lihat contoh sistem grafik sebelumnya).
Operasi ‘select’ : memilih objek terdekat dari pilihan yang ada
Operasi ‘unselect’ : menghapus pilihan yang ada.
Spesifikasi aljabar tidak menyediakan representasi/ model eksplisit dari
sistem. Tipe-tipe yang penting dari state dideklarasikan dengan set operasi
yang memanipulasinya. Set dari aksioma kemudian secara implicit mendefinisikan
state system.
Algebraic-draw =
types
State, Pt
operations
init : state
new_ellipse,
new_rectangle, new_line : Pt x State State
move : Pt x
State State
unselect :
State State
delete :
State
State
axioms
for all st ÎState; p, p’ Î Pt ·
1.
delete(new_ellipse(st)) = unselect(st)
2.
delete(new_rectangle(st)) = unselect(st)
3.
delete(new_line(st)) =
unselect(st)
4.
move(p, unselect(st)) =
unselect(st)
5.
resize(p, unselect(st) =
unselect(st)
6.
move(p, move(p’,st)) =
move(p, st)
7.
resize(p, resize(p’,st)) = resize(p, st)
8.
delete(delete(st)) =
delete(st)
Pertama mendeklarasikan tipe penting di spesifikasi yang akan bertindak
sebagai argument pada beberapa operasi, dan state system grafik secara
keseluruhan. Tidak ada informasi tersedia tentang bagaimana konstruksi dari
tipe-tipe ini. Operasi dibuat dan didefinisikan sebagai input dan output.
Operasi new_ellipse didefinisikan untuk satu titik dan current state sebagai
argument dan mengembalikan state baru. Operasi init tidak mengambil argument
dan menghasilkan satu state. Tipe dan operasi bersama2 membentuk signature dari
spesifikasi AlgebraicDraw.
Aksioma adalah keterhubungan antara bermacam2 operasi. Aksioma
menunjukkan bagaimana operasi berinteraksi dengan lainnya. 3 aksioma pertama
merupakan pembuatan berbagai objek dan kemudian menghapusnya ini tidak
mempunyai efek selain tidak memilih current objek. 2 aksioma berikutnya untuk
memindah dan membentuk ulang ketika tidak ada objek yang dipilih sama sekali.
Aksioma 6 dan 7, memindah dan membentuk ulang terlupakan jika kita melakukan
dua pembentukan ulang pada dua baris sebelumnya seolah-olah kejadian pertama
tidak pernah terjadi. Pada pendekatan
berorientasi model, akan lebih mudah menspesifikasikan bahwa operasi
perpindahan adalah kumulatif – dua perpindahan sebelumnya adalah sama dengan melakukan
satu pemindahan yang sama dengan jumlah dari dua pemindahan. Aksioma yang
terakhir adalah aksi menghapus yang semakin terlupakan karena idempotent –
melakukan penghapusan yang kedua adalah sia-sia.
- Membaca urutan dalam formula aljabar
resize(p,
move(p’, new_rectangle(st)), berarti melakukan new_rectangle, kemudian
melakukan pemindahan dan kemudian pembentukan ulang. Akan lebih jelas jika
dituliskan sebagai
st1
= new_rectangle(st)
st2
= move(p’, st1)
st3
= resize(p, st2)
axiom 1 dan 5
dapat dituliskan
new_ellipse; delete = unselect
unselect; resize(p) = unselect
- Logika Temporal dan Lainnya
Huruf
digunakan untuk merepresentasikan statemen logika. Misal
(p Ù q) Ú r , dimana
p = ‘my nose is green’
q = ‘I’ve got ears like a donkey’
r = ‘I’m called Alan’
Logika predikat dan logika proporsional (P(x) Ú Q(x)) digunakan sebagai bagian dari
formalisasi. Kedua logika ini merupakan keluarga logika yang sangat sederhana
yang dibentuk sebagai bagian dari filosofi dan logika matematika.
Simbol-simbol pada logika temporal.
Simbol dasar
adalah ÿ ¯
"
$
Ø (always, eventually, for all, there
exist, not)
ÿØ = never
contoh :
ÿ(rains on Tuesday) = “always rains on
Tuesday”
ÿ(Øp) it is always not true when p = p
never happens
ÿØ(computer explodes)
ÿ(user types ‘print fred’ Þ
¯ the laser printer prints the file
‘fred’)
= at all time, if the
user types the command ‘print fred’, then
eventually the file ‘fred’ will be printed
on the laser printer.
Operator
tambahan
Eventually before
the end of this interval
p until q – p
harus benar sampai q benar
p before q –
p harus benar pada beberapa saat sebelum
q benar
p until q, p benar hingga q benar
lebih lemah dari ÿp, p benar selamanya
p before q lebih kuat dari ¯p.
(¯ user types ‘print fred’) Þ the laser printer prints the file ‘fred’
=
if at any time in the future the user types ‘print fred’, then the
system ought to print the file ‘fred’ now.
- Logika Deontic
Logika
deontic meliputi konsep agent (human, corporate dan computer) yang
bertanggungjawab dan saling
ketergantungan di antara agent.
Operator umum
: permission (per), obligation(obl). Kedua operator ini menggunakan dua
argument; pertama adalah siapa yang memiliki permission atau obligation dan
yang kedua adalah apakah mereka diijinkan atau diwajibkan untuk dibuat benar.
Contoh :
perbaikan logika temporal sebelumnya,
Misal agent user ‘Jane’
agent laser printer
‘lp3’
owns(Jane,file ‘fred’) Þ per(Jane, request(Jane,’print fred’))
Clumsy
2. Model-Model Interaksi
System yang interaktif memiliki istilah ini, konsisten, memiliki
fasilitas undo yang universal, dan lain-lain.
- Model PIE
Model PIE adalah model black box, tidak untuk representasi arsitektur
internal dan konstruksi dari system computer, tetapi menggambarkan input dari
user dan output ke user. Perbedaan antara display sesaat dari system dan hasil
yang permanent adalah sentral dari model PIE. Display disimbolkan D dan hasil
disimbolkan dengan R. Prinsip observability merupakan hubungan antara display
dan hasil.
Statement formal dari predictability adalah tentang state internal dari
system. Ini bukan model black box. Pertama, state akan opaque-buram, tidak akan
terlihat strukturnya hanya dalilnya. Kedua, state sebenarnya tidak akan
dibicarakan hanya sifat idealnya. Akan merupakan state minimal bagi bakal
perilaku eksternal, ini yang disebut sebagai efek (E).
Aksi user memberi perintah (commands = C) biasa disebut Program. Semua
sejarah dari perintah user disebut program (P = seqC) dan efek current
dikalkulasikan dari sejarah dengan menggunakan fungsi interpretasi (I).
R
result
I
P E(ffect)
display
D
Fungsi
transisi state-nya :
doit : E x P E
fungsi doit
mengambil present state e dan beberapa perintah user p, dan memberikan stat
baru setelah user memasukkan perintah doit(e,p).
Fungsi
interpretasi(I) berrelasi dengan aksioma berikut :
doit(I(p),q) = I(p q)
doit(doit(e,p),q) = doit(e, p q)
Diagram PIE
dapat dibaca pada level abstraksi yang berbeda.
C : keystrokes atau klik mouse
C = {‘a’, ‘b’, …, ‘0’, ‘1’, …, ‘*’, ‘&’, …}
D : display fisik
D = pixel_coord RGB_value
R : output yang dicetak
R = ink on paper
Model PIE merupakan interpretasi pada level fisik/ leksikal. Lebih
berguna lagi untuk mengaplikasikan model pada level logika.
‘select
bold font’
window,
button, field, …
Model ini dapat diaplikasikan di banyak level abstraksi.
- Predictability & Observability
R
result
I
P E
observe
O D
Formalisasi property. Kita dapat menentukan hasil dari display jika ada
fungsi transparansi dari display ke hasil :
- Reachability dan Undo
Suatu sistem
dapat dikatakan tercapai (reachable) jika dari satu state dalam sistem dapat
mencapai satu state lainnya.
" e, e’ Î E · ($ p Î P · doit(e,p) = e’)
Contoh :
memindah/ mengkopi dokumen antar layar.
Kasus khusus
dari reachability : UNDO
" c Î C · doit(e,c undo) = e
Berawal dari
state e. Kemudian kita lakukan satu perintah c dan diikuti dengan perintah
khusus undo. Maka state nya akan sama seperti awalnya.
- Model-model Interaksi Lainnya
§ Windowing system
§ Timing
§ Attention
§ Non determinism
§ Dynamic pointers
Model PIE
merupakan model event-in/ status-out. User melakukan event (dari C) dan system
meresponnya dengan status (display).
3. Status / Event Analysis
Perbedaan status dan event adalah being dan doing. Status selalu memiliki nilai yang dapat direfer. Event merupakan kejadian pada saat tertentu. Analisis status event ini terlihat di layer system yang berbeda, user, layer (presentasi), dialog dan aplikasi. Pencarian event tercapai di setiap level dan status berubah pada setiap level. Pengggabungan dengan analisa psikologi yang naïf dari batasan presentasi membuat desainer memprediksi kesalahan dan perbaikan penting lainnya.
Properti event : waktu dan kalender.
Brian berjanji bertemu Alison untuk menonton bioskop jam 8 kurang 20. Dia berhenti bekerja 5 menit sebelumnya dan melihat ke jamnya terus menerus. Setiap beberapa menit, ia melihat jamnya. Pada saat jamnya menunjukkan jam 8 kurang 24 dia langsung pergi. Sebenarnya jam Brian memiliki alarm dan dia dapat melakukan setting jam 7:35 tetapi dia tidak tahu bagaimana cara melakukan settingnya.
- Status : jamnya Brian, yang selalu menunjukkan waktu (dapat kontinyu maupun diskrit)
- Event : waktu yang menunjukkan 7:35. Brian berhenti bekerja.
- Polling : keadaan di mana Brian melihat ke jamnya terus menerus (periodic). Polling adalah kegiatan normal yang orang lakukan seperti mesin, merupakan cara standard untuk mengubah status menjadi event.
- Actual vs perceived : event Brian setelah jam 7:35. Brian tidak melihat jamnya pada saat yang benar. Actual event menjadi perceived event beberapa menit setelah Brian melihat jamnya kembali.
- Granularity : jam menunjukkan 7:35 dan ulang tahun Brian merupakan event, tetapi beroperasi pada rentang waktu yang berbeda.
f.
Implikasi pada perancangan
Agar event yang dicapai user dapat pada skala waktu yang
tepat, kita harus dapat memprediksi skala waktu event pada teknik interface
yang bermacam2. Mempresentasi informasi sederhana pada layer atau menyebabkan
event pada interface tidak menjamin bahwa event akan tercapai seperti keinginan
user.
g. Psikologi naif
Psikologi ini stimuli apa yang penting dan ke mana atensi
user difokuskan. Pertama dengan memprediksi ke mana user mencari, yaitu dari
menggerakkan mouse, text insertion point, screen. Jika kita mengetahui ke mana
user beratensi, kita dapat memberikan informasi. Perubahan focus visual user
menjadi penting dan membuat event user tercapai. Kedua adalah event yang segera
meskipun kita belum mengetahui ke mana user beratensi. Dan yang terakhir adalah
experience closure, merasa telah lengkap melakukan sesuatu dan bersiap untuk
sesuatu yang lain. Implikasinya pada persepsi dan aksi.
Contoh : email interface
File
system mailtool screen user
Mail is ,
Received Polls
See file is changed
change
Icon -
Polls
Perceived
Event
for user
Jika ‘SEND’ dihit, pesan akan terkirim – ini event. Event dari penerimaan mail kemudian
direfleksikan ke perubahan status dari system file. Pada workstation yang
sedang berada pada mailtool, icon ‘empty mailbox’ terlihat. Mailtool tidak
berubah segera, tetapi secara periodic memeriksa file jika adalah yang berubah
– disebut polls. Setelah beberapa saat, mailtool poll file dan melihat ada
perubahan terjadi. Saat ini mengubah status dari file system menjadi perceived
event bagi mailtool.
Mailtool perlu memberitahu bahwa
mail telah sampai dan harus membuat event ini tercapai bagi user. Mailtool
melakukan perubahan pada icon-nya, ini adalah perubahan event ke status. Bagi
user, dengan melihat perubahan pada icon, membuat user melakukan polls untuk
membuka mail tersebut. Ada beberapa interface lainnya seperti explicit
examination, audible bell, moving faces.
0 comments:
Post a Comment