การแก้ปัญหาการออกแบบและพัฒนาขั้นตอนวิธี...

43
การแก้ปัญหา การออกแบบ และ พัฒนาขั ้นตอนวิธี

Upload: saranyu-srisrontong

Post on 16-Jul-2015

194 views

Category:

Education


0 download

TRANSCRIPT

การแกปญหา การออกแบบและ

พฒนาขนตอนวธ

อลกอรทม (Algorithm)• แนวคดอยางมเหตผลทผเขยนโปรแกรมใชในการอธบายวธการอยาง

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

Programmers

Highly trained technical specialists who write computer software instructions.

System Analysts

Specialists who translate business problems and requirements into information requirements and systems, acting as liaison between the information systems department and the rest of the organization.

Information System Managers

Leaders of the various specialists in the information systems department.

End Users

Representatives of departments outside the information systems group for whom information systems applications are developed.

องคประกอบของการจดท าอลกอรทม1.การวเคราะหปญหา (Analyze the Problem)

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

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

4.การทดสอบและแกไขขอผดพลาดของโปรแกรม

(Testing and Debugging)

5.การท าเอกสารประกอบโปรแกรม (Program Documentation)

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

1. การวเคราะหปญหา (Systems Analysis)The analysis of a problem that the organization will try to

solve with an information system.Feasibility StudyAs part of the systems analysis process, the way to

determine whether the solution is achievable, given the organization’s resources and constraints.

Technical Feasibility, Economic Feasibility and Operational Feasibility

Establishing Information Requirements– การแสดงผล– การน าเขาขอมล– การประมวลผล– การตดตอกบผใชงาน

System Development Life Cycle : SDLC

7

การก าหนดและวเคราะหปญหา• ก าหนดขอบเขตของปญหา • ก าหนดลกษณะของขอมลเขาและออกจากระบบ (Input/Output

Specification) • ก าหนดวธการประมวลผล (Process Specification)

8

ตวอยางถาหากตองการออกแบบโปรแกรมใหคอมพวเตอรรบคาขอมล 3 คา และแสดงคาเฉลยทางจอภาพ อาจก าหนดและวเคราะหปญหาได ดงน 1. รบขอมลจากคยบอรด

– รบขอมลเฉพาะทเปนตวเลขมาเกบในตวแปร – ถาขอมลเทากบ 0 ใหรบใหม

2. หาคาเฉลย – รวมคาทกคาทรบมาเขาดวยกน – น าคาผลรวมทไดหารดวย 3– น าคาผลลพธไปเกบในตวแปร

3. แสดงผลลพธทางจอภาพ – แสดงค าวาคาเฉลยเทากบ – แสดงผลลพธโดยมทศนยมสองต าแหนง

9

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

2. การออกแบบโปรแกรม (Systems Design)Details how a system will meet the information

requirements as determined by the systems analysis.Logical DesignLays out the components of the information system and

their relationship to each other as they would appear to users.

Physical DesignThe process of translating the abstract logical model into

the specific technical design for the new system.The Role of End Users

2.1 ผงงาน (Flowchart)»ผงงานระบบ (System Flowchart)»ผงงานโปรแกรม (Program Flowchart)2.2 รหสล าลอง (Pseudo Code)

13

ตวอยางการเขยนผงงานสญลกษณของการรบคา

สญลกษณของการค านวณ

15

ตวอยาง

จงเขยนผงงานเพอก าหนดคาใหกบตวแปร a และ b แลวเปรยบเทยบเพอแสดงผล

ถาตวแปร a มคามากกวาตวแปร b ใหพมพคาตวแปร a ออกมาแสดงบนจอภาพ

ถาไมใช ใหพมพคาตวแปร b ออกมาแสดงบนจอภาพ

16

T F

STOP

START

print “A = “, a print “B = “, b

a = 10b = 5

a > b

17

ตวอยาง

จงผงงานในการจบไมสนไมยาวสามครง ถาไดไมยาวใหไดเงน 100 บาท ถาไดไมสนใหเสยเงน 100 บาท

18

20

ซโดโคดซโดโคดเปนค าอธบายขนตอนการท างานของโปรแกรมโดย

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

21

ตวอยางเชนในการเขยนซโดโคดส าหรบใหคอมพวเตอรหาคาเฉลยจากขอมลทรบเขาทางแปนพมพอาจเขยนไดดงน

22

การวเคราะหปญหาตวอยางท 1

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

ตองการอะไรตองการทราบคาจางของพนกงานแตละคน

ตองการเอาตพตอยางไรตองการเอาตพตเปนคาจางสทธของพนกงานทางจอภาพ

23

ตวอยางการวเคราะหขอมลเขา

• รหสพนกงาน• ชอพนกงาน• จ านวนชวโมงท างานเกบในตวแปรชอ Hours• คาจางรายชวโมงเกบในตวแปรชอ PayRate

ก าหนดวธการค านวณคาจางสทธ = จ านวนชวโมง x อตราตอชวโมง

