SlideShare a Scribd company logo
1 of 16
Download to read offline
การออกแบบและการพัฒนาโปรแกรม
กระบวนการพัฒนาซอฟตแวร
กระบวนการการพัฒนาซอฟตแวรที่ดีควรหาขอผิดพลาดใหได แตตองไมสับสนเรื่อง
ขั้นตอนในการพัฒนา ถาผลิตอยางมีขั้นตอน ก็ควรมีความยืดหยุนพอสมควร และไมยึดติดกับ
ขั้นตอนมากเกินไป จนทําใหโครงการลาชา หรือลมเหลว เพราะเลือกใชขั้นตอนที่ไมเหมาะสมกับ
ประเภทของซอฟตแวร
ถาพบขอผิดพลาดชวงแรกๆ ก็จะชวยลดระยะเวลา และคาใชจาย ในการพัฒนาซอฟตแวรไดมาก
การศึกษาเรื่องคาใชจายดานซอฟตแวรของบริษัทไอบีเอ็ม (ibm) บริษัทจีทีอี (gte) และบริษัททีอาร
ดับเบิลยู (trw) โดยนายแบรี่ บีม (barry boehm)ในป ค.ศ. ๑๙๓๖ พบวา ถาแกไขขอผิดพลาด เมื่อ
พัฒนาซอฟตแวรเสร็จแลว แทนที่จะแกไขตั้งแตตอนที่กําหนดคุณลักษณะของซอฟตแวร ก็จะตอง
เสียคาใชจายเพิ่มขึ้นเปนรอยเทา ตัวอยางของปญหานี้เห็นไดอยางชัดเจน ในการแกปญหา
คอมพิวเตอร ป ค.ศ. ๒๐๐๐ หรือที่เรียกวา ปญหาวายทูเค (y2k) บริษัที่ออกแบบซอฟตแวรใหใชกับ
ปที่มีเลขสี่หลักตั้งแตตนแทบจะไมเดือดรอนในการแกไขเลย แตซอฟตแวรอื่นๆ ที่ทั้งผูผลิตและ
ผูใชตางละเลยปญหานี้ โดยยังคงใชปเปนเลขสองหลักอยู บางรายใชอยูเปนสิบๆ ป เมื่อถึงเวลา
แกไขขอผิดพลาดของซอฟตแวร ก็ปรากฏวาตองใชเงินเปนจํานวนมากถึงหลายสิบลานบาท รอย
ลานบาท หรือมากกวานั้น
การพัฒนาซอฟตแวรอยางมีขั้นตอน
มีหลายแบบและยังมีวิวัฒนาการอยูอยางตอเนื่องเพราะสาขาทางวิศวกรรมซอฟตแวรนี้ เพิ่งเกิดขึ้นในครึ่งหลังของ
ศตวรรษที่ ๒๐ หากเทียบกับระยะเวลา ที่มนุษยชาติศึกษากระบวนการสรางที่อยูอาศัย ที่มีมาเปนพันๆ ปแลว ก็นับได
วา สาขาวิชานี้ยังใหมอยูมาก ดังนั้น ในการเลือกกระบวนการการพัฒนาซอฟตแวรจะตองตั้งคําถามวา กระบวนการ
ใด"เหมาะ" ที่สุด สําหรับโจทยปญหา และประเภทของซอฟตแวรไมใชกระบวนการใด "ดี" ที่สุด
การพัฒนาซอฟตแวรไมใชกระบวนการที่มีจุดเริ่มตน และจุดสิ้นสุดที่แนนอน เหมือนเชนผลิตภัณฑอื่นๆ เนื่องจาก
ซอฟตแวรใชสําหรับสั่งใหคอมพิวเตอรชวยแกโจทยปญหาบางอยาง ใหแกมนุษย เมื่อสภาพของโจทยปญหา หรือ
คอมพิวเตอรเปลี่ยนแปลงไป ซอฟตแวรก็ตองเปลี่ยนแปลงตามซอฟตแวรที่ขาดการทํานุบํารุง จึงเสื่อมคุณภาพ ทั้งที่
ไมไดสึกหรอ ทั้งนี้เพราะไมสามารถนําไปใชแกปญหาไดอยางมีประสิทธิภาพอีกตอไป
ในสมัยแรกๆ การผลิตซอฟตแวรมักไมมีขั้นตอน คือ เริ่มตนดวยการเขียนซอฟตแวรเลย เมื่อมีปญหาก็แกไข เขียน
แลวแกสลับกันไปจนกวาจะไดคุณลักษณะที่ตองการผลก็คือ จะไดซอฟตแวรที่ซับซอนมาก หากตองมีการปรับปรุง
แกไขในภายหลัง และผูที่แกไข ไมใชผูเขียนซอฟตแวรนั้นเอง ก็จะมีปญหามากมักทําใหตองเสียคาใชจาย ในการทํานุ
บํารุงซอฟตแวร เกินกวางบประมาณที่กําหนดไว
 ๑. กําหนดคุณลักษณะซอฟต์แวร์ (Definition)
เนนวาจะ "สร้างอะไร" โดยใหคําตอบวา "โจทย์ปัญหาที่ต้องการแก้คืออะไร" และ "สิ่งที่จะใช้แก้ปัญหานี้
คืออะไร"
 ๒. สร้างซอฟต์แวร์ (Development)
เนนวาจะ "สร้างอย่างไร" โดยใหคําตอบเรื่อง "ทําอย่างไรจึงจะสร้างสิ่งที่นํามาใช้แก้ปัญหาได้" และ "ทํา
อย่างไรจึงจะตรวจสอบหาข้อบกพร่องของสิ่งที่สร้างขึ้นได้ ตลอดจนสิ่งที่นํามาใช้แก้ปัญหา รวมทั้ง
ซอฟต์แวร์ และเอกสารอธิบายซอฟต์แวร์"
๓. วิวัฒนาการของซอฟต์แวร์ (Evolution)
เนนวาจะ "เปลี่ยนแปลงอย่างไร" โดยใหคําตอบเรื่อง "เมื่อสภาพการ หรือปัญหาเปลี่ยนแปลงไปต้องทํา
อย่างไร จึงจะสามารถปรับปรุงสิ่งนั้นให้ยังคงใช้แก้ปัญหาได้"
ต่อมาได้มีการนําหลักวิศวกรรมมาประยุกต์ใช้ในการพัฒนาซอฟต์แวร์
การพัฒนาซอฟต์แวร์ จึงแบ่งได้เป็น ๓ ระยะ คือ
แมแบบแบบขั้นน้ําตก
 แมแบบของกระบวนการการพัฒนาซอฟตแวรที่เปนขั้นตอนที่เกาแกที่สุดนั้น เรียกกัน
วา แมแบบแบบขั้นน้ําตก (Waterfall Model) ซึ่งเมื่อลากเสนเชื่อมตอแต
ละขั้นตอนลงไป จนถึงขั้นตอนสุดทายแลว ก็จะมีลักษณะคลายน้ําตก
 ขั้นตอนหลักๆ ของแมแบบขั้นน้ําตก มีดังนี้
