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

Post on 22-Jan-2020

2 views 0 download

Transcript of วงจรการพัฒนาโปรแกรม (Program Development Life Cycle: PDLC) ·...

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

วงจรการพฒนาโปรแกรม (Program Development Life Cycle: PDLC) วงจรการพฒนาโปรแกรม (PDLC) คอ ขนตอนการท างานทโปรแกรมเมอรใชส าหรบ

สรางโปรแกรม ประกอบดวย 6 ขนตอน ดงน

1. การวเคราะหปญหา (Program Analysis)

2. การออกแบบโปรแกรม (Program Design)

3. การเขยนโปรแกรม (Program Coding)

4. การทดสอบโปรแกรม (Program Testing)

5. การทบทวนการท างานของโปรแกรมครงสดทาย (Program Formalization)

6. การบ ารงรกษาโปรแกรม (Program Maintenance)

1. วเคราะหปญหา

• ตรวจสอบ Program Specification

Package

• หารอกบนกวเคราะหระบบ (SA) และผใช

• ก าหนดองคประกอบของโปรแกรม เชน อนพต

เอาตพต การประมวลผล

2. ออกแบบโปรแกรม

• แบงหนาทหลก (Main Module) ของโปรแกรมออกเปน Module ตางๆ

• ออกแบบอลกอรทมใหแตละโมดล

• ทดสอบผลลพธทไดจากอลกอรทม

6. บ ารงรกษาโปรแกรม

• แกไข Error ทพบระหวางการใชงานโปรแกรมจรงโดยผใช

• ปรบปรงและเพมเตมความสามารถใหกบโปรแกรมมากขน

3. เขยนโปรแกรม

• เปลยนอลกอรทมในขนตอนท 2 มาเปนภาษาโปรแกรมมง

• เขยนโปรแกรม และทดลองรนโปรแกรมด

5. ทบทวนการท างานของโปรแกรมครงสดทาย

• ลบโคดทไมใชออกใหหมด แลวลองรนโปรแกรมดวา ท างานไดดงเดมหรอไม

• รวบรวมเอกสารทเกยวทงหมดให SA

4. ทดสอบโปรแกรม

• เมอพบ Error ของโปรแกรมใหแกไขทนท

• การ Error อาจเกดขนจากการเขยนไวยากรณของภาษาผดหรออาจผดทอลกอรทมกได

วงจรการพฒนาโปรแกรม

1. การวเคราะหปญหา (Problem Analysis)

โปรแกรมเมอรมหนาททส าคญ 3 ประการ คอ

1. การพจารณาตรวจสอบ Program Specification Package

Program Specification Package ....ทไดมาจากนกวเคราะหระบบ ประกอบไปดวย แผนภม แผนภาพ และรายงานตางๆ

ซงเปนตวบงบอกถงความตองการทางดานของการน าเขาขอมล ขอมลทใชในการประมวลผล การประมวลผลขอมล และการแสดงผลขอมล

2. วเคราะหปญหารวมกบนกวเคราะหระบบและผใชโปรแกรม

จะท าใหโปรแกรมเมอรสามารถ....เขาใจถงจดมงหมายของโปรแกรมทก าลงจะเขยนไดดขน และอาจเสนอขอคดเหนบางประการทเปนประโยชนตอการท างานของโปรแกรม

1. การวเคราะหปญหา (Problem Analysis)

3. ก าหนดองคประกอบตางๆ ของโปรแกรม

โปรแกรมเมอรจะตองท าการก าหนดองคประกอบ..การน าเขาขอมล ... สวนประมวลผล และ...สวนแสดงผลในแผนภมทเรยกวา “IPO” หรออาจเรยกอกอยางหนงวา “Defining Diagram”

มอย 3 องคประกอบไดแก

„ 1. การน าขอมลเขา (Input Specification) เปนการก าหนดขอมลทตองปอนเขาสโปรแกรม

„ 2. การประมวลผล (Process Specification) เปนการพจารณาขนตอนหรอวธการท างานทใชในโปรแกรม

„ 3. การแสดงผล (Output Specification) เปนการก าหนดรปแบบของผลลพธทตองการใหแสดงผลออกมา

องคประกอบตางๆ ของโปรแกรม

Ex1 : ค านวณคะแนนเฉลยของนกเรยน

คะแนนของนกเรยนแตละคน

ท าการอานคะแนนของนกเรยนแตละคน....แลวค านวณคะแนนเฉลยของนกเรยน

แสดงคะแนนเฉลยของนกเรยนแตละคนออกมา

