บทที่ 2 การออกแบบและพัฒนาโปรแกรม

20
1 บบบบบ 2 บบบบบบบบบ บบบบบบบบบบบบบบบ บบบบบ บบบบบ 2 2 บบบบบบบบบบบบ บบบบบบบบบบบบ บบบบบบบบบบบบ บบบบบบบบบบบบ

Upload: darena

Post on 13-Jan-2016

76 views

Category:

Documents


2 download

DESCRIPTION

บทที่ 2 การออกแบบและพัฒนาโปรแกรม. บทที่ 2 การออกแบบและพัฒนาโปรแกรม. ลักษณะของโปรแกรมที่ดี. 1. มีความถูกต้องและเชื่อถือได้ ( Correctness and Reliability ) คือ ผลลัพธ์ของโปรแกรมถูกต้องแม่นยำ ไม่คลาดเคลื่อน ผ่านการทดสอบที่ครอบคลุม โปรแกรมต้องนิ่ง ไม่ค่อยเกิดปัญหา - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: บทที่ 2 การออกแบบและพัฒนาโปรแกรม

1

บทท�� 2 การออกแบบและพั�ฒนาโปรแกรม

บทท�� บทท�� 2 2 การออกแบบและการออกแบบและพั�ฒนาโปรแกรมพั�ฒนาโปรแกรม

Page 2: บทที่ 2 การออกแบบและพัฒนาโปรแกรม

2

