1 / 27

Menulis Program

Menulis Program. Pengenalan. Bab ini tidak mangajar anda bagaimana untuk menulis aturcara/program tetapi menerangkan beberapa prinsip kejuruteraan perisian yang perlu anda ambil kira apabila menulis aturcara. Pengenalan.

Download Presentation

Menulis Program

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Menulis Program

  2. Pengenalan • Bab ini tidak mangajar anda bagaimana untuk menulis aturcara/program tetapi menerangkan beberapa prinsip kejuruteraan perisian yang perlu anda ambil kira apabila menulis aturcara.

  3. Pengenalan • Di persekitaran pekerjaan yang sebenar – anda mungkin terlibat dengan tugas-tugas berikut: • Menilai kod aturcara yang sedia ada kerana anda hendak mengubah atau mengantikannya dengan yang baru atau menggunakannya (reuse) di aplikasi lain. • ‘Code review process’ • Menulis kod aturcara dan pengaturcaraan dilaksanakan secara berkumpulan. • Maka dari itu piawaian dan prosedur program adalah diperlukan.

  4. Piawaian dan prosedur pengaturcaraan • Anda mesti tahu piawaian dan prosedur organisasi sebelum memulakan proses penulisan kod • Kebanyakan organisasi menekankan kepada piawaian dan prosedur pengaturcaraan spt. format, dokumentasi dan sebagainya supaya kod dan dokumen yang dihasilkan adalah jelas bagi sesiapa yang membacanya

  5. Piawaian untuk ANDA • Piawaian dan prosedur melibatkan kaedah mendokumenkan kod supaya ianya jelas dan mudah untuk diikuti. • Dokumentasi seperti ini membolehkan kita kembali semula ke aturcara dengan mudah setelah ditinggalkan • Bantu dalam mengesan kesilapan dan membuat perubahan kerana ia menjelaskan seksyen mana di kod aturcara yang melaksanakan sesuatu fungsi.

  6. Piawaian untuk orang lain • Bila kod sudah lengkap, ia akan digunakan oleh ahli-ahli lain dlm pelbagai cara • Contohnya: • Kod mungkin diuji oleh kumpulan lain. • Pengintegrasian dengan aturcara lain untuk membina keseluruhan sistem mungkin dilaksanakan oleh kumpulan lain. • Pengubahsuaian and penyelenggaraan sistem juga mungkin dilaksanakan oleh kumpulan lain

  7. Piawaian untuk orang lain • Maka adalah perlu untuk kita organisasikan, format dan dokumenkan kod supaya akan memudahkan orang lain untuk memahaminya. • Contohnya - Penggunaan blok komen di permulaan aturcara – lihat gambarajah. Maklumat yang diberikan dapat membantu seseorang yang sedang mencari komponen ‘reusable’ untuk menentukan samada kod aturcara tersebut adalah yang dicari; kepada seseorang yang sedang mengesan ralat untuk menentukan samada komponen tersebut adalah puncanya ataupun yang juga terlibat; kepada penyelenggara, etc…

  8. Blok Komen ********************************************************************************* PROGRAM SCAN: program to scan a line of text for a given character PROGRAMMER: Beatrice Clarman (718) 345-6789/bc@power .com CALLING SEQUENCE: CALL SCAN(LENGTH, CHAR, NTEXT) where LENGTH is the length of the line to be scanned; CHAR is the character sought. Line of text is passed as array NTEXT. VERSION 1: written 3 November 2000 by B. Clarman REVISION 1.1: 5 December 2001 by B. Clarman to improve searching algorithm PURPOSE: general-purpose scanning module to be used for each new line of text, no matter the length. One of several text…. DATA STRUCTURES: Variable LENGTH – integer Variable CHAR – character Array NTEXT – character array of length LENGTH ALGORITHM: Reads array NTEXT one character at a time; if CHARis found, position in NTEXT returned in variable LENGTH; else variable LENGTH set to 0 **********************************************************************************

  9. Panduan pengaturcaraan • Pengaturcaraan banyak melibatkan kreativiti • Rekabentuk adalah panduan untuk fungsi atau tujuan sesuatu komponen • Pengaturcara ada fleksibiliti dalam mengimplementasikan rekabentuk kepada kod.

  10. Tidak kira apa bahasa pengaturcaraan yang digunakan, setiap komponen program melibatkan TIGA aspek utama: • Struktur kawalan/’control structure’ • Algoritma • Struktur data/’data structure’

  11. Struktur Kawalan • Kebanyakan struktur kawalan untuk komponen dicadangkan dalam senibina dan rekabentuk, maka kita akan terjemahkan ia kepada kod. • Bagi sebarang jenis rekabentuk, adalah penting bagi struktur program anda menunjukkan(reflect) rekabentuk struktur kawalan • Banyak panduan dan piawaian yang mencadangkan kod ditulis dengan cara di mana kita mudah membaca komponen dari atas ke bawah

  12. Benefit = minimum; If (age<75) goto A; Benefit = maximum; Goto C; If (age<65) goto B; If (age<55) goto C; A: if (age<65) goto B; benefit=benefit*1.5+bonus; goto C; B: if (age<55) goto C; benefit=benefit*1.5; C: next statement Boleh dapat hasil yang sama dgn susun semula: If (age<55) benefit = minimum; Elseif (age<65) benefit = minimum+ bonus; Elseif (age<75) benefit=minimum*1.5+bonus; Else benefit=maximum; Contoh: (A) (B) (A) Sukar untuk diikuti. (B) Dengan menstruktur semula kod aturcara boleh memperbaiki aliran struktur kawalan.

  13. Algoritma • Rekabentuk program biasanya spesifikasikan algoritma-algoritma yang akan digunakan di dalam pengkodan e.g. menggunakan algoritma Quicksort • Namun demikian, anda ada fleksibiliti dalam proses menukarkan algoritma kepada kod. Cuma ada kekangan terhadap bahasa implementasi dan juga perkakasan

  14. Isu: • Anda mungkin cuba menghasilkan kod yang boleh dilarikan dengan cepat  berbuat demikian boleh melibatkan masalah kos tersembunyi • Seimbangkan masa pelaksanaan dengan kualiti rekabentuk, piawaian dan juga keperluan pengguna. • Jangan abaikan kejelasan bagi kelajuan/’speed’. Sekiranya kelajuan penting, maka kena cuba pelajari bagaimana pengkompil boleh optimakan kod

  15. Struktur data • Dalam menulis program, kita mesti format dan simpan data supaya pengurusan data dan juga manipulasi data adalah mudah • Beberapa teknik yang menggunakan struktur data: • Memastikan program sentiasa mudah e.g. penggunaan array. • Menggunakan struktur data untuk menentukan struktur program

  16. Panduan Am • Beberapa strategi yang berguna dalam mengekalkan kualiti rekabentuk kod: • Memasukkan kod pseudo. Pseudo kod sebagai kerangka kerja (framework) bagi membina kod. • Perbaiki dan tulis semula, jangan pula seolah-olah menampal • Gunasemula • Pereka gunasemula – dimana kita membina komponen gunasemula • Pelanggan gunasemula – dimana kita menggunakan komponen gunasemula

  17. Dokumentasi • Dokumentasi program: menerangkan kepada pembaca apa yang program tersebut akan lakukan dan bagaimana ia dilakukan • Dokumentasi dalaman: deskriptif yang ditulis secara terus kepada kod ‘descriptive material written directly within the code’ • Dokumentasi luaran: selain dari dokumentasi dalaman

  18. Dokumentasi Dalaman • Mengandungi maklumat yang ditujukan secara terus kepada sesiapa yang akan membaca kod program. • Biasanya maklumat ini terdapat pada permulaan setiap komponen. • Diletakkan di dalam satu set komen yang dipanggil ‘HEADER COMMENT BLOCK’

  19. Header comment block: • Nama komponen • Penulis • Kedudukan komponen dalam sistem • Bila komponen ditulis dan diperbaiki • Kenapa komponen wujud • Bagaimana komponen tersebut menggunakan struktur data, algoritma dan kawalan

  20. Contoh - Header comment block: PROGRAM SCAN: program to scan a line of text for a given character PROGRAMMER: Beatrice Clarman (718) 345-6789/bc@power .com CALLING SEQUENCE: CALL SCAN(LENGTH, CHAR, NTEXT) where LENGTH is the length of the line to be scanned; CHAR is the character sought. Line of text is passed as array NTEXT. VERSION 1: written 3 November 2000 by B. Clarman REVISION 1.1: 5 December 2001 by B. Clarman to improve searching algorithm PURPOSE: general-purpose scanning module to be used for each new line of text, no matter the length. One of several text…. DATA STRUCTURES: Variable LENGTH – integer Variable CHAR – character Array NTEXT – character array of length LENGTH ALGORITHM: Reads array NTEXT one character at a time; if CHARis found, position in NTEXT returned in variable LENGTH; else variable LENGTH set to 0

  21. Komen-komen lain dalam program • Komen tambahan pada kod • Menambahkan kefahaman terhadap program • Cth: • // menambah i3 • i3 = i3 + 1

  22. Nama pembolehubah dan kenyataan label yang bermakna • Pilih nama untuk pembolehubah dan juga pernyataan yang mempunyai maksud • Cth: • Weekage = (hhrate*hours)+(1.5)*(hours-4.0); berbanding dengan… • Z-(a*b)+(1.5)*(a)*(b-4.0);

  23. ‘Formating to enhance understanding’ • Format komen membantu pembaca untuk memahami matlamat kod dan bagaimana matlamat dicapai void free_store_empty() { static int I = 0; if (I++ == 0) //guard against cerr //allocating memory cerr << “out of memory\n”; //tell user abort (); //give up • Indentation dan juga spacing boleh menunjukkan kesan terhadap struktur kawalan

  24. (A) (B) ' If (xcoord < ycoord) result = -1; elseif (xcoord == ycoord) if (slope1 > slope2) result = 0; else result = 1; elseif (slope1 > slope2) result = 2; elseif (slope1 < slope2) result = 3; else result = 4; ‘unindented code’ if (xcoord < ycoord) result = -1; elseif (xcoord == ycoord) if (slope1 > slope2) result = 0; else result = 1; elseif (slope1 > slope2) result = 2; elseif (slope1 < slope2) result = 3; else result = 4; ‘indentation and arranging the space’

  25. Data yang didokumenkan • Perkara yang paling sukar bagi pembaca adalah untuk memahami bagaimana data distrukturkan dan diguna • Penggunaan peta data adalah berguna dalam mentafsirkan kod. • Peta data mestilah selari dengan kamus data di dalam dokumentasi luaran supaya pembaca boleh mengesan manipulasi data melalui keperluan dan juga rekabentuk kod.

  26. Dokumentasi Luaran • Bertujuan untuk dibaca oleh mereka yang tidak melihat kod sumber • Memberi peluang untuk menerangkan dengan lebih lanjut kerana dokumentasi dalaman hanya memberikan ‘overview of the program’ • Memasukkan pandangan keseluruhan komponen sistem • Menerangkan komponen tersebut • Menerangkan algoritma dari segi formula, kes-kes yang terlibat • Perlihalan mengenai data – objek-objek dan kelas

  27. Contoh: Dokumentasi Luaran – penerangan algoritma The algorithm for calculating the roots of a quadratic equation has two steps. The first step is to calculate the discriminant, which is defined by a formula involving the coefficients of the equation . The second step depends on the value of the discriminant calculated in the first step. If the disriminant is less than zero this indicates that the equation has no real roots, and a message to that effect is output. If the discriminant is equal to zero …

More Related