วันอังคารที่ 14 มิถุนายน พ.ศ. 2554

การวิเคราะห์และออกแบบระบบ


ระบบ

ระบบคือกลุ่มขององค์ประกอบต่างๆ ที่ทำงานร่วมกันเพื่อจุดประสงค์อันเดียวกัน ระบบอาจจะประกอบด้วย บุคคลากร เครื่องมือ เครื่องใช้ พัสดุ วิธีการ ซึ่งทั้งหมดนี้จะต้องมีระบบจัดการอันหนึ่ง เพื่อให้บรรลุจุดประสงค์อันเดียวกัน เช่น ระบบการเรียนการสอน มีจุดประสงค์เพื่อให้นักเรียนได้รับความรู้ในเนื้อหาวิชาที่สอน

6.1 ตัวอย่างระบบการเรียนการสอน

การวิเคราะห์ระบบและการออกแบบ (System Analysis and Design) การวิเคราะห์และออกแบบระบบคือ วิธีการที่ใช้ในการสร้างระบบสารสนเทศขึ้นมาใหม่ในธุรกิจใดธุรกิจหนึ่งหรือ ระบบย่อยของธุรกิจ นอกจากการสร้างระบบสารสนเทศใหม่แล้ว การวิเคราะห์ระบบ ช่วยในการแก้ไขระบบสารสนเทศเดิมที่มีอยู่แล้วให้ดีขึ้นด้วยก็ได้ การวิเคราะห์ระบบก็คือ การหาความต้องการ (Requirements) ของระบบสารสนเทศว่าคืออะไร หรือต้องการเพิ่มเติมอะไรเข้ามาในระบบ และการออกแบบก็คือ การนำเอาความต้องการของระบบมาเป็นแบบแผน หรือเรียกว่าพิมพ์เขียวในการสร้างระบบสารสนเทศนั้นให้ใช้งานได้จริง ตัวอย่างระบบสารสนเทศ เช่น ระบบการขาย ความต้องการของระบบก็คือ สามารถติดตามยอดขายได้เป็นระยะ เพื่อฝ่ายบริหารสามารถปรับปรุงการขายได้ทันท่วงที ตัวอย่างรายงานการขายที่กล่าวมาแล้วจะชี้ให้เห็นว่าเราสามารถติดตามการขายได้อย่างไร

นักวิเคราะห์ระบบ (System Analyst หรือ SA) นักวิเคราะห์ระบบคือ บุคคลที่มีหน้าที่วิเคราะห์และออกแบบระบบ ซึ่งปกติแล้วนักวิเคราะห์ระบบควรจะอยู่ในทีมระบบสารสนเทศขององค์กรหรือธุรกิจนั้นๆ การที่มีนักวิเคราะห์ระบบในองค์กรนั้นเป็นการได้เปรียบ เพราะจะรู้โดยละเอียดว่า การทำงานในระบบนั้นๆเป็นอย่างไรและอะไรคือความต้องการของระบบ ในกรณีที่นักวิเคราะห์ระบบไม่ได้อยู่ในองค์กรนั้น ก็สามารถวิเคราะห์ระบบได้เช่นกัน โดยการศึกษาสอบถามผู้ใช้และวิธีการอื่นๆ ซึ่งจะกล่าวในภายหลัง ผู้ใช้ในที่นี้ก็คือเจ้าของและผู้ที่เกี่ยวข้องในระบบสารสนเทศนั้นเอง ผู้ใช้อาจจะเป็นคนเดียวหรือหลายคนก็ได้ เพื่อให้นักวิเคราะห์ระบบทำงานได้อย่างคล่องตัวมีลำดับขั้นและเป้าหมายที่แน่นอน นักวิเคราะห์ระบบควรทราบถึงว่า ระบบสารสนเทศนั้นพัฒนาขึ้นมาอย่างไร มีขั้นตอนอย่างไรบ้าง

การจัดการข้อมูล