ขนตอนการประมวลผล1. เรมตน 2. รบรหสพนกงาน, ชอพนกงาน, จ านวนชวโมงท างาน, คาจางรายชวโมง 3. ค านวณ คาจางสทธ = Hours x PayRate 4. แสดงผลลพธ เปนรหสพนกงาน ชอ และคาจางสทธ 5. จบการท างาน

24

ตวอยางท 2จงเขยนแนวทางการแกปญหาดวยคอมพวเตอรในการหา

ปรมาตรทรงกระบอก และแสดงคาปรมาตรทค านวณได

ตองการอะไร

ตองการค านวณปรมาตรของรปทรงกระบอก ตองการเอาตพตอยางไร

คาปรมาตรทรงกระบอกเปนรปแบบเลขทศนยมทางจอภาพ

25

การวเคราะหปญหาขอมลเขา

ความสงของทรงกระบอก (h) และรศมของทรงกระบอก(r) เปนรปแบบเลขทศนยม

วธการค านวณปรมาตรทรงกระบอก = x รศม2 x ความสง

ขนตอนการประมวลผล1. เรมตน 2. รบคาความสงและคารศมของทรงกระบอก 3. ค านวณคาปรมาตร จาก ปรมาตร = x r2 x h 4. แสดงคาปรมาตรทรงกระบอกทางจอภาพ 5. จบการท างาน

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

4. การทดสอบและแกไขขอผดพลาดของโปรแกรม• ขอผดพลาดทางไวยากรณ (Syntax Error)

• ขอผดพลาดจากการด าเนนงาน (Runtime Error)

• ขอผดพลาดทางตรรกะ (Logical Error)

การทดสอบความถกตองของโปรแกรม• การน าเขาขอมลทถกตอง (Valid Cases)

• การตรวจสอบขอบเขตของขอมล (Boundary Cases)

• การน าเขาขอมลทมลกษณะพเศษหรอไมปกต (Special or Unusual Cases)

• การน าเขาขอมลทไมถกตอง ( Invalid Cases)

การทดสอบเบดเสรจ (Integration Test)

การทดสอบระบบ (System Test)

การทดสอบเพอยอมรบ (Acceptance Test)

ConversionThe process of changing from the old system to the

new system.Parallel StrategyA safe and conservative conversion approach in

which both the old system and its potential replacement are run together for a time until everyone is assured that the new system functions correctly.

Direct Cutover StrategyA risky conversion approach in which the new system

completely replaces the old one on an appointed day.

Pilot Study StrategyA strategy to introduce the new system to a limited

area of the organization until it is proven to be fully functional; only then can the conversion to the new system across the entire organization take place.

Phased Approach StrategyIntroduces the new system in stages either by

functions or by organizational units.Conversion PlanProvides a schedule of all activities required to install a

new system.

5. การท าเอกสารประกอบโปรแกรม

• เอกสารประกอบโปรแกรมส าหรบผใชงาน (User

Documentation)

• เอกสารประกอบโปรแกรมส าหรบผเขยนโปรแกรม (Technical

Documentation)

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

แนวคดเกยวกบโปรแกรมแบบโครงสราง• โปรแกรม (Program) คอ ชดของค าสงทถกน ามาจดเรยงกน เพอ

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

โปรแกรม เพอใหโปรแกรมทเขยนขนมรปแบบทเปนมาตรฐาน สามารถประเมนผลและแกไขปรบปรงไดงาย

• โปรแกรมแบบโครงสราง หมายถง โปรแกรมทเขยนขนตามแบบแผนหรอกฎเกณฑทเปนมาตรฐาน มรปแบบการใชโครงสรางทลดหลนกนและมขนตอนการท างานทแนนอน โปรแกรมแบบโครงสรางทดจะตองงายตอการอาน การท าความเขาใจ และการแกไขปรบปรงโปรแกรมในภายหลง รวมทง สามารถท างานไดอยางมประสทธภาพ

• ในการเขยนโปรแกรมทมขนาดใหญและ/หรอมการท างานทสลบซบซอน ผขยนโปรแกรมจะท าการแบงโปรแกรมขนาดใหญออกเปนสวนยอยๆ เรยกวา มอดล (Module) แตละมอดลมลกษณะเหมอนโปรแกรมขนาดเลกทส าเรจสมบรณในตวเองและมความเปนอสระตอกน แตอาจมการสงผานขอมลใหกนระหวางมอดลได

• วตถประสงคหลก– เพอจ าแนกงานหรอโครงสรางของโปรแกรมทมขนาดใหญและ/หรอมการท างานทสลบซบซอนออกเปนมอดลหรอโปรแกรมขนาดเลกทมความสมบรณในตนเอง แลวจดรปโครงสรางรวมของมอดลตาง ๆ ใหเปนระเบยบ เพอเชอมโยงและประสานความสมพนธระหวางมอดลกลบขนเปนโปรแกรม

