วันพุธที่ 1 พฤษภาคม พ.ศ. 2556


Chapter 7
การวิเคราะห์และพัฒนาระบบ
ความหมายของระบบ (System)
     ระบบ (System) คือหน่วยย่อยๆ ทีประกอบกันเป็นหน่วยใหญ่เพื่อนให้บรรลุวัตถุประสงค์หรือเป้าหมายอย่างใดอย่างหนึ่ง
     จะเห็นได้ว่า ระบบมักจะเกี่ยวข้องกับระบบย่อยๆ หรือ Subsystem อยู่เสมอ และระบบย่อยเหล่านั้นจะทำงาน โดยมีปฏิสัมพันธ์และเกี่ยวข้องกันอยู่ตลอดเวลา เพื่อบรรลุเป้าหมายหรือจุดประสงค์ร่วมกันนั่นเอง หากขาดระบบย่อยใดไป อาจส่งผลกระทบกับวิธีดำเนินการ 
ทำไมถึงต้องวิเคราะห์และออกแบบระบบ
     ก่อนทีเราจะสร้างหรือพัฒนาระบบให้มีความสมบูรณ์ จึงมักต้องอาศัยการศึกษาและฝึกถามคำถามเหล่านี้ อาทิ เช่น
     - ระบบทำอะไร (What) ศึกษาว่าระบบทีเราจะออกแบบนั้นทำไปเพื่ออะไร มีวัตถุประสงค์หรือเป้าหมายอย่างไรนั่นเอง
     - ทำโดยใคร (Who) ศึกษาวาใครบ้างที่ต้องมีหน้าที่รับผิดชอบในการวิเคราะห์และออกแบบระบบนั้น
     - ทำเมื่อไร (When) เป็นการกำหนดเวลาว่าจะเริ่มทำระบบเมื่อใด และควรวางแผนระยะเวลาการทำงานของแต่ละงานด้วย ซึ่งกำหนดเวลานี้จะเป็นสิ่งสำคัญในการกำหนดต้นทุนและค่าใช้จ่ายต่างๆ ในการจัดทำระบบ
     - ทำไมต้องทำ (Why) ศึกษาความเป็นไปได้ โดยมักใช้เหตุผลวิเคราะห์เป็นหลักว่าเหตุใดต้องทำหรือพัฒนาระบบนั้นออกมาใช้ ซึงอาจดูจากระบบเก่าที่มีอยู่หรือศึกษาจากระบบอื่นๆ ประกอบด้วย
     - ทำอย่างไร (How) ระบบที่จะพัฒนานั้นมีวิธีการทำอย่างไร ใช้เทคนิคหรืออุปกรณ์เครื่องมืออะไรบ้าง รวมถึงวิธีการแก้ปัญหาหรืออุปสรรค เพื่อให้ได้ระบบที่สามารถนำไปใช้แก้ปัญหาตามความต้องการของผู้ใช้
หน้าที่ของนักวิเคราะห์และออกแบบระบบ 
     นักวิเคราะห์และออกแบบระบบ มีบทบาทในการศึกษาความต้องการใช้งานของผู้ใช้ว่าต้องการให้พัฒนาหรือสร้างระบบไปในแนวทางไหน โดยทำหน้าที่รวบรวมข้อมูล ศึกษาปัญหา วิเคราะห์และออกแบบระบบใหม่ เพื่อตอบสนองความต้องการให้มากทีสุด และนำสิ่งที่ออกแบบไว้ไปอธิบายให้กับโปรแกรมเมอร์หรือช่างเทคนิคที่เกี่ยวข้องด้วย
ภาพที่ 7.1 การประสานงานระหว่างนักวิเคราะห์ระบบกับบุคคลที่เกี่ยวข้อง
คุณสมบัติของนักวิเคราะห์ระบบ
     ตัวอย่างคุณสมบัติที่ควรพึงมีของนักวิเคราะห์ระบบ มีดังนี้
     1. มีความรู้พื้นฐานในวิชาทางด้านคอมพิวเตอร์และเทคโนโลยีสารสนเทศ
     2. มีมนุษยสัมพันธ์ที่ดีในการเจรจาและประสานงานกับบุคคลที่เกี่ยวข้อง
     3. เป็นคนช่างสังเกต มีไหวพริบ สามารถแก้ไขปัญหาเฉพาะหน้าได้เป็นอย่างดี
     4. สามารถวิเคราะห์ปัญหาต่างๆ แยกเป็นประเด็นย่อยๆ หรือละเอียดเจาะลึกได้เป็นอย่างดี
     5. มีความรู้ความเข้าใจเกี่ยวกับระบบธุรกิจขององค์กร ทั้งในเรื่องการบัญชี งบประมาณ การตลาด
     6. มีความสามารถในการทำงานเป็นทีม
     7. สามารถควบคุมเวลาและแผนงานให้เป็นไปตามเป้าหมายที่วางไว้ได้
     8. มีความสามารถในการสื่อสารและนำเสนองานแก่ผู้เกี่ยวข้องให้เป็นเรื่องที่เข้าใจกันได้ง่าย
     9. ปรับตัวรับภาวการณ์ทำงานที่กดดันได้เป็นอย่างดี
   10. มีจิตวิทยาและเทคนิคโน้มน้าวหรือการจูงใจคนเป็นอย่างดี
