Tuesday, September 22, 2009

ควารู้เบื้องต้นเกียวกับคอมพิวเตอร์และการเขียนโปรแกรม(3)

บทที่ 3
การวิเคราะห์และออกแบบระบบในระดับภาพรวม ( System Analysis and Design in Context Diagram level : SA )
ขอบเขตในการเรียนการวิเคราะห์และออกแบบระบบเบื้องต้นทั้งในภาคเรียนที่ 1 และภาคเรียนที่ 2 การวิเคราะห์และออกแบบระบบรวมไปถึงการออกแบบจอภาพ จัดอยู่ในกลุ่มของขั้นตอนการวิเคราะห์ปัญหา เป็นสิ่งที่สำคัญมากในการเริ่มต้นวางแผนการสร้างและพัฒนาโปรแกรม ซึ่งเนื้อหาของเรื่องนี้ ถ้าเรียนในระดับมหาวิทยาลัยค่อนข้างยากมากเนื่องจากต้องใช้ประสบการณ์ในการแก้ปัญหาในระบบงานที่ซับซ้อนมากๆ เช่น ระบบสินค้าคงคลัง ระบบธนาคาร ฯลฯ และ SA ก็มีส่วนช่วยส่งเสริมการเรียนวิชาเขียนโปรแกรม 1 ตามหลักสูตรได้อย่างมีประสิทธิภาพ ในการเรียน SA เบื้องต้นในระดับมัธยมศึกษาจึงแบ่งออกเป็น 2 ระดับหรือ 2 ภาคเรียน ตามเนื้อหาความยากง่ายดังนี้ 1. การวิเคราะห์และออกแบบระบบในระดับภาพรวม จะกล่าวถึงบทนำ ความหมาย สัญลักษณ์ต่างๆ ของ SA เพื่อนำไปใช้ในการสร้างและพัฒนาระบบสารสนเทศอย่างง่าย ไม่ซับซ้อน เขียน SA ในภาพรวม (Context Diagram) 2. การวิเคราะห์และออกแบบระบบในระดับย่อย จะกล่าวถึงการเขียน SA โดยนำ Context Diagram มาใช้ในการสร้างและพัฒนาระบบสารสนเทศอย่างละเอียด และมีความซับซ้อนสูงขึ้น คือเขียน SA ในระดับย่อย (Level 0)ภาคทฤษฎีของการวิเคราะห์และออกแบบระบบในระดับภาพรวม บทนำทั่วไป การเขียนโปรแกรมใดๆ ก็ตามหากปราศจากการวิเคราะห์ระบบของงาน หรือเขียนโปรแกรมโดยไม่มีการวางแผนการทำงานของระบบ จะทำให้การดำเนินงานในด้านการเขียนโปรแกรมนั้นเป็นไปด้วยความยากลำบาก สื่อสารกันถึงขอบเขตและความต้องการของระบบนั้นยาก เช่น ผู้ใช้งาน ต้องการซอฟแวร์ประยุกต์ชื่อโปรแกรมหาพื้นที่สี่เหลี่ยมผืนผ้า ถ้าผู้เขียนโปรแกรมไม่วิเคราะห์และออกแบบระบบ เมื่อนำไปเขียนโปรแกรมจริงๆ ก็เขียนอย่างไม่มีขอบเขต ไม่รู้ว่าในโปรแกรมที่ต้องการสร้างมีระบบงานอะไรบ้าง เมื่อเขียนโปรแกรมเสร็จแล้วนำเสนอผู้ใช้งาน อาจจะทำให้ผู้ใช้งานไม่พอใจหรือไม่ตรงตามต้องการในโปรแกรมที่เราสร้างขึ้นมาได้ง่าย ถึงแม้ว่าเราจะคิดว่าโปรแกรมที่เราสร้างขึ้นมานี้ถูกต้อง มีคุณภาพสูง หรือดีแค่ไหนก็ตาม ในที่สุดก็ต้องกลับมาแก้ไขโปรแกรมอย่างนี้ไปเรื่อยๆ อย่างไม่มีเป้าหมายที่ชัดเจน รวมทั้งยากต่อการพัฒนาระบบงานต่อไปได้ การที่เราจะเขียนโปรแกรมได้ตามความต้องการของผู้ใช้งานและสามารถสื่อสารในงานด้านต่างๆ กับนักโปรแกรมเมอร์ด้วยกันเองได้เข้าใจง่ายนั้น ต้องอาศัยเครื่องมือที่ช่วยในการสร้างและพัฒนาระบบสารสนเทศ นั่นก็คือ การวิเคราะห์และออกแบบระบบ (System Analysis and Design) ในวงการคอมพิวเตอร์มักจะเรียกสั้นๆว่า SA