๑. วิเคราะห์ความเป็นไปได้
ปญหาทุกอยางในโลกนี้ ไมใชจะเปนปญหา ซึ่งเหมาะที่จะใชคอมพิวเตอร และซอฟตแวร
แกไขเสมอไป หรือถึงแมจะใชได ก็อาจเสียคาใชจายมากเกินไป หรือตองใชเวลานานมาก ดังนั้น ใน
ขั้นตอนแรก จึงตองมีการพิจารณาความเหมาะสม และความเปนไปไดในสวนนี้กอน
๒. วิเคราะห์โจทย์หรือความต้องการของผู้ใช้
โจทยปญหาเปนสาเหตุที่ทําใหลักษณะของซอฟตแวรมีความหลากหลาย เพราะซอฟตแวร
ถูกพัฒนาขึ้นมา เพื่อแกโจทยปญหาที่มีมากมาย หลายรูปแบบ โจทยปญหาอาจเปนความตองการของ
ผูใช ที่ตองการใหคอมพิวเตอรชวยทํางานแทน หรืออาจเปนโจทยปญหาทางวิทยาศาสตร ที่พยายาม
ทําใหคอมพิวเตอรสามารถคิดไดเหมือน มนุษย หรืออาจเปนการควบคุมการทํางานของ อุปกรณ
อิเล็กทรอนิกสตางๆ ที่ควบคุมการสื่อสารของคอมพิวเตอรบนเครือขายคอมพิวเตอร ฯลฯ
เนื่องจากโจทยปญหาดังกลาวอาจจะเปนปญหาใหญ ดังนั้น จะตองมีการวิเคราะห และแยก
ยอยปญหา (Problem Decomposition)กําหนดขอบเขตปญหาที่จะใหซอฟตแวรแกไข (software
scope) และตองทําความเขาใจใหไดวา ผูใชตองการอะไร งานสวนนี้จะเปนประเด็นสําคัญในการ
วางแผนพัฒนาซอฟตแวร รวมทั้งประเมินระยะเวลา และคาใชจายดวย
 ๓. เขียนคุณลักษณะซอฟต์แวร์
คุณลักษณะซอฟตแวร (Software Specification) เปนขอกําหนดลักษณะหนาที่ และวิธีการทํางานของ
ซอฟตแวรวา ซอฟตแวรนี้ตองทําอะไรบาง จึงจะสนองความตองการของผูใชเชน จะตองใชขอมูลอะไร จะ
จัดเก็บขอมูลอะไร จะผลิตหรือประมวลผลขอมูลอะไร ลักษณะของขอมูลเปนอยางไร มีขอบเขตขอจํากัด
อะไร ฯลฯ
การกําหนดคุณลักษณะซอฟตแวรสามารถ ทําไดหลายวิธี เชน
สอบถามผูใชโดยตรงวา ตองการใหซอฟตแวรทําหนาที่อะไรบาง การสอบถามตองมีเทคนิคในการสื่อสารที่
ดี โดยอาจจะมีการยกตัวอยางสภาพการณ(scenario-based requirement analysis) ในแนววา "ถ้า
(สถานการณ์) เกิดขึ้น จะทําอย่างไร" เชน ถาโจทยคือ การจัดการพัสดุของรานคานักวิเคราะหระบบอาจถาม
วา "ถ้าสินค้าที่สั่งซื้อไม่มาส่งตามกําหนด ทางร้านจะทราบได้เมื่อใด และจะดําเนินการอย่างไร"
 ศึกษาวิธีการดําเนินงานตามปกติกอนนําคอมพิวเตอรมาใช และหาจุดออนที่จะตองนําซอฟตแวรเขามาใช
เพื่อเพิ่มประสิทธิภาพ
 สํารวจความตองการของตลาดวา คนสวนใหญตองการใหคอมพิวเตอรชวยงานดานใดในลักษณะใด และ
ตองการความบันเทิงจากคอมพิวเตอรอยางไร ฯลฯ
 ศึกษาจากลักษณะของซอฟตแวรเกาที่ทํางานดานนี้อยูแลว ฯลฯ
สรุปผลการวิเคราะห์ข้อกําหนดลักษณะของซอฟต์แวร์สามารถแบ่งได้เป็น ๓ รูปแบบ คือ รูปแบบ
ข้อมูล รูปแบบหน้าที่งาน และรูปแบบการทํางาน วิธีการนําเสนออาจแสดงเป็นแผนผังแบบต่างๆ เช่น
แสดงด้วยแผนผังการไหลของข้อมูล (Data Flow Diagram) แสดงด้วยแผนผังความสัมพันธ์ของข้อมูล
(Entity - Relationship Diagram) ฯลฯ ส่วนศัพท์ว่าข้อมูลใดคืออะไร จะต้องอธิบายอยู่ในพจนานุกรม
ข้อมูล (Data Dictionary)
 ๔. ออกแบบซอฟต์แวร์
การออกแบบซอฟตแวรจะเริ่มเนนดานเทคนิค โดยรวมถึงการออกแบบโครงสรางของซอฟตแวรหนวยตางๆ ของ
ซอฟตแวร ซึ่งสามารถนําเสนอไดดวยแผนผังหลายแบบ เชน แผนผังโครงสรางระบบ (Structure Chart) และรายละเอียด
ขั้นตอนในการแกปญหา (algorithm) ของแตละหนวยนอกจากนี้ ยังรวมถึงการออกแบบวิธีที่ซอฟตแวรจะสื่อสารกับผูใช
เชน ออกแบบหนาจอ ออกแบบวิธีรับคําสั่งจากผูใช (จะใหผูใชพิมพคําสั่ง หรือกดปุมเรียก หรือพูดดวย ฯลฯ)
๕. เขียนซอฟต์แวร์
การเขียนซอฟตแวร หรือโปรแกรม เปนการเขียนชุดคําสั่งใหคอมพิวเตอรทํางาน ภาษาที่ใชเขียนซอฟตแวรมีอยูหลากหลาย
ไดแก ภาษาเบสิก (BASIC)ภาษาฟอรแทรน (FORTRAN)ภาษาโคบอล (COBOL)ภาษาซี (C) ภาษาวิชวลเบสิก (Visual
Basic) ภาษาจาวา (Java) ภาษาเพิรล (PERL) ภาษาเดลไฟ (Delphi) ฯลฯซึ่งควรจะเขียนเปน หนวยเล็กๆ กอน โดยแตละ
ภาษาอาจจะมีรูปแบบ หนวยที่ตางกัน
เมื่อเขียนเสร็จแลว ก็ควรจะทดสอบความถูกตองในการทํางานของแตละหนวย ดวยการทดสอบซอฟตแวร (software
testing) วาถูกตองตามขอกําหนด ตรงตามความตองการของผูใช มีคุณภาพตามตองการ และหาขอผิดพลาด เพื่อแกไข
ชุดคําสั่งใหกําจัดขอบกพรองนั้นๆ (software debugging)
 ๖. รวมหนวยยอยของซอฟตแวร