วงจรการพัฒนาระบบคืออะไร   
ภาพที่ 7.2 วงจรการพัฒนาระบบ (SDLC)

วงจรพัฒนาระบบ หรือ SDLC (System Development Life Cycle) มีขั้นต้อนสำคัญๆ ดังนี้
     1. กำหนดปัญหา (Problem Definition) รวบรวมปัญหาที่เกิดขึ้นจากการทำงานด้วยระบบแบบเดิม เพื่อให้สามารถบรรลุหรือแก้ไขปัญหาต่างๆ ที่มี และตอบสนองความต้องการของผู้ใช้ให้ได้มากที่สุด เราสามารถสรุปขั้นตอนการทำงานด้วยแผนภาพ Gantt Chart ซึ่งเป็นเครื่องมือหนึ่งที่ช่วยในการวางแผน ขั้นตอนต่างๆ พร้อมทั้งกำหนดระยะเวลาในการปฏิบัติงานด้าย
ภาพที่ 7.3 ตัวอย่างแผนภาพ Gantt Chart
     2. วิเคราะห์ระบบ (Analysis) วิเคราะห์การทำงานของระบบเดิม และกำหนดความต้องการของระบบใหม่ว่าจะต้องทำอะไรบ้าง เมื่อวิเคราะห์แล้วจะสรุปออกมาในรูปแบบแผนภาพต่างๆ เช่น แผนภาพกระแสข้อมูล (Data Flow หรือ DFD) หรือแบบจำลองข้อมูล (Data Mode) เป็นต้น
ภาพที่ 7.4 ตัวอย่างแผนภาพ Context Diagram (DFD Level 0)
     3. ออกแบบระบบ (Design) นำข้อมูลที่วิเคราะห์ได้แล้วมาแยกย่อยและออกแบบให้ตรงตามความต้องการ เป็นเหมือนพิมพ์เขียวของระบบงาน มีการออกแบบรายละเอียดสำหรับการทำงานของผู้ใช้ เราอาจใช้ซอฟต์แวร์สำหรับช่วยในการวิเคราะห์ ออกแบบ และพัฒนาระบบที่เรียกว่า CASE Tools (Computer Aided Software Engineering) เพื่อช่วยสร้างแผนภาพหรือโมเดลต่างๆ ตามที่ต้องการได้อย่างรวดเร็ว ถูกต้องและมีประสิทธิภาพ
ภาพที่ 7.5 ตัวอย่างการออกแบบหน้าจอ
     4. พัฒนาระบบ (Development) สร้างระบบตามแบบพิมพ์เขียวที่ได้ออกแบบไว้ โดยลงมือเขียนโปรแกรมในแต่ละส่วนที่ออกแบบไว้ แล้วนำมาประกอบกันเพื่อให้สามารถทำตามความต้องการที่ออกแบบไว้ได้     5. ทดสอบระบบ (Testing) โดยทั่วไปแล้วการทดสอบระบบจะแบ่งการทดสอบเป็นส่วนย่อยก่อน (Unit Testing) เมื่อส่วนย่อยแต่ละส่วนผ่านการทดสอบแล้ว จึงนำมารวมกันแล้วทดสอบทั้งระบบ (System Testing) ซึ่งเราเรียกผู้ที่ทำหน้าที่ทดสอบระบบว่า Tester     6. ติดตั้งระบบ (Installation) นำระบบที่พัฒนาใหม่มาติดตั้งเพื่อใช้งานจริง โดยอาจเปลี่ยนมาใช้ระบบใหม่ทั้งหมดทันที หรือค่อยๆ ปรับเปลี่ยนโดยนำระบบใหม่มาปรับใช้ทีละส่วนจนครบทุกส่วน     7. การบำรุงรักษา (Maintenance) ซึ่งระบบอาจเกิดปัญหาขึ้นอีก ดังนั้นจะต้องมีการวางแผนเตรียมการรองรับหรือแก้ไขปัญหาในการใช้งานระบบอยู่ตลอดเวลา โดยอาจมีทีมงานที่สนับสนุนคอยอบรมหรือจัดสอนการใช้งานระบบอย่างถูกต้องและมีประสิทธิภาพด้วย


