Kejuruteraan Perisian

27
Kejuruteraan Perisian REKABENTUK SISTEM (3) Isu-isu semasa rekabentuk sistem Rekabentuk perisian masa-nyata (real-time system)

description

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 - PowerPoint PPT Presentation

Transcript of Kejuruteraan Perisian

Page 1: Kejuruteraan Perisian

Kejuruteraan Perisian

REKABENTUK SISTEM (3)

Isu-isu semasa rekabentuk sistem Rekabentuk perisian masa-nyata (real-time system)

Page 2: Kejuruteraan Perisian

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

Page 3: Kejuruteraan Perisian

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)

Page 4: Kejuruteraan Perisian

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.

Page 5: Kejuruteraan Perisian

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.

Page 6: Kejuruteraan Perisian

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

Page 7: Kejuruteraan Perisian

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)

Page 8: Kejuruteraan Perisian

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)

Page 9: Kejuruteraan Perisian

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

Page 10: Kejuruteraan Perisian

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.

Page 11: Kejuruteraan Perisian

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.

Page 12: Kejuruteraan Perisian

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.

Page 13: Kejuruteraan Perisian

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.

Page 14: Kejuruteraan Perisian

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.

Page 15: Kejuruteraan Perisian

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.

Page 16: Kejuruteraan Perisian

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

Page 17: Kejuruteraan Perisian

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)

Page 18: Kejuruteraan Perisian

Keserentakan (samb)

Real-timecontrol system

ActuatorActuator ActuatorActuator

SensorSensorSensor SensorSensorSensor

Model sistem masa-nyata

Page 19: Kejuruteraan Perisian

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.

Page 20: Kejuruteraan Perisian

Keserentakan (samb)

Dataprocessor

Actuatorcontrol

Actuator

Sensorcontrol

Sensor

Stimulus Response

Sensor/actuator processes

Page 21: Kejuruteraan Perisian

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)

Page 22: Kejuruteraan Perisian

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

Page 23: Kejuruteraan Perisian

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

Page 24: Kejuruteraan Perisian

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.

Page 25: Kejuruteraan Perisian

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

Page 26: Kejuruteraan Perisian

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

Page 27: Kejuruteraan Perisian

Kuliah minggu depan

Rekabentuk antaramuka pengguna

(Keperluan Fasa 3 Projek Berkumpulan)