ขั้นตอนนี้เปนการรวมชุดคําสั่งที่อยูในหนวยยอยใหเปนซอฟตแวรที่มีขนาดใหญ และทดสอบ
ความถูกตองวา หนวยตางๆ ยังทํางานรวมกันไดอยางถูกตองและมีประสิทธิภาพหรือไม
๗. นําซอฟตแวรไปใช
การนําเสนอซอฟตแวรไปใชในเบื้องตนจะชวยใหผูใชไดเห็นวา ใชไดสะดวกหรือไม และตรงกับ
ความตองการหรือไม เมื่อนําไปใชแลว สามารถแกปญหาที่กําลังประสบอยูไดหรือไม ฯลฯ หากไม
ตรงกับความตองการ ก็จะไดใหคนที่เขียนโปรแกรมนั้นแกไขใหม
๘. ใชซอฟตแวรในการทํางานจริง
ขั้นตอนนี้เปนการนําซอฟตแวรไปใชประกอบการทํางานจริง ซึ่งอาจทําใหวิธีการทํางาน
เปลี่ยนแปลงไป ซอฟตแวรที่ดีจะตองทําใหการทํางานมีประสิทธิภาพสูงขึ้น
การทํานุบํารุงซอฟตแวร
ขณะที่ใชซอฟตแวรอยู ก็ยังตองมีการทํานุบํารุงซอฟตแวร เชน
(๑) แกไขซอฟตแวร (correction) เมื่อพบขอผิดพลาด
(๒) ขยายหนาที่ของซอฟตแวร (enhancement) เมื่อผูใชปรับเปลี่ยนความตองการไป
(๓) ปรับใหซอฟตแวรทํางานในสภาพแวดลอมที่เปลี่ยนไป (adaptation) เชน มี
กฎระเบียบใหมออกมา ทําใหโจทยปญหาเปลี่ยนไป หรือคอมพิวเตอรเปลี่ยนรุน ฯลฯ
(๔) การรื้อแลว สรางใหม (software re-engineering) เพื่อปรับโครงสราง
ซอฟตแวรเกา พัฒนาซอฟตแวรใหม ใหมีคุณภาพ และทําใหการแก-ขยาย-ปรับ ทําไดอยาง
สะดวก และประหยัดในระยะยาว
การตรวจสอบความถูกตองควรจะทําในทุกขั้นตอน และถาพบขอผิดพลาด ก็ตองรีบยอนกลับ
ไปแกไข
 วิธีการตรวจสอบแกไข
จะแตกตางกันไป ในแตละขั้นตอน สําหรับขั้นตอนแรกๆ อาจจะเปนการสํารวจความพอใจ
ของผูใชวา การวิเคราะหโจทย และความตองการถูกตองหรือไม การเขียนขอกําหนด
ซอฟตแวร และการออกแบบซอฟตแวร จะทําใหซอฟตแวร ทําหนาที่ชวยงานไดตาม
ความตองการหรือไม
ในขั้นตอนหลังๆ เมื่อมีการเขียนโปรแกรมขึ้นมาแลว ก็สามารถทําการทดสอบได ทั้ง
ความถูกตองตามขอกําหนด (Verification) และความพอใจของผูใชวา ซอฟตแวร
มีคุณภาพ และประสิทธิภาพตามที่ตองการหรือไม (Validation)
 การทดสอบความตองการ
รวมถึงการจัดทํากรณีทดสอบ (test case) การทดสอบ และการหาจุดบกพรองใน
โปรแกรม ที่ตองแกไข กรณีทดสอบทั่วไปมักระบุขอมูลขาเขาที่เปนอินพุต (input) ของ
ซอฟตแวร และระบุขอมูลขาออก หรือลักษณะการโตตอบที่ควรเปนเอาตพุต (output)
ของซอฟตแวร การจัดทํากรณีทดสอบที่ดีควรครอบคลุม ทั้งภายนอก (Black - box
testing) และภายใน (White-box testing) การทดสอบครอบคลุมภายนอก ถามี
การณีที่ทดสอบอินพุต และเอาตพุต ทุกประเภท หรือการทดสอบครอบคลุมภายใน ถามีกรณี
ที่ทดสอบทุกโปรแกรมยอยภายใน โดยตองทําใหทุกคําสั่งในซอฟตแวรถูกเรียกใช
การทดสอบใหครอบคลุมมักมีกรณีทดสอบเปนจํานวนมาก เทคนิคในการทดสอบ (testing
technique) มักเสนอวิธีเลือกกรณีทดสอบใหมีพอประมาณ แตก็ยังครอบคลุมประเด็น
หลักๆ อยู ตัวอยางเชน การทดสอบโปรแกรมหาเศษจากการหารเลขที่คืนคาเศษที่เปนเลข
หลัก อินพุตจะ เปนตัวตั้ง และตัวหาร สวนเอาตพุตจะเปนคําตอบ
 อินพุต ทุกประเภทของทั้งตัวตั้ง และตัวหาร จะแยกไดเปน ประเภทตัวเลขที่โปรแกรม
รับ และประเภทตัวเลขที่โปรแกรมไมรับ ซึ่งประเภทตัวเลขที่โปรแกรมรับ อาจแยกได
เปน ๓ แบบ ไดแก เลขหลักเดียว เลขหลายหลัก และเลขติดลบ ประเภทตัวเลขที่
โปรแกรมไมรับอาจแยกไดเปน ๒ แบบ ไดแก ตัวอักษรอื่นๆ ที่ไมใชตัวเลข และเลข
ศูนย นอกจากนี้ยังมี ๓ กรณี ที่เทียบคาระหวางตัวตั้ง และตัวหาร ไดแก ตัวตั้งมีคา
มากกวาตัวหาร ตัวหารมีคามากกวาตัวตั้ง และตัวตั้งมีคาเทากับตัวหาร
 เอาตพุต ทุกประเภทแยกไดเปน ๓ กรณี คือ หารลงตัว หารไมลงตัว และหารไมได
หากรวมการทดสอบทุกรูปแบบแลว ก็จะมี กรณีมากถึง ๓ x ๒ x ๓ x ๓ คือ ๕๔ กรณี แต
เนื่องจากระยะเวลาในการทดสอบมักมีจํากัด กรณีที่ทดสอบจริงอาจเลือกเพียง ๑๐ กรณี ไดแก
๑. ตัวตั้งและตัวหารเปนเลขหลักเดียว หารลงตัว
๒. ตัวตั้งและตัวหารเปนเลขหลักเดียว หารไมลงตัว
๓. ตัวตั้งและตัวหารเปนเลขหลายหลัก หารลงตัว
๔. ตัวตั้งและตัวหารเปนเลขหลายหลัก หารไมลงตัว
๕. ตัวหารเปนศูนย หารไมได
๖. ตัวตั้งหรือตัวหารไมไดเปนตัวเลข หารไมได
๗. ตัวตั้งหรือตัวหารเปนเลขติดลบ
๘. ตัวตั้งมีคามากกวาตัวหาร
๙. ตัวตั้งมีคานอยกวาตัวหาร
๑๐. ตัวตั้งมีคาเทากับตัวหาร