1. การวเคราะหปญหา (Problem Analysis)

องคประกอบของโปรแกรม

2. การออกแบบโปรแกรม (Program Design)

การออกแบบโปรแกรม เปนการน าเอาวธการทไดจากการวเคราะหโปรแกรมมาเขยนเปนภาพหรอสญลกษณ โดยน าเครองมอตางๆ มาชวยในออกแบบโปรแกรม เพอใหทราบขนตอนการท างานของโปรแกรมและงายตอการตรวจสอบ มรายละเอยดดงตอไปน

2. การออกแบบโปรแกรม (Program Design)

เครองมอ....ทสนบสนนการออกแบบโปรแกรม (Design Tools)

1. อลกอรทม (Algorithm)

2. ผงงานโปรแกรม (Program Flowchart)

3. ซโดโคด (Pseudo code)

4. Nassi-Schneiderman (N-S) Chart

1. อลกอรทม (Algorithm) เปนเครองมอส าคญในการแสดงขนตอนการท างานของระบบงาน เพอใหการเขยนโปรแกรมเปนไปไดอยางรวดเรวและงายยงขน

เครองมอทสนบสนนการออกแบบโปรแกรม (Design Tools)

ตวอยาง Algorithm ของการหาผลก าไรของสนคา ขนตอนท 1 รบขอมลเลขทสนคา ขนตอนท 2 คนหาขอมลคาตวแปรตางๆ ทตองใชจากระบบฐานขอมล เชน ตนทนคงท ของสนคา (Fix Cost) , ตนทนผนแปร (Variable Cost) , ยอดขาย (Revenue) , ก าไร (Profit) , จ านวนสนคาทขายได (Volume) ขนตอนท 3 หาตนทนของสนคาจาก Cost = Fix Cost + Variable Cost ขนตอนท 4 หายอดขายสนคาจาก Revenue = Price * Valume ขนตอนท 5 ค านวณหาก าไรจาก Profit = Revenue – Cost ขนตอนท 6 แสดงผลก าไรใหผใชโปรแกรมทราบ

2. ผงงานโปรแกรม (Program Flowchart) คอ แผนภาพทแสดงล าดบขนตอนการท างานของโปรแกรม เพอชวยใหการตรวจสอบขอผดพลาดของโปรแกรมท าไดสะดวก และงายตอการบ ารงรกษาโปรแกรม การเขยนผงงานโปรแกรมจะตองเชอมโยงความสมพนธของล าดบการท างานดวยเสนทลากอยางตอเนอง เพอแสดงทศทางการท างานของโปรแกรมขนตอนหนงไปยงอกขนตอนหนง

เครองมอทสนบสนนการออกแบบโปรแกรม (Design Tools)

การเขยนผงงาน (Flowchart)

ส าหรบผงงานนนสามารถแบงออกเปนประเภทใหญๆ ได 2 ประเภทคอ

1. ผงงานระบบ (System Flowchart)

หมายถงผงงานทแสดงขนตอนตางๆ ในการท างานของระบบใดระบบหนงวาตองท าอะไรล าดบกอนหลง

2. ผงงานโปรแกรม (Program Flowchart)

หมายถงการวเคราะหรายละเอยดตางๆ ในแตละขนตอนของโปรแกรม

1. ทศทางในการเขยนผงงานควรเรมจากบนลงลาง (Top to Bottom) หรอจากซายไปขวา (Left to Right)

2. ควรใชหวลกศรก ากบทศทางของผงงาน เพอใหเหนทศทางการท างานทชดเจน

3. ควรเลอกใชภาพผงงานทเหมาะสม

4. มการเขยนค าอธบายการท างานในแตละขนตอน โดยใชขอความทส น กะทดรด และชดเจน

5. มจดตอ (Connector) ในแตละขนตอนทชดเจน

6. จะตองมจดเรมตน (Start) และจดสนสด (Stop/End)

ตวอยาง Flow Chart ของการค านวนหาพนทวงกลม และโคดของโปรแกรมทได ซงจะเกดเหตการณกตอเมอมการกดป มค านวนบนฟอรม

Stop

รบคารศมจากผใช

น าคาทไดใสในตวแปร R

ค านวนหาพนทวงกลมจาก สตร Area = 3.14159*R*R

Start Start

R = Inputbox (“Please enter Radius”)

สตร Area = 3.14159*R*R

Print Area

Stop

คอ เทคนคทใชในการออกแบบอลกอรทม ซงโครงสรางของ

อลกอรทมมอย 3 โครงสราง ไดแก 1. โครงสรางควบคมการท างานแบบเรยงล าดบ (Sequence Control Structure)