ล�กษณะของโปรแกรมท��ดี�ล�กษณะของโปรแกรมท��ดี� 1. ม�ความถู�กต้�องและเชื่!�อถู!อไดี� (Correctness and

Reliability)ค!อ ผลล�พัธ์%ของโปรแกรมถู�กต้�องแม&นยำ(า ไม&คลาดีเคล!�อน

ผ&านการทดีสอบท��ครอบคล*ม โปรแกรมต้�องน+�ง ไม&ค&อยำเก+ดีป,ญหา 2. ม�ความเป/นม+ต้รต้&อผ��ใชื่� (User-friendliness)

ค!อ สร�างโปรแกรมให�ใชื่�งานง&ายำ เพัราะผ��ใชื่�บางส&วนพั!1นฐานทางคอมพั+วเต้อร%ม�น�อยำ 3. ค&าใชื่�จ่&ายำต้(�า (Low Cost)

ค!อ ม*มมองของผ��ใชื่� จ่ะมองว&าโปรแกรมต้�องค*�มค&าก�บเง+นท��จ่&ายำ ในม*มของผ��พั�ฒนาโปรแกรม ต้�องใชื่�ค&าใชื่�จ่&ายำให�ต้(�ากว&าราคาท��เสนอล�กค�า ดี�งน�1นต้�องม�การประเม+นค&าใชื่�จ่&ายำก&อนการพั�ฒนาโปรแกรม และเม!�อพั�ฒนาโปรแกรม ต้�องควบค*มค&าใชื่�จ่&ายำให�เป/นไปต้ามแผนท��วางไว�

Page 3: บทที่ 2 การออกแบบและพัฒนาโปรแกรม

3

4. อ&านง&ายำและสามารถูน(ากล�บมาใชื่�ใหม& (Readability & Reusability)

ค!อ โปรแกรมท��ม�ความสามารถูมาก ม�กม�โครงสร�างท��ใหญ&และซั�บซั�อน จ่5งควรออกแบบเป/นโมดี�ล(Module ) ยำ&อยำให�เป/นอ+สระต้&อก�น เพั!�อให�ผ��พั�ฒนาโปรแกรมคนอ!�นน(าโปรแกรมไปพั�ฒนาให�เหมาะสมต้ามยำ*คสม�ยำไดี� 5. ม�ความปลอดีภั�ยำ (Security)

ค!อ โปรแกรมท��ดี�ต้�องม�ความปลอดีภั�ยำ ป7องก�นการถู�กล�กลอบขโมยำข�อม�ล การแก�ไขข�อม�ลโดียำไม&ไดี�ร�บอน*ญาต้ ต้ลอดีจ่นการท(าลายำข�อม�ล

6. ใชื่�เวลาในการพั�ฒนาไม&นานค!อ การพั�ฒนาโปรแกรมต้�องส&งมอบงานต้ามท��ประเม+นไว� หากชื่�า

ความต้�องการของผ��ใชื่�อาจ่เปล��ยำนไปเพัราะเทคโนโลยำ�ต้&าง ๆ เจ่ร+ญก�าวหน�าอยำ&างรวดีเร9ว

ล�กษณะของโปรแกรมท��ดี�ล�กษณะของโปรแกรมท��ดี�((ต้&อต้&อ))

Page 4: บทที่ 2 การออกแบบและพัฒนาโปรแกรม

4

วงจ่รการพั�ฒนาโปรแกรมวงจ่รการพั�ฒนาโปรแกรมข�1นต้อนการเข�ยำนโปรแกรม หร!อวงจ่รการพั�ฒนาโปรแกรม (Program Development Life Cycle: PDLC ) ประกอบดี�วยำ 6 ข�1นต้อน ค!อ

1. ข�1นว+เคราะห%ความต้�องการ (Requirement Analysis & Feasibility Study)

2. ข�1นวางแผนแก�ป,ญหา (Algorithm Design) 3. ข�1นดี(าเน+นการเข�ยำนโปรแกรม (Program Coding) 4. ข�1นทดีสอบและแก�ไขโปรแกรม (Program Testing &

Debugging) 5. ข�1นการเข�ยำนเอกสารประกอบ (Documentation)

6. ข�1นบ(าร*งร�กษาโปรแกรม (Program Maintenance)แต้&ละข�1นต้อนควรต้รวจ่สอบความถู�กต้�องอยำ&างละเอ�ยำดีก&อนไปท(า

ก+จ่กรรมในข�1นต้อนถู�ดีไป แต้&ถู�าหากพับว&าม�ป,ญหาก9สามารถูยำ�อนกล�บไปท(าก+จ่กรรในข�1นต้อนก&อนหน�าไดี�

Page 5: บทที่ 2 การออกแบบและพัฒนาโปรแกรม

5

ว+เคราะห%ความต้�องการ

วางแผนแก�ป,ญหา

เข�ยำนโปรแกรม

ทดีสอบและแก�ไข

บ(าร*งร�กษา

วงจ่รการพั�ฒนาโปรแกรม (Program Development Life Cycle : PDLC)

วงจ่รการพั�ฒนาโปรแกรมวงจ่รการพั�ฒนาโปรแกรม((ต้&อต้&อ))

Page 6: บทที่ 2 การออกแบบและพัฒนาโปรแกรม

6

1. ข�1นว+เคราะห%ความต้�องการ (Requirement Analysis & Feasibility Study)

- ศึ5กษาผลล�พัธ์%(Output ) ข�อม�ลน(าเข�า(Input ) และว+ธ์�การประมวลผลท��จ่ะใชื่�เข�ยำนโปรแกรม โดียำท��วไปการว+เคราะห%งานม� 5 ข�1นต้อนค!อ

1) ก(าหนดีขอบเขต้ของป,ญหา 2 ) ก(าหนดีล�กษณะข�อม�ลเข�าและออกจ่ากระบบ 3) ก(าหนดีร�ปแบบผลล�พัธ์% 4 ) ก(าหนดีต้�วแปรท��ใชื่� 5) ก(าหนดีว+ธ์�การประมวลผล

วงจ่รการพั�ฒนาโปรแกรมวงจ่รการพั�ฒนาโปรแกรม((ต้&อต้&อ))

Page 7: บทที่ 2 การออกแบบและพัฒนาโปรแกรม

7

1. ข�1นว+เคราะห%ความต้�องการ (Requirement Analysis & Feasibility Study)(ต้&อ)

ต้�วอยำ&างต้�วอยำ&าง จ่งแก�ป,ญหาเพั!�อหาพั!1นท��ของร�ปวงกลม โดียำร�บค&าร�ศึม�ของวงกลมจ่ากผ��ใชื่�ทางแป7นพั+มพั%

ว+เคราะห%งานว+เคราะห%งาน 1. ส+�งท��ต้�องการ

พั!1นท��ร�ปวงกลม ร�บค&าข�อม�ลความยำาวร�ศึม�ของวงกลมทางแป7นพั+มพั%

2. ข�อม�ลน(าเข�า ค&าความยำาวของร�ศึม�ของวงกลม

3. ร�ปแบบผลล�พัธ์% แสดีงผลล�พัธ์%ของพั!1นท��ร�ปวงกลมเป/นต้�วเลข

จ่(านวนจ่ร+ง

วงจ่รการพั�ฒนาโปรแกรมวงจ่รการพั�ฒนาโปรแกรม((ต้&อต้&อ))

Page 8: บทที่ 2 การออกแบบและพัฒนาโปรแกรม

8

1. ข�1นว+เคราะห%ความต้�องการ (Requirement Analysis & Feasibility Study)(ต้&อ) ว+เคราะห%งานว+เคราะห%งาน

4 . ต้�วแปรท��ใชื่� ค&า r แทน ร�ศึม�ของวงกลม ค&า area แทนพั!1นท��ของวงกลมท��ไดี�จ่ากการประมวลผล

5 . ว+ธ์�การประมวลผล1 .เร+�มต้�น2. ร�บค&า r3. ค(านวณหาพั!1นท��ร�ปวงกลมจ่ากส�ต้ร 314159.

* r^24. แสดีงค&า area5. จ่บการท(างาน

วงจ่รการพั�ฒนาโปรแกรมวงจ่รการพั�ฒนาโปรแกรม((ต้&อต้&อ))

Page 9: บทที่ 2 การออกแบบและพัฒนาโปรแกรม

9

2. ข�1นวางแผนแก�ไขป,ญหา (Algorithm Design)ข�1นต้อนน�1ม�กเร�ยำกว&า “การออกแบบอ�ลกอร+ท5ม” ซั5�งเป/นแนวทางให�

โปรแกรมเมอร%เข�ยำนโปรแกรมไดี�ง&ายำข51น ม�หลายำว+ธ์�ท��จ่ะน(ามาชื่&วยำออกแบบไดี�แก& 1) การเข�ยำนอ�ลกอร+ท5ม

ค!อ การน(าเอาล�บดี�บข�1นต้อนการท(างานท��ออกแบบไว� มาเข�ยำนให�อยำ�&ในร�ปของภัาษาเข�ยำน หร!ออยำ�&ในร�ปของภัาษาอ�งกฤษ ท��จ่�ดีเป/นโครงสร�างไว�เชื่&นเดี�ยำวก�บการเข�ยำนรห�สเท�ยำม แต้&จ่ะต้&างก�นต้รงท��อ�ลกอร+ท5มจ่ะเน�นล(าดี�บข�1นต้อนการท(างานเป/นหล�ก

2 ) การเข�ยำนผ�งงาน ค!อ การน(าเอาล�บดี�บข�1นต้อนการท(างานมาเข�ยำนเป/นภัาพัหร!อส�ญล�กษณ%

โดียำเปล��ยำนจ่ากค(าพั�ดีหร!อข�อความในการว+เคราะห%งานมาเป/นร�ปภัาพัก&อน แล�วเข�ยำนค(าอธ์+บายำเพั+�มลงไปในร�ปภัาพั ร�ปภัาพัหร!อส�ญล�กษณ%น�1เร�ยำกว&า ผ�งงาน(Flowchart)

ป,จ่จ่*บ�นผ�งงานไดี�ร�บความน+ยำมลดีลงดี�วยำเหต้*ผลต้&อไปน�11 . ผ�งงานม�ขนาดีใหญ& เม!�อโปรแกรมม�ขนาดีใหญ&2 . หากม�การเปล��ยำนแปลงข�1นต้อนว+ธ์�การ การปร�บผ�งงานจ่ะท(าไดี�ยำาก บาง

คร�1งต้�องเข�ยำนใหม&ท�1งหมดี

วงจ่รการพั�ฒนาโปรแกรมวงจ่รการพั�ฒนาโปรแกรม((ต้&อต้&อ))

Page 10: บทที่ 2 การออกแบบและพัฒนาโปรแกรม

10

3. การเข�ยำนซั�โดี�โค�ดี(Pseudo Code) หร!อ รห�สเท�ยำม เป/นเคร!�องม!อท��น+ยำมใชื่�ก�นมาก ในการอก

แบบโปรแกรม ชื่&วยำให�โปรแกรมเมอร%เข�ยำนโปรแกรมไดี�ง&ายำข51น โดียำเป/นการผสมผสานระหว&างภัาอ�งกฤษท��วไปก�บภัาษาคอมพั+วเต้อร% โครงสร�างของรห�สเท�ยำมจ่5งคล�ายำการเข�ยำนโปรแกรม จ่ากต้�วอยำ&างการหาพั!1นท��ร�ปวงกลมน(ามาเข�ยำนซั�โดี�โค�ดีไดี�ดี�งน�1 Area Of Circle

read radius compute area=3.14159* radius * radius display areaEnd

วงจ่รการพั�ฒนาโปรแกรมวงจ่รการพั�ฒนาโปรแกรม((ต้&อต้&อ))

Page 11: บทที่ 2 การออกแบบและพัฒนาโปรแกรม

11

3. ข�1นดี(าเน+นการเข�ยำนโปรแกรม (Program Coding) เป/นข�1นต้อนการเข�ยำนโปรแกรมดี�วยำภัาษาคอมพั+วเต้อร%ภัาษาใดี

ภัาษาหน5�ง โดียำเล!อกภัาษาให�เหมาะสมก�บประเภัทของงาน และความถูน�ดีของผ��เข�ยำน เชื่&น ถู�าเป/นงานทางธ์*รก+จ่ก9ใชื่�ภัาษาโคบอล ถู�าเป/นการพั+มพั%รายำงานก9ใชื่�ภัาษาอาร%พั�จ่� เป/นต้�น

จ่ากการว+เคราะห%งาน และการเข�ยำนซั�โดี�โค�ดีของการหาพั!1นท��ร�ปวงกลมสามารถูน(ามาเข�ยำนโปรแกรมภัาษาซั�ไดี�ดี�งน�1#include<stdio.h>

#include<conio.h>main(){ float r; printf("Enter Radius : "); scanf("%f",&r); printf("%.2f",3.14159* r* r); getche();}

วงจ่รการพั�ฒนาโปรแกรมวงจ่รการพั�ฒนาโปรแกรม((ต้&อต้&อ))

Page 12: บทที่ 2 การออกแบบและพัฒนาโปรแกรม

12

4. ข�1นทดีสอบและแก�ไขโปรแกรม (Program Testing & Debugging)

เป็�นขั้��นตอนการตรวจสอบจ�ดผิ�ดพลาดขั้องโป็รแกรม (Bugs ) ที่��เขั้�ยนขั้ �น และด"าเน�นการแก#ไขั้ขั้#อผิ�ดพลาดน��น (Debugs )โป็รแกรมที่��ที่"างานไม%ได#ตามว�ตถุ�ป็ระสงค์(เร�ยกว%าโป็รแกรมเก�ด Error โดยสาเหต�ที่��ที่"าให#โป็รแกรมเก�ด Error ม� 2 สาเหต�หล�ก ค์+อ

1. ขั้#อผิ�ดพลาดที่างไวยากรณ์(ขั้องภาษา (Syntax Error ) ค์+อขั้#อผิ�ดพลาดที่��เก�ดจากการเขั้�ยนโค์#ดค์"าส��ง(Source Code ) ไม%ตรงก�บไวยากรณ์((Syntax ) ขั้องภาษาโป็รแกรมน��น ๆ

2. ขั้#อผิ�ดพลาดที่��เก�ดจากการต�ค์วามหมายขั้องป็0ญหาผิ�ดไป็ (Logic Error ) ขั้#อผิ�ดพลาดป็ระเภที่น��หาจ�ดผิ�ดพลาดได#ยากกว%าสาเหต�แรกเพราะตอนค์อมไพล(จะไม%ม�การแจ#งขั้#อผิ�ดพลาด

วงจ่รการพั�ฒนาโปรแกรมวงจ่รการพั�ฒนาโปรแกรม((ต้&อต้&อ))

Page 13: บทที่ 2 การออกแบบและพัฒนาโปรแกรม

13

5. ข�1นการเข�ยำนเอกสารประกอบ (Documentation) หล�งที่ดสอบโป็รแกรมผิ%านแล#ว ค์วรจ�ดที่"าเอกสารป็ระกอบการใช้#งาน

โป็รแกรมด#วย ค์+ออธิ�บายรายละเอ�ยดขั้องโป็รแกรมว%า

- จ�ดป็ระสงค์(ขั้องโป็รแกรมค์+ออะไร - ม�ขั้��นตอนการที่"างานขั้องโป็รแกรมเป็�นอย%างไร

ผิ4#พ�ฒนาโป็รแกรมที่��ด�ค์วรที่"าเอกสารป็ระกอบโป็รแกรมต��งแต%ขั้��นตอนการออกแบบจนถุ งขั้��น

ที่ดสอบโป็รแกรมเพ+�อให#ผิ4#พ�ฒนาโป็รแกรมต%อด4เอกสารแล#วเขั้#าใจง%ายขั้ �น เอกสารค์4%ม+อโป็รแกรมโดยที่��วไป็ม� 2 แบบค์+อ

1. ค์4%ม+อผิ4#ใช้#(Users Manual ) เน#นการใช้#งานโป็รแกรมเป็�นหล�ก2. ค์4%ม+อโป็รแกรมเมอร( (Programmers Manual ) อธิ�บายรายละเอ�ยดส%วนต%าง ๆ เก��ยวก�บ

โป็รแกรมหล�กโป็รแกรมย%อย ม�ป็ระโยช้น(ต%อการป็ร�บป็ร�งแก#ไขั้โป็รแกรมในอนาค์ต

วงจ่รการพั�ฒนาโปรแกรมวงจ่รการพั�ฒนาโปรแกรม((ต้&อต้&อ))

Page 14: บทที่ 2 การออกแบบและพัฒนาโปรแกรม

14

6. ข�1นการบ(าร*งร�กษาโปรแกรม (Program Maintenance) ขั้��นตอนน��เก�ดขั้ �นหล�งจากใช้#โป็รแกรมไป็แล#วระยะหน �ง และต#องม�การป็ร�บป็ร�งแก#ไขั้โป็รแกรมให#เหมาะสมก�บค์วามเป็�นจร�ง รวมที่��งร�กษา ด4แลส+�อที่��ใช้#บ�นที่ กโป็รแกรมให#พ#นจากสนามแม%เหล6ก ฝุ่�8นละอองที่��จะที่"าให#ส+�อที่��บ�นที่ กโป็รแกรมน��นเก�ดค์วามเส�ยหาย

วงจ่รการพั�ฒนาโปรแกรมวงจ่รการพั�ฒนาโปรแกรม((ต้&อต้&อ))

Page 15: บทที่ 2 การออกแบบและพัฒนาโปรแกรม

15

ร�ปแบบการเข�ยำนโปรแกรมคอมพั+วเต้อร%ร�ปแบบการเข�ยำนโปรแกรมคอมพั+วเต้อร%การเข�ยำนโปรแกรมแบบบนลงล&าง(Top-Down

Programming)- เป็�นการเขั้�ยนโป็รแกรมแบบโมด4ลาร(เป็�นล"าด�บ - โดยมองป็0ญหาต��งแต%ต#นจนจบการที่"างาน - หากโป็รแกรมม�ค์วามซั�บซั#อนก6จะสร#างเป็�นโมด4ลย%อย เพ+�อให#โมด4ลหล�กเร�ยกใช้#เป็�นล"าด�บ- เขั้�ยนการที่"างานแต%ละส%วนเร�ยงล"าด�บก�นไป็- จากน��นน"าโค์รงสร#างที่��ออกแบบมาพ�ฒนาเป็�นโป็รแกรมค์อมพ�วเตอร(

Page 16: บทที่ 2 การออกแบบและพัฒนาโปรแกรม

16

การเข�ยำนโปรแกรมแบบโมดี�ลาร% (Modular Programming)- ม�การแยกโป็รแกรมออกเป็�นโป็รแกรมย%อยขั้นาดเล6กหลายโป็รแกรม - แต%ละโป็รแกรมเร�ยกว%าโมด4ล (Module ) ซั �งสามารถุที่"างานได#อย%างอ�สระจากโมด4ลอ+�น- หากโป็รแกรมม�ค์วามผิ�ดพลาดสามารถุแก#ไขั้ป็ร�บป็ร�งได#ง%าย- ม�โมด4ลหล�กค์วบค์�มการที่"างานที่��งหมด ว%าจะเร�ยกโมด4ลใดมาใช้#งานก%อน- โมด4ลแต%ละโมด4ลสามารถุเร�ยกใช้#โมด4ลย%อยได#อ�ก- โมด4ลหร+อโป็รแกรมย%อยม� 2 ป็ระเภที่ค์+อ โป็รแกรมย%อยภายใน(Internal Subroutine ) และโป็รแกรมย%อยภายนอก(External Subroutine)

ร�ปแบบการเข�ยำนโปรแกรมคอมพั+วเต้อร%ร�ปแบบการเข�ยำนโปรแกรมคอมพั+วเต้อร%((ต้&อต้&อ))

Page 17: บทที่ 2 การออกแบบและพัฒนาโปรแกรม

17

การเขั้�ยนโป็รแกรมแบบโมด4ลาร( ร�ปแบบการเข�ยำนโปรแกรมคอมพั+วเต้อร%ร�ปแบบการเข�ยำนโปรแกรมคอมพั+วเต้อร%((ต้&อต้&อ))

โมดี�ลโมดี�ลหล�กหล�ก

โมดี�ลโมดี�ลยำ&อยำยำ&อยำ

Page 18: บทที่ 2 การออกแบบและพัฒนาโปรแกรม

18

การเข�ยำนโปรแกรมเชื่+งว�ต้ถู* (Object-Oriented Programming)- เป็�นการเขั้�ยนโป็รแกรมแนวใหม%ที่��มองการที่"างานต%าง ๆ เป็�นว�ตถุ� หร+อออบเจ6กต((Object )- โดยม�การบอกว%าออบเจ6กต(น��นค์+ออะไร ใช้#ที่"าอะไร - เม+�อโป็รแกรมต#องการใช้# ก6สามารถุน"าออบเจ6กต(น��นมาใช้#ได# ป็ร�บขั้นาด เป็ล��ยนส�ได#- VB.Net, Delphi, Foxpro

ร�ปแบบการเข�ยำนโปรแกรมคอมพั+วเต้อร%ร�ปแบบการเข�ยำนโปรแกรมคอมพั+วเต้อร%((ต้&อต้&อ))

Page 19: บทที่ 2 การออกแบบและพัฒนาโปรแกรม

19

การเขั้�ยนโป็รแกรมเช้�งว�ตถุ�(Object Oriented Programming)

ร�ปแบบการเข�ยำนโปรแกรมคอมพั+วเต้อร%ร�ปแบบการเข�ยำนโปรแกรมคอมพั+วเต้อร%((ต้&อต้&อ))

Page 20: บทที่ 2 การออกแบบและพัฒนาโปรแกรม

20

การออกแบบและพั�ฒนาโปรแกรมการออกแบบและพั�ฒนาโปรแกรม

TTHE HE EENDNDNextNext TimeTime : : การเข�ยำนผ�งการเข�ยำนผ�งงานงาน (FLOWCHAR

T)การเข�ยำนอ�ลกอร+ธ์5มการเข�ยำนอ�ลกอร+ธ์5ม

(ALGORITHM)