More Related Content

Viewers also liked

Viewers also liked (8)

O net ไทย2552
O net ไทย2552O net ไทย2552
O net ไทย2552
 
บทที่ 1
บทที่ 1 บทที่ 1
บทที่ 1
 
Consonants presentation
Consonants presentationConsonants presentation
Consonants presentation
 
Classification and description of consonants.ppt
Classification and description of consonants.pptClassification and description of consonants.ppt
Classification and description of consonants.ppt
 
Place of articulation
Place of articulationPlace of articulation
Place of articulation
 
Lecture 1 Consonants
Lecture 1 ConsonantsLecture 1 Consonants
Lecture 1 Consonants
 
The Articulation Of Consonants
The Articulation Of ConsonantsThe Articulation Of Consonants
The Articulation Of Consonants
 
Phonetics - Manner of Articulation
Phonetics - Manner of ArticulationPhonetics - Manner of Articulation
Phonetics - Manner of Articulation
 

Similar to บทที่ 2 การเขียนโปรแกรม

ใบงานมราเเปด
ใบงานมราเเปดใบงานมราเเปด
ใบงานมราเเปดNoot Ting Tong
 
ใบงานที่ 8
ใบงานที่ 8ใบงานที่ 8
ใบงานที่ 8Yokyok' Nnp
 
ใบงานที่ 8
ใบงานที่ 8ใบงานที่ 8
ใบงานที่ 8Yokyok' Nnp
 
(ใบงานที่ 5)
(ใบงานที่ 5)(ใบงานที่ 5)
(ใบงานที่ 5)Aungkana Na Na
 
(ใบงานที่ 5)
(ใบงานที่ 5)(ใบงานที่ 5)
(ใบงานที่ 5)JoyCe Zii Zii
 
โครงงานประเภทการทดลองทฤษฎี
โครงงานประเภทการทดลองทฤษฎีโครงงานประเภทการทดลองทฤษฎี
โครงงานประเภทการทดลองทฤษฎีmcf_cnx1
 
ใบความรู้ 1.2ประเภทของโครงงานคอมพิวเตอร์
ใบความรู้ 1.2ประเภทของโครงงานคอมพิวเตอร์ใบความรู้ 1.2ประเภทของโครงงานคอมพิวเตอร์
ใบความรู้ 1.2ประเภทของโครงงานคอมพิวเตอร์sa_jaimun
 
ความหมายของเทคโนโลยีสารสนเทศ
ความหมายของเทคโนโลยีสารสนเทศความหมายของเทคโนโลยีสารสนเทศ
ความหมายของเทคโนโลยีสารสนเทศPaweena Kittitongchaikul
 
ใบความรู้ที่ 4
ใบความรู้ที่ 4ใบความรู้ที่ 4
ใบความรู้ที่ 4Rattana Wongphu-nga
 
โปรแกรมคอมพิวเตอร
โปรแกรมคอมพิวเตอรโปรแกรมคอมพิวเตอร
โปรแกรมคอมพิวเตอรTay Atcharawan
 
การพัฒนาโปรแกรม วิชญา เลขที่ 26.2
การพัฒนาโปรแกรม วิชญา เลขที่ 26.2การพัฒนาโปรแกรม วิชญา เลขที่ 26.2
การพัฒนาโปรแกรม วิชญา เลขที่ 26.2winewic199
 

Similar to บทที่ 2 การเขียนโปรแกรม (20)

ใบงานมราเเปด
ใบงานมราเเปดใบงานมราเเปด
ใบงานมราเเปด
 
ใบงาน8
ใบงาน8ใบงาน8
ใบงาน8
 
ใบ 7
ใบ 7ใบ 7
ใบ 7
 
ใบ 7
ใบ 7ใบ 7
ใบ 7
 
ใบ 7
ใบ 7ใบ 7
ใบ 7
 
ใบ 7
ใบ 7ใบ 7
ใบ 7
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 
ใบงานที่ 8
ใบงานที่ 8ใบงานที่ 8
ใบงานที่ 8
 
ใบงานที่ 8
ใบงานที่ 8ใบงานที่ 8
ใบงานที่ 8
 
(ใบงานที่ 5)
(ใบงานที่ 5)(ใบงานที่ 5)
(ใบงานที่ 5)
 
(ใบงานที่ 5)
(ใบงานที่ 5)(ใบงานที่ 5)
(ใบงานที่ 5)
 
โครงงานประเภทการทดลองทฤษฎี
โครงงานประเภทการทดลองทฤษฎีโครงงานประเภทการทดลองทฤษฎี
โครงงานประเภทการทดลองทฤษฎี
 
ใบความรู้ 1.2ประเภทของโครงงานคอมพิวเตอร์
ใบความรู้ 1.2ประเภทของโครงงานคอมพิวเตอร์ใบความรู้ 1.2ประเภทของโครงงานคอมพิวเตอร์
ใบความรู้ 1.2ประเภทของโครงงานคอมพิวเตอร์
 
ความหมายของเทคโนโลยีสารสนเทศ
ความหมายของเทคโนโลยีสารสนเทศความหมายของเทคโนโลยีสารสนเทศ
ความหมายของเทคโนโลยีสารสนเทศ
 
หน่วยที่ 6
หน่วยที่ 6หน่วยที่ 6
หน่วยที่ 6
 
ใบความรู้ที่ 4
ใบความรู้ที่ 4ใบความรู้ที่ 4
ใบความรู้ที่ 4
 
5
55
5
 
ใบงาน3
ใบงาน3ใบงาน3
ใบงาน3
 
โปรแกรมคอมพิวเตอร
โปรแกรมคอมพิวเตอรโปรแกรมคอมพิวเตอร
โปรแกรมคอมพิวเตอร
 
การพัฒนาโปรแกรม วิชญา เลขที่ 26.2
การพัฒนาโปรแกรม วิชญา เลขที่ 26.2การพัฒนาโปรแกรม วิชญา เลขที่ 26.2
การพัฒนาโปรแกรม วิชญา เลขที่ 26.2
 

More from Patcharee Pawleung

ประกาศสอบราคาครุภัณฑ์เครื่องอัดฟาง (ครั้งที่ 2)
ประกาศสอบราคาครุภัณฑ์เครื่องอัดฟาง (ครั้งที่ 2)ประกาศสอบราคาครุภัณฑ์เครื่องอัดฟาง (ครั้งที่ 2)
ประกาศสอบราคาครุภัณฑ์เครื่องอัดฟาง (ครั้งที่ 2)Patcharee Pawleung
 