วงจรการพัฒนาระบบ (System Development Lift Cycle-SDLC) ระบบสารสนเทศทั้งหลายมีวงจรชีวิตที่เหมือนกัน ตั้งแต่เกิดจนตาย วงจรนี้จะเป็นขั้นตอนที่เป็นลำดับตั้งแต่ต้นจนเสร็จเรียบร้อยเป็นระบบที่ใช้งานได้ ซึ่งนักวิเคราะห์ระบบ ต้องทำความเข้าใจให้ดีว่าในแต่ละขั้นตอนจะต้องทำอะไร และทำอย่างไร ขั้นตอนการพัฒนาระบบมีอยู่ด้วยกัน 7 ขั้นตอนคือ
1. เข้าใจปัญหา (Problem Recognition)
2. ศึกษาความเป็นไปได้ (Feasibility Study)
3. วิเคราะห์ (Analysis)
4. ออกแบบ (Design)
5. สร้าง หรือพัฒนาระบบ (Construction)
6. การปรับเปลี่ยน (Conversion)
7. บำรุงรักษา (Maintenance)

การวิเคราะห์

การวิเคราะห์ระบบในวงจรการพัฒนาระบบนั้น เริ่มต้นจากการศึกษาระบบเดิม แล้วนำข้อมูลที่ได้จากการศึกษามาหาความต้องการ (Requirements)หรือสิ่งที่จะต้องปรับปรุงในระบบ หรืออีกอย่างหนึ่งคือวิธีแก้ปัญหาของระบบ การวิเคราะห์จะเริ่มหลังจากที่ทราบปัญหา และผ่านขั้นตอนการศึกษาความเป็นไปได้แล้ว

รวบรวมข้อมูล การศึกษาระบบเดิมนั้น นักวิเคราะห์ระบบ เริ่มต้นจากการศึกษาเอกสารต่างๆ เช่น คู่มือต่างๆ หลังจากนั้นเป็นการรวบรวมแบบฟอร์มและรายงานต่างๆ เช่น ในระบบบัญชีเจ้าหนี้จะมีแบบฟอร์มใบบรรจุผลิตภัณฑ์ ใบทวงหนี้ รายงานเพื่อเตรียมเงินสเป็นต้น นอกจากนั้นจะต้องคอยสังเกตดูการทำงานของผู้ที่เกี่ยวข้องในระบบที่ศึกษา ท้ายที่สุดอาจจะต้องมีการสัมภาษณ์ผู้ที่มีหน้าที่ รับผิดชอบงานที่เกี่ยวข้องในระบบ หรือบางกรณีอาจจะต้องใช้แบบสอบถามมาช่วยเก็บข้อมูลด้วยก็ได้ วิธีการทั้งหมดเรียกว่า เทคนิคการเก็บรวบรวมข้อมูล (Fact Gathering Techniques)

คำอธิบายข้อมูล (Data Description) เมื่อนักวิเคราะห์ระบบศึกษาระบบมากเข้าจะพบว่า มีข้อมูลมากมายที่ต้องจัดให้เป็นหมวดหมู่ เช่น ข้อมูลของลูกค้าคนหนึ่งจะรวมข้อมูลรายละเอียดอื่นๆ เช่น เลขที่ลูกค้า ชื่อ ที่อยู่ เบอร์โทรศัพท์ การจ่ายเงิน การซื้อสินค้าเป็นต้น ทั้งหมดเป็นเพียงไฟล์เดียวเท่านั้น ในกรณีหลายๆ ไฟล์จะต้องมีวิธีเก็บเพื่อความเป็นระเบียบในการติดตาม นิยามของข้อมูลเครื่องมือที่ช่วยเก็บคำอธิบายข้อมูลก็คือ พจนานุกรมข้อมูล (Data Dictionary)