ข้อมูล + รูปภาพ  : หนังสือความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์และเทคโนโลยีสารสนเทศ
ผู้เขียน : วิโรจน์  ชัยมูล , สุพรรษา  ยวงทอง



แบบฝึกหัดท้ายบทที่ 7
1. จงอธิบายความหมายของระบบมาพอสังเขป
    ตอบ ระบบ (System) คือหน่วยย่อยๆ ทีประกอบกันเป็นหน่วยใหญ่เพื่อนให้บรรลุวัตถุประสงค์หรือเป้าหมายอย่างใดอย่างหนึ่ง
2. นักศึกษาคิดว่าระบบมีความสำคัญอย่างไร จงอธิบายพร้อมให้เหตุผลประกอบ
    ตอบ การวิเคราะห์และออกแบบระบบมีความสำคัญ เพราะเป็นปัจจัยในการสร้างและพัฒนาระบบสารสนเทศ การวิเคราะห์ระบบเป็นเรื่องที่น่าสนใจ เพราะนักวิเคราะห์ระบบต้องติดต่อกับคนหลายคน ได้รู้ถึงการจัดการและการทำงานในองค์การ ทำให้เรามีความรู้เกี่ยวกับระบบคอมพิวเตอร์หลายแบบมากขึ้น ผู้ที่สามารถวิเคราะห์ระบบได้ดี ควรมีประสบการณ์ในการเขียนโปรแกรม มีความรู้ทางด้านธุรกิจ ความรู้เกี่ยวกับระบบเครือข่ายและฐานข้อมูล ซึ่งใช้เป็นความรู้ในการออกแบบระบบที่มีความแตกต่างกันออกไปตาม สภาพงาน ดังนั้น หน้าที่ของนักวิเคราะห์ ก็คือการศึกษาระบบ แล้วให้คำแนะนำในการปรับปรุงและพัฒนาระบบนั้นจนเสร็จสมบูรณ์ ซึ่งการทำงานทั้งหมดต้องมีลำดับขั้นตอนและการศึกษาวิธีการวิเคราะห์และการออกแบบระบบในแต่ละขั้นตอน ทำให้เข้าใจการวิเคราะห์ระบบนั้นๆ ดียิ่ง และสามารถออกแบบระบบใหม่โดยไม่ยากเย็นนัก โดยสามารถตัดสินใจว่า ระบบใหม่ควรใช้คอมพิวเตอร์ประเภทไหน ใช้โปรแกรมอะไร ออกแบบ Input/output อย่างไรเป็นต้น
3. เหตุใดจึงต้องวิเคราะห์และออกแบบระบบ
    ตอบ เป็นการใช้กระบวนการเพื่อศึกษาถึงรายละเอียดของปัญหาต่างๆ ว่า ระบบที่เราพิจารณานั้นต้องทำอะไรบ้าง โดยหาความต้องการให้ได้ว่าต้องการแก้ปัญหาหรืออยากได้อะไรเพิ่มเติมเข้ามาในระบบ เมื่อวิเคราะห์ได้แล้วจะต้องมาออกแบบระบบที่ต้องการเสียก่อนว่าจะต้องทำอย่างไร โดยำแบบแผนหรือใช้วิธีการ เพื่อให้แก้ไขปัญหาเหล่านั้นหรือทำให้บรรลุเป้าหมายที่วางไว้
4. นักวิเคราะห์ระบบคือใคร มีหน้าที่อะไรบ้าง
    ตอบ บุคคลที่มีหน้าที่วิเคราะห์และออกแบบระบบ ซึ่งปกติแล้วนักวิเคราะห์ระบบควรจะอยู่ในทีมระบบสารสนเทศขององค์กรหรือธุรกิจนั้นๆ การที่มีนักวิเคราะห์ระบบในองค์กรนั้นเป็นการได้เปรียบ เพราะจะรู้โดยละเอียดว่า การทำงานในระบบนั้นๆเป็นอย่างไรและอะไรคือความต้องการของระบบ
5. นักวิเคราะห์ระบบที่ดี ควรมีคุณสมบัติอย่างไรบ้าง
    ตอบ 1. มีความรู้พื้นฐานในวิชาทางด้านคอมพิวเตอร์และเทคโนโลยีสารสนเทศ
           2. มีมนุษยสัมพันธ์ที่ดีในการเจรจาและประสานงานกับบุคคลที่เกี่ยวข้อง
           3. เป็นคนช่างสังเกต มีไหวพริบ สามารถแก้ไขปัญหาเฉพาะหน้าได้เป็นอย่างดี
           4. สามารถวิเคราะห์ปัญหาต่างๆ แยกเป็นประเด็นย่อยๆ หรือละเอียดเจาะลึกได้เป็นอย่างดี
           5. มีความรู้ความเข้าใจเกี่ยวกับระบบธุรกิจขององค์กร ทั้งในเรื่องการบัญชี งบประมาณ การตลาด
           6. มีความสามารถในการทำงานเป็นทีม
           7. สามารถควบคุมเวลาและแผนงานให้เป็นไปตามเป้าหมายที่วางไว้ได้
           8. มีความสามารถในการสื่อสารและนำเสนองานแก่ผู้เกี่ยวข้องให้เป็นเรื่องที่เข้าใจกันได้ง่าย
           9. ปรับตัวรับภาวการณ์ทำงานที่กดดันได้เป็นอย่างดี
         10. มีจิตวิทยาและเทคนิคโน้มน้าวหรือการจูงใจคนเป็นอย่างดี
6. วงจรพัฒนาระบบ คืออะไร ประกอบด้วยข้นตอนอะไรบ้าง จงอธิบาย
    ตอบ เป็นวงจรการทำงานที่เป็นลำดับขั้นตอนชัดเจนตั้งแต่ต้นว่าเริ่มทำอะไรบ้าง และเมื่อพัฒนาเสร็จแล้วจะต้องบำรุงรักษาหรือดูแลระบบต่อไปอย่างไร ซึ่งมีขั้นตอนสำคัญๆ ดังนี้
           1. กำหนดปัญหา (Problem Definition) รวบรวมปัญหาที่เกิดขึ้นจากการทำงานด้วยระบบแบบเดิม เพื่อให้สามารถบรรลุหรือแก้ไขปัญหาต่างๆ ที่มี
           2. วิเคราะห์ระบบ (Analysis) วิเคราะห์การทำงานของระบบเดิม และกำหนดความต้องการของระบบใหม่ว่าจะต้องทำอะไรบ้าง เมื่อวิเคราะห์แล้วจะสรุปออกมาในรูปแบบแผนภาพต่างๆ
           3. ออกแบบระบบ (Design) นำข้อมูลที่วิเคราะห์ได้แล้วมาแยกย่อยและออกแบบให้ตรงตามความต้องการ เป็นเหมือนพิมพ์เขียวของระบบงาน มีการออกแบบรายละเอียดสำหรับการทำงานของผู้ใช้
           4. พัฒนาระบบ (Development) สร้างระบบตามแบบพิมพ์เขียวที่ได้ออกแบบไว้ โดยลงมือเขียนโปรแกรมในแต่ละส่วนที่ออกแบบไว้ แล้วนำมาประกอบกันเพื่อให้สามารถทำตามความต้องการที่ออกแบบไว้ได้
           5. ทดสอบระบบ (Testing) โดยทั่วไปแล้วการทดสอบระบบจะแบ่งการทดสอบเป็นส่วนย่อยก่อน (Unit Testing) เมื่อส่วนย่อยแต่ละส่วนผ่านการทดสอบแล้ว จึงนำมารวมกันแล้วทดสอบทั้งระบบ (System Testing) ซึ่งเราเรียกผู้ที่ทำหน้าที่ทดสอบระบบว่า Tester
           6. ติดตั้งระบบ (Installation) นำระบบที่พัฒนาใหม่มาติดตั้งเพื่อใช้งานจริง โดยอาจเปลี่ยนมาใช้ระบบใหม่ทั้งหมดทันที หรือค่อยๆ ปรับเปลี่ยนโดยนำระบบใหม่มาปรับใช้ทีละส่วนจนครบทุกส่วน
           7. การบำรุงรักษา (Maintenance) ซึ่งระบบอาจเกิดปัญหาขึ้นอีก ดังนั้นจะต้องมีการวางแผนเตรียมการรองรับหรือแก้ไขปัญหาในการใช้งานระบบอยู่ตลอดเวลา โดยอาจมีทีมงานที่สนับสนุนคอยอบรมหรือจัดสอนการใช้งานระบบอย่างถูกต้องและมีประสิทธิภาพด้วย

ไม่มีความคิดเห็น:

แสดงความคิดเห็น