ยกเลิกการสอบราคาซื้อครุภัณฑ์เครื่องอัดฟาง
ยกเลิกการสอบราคาซื้อครุภัณฑ์เครื่องอัดฟางยกเลิกการสอบราคาซื้อครุภัณฑ์เครื่องอัดฟาง
ยกเลิกการสอบราคาซื้อครุภัณฑ์เครื่องอัดฟางPatcharee Pawleung
 
สอบราคาครั้งที่ 3
สอบราคาครั้งที่ 3สอบราคาครั้งที่ 3
สอบราคาครั้งที่ 3Patcharee Pawleung
 
เครื่องทุ่นแรงการเกษตร
เครื่องทุ่นแรงการเกษตรเครื่องทุ่นแรงการเกษตร
เครื่องทุ่นแรงการเกษตรPatcharee Pawleung
 
9ข้อมูลเศรฐกิจและสังคม
9ข้อมูลเศรฐกิจและสังคม9ข้อมูลเศรฐกิจและสังคม
9ข้อมูลเศรฐกิจและสังคมPatcharee Pawleung
 
8ข้อมูลสถานประกอบการ
8ข้อมูลสถานประกอบการ8ข้อมูลสถานประกอบการ
8ข้อมูลสถานประกอบการPatcharee Pawleung
 
7ข้อมูลอาคารสถานที่
7ข้อมูลอาคารสถานที่7ข้อมูลอาคารสถานที่
7ข้อมูลอาคารสถานที่Patcharee Pawleung
 
6ข้อมูลครุภัณฑ์
6ข้อมูลครุภัณฑ์6ข้อมูลครุภัณฑ์
6ข้อมูลครุภัณฑ์Patcharee Pawleung
 
5ข้อมูลงบประมาณ
5ข้อมูลงบประมาณ5ข้อมูลงบประมาณ
5ข้อมูลงบประมาณPatcharee Pawleung
 
4ข้อมูลหลักสูตร
4ข้อมูลหลักสูตร4ข้อมูลหลักสูตร
4ข้อมูลหลักสูตรPatcharee Pawleung
 
2ข้อมูลบุคลากร
2ข้อมูลบุคลากร2ข้อมูลบุคลากร
2ข้อมูลบุคลากรPatcharee Pawleung
 
3ข้อมูลนักเรียนนักศึกษา
3ข้อมูลนักเรียนนักศึกษา3ข้อมูลนักเรียนนักศึกษา
3ข้อมูลนักเรียนนักศึกษาPatcharee Pawleung
 
1ข้อมูลวิทยาลัย
1ข้อมูลวิทยาลัย1ข้อมูลวิทยาลัย
1ข้อมูลวิทยาลัยPatcharee Pawleung
 
รายงานประเมินตนเอง2556
รายงานประเมินตนเอง2556รายงานประเมินตนเอง2556
รายงานประเมินตนเอง2556Patcharee Pawleung
 
รายงานการประเมินตนเอง2555
รายงานการประเมินตนเอง2555รายงานการประเมินตนเอง2555
รายงานการประเมินตนเอง2555Patcharee Pawleung
 
รายงานการประเมินตนเอง2554
รายงานการประเมินตนเอง2554รายงานการประเมินตนเอง2554
รายงานการประเมินตนเอง2554Patcharee Pawleung
 

More from Patcharee Pawleung (16)

ประกาศสอบราคาครุภัณฑ์เครื่องอัดฟาง (ครั้งที่ 2)
ประกาศสอบราคาครุภัณฑ์เครื่องอัดฟาง (ครั้งที่ 2)ประกาศสอบราคาครุภัณฑ์เครื่องอัดฟาง (ครั้งที่ 2)
ประกาศสอบราคาครุภัณฑ์เครื่องอัดฟาง (ครั้งที่ 2)
 
ยกเลิกการสอบราคาซื้อครุภัณฑ์เครื่องอัดฟาง
ยกเลิกการสอบราคาซื้อครุภัณฑ์เครื่องอัดฟางยกเลิกการสอบราคาซื้อครุภัณฑ์เครื่องอัดฟาง
ยกเลิกการสอบราคาซื้อครุภัณฑ์เครื่องอัดฟาง
 
สอบราคาครั้งที่ 3
สอบราคาครั้งที่ 3สอบราคาครั้งที่ 3
สอบราคาครั้งที่ 3
 
เครื่องทุ่นแรงการเกษตร
เครื่องทุ่นแรงการเกษตรเครื่องทุ่นแรงการเกษตร
เครื่องทุ่นแรงการเกษตร
 
9ข้อมูลเศรฐกิจและสังคม
9ข้อมูลเศรฐกิจและสังคม9ข้อมูลเศรฐกิจและสังคม
9ข้อมูลเศรฐกิจและสังคม
 
8ข้อมูลสถานประกอบการ
8ข้อมูลสถานประกอบการ8ข้อมูลสถานประกอบการ
8ข้อมูลสถานประกอบการ
 
7ข้อมูลอาคารสถานที่
7ข้อมูลอาคารสถานที่7ข้อมูลอาคารสถานที่
7ข้อมูลอาคารสถานที่
 
6ข้อมูลครุภัณฑ์
6ข้อมูลครุภัณฑ์6ข้อมูลครุภัณฑ์
6ข้อมูลครุภัณฑ์
 
5ข้อมูลงบประมาณ
5ข้อมูลงบประมาณ5ข้อมูลงบประมาณ
5ข้อมูลงบประมาณ
 
4ข้อมูลหลักสูตร
4ข้อมูลหลักสูตร4ข้อมูลหลักสูตร
4ข้อมูลหลักสูตร
 
2ข้อมูลบุคลากร
2ข้อมูลบุคลากร2ข้อมูลบุคลากร
2ข้อมูลบุคลากร
 
3ข้อมูลนักเรียนนักศึกษา
3ข้อมูลนักเรียนนักศึกษา3ข้อมูลนักเรียนนักศึกษา
3ข้อมูลนักเรียนนักศึกษา
 
1ข้อมูลวิทยาลัย
1ข้อมูลวิทยาลัย1ข้อมูลวิทยาลัย
1ข้อมูลวิทยาลัย
 
รายงานประเมินตนเอง2556
รายงานประเมินตนเอง2556รายงานประเมินตนเอง2556
รายงานประเมินตนเอง2556
 
รายงานการประเมินตนเอง2555
รายงานการประเมินตนเอง2555รายงานการประเมินตนเอง2555
รายงานการประเมินตนเอง2555
 
รายงานการประเมินตนเอง2554
รายงานการประเมินตนเอง2554รายงานการประเมินตนเอง2554
รายงานการประเมินตนเอง2554
 

บทที่ 2 การเขียนโปรแกรม

  • 2. กระบวนการพัฒนาซอฟตแวร กระบวนการการพัฒนาซอฟตแวรที่ดีควรหาขอผิดพลาดใหได แตตองไมสับสนเรื่อง ขั้นตอนในการพัฒนา ถาผลิตอยางมีขั้นตอน ก็ควรมีความยืดหยุนพอสมควร และไมยึดติดกับ ขั้นตอนมากเกินไป จนทําใหโครงการลาชา หรือลมเหลว เพราะเลือกใชขั้นตอนที่ไมเหมาะสมกับ ประเภทของซอฟตแวร ถาพบขอผิดพลาดชวงแรกๆ ก็จะชวยลดระยะเวลา และคาใชจาย ในการพัฒนาซอฟตแวรไดมาก การศึกษาเรื่องคาใชจายดานซอฟตแวรของบริษัทไอบีเอ็ม (ibm) บริษัทจีทีอี (gte) และบริษัททีอาร ดับเบิลยู (trw) โดยนายแบรี่ บีม (barry boehm)ในป ค.ศ. ๑๙๓๖ พบวา ถาแกไขขอผิดพลาด เมื่อ พัฒนาซอฟตแวรเสร็จแลว แทนที่จะแกไขตั้งแตตอนที่กําหนดคุณลักษณะของซอฟตแวร ก็จะตอง เสียคาใชจายเพิ่มขึ้นเปนรอยเทา ตัวอยางของปญหานี้เห็นไดอยางชัดเจน ในการแกปญหา คอมพิวเตอร ป ค.ศ. ๒๐๐๐ หรือที่เรียกวา ปญหาวายทูเค (y2k) บริษัที่ออกแบบซอฟตแวรใหใชกับ ปที่มีเลขสี่หลักตั้งแตตนแทบจะไมเดือดรอนในการแกไขเลย แตซอฟตแวรอื่นๆ ที่ทั้งผูผลิตและ ผูใชตางละเลยปญหานี้ โดยยังคงใชปเปนเลขสองหลักอยู บางรายใชอยูเปนสิบๆ ป เมื่อถึงเวลา แกไขขอผิดพลาดของซอฟตแวร ก็ปรากฏวาตองใชเงินเปนจํานวนมากถึงหลายสิบลานบาท รอย ลานบาท หรือมากกวานั้น
  • 3. การพัฒนาซอฟตแวรอยางมีขั้นตอน มีหลายแบบและยังมีวิวัฒนาการอยูอยางตอเนื่องเพราะสาขาทางวิศวกรรมซอฟตแวรนี้ เพิ่งเกิดขึ้นในครึ่งหลังของ ศตวรรษที่ ๒๐ หากเทียบกับระยะเวลา ที่มนุษยชาติศึกษากระบวนการสรางที่อยูอาศัย ที่มีมาเปนพันๆ ปแลว ก็นับได วา สาขาวิชานี้ยังใหมอยูมาก ดังนั้น ในการเลือกกระบวนการการพัฒนาซอฟตแวรจะตองตั้งคําถามวา กระบวนการ ใด"เหมาะ" ที่สุด สําหรับโจทยปญหา และประเภทของซอฟตแวรไมใชกระบวนการใด "ดี" ที่สุด การพัฒนาซอฟตแวรไมใชกระบวนการที่มีจุดเริ่มตน และจุดสิ้นสุดที่แนนอน เหมือนเชนผลิตภัณฑอื่นๆ เนื่องจาก ซอฟตแวรใชสําหรับสั่งใหคอมพิวเตอรชวยแกโจทยปญหาบางอยาง ใหแกมนุษย เมื่อสภาพของโจทยปญหา หรือ คอมพิวเตอรเปลี่ยนแปลงไป ซอฟตแวรก็ตองเปลี่ยนแปลงตามซอฟตแวรที่ขาดการทํานุบํารุง จึงเสื่อมคุณภาพ ทั้งที่ ไมไดสึกหรอ ทั้งนี้เพราะไมสามารถนําไปใชแกปญหาไดอยางมีประสิทธิภาพอีกตอไป ในสมัยแรกๆ การผลิตซอฟตแวรมักไมมีขั้นตอน คือ เริ่มตนดวยการเขียนซอฟตแวรเลย เมื่อมีปญหาก็แกไข เขียน แลวแกสลับกันไปจนกวาจะไดคุณลักษณะที่ตองการผลก็คือ จะไดซอฟตแวรที่ซับซอนมาก หากตองมีการปรับปรุง แกไขในภายหลัง และผูที่แกไข ไมใชผูเขียนซอฟตแวรนั้นเอง ก็จะมีปญหามากมักทําใหตองเสียคาใชจาย ในการทํานุ บํารุงซอฟตแวร เกินกวางบประมาณที่กําหนดไว
  • 4.  ๑. กําหนดคุณลักษณะซอฟต์แวร์ (Definition) เนนวาจะ "สร้างอะไร" โดยใหคําตอบวา "โจทย์ปัญหาที่ต้องการแก้คืออะไร" และ "สิ่งที่จะใช้แก้ปัญหานี้ คืออะไร"  ๒. สร้างซอฟต์แวร์ (Development) เนนวาจะ "สร้างอย่างไร" โดยใหคําตอบเรื่อง "ทําอย่างไรจึงจะสร้างสิ่งที่นํามาใช้แก้ปัญหาได้" และ "ทํา อย่างไรจึงจะตรวจสอบหาข้อบกพร่องของสิ่งที่สร้างขึ้นได้ ตลอดจนสิ่งที่นํามาใช้แก้ปัญหา รวมทั้ง ซอฟต์แวร์ และเอกสารอธิบายซอฟต์แวร์" ๓. วิวัฒนาการของซอฟต์แวร์ (Evolution) เนนวาจะ "เปลี่ยนแปลงอย่างไร" โดยใหคําตอบเรื่อง "เมื่อสภาพการ หรือปัญหาเปลี่ยนแปลงไปต้องทํา อย่างไร จึงจะสามารถปรับปรุงสิ่งนั้นให้ยังคงใช้แก้ปัญหาได้" ต่อมาได้มีการนําหลักวิศวกรรมมาประยุกต์ใช้ในการพัฒนาซอฟต์แวร์ การพัฒนาซอฟต์แวร์ จึงแบ่งได้เป็น ๓ ระยะ คือ
  • 5. แมแบบแบบขั้นน้ําตก  แมแบบของกระบวนการการพัฒนาซอฟตแวรที่เปนขั้นตอนที่เกาแกที่สุดนั้น เรียกกัน วา แมแบบแบบขั้นน้ําตก (Waterfall Model) ซึ่งเมื่อลากเสนเชื่อมตอแต ละขั้นตอนลงไป จนถึงขั้นตอนสุดทายแลว ก็จะมีลักษณะคลายน้ําตก
  • 6.
  • 7.  ขั้นตอนหลักๆ ของแมแบบขั้นน้ําตก มีดังนี้ ๑. วิเคราะห์ความเป็นไปได้ ปญหาทุกอยางในโลกนี้ ไมใชจะเปนปญหา ซึ่งเหมาะที่จะใชคอมพิวเตอร และซอฟตแวร แกไขเสมอไป หรือถึงแมจะใชได ก็อาจเสียคาใชจายมากเกินไป หรือตองใชเวลานานมาก ดังนั้น ใน ขั้นตอนแรก จึงตองมีการพิจารณาความเหมาะสม และความเปนไปไดในสวนนี้กอน ๒. วิเคราะห์โจทย์หรือความต้องการของผู้ใช้ โจทยปญหาเปนสาเหตุที่ทําใหลักษณะของซอฟตแวรมีความหลากหลาย เพราะซอฟตแวร ถูกพัฒนาขึ้นมา เพื่อแกโจทยปญหาที่มีมากมาย หลายรูปแบบ โจทยปญหาอาจเปนความตองการของ ผูใช ที่ตองการใหคอมพิวเตอรชวยทํางานแทน หรืออาจเปนโจทยปญหาทางวิทยาศาสตร ที่พยายาม ทําใหคอมพิวเตอรสามารถคิดไดเหมือน มนุษย หรืออาจเปนการควบคุมการทํางานของ อุปกรณ อิเล็กทรอนิกสตางๆ ที่ควบคุมการสื่อสารของคอมพิวเตอรบนเครือขายคอมพิวเตอร ฯลฯ เนื่องจากโจทยปญหาดังกลาวอาจจะเปนปญหาใหญ ดังนั้น จะตองมีการวิเคราะห และแยก ยอยปญหา (Problem Decomposition)กําหนดขอบเขตปญหาที่จะใหซอฟตแวรแกไข (software scope) และตองทําความเขาใจใหไดวา ผูใชตองการอะไร งานสวนนี้จะเปนประเด็นสําคัญในการ วางแผนพัฒนาซอฟตแวร รวมทั้งประเมินระยะเวลา และคาใชจายดวย
  • 8.  ๓. เขียนคุณลักษณะซอฟต์แวร์ คุณลักษณะซอฟตแวร (Software Specification) เปนขอกําหนดลักษณะหนาที่ และวิธีการทํางานของ ซอฟตแวรวา ซอฟตแวรนี้ตองทําอะไรบาง จึงจะสนองความตองการของผูใชเชน จะตองใชขอมูลอะไร จะ จัดเก็บขอมูลอะไร จะผลิตหรือประมวลผลขอมูลอะไร ลักษณะของขอมูลเปนอยางไร มีขอบเขตขอจํากัด อะไร ฯลฯ การกําหนดคุณลักษณะซอฟตแวรสามารถ ทําไดหลายวิธี เชน สอบถามผูใชโดยตรงวา ตองการใหซอฟตแวรทําหนาที่อะไรบาง การสอบถามตองมีเทคนิคในการสื่อสารที่ ดี โดยอาจจะมีการยกตัวอยางสภาพการณ(scenario-based requirement analysis) ในแนววา "ถ้า (สถานการณ์) เกิดขึ้น จะทําอย่างไร" เชน ถาโจทยคือ การจัดการพัสดุของรานคานักวิเคราะหระบบอาจถาม วา "ถ้าสินค้าที่สั่งซื้อไม่มาส่งตามกําหนด ทางร้านจะทราบได้เมื่อใด และจะดําเนินการอย่างไร"  ศึกษาวิธีการดําเนินงานตามปกติกอนนําคอมพิวเตอรมาใช และหาจุดออนที่จะตองนําซอฟตแวรเขามาใช เพื่อเพิ่มประสิทธิภาพ  สํารวจความตองการของตลาดวา คนสวนใหญตองการใหคอมพิวเตอรชวยงานดานใดในลักษณะใด และ ตองการความบันเทิงจากคอมพิวเตอรอยางไร ฯลฯ  ศึกษาจากลักษณะของซอฟตแวรเกาที่ทํางานดานนี้อยูแลว ฯลฯ
  • 9. สรุปผลการวิเคราะห์ข้อกําหนดลักษณะของซอฟต์แวร์สามารถแบ่งได้เป็น ๓ รูปแบบ คือ รูปแบบ ข้อมูล รูปแบบหน้าที่งาน และรูปแบบการทํางาน วิธีการนําเสนออาจแสดงเป็นแผนผังแบบต่างๆ เช่น แสดงด้วยแผนผังการไหลของข้อมูล (Data Flow Diagram) แสดงด้วยแผนผังความสัมพันธ์ของข้อมูล (Entity - Relationship Diagram) ฯลฯ ส่วนศัพท์ว่าข้อมูลใดคืออะไร จะต้องอธิบายอยู่ในพจนานุกรม ข้อมูล (Data Dictionary)
  • 10.  ๔. ออกแบบซอฟต์แวร์ การออกแบบซอฟตแวรจะเริ่มเนนดานเทคนิค โดยรวมถึงการออกแบบโครงสรางของซอฟตแวรหนวยตางๆ ของ ซอฟตแวร ซึ่งสามารถนําเสนอไดดวยแผนผังหลายแบบ เชน แผนผังโครงสรางระบบ (Structure Chart) และรายละเอียด ขั้นตอนในการแกปญหา (algorithm) ของแตละหนวยนอกจากนี้ ยังรวมถึงการออกแบบวิธีที่ซอฟตแวรจะสื่อสารกับผูใช เชน ออกแบบหนาจอ ออกแบบวิธีรับคําสั่งจากผูใช (จะใหผูใชพิมพคําสั่ง หรือกดปุมเรียก หรือพูดดวย ฯลฯ) ๕. เขียนซอฟต์แวร์ การเขียนซอฟตแวร หรือโปรแกรม เปนการเขียนชุดคําสั่งใหคอมพิวเตอรทํางาน ภาษาที่ใชเขียนซอฟตแวรมีอยูหลากหลาย ไดแก ภาษาเบสิก (BASIC)ภาษาฟอรแทรน (FORTRAN)ภาษาโคบอล (COBOL)ภาษาซี (C) ภาษาวิชวลเบสิก (Visual Basic) ภาษาจาวา (Java) ภาษาเพิรล (PERL) ภาษาเดลไฟ (Delphi) ฯลฯซึ่งควรจะเขียนเปน หนวยเล็กๆ กอน โดยแตละ ภาษาอาจจะมีรูปแบบ หนวยที่ตางกัน เมื่อเขียนเสร็จแลว ก็ควรจะทดสอบความถูกตองในการทํางานของแตละหนวย ดวยการทดสอบซอฟตแวร (software testing) วาถูกตองตามขอกําหนด ตรงตามความตองการของผูใช มีคุณภาพตามตองการ และหาขอผิดพลาด เพื่อแกไข ชุดคําสั่งใหกําจัดขอบกพรองนั้นๆ (software debugging)
  • 11.  ๖. รวมหนวยยอยของซอฟตแวร ขั้นตอนนี้เปนการรวมชุดคําสั่งที่อยูในหนวยยอยใหเปนซอฟตแวรที่มีขนาดใหญ และทดสอบ ความถูกตองวา หนวยตางๆ ยังทํางานรวมกันไดอยางถูกตองและมีประสิทธิภาพหรือไม ๗. นําซอฟตแวรไปใช การนําเสนอซอฟตแวรไปใชในเบื้องตนจะชวยใหผูใชไดเห็นวา ใชไดสะดวกหรือไม และตรงกับ ความตองการหรือไม เมื่อนําไปใชแลว สามารถแกปญหาที่กําลังประสบอยูไดหรือไม ฯลฯ หากไม ตรงกับความตองการ ก็จะไดใหคนที่เขียนโปรแกรมนั้นแกไขใหม ๘. ใชซอฟตแวรในการทํางานจริง ขั้นตอนนี้เปนการนําซอฟตแวรไปใชประกอบการทํางานจริง ซึ่งอาจทําใหวิธีการทํางาน เปลี่ยนแปลงไป ซอฟตแวรที่ดีจะตองทําใหการทํางานมีประสิทธิภาพสูงขึ้น
  • 12. การทํานุบํารุงซอฟตแวร ขณะที่ใชซอฟตแวรอยู ก็ยังตองมีการทํานุบํารุงซอฟตแวร เชน (๑) แกไขซอฟตแวร (correction) เมื่อพบขอผิดพลาด (๒) ขยายหนาที่ของซอฟตแวร (enhancement) เมื่อผูใชปรับเปลี่ยนความตองการไป (๓) ปรับใหซอฟตแวรทํางานในสภาพแวดลอมที่เปลี่ยนไป (adaptation) เชน มี กฎระเบียบใหมออกมา ทําใหโจทยปญหาเปลี่ยนไป หรือคอมพิวเตอรเปลี่ยนรุน ฯลฯ (๔) การรื้อแลว สรางใหม (software re-engineering) เพื่อปรับโครงสราง ซอฟตแวรเกา พัฒนาซอฟตแวรใหม ใหมีคุณภาพ และทําใหการแก-ขยาย-ปรับ ทําไดอยาง สะดวก และประหยัดในระยะยาว การตรวจสอบความถูกตองควรจะทําในทุกขั้นตอน และถาพบขอผิดพลาด ก็ตองรีบยอนกลับ ไปแกไข
  • 13.  วิธีการตรวจสอบแกไข จะแตกตางกันไป ในแตละขั้นตอน สําหรับขั้นตอนแรกๆ อาจจะเปนการสํารวจความพอใจ ของผูใชวา การวิเคราะหโจทย และความตองการถูกตองหรือไม การเขียนขอกําหนด ซอฟตแวร และการออกแบบซอฟตแวร จะทําใหซอฟตแวร ทําหนาที่ชวยงานไดตาม ความตองการหรือไม ในขั้นตอนหลังๆ เมื่อมีการเขียนโปรแกรมขึ้นมาแลว ก็สามารถทําการทดสอบได ทั้ง ความถูกตองตามขอกําหนด (Verification) และความพอใจของผูใชวา ซอฟตแวร มีคุณภาพ และประสิทธิภาพตามที่ตองการหรือไม (Validation)
  • 14.  การทดสอบความตองการ รวมถึงการจัดทํากรณีทดสอบ (test case) การทดสอบ และการหาจุดบกพรองใน โปรแกรม ที่ตองแกไข กรณีทดสอบทั่วไปมักระบุขอมูลขาเขาที่เปนอินพุต (input) ของ ซอฟตแวร และระบุขอมูลขาออก หรือลักษณะการโตตอบที่ควรเปนเอาตพุต (output) ของซอฟตแวร การจัดทํากรณีทดสอบที่ดีควรครอบคลุม ทั้งภายนอก (Black - box testing) และภายใน (White-box testing) การทดสอบครอบคลุมภายนอก ถามี การณีที่ทดสอบอินพุต และเอาตพุต ทุกประเภท หรือการทดสอบครอบคลุมภายใน ถามีกรณี ที่ทดสอบทุกโปรแกรมยอยภายใน โดยตองทําใหทุกคําสั่งในซอฟตแวรถูกเรียกใช การทดสอบใหครอบคลุมมักมีกรณีทดสอบเปนจํานวนมาก เทคนิคในการทดสอบ (testing technique) มักเสนอวิธีเลือกกรณีทดสอบใหมีพอประมาณ แตก็ยังครอบคลุมประเด็น หลักๆ อยู ตัวอยางเชน การทดสอบโปรแกรมหาเศษจากการหารเลขที่คืนคาเศษที่เปนเลข หลัก อินพุตจะ เปนตัวตั้ง และตัวหาร สวนเอาตพุตจะเปนคําตอบ
  • 15.  อินพุต ทุกประเภทของทั้งตัวตั้ง และตัวหาร จะแยกไดเปน ประเภทตัวเลขที่โปรแกรม รับ และประเภทตัวเลขที่โปรแกรมไมรับ ซึ่งประเภทตัวเลขที่โปรแกรมรับ อาจแยกได เปน ๓ แบบ ไดแก เลขหลักเดียว เลขหลายหลัก และเลขติดลบ ประเภทตัวเลขที่ โปรแกรมไมรับอาจแยกไดเปน ๒ แบบ ไดแก ตัวอักษรอื่นๆ ที่ไมใชตัวเลข และเลข ศูนย นอกจากนี้ยังมี ๓ กรณี ที่เทียบคาระหวางตัวตั้ง และตัวหาร ไดแก ตัวตั้งมีคา มากกวาตัวหาร ตัวหารมีคามากกวาตัวตั้ง และตัวตั้งมีคาเทากับตัวหาร
  • 16.  เอาตพุต ทุกประเภทแยกไดเปน ๓ กรณี คือ หารลงตัว หารไมลงตัว และหารไมได หากรวมการทดสอบทุกรูปแบบแลว ก็จะมี กรณีมากถึง ๓ x ๒ x ๓ x ๓ คือ ๕๔ กรณี แต เนื่องจากระยะเวลาในการทดสอบมักมีจํากัด กรณีที่ทดสอบจริงอาจเลือกเพียง ๑๐ กรณี ไดแก ๑. ตัวตั้งและตัวหารเปนเลขหลักเดียว หารลงตัว ๒. ตัวตั้งและตัวหารเปนเลขหลักเดียว หารไมลงตัว ๓. ตัวตั้งและตัวหารเปนเลขหลายหลัก หารลงตัว ๔. ตัวตั้งและตัวหารเปนเลขหลายหลัก หารไมลงตัว ๕. ตัวหารเปนศูนย หารไมได ๖. ตัวตั้งหรือตัวหารไมไดเปนตัวเลข หารไมได ๗. ตัวตั้งหรือตัวหารเปนเลขติดลบ ๘. ตัวตั้งมีคามากกวาตัวหาร ๙. ตัวตั้งมีคานอยกวาตัวหาร ๑๐. ตัวตั้งมีคาเทากับตัวหาร