2. โครงสรางควบคมการท างานแบบเลอกกระท า (Selection Control Structure)

3. โครงสรางควบคมการท างานแบบวนซ า (Repetition Control Structure)

การออกแบบโครงสราง (Structured Design)

เปนโครงสรางทมการท างานทกค าสงอยางเปนล าดบขนตอน ประกอบไปดวยค าสงทวๆ ไป ไมมการตดสนใจ ไมมการวนซ า (Looping) ไมมการขามขนตอนหรอยอยกลบไปท าขนตอนเดม

ค าสงท 1

ค าสงท 2

ค าสงท 3

แสดงโครงสรางควบคมการท างานแบบเรยงล าดบ

1. โครงสรางควบคมการท างานแบบเรยงล าดบ (Sequence Control Structure)

แบบท 1 แบบตามล าดบ ใหใชกลองสเหลยมพรอมชอแทนขนตอนนน

Input

Output

เปนโครงสรางทใชในการตดสนใจเลอกการกระท าตอไปโดยท าการตรวจสอบเงอนไขกอน มโครงสรางอย 2 ลกษณะ คอ

2.1 If-Then-Else

2.2 Case

2. โครงสรางควบคมการท างานแบบเลอกกระท า (Selection Control Structure)

โปรแกรมจะยอมรบเพยงจรงหรอเทจเทานน โดยการตรวจสอบเงอนไขจะอยในรปสเหลยมขาวหลามตด ถาผลลพธจากการตรวจสอบเงอนไขของโปรแกรมเปนจรงจะกระท าค าสงท 1 แตหากผลลพธการตรวจสอบเงอนไขของโปรแกรมเปนเทจจะกระท าค าสงท 2 ซงแตกตางออกไป

2.1 เงอนไขเปนแบบ If-Then-Else

แบบท 2.1 แบบตดสนใจ ทางออกได 2 ทางคอ ทางทท าเพอเงอนไขทเปนจรง อกทางคอเมอเงอนไขเปนเทจ

เทจ (False) จรง (True)

ประโยคเงอนไข

ค าสงท 1 ค าสงท 2

2.1 แบบ If-Then-Else

จรง เทจ ประโยคเงอนไข

ค าสงท 1 ค าสงท 2

เรมตน

อานคาขอมลชวโมงการท างาน

ลวงเวลา

ชงโมงการท างานลวงเวลา > 0

คาลวงเวลา = 0 ค านวณคาลวงเวลา

จบ

เทจ จรง

รปแสดงตวอยางผงงานทใชโครงสรางเงอนไขแบบ If-Then-Else

การค านวณ OT

เมอมการตรวจสอบเงอนไขจะยอมใหเลอกกระท าค าสงเพยง หนงทางเลอก...เทานน

ประโยคเงอนไข

ค าสงท 1 ค าสงท 2 ค าสงท 3 ค าสงท 4

รปแสดงโครงสรางเงอนไขแบบ Case

เงอนไขท 1 เงอนไขท 2 เงอนไขท 3 เงอนไขท 4

2.2 เงอนไขเปนแบบ Case

เปนโครงสรางทมการท างานเพยงค าสงเดยวหรอหลายค าสงวนซ าไปมา การท างานแบบวนซ าม 2 ลกษณะคอ

3.1 Do... While

3.2 Do.... Until

3. โครงสรางควบคมการท างานแบบวนซ า (Repetition Control Structure)

เทจ (False) จรง (True)

แบบท 3 แบบวน Loop ซงประกอบดวยสวนตดสนใจ แลวมการให Control วงกลบ มาทจดเรมตน

จะวนซ าการท างานเมอผลการตรวจสอบเงอนไขเปน...จรง

ประโยคเงอนไข

ค าสงการท างาน

เทจ

จรง

รปแสดงชดค าสงแบบ Do While

3.1 ชดค าสงแบบ Do While

ค าสงการท างาน

ประโยคเงอนไข จรง

เทจ

รปแสดงชดค าสงแบบ Do Until

จะตรวจสอบเงอนไขหลงจากโปรแกรมท างานแลว และจะวนซ าการงานกตอเมอผลการตรวจสอบเงอนไขเปน..เทจ

3.2 ชดค าสงแบบ Do Until