ความหมายของการวิเคราะห์และออกแบบระบบ ระบบ (System) คือกลุ่มขององค์ประกอบต่างๆ ที่ทำงานร่วมกันเพื่อจุดประสงค์อันเดียวกัน ระบบอาจจะประกอบด้วย บุคคลากร เครื่องมือ เครื่องใช้ พัสดุ วิธีการ ซึ่งทั้งหมดนี้จะต้องมีระบบจัดการอันหนึ่ง เพื่อให้บรรลุจุดประสงค์อันเดียวกัน เช่น ระบบการเรียนการสอน มีจุดประสงค์เพื่อให้นักเรียนได้รับความรู้ในเนื้อหาวิชาที่สอน การวิเคราะห์ระบบ (System Analysis) คือ การหาขอบเขต (Scope) และความต้องการ (Requirements) ของระบบสารสนเทศว่าคืออะไร หรือต้องการเพิ่มเติมอะไรเข้ามาในระบบ การออกแบบระบบ (System Design) คือ การนำสิ่งที่วิเคราะห์ระบบมาแล้ว นำมาเขียนเป็นแผนภาพแสดงกระแสข้อมูล แผนภาพแสดงกระแสข้อมูล (Data Flow Diagram : DFD) คือ เครื่องมือที่ใช้ในการเขียนระบบเป็นแผนภาพตามที่วิเคราะห์ระบบไว้แล้ว เพื่อสื่อให้นักโปรแกรมเมอร์ได้เข้าใจกระบวนการทำงานของระบบได้ง่ายขึ้น นักวิเคราะห์ระบบ (System analyst) คือ มีหน้าที่วางแผน ออกแบบ และวิเคราะห์งานคอมพิวเตอร์ นักวิเคราะห์ระบบจะทำงานร่วมกับผู้ใช้งานและโปรแกรมเมอร์ โดยการสอบถามความต้องการของผู้ใช้ ว่าต้องการโปรแกรมหรือ ระบบงานคอมพิวเตอร์ในลักษณะใด จากนั้นนักวิเคราะห์ระบบจะทำการวิเคราะห์และออกแบบระบบงานคอมพิวเตอร์ ให้ตรงกับความต้องการของผู้ใช้เพื่อมอบให้นักเขียนโปรแกรมทำการเขียนโปรแกรม เพื่อนำมาพัฒนาเป็นระบบงานต่อไป นักวิเคราะห์ระบบที่ดีควรจะต้องมีความรู้พื้นฐานในการเขียนโปรแกรมด้วย ตัวอย่างกรณีศึกษาในการรับสมัคร SA ของงานเวชสารสนเทศ คณะแพทยศาสตร์โรงพยาบาลรามาธิบดี รับสมัครพนักงานด้านสาขาคอมพิวเตอร์บรรจุเป็นพนักงานมหาวิทยาลัย ดังนี้ - รับสมัครนักวิเคราะห์ระบบงานคอมพิวเตอร์ (System Analyst) 2 อัตรา หน้าที่ความรับผิดชอบ : วิเคราะห์ออกแบบระบบงานคอมพิวเตอร์ทางด้านระบบบัญชีการเงิน ระบบจัดซื้อจัดจ้าง ทะเบียนพัสดุ และระบบทะเบียนบุคลากรหรือว่าวิเคราะห์ออกแบบระบบโรงพยาบาล วุฒิการศึกษา : ปริญญาตรีหรือโทสาขา Computer Science หรือสาขาที่เกี่ยวข้อง ประสบการณ์ : 1. มีประสบการณ์วิเคราะห์ระบบไม่ต่ำกว่า 2 ปี สามารถวางแผน, วิเคราะห์, ออกแบบ, ประเมินผลและจัดทำเอกสาร 2. มีความรู้ภาษาอังกฤษเป็นอย่างดี .... ........... อัตราเงินเดือน : 30,000 – 40,000 บาท (ขึ้นกับประสบการณ์) อ้างอิงจาก http://www.ra.mahidol.ac.th/faculty/thai/download/mi_dt.doc หรือค้นหาจาก Google คำว่า “นักวิเคราะห์ระบบ+เงินเดือน”สัญลักษณ์และการเขียนแผนภาพแสดงกระแสข้อมูล (Data Flow Diagram : DFD) DFD มีองค์ประกอบ 4 อย่าง ซึ่งใช้สัญลักษณ์ต่าง ๆ แทนดังต่อไปนี้ DFD มีองค์ประกอบ 4 อย่าง ซึ่งใช้สัญลักษณ์ต่าง ๆ แทนดังต่อไปนี้ ที่ ชื่อสัญลักษณ์ ภาพสัญลักษณ์ ความหมาย การกำหนดชื่อและการเขียน ภาพสัญลักษณ์ 1. การประมวลผล (Process) คือ การเปลี่ยนข้อมูลนำเข้ามาเป็นผลลัพธ์ นั่นหมายความว่า จะต้องมีการกระทำบางอย่างต่อข้อมูลทำให้เกิดผลลัพธ์ ควรมีความหมายที่แน่นอน หรือควรจะใช้คำกริยาที่มีการกระทำต่างๆ เช่น คำนวณ แก้ไข แสดงผล เป็นต้น ตัวอย่างเช่น คำนวณสี่เหลี่ยม , แสดงรูปสี่เหลี่ยม, แสดงผลลัพธ์ เป็นต้น 2. สิ่งที่อยู่นอกระบบ ( External ) สิ่งที่เราไม่สนใจการทำงานภายในของสิ่งที่อยู่นอกระบบ ถึงแม้ว่าจะมีการติดต่อผ่านทางข้อมูล การตั้งชื่ออาจจะเป็นตัวบุคคล หรือองค์กรต่างๆ หากไม่ทราบสิ่งที่อยู่นอกระบบ ให้กำหนดเป็นผู้ใช้งานทั่วไป (User) ก็ได้ การเขียนสิ่งที่อยู่นอกระบบอาจจะเป็นที่ส่งข้อมูลเข้าสู่ระบบ หรืออาจจะเป็นที่รับข้อมูลจากระบบก็ได้ 3. กระแสข้อมูล ( Data Flow ) ข้อมูลที่ไหลระหว่าง Process ต่าง ๆ และอาจเคลื่อนที่มาจาก External ก็ได้ การตั้งชื่อข้อมูลแต่ละอันหรือกลุ่มข้อมูล ควรจะมีชื่อของตัวเองที่ไม่เหมือนกัน ควรหลีกเลี่ยงใช้ชื่อที่กว้างเกินไป เช่น "ข้อผิดพลาด" เพราะว่าในระบบหนึ่งๆ อาจจะมี "ข้อผิดพลาด" เกิดขึ้นหลายๆ แห่ง เราควรใช้ชื่อเฉพาะเจาะจงมากกว่านี้ เช่น "เลขที่ลูกค้าไม่ถูกต้อง" "ไม่มีสินค้านี้ในคลัง" เป็นตัน รายละเอียดเหล่านี้ออกให้ชัดเจนการเขียน ข้อมูลที่ไหลไม่เหมือนกันควรเขียนแยกลูกศรด้วย ขั้นตอนการวิเคราะห์และออกแบบระบบเบื้องต้นในระดับภาพรวม (ในระดับมัธยมศึกษา ) 1.การวิเคราะห์ขอบเขตของระบบ 1.1 วิเคราะห์ขอบเขตของระบบ (Scope) คือ การกำหนดระบบงานหลักในภาพรวม หรือระบบงานกว้างๆ ว่าเราต้องจะทำอะไรที่มีจุดประสงค์เป็นอันหนึ่งอันเดียวกัน 1.2 วิเคราะห์สิ่งที่อยู่นอกระบบ (External ) คือ การวิเคราะห์องค์ประกอบที่อยู่นอกขอบเขตของระบบว่ามีองค์ประกอบใดบ้าง ซึ่งเราจะไม่สนใจการทำงานนอกระบบที่ไม่ต้องการ แต่องค์ประกอบเหล่านี้มีการติดต่อกันระหว่างระบบภายในระบบกับภายนอกระบบ หากเราไม่สามารถวิเคราะห์ External เนื่องจากขาดประสบการณ์ในการวิเคราะห์ระบบ อาจจะกำหนดให้ External นี้คือ ผู้ใช้งานทั่วไป (User) ก็ได้ 2. การออกแบบระบบ การเขียน DFD ของ Context Diagram หรือการเขียนขอบเขตของระบบ คือ การตั้งชื่อขอบเขตของระบบมากำหนดข้อมูล (Data) และสารสนเทศ (Information) ว่ามีการนำข้อมูลนำเข้ามาในระบบมีอะไรบ้าง และเมื่อข้อมูลนั้นผ่านกระบวนการต่างๆ แล้วจะออกมาเป็นผลลัพธ์อะไรบ้าง ในลักษณะสารสนเทศอย่างไร ดังรูปแบบการเขียนดังนี้




