Kemungkinan-kemungkinan
rujukan:
Objektif
topik: Pelajar harus faham
apa itu kejuruteraan perisian dan kenapa ia diperlukan. Prinsip-prinsip dan
kaedah-kaedah kejuruteraan perisian juga harus dikuasai secara kasar.
|
Kejuruteraan perisian:
|
Perlunya
kejuruteraan perisian:
(terutama
untuk perisian besar)
–
untuk
memberikan perisian berhemat (kos pembangunan, operasi
dan penyenggaraan yang optimum berbanding faedah penggunaan
perisian)
–
ketepatan
(menurut spesifikasi), keboleharapan (beroperasi dengan betul untuk beberapa masa) dan
ketegapan (dapat menangani keadaan tidak dijangka)
perisian
–
kecekapan
perisian
Kualiti
perisian - pelbagai perspektif:
pemaju: produktiviti bertambah, kos
rendah, guna semula
penyenggara: kod mudah dibaca, ralat
minimum, dokumentasi baik, rekabentuk baik
pengguna: senang digunakan (ramah
pengguna), berfungsi dengan betul, senang dipelarikan, senang diingat
|
Prinsip kejuruteraan perisian:
|
keketatan: set peraturan dan langkah-langkah
yang jelas, terperinci dan perlu dipatuhi
setiap langkah perlukan takrifan jelas
keformalan: set peraturan dan langkah-langkah
yang mempunyai tahap keketatan yang tinggi
berbentuk hukum matematik
♣
pemecahan
masalah yang besar dan kompleks kepada skop-skop yang lebih kecil
♣
penjadualan
aktiviti pembangunan perisian
♣
penumpuan
kepada objektif kualiti berlainan pada satu-satu masa
♣
individu
berlainan untuk tugas pembangunan sistem yang berlainan
Pemecahan
sistem yang kompleks kepada modul-modul yang lebih mudah, yang
dibangunkan secara berasingan dan kemudian digabungkan.
Dua
pendekatan: penguraian dan penggubahan
Setiap
modul perlukan - tahap paduan yang tinggi
: menyumbang kepada tujuan yang sama
- tahap
gandingan yang rendah : kebergantungan rendah di
antara modul
Mengangkat
aspek yang penting daripada perincian suatu objek, fenomena atau fungsi.
Memudahkan
pemahaman sistem yang besar dan kompleks.
Keupayaan
untuk menjangka perubahan yang mungkin terjadi, dari segi produk ataupun
proses.
Penyelesaian
paling umum kepada sesuatu masalah
→ mungkin penyelesaian lebih mudah
→ mungkin guna semula, guna yang
sedia ada
Prototaip,
versi yang meningkat
|
Fasa umum pembangunan perisian:
|
Secara
umumnya, suatu kitar hayat pembangunan perisian mengandungi fasa-fasa
berikut. Sesuatu fasa itu diakhiri oleh batu tanda atau hantaran,
yang merupakan sesuatu yang boleh dilihat (mis.
laporan)
Perancangan:
Fasa
pertama, tapi boleh juga di pertengahan jika berlaku sesuatu di luar jangkaan.
Sebahagian
daripada pengurusan projek perisian
Menentukan
objektif umum, skop kerja, sumber manusia dan peralatan, kos (mis. anggarkan menggunakan model COCOMO), jadual
perancangan kerja (mis. dibantu rajah PERT).
|
|
Model COCOMO (Constructive Cost Model) asas: Usaha (dlm bulan-manusia),
E = A (Nrbk)b Tempoh (dlm bulan), D = C (E)d Nrbk adalah bil. baris kod (ribu), dan dgn nilai-nilai: A = 2.4 (utk projek asas) 3.0 (utk projek pertengahan) 3.6 (utk projek termaju) b = 1.05 (utk projek asas) 1.12 (utk projek pertengahan) 1.20 (utk projek termaju) C = 2.5 (utk projek asas) 2.5 (utk projek pertengahan) 2.5 (utk projek termaju) d = 0.38 (utk projek asas) 0.35 (utk projek pertengahan) 0.32 (utk projek termaju) |
Carta PERT (Program Evaluation and Review Technique): Graf terarah di mana nod-nod mewakili aktiviti dgn tarikh permulaan (yg menandakan tarikh akhir aktiviti sebelumnya), dan pautan-pautan menunjukkan hubungan di antara aktiviti-aktiviti. |
Analisis
keperluan:
Menyelidik
keperluan perisian.
Kaji
permasalahan semasa, keperluan pengguna, keperluan organisasi dan piawaian.
Mengeluarkan
spesifikasi perisian.
Model-model
analisis – model aliran data (DFD), model gabungan (model semantik), model objek.
Rekabentuk:
Menterjemahkan
fungsi-fungsi/proses-proses dalam spesifikasi keperluan kepada
komponen-komponen perisian.
Memperincikan
keterangan proses dan hubungan di antara proses.
Memecahkan
kepada bentuk modul yang berstruktur, biasanya ditulis dalam pseudokod.
Membabitkan
pertimbangan antaramuka pengguna, pangkalan data, bentuk input, laporan
dihasilkan
Aktiviti
– rekabentuk senibina, rekabentuk antaramuka, rekabentuk komponen,
rekabentuk struktur data, rekabentuk algoritma.
Pelaksanaan:
Menterjemahkan
rekabentuk terperinci kepada kod aturcara.
Penentusahan
dan pengesahan:
Perisian
disemak dan disahkan dengan menjalankan aturcara menggunakan sampel data dan
dibandingkan dengan output yang dijangkakan.
Juga
semakan perancangan projek, spesifikasi keperluan dan rekabentuk sistem.
Aktiviti
jaminan kualiti perisian.
Teknik
statik (pengamatan hasil kerja atas kertas)
dan teknik dinamik (melibatkan pelaksanaan
aturcara).
Proses
pengujian – pengujian unit, pengujian integrasi, pengujian sistem, ujian
penerimaan (ujian aras – benchmark test; ujian pandu – pilot
test: pengujian alfa – oleh pengguna
diawasi pemaju, pengujian beta – oleh
pengguna tanpa pemaju).
Strategi
pengujian – pengujian atas-ke-bawah, pengujian bawah-ke-atas, pengujian
ketegangan (ketahanan sistem; kegagalan harus secara
‘lembut’).
Operasi
dan penyenggaraan:
Penyerahan
kepada pengguna termasuk latihan, manual, sokongan
teknikal, dsb.
Penyenggaraan
apabila diperlukan perubahan dalam perisian, mis. ralat yang baru dikesan,
keperluan pengguna yang baru, persekitaran peralatan yang berubah, untuk
meningkatkan keupayaan perisian.
Ubahsuai
bahagian tertentu dan diuji.
(proses
perisian)
♠ model air terjun
fasa-fasa sebagai aktiviti berjujukan –
output fasa pertama “mengalir” ke fasa kedua, dan seterusnya
linear; kemajuan mudah dipantau; dipacu dokumen
(output kebanyakan fasa berbentuk dokumen)
masalah
dgn sistem linear - pemajuan perisian tak linear: ralat yg ditemui di fasa
lanjut perlu disuapbalik ke fasa awal
- banyak proses perlu dibekukan
kerana belum masa ditangani
♠ model prototaip (model evolusi)
menangani keperluan yang tidak lengkap: bina
prototaip dahulu
prototaip membantu menjelaskan keperluan
sebenar
dua pendekatan – prototaip penjelajahan,
prototaip pakai-buang
model penjelajahan – bila keperluan perisian susah
dijelaskan secara perinci (mis. sistem kepintaran
buatan): tiada pengesahan dilakukan, perisian diterima jika memadai
dipacu peningkatan
♠ model peningkatan
penyerahan versi dengan fungsi ditambah
berperingkat
♠ model transformasi formal
spesifikasi formal disemak dan disahkan secara
formal, kemudian ditransformasikan kepada bentuk aturcara
menyokong evolusi aturcara kerana perubahan
terkemudian tidak memerlukan mulaan semula, dan boleh dibuat secara konsisten
♠ model lingkaran
metamodel, kerana mengandungi model lain
tak linear
gabungkan model prototaip dan model air terjun
dengan analisis risiko
lingkaran: … → tentukan objektif, alternatif
kekangan → penilaian alternatif, kenalpasti
& selesaikan risiko → membangun dan mengesahkan produk → merancang fasa berikut → …
setiap lingkar boleh gunakan model berlainan
menurut apa yang terbaik
♠ model kod dan baiki
bukan sebenarnya model
pendekatan asal apabila pemajuan perisian
dilakukan oleh orang tunggal dan disediakan untuk khalayak terhad yang mereka
sendiri boleh majukan perisian
Misalan
masyhur: CASE (Computer-Aided Software Engineering)
Integrasi
alatan dalam I-CASE: