.....research.....

Friday, December 09, 2005

BAB 3


METODOLOGI


3.1 PENGENALAN

Pembangunan sesebuah projek perisian memerlukan satu penelitian yang jitu supaya hasil yang diperolehi kelak adalah yang benar-benar memuaskan. Untuk itu, bagi memulakan proses pembangunan perisian banyak perkara perlu diteliti dan diambil kira seperti pasukan pembangun perisian, teknologi perisian yang akan digunakan dan mempunyai jadual kerja yang teratur serta menepati masa. Selain itu, perkara lain yang juga perlu dititikberatkan ialah seperti keperluan yang lengkap daripada pengguna, rekabentuk antaramuka, metodologi dan bahasa pengaturcaraan. Oleh yang demikian, untuk kajian ini pula, pendekatan atau metodologi yang akan digunakan adalah pendekatan RUP (Rational Unified Process). Bab 3 ini secara asasnya akan membincangkan mengenai metodologi yang akan digunakan yang mana merupakan elemen penting untuk memastikan kajian dapat dilaksanakan secara sistematik.

3.1.1 Metodologi
Metodologi didefinisikan sebagai kaedah yang digunakan untuk memberikan panduan dan arah tuju yang betul sepanjang proses pembangunan sistem. Pelbagai faedah akan diperolehi apabila menggunakan metodologi yang betul dalam pembangunan sistem dan sebagai contoh yang paling signifikan ialah proses pembangunan sistem akan berlangsung dengan lancar dan produktif kerana setiap aliran fasa diikuti dan pembangunan sistem juga akan berada dalam skop yang betul dan menepati kehendak pengguna.
Faktor pemilihan metodologi juga penting kerana akan melibatkan masa, kos dan tenaga. Contohnya, mengambil masa yang terlalu panjang untuk menyiapkan sesebuah projek akan menyebabkan had masa atau tempoh masa yang telah ditetapkan oleh pelanggan tidak dapat dipatuhi. Dasawarsa ini, terdapat pelbagai jenis metodologi telah tersedia dan dapat dipecahkan kepada dua jenis iaitu Metodologi Berorientasikan Objek contohnya RUP (Rational Unified Process) dan Metodologi Berstruktur contohnya SSADM (Structured System Analysis And Design Method).

3.1.2 Jenis Metodologi
Terdapat pelbagai jenis metodologi yang digunakan oleh pembangun perisian sebagai kaedah dalam pembangunan sistem. Antaranya adalah seperti Rational Unified Process (RUP), Extreme Programming (XP) dan System Development Life Cycle (SLDC). System Development Life Cycle (SLDC) merupakan metodologi berstruktur yang kebanyakannya digunakan pada abad 90an oleh pembangun-pembangun perisian tetapi nampaknya pada era ICT ini, penggunaan metodologi dalam pembangunan perisian turut mengalami perubahan seiring dengan perkembangan teknologi telekomunikasi. Pendekatan yang semakin mendapat tempat kini ialah pendekatan berorientasikan objek yang telah dipraktikkan oleh syarikat-syarikat gergasi seperti IBM dan Microsoft dan sudah pastilah pendekatan itu ialah RUP dan XP. Dalam kertas kerja ini hanya akan membincangkan tentang pendekatan berorientasikan objek sahaja yang mana salah satunya akan dipilih sebagai metodologi bagi menjayakan projek ini.
i. RUP (Rational Unified Process)
RUP merupakan satu rangkakerja yang telah direkacipta dan dibangunkan oleh Rational Software Corporation iaitu berada di bawa label IBM. RUP adalah satu proses pembangunan dan penyelenggaraan oleh perisian Rational yang mana mengandungi disiplin yang perlu dipatuhi dan diikuti untuk membangunkan sistem. Ia turut menerangkan dengan terperinci cara ataupun kaedah yang betul untuk menyusun sesuatu perisian secara sistematik menggunakan teknik yang terbukti di pasaran dan sesuai untuk kumpulan pembangunan dan projek yang besar.

Antara kebaikan dan kelebihan menggunakan metodologi RUP ialah :
a. Latihan Yang Baik untuk Piawaian
Metodologi RUP ini telah menjadi piawaian dalam pembangunan perisian dan juga telah dijadikan satu subjek di ratusan universiti seluruh di dunia.
b. Proses Menjadi Lebih Praktikal
RUP menjadikan proses lebih praktikal kerana dapat membantu melaksanakan permulaan perancangan projek dengan berkesan, dapat mencari kumpulan pembangun perisian dan meletakkan semua proses yang bakal dilaksanakan untuk tindakan
c. Pendekatan Yang Sistematik
RUP membantu untuk mengenalpasti apakah risiko dan masalah yang bakal dihadapi, dan diteruskan dengan prosedur-prosedur yang perlu dipatuhi sebagai penyelesaian lepada masalah yang dihadapi

ii. XP (Extreme Programming)
Extreme Programming (XP) merupakan satu kaedah yang lebih mementingkan ketepatan dan disiplin dalam pembangunan perisian. Hal ini terbukti apabila metodologi XP ini cukup mementingkan kepuasan di pihak pengguna dan jika terdapat sebarang perubahan pun yang diminta oleh pengguna, pihak pembangun perisian mampu untuk menyelesaikannya walaupun proses pembangunan sistem telah sampai ke penghujungnya. Selain itu, metodologi ini turut mementingkan kerja berkumpulan yang mana keterlibatan menyeluruh daripada setiap ahli kumpulan akan mampu untuk menghasilkan satu perisian yang berkualiti. Amalan dan panduan dalam metodologi XP dipecahkan kepada empat faktor utama iaitu Merancang (Planning), Pengkodan (Coding), Rekabentuk (Designing) dan akhir sekali ialah Pengujian (Testing).



3.1.3 Unified Modelling Language (UML)
Unified Modelling Language atau UML merupakan satu bahasa permodelan piawai yang akan digunakan untuk diimplementasikan bagi menjayakan sesebuah metodologi. Ia digunakan untuk menentukan, menggambarkan, membina dan mendokumentasikan sistem perisian. UML adalah merupakan satu notasi yang mewakili rekabentuk berorientasikan objek dan juga adalah gabungan beberapa model dan diagram yang akan membentuk satu model perwakilan iaitu Konsep Permodelan Data, Permodelan Perniagaan, Permodelan Objek dan juga Permodelan Komponen.

Idea penciptaan UML telah dicetuskan oleh tiga orang ahli metodologi iaitu Grady Booch, James Rumbaugh dan Ivar Jacobson. UML boleh digunakan untuk pelbagai jenis metodologi pembangunan perisian dan sebagai contoh ialah RUP. Antara faktor yang menyebabkan UML menjadi standard bahasa permodelan adalah kerana kepelbagaian penggunaan bahasa pengaturcaraannnya dan akhirnya telah dijadikan satu bahasa bukannya sebuah metodologi.


3.2 STRUKTUR MODEL

Rational Unified Process (RUP) merupakan satu metodologi rekabentuk perisian yang dibangunkan oleh Rational Software Corporation. RUP secara asasnya mempunyai empat fasa iaitu fasa permulaan (inception), fasa penghuraian (elaboration), fasa pembinaan (construction) dan fasa yang terakhir adalah fasa pemindahan (transition). Setiap fasa mempunyai satu atau lebih ulangan. RUP menakrifkan panduan-panduan berikut untuk diikuti oleh kumpulan pembangun perisian sepanjang proses kitar hayat sesuatu produk iaitu:
i. Proses pembangunan secara berulang
Kebiasaannya, keperluan akan berubah-ubah sepanjang proses pembangunan projek dan ini akan menyebabkan permasalahan berlaku dalam senibina dan keperluan pengguna serta kefahaman kepada masalah asal. Dan oleh sebab itu, proses pengulangan atau iteratif akan membolehkan pemahaman yang lebih sempurna kepada projek yang akan dibangunkan melalui proses baikpulih yang akan memfokuskan kepada perubahan–perubahan yang diperlukan. Setiap pengulangan yang berlaku akan membantu untuk mengurangkan risiko terhadap sesuatu projek itu.

ii. Pengurusan keperluan
Ini merupakan satu dokumentasi rangkakerja yang akan diperlukan oleh setiap projek dan RUP akan menjelaskan dengan sebaiknya bagaimanakah cara untuk mendokumentasikan kerja seperti fungsian, masalah atau kekangan, rekabentuk keputusan dan keperluan perniagaan. Kes guna dan Senario adalah merupakan contoh-contoh artifak yang telah ditetapkan oleh proses.

iii. Menggunakan rekabentuk dan senibina berasakan komponen
Senibina yang berasaskan komponen seperti RUP ini akan memberi kemudahan kepada penghasilan sesebuah sistem/projek dengan memudahkan untuk dinaiktaraf, pemahaman yang kolektif dan penggunaan semula perisian. Satu-satu komponen boleh dihubungkan kepada satu objek di dalam pengaturcaraan berasaskan objek. Selain itu, RUP menyediakan satu cara yang cukup konsisten untuk pembinaan sistem berjenis ini. Komponen-komponen dihimpunkan dalam satu infrastruktur yang sedia ada seperti COBRA dan COM.

iv. Menggambarkan permodelan (UML)
Untuk menggambarkan sesuatu model, ia boleh dipersembahkan dalam bentuk grafik yang dikatakan cara yang lebih efektif untuk mendapat gambaran keseluruhan kepada satu-satu penyelesaian. Unified Modelling Language (UML) merupakan satu cara yang biasa digunakan oleh RUP.

v. Pengesahan terhadap kualiti
Penilaian kualiti amat perlu dititikberatkan dalam sesebuah projek yang dibangukan. Ini kerana, banyak projek yang dibangunkan dikawalselia oleh kumpulan yang berbeza. RUP banyak membantu di dalam perancangan kawalan kualiti dan penilaian yang dibina.

vi. Mengenalpasti keperluan
Keperluan amat penting untuk dikenalpasti secara tepat dan jitu semasa proses pembangunan projek. Punca terjadinya masalah ialah kadang-kadang keperluan akan berubah-ubah walaupun telah berada di fasa yang terakhir. RUP menitikberatkan mengenai keperluan yang diperluakan secara berterusan.

vii. Pengurusan perubahan
Di dalam setiap projek yang dibangunkan, perubahan merupakan sesuatu yang tidak dapat dielakkan. Oleh yang demikian, RUP telah menyediakan satu platform atau laluan (track) untuk melihat setiap perubahan yang berlaku. RUP juga mendefinisikan keselamatan ruangkerja (secure workspace) yang membolehkan seseorang pengaturcara memberi jaminan terhadap perubahan yang terjadi pada sistem lain dan perubahan yang berlaku tidak memberi apa-apapun impak kepada sistemnya


Di dalam metodologi RUP, terdapat modelnya yang tersendiri yang akan menggambarkan dengan jelas kaedah-kaedah yang perlu diikuti sepanjang proses pembinaan projek.


3.3 FASA-FASA DALAM RUP

Rational Unified Process mempunyai empat fasa yang harus diikuti dan setiap fasa mempunyai tujuan dan matlamat yang tersendiri iaitu:

3.3.1 Fasa Permulaan (Inception)
i. Tujuan utama fasa ini adalah untuk menentukan objektif dan skop bagi kajian yang bakal dijalankan selain untuk memastikan tujuan kajian dapat dicapai sebaiknya.
ii. Business Case telah dihasilkan. Ini meliputi kejayaan, risiko-risiko yang bakal dihadapi, sumber-sumber yang diperlukan dan juga perancangan perjalanan projek kajian.
iii. Kesemua perkara telah dikenalpasti dan diklasifikasikan untuk lakaran model kes guna.

3.3.2 Fasa Penghuraian (Elaboration)
i. Fasa ini pula merupakan fasa yang paling penting. Ini kerana ia akan menerangkan tentang pembangunan dan struktur rekabentuk kajian.
ii. Turut bertujuan untuk menganalisa masalah, perancangan projek serta mengenalpasti risiko dan langkah-langkah untuk mengelakkannya.
iii. Asas senibina sistem/kajian telah dipilih dan dikenalpasti.

3.3.3 Fasa Pembinaan (Construction)
i. Fasa ini merupakan proses pembuatan/pembinaan kajian yang mana dalam fasa ini segala proses dilakukan untuk menjadikan kajian berjaya dilaksanakan.
ii. Penekanan diberikan untuk mengawal operasi kajian dan juga sumber supaya dapat dioptimumkan jadual dan kualiti serta kos.

3.3.4 Fasa Pemindahan (Transition)
i. Fasa ini ialah fasa pemindahan untuk maklumat kepada pengguna setelah kajian selesai dijalankan.
ii. Hasil kajian diuji dahulu keberkesanannya secara keseluruhan.


3.4 DISIPLIN DAN ALIRAN KERJA

Sebagaimana juga metodologi yang lainnya, RUP juga mempunyai disiplin dan aliran kerja yang tersendiri. Di dalam RUP terdapat sembilan proses aliran kerja utama atau lebih dikenali sebagai disiplin RUP. Bagi kajian yang dilakukan ini hanyalah sehingga peringkat pengujian sahaja. Berikut merupakan disiplin dan aliran kerja yang terlibat.
3.4.1 Pengurusan Projek
Di dalam pengurusan projek, perkara utama yang di ambil kira ialah perancangan, staf dan juga pengawalan. Dalam perancangan perkara yang diutamakan ialah spesifikasi keperluan yang meliputi perancangan yang jelas terhadap aktiviti dan tugas yang perlu dilaksanakan iaitu seperti kenalpasti skop, penganggaran sumber, penyediaan jadual dan juga perancangan projek. Bagi staf pula, pemilihan staf, jumlah gaji dan penilaian terhadap staf terlibat secara menyeluruh dalam fungsi ini. Pengawalan melibatkan pemantauan dan penilaian kemajuan sebenar meliputi sejauh mana objektif yang dirancang dapat dipenuhi.