ตวอยาง จงเขยนผงงานส าหรบอานขอมลซงประกอบดวย เลขประจ าตว ชอ อาย และความสงของ นกเรยนหนงคน และพมพเลขประจ าตว ชอ อาย และความสงของนกเรยนคนนน วธท า 1. ขอมลน าเขา - เลขประจ าตว แทนดวยId - ชอ แทนดวย Name - อาย แทนดวย Age - ความสง แทนดวย Height 2. ขนตอนการท างาน - รบขอมล Id, Name, Age, Height - พมพ Id, Name, Age, Height - เลกการท างาน 3. ผลลพธ พมพขอมล,ของนกเรยนหนงคน

SART

Input Id, Name Age, Height

Print Id, Name, Age, Height

END

ตวอยาง จงเขยนผงงานส าหรบพมพสตรคณแม 13

วธท า

1. ขอมลน าเขาไมม

2. ขนตอนการท างาน

2.1 ก าหนดตวแปลนบจ านวนครงของการพมพ Count = 1

2.2 Loop: เปรยบเทยบ Count กบ 12 ถา Count <= 12

- พมพ Count*13

- เพมคาตวแปรนบจ านวนครงของการพมพเปน Count = Count+1

- ขามไปท าท Loop ถา Count > 12 ใหเลกการท างาน

3. ผลลพธ สตรคณ 12 บรรทด

START

Count = 1

Count <=12 END

Print Count*13

Count = Count +1

เทจ (False)

จรง (True)

หรอวธท า

1. ขอมลน าเขาไมม

2. ขนตอนการท างาน

2.1 ก าหนดตวแปลนบจ านวนครงของการพมพ Count = 1

2.2 Loop: พมพ Count*13

2.3 เพมคาตวแปรนบจ านวนครงของการพมพเปน Count = Count + 1

2.4 เปรยบเทยบ Count กบ 12

- ถา Count < = 12 ขามไปท าท Loop

- ถา Count > 12 ใหเลกการท างาน

3. ผลลพธ สตรคณ 12 บรรทด

START

Count = 1

Count <=12

Print Count*13

Count = Count +1

END

เทจ (False)

จรง (True)

1. Desk Check คอการเปรยบเทยบผลลพธทไดจากการประมวลผลของโปรแกรมกบ Test Data วาตรงกนหรอไม

2. Structured Walkthrough คอ การตรวจสอบโดยสอบโดยใชบคคลใดกตามทไมใชผออกแบบอกกอรทม ท าการตรวจสอบให

3. ซโดโคด (Pseudo code) มลกษณะเปนขอความทเขยนขนโดยผสมผสานระหวางค าภาษาองกฤษกบภาษาคอมพวเตอร

4. Nassi-Schneiderman (N-S) Chart

เปนแผนภาพทแสดงล าดบขนตอนการท างานแตละสวนของโปรแกรมคลายกบผงงาน (Flowchart) แตจะใชสญลกษณรปสเหลยมแทนขนตอนแตละขนตอนและวางเรยงตอกนโดยไมใชเสนเชอมโยง

เทคนคในการตรวจสอบหาขอผดพลาด

1. Desk Check คอการเปรยบเทยบผลลพธทไดจากการประมวลผลของโปรแกรมกบ Test Data วาตรงกนหรอไม

Test Data หมายถง ขอมลทโปรแกรมเมอรสมมตขนมาเพอแทนคาลงไปในตวแปรของอลกอรทม และขอมลเหลานจะตองเปน....ขอมลทโปรแกรมเมอรทราบผลลพธทถกตอง อยแลว

2. Structured Walkthrough คอ การตรวจสอบโดยสอบโดยใชบคคลใดกตามทไมใชผออกแบบอกกอรทม ท าการตรวจสอบให

เทคนคในการตรวจสอบหาขอผดพลาด

ขอควรระวงในการออกแบบโปรแกรม

1. แตละโมดลของโปรแกรมจะตอง..ไมม..โคดตาย (Dead Code) หมายถง Source Code ทไมไดรบการประมวลผล ไมวาจะในกรณใดกตาม

2. อลกอรทมของโปรแกรมจะตองไมมลกษณะการวนซ าแบบไมรจบ 3. แตละอลกอรทมจะตองมทางเขาและทางออกของการท างานไดเพยงทาง

เดยวเทานน

การออกแบบโปรแกรมใหเหมาะสม (Program Design)

3. ซโดโคด (Pseudo code) มลกษณะเปนขอความทเขยนขนโดยผสมผสานระหวางค าภาษาองกฤษกบภาษาคอมพวเตอร ซงมเปาหมายเพอใชบรรยายล าดบขนตอนการท างานและไมมการใช รปหรอสญลกษณแตอยางใด ซโดโคดจะมสวนทคลายกบการเขยนโปรแกรมจรงมาก ดงน นจงเปนรปแบบการอธบายอลกอรทมทสามารถดแลวแปลงไปเปนภาษาโปรแกรมมงไดสะดวกและเปนทนยมใชกนมากในปจจบน