คำอธิบายวิธีการ(Procedure Description) กรรมวิธีที่ติดตามการเปลี่ยนแปลงของข้อมูลจะต้องรู้ว่า ข้อมูลผ่านการประมวลผลอย่างไรบ้าง คือทราบว่า "ทำอะไร" บ้างในระบบ และมีวิธีการอย่างไร เช่น การจ่ายเงินเจ้าหนี้ เรามีกฎเกณฑ์หรือวิธีการอย่างไรบ้างในการตัดสินใจว่า จะจ่ายให้ใครก่อนหลัง ซึ่งวิธีการบางอย่างมีรายละเอียดไม่มากนัก เช่น ถ้าลูกค้าสั่งซื้อของเรา เพียงแต่เช็คว่ามีของในสต็อกเพียงพอกับจำนวนที่ลูกค้าสั่งหรือไม่ ซึ่งเาจำได้ทันทีว่าจะต้องทำอะไร แต่กรณีที่วิธีการตัดสินใจมีรายละเอียดเพิ่มมากขึ้นตัวอย่าง เช่น การจ่ายเงินเจ้าหนี้จะมีหลายขั้นตอนได้แก่ จำนวนเงินมากน้อยแค่ไหน ถ้ามากเกินไปต้องรออนุมัติจากผู้บริหาร ถ้าไม่เกินจำนวนกำหนดก็มาเช็คว่ามีส่วนลดหรือไม่ หรือจำนวนวันที่ค้างจ่ายว่านานแค่ไหนเป็นต้น ซึ่งการตัดสินใจมีหลายขั้นตอนและรายละเอียดมากเกินกว่าที่จะจำได้


รูปที่ 6.2 DFD ของระบบเงิน

รายละเอียดของวิธีการต่างๆ เหล่านี้ อาจจะเขียนหรือร่ายยาวเป็นเรียงความเรื่องหนึ่งก็ได้ แต่ก็มีปัญหาว่าเก็บรายละเอียดไม่ได้ครบถ้วน ลองเปรียบเทียบกับสถาปนิกออกแบบบ้านโดยอธิบายรายละเอียดได้ครบถ้วและเห็นภาพลักษณ์อย่างชัดเจนด้วย สำหรับ นักวิเคราะห์ก็ใช้วิธีเขียนแบบเข้ามาช่วยเหมือนกัน การเขียนแบบเพื่ออธิบายวิธีการต่างๆที่ใช้ในระบบ ช่วยในการติดตามการเปลี่ยนแปลงของข้อมูลเรียกว่า แผนภาพแสดงกระแสข้อมูล (Data Flow Diagram : DFD)

การจัดการข้อมูล

คำอธิบายการประมวลผล(Process Description) ต้องมี เพราะถึงแม้ว่าแผนภาพแสดงกระแสข้อมูล (DFD) เป็นเครื่องมือพื้นฐานที่ใช้ในการวิเคราะห์ว่าจะต้องทำอะไรบ้าง หรือจะต้องประมวลผลอะไรบ้าง แต่ในแต่ละขั้นตอนถึงแม้จะแยกย่อยลงมาแล้วก็ยังมีรายละเอียดที่ลึกลงไปอีก การประมวลผลที่ลึกลงไปนั้นใน DFD อธิบายรายละเอียดด้วย"คำอธิบายการประมวลผล"(Process Description) คำอธิบายนี้ บอกอย่างแน่ชัดว่า อินพุตถูกเปลี่ยนเป็นเอาต์พุตอย่างไร ตัวอย่างการเปลี่ยนยางรถยนต์ในบทที่แล้วในขั้นตอนขยับรถยนต์ขึ้น เราจะเขียนเป็นคำอธิบายการประมวลผลเป็นประโยคโครงสร้างได้ดังนี้

