280 likes | 575 Views
Kejuruteraan Perisian. Isu-isu semasa rekabentuk sistem Rekabentuk perisian masa-nyata (real-time system). REKABENTUK SISTEM (3). Isu-isu rekabentuk sistem. Kemodularan (modularity) dan peringkat abstrakan Rekabentuk secara kerjasama (collaborative) Rekabentuk antaramuka pengguna
E N D
Kejuruteraan Perisian • Isu-isu semasa rekabentuk sistem • Rekabentuk perisian masa-nyata (real-time system) REKABENTUK SISTEM (3)
Isu-isu rekabentuk sistem • Kemodularan (modularity) dan peringkat abstrakan • Rekabentuk secara kerjasama (collaborative) • Rekabentuk antaramuka pengguna • metaphors, mental model, navigation rules, look and feel • cultural issues • user preferences • Keserempakan (concurrency) • Corak dan gunasemula rekabentuk
Kemodularan (modularity) dan peringkat abstrakan • Rekabentuk modul mempunyai definisi yg jelas tentang data input dan output serta tujuan modul dinyatakan. • Pemeriksaan modul senang dibezakan supaya ianya melaksanakan tugas yang diberikan. • Modul diorganisasi kepada hirarki, yang merupakan hasil penghuraian atau abstrakan (membolehkan pemeriksaan sistem pada satu peringkat pada satu masa tertentu)
Kemodularan (modularity) dan peringkat abstrakan (samb) • Contoh pengabstrakan: • Modul yg menyusun elemen-elemen dalam senarai L. • Abstrak awal ialah: • Menyusun L dalam susunan menaik • Peringkat abstrak seterusnya: • Dalam bentuk algoritma tertentu • Do while I is between 1 and (length of I)-1 • Set Low to index of smallest value in L(I), …,L(Length L) • Interchange L(I) and L(Low) • EndDo • Memudahkan pembangun fokus pada maklumat yg diperlukan sahaja.
Kemodularan (modularity) dan peringkat abstrakan (samb) • Peringkat abstrakan • Komponen pada satu peringkat menerangkan lebih mendalam komponen pada peringkat atasnya (lebih abstrak) • Membantu memahami masalah yg diutarakan oleh sistem dan penyelesaian yg dicadangkan oleh rekabentuk. • Menggalakkan information hiding dimana setiap komponen menyorok pemilihan rekabentuk daripada komponen lainnya. • Kemodularan membenarkan komponen yg berlainan direkabentuk secara berasingan.
Rekabentuk secara kerjasama (collaborative) • Dalam kebanyakan projek, rekabentuk sistem tidak dihasilkan oleh individu. • Kebiasaannya, pasukan kerja bekerjasama untuk menghasilkan rekabentuk dengan menugaskan bahagian yg berlainan kepada individu yg berbeza. • Timbul isu seperti: • Siapa yg layak untuk merekabentuk aspek sistem • Dokumentasi rekabentuk yg difahami oleh semua • Kordinasi rekabentuk komponen yang sama • Punca-punca kegagalan rekabentuk
Rekabentuk secara kerjasama (samb) • Masalah utama: perbezaan individu didalam pengalaman, pemahaman dan kesukaan/rujukan (kelakuan kumpulan) • Punca-punca kegagalan rekabentuk: • Kurang pengetahuan (skema dan proses rekabentuk,dll) • Had kognitif (kekangan, simulasi mental, pengembangan dan penggabungan penyelesaian di dalam rekabentuk)
Rekabentuk secara kerjasama (samb) • Cara mengurangkan masalah: • Bina persefahaman antara kumpulan kerja • Guna peralatan ‘groupware’ untuk memberi pendapat serta pemilihan idea (kerahsiaan individu) • Maklumbalas dalam bentuk nota, prototaip, grafik untuk menggalakkan komunikasi • Guna piawai rekabentuk yg disepakati bersama (interface layout design) • Bina produk yang mengambilkira kelebihan individu (kepakaran bidang)
Rekabentuk antaramuka pengguna • Antaramuka pengguna merupakan rekabentuk yg mencabar kerana setiap individu mempunyai gaya yg tersendiri bagi maklumbalas dan pemahaman kerja (guna windows atau arahan) • Isu-isu rekabentuk antaramuka: • Metaphors- asas tema, imej dan konsep yg boleh dikenali dan dipelajari • Mental model- organisasi dan perwakilan data, fungsi, tugas dan peranan
Rekabentuk antaramuka pengguna (samb) • Isu-isu rekabentuk antaramuka: (samb) • Navigation rules- pemindahan antara data, fungsi, aktiviti dan peranan • Look- sifat paparan sistem yg mengandungi maklumat untuk pengguna • Feel- teknik interaksi yg menyediakan tarikan pengalaman untuk pengguna • Matlamat antaramuka: membantu pengguna memperolehi capaian cepat kepada kandungan sistem tanpa hilang pemahaman semasa mereka menggunakan sistem.
Rekabentuk antaramuka pengguna (samb) • Antaramuka pengguna boleh menggabungkan pelbagai variasi teknologi spt agen (bots), hypertext, bunyi, 3D, video dan alam maya. • Antaramuka yg efektif mengambilkira 2 isu utama: • Isu budaya (cultural) • perbezaan dari segi nilai kepercayaan, warga, jantina, jawatan, umur dan korporat.
Rekabentuk antaramuka pengguna (samb) • Isu budaya (samb) • Untuk sistem multi-budaya, perlu hapuskan rujukan budaya spesifik (biases) di dalam antaramuka (manual, mesej, label, ikon dll) • Guna antaramuka bebas biases untuk ubahsuai kepada budaya yg menggunakan perisian. • Isu rujukan pengguna (preferences) • Bergantung kepada jenis individu atau ahli kumpulan pekerja (isu kesukaan pengguna). • Penggunaan terminologi, kepadatan maklumat dan jenis aksara (bentuk) pada antaramuka.
Corak dan gunasemula rekabentuk • Kebanyakan sistem dibina menyerupai beberapa aspek sistem sebelumnya. • Sistem mungkin terdiri dari beberapa siri aplikasi yg mempunyai fungsian yg hampir serupa tetapi digunakan pada persekitaran yg berlainan (cth: sistem kalendar) • Corak rekabentuk (design pattern) mengenalpasti persamaan struktur rekabentuk sistem yg mungkin berguna untuk digunasemula bagi sistem akan datang.
Corak dan gunasemula rekabentuk (samb) • Corak rekabentuk boleh terdiri daripada kod aturcara, kelas objek, ujian dan dokumentasi. • Cabaran ialah untuk menghasilkan corak rekabentuk yg tidak memerlukan pengubahsuaian langsung. • Pembangun perlu membina corak rekabentuk yang tidak terikat kepada mana-mana spesifik sistem dengan mengambilkira keperluan sistem sekarang dan pada masa hadapan.
Keserentakan (concurrency) • Kebanyakan sistem memerlukan kepada beberapa tindakan/aksi secara serentak (tidak berjujukan). • Cth: sistem kawalan air boleh terdiri dari banyak sensor yg melaporkan sifat seperti suhu, kelajuan, keasidan dan komposisi kimia. Rekabentuk sistem mesti menyertakan laporan sensor secara nyata apabila sifat-sifat air tersebut berubah.
Keserentakan (samb) • Sistem masa-nyata (real-time) • Sistem yang membuat pemerhatian dan mengawal persekitarannya. • Biasanya digabungkan dengan peranti perkakasan: • Sensors- mengumpul data daripada persekitaran sistem • Actuators- menukar persekitaran sistem • Masa adalah kritikal. Sistem masa nyata mesti memberi maklumbalas di dalam tempoh yg dinyatakan
Keserentakan (samb) • Sistem masa-nyata ialah perisian sistem dimana pengfungsian sistem yg betul bergantung kepada keputusan yg dihasilkan oleh sistem dan pada masa hasil keputusan tersebut dikeluarkan. • Sistem ini biasanya menghasilkan tindakbalas dalam tempoh yang spesifik: • Periodic stimuli. Stimuli which occur at predictable time intervals (in seconds) • Aperiodic stimuli. Stimuli which occur at unpredictable times (unexpected power failure)
Keserentakan (samb) Model sistem masa-nyata
Keserentakan (samb) • Senibina sistem masa-nyata • Senibina sistem mesti membenarkan pertukaran kawalan yg pantas antara pengendali stimulus yg berubah mengikut masa. • Masalah utama: memastikan kekonsistenan data yg dikongsi antara komponen yg dijalankan pada masa yang sama (concurrent) • Cara mengatasi: sistem biasanya direkabentuk sebagai proses-proses yg bekerjasama dengan kawalan sistem yg mengawal kesemua proses tersebut.
Keserentakan (samb) Sensor/actuator processes
Keserentakan (samb) • Synchronization merupakan satu kaedah bagi membenarkan dua proses/ aktiviti berjalan serentak tanpa gangguan antara satu sama lain. • Mutual exclusion ialah satu cara synchronizaton dimana ia memastikan apabila satu proses sedang mencapai elemen data, tiada proses lain dapat mengubah elemen data tersebut (data locked)
Sistem masa-nyata • Monitoring and control systems • Important class of real-time systems • Continuously check sensors and take actions depending on sensor values • Monitoring systems examine sensors and report their results • Control systems take sensor values and control hardware actuators
Sistem masa-nyata (samb) • Burglar alarm system • A system is required to monitor sensors on doors and windows to detect the presence of intruders in a building • When a sensor indicates a break-in, the system switches on lights around the area and calls police automatically • The system should include provision for operation without a main power supply
Sistem masa-nyata (samb) • Sensors • Movement detectors, window sensors, door sensors. • Voltage drop sensor • Actions • When an intruder is detected, police are called automatically. • Lights are switched on in rooms with active sensors. • An audible alarm is switched on. • The system switches automatically to backup power when a voltage drop is detected.
Sistem masa-nyata (samb) • Real-time programming • Hard-real time systems may have to programmed in assembly language to ensure that deadlines are met • Languages such as C allow efficient programs to be written but do not have constructs to support concurrency or shared resource management • Ada as a language designed to support real-time systems design so includes a general purpose concurrency mechanism
Sistem masa-nyata (samb) • Java supports lightweight concurrency (threads and synchonized methods) and can be used for some soft real-time systems • Java 2.0 is not suitable for hard RT programming or programming where precise control of timing is required • Not possible to specify thread execution time • Uncontrollable garbage collection • Not possible to discover queue sizes for shared resources • Not possible to do space or timing analysis
Kuliah minggu depan Rekabentuk antaramuka pengguna (Keperluan Fasa 3 Projek Berkumpulan)