– เพอสรางและจดเกบมอดลทมการเรยกใชงานซ าบอยครงภายในโปรแกรม ผเขยนโปรแกรมจะไดไมตองเขยนมอดลนนซ าหลายหน

ประโยชนขอดจากการแบงโปรแกรมทมขนาดใหญออกเปนมอดล คอ• ท าใหลดความยงยากซบซอนในการเขยนและแกไขปรบปรง

โปรแกรมลงมาก เนองจากผเขยนโปรแกรมหรอผท าการแกไขปรบปรงโปรแกรมสามารถมองภาพรวมในการท างานของโปรแกรมไดงายและชดเจนมากขน

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

• การทดสอบความถกตองและตรวจสอบการท างานของมอดลตาง ๆ ภายในโปรแกรมท าไดงายและสะดวกขน

การออกแบบโปรแกรมจากบนลงลาง (Top-Down Design) • วธการออกแบบวธหนงทผเขยนโปรแกรมจะท าการแบงโปรแกรมทมขนาด

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

• ผออกแบบจะแบงโปรแกรมออกเปนสวนยอย โดยพจารณาจากระดบบนสดวา งานหรอโปรแกรมเรองนตองการท าอะไร แลวท าการแตกความคดยอยลงมาอกระดบหนงวา การแกปญหางานดงกลาวควรตองแบงออกเปนกสวนยอย อะไรบาง จากนนพจารณาวา ในแตละสวนยอยตองด าเนนการในเรองใดบาง และตองแบงสวนยอยใดลงไปอกระดบหนงหรอไม

• ขนตอนถดมา คอ การวางโครงสรางของโปรแกรมหรอโครงรางของสวนยอยตาง ๆ ในโปรแกรม โดยใชแผนภาพแบบล าดบขน (Hierarchy Chart) ซงจะแสดงใหเหนความสมพนธระหวางสวนยอยตาง ๆ และล าดบขนตอนในการท างานกอนหลงของแตละสวนยอย

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

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

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

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

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

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

• พฒนารหสล าลองในแตละมอดลของโปรแกรมดวยภาษาคอมพวเตอรทเหมาะสม

การแทนทโครงสรางขอมลในหนวยความจ า• แบบก าหนดขนาดของหนวยความจ ากอนการคอมไพล(Static memory allocation) => Static data structure

• แบบไมก าหนดขนาดของหนวยความจ ากอนการคอมไพล(Dynamic memory allocation) => Dynamic data structure

ขอควรค านงในกระบวนการจดการขอมล• ขอมลตองเปนตวแทนของเรองทตองการศกษา และตองถกจดเกบใน

รปแบบทสามารถเขาถงได• ขอมลตองถกจดระบบใหสามารถเขาถงไดอยางมประสทธภาพตาม

จดมงหมายตาง ๆ ของผใช• ขอมลตองถกประมวลผลและน าเสนอในรปแบบทตรงตาม

ความตองการของผใชอยางมประสทธภาพ• ขอมลตองถกจดเกบในลกษณะทสามารถปองกนความถกตอง

และจดการไดอยางมประสทธภาพ

โครงสรางทจ าเปนส าหรบการเขยนโปรแกรม

• โครงสรางแบบค าสงตามล าดบ (Simple Sequence)

• โครงสรางแบบมการตดสนใจ (Selection)

• โครงสรางแบบท าซ า (Repetition)– โครงสรางแบบ Do...Until– โครงสรางแบบ While…Do

การเพมประสทธภาพการท างานของโปรแกรม• ในการจดโครงสรางโปรแกรมออกเปนสวน ๆ ควรแยกสวนของโปรแกรม

ซงเปนการประมวลผล ไมตองการการโตตอบจากผใช (Non-Interactive Processing) ออกจากสวนทเปนการโตตอบระหวางโปรแกรมกบผใช

• ลดขนตอนการอานและเขยนจากแผนบนทกขอมล ซงจะท าใหประมวลผลโปรแกรมเรวขนกวาเดม

• ลดทศทางการไหล (Flow) ของทางเลอกในโปรแกรมทไมส าคญ• ลดการเรยกใชคาฟงกชน หรอโปรแกรมยอยทไมจ าเปน• ลดการประมวลผลตามล าดบขน (Sequential Processing) ทไมตองการ

พยายามเขยนโปรแกรมใหกระชบ

ใหนสตเขยนค าตอบของค าถามตอไปนลงในกระดาษ แลวสงพรอมระบรหสและชอของนสต ภายในวนจนทรท 20 ตลาคม 2557 กอน 12.00 น. ในLocker อ.ชตมณฑน Sc9 ชน 3 System Analysis และ System Design แตกตางกนอยางไร

จงอธบาย จงเปรยบเทยบความแตกตางระหวาง Logical Design และ Physical

Design ในกระบวนการพฒนาระบบ การทดสอบมความส าคญอยางไร และ

ประกอบดวยอะไรบาง Conversion คออะไร มกวธ อะไรบาง และแตละวธแตกตางกน

อยางไร