การสร้างแบบข้อมูล(Data Modeling) คือ การออกแบบฐานข้อมูลนั่นเอง นักวิเคราะห์ระบบต้องออกแบบว่าจะเก็บข้อมูลอย่างไร และการดึงข้อมูลมาใช้จะใช้วิธีอะไร การจะออกแบบฐานข้อมูลได้ นักวิเคราะห์ระบบต้องรู้แน่ชัดแล้วว่า ข้อมูลที่ใช้ทั้งหมดมีอะไรบ้าง ตัวอย่างฐานข้อมูลอาจจะเป็นแบบตารางธรรมดา(Relational Database) และการดึงข้อมูลมาใช้ โดยมีคีย์เป็นตัวใช้ค้นหาเป็นแบบอินเด็กซ์ไฟล์ (Index File) เป็นต้น ซึ่งส่วนใหญ่ของฐานข้อมูลในปัจจุบันนี้ ใช้แบบตาราง เพราะว่าง่ายที่จะทำความเข้าใจ

การสร้างแบบจำลองระบบ(System Modeling) คือ นำทุกสิ่งทุกอย่างที่ได้จากพจนานุกรมข้อมูล แผนภาพแสดงกระแสข้อมูล ฐานข้อมูล มารวมกันเป็นระบบใหม่ และที่สำคัญก็คือ ความต้องการใหม่ของระบบจะถูกเพิ่มเติมเข้ามาในระบบใหม่นี้ ซึ่งระบบใหม่นี้จะเป็นระบบที่เราต้องการ นอกจากนั้นต้องประมาณว่า จะต้องใช้บุคลากร อุปกรณ์ และพัสดุอะไรบ้าง และใช้เป็นจำนวนเท่าไร

ข้อมูลเฉพาะของปัญหา(Problem Specification) ในท้ายที่สุด นักวิเคราะห์ระบบจะรวบรวมสิ่งที่ทำมาทั้งหมดเขียนเป็นรายงานฉบับหนึ่ง เรียกว่า ข้อมูลเฉพาะของปัญหา ซึ่งประกอบด้วยพจนานุกรมข้อมูล แผนภาพแสดงกระแสข้อมูล ข้อมูลเฉพาะการประมวลผล ฐานข้อมูล และแบบระบบใหม่ รายงานนี้จะถูกใช้อ้างอิงตลอดโครงการพัฒนาระบบ ถ้าเอกสารนี้ถูกต้องและละเอียดเพียงพอ การออกแบบในขั้นต่อไปจะง่ายมาก แต่ถ้าตรงกันข้ามเอกสารนี้มีรายละเอียดไม่เพียงพอ เชื่อได้เลยว่าระบบที่เสร็จออกมาจะต้องมีปัญหาแน่นอน

การจัดการโครงการ(Project Management) เนื่องจากการทำหน้าที่เป็นนักวิเคราะห์ระบบ จะเห็นว่ามีงานที่จะต้องทำมากพอสมควร ดังนั้นการควบคุมการทำงานเพื่อไม่ให้เกินเวลาที่วางแผนเอาไว้ตลอดโครงการ เป็นเรื่องที่จำเป็นมาก เพราะว่าถ้าใช้เวลามากเกินกว่าที่วางแผนไว้ ก็หมายความว่าค่าใช้จ่ายจะต้องบานปลายแน่นอน การวางแผนและควบคุมโครงการได้ดี ก็โดยการวางแผนตารางเวลาสำหรับงานย่อยๆซึ่งเราทราบอยู่แล้วว่ามีอะไรบ้าง เครื่องมือที่ช่วยในการวางแผนและติดตามควบคุมโครงการได้แก่ แกนต์ชาร์ต (Gantt Chart) แผนภาพแกนต์ชาร์ตจะมีรายละเอียดของงานที่จะทำและเวลา


รูปที่ 6.3 ตัวอย่างแกนต์ชาร์ต

ผังงานระบบ(System Flowchart) เป็นการใช้แผนภาพที่ใช้แสดงอินพุท เอาต์พุต และการประมวลผล(Process) ของระบบ ในบางกรณี เราใช้ผังงานระบบแทนแผนภาพแสดงกระแสข้อมูล ในบางกรณีก็ใช้ด้วยกัน ตัวอย่าง ผังงานระบบสำหรับแก้ไขข้อมูลในจานแม่เหล็ก

โมเดลทางกายภาพและทางตรรกภาพ(Physical and Logical Model) เมื่อเราพูดถึงลอจิคัล จะหมายถึงการกระทำอย่างใดอย่างหนึ่งที่เราพูดถึง โดยที่ไม่สนใจว่าจะทำอย่างไร เช่น เราพูดว่าเรียงลำดับข้อมูล เราจะไม่สนใจว่า จะทำการเรียงลำดับข้อมูลทำได้อย่างไร เราเรียกการกระทำแบบนี้ว่าลอจิคัล อีกนัยหนึ่งก็คือ "ทำอะไร" ในขณะที่ ฟิสิคัลจะมี ความหายตรงกันข้าม คือ จะต้องทราบว่า การจะทำอะไรนั้นจะต้องทำอย่างไร เช่น การเรียงลำดับข้อมูลต้องทราบว่า จะต้องใช้โปรแกรม Utility ช่วยในการเรียงลำดับ สรุปก็คือ ลอจิคัลไม่สนใจว่า "จะทำอย่างไร" แต่ฟิสิคัลต้องคำนึงถึงว่า "จะต้องทำอย่างไร"


รูปที่ 6.4 ตัวอย่างแผนภาพลอจิคัลและฟิสิคัลสำหรับพิมพ์รายงาน

เทคนิคในการรวบรวมข้อมูลเพื่อหาความจริงของระบบ

ถ้าต้องการออกแบบระบบใหม่ จะต้องเข้าใจว่าระบบเดิมเป็นอย่างไร ทำงานอย่างไร มีขั้นตอนการทำงานอย่างไร ปัญหาก็คือ จะเก็บข้อมูลอย่างไร สิ่งที่เราทราบในขณะนี้คือ ถ้าต้องการออกแบบระบบใหม่ จะต้องเข้าใจว่าระบบเดิมเป็นอย่างไร ทำงานอย่างไร ปัญหาก็คือจะเก็บข้อมูลอย่างไรจึงจะทำให้เข้าใจระบบเดิม การเก็บข้อมูลมีด้วยกันหลายวิธี ซึ่งจะกล่าวในที่นี้เพียงบางวิธีเท่านั้น นอกจากนั้นจะมีตัวอย่างการเก็บรวบรวมข้อมูลด้วยวิธีสัมภาษณ์และใช้แบบสอบถามของระบบบัญชีเจ้าหนี้ ซึ่งเป็นตัวอย่างของระบบที่จะใช้ในการศึกษาต่อไปด้วย

เริ่มต้นของการเก็บข้อมูลคือ รวบรวมข้อมูลคือ รวบรวมแบบฟอร์มของอินพุททั้งหมดที่กรอกข้อมูลแล้ว และที่ยังไม่ได้กรอกข้อมูล นอกจากนั้นต้องเก็บรวบรวมรายงานทั้งหมด(Output Reports) พร้อมทั้งบอกด้วยว่ารายงานและแบบฟอร์มอินพุตแต่ละฉบับ ถูกสร้างขึ้นในส่วนใดของระบบบ่อยครั้งแค่ไหน จำนวนมากน้อยเท่าไร และใครเป็นผู้ใช้รายงานและแบบฟอร์มเหล่านั้น

เมื่อมีแบบฟอร์มและรายงานอยู่ในมือแล้วจึงเริ่มศึกษาเอกสารต่างๆของระบบ รวมทั้งวิธีการทำงานของระบบ โปรแกรมที่มีอยู่ ไฟล์ข้อมูล และการเชื่อมโยงของไฟล์ ปัญหาก็คือ เอกสาร วิธีการทำงานของระบบนั้น ทันสมัยมากน้อยแค่ไหน หรือมีการเก็บเอกสารเหล่านั้นหรือไม่เป็นต้น ดังนั้นนสิ่งที่นักวิเคราะห์ระบบจะต้องทำถัดไปคือ สังเกตการทำงานจริงด้วยตนเอง ทำให้เราทราบว่าการทำงานจริงๆ ในระบบเป็นอย่างไร

ก่อนที่จะเริ่ม สังเกตการณ์ นักวิเคราะห์ระบบต้องขออนุญาตจากผู้ที่เราจะสังเกตการทำงานของเขา รวมทั้งผู้บังคับบัญชาด้วย ระหว่างการสังเกตการณ์เราจะต้องอยู่ห่างๆจากการทำงานและจะต้องไม่ขัดขวางการ ทำงานของเขาด้วย แต่สิ่งหนึ่งที่เราต้องจำไว้คือ ผู้ที่อยู่ภายใต้การสังเกตการณ์ของเราจะทำงานไม่ปกติเหมือนเวลาที่เขาทำตาม ปกติ อาจจะทำมากเกินไป ทำงานด้วยความประมาท หรือทำด้วยความระมัดระวังมากกว่าปกติ วิธีที่ดีที่สุดคือ ลงมือทำด้วยตัวเอง ทำให้ เข้าใจการทำงานดีกว่าการสังเกตการณ์เท่านั้น

วิธีการเก็บข้อมูลที่มีประโยชน์มากอีก 2 วิธีก็คือ
1. การสัมภาษณ์
2. ใช้แบบสอบถาม

การสัมภาษณ์(Interview) การรวบรวมข้อมูลโดยการสัมภาษณ์ เป็นที่นักวิเคราะห์สอบถามผู้บริหารและผู้ใช้ระบบด้วยตัวเอง เกี่ยวกับระบบปัจจุบันและถามความคิดเห็นแต่ละคนว่าอยากให้ระบบใหม่ เป็นอย่างไร

หลักในการสัมภาษณ์(Principles of Interviewing). มีผลต่อความสำเร็จหรือล้มเหลวของโครงการ ขึ้นอยู่กับความชำนาญในการสัมภาษณ์ของนักวิเคราะห์ระบบ การสัมภาษณ์เป็นวิธีการดึงความคิดเห็นของผู้ใช้ที่มีต่อระบบ ถ้าผู้ใช้ไม่ชอบหน้านักวิเคราะห์ก็จะทำให้เขาไม่ชอบโครงการปรับปรุงระบบใหม่ด้วย แต่ในทางตรงกันข้าม ถ้านักวิเคราะห์ทำตัวให้ผู้ใช้นับถือ ก็จะทำให้โครงการดำเนินไปอย่าง ราบรื่น ซึ่งจะเป็นการประกันได้ว่าโครงการจะสำเร็จลงด้วยดี



เพื่อนๆสามารถอ่านต่อไ้ด้ที่ http://irrigation.rid.go.th/rid15/ppn/Knowledge/System%20Analysis%20and%20Design/System%20Analysis%20and%20Design1.htm

parinee vijitrotai (Ploy)


2 ความคิดเห็น:

  1. ความคิดเห็นนี้ถูกผู้เขียนลบ

    ตอบลบ
  2. การวิเคราะห์ระบบก็คือ การหาความต้องการ (Requirements) ของระบบสารสนเทศว่าคืออะไร หรือต้องการเพิ่มเติมอะไรเข้ามาในระบบ และ
    การออกแบบก็คือ การนำเอาความต้องการของระบบมาเป็นแบบแผน หรือเรียกว่าพิมพ์เขียวในการสร้างระบบสารสนเทศนั้นให้ใช้งานได้จริง
    ซึ่งทั้งสองความหมายจากที่กล่าวมาข้างต้นถือเป็นปัจจัยสำคัญในการทำงานของ System Analyst

    นายนฤพนธ์ วุฒิภาพภิญโญ(นิกส์)

    ตอบลบ

หมายเหตุ: มีเพียงสมาชิกของบล็อกนี้เท่านั้นที่สามารถแสดงความคิดเห็น