วันพุธที่ 18 พฤศจิกายน พ.ศ. 2558

การแก้ปัญหาด้วยกระบวนการสารสนเทศ

 การแก้ปัญหาด้วยกระบวนการสารสนเทศ
การแก้ปัญหามีหลายวิธี ขึ้นกับชนิดของาน วิธีการแก้ปัญหาอย่างหนึ่งอาจแก้ปัญหาอีกอย่างหนึ่งไม่ได้ และการแก้ปัญหาอาจจำเป็นต้องใช้เทคโนโลยีสารสนเทศหรือไม่ก็ได้ ดังนั้น จึงควรยึดหลักการแก้ปัญหาอย่างเป็นระบบ เพื่อไม่ให้เสียเวลา หลงทาง และสับสน วิธีการแก้ปัญหาแต่ละวิธีมีความเหมาะสมกับงานแตกต่างกันไป ก่อนที่จะใช้วิธีแก้ปัญหา ด้วยกระบวนการทางเทคโนโลยีสารสนเทศ จะขอยกวิธีการแก้ปัญหาอย่างมีขั้นตอนโดยทั้วไป มาให้พิจารณาดูจำนวนหนึ่ง
                                                                    
1.1 หลักการแก้ปัญหาตามวิธีวิทยาศาสตร์ ( Scientific method ) วิธีการแก้ปัญหาทางวิทยาศาสตร์เป็นวิธีที่มีมานานมากแล้ว ซึ่งใช้ศึกษาค้นคว้าความรู้ใหม่ๆ ตั้งแต่หลายร้อยปีก่อน จนเกิดความก้าวหน้าทางวิทยาศาสตร์ด้านต่างๆ มากมายอย่างทุกวันนี้ หลักการแก้ปัญหา ทางวิทยาศาสตร์ มีดังนั้
1. เก็บข้อมูลเบื้องต้น โดยการศึกษา สังเกตเหตุการณ์หรือปรากฎการณ์ทางธรรมชาติ
2. ตั้งสมมิฐานเกี่ยวกับสาเหตุ แนวความคิด หรือทฤษฎี ของการเกิดปรากฎการณ์และทางการแก้ปัญหา
3. พัฒนาการวิธีการที่จะทดสอบสมมติฐานหรือทฤษฎีตามข้อ 2
4. ทำการทดลองเพื่อพิสูจน์สมมติฐานหรือทฤษฎี โดยตั้งวัตถุประสงค์ให้ชัดเจน อาจมีการตั้งกลุ่มทดลองภายใต้การควบคุม เปรียบเทียบกับกลุ่มที่ไม่ควบคุม ทำการบันทึกผลการทดลองที่สังเกตพบไว้อย่างละเอียดแม่นยำ
5. วิเคราะห์ผลการทดลอง เพื่อหาคำตอบว่าสมมติฐานที่ตั้งไว้นั้นเป็นจริงหรือไม่
6. เขียนรายงานสรุปผลคำตอบที่ได้ผลที่ได้จากวิธีนี้เป็นที่ยอมรับกันมาก เนื่องจากเป็นวิธีที่พิสูจน์ได้ เห็นผลชัดเจน และ มีวัตถุประสงค์เด่นชัด แต่ผลที่ได้อาจขาดความคิดสร้างสรรค์ หรือบางครั้งสำหรับปัญหาง่ายๆ ก็ไม่จำเป็นต้องใช้ขั้นตอนมากมายเช่นนี้ และปัญหาบางอย่างก็อาจใช้ไม่ได้เลย เพราะทดลองไม่ได้
1.2 หลักการแก้ปัญหาตามวิธีการทางวิศวกรรม ( Engineering problem solving ) วิธีเหมาะกับการแก้ปัญหาในการออกแบบผลิตภัณฑ์ สินคัา หรือเพื่อสร้างสิ่งใหม่หรือเพื่อการแก้ปัญหาในเชิงวิศวกรรม มีขั้นตอนดังนี้
1. วิเคราะห์ปัญหา กำหนดรายละเอียดปัญหาให้ชัดเจนเป็นข้อๆ กำหนดความ ต้องการและข้อจำกัดในการแก้ปัญหาเป็นข้อๆวิเคราะห์ข้อมูลว่ามีข้อมูลใดที่มีอยุ่แล้วและใช้ได้อะไรคือสิ่งที่ยังไม่รู้และต้องการรู้
2. สร้างแบบจำลองวิธีการแก้ปัญหา ( Define model ) อาจเป็นแบบจำลองทางคณิตศาสตร์ หรือบางกรณีต้องสร้างแบบจำลองย่อส่วนจากของจริง คิดค้นหาสูตรสมการที่จะใช้แก้ปัญหา เก็บข้อมูลที่ต้องใช้แก้ปัญหา
3. คำนวณหาคำตอบโดยใช้แบบจำลอง วิธี และสมกาในข้อ 2 ตรวจสอบผลลัพธ์ที่ได้ว่าถูกต้องเหมาะสมหรือไม่
4. ผลลัพธ์หรือคำตอบที่ได้มีเหตุผลว่าถูกต้องเหมาะสม จึงนำไปปฏิบัติ
1.3 วิธีการแก้ปัญหาแบบสร้างสรรค์ ( Creative problem solving ) วิธีนี้เป็นวิธีแก้ปัญหาที่ใช้แนวคิดแบบสร้างสรรค์ สามารถนำไปใช้งานได้กว้างขวาง ซึ่งมีหลายวิธีเช่นกันในที่นี้ขอยกตัวอย่างวิธีของ Sidney J. Parness ดังนี้
1. ใช้ความสังเกตอย่างพินิจพิเคราะห์ คือให้ตื่นตัวตกใจ ใช้ตาดูหูฟัง เพื่อให้มองเห็นปัญหาต่าง ๆ ที่เกิดขึ้น และมองเห็นวิธีแก้ปัญหาที่อาจเป็นไปได้
2. ค้นหาความจริง โดยเก็บรวบรวมข้อมูล เช่น ทำการศึกษา ทดลอง หรือทำวิธีใดๆที่เหมาะสม
3. ค้นหาปัญหา เพื่อดูว่าปัญหาที่แท้จริงคืออะไร สาเหตุของการเกิดคืออะไร
4. ค้นหาแนวความคิดในการแก้ปัญหา โดยการคิดค้นวิธีการแก้ปัญหาหลายๆวิธีที่อาจใช้ได้ อย่าเพิ่งด่วนสรุปวิธีนั้นวิธีนี้ดีที่สุด ทำการประเมินและปรับปรุงแนวคิดให้ดีขึ้น
5. ค้นหาวิธีการแก้ปัญหาที่เหมาะสม โดยการกำหนดเกณฑ์ในการเลือกวิธีใดวิธีหนึ่งจากวิธีที่คิดไว้หลายๆวิธี เช่น เลือวิธีที่เร็ว ราคาถูก และดีเพียงพอกับความต้องการ
6. ค้นหาวิธีการยอมรับวิธีแก้ปัญหาที่เลือกไว้ โดยหาวิธีที่จะทำให้ตนเองและผู้เกี่ยวข้องยอมรับวิธีแก้ปัญหาที่เลือกไว้ร่วมกัน และตกลองแก้ปัญหาด้วยวิธีนั้นข้อเสียของวิธีนี้คือ ไม่กล่าวถึงวิธีการนำไปปฏิบัติ หรือการทดสอบวิธีการแก้ปัญหาที่
เลือกไว้ก่อนนำไปใช้จริง แต่มีจุดเด่นตรงที่ชาวยสรางแนวทางการแก้ปัญหาที่หลากหลาย ที่ผู้ใช้เลือกได้โดยอิสระ
1.4 การแก้ปัญหาด้วยกระบวนการทางเทคโนโลยีสารสนเทศ การแก้ปัญหาที่ซับซ้อนด้วยวิธีการต่างๆ ที่กล่าวมาแล้ว ส่วนมากจำเป็นต้องใช้เทคโนโลยีสารสนเทศเข้าช่วยเพื่อเพิ่มความรวดเร็ว ถูกต้อง และสามารถทำซ้ำได้ง่าย ในกระบวนการทางเทคโนโลยีสารสนเทศเข้าช่วยแก้ปัญหา จำเป็นต้องปรับรูปแบบวิธีการทำงานให้เหมาะสมกับการใช้เทคโนโลยีสารสนเทศ
วิธีการแก้ปัญหาด้วยกระบวนการทางเทคโนโลยีสารสนเทศ เป็นวิธีคล้ายกับการแก้ปัญกาทางวิศวกรรมมาก แต่ในการนำระบบคอมพิวเตอร์ไปใช้ในการแก้ปัญหา หรือเพิ่มประสิทธิภาพในการทำงานใดๆ ก็ตาม จะต้องมีการวิเคราะห์ปัญหาและศึกษาความเป็นไปได้ให้รอบคอบเสียก่อน ทั้งนี้เนื่องจากคอมพิวเตอร์ไม่ใช้เครื่องมือวิเศษที่จะแก้ปัญหได้ทุกเรื่อง
นอกจากนี้ยังจะต้องมีการศึกษาถึงความคุ้มค่าในการลงทุน เพื่อไม่ให้เป็นการลงทุนที่เสียเปล่า ต้องเลือกวิธีการแก้ปัญหาให้เหมาะสมกับงาน จัดหาเครื่องมือและเทคโนโลยีที่ไม่เกินความจำเป็น
การแก้ปัญหาด้วยกระบวนการทางเทคโนโลยีสารสนเทศ เหมาะกับระบบงานที่ต้องทำงานอย่างใดอย่างหนึ่งซึ่งซากและมีปริมาณงานมากหรืองานที่ต้องการความรวดเร็วในการคำนวณเกินกว่าคนธรรมดาจะทำได้ วิธีการโดยทั้วไปคือ ปรับเปลี่ยนวิธีการหรือระบบการทำงานแบบเดิม มาใช้ระบบงานที่มีเครื่องคอมพิวเตอร์ช่วยทำงานเป็นบางส่วน หรือทั้งหมด เท่าที่สามารถจะทำแทนคนได้
ดังนั้น การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ จึงต้องมีการสร้างระบบงานคอมพิวเตอร์ขึ้นมาช่วยทำงานอย่างหลีกเลี่ยงไม่ได้ วิธีการโดยทั้วไป เราอาจไม่ต้องสร้างระบบงานทั้งหมดขึ้นใหม่ แต่พัฒนาระบบงานเดิมให้เป็นระบบงานที่ทำงานโดยคอมพิวเตอร์นิยมเรียกกันว่า การพัฒนาระบบงานคอมพิวเตอร์
1.4.1 ขั้นตอนการพัฒนาระบบงานคอมพิวเตอร์ ตามหลักวิชาว่าด้วยการวิเคราะห์และออกแบบระบบงาน ( System analysis and design ) มีการจัดขั้นตอนการพัฒนาระบบงานคอมพิวเตอร์และสารสนเทศดังนี้
1. วิเคราะห์ระบบงานหรือปัญหา ( System or problem analysis ) รวมถึงรายละเอียดข้อมูลที่ต้องใช้ โดยการศึกษาระบบงานเดิมอย่างละเอียด
2. กำหนดรายละเอียดของความต้องการของผู้ใช้ระบบงาน ( Require-ments specification )
3. ออกแบบขั้นตอนวิธีการทำงานของระบบใหม่
4. ตรวจสอบขั้นตอนวิธีให้ได้ผลตามความต้องการ
5. ออกแบบโปรแกรม ( Program design )
6.เขียนชุดคำสั่ง ( Coding )
7. ทดสอบโปรแกรม ( Testing ) และหาที่ผิดพลาด ( Debuugging )
8. นำโปรแกรมและระบบงานไปใช้งานจริง ( Implementation oroperation )
9. บำรุงรักษา ติดตามผล แก้ไขปรับปรุง ( Software maintenance and improvement ) เพื่อให้ทันสมัยใช้ได้ตลอดไป จะเห็นว่าการพัฒนาระบบสารสนเทศ จำเป็นจะต้องรู้ขั้นตอนวิธีการทำงานของระบบเดิม ตามด้วยการหาวิธีการแก้ปัญหาโดยใช้ระบบคอมพิวเตอร์และโปรแกรม จากนั้นจึงออกแบบวิธีการทำงานในระบบใหม่ให้ระเอียดซึ่งจะต้องมีการสร้างโปรแกรมคอมพิวเตอร์ขึ้นมาช่วยทำงานบางส่วน หรือทั้งหมด
1.4.2 ขั้นตอนการพัฒนาระบบงานโดยการจัดซื้อโปรแกรมสำเร็จรูป ในกรณีที่เราไม่ได้พัฒนาโปรแกรมเอง แต่เป็นการจัดซื้อโปรแกรมสำเร็จรูปมาใช้งาน เราอาจปรับเปลี่ยนขั้นตอนมาเป็นดังนี้
1. วิเคราะห์ปัญหาและระบบงานที่จะทำ ( System or problem analysis ) รวมถึงรายละเอียดข้อมูลที่มีอยุ่
2. กำหนดรายละเอียดของความต้องการของผู้ใช้ระบบงาน ( Require-ments specification )
3. ออกแบบขั้นตอนวิธีการทำงานของระบบใหม่
4. ตรวจสอบขั้นตอนวิธีว่าให้ผลตรงกับที่ต้องการ
5. จัดหาโปรแกรมที่ทำงานตรงตามความต้องการ โดยการซื้อหรือจ้างทำ
6. นำโปรแกรมและระบบงานไปใช้จริง ( Implementation oroperation )
7. บำรุงรักษาระบบ ติดตามผลและแก้ไขปรับปรุง ( Software mainte-mance and improvement )
1.5 เครื่องมือในการวิเคราะห์ขั้นตอนวิธีการแก้ปัญหา ในการออกแบบขั้นตอนวิธีการทำงานเพื่อการแก้ปัญหาต่างๆ หรือการเขียนโปรแกรม จำเป็นต้องใช้เครื่องมือบางอย่างช่วยในการออกแบบและวิเคราะห์วิธีการเพื่อให้ง่ายต่อการมองภาพกระบวนการทำงานของระบบ สามารถตรวจสอบหาที่ผิด รวมทั้งหาทางปรับปรุงให้ดีกว่าเดิมได้ เครื่องมือดังกล่าวที่ง่ายที่สุด ได้แก่ ผังงาน หรือโฟลชาร์ต ( Flowchart ) และรหัสจำลอง ( Pseudo Code )
1.5.1 ผังงาน ( Flowchart ) เป็นเครื่องมือช่วยออกแบบ และวิเคราะห์การทำงานของโปรอกรมแบบรูปภาพขั้นพื้นฐานที่สุด ช่วยให้สามารถมองเห็นภาพของความสัมพันธ์ระหว่างกระบวนการต่างๆ ของระบบงานหรือโปรแกรมได้ง่าย และสามารถตรวจสอบว่าวิธีการนั้น ถูกต้อง มีประสิทธิภาพในการทำงาน และมีความซับซ้อนหรือไม่ ทำให้นำไปเขียนเป็นโปรแกรมได้อย่างถูกต้องซึ่งเหมาะสมสำหรับผู้เริ่มต้นศึกษากลไกของโปรแกรมอย่างละเอียดรวมทั้งเพื่อเป็นการศึกษาคิดค้นขั้นตอนวิธี( algorithm ) ที่ละเอียดอ่อน และยังจัดว่าเป็นกระบวนการที่ไม่ใหญ่และซับซ้อนมากนัก ผังงานประกอบด้วยสัญลักษณ์
จุดเริ่มต้น / สิ้นสุดของโปรแกรม
ลูกศรแสดงทิศทางการทำงานของโปรแกรมและการไหลของข้อมูล
ใช้แสดงคำสั่งในการประมวลผล หรือการกำหนดค่าข้อมูลให้กับตัวแปร
แสดงการอ่านข้อมูลจากหน่วยเก็บข้อมูลสำรองเข้าสู่หน่วยความจำหลักภายในเครื่องหรือการแสดง ผลลัพธ์จากการประมวลผลออกมา
การตรวจสอบเงื่อนไขเพื่อตัดสินใจ โดยจะมีเส้นออกจารรูปเพื่อแสดงทิศทางการทำงานต่อไป เงื่อนไขเป็นจริงหรือเป็นเท็จ
แสดงผลหรือรายงานที่ถูกสร้างออกมา
แสดงจุดเชื่อมต่อของผังงานภายใน หรือเป็นที่บรรจบของเส้นหลายเส้นที่มาจากหลายทิศทางเพื่อ
จะไปสู่การทำงานอย่างใดอย่างหนึ่งที่เหมือนกัน
การขึ้นหน้าใหม่ ในกรณีที่ผังงานมีความยาวเกินกว่าที่จะแสดงพอในหนึ่งหน้า
ปัจจุบันโปรแกรมช่วยเขียนผังงานทำให้เขียนได้ง่ายขึ้น เช่น SmartDraw ,Microsoft Visio 2002 ซึ่งหาข้อมูลและโปรแกรมตัวอย่างได้ที่เว็บไซต์ต่อไปนี้
http://www.smartdrae.com/resourcers/centers/flowcharts/index.htm
http://www.microsoft.com/office/visio/default.asp
1.5.2 รหัสลำลอง ( Pseudo Code ) เป็นเครื่องช่วยในการออกแบบระบบงานและโปรแกรมอีกแบบหนึ่ง โดยเขียนขั้นตอนวิธีเป็น ประโยคสั้นๆ กะทัดรัด แต่สื่อความหมายชัดเจน เรียงกันโดยมีหมายเลขกำกับแต่ละขั้นตอน ให้ทำงานตามลำดับหมายเลขและเงื่อนไขที่เขียนไว้ ตัวอย่างเช่น ถ้าต้องการออกแบบโปรแกรมให้พิมพ์ตัวเลขจาก 1 ถึง N โดยที N เป็นตัวเลขใด ๆ ก็ได้ที่มากกว่าหรือเท่ากับ 1 เราอาจเขียนวิธีทำงาน ที่เรียกว่ารหัสจำลองได้ดังนี้
1. ป้อนค่า N จากแป้นพิมพ์
2. กำหนดให้ตัวแปร I เป็นตัวเลขที่จะต้องพิมพ์ เริ่มต้นที่ I = 1
3. พิมพ์ค่า I ที่กระดาษของเครื่องพิมพ์
4. ตรวจสอบว่า I = N แล้วหรือไม่
5. ถ้า I ไม่เท่ากับ N ให้เพิ่มค่า I = I+1 จากนั้นกลับไปทำตามขั้นตอนที่ 3
6. ถ้า I = N แสดงว่างานเสร็จแล้ว จบโปรแกรม
ให้สังเกตขั้นตอนที่ 5 เมื่อทำมาถึงขั้นนี้ และ I ไม่เท่ากับ N เราต้องย้อนกลับไปทำขั้นที่ 3 เรื่อยๆเป็นการวน ( Looping ) จนกว่า I จะเท่ากับ N เมื่อ I = N เราจะลงไปทำขั้นตอนที่ 6 ซึ่งเป็นการจบงาน
สำหรับผู่ผึกจนชำนาญแล้ว อาจเขียนผังงาน หรืออาจใช้รหัสจำลองอย่างเดียวก็ได ้แต่การมองเห็นภาพระบบงานของรหัสจำลองมีน้อยกว่า อาจเข้าใจยากและไม่ค่อยสร้างความประทับใจเวลานำเสนอต่อมวลชน