3.4.2 Keperluan (Requirement)
Tujuan utama keperluan adalah untuk memastikan sistem yang dibangunkan mengikut spesifikasi yang telah ditetapkan oleh pengguna. Perbincangan amat perlu yang melibatkan semua pihak dalam pembangunan sistem supaya tidak berlaku salah faham dan konflik kelak. Disinilah segala masalah dan kekangan dapat dinyatakan dengan baik. Anggaran kos dan masa juga dapat dirangka dengan sempurna.

3.4.3 Analisis dan Rekabentuk (Analysis and Design)
Setelah segala keperluan diperolehi dan dikenalpasti, maka fasa rekabentuk sistem akan mula untuk dilaksanakan. Rekabentuk yang akan dilaksanakan ini adalah berorientasikan objek dan akan diwakili oleh bentuk yang mudah untuk difahami. Tidak ketinggalan akan disertakan penerangan yang terperinci untuk setiap kes guna yang wujud.

3.4.4 Implementasi (Implementation)
Tujuan utama perlaksanaan adalah untuk mengimplementasikan sistem tidak kira samada dalm persekitaran pengguna atau dalam persekitaran pembangun itu sendiri. Keadaan ini bagi mengelakkan masalah yang akan berlaku apabila sistem dipindahkan kepada persekitaran pengguna. Selain itu, ia juga turut mengimplementasikan objek, kelas dan objek dalam bentuk komponen.


3.4.5 Pengujian (Testing)
Projek akan menjalani proses pengujian sepenuhnya untuk menentukan keberkesanannya pada persekitaran pengguna. Disinilah pengguna akan diberi ruang untuk membuat pengujian ke atas sistem yang telah siap. Pembangun perisian akan menerangkan dengan jelas jika terdapat sebarang kekeliruan dan akan melakukan pembaikan mengikut kehendak pengguna.


3.5 TEKNIK

3.5.1 Pengenalan
Kejuruteraan berbalik adalah merupakan satu proses memulakan semula proses merekabentuk yang mana peralatan (tools) kejuruteraan berbalik ini adalah untuk menapis dan mengekstrak data, proses pembinaan dan prosedur merekabentuk daripada program yang telah sedia wujud.

Perkara utama dalam aktiviti kejuruteraan berbalik dipanggil extract abstractions yang mana memerlukan jurutera perisian untuk menilai program dan daripada situ perlu memastikan dan menapis spesifikasi yang bererti, antaramuka pengguna yang telah diaplikasi dan program struktur data atau pangkalan data yang telah digunakan.

Kejuruteraan berbalik ini juga merupakan satu proses yang mampu untuk memperoleh perwakilan prosedur rekabentuk, informasi program dan struktur data, data dan kawalan aliran dan juga model perhubungan entiti.

3.5.2 Aktiviti Kejuruteraan Berbalik
Perkara pertama dalam aktiviti kejuruteraan berbalik dimulakan dengan memahami dan kemudian menapis serta mengekstrak procedural abstraction yang telah diwakili oleh aturcara. Untuk memahami procedural abstraction, aturcara itu perlu dianalisis dari semua level dalam abstraction iaitu sistem, program, modul, paten (pattern) dan ungkapan (statement).

Keseluruhan fungsi dalam keseluruhan aturcara perlu difahami dahulu sebelum aktiviti kejuruteraan berbalik dapat dilakukan secara terperinci dan detail. Setiap program mengandungi atau terdiri daripada aplikasi sistem yang mewakili functional abstraction (ringkasan fungsi) dalam level yang tinggi. Setiap modul akan mempamerkan subfungsi-subfungsi yang mana mewakili procedural abstraction (ringkasan prosedur).
Keadaan akan menjadi semakin kompleks apabila setiap fungsi dalam aturcara perlu di ambil kira. Setiap jurutera perlu melihat kepada seksyen-seksyen aturcara yang mewakili paten prosedur yang general atau umum (generic procedural pattern). Untuk setiap modul, satu seksyen aturcara akan menyediakan data untuk diproses, satu seksyen yang lain melakukan pemprosesan, seksyen yang lain pula melakukan penyediaan aturcara untuk memproses keputusan yang akan dieksport daripada modul.

Dalam setiap seksyen kecil yang telah dijalankan itu, kita akan menjumpai paten-paten yang kecil untuk setiap modul. Teknik ini dikenali sebagai teknik program segmentation yang merupakan satu teknik yang telah diilhamkan sebagai satu jalan untuk mengenali paten prosedur dengan model dan kemudian menggabungkan semua paten yang wujud ke dalam satu fungsi makna yang lebih baik.

Untuk satu program atau sistem yang besar, kejuruteraan berbalik secara asasnya akan dijayakan dengan menggunakan pendekatan semi-automated .Peralatan CASE juga akan digunakan untuk membantu proses kejuruteraan berbalik ini.