เครองมอทสนบสนนการออกแบบโปรแกรม (Design Tools)

ใชแสดงขนตอนการเขยนโปรแกรมอยางงายๆ นยมเขยนดวยภาษาองกฤษเพราะจะคลายคลงกบภาษาโปรแกรมมาก มการใชโครงสรางค าสงเฉพาะ เชน IF-THEN-ELSE, DO-WHILE, DO-UNTIL และจบดวย ENDIF หรอ ENDDO สามารถแปลงเปนโปรแกรมไดโดยงาย

เชน

START

Read SIDE1, SIDE2, HEIGHT

Compute AREA = ((SIDE1 + SIDE2)*HEIGHT)/2

Print AREA

STOP

3. ซโดโคด (Pseudo code)

Ex2: การค านวณ OT

4. Nassi-Schneiderman (N-S) Chart

เปนแผนภาพทแสดงล าดบขนตอนการท างานแตละสวนของโปรแกรมคลายกบผงงาน (Flowchart) แตจะใชสญลกษณรปสเหลยมแทนขนตอนแตละขนตอนและวางเรยงตอกนโดยไมใชเสนเชอมโยง

เครองมอทสนบสนนการออกแบบโปรแกรม (Design Tools)

4. Nassi-Schneiderman (N-S) Chart

Ex2: การค านวณ OT

ประกอบไปดวย 2 ขนตอนหลกๆ คอ

1. การเปลยนอลกอรทมไปเปนภาษาทคอมพวเตอรน าไปปฏบต หรอทเรยกวา Source Code

2. การเขยน Source Code จรง

3. การเขยนโปรแกรม (Program Coding)

การเขยนโปรแกรมควรมการระบขอความก ากบรายละเอยดดวยเสมอ ซงขอความเหลานเรยกวา “คอมเมนต (Comment)” มอย 2 ลกษณะคอ

1. Global Comment หมายถง ขอความทบงบอกถงจดประสงคของโปรแกรมทเขยนขน รวมถงชอของโปรแกรม ชอของโปรแกรมเมอร และวนทเขยนโปรแกรม

2. Internal Comment หมายถง ขอความทระบไวเพออธบายความหมายของการปอนแตละชดค าสง (Statement)

3. การเขยนโปรแกรม (Program Coding)

ขอผดพลาดของโปรแกรม เรยกวา “Bug” สวนการแกไขขอผดพลาด เรยกวา “Degug” โปรแกรมทท างานไมไดตามวตถประสงค เรยกวาม “Error”

การเกด Error ของโปรแกรมมกมมาจาก 2 สาเหตเทานน คอ

1. Syntax Error คอ ขอผดพลาดทเกดจากการเขยนโคดค าสง (Source Code) ทไมตรงกบ...ไวยากรณ (Syntax) ของภาษาโปรแกรมมงนนๆ

2. Logic Error เปนขอผดพลาดทเกดจากการออกแบบอลกอรทมใหท างานผดวตถประสงค

4. การทดสอบโปรแกรม (Program Testing)

เปนขนตอนของการตรวจสอบ Source Code ของโปรแกรมทงหมดอกครง แลว ลบ Dead Code... ตางๆออกใหหมด จากนนทดลองรนโปรแกรมดวาโปรแกรมยงคงท างานไดเหมอนเดมหรอไม หลงจากนนโปรแกรมเมอรจะตรวจสอบเอกสารตางๆทเกยวกบตวโปรแกรม และสงมอบเอกสารทงหมดใหกบนกวเคราะหระบบ

5. การทบทวนการท างานของโปรแกรมครงสดทาย (Solution Formalization)

ประกอบไปดวยการท างาน 2 สวน คอ

1. การแกไขขอผดพลาด (Error) จากการใชงาน

2. การปรบปรงโปรแกรมใหมความสามารถเพมขน

6. การบ ารงรกษาโปรแกรม (Program Maintenance)

วงจรการพฒนาโปรแกรม (Program Development Life Cycle: PDLC) มกขนตอนอะไรบางมาพอเขาใจ

การออกแบบโครงสราง (Structured Design) คออะไร จงเขยนอธบายมาพอเขาใจ เทคนคในการตรวจสอบหาขอผดพลาด มอะไรบางจงอธบายพรอมยกตวอยาง

ประกอบ

อาจารยสายสนย เจรญสข

อางอง