IP Address

IP Address
       IP Address ย่อมาจากคำเต็มว่า Internet Protocal Address คือหมายเลขประจำเครื่องคอมพิวเตอร์แต่ละเครื่องในระบบเครือข่ายที่ใช้โปรโตคอลแบบ TCP/IP
ถ้าเปรียบเทียบก็คือบ้านเลขที่ของเรานั่นเอง ในระบบเครือข่าย จำเป็นจะต้องมีหมายเลข IP กำหนดไว้ให้กับคอมพิวเตอร์ และอุปกรณ์อื่นๆ ที่ต้องการ IP ทั้งนี้เวลามีการโอนย้ายข้อมูล หรือสั่งงานใดๆ จะสามารถทราบตำแหน่งของเครื่องที่เราต้องการส่งข้อมูลไป จะได้ไม่ผิดพลาดเวลาส่งข้อมูล ซึ่งประกอบด้วยตัวเลข 4 ชุด มีเครื่องหมายจุดขั้นระหว่างชุด  เช่น 192.168.100.1 หรือ 172.16.10.1  เป็นต้น  โดยหมายเลข IP Address ของเครื่องคอมพิวเตอร์แต่ละเครื่องจะมีค่าไม่ซ้ำกัน สิ่งตัวเลข 4 ชุดนี้บอก คือ Network ID กับ Host ID ซึ่งจะบอกให้รู้ว่า เครื่อง computer ของเราอยู่ใน network ไหน และเป็นเครื่องไหนใน network นั้น เราจะรู้ได้อย่างไรว่า Network ID และ Host ID มีค่าเท่าไหร่ ก็ขึ้นอยู่กับว่า IP Address นั้น อยู่ใน class อะไร
       เหตุที่ต้องมีการแบ่ง class ก็เพื่อให้เกิดความเป็นระเบียบ เป็นการแบ่ง IP Address ออกเป็นหมวดหมู่นั้นเอง สิ่งที่จะเป็นตัวจำแนก class ของ network ก็คือ bit ทางซ้ายมือสุดของตัวเลขตัวแรกของ IP Address (ที่แปลงเป็นเลขฐาน 2 แล้ว) นั่นเอง โดยที่ถ้า bit ทางซ้ายมือสุดเป็น 0 ก็จะเป็น class A ถ้าเป็น 10 ก็จะเป็น class B ถ้าเป็น 110 ก็จะเป็น class C ดังนั้น IP Address จะอยู่ใน class A ถ้าตัวเลขตัวแรกมีค่าได้ตั้งแต่ 0 ? 127 (000000002 ? 011111112) จะอยู่ใน class B ถ้าเลขตัวแรกมีค่าตั้งแต่ 128 ? 191 (100000002 ? 101111112) และ จะอยู่ใน class C ถ้าเลขตัวแรกมีค่าตั้งแต่ 192 - 223 (110000002 ? 110111112) มีข้อยกเว้นอยู่นิดหน่อยก็คือตัวเลข 0, 127 จะใช้ในความหมายพิเศษ จะไม่ใช้เป็น address ของ network ดังนั้น network ใน class A จะมีค่าตัวเลขตัวแรก ในช่วง 1 ? 126
       สำหรับตัวเลขตั้งแต่ 224 ขึ้นไป จะเป็น class พิเศษ  อย่างเช่น  Class D ซึ่งถูกใช้สำหรับการส่งข้อมูลแบบ Multicast ของบาง Application และ Class E ซึ่ง Class นี้เป็น Address ที่ถูกสงวนไว้ก่อน ยังไม่ถูกใช้งานจริง ๆ  โดย Class D และ Class E นี้เป็น Class พิเศษ ซึ่งไม่ได้ถูกนำมาใช้งานในภาวะปกติ

    ตัวอย่าง IP Address
    Class A ตั้งแต่ 10.xxx.xxx.xxx
    Class B ตั้งแต่ 172.16.xxx.xxx ถึง 172.31.xxx.xxx
    Class C ตั้งแต่ 192.168.0.xxx ถึง 192.168.255.xxx

       จาก IP Address เราสามารถที่จะบอก ได้คร่าวๆ ว่า computer 2 เครื่องอยู่ใน network วงเดียวกันหรือเปล่าโดยการเปรียบเทียบ Network ID ของ IP Address ถ้ามี Network ID ตรงกันก็แสดงว่าอยู่ใน network วงเดียวกัน เช่น computer เครื่องหนึ่งมี IP Address 1.2.3.4 จะอยู่ใน network วงเดียวกับอีกเครื่องหนึ่งซึ่งมี IP Address 1.100.150.200 เนื่องจากมี Network ID ตรงกันคือ 1 (class A ใช้ Network ID 1 byte)

    วิธีตรวจสอบ IP Address
    1.คลิกปุ่ม Start เลือก Run
    2.พิมพ์คำว่า cmd กดปุ่ม OK
    3.จะได้หน้าต่างสีดำ
    4.พิมพ์คำว่า ipconfig กด enter
    5.จะเห็นกลุ่มหมายเลข IP Address