การวิเคราะห์และออกแบบระบบเพื่อนำมาใช้ในการออกแบบจอภาพของคอมพิวเตอร์ ความรู้เกี่ยวกับจอภาพของคอมพิวเตอร์ จอภาพของคอมพิวเตอร์เป็นไปได้ทั้งตัวรับข้อมูลและแสดงผลลัพธ์ จอภาพมีประโยชน์สำหรับแสดงผลลัพธ์ ในกรณีที่เราไม่ต้องการพิมพ์รายงานบนกระดาษ แต่ต้องการดูผลอะไร บางอย่าง เช่น ดูผลลัพท์ที่ได้จากการคำนวณหาพื้นที่สี่เหลี่ยมผืนผ้า เป็นต้น นอกจากนั้นปัจจุบันเราก็นิยมพิมพ์ข้อมูลเข้าหรืออินพุตผ่านทางหน้าจอ เช่น ป้อนข้อมูลความกว้าง ของพื้นที่สี่เหลี่ยมผืนผ้า เป็นต้น ปกติหน้าจอคอมพิวเตอร์มีขนาด 80*25 (25 บรรทัด บรรทัดละ 80 ตัวอักษร) ดังนั้นเราจะมีจำนวนจำกัดในการแสดงข้อความบนจอ หลักการออกแบบจอภาพเบื้องต้นสำหรับการเขียนโปรแกรมด้วยโปรแกรมแปลภาษาซี เนื่องจากการเรียนวิชาเขียนโปรแกรม 1 มีขอบเขตในการเรียนรู้เฉพาะในส่วนการรับข้อมูลผ่านคีย์บอร์ดและไม่สามารถแสดงผลในลักษณะกราฟิกหรือรูปภาพได้ จึงควรศึกษาหลักการออกแบบจอภาพตามลักษณะการแสดงผลดังนี้ - ในกรณีที่ต้องป้อนข้อมูลผ่านคีย์บอร์ด ถ้าโปรแกรมมีหลายทางเลือก ควรสร้างเมนูเป็นรายการต่างๆ หรือสร้างเงื่อนไขให้ผู้ใช้กดแป้นคีย์บอร์ดตามต้องการ เช่น โปรแกรมถามผู้ใช้งานว่า ต้องการออกจากโปรแกรมหรือไม่ ถ้าผู้ใช้กดแป้นคีย์ y หมายถึงออกจากโปรแกรม ถ้าผู้ใช้ไม่ต้องการออกจากโปรแกรมให้กดแป้นคีย์ n เป็นต้น - ในกรณีแสดงรูปภาพหรือภาพกราฟิก บางกรณีผู้เขียนโปรแกรมต้องการออกแบบหน้าจอให้มีการแสดงรูปภาพ หรือกราฟิก อาจจะสร้างสัญลักษณ์ต่างๆ มาประกอบกันเป็นรูปภาพได้ เช่น สร้างเครื่องหมายดอกจันเป็นรูปต่างๆ เป็นต้น - ในกรณีที่ต้องออกแบบจอภาพแบบซับซ้อน บางกรณีระบบงานบางระบบมีความซับซ้อนมาก เช่น มีเงื่อนไขจำนวนมาก นักเขียนโปรแกรมควรปรึกษากับนักวิเคราะห์ระบบเพื่อหาแนวทางการออกแบบที่ถูกต้องและเข้าใจตรงกัน บทสรุปเกี่ยวกับบทที่ 2 การวิเคราะห์และออกแบบระบบเบื้องต้น ความรู้ในการวิเคราะห์และออกแบบระบบมีความสำคัญ เพราะเป็นปัจจัยในการสร้างและพัฒนาระบบสารสนเทศ ทำให้เรารู้ถึงขอบเขตของงาน รู้ว่าเราจะทำอะไร มีความต้องการทำอะไรบ้างภายในขอบเขตของงานนั้น โดยเริ่มตั้งแต่การวิเคราะห์ขอบเขตของระบบ การเขียน Context Diagram เพื่อที่จะสามารถสื่อสารกับนักเขียนโปรแกรมได้อย่างเข้าใจ จนนำไปสู่การสร้างโปรแกรมได้ตามเป้าหมายและเป็นที่พอใจของผู้ใช้งาน บทส่งท้าย เนื้อหาในเรื่อง การวิเคราะห์และออกแบบระบบในระดับภาพรวมนี้ เป็นเนื้อหาอย่างง่ายในการศึกษาทำความเข้าใจเกี่ยวกับ SA เบื้องต้น เป็นพื้นฐานสำคัญในการเรียนเรื่องการวิเคราะห์และออกแบบระบบในระดับย่อย ที่มีความซับซ้อนในระดับสูงต่อไปในภาคเรียนที่ 2 ภาคปฏิบัติของการวิเคราะห์และออกแบบระบบในระดับภาพรวม ในส่วนของภาคปฏิบัติของการวิเคราะห์และออกแบบระบบเบื้องต้นนี้ จะยกตัวอย่างเป็นกรณีศึกษาปัญหาของระบบหาพื้นที่สี่เหลี่ยมผืนผ้า ดังต่อไปนี้ โจทย์ปัญหาของระบบ : ผู้ใช้งานมีปัญหาในการหาพื้นที่สี่เหลี่ยมผืนผ้า โดยการนำข้อมูลเกี่ยวกับความกว้างและความยาวมาใช้ในการประมวลผล 1.การวิเคราะห์ขอบเขตของระบบ 1.1 ขอบเขตของระบบ คือ คำนวณหาพื้นที่สี่เหลี่ยมผืนผ้า 1.2 นอกระบบ ได้แก่ ผู้ใช้งาน 2. การออกแบบระบบ ผลลัพธ์ของพื้นที่สี่เหลี่ยมผืนผ้า 2.1 การเขียน Context Diagram (วิเคราะห์ขอบเขตของระบบ)


3. การอธิบายขอบเขตและความต้องการของระบบหาพื้นที่สี่เหลี่ยมผืนผ้า 3.1 ขอบเขตของระบบใน DFD ของ Context Diagram อธิบายได้ว่า มีการรับข้อมูลความกว้างและความยาวเข้าไปในระบบหาพื้นที่สี่เหลี่ยมผืนผ้า จนได้ข้อสารสนเทศเป็นผลลัพธ์ของพื้นที่สี่เหลี่ยมผืนผ้า ตัวอย่างการออกแบบจอภาพของระบบหาพื้นที่สี่เหลี่ยมผืนผ้า

Program square Type width = 3 Type length = 5 Result area of square = 15

No comments: