Prinsip #1
Desain harus traceable ke analysis model
Dalam perancangan perangkat lunak, segala requirements dari customer akan direpresentasikan dalam analisis model, dan representasi itu digambarkan oleh tiga domain. Yaitu, information domain, functional domain, dan behavioral domain. Jadi dalam perancangannya, semua konten yang ada dalam perangkat lunak yang sedang dirancang harus sesuai dengan tiga domain pada analisis model.
Hal ini agar seorang designer mudah dalam merancang segala requirements yang diberikan oleh customer.
Prinsip #2
Selalu mempertimbangkan arsitektur sistem yang akan dibangun
Perangkat lunak architecture adalah kerangka dari sistem yang akan dibangun. Hal tersebut mempengaruhi antarmuka (interface), struktur data, program control flow dan perilaku, cara testing yang dapat dilakukan, pemeliharaan sistem resultan, dan banyak lagi. Untuk semua alasan ini, desain harus dimulai dengan pertimbangan arsitektur
Principe # 3
Desain dari data sama pentingnya dengan desain dari processing functions.
Data design merupakan elemen penting dari architecture design. Cara dimana data objek direalisasikan dalam desain tidak dapat dibiarkan untuk dicoba. Sebuah struktur system data yang baik membantu untuk menyederhanakan program flow (aliran program), membuat desain dan implementasi komponen perangkat lunak lebih mudah, dan membuat keseluruhan proses lebih efisien.
Principle #4
Interfaces (baik internal dan external) harus didesain dengan hati-hati
Cara dimana antara data flows dan komponen system memiliki banyak kaitan dengan processing efficiency, error propagation, dan design simplicity. Sebuah interfaces yang baik membuat integrasi lebih mudah dan membantu tester memvalidasi component functions.
Prinsip #5
User interface design harus mengarah pada kebutuhan user
Bagaimanapun, sebuah perangkat lunak dibuat untuk memenuhi permintaan-permintaan dari customer. Tetapi apa yang dibangun oleh engineer, belum tentu dipahami oleh customer. Oleh karena itulah user interface design ada. Interface designlah yang akan menjadi penghubung komunkasi antara customer dengan perangkat lunak.
Oleh karena itu, seluar biasa apapun fungsi, data struktur, ataupun arsitektur yang ada pada sebuah perangkat lunak, user interface design lah yang akan menentukan apakah perangkat lunak itu bisa mengakomodir kebutuhan-kebutuhan customer dengan baik atau tidak.Walaupun didalam konstruksi perangkat lunak tersebut terdapat sebuah fungsi solusi untuk menyelesaikan masalah, tetapi jika interface design yang dibuat tidak sesuai dengan permintaan customer, maka ada kemungkinan kebutuhan-kebutuhan customer tidak akan terpenuhi karena user interface designnya tidak mengarah kepada kebutuhan user.
Prinsip #6
Component level design tidak tergantung pada fungsi lain
Component level design haruslah tak bergantung pada fungsi lain. Tiap-tiap fungsi independent dalam sebuah perangkat lunak harus mempunyai dan fokus pada satu tujuan dan hanya satu tujuan. Dengan kata lain, Component level design dari sebuah perangkat lunak harus cohesive.
Principe # 7
Component harus sesedikit mungkin mempunyai ketergantungan terhadap component lain
Dalam memahami prinsip ini, kita bisa mempresentasikannya pada sebauh hububgan keluarga. Anggap dalam sebuah keluarga, seluruh pekerjaan rumah hanya dikerjakan oleh ibu. Memasak, menyuci, menyapu, mengepel, dll. Masing-masing keluarga lainnya, ayah, anak, hanya bertumpu dan bergantung pada ibu. Ketika ibu mereka sakit, sudah dapat dipastikan anggota keluarga lainnya akan kerepotan, dan kebingungan karena mereka harus menggantikan pekerjaan ibunya yang sangat banyak. Hal ini disebabkan rasa ketergantungan anggota keluarga yang lain terlalu besar terhadap ibunya.
Lalu hubungannya dengan perancangan perangkat lunak adalah ketika sebuah fungsi terlalu mempengaruhi fungsi-fungsi lain, maka ketika suatu saat fungsi ini terjadi kesalahan, maka akan berdampak juga pada fungsi-fungsi lain yang dipengaruhi. Hal inilah mengapa dalam perancangan perangkat lunak coupling itu harus rendah.
Principle #8
Representasi design harus mudah dimengerti
Pernahkah anda mendapatkan penjelasan sebuah teori dari seseorang?, lalu penjelasan tersebut tidak jelas, sehingga anda mendapatkan pemahaman yang salah. Hal ini juga berlaku pada proses perangcangan perangkat lunak.
Urutan proses perancangan setelah designing adalah coding. Tujuan dari designing adalah untuk memberikan pemahaman kepada praktisi yang akan men-generate requirement customer menjadi code. Representasi design harus mudah dipahami, jika design sulit dibaca, maka pemahaman praktisi akan salah, sehingga berdampak pada hasil perangakt lunaknya.
Principle #9
Design sebuah perangkat lunak harus berkembang secara bertahap
Dalam dunia perindustrian, kecepatan perkembangan sebuah teknologi kadang tak terkira cepatnya. Perangkat lunak apapun yang dibuat saya yakin tidak akan cukup jika hanya dibuat dan tidak dikembangkan. Jika sebuah perangkat lunak ingin bertahan di dunia industri, maka perangkat lunak tersebut harus terus dikembangkan. Oleh karena itu perangkat lunak harus mempunyai kemampuan untuk diubah, agar bias mengimbangi kecepatan perkembangan dunia teknologi.
Design sebuah perangkat lunak pun harus berkembang secara bertahap. Pada setiap tahapannya, designer harus bekerja keras untuk membuat design sebelumnya menjadi lebih baik. Error-error harus diperbaiki, dan design juga harus lebih simple dan mudah dimengerti.
Kamis, 17 Maret 2011
Terima kasih gan sangat bermanfaat
My blog