วันเสาร์ที่ 7 มีนาคม พ.ศ. 2552

งานโปรเจค Channel and Source Coding:video coding

Project
Information Theory : Channel and Source Coding
Video Coding


กำหนดส่ง : Valentine (14 ก.พ. 52)

รายละเอียดของงาน : ให้นักศึกษาแบ่งกลุ่มทำ project เรื่อง Video Coding และจัดทำเอกสารเพื่อ Present เรื่องนี้ให้เพื่อนฟังในชั้นเรียน พร้อมทั้ง demoโปรแกรม Matlab

Video Coding
Video Coding คือ เทคโนโลยีการเข้ารหัสสัญญาณภาพเพื่อให้ข้อมูลอยู่ในรูปแบบที่มีคุณภาพ เป็นที่ยอมรับ และมีการบีบอัดข้อมูลให้มีขนาดเล็กลง(Compression) เพื่อความเร็วในการสื่อสารข้อมูล และสะดวกในการจัดเก็บ














































SA-Assignment 1

System Analysis Assignment 1

1. จงยกตัวอย่างระบบจริงๆมา 3 ระบบ และอธิบาย
1.1 ระบบงานธนาคาร Citibank and ATMs จากการที่เป็นรายแรกที่ติดตั้งตู้ ATMs ซิตี้แบงค์และธนาคารใหญ่ๆอีกหลายแห่งเกิดความได้เปรียบทางกลยุทธ์เหนือคู่แข่ง ATMs ดึงดูดใจลูกค้าจากสถาบันการเงินอื่นๆ จากการตัดต้นทุนที่เกี่ยวกับการให้บริการและเพิ่มความสะดวกสบายในการให้บริการนั่นเอง ATM ยังเป็นตัวอย่างของการทำให้เกิดความแตกต่างในผลิตภัณฑ์ นับตั้งแต่ธนาคารให้บริการในรูปแบบใหม่ๆขึ้นมา ATM กระตุ้นให้ต้นทุนของการแข่งขันเพิ่มขึ้น ซึ่งผลักดันให้ธนาคารขนาดเล็กที่ไม่มีทุนในการลงทุนติดตั้งเทคโนโลยีใหม่ๆ ให้มารวมกับธนาคารขนาดใหญ่กว่า ATM เป็นตัวแทนของรูปแบบการให้บริการทางธนาคารแบบใหม่ ที่น่าสนใจและสร้างความสะดวกสบายให้แก่ลูกค้า ดังนั้น เทคโนโลยีระบบสารสนเทศได้ถูกนำมาใช้ประโยชน์ในการพัฒนากลยุทธ์กระบวนการการให้บริการแก่ธนาคาร
1.2 ระบบงานของโรงพยาบาลใช้ซอฟต์แวร์ Hospital 2000 คือ ระบบคอมพิวเตอร์สำหรับงานโรงพยาบาลโดยเฉพาะ ซึ่งครอบคลุมระบบงานของโรงพยาบาลทั้งหมด ไม่ว่าจะเป็น ข้อมูลผู้ป่วย แพทย์ ระบบการเก็บเงิน ระบบบัญชี ระบบรังสีวิทยา ระบบข้อมูลปฏิบัติการ ระบบงานเภสัชกรรม ระบบลงทะเบียน ระบบรับ-ส่ง-ย้ายผู้ป่วย ใน ระบบคลินิก ระบบวอร์ด รวมทั้งระบบส่วนสำนักงาน ได้แก่ การจัดการ จัดซื้อ บัญชี การบริหารทรัพยากรบุคคล โดยระบบย่อยต่างๆ เหล่านี้ได้ถูกรวมเอาไว้ในระบบใหญ่เพียงระบบเดียว บนฐานข้อมูลเดียว และยังสามารถรองรับกับทุกภาษาในโลก ใช้ปฎิทินได้ทั้งในแบบคริสต์ศักราชและพุทธศักราช โดยได้ทำการติดตั้งครั้งแรกให้แก่โรงพยาบาลบำรุงราษฎร์ กรุงเทพฯ ตั้งแต่วันที่ 17 ธันวาคม 2542 เป็นต้นมา Hospital 2000 ทำงานบนแพลตฟอร์ม Microsoft Window 2000 , Microsoft SQL Server และ Windows NT โดยใช้เทคโนโลยีคลัสเตอร์ใน Windows 2000 เข้ามามีส่วนในการเพิ่มศักยภาพ และความน่าเชื่อถือให้กับระบบมากยิ่งขึ้น
1.3 ระบบงานบริษัท Chrysler ได้จัดการปรับปรุงกระบวนการพัฒนายานพาหนะให้ไปสู่กลุ่มทำงานแบบผสมผสานแนวนโยบาย (Multidisciplinary Platform Teams) โดยเชื่อมโยงติดต่อกันโดย CATIA Pipeline ซึ่งเป็นเครือข่ายสื่อสารระยะไกลที่เชื่อมโยงแทบจะทุกส่วนธุรกิจของบริษัท เข้ากับส่วนอื่นๆ รวมทั้งผู้จัดหาสินค้า และคู่สัญญาจากภายนอก ซอฟต์แวร์หลักที่ขับเคลื่อนข้อมูลผ่านทางเครือข่ายและจัดการฐานข้อมูล คือ CATIA (Computer-Aided Three-Dimensional Interactive Application) ซึ่งเป็นระบบสุดยอดที่รวมเอาการออกแบบด้วยคอมพิวเตอร์ การพัฒนา การประดิษฐ์ทางวิศวกรรม และการผลิต จาก Dassault Systems ของประเทศฝรั่งเศส ข้อมูลการผลิตจะถูกส่งต่ออย่างรวดเร็วจากทุกทิศทุกทาง เชื่อมโยงผู้จัดการ ผู้ออกแบบ วิศวกร ฝ่ายการตลาด ฝ่ายบริการทางเทคนิค ผู้จัดหาสินค้า และฝ่ายผลิตเข้าด้วยกัน


2. ระบบสารสนเทศ สำคัญต่อธุรกิจอย่างไร
เทคโนโลยีสารสนเทศ ปัจจัยขับเคลื่อนการปรับเปลี่ยนรูปแบบการดำเนินธุรกิจในช่วงทศวรรษ 1990บริษัทต่าง ๆ จำนวนมากได้ทุ่มเงินลงทุนในเทคโนโลยีสารสนเทศยุคใหม่ (New Information Technology: NIT) โดยมุ่งลงทุนในด้าน เว็บไซต์ โปรแกรมประยุกต์ที่ทันสมัย อุปกรณ์ช่วยในการประชุมทางไกล เครือข่ายสื่อสารไร้สาย ฯลฯ การลงทุน ดังกล่าว ได้ช่วยสร้างความสามารถในการแข่งขันที่ทัดเทียมคู่แข่งของบริษัท แต่อย่างไรก็ตาม ในปัจจุบัน เราพบว่าบริษัทต่าง ๆ จำนวนมาก มีความจำเป็นต้องพิจารณาอย่างรอบคอบในเทคโนโลยีที่จะลงทุน การพัฒนาเทคโนโลยีสารสนเทศยุคใหม่ ในวิถีทางที่สอดคล้องที่สุดต่อธุรกิจของบริษัท และวัตถุประสงค์ทางกลยุทธ์ รวมถึงการดำเนินงานทางการขายและการตลาดต่าง ๆ ด้วยเช่นกัน บริษัทหรือผลิตภัณฑ์ลักษณะใดที่จะสามารถใช้ประโยชน์จากการใช้งานเทคโนโลยีสารสนเทศยุคใหม่เหล่านี้ เราจะเห็นได้ว่ามีการจำหน่ายตั๋วหรือจองที่นั่งในเที่ยวบินผ่านระบบอินเทอร์เน็ตได้ ในขณะที่การขายรถยนต์และสินค้าแฟชั่น ยังไม่สามารถทำได้ในลักษณะเดียวกัน นอกจากนี้แล้ว บางครั้ง ตัวอย่างเช่น การใช้เทคโนโลยีสารสนเทศยุคใหม่ จะสามารถตัดขั้นตอนการมีคนกลางในระบบธุรกิจ เช่น บริษัทตัวแทนในการกระจายสินค้า ออกไปจากการดำเนินธุรกิจ (เราเรียกกรณีดังกล่าวว่า Classic Disintermediation) หรือ แทนที่จะตัดคนกลางออกไป ก็อาจเลือกแนวทางรวบรวมบริษัทคนกลางเหล่านั้นเข้ามาเป็นส่วนหนึ่งของระบบ (เรียกว่า Remediation) หรืออาจสร้างพันธมิตรและหุ้นส่วนทางกลยุทธ์กับบริษัทใหม่หรือบริษัทที่ดำเนินงานอยู่ เพื่อจัดการกับความสัมพันธ์ใหม่ที่เกิดขึ้นและมีความซับซ้อน (เรียกว่า Network-Based Mediation)
กลยุทธ์การรวมตัวในรูปแบบต่าง ๆ เหล่านี้ ขึ้นอยู่กับปัจจัยต่าง ๆ เช่น ความสามารถในการปรับแต่งได้ของผลิตภัณฑ์ (Product’s Customizability) และลักษณะของข้อมูลสารสนเทศที่เกี่ยวข้อง โดยการศึกษาทำความเข้าใจต่อปัจจัยขับเคลื่อนต่าง ๆ ของเทคโนโลยีสารสนเทศยุคใหม่ บริษัทต่าง ๆ จะสามารถเริ่มต้นคาดหมายการปรับเปลี่ยนที่มีแนวโน้มเกิดขึ้นได้ในอุตสาหกรรมของตน โดยเฉพาะอย่างยิ่ง ในแง่มุมด้านแนวทางการทำการตลาดและการขาย ในที่สุดแล้ว เราจำเป็นต้องพัฒนากรอบความคิดที่เป็นระบบที่จะระบุปัจจัยขับเคลื่อนที่สำคัญสำหรับกลยุทธ์ที่แตกต่างกันตามที่กล่าว ซึ่งอาจแบ่งได้เป็น 3 ลักษณะ คือ
1. Classic Disintermediation
2. Remediation
3. Network-Based Mediation
โดยการใช้แนวคิดนี้ บริษัทต่าง ๆ สามารถกำหนดแนวทางที่เหมาะสมกับการปรับเปลี่ยนธุรกิจและการลงทุนในเทคโนโลยีสารสนเทศยุคใหม่ ซึ่งจำเป็นต่อความสำเร็จในการเปลี่ยนแปลงดังกล่าวได้อย่างเหมาะสมปัจจัยขับเคลื่อนเทคโนโลยีสารสนเทศยุคใหม่
สรุปการนำเทคโนโลยีสารสนเทศไปใช้เพื่อทำให้เกิดกลยุทธ์ทางการ
1. กลยุทธ์ความเป็นผู้นำด้านราคา ช่วยในการลดต้นทุนการจัดซื้อ การผลิต
2.กลยุทธ์ด้านความแตกต่าง ช่วยเพิ่มส่วนแบ่งทางการตลาดให้เพิ่มสูงขึ้นลงทุนทาง IT เพื่อเป็นเหมือนกำแพงกั้นไม่ให้คนภายนอกวงการอุตสาหกรรมของตนเข้ามาเป็นคู่แข่ง
3.กลยุทธ์ด้านนวัตกรรม สามารถทำให้ธุรกิจเป็นเป็นผู้นำในตลาด ใช้ IT เป็นส่วนประกอบที่ทำให้สินค้าของบริษัทคู่แข่งที่จะเข้ามาแทนที่ในตลาดนั้น หมดความน่าสนใจ
4. กลยุทธ์ความเจริญเติบโต เป็นผู้นำในตลาด
5. กลยุทธ์ด้านพันธมิตร ลดต้นทุนด้านคลังสินค้า / เพิ่มการขาย ทำให้เกิดการค้าขายได้ทันทวงที ใช้ระบบสารสนเทศระหว่างองค์กรเพื่อสร้างกลไกราคาที่จะควบคุมลูกค้าและผู้จัดหาสินค้า


3. ระบบสารสนเทศชนิดใดที่ควรพัฒนาขั้นมาใช้งานก่อนเป็นลำดับแรก (ในกรณีองค์ยังไม่ระบบสารสนเทศใดเลย)
ระบบที่ควรพัฒนาขึ้นมาใช้งานก่อนเป็นลำดับแรก จะต้องเป็นระบบที่มีความสำคัญต่อธุรกิจมากที่สุดและเป็นระบบที่ทำรายได้ให้แก่บริษัท เช่น ระบบสารสนเทศด้านการตลาด โดยจะรับผิดชอบในการกระจายสินค้าและบริการไปสู่ลูกค้า ตั้งแต่การศึกษา และวิเคราะห์ความต้องการ การวางแผนและการสร้างความต้องการ ตลอดจนส่งเสริมการขายจนกระทั้งสินค้าถึงมือลูกค้า
สารสนเทศด้านการตลาดอาจจำแนกระบบย่อยได้ดังต่อไปนี้
3.1 ระบบสารสนเทศสำหรับการขาย
- ระบบสารสนเทศสำหรับสนับสนุนการขาย จะรวบรวมข้อมูลต่าง ๆ เพื่อสนับสนุนการดำเนินงานของฝ่ายขาย เพื่อให้การขายเป็นไปอย่างมีประสิทธิภาพ ซึ่งข้อมูลที่ระบบต้องการจะเกี่ยวกับผลิตภัณฑ์ที่จะทำการขาย รูปแบบ ราคา และการโฆษณาต่าง ๆ เพื่อดึงดูดความสนใจของลูกค้า นอกจากนี้อาจเกี่ยวกับช่องทางและ วิธีการขายสินค้าผ่านตัวแทนจำหน่ายในเรื่องของความสัมพันธ์ระหว่างบริษัทกับลูกค้า ตลอดจนคู่แข่งของผลิตภัณฑ์ที่จะขายและจำหน่ายสินค้าคงคลังของบริษัท
- ระบบสารสนเทศสำหรับวิเคราะห์การขาย จะรวบรวมสารสนเทศในเรื่องของกำไรหรือขาดทุนของผลิตภัณฑ์ ความสามารถของพนักงานขายสินค้า ยอดขายของแต่ละเขตการขาย รวมทั้งแนวโน้มการเติบโตของสินค้า ซึ่งสามารถหาข้อมูลได้จากรายงานต่าง ๆ เช่น รายงานการขาย รายงานของต้นทุนสินค้าและวัตถุดิบ เป็นต้น
- ระบบสารสนเทศสำหรับการวิเคราะห์ลูกค้า จะช่วยในการวิเคราะห์ลูกค้าเพื่อให้ทราบถึงรูปแบบของการซื้อและประโยชน์ที่ลูกค้าจะได้รับ เพื่อที่ธุรกิจจะสามารถให้บริการลูกค้าได้อย่างเหมาะสมและมีประสิทธิภาพ
3.2. ระบบสารสนเทศสำหรับการวิจัยตลาด สามารถแบ่งออกเป็นระบบย่อยตามหน้าที่ได้ 2 ระบบ ดังต่อไปนี้
- ระบบสารสนเทศสำหรับการวิจัยลูกค้า การวิจัยลูกค้าจะต่างกับการวิเคราะห์ลูกค้าตรงที่ว่าการวิจัยลูกค้าจะมีขอบเขต ของการใช้สารสนเทศกว้างกว่าการวิเคราะห์ลูกค้า โดยการวิจัยลูกค้าจะต้องการทราบสารสนเทศ ที่เกี่ยวกับลูกค้าในด้านสถานะทางการเงิน การดำเนินธุรกิจ ความพอใจ รสนิยมและพฤติกรรมการบริโภค
- ระบบสารสนเทศสำหรับการวิจัยตลาด การวิจัยตลาดจะให้ความสำคัญกับการหาขนาดของตลาดของแต่ละผลิตภัณฑ์ที่จะนำออกจำหน่าย ซึ่งอาจครอบคลุมทั้งในระยะสั้นและระยะยาว หลังจากนั้นก็จะกำหนดส่วนแบ่งตลาดของผลิตภัณฑ์เพื่อทำการวางแผน กำหนดเป้าหมาย กำหนดกลยุทธ์และวางแผนกลยุทธ์ สารสนเทศที่เป็นที่ต้องการของการวิจัยตลาดคือสภาวะและแนวโน้มทาง เศรษฐกิจ ยอดขายในอดีตของอุตสาหกรรมหรือผลิตภัณฑ์ชนิดเดียวกันในตลาด รวมทั้งสภาวะการแข่งขันของผลิตภัณฑ์นี้ด้วย
3.3 ระบบสารสนเทศสำหรับการส่งเสริมการขาย เป็นระบบที่ให้ความสำคัญกับแผนงานทางด้านการโฆษณาและส่งเสริมการขาย โดยมีวัตถุประสงค์เพื่อส่งเสริมการขาย เพิ่มยอดขายสินค้า และเพิ่มส่วนแบ่งการตลาดให้สูงขึ้น สารสนเทศที่เป็นที่ต้องการคือยอดขายของสินค้าทุกชนิดในบริษัท เพื่อให้รู้ว่าสินค้าใดต้องการแผนการส่งเสริมการขาย และสารสนเทศที่เกี่ยวกับผลกำไรหรือขาดทุนของสินค้าแต่ละชนิด เพื่อให้ความสำคัญกับสินค้าตัวที่ทำกำไร
3.4 ระบบสารสนเทศสำหรับการพัฒนาผลิตภัณฑ์และบริการ เป็นระบบสารสนเทศที่วิเคราะห์ถึงความเป็นไปได้ของผลิตภัณฑ์ใหม่ ๆ ลักษณะและความต้องการของลูกค้าต่อผลิตภัณฑ์ใหม่ หรือผลิตภัณฑ์ที่เป็นที่ต้องการของลูกค้าแต่ยังไม่มีตลาด โดยสารสนเทศที่เป็นที่ต้องการของระบบได้แก่ ยอดขายของผลิตภัณฑ์ประเภทเดียวกันในอดีต เพื่อให้ทราบถึงขนาดและลักษณะของตลาด และการประมาณการต้นทุน เพื่อตอบคำถามให้ได้ว่าสมควรที่จะออกผลิตภัณฑ์ใหม่หรือไม่
3.5 ระบบสารสนเทศสำหรับพยากรณ์การขาย เป็นระบบที่ใช้ในการวางแผนการขาย แผนการทำกำไรจากสินค้าหรือบริการในช่วงเวลาใดเวลาหนึ่งของบริษัท ซึ่งจะส่งผลไปถึงการวางแผนการผลิต การวางกำลังคน และงบประมาณที่จะใช้เกี่ยวกับการขาย โดยสารสนเทศที่เป็นที่ต้องการคือ ยอดขายในอดีต สถานะของคู่แข่งขัน สภาวการณ์ของตลาด และแผนการโฆษณา
3.6 ระบบสารสนเทศสำหรับการวางแผนกำไร เป็นระบบสารสนเทศที่ให้ความสำคัญกับการวางแผนทำกำไรทั้งในระยะสั้นและระยะยาวของธุรกิจ โดยสารสนเทศที่เป็นที่ต้องการคือสารสนเทศจากการวิจัยตลาด ยอดขายในอดีต สารสนเทศของคู่แข่งขัน การพยากรณ์การขาย และการโฆษณา
3.7 ระบบสารสนเทศสำหรับการกำหนดราคา การกำหนดราคาของสินค้านับว่าเป็นจิตวิทยาอย่างหนึ่งทางการตลาด เพราะต้องคำนึงถึงความต้องการของลูกค้า คู่แข่งขัน กำลังซื้อของลูกค้า โดยปกติแล้วราคาสินค้าจะตั้งจากราคาต้นทุนรวมกับร้อยละของกำไรที่ต้องการ โดยสารสนเทศที่ต้องการได้แก่ ตัวเลขกำไรของผลิตภัณฑ์ในอดีต เพื่อทำการปรับปรุงราคาให้ได้สัดส่วนของกำไรคงเดิม ในกรณีที่ต้นทุนมีการเปลี่ยนแปลง
3.8 ระบบสารสนเทศสำหรับการควบคุมค่าใช้จ่าย บุคคลที่เป็นผู้ควบคุมค่าใช้จ่ายสามารถควบคุมได้โดยดูจากรายงานของผลการทำกำไร กับค่าใช้จ่ายที่เกิดขึ้นจริงหรือสาเหตุของการคลาดเคลื่อนของค่าใช้จ่าย ค่าใช้จ่ายที่เกี่ยวกับการขายรวมถึงค่าใช้จ่ายต่าง ๆ เช่น เงินเดือน ค่าโฆษณา ค่าส่วนแบ่งการขาย เป็นต้น

4. ค้นหาข้อมูลที่เกี่ยวกับบริษัทที่ให้คำปรึกษาด้านการพัฒนาระบบสารสนเทศและบริษัทที่จำหน่าย ERP ในปัจจุบันมีบริษัทใดบ้าง
บริษัทที่จำหน่าย ERP ได้แก่ บริษัทเอ็กซ์เพรสฯ ก่อตั้งขึ้นด้วยกลุ่มนักบัญชีและนักคอมพิวเตอร์ซึ่งมีแนวความคิดตรงกัน คือต้องการพัฒนาโปรแกรมบัญชี ให้มีความสมบูรณ์พร้อมที่จะรองรับงานบัญชี และมีความยืดหยุ่นสำหรับการ ใช้งานในระบบบัญชีของธุรกิจ ทั่วๆ ไป โดยเริ่มจากการรับจ้างพัฒนาโปรแกรมให้กับบริษัทต่างๆ ในลักษณะของ งานเฉพาะด้าน (TAILORMADE) อาทิ เช่น 1. ระบบควบคุมสินค้าคงคลัง 2. ระบบบัญชีแยกประเภท 3. ระบบเจ้าหนี้ 4. ระบบลูกหนี้ ฯลฯ ซึ่งโปรแกรมที่พัฒนาให้กับลูกค้าหลายๆ รายนี้เป็นพื้นฐานส่วนหนึ่ง ให้กับโปรแกรมของบริษัทฯ มีความรู้และความเข้าใจในระบบบัญชีต่างๆ มากยิ่งขึ้นโดยใช้ระยะเวลาถึง 3 ปี ในการเสริมสร้างประสบการณ์ เมื่อ มีความพร้อมทั้งความรู้ และประสบการณ์ตลอดจนถึงแนวความคิดแล้ว บริษัทฯ จึงมีความคิด ที่จะพัฒนาโปรแกรมบัญชีสำเร็จรูป โดยวางแนวทางในการพัฒนาไว้ดังนี้ คือ
1. แสดงผลเป็นภาษาไทยทั้งหมด
2. ง่ายต่อการใช้งาน
3. มีความเหมาะสมสำหรับธุรกิจในประเทศไทย
4. ลดความซ้ำซ้อนของการทำงาน
5. มีความยืดหยุ่นเพื่อสามารถนำไปใช้งาน ได้อย่างกว้างขวาง
6. มีการพัฒนาต่อเนื่องตลอดเวลา
7. สามารถใช้งานได้จริง
จากแนวทางดังกล่าวบริษัทฯ ได้พัฒนาโปรแกรมบัญชีสำเร็จรูปขึ้นมา เรียกว่า "ระบบบัญชีสำเร็จรูป Express" โดยใช้เวลาในการพัฒนา 6 เดือน หลังจากพัฒนาเสร็จแล้วบริษัทฯ ยังไม่นำออกจำหน่ายทันทีแต่ใช้ระยะเวลาอีก 3 เดือนในการทดสอบ และปรับปรุงแก้ไขโดยส่งโปรแกรม Expressให้ลูกค้าใช้กับงานจริงเพื่อให้เกิดความมั่นใจว่าเมื่อวางจำหน่าย Express ให้กับลูกค้าแล้วจะต้องสามารถใช้งานได้จริง บริษัทฯ มีความ ภาคภูมิใจเป็นอย่างยิ่งภายในระยะเวลา 10 กว่าปีที่บริษัทฯ จำหน่ายระบบบัญชีสำเร็จรูป Express ได้รับความ ไว้วางใจจากเจ้าของกิจการ ตลอดจนพนักงานบัญชีเป็นอย่างมาก โดยปัจจุบันมีผู้ใช้งาน Express เป็น จำนวนกว่า 20,000 ราย ปรัชญาในการดำเนินธุรกิจของบริษัทฯ คือการบริการหลังการขายแก่ลูกค้าให้ดีที่สุด และพัฒนาโปรแกรมอย่างต่อเนื่อง ให้ทันต่อความต้องการของผู้ใช้งานดังนั้นบริษัทฯ จึงจัดเตรียมพนักงาน บริการที่ให้คำปรึกษาแนะนำกว่า 30 คน เพื่อให้ลูกค้าสามารถติดต่อสอบถามวิธีการใช้งานตลอดจนถึง ปัญหาในการใช้งานตลอดอายุการใช้งาน

แผนที่ บริษัทเอ็กซ์เพรสฯ

วันศุกร์ที่ 20 กุมภาพันธ์ พ.ศ. 2552

SA-Assignment 8 Maintenance

System Analysis Assignment 8
การพัฒนา ติดตั้ง และการซ่อมบำรุง
รายละเอียดของงาน : ให้นักศึกษาตอบคำถามจากโจทย์ที่ให้ มีรายละเอียดดังนี้

1. หากองค์กรซื้อซอฟต์แวร์สำเร็จรูปมาใช้งาน มีวิธีปรับแก้อย่างไรให้เข้ากับระบบองค์กร
กรณีที่องค์กรเลือกซื้อซอฟต์แวร์สำเร็จรูปมาใช้ในระบบงานใหม่ ก่อนที่จะมีการติดตั้งระบบโปรแกรมเมอร์จะต้องพิจารณาว่าซอฟต์แวร์ที่ซื้อมานั้น จะต้องได้รับการแก้ไขอย่างไรจึงจะมีลักษณะการทำงานที่ตรงกับความต้องการขององค์กร การแก้ไขซอฟต์แวร์ที่ซื้อมาสามารถจำแนกได้ 3 ลักษณะดังต่อไปนี้
1.1 การปรับฟังก์ชันการทำงานของซอฟต์แวร์สำเร็จรูป (Customize Packages) เป็นการปรับเพิ่มหรือลดฟังก์ชันการทำงานของซอฟต์แวร์ที่ซื้อมา ให้สามารถทำงานได้เหมาะสมกับระบบที่กำลังพัฒนา โดยการเพิ่มหรือลดฟังก์ชัน มี 3 ลักษณะดังนี้
- Configuration เป็นการ เพิ่ม/ลด ฟังก์ชันโดยการปรับแต่งคุณสมบัติหรือค่าพารามิเตอร์ต่าง ๆ ของซอฟต์แวร์ที่ซื้อมาเพื่อให้รูปแบบการทำงานเหมาะกับระบบงานขององค์กร เช่น การเลือกรูปแบบของ Interface จากค่า Configuration ที่ซอฟต์แวร์มีให้ เป็นต้น
- Modification เป็นการ เพิ่ม/ลด ฟังก์ชันโดยการเปลี่ยนแปลง code ของซอฟต์แวร์ที่ซื้อมา เพื่อให้มีรูปแบบการทำงานที่เหมาะสมกับระบบงานขององค์กร การแก้ไขซอฟต์แวร์สำเร็จรูปลักษณะนี้ จะต้องอาศัยโปรแกรมเมอร์ที่มีความชำนาญเป็นพิเศษ เนื่องจากซอฟต์แวร์สำเร็จรูปบางชนิดไม่อนุญาตให้มีการแก้ไข code หรือหากอนุญาตให้แก้ไขก็จะมีเงื่อนไขคือ จะไม่รับผิดชอบต่อความเสียหายที่อาจจะเกิดขึ้น และข้อเสียของ Modification คือเมื่อแก้ไข code ไปแล้วจะทำให้เกิดปัญหาในการ upgrade software จากทางผู้ขาย
- Enhancement เป็นการเพิ่มฟังก์ชันโดยการเพิ่มโมดูลการทำงานของซอฟต์แวร์ที่ซื้อมา การ Customize ซอฟต์แวร์สำเร็จรูปในลักษณะนี้ไม่ใช่การแก้ไข code แต่เป็นการเพิ่มฟังก์ชั่นการทำงานเข้าไปในซอฟต์แวร์
1.2 การประสานซอฟต์แวร์สำเร็จรูป (Integration Packages) เป็นการประสานซอฟต์แวร์สำเร็จรูปในงานเฉพาะด้านของแต่ละหน่วยงานเข้าด้วยกัน ให้สามารถทำงานร่วมกันได้ แต่เดิมซอฟต์แวร์สำเร็จรูปอาจนำมาใช้งานในแต่ละแผนกแตกต่างไป การจัดเก็บข้อมูลเป็นลักษณะเอกเทศ เมื่อมีการพัฒนาระบบจึงต้องการให้ใช้ข้อมูลร่วมกันได้จากทุกแผนก ทำให้ได้ข้อมูลที่มีรูปแบบเป็นมาตรฐานเดียวกัน
การประสานงานซอฟต์แวร์สำเร็จรูปเฉพาะด้านให้ทำงานร่วมกันได้ในองค์กรเรียกอีกอย่างหนึ่งว่า “EAI (Enterprise Application Integration)” เป็นกระบวนการที่ใช้เชื่อมโยงแต่ละหน่วยการทำงานขององค์กร ทั้งหน่วยการทำงานทางธุรกิจและสารสนเทศให้สามารถทำงานร่วมกันได้โดยเลือกใช้วิธีการ 2 วิธีคือ
1.2.1 ใช้ Middleware ในการเชื่อมโยงการทำงานของซอฟต์แวร์แต่ละชุด
(Middleware หมายถึง ซอฟต์แวร์อรรถประโยชน์ที่มีลักษณะเป็นกึ่งโปรแกรมประยุกต์และกึ่งโปรแกรมระบบหรือที่เรียกว่า Utility Software ที่คอยเชื่อมการทำงานร่วมกันระหว่างเทคโนโลยีที่แตกต่างกันได้ ตัวอย่างเช่น ODBC Driver,CORBA และ DCOM เป็นต้น)
1.2.2 จัดซื้อซอฟต์แวร์ ERP ที่เตรียม Middleware มาให้พร้อมแล้ว
(ERP (Enterprise Resource Planning) คือ กระบวนการในการใช้ซอฟต์แวร์เพื่อเชื่อมโยงการทำงานในแต่ละหน่วยงานขององค์กร เพื่อปรับปรุง พัฒนาประสิทธิภาพและประสิทธิผลขององค์กร)
1.3 การอัพเกรดซอฟต์แวร์สำเร็จรูป (Upgrading Packages) การอัพเกรดซอฟต์แวร์สำเร็จรูปจากผู้ผลิต อาจมีหลายลักษณะ เช่น เพิ่มประสิทธิภาพ แก้ไขข้อผิดพลาดที่พบจากซอฟต์แวร์รุ่นก่อนหน้า เป็นต้น อย่างไรก็ตามหากซอฟต์แวร์สำเร็จรูปที่ซื้อมานั้นถูก Customize หรือ Integrate ไปแล้ว จะทำให้การ upgrade ยุ่งยากขึ้นจนอาจไม่สามารถ upgrade ได้เลย ดังนั้น ก่อนที่จะมีการแก้ไขซอฟต์แวร์สำเร็จรูปเพื่อการติดตั้งระบบ ควรมีการวางแผนอย่างรอบคอบเพื่อป้องกันการเกิดปัญหาลักษณะนี้
ดังนั้น การปรับแก้ซอฟต์แวร์สำเร็จรูปจะต้องอาศัยปัจจัยหลายประการเป็นสำคัญไม่ว่าจะเป็น
- ความต้องการของระบบในซอฟต์แวร์สำเร็จเป็นอย่างไร
- สามารถที่จะมาปรับใช้กับองค์กรได้หรือไม่
- ค่าใช้จ่ายที่เกิดขึ้นเป็นอย่างไร มากพอจะลงทุนทำการปรับแก้หรือไม่
สิ่งเหล่านี้เป็นสิ่งที่องค์กรต้องนำมาพิจารณาเป็นพิเศษ และที่สำคัญเมื่อมีการแก้ไขระบบแล้ว ผลกระทบต่อ business flow ของระบบจะเป็นอย่างไร เกิดผลกระทบต่อระบบมากน้อยเพียงใด สิ่งที่กล่าวมาทั้งหมดล้วนสำคัญต่อการปรับเปลี่ยนซอฟต์แวร์สำเร็จรูป

2. Inspection กับ Walkthrough ต่างกันอย่างไร
Inspection กับ Walkthrough เป็นการทดสอบที่ไม่ใช้คอมพิวเตอร์สร้างกรณีทดสอบ (Test Case) โดยมีข้อแตกต่างกันดังนี้
- Inspection เป็นการทดสอบที่เป็นทางการ โดยทีมงานที่รับผิดชอบจะต้องตรวจสอบ code โปรแกรมทันทีที่โปรแกมนั้นมีข้อผิดพลาดหลัก ๆ นั้นเกิดขึ้นหรือไม่ ข้อผิดพลาดหลักดังกล่าว คือข้อผิดพลาดที่อาจเกิดขึ้นตามที่ภาษาโปรแกรมมิ่งแต่ละผลิตภัณฑ์ ได้กำหนดไว้ในคู่มือ ทีมงานจะจัดทำรายการข้อผิดพลาดดังกล่าว แล้วตรวจสอบว่าโปรแกรมมีข้อผิดพลาดข้อใดบ้างทีละรายการ
- Walkthrough เป็นการทดสอบที่ไม่เป็นทางการ โดยทีมงานจะตรวจสอบ code โปรแกรมทันทีที่โปรแกรมนั้นมีความคืบหน้า และการตรวจสอบจะเกิดขึ้นบ่อยครั้งจนกว่าโปรแกรมจะเสร็จสิ้น ดังนั้น Walkthough จึงเป็นการตรวจสอบที่จะต้องจัดให้มีขึ้นก่อนการทดสอบแบบเป็นทางการ โดยมีวัตถุประสงค์เพื่อ “ตรวจหาข้อผิดพลาด (Detect Error) ” มากกว่าการแก้ไขข้อผิดพลาด ทั้งนี้เพื่อลดจำนวนข้อผิดพลาด และไม่ให้โปรแกรมเมอร์ใช้เวลาไปกับการค้นหาข้อผิดพลาดด้วยตนเองมากเกินไป

3. Acceptance Testing คืออะไร มีอะไรบ้าง อธิบาย
- การทดสอบการยอมรับระบบจากผู้ใช้ (Acceptance Testing) เป็นการทดสอบระบบในสภาพแวดล้อมจริง โดยมีผู้ใช้ระบบเป็นผู้ทดสอบและตัดสินใจว่าจะยอมรับระบบนั้นหรือไม่ วัตถุปรสงค์ของการทดสอบการยอมรับ เพื่อให้ผู้ใช้พิจารณาว่าระบบที่พัฒนาขึ้นมานั้นตรงตามความต้องการหรือไม่
การทดสอบการยอมรับ แบ่งป็น 2 ประเภท ได้แก่
3.1 Alpha Testing เป็นการทดสอบโดยใช้ข้อมูลสมมติ และทดสอบในสถานที่จำลอง (ไม่ใช่สถานที่ใช้งานจริง) การทดสอบชนิดนี้จะทำให้ทราบว่าระบบมีข้อผิดพลาดใดเกิดขึ้นบ้าง แบ่งออกเป็น 4 ชนิดย่อยดังนี้
3.1.1 Recovery Testing เป็นการทดสอบความสามารถในการกู้คืนระบบเมื่อระบบล่ม โดยระบบที่ดีจะต้องสามารถทำงานต่อไปได้และต้องทนต่อความผิดพลาด (Fault Tolerance) ได้ กล่าวคือ เมื่อเกิดความล้มเหลวในส่วนใดส่วนหนึ่ง จะต้องไม่ส่งผลให้ระบบหยุดการทำงานทั้งหมด ดังนั้นในการทดสอบชนิดนี้ทีมงานจึงต้องทำให้ระบบล้มเหลวในสถานการณ์ต่าง ๆ ให้มากที่สุด เพื่อหาความล้มเหลวที่อาจเกิดขึ้นได้ และตรวจสอบระยะเวลาการกู้คืนของระบบในแต่ละสถานการณ์ ไม่ว่าจะเป็นการกู้คืนข้อมูล ตลอดจนการรีสตาร์ทระบบใหม่
3.1.2 Security Testing เป็นการทดสอบความมั่นคงของระบบว่าระบบสามารถสร้างความมั่นคงให้กับข้อมูลได้หรือไม่ กรณีที่มีการลักลอบเข้ามาใช้ข้อมูล และสถานการณ์อื่นๆ ที่เป็นภัยต่อข้อมูล โดยอาจพิจารณาจากเครื่องมือหรือกลไกที่ระบบใช้รักษาความมั่นคง เช่น firewall, การเข้ารหัส, การตรวจสอบเอกลักษณ์บุคคล เป็นต้น
3.1.3 Stress Testing เป็นการทดสอบการทำงานของระบบเมื่ออยู่ภายใต้สถานการณ์ที่ตึงเครียด โดยภาวะตึงเครียดอาจเกิดจากการใช้งานระบบมากเกินไป ทำให้ระบบต้องใช้ทรัพยากรต่างๆ เช่น หน่วยความจำ, เนื้อที่จัดเก็บข้อมูล หรือ ความเร็วในการประมวลผล มากเกินไปด้วย ทีมงานจะสร้างสถานการณ์ให้ระบบมีความตึงเครียดมากที่สุด เพื่อดูผลการตอบสนองของระบบ
3.1.4 Performance Testing เป็นการทดสอบสมรรถนะด้านต่าง ๆ ของระบบที่ยอมรับได้หรือไม่ เช่น ระยะเวลาตอบสนองการทำงาน, การจัดสรรเนื้อที่จัดเก็บข้อมูล, การจัดสรรหน่วยความจำหลัก เป็นต้น ระบบที่ดีจะต้องสร้างกลไกการบันทึกค่าสมรรถนะการทำงานด้านต่าง ๆ ไว้ด้วย เช่น การสร้าง Log File เป็นต้น
3.2 Beta Testing เป็นการทดสอบระบบในสถานที่จริง มีผู้ใช้เป็นผู้ทดสอบ และใช้ข้อมูลจริงทั้งหมดในการทดสอบ การทดสอบประเภทนี้ถือว่าเป็นการซ้อมติดตั้งระบบเพื่อใช้งานจริง เนื่องจากเป็นการทดสอบระบบในสภาพแวดล้อมจริงทุกประการ ดังนั้น จึงอาจพบข้อผิดพลาดได้มากกว่าการทดสอบแบบ Alpha และสามารถดูผลที่ได้จากการแก้ไขข้อผิดพลาดเมื่อครั้งทดสอบแบบ Alpha ได้อีกด้วย

4. การจัดการ การบำรุงรักษาระบบ ทีมงานจะต้องจัดการงานด้านใดบ้างอย่างไร
การจัดการการบำรุงรักษา (Maintenance Management) จะช่วยให้กระบวนการบำรุงรักษาระบบ มีประสิทธิภาพ และมีต้นทุนที่ไม่สูงเกินไป โดยการจัดการบำรุงรักษาระบบ มีประสิทธิภาพ และมีต้นทุนที่ไม่สูงเกินไป โดยการจัดการการบำรุงรักษาจะต้องดูแลงานทั้งหมด 3 ด้านดังนี้
4.1 บุคลากรในทีมงานบำรุงรักษา (Maintenance Personnel Management) องค์กรอาจจะต้องพิจารณาตัดสินใจว่าจะแยกทีมพัฒนาระบบ ออกจากทีมงานซ่อมบำรุงระบบ หรือกำหนดให้เป็นทีมเดียวกัน ซึ่งขึ้นอยู่กับสถานการณ์ของแต่ละองค์กรว่าจะตัดสินใจเลือกแนวทางใด ที่จะทำให้การซ่อมบำรุงระบบนั้นมีประสิทธิภาพมากที่สุดประกอบกับโปรแกรมเมอร์ผู้เชี่ยวชาญบางคน ถนัดพัฒนาโปรแกรมมากกว่าแก้ไขโปรแกรมที่เขียนขึ้นโดยโปรแกรมเมอร์คนอื่น ดังนั้น จึงขึ้นอยู่กับองค์กรเองว่าจะบริหารงานบุคลากรด้านนี้อย่างไร ให้การบำรุงรักษาระบบมีประสิทธิภาพมากที่สุดตามความเหมาะสมกับสถานการณ์ขององค์กร
4.2 การประเมินผลประสิทธิภาพในการบำรุงรักษา (Maintenance Effective Measurement) การประเมินผลการประเมินบำรุงรักษาระบบ สามารถประเมินได้จากหลักเกณฑ์ดังต่อไปนี้
4.2.1 จำนวนข้อผิดพลาดที่เกิดขึ้น
4.2.2 ระยะห่างระหว่างข้อผิดพลาดที่เกิดขึ้นแต่ละครั้ง
4.2.3 ชนิดของข้อผิดพลาด
การประเมินจำนวนข้อผิดพลาดที่เกิดขึ้น มีความสัมพันธ์กับระยะห่างของเวลาที่เกิดข้อผิดพลาดแต่ละครั้ง กล่าวคือ การบำรุงรักษาระบบที่ดีนั้นหลังจากเริ่มต้นบำรุงรักษาระบบแบบ corrective แล้ว จำนวนของข้อผิดพลาดจะต้องลดลง และระยะห่างของเวลาที่เกิดข้อผิดพลาดจากจุดหนึ่งไปยังอีกจุดหนึ่ง จะต้องยาวนานขึ้น จึงจะถือว่าการบำรุงรักษาระบบนั้นได้ผลและมีประสิทธิภาพ นอกจากนี้การบำรุงรักษาระบบที่ดี เมื่อเกิดข้อผิดพลาดชนิดใดขึ้นแล้ว จะต้องไม่เกิดข้อผิดพลาดชนิดนั้นซ้ำอีกเมื่อเวลาผ่านไป
4.3 การควบคุมการร้องขอให้ปรับปรุงระบบ (Maintenance Request Control) เป็นงานสำคัญของการจัดการการบำรุงรักษาระบบ เนื่องจากบางองค์กรที่มีผู้ใช้งานหลายกลุ่ม จะร้องขอให้ปรับปรุงระบบมากมาย แตกต่างกันไปดังนั้น ทีมงานต้องพิจารณาว่า การร้องขอจากผู้ใช้กลุ่มใดที่จำเป็นมากที่สุด หรือการร้องขอให้แก้ไขข้อผิดพลาดใดที่เร่งด่วนที่สุด
องค์กรจึงต้องมีกระบวนการในการพิจารณาคัดเลือกการร้องขอเหล่านั้น ซึ่งอาจจะพิจารณาคำร้องขอ.ห้แก้ไขข้อผิดพลาดที่ร้ายแรงก่อน จึงพิจารณาคำร้องขอให้ปรับปรุงระบบหรือเพื่อการดัดแปลงระบบ องค์กรและทีมงานจะต้องพิจารณาว่าการดัดแปลงนั้นจะมีผลกระทบต่อขั้นตอนการทำงาน และเงื่อนไขในการดำเนินธุรกิจ มากน้อยเพียงใด โดยอาจจะเริ่มจากการประเมินผลกระทบเหล่านั้น อย่างไรก็ตาม กระบวนการพิจารณาคำร้องขอต่าง ๆ ควรมีการวิเคราะห์ถึงความเสี่ยง และความเป็นไปได้ของการปรับปรุงแต่ละโครงการอย่างรอบคอบด้วย
กระบวนการบำรุงรักษาระบบมีทั้งหมด 4 ขั้นตอนดังนี้
1. เก็บรวบรวมคำร้องขอให้ปรับปรุงระบบ องค์กรจะต้องจัดเตรียมแบบฟอร์มการร้องขอให้ปรับปรุงระบบ ซึ่งอาจแตกต่างกันไปในแต่ละองค์การ หรือ อาจจะให้แบบฟอร์มเดียวกันเพื่อขอให้พัฒนาระบบใหม่ โดยผู้ใช้จะระบุถึงปัญหาที่เกิดขึ้น ซึ่งเป็นสาเหตุให้ต้องมีการปรับปรุงระบบ
2 วิเคราะห์ข้อมูลเพื่อการปรับปรุง ทีมงานจะข้อมูลการร้องขอให้ปรับปรุงระบบมาวิเคราะห์
เพื่อความเข้าใจปัญหา และจะประเมินถึงผลกระทบที่จะเกิดขึ้น กับระบบ
3. ออกแบบการทำงานที่ต้องการปรับปรุง รวมถึงโมดูลอื่นๆ ที่ได้รับผลกระทบทั้งหมด แก้ไข
เอกสารทั้งหมดที่เกี่ยวข้องกับโมดูลที่ได้รับผลกระทบ ออกแบบกรณีทดสอบสำหรับโมเดลใหม่ที่ผ่านการแก้ไขแล้ว พิจารณาเอกสารข้อกำหนดความต้องการเพื่อปรับปรุงให้ตรงกับรุ่นของระบบ และปรับปรุงรายการซ่อมบำรุง
4. ปรับปรุงระบบ ทีมงานจะเริ่มดำเนินการแก้ไขโค้ดโปรแกรมในส่วนที่ได้รับผลการะทบทีละส่วนแล้วนำมาประสานเข้าด้วยกันเพื่อทดสอบการทำงานตามเทคนิคที่ได้กำหนดไว้ในขั้นตอนการวิเคราะห์ระบบสิ่งที่ได้จาการบำรุงรักษาระบบ คือ ระบบที่ถูกปรับปรุงแล้ว ซึ่งไม่ว่าจะเป็นการปรับปรุงครั้งที่เท่าใดก็ตาม สิ่งที่นักวิเคราะห์ระบบและทีมงานควรคำนึงถึงเสมอ คือ จะต้องปรับปรุงชุดเอกสารระบบ (System Document ) และเอกสารผุ้ใช้ (User Document) ให้เป็นปัจจุบันเสมอ
การบำรุงรักษาระบบ (System maintenance) การบำรุงรักษาระบบเป็นกิจกรรมที่สำคัญอย่างหนึ่งเพื่อให้ระบบทำงานได้อย่างต่อเนื่องตามที่ต้องการ แนวทางในการบำรุงรักษาระบบนั้นที่นิยมใช้มี 4 แนวทางดังนี้
1. การบำรุงรักษาเพื่อให้มีความถูกต้องเสมอ (Corrective maintenance) คือ การบำรุงรักษาและแก้ไขข้อผิดพลาดของระบบที่อาจเกิดจากการออกแบบระบบ การเขียนโปรแกรม และการติดตั้งเพื่อการใช้งาน
2. การบำรุงรักษาเพื่อปรับเปลี่ยนตามความเปลี่ยนแปลง(Adaptive maintenance) คือ การบำรุงรักษาเพื่อปรับเปลี่ยนระบบตามความเปลี่ยนแปลงของข้อมูลและความต้องการของผู้ใช้
3. การบำรุงรักษาเพื่อให้ระบบทำงานมีประสิทธิภาพสูงสุด(Perfective maintenance) คือการบำรุงรักษาระบบโดยการปรับปรุงให้ระบบทำงานได้โดยมีประสิทธิภาพสูง และตอบสนองความต้องการของผู้ใช้ได้
4. การบำรุงรักษาเพื่อการป้องกัน (Preventive maintenance) คือ การบำรุงรักษาและการตรวจสอบระบบโดยสม่ำเสมอเพื่อป้องกันไม่ให้เกิดปัญหาที่คาดว่าจะเกิดขึ้น
การจัดการ การบำรุงรักษาระบบ ทีมงานจะต้องจัดการงาน ดังต่อไปนี้
1. การทำความเข้าใจโปรแกรม (Program Comprehension) ต้องทำความเข้าใจกับระบบให้มากเพื่อการบำรุงรักษาที่ง่าย โดยเฉพาะโปรแกรมเมอร์ทั้งในการอ่านและทำความเข้าใจในโปรแกรมและระบบ เพื่อนทำการเปลี่ยนแปลงโค้ดโปรแกรม เครื่องมือสำคัญที่จะนำมาใช้เป็นเครื่องมือสำหรับการทำความเข้าใจโปรแกรมคือ Code Browser และเอกสารประกอบโปรแกรมที่สมบูรณ์
2. การฟื้นฟูสภาพระบบ (System Rejuvenation) เป็นการฟื้นฟูสภาพระบบ คือ ความพยายาม ที่จะเพิ่มคุณภาพของระบบเก่าที่ใช้งานมานานแล้ว โดยกาย้อนกลับไปรื้อระบบเพื่อค้นหาข้อมูลที่มีประโยชน์ต่อการซ่อมรุง หรือ เพื่อปรับระบบให้มีคุณภาพมากขั้นกว่าเดิม การฟื้นฟูสภาพระบบสามารถทำได้หลายลักษณะ ดังนี้
- การปรับเอกสารใหม่ เป็นการสร้างเอกสารของระบบขึ้นมาใหม่ โดยอาศัยการวิเคราะห์จากซอร์สโค้ดของซอฟต์แวร์ระบบเดิม โดยทีมงานต้องวิเคราะห์ส่วนประกอบหลายอย่างจากซอร์สโค้ด ไม่ว่าจะเป็นการเรียกใช้ตัวแปร การเรียกใช้คอมเน้นท์ เส้นทางการควบคุมการทำงานของโปรแกรม การรับ-ส่ง พารามิเตอร์ ตลอดจนเส้นทางทดสอบโปรแกรม
- การปรับโครงสร้างใหม่ เป็นการปรับโครงสร้างของซอร์สโค้สเดิมให้สามารถเข้าใจและแก้ไขได้ง่ายขึ้น
- การวิศวกรรมย้อนกลับ เป็นการนำซอร์สเก่ามาวิเคราะห์ และออกแบบใหม่ให้มีประสิทธิภาพและบำรุงรักษาง่ายขึ้น ข้อมูลที่ได้จากการรื้อซอร์สโค้ดของระบบเก่าจะมีความสมบูรณ์เพียงใดนั้นขึ้นอยู่กับทีมงานและเครื่องมือที่ใช้ และเนื่องจากลักษณะของการวิศวกรรมย้อนกลับคล้ายกับการปรับเอกสารใหม่เป็นอย่างมาก การปรับเอกสารใหม่ เป็นอีกรูปแบบหนึ่งจองการวิศวกรรมย้อนกลับ
- การปรับรื้อใหม่ หมายถึงการพิจารณาและเปลี่ยนแปลงซอฟต์แวร์เดิม แล้วสร้างให้เป็นซอฟต์แวร์ในรูปแบบใหม่ การปรับรื้อใหม่เป็นการดัดแปลงซอฟต์แวร์เดิมให้อยู่ในรูปแบบใหม่หลังจากที่ได้ผ่าน การวิศวกรรมย้อนกลับ มาแล้ว โดยทั่วไปการปรับรื้อซอฟต์แวร์ใหม่ก็เพื่อเพิ่มฟังก์ชันงานใหม่ หรือ เพื่อแก้ไขข้อบกพร่องของซอฟต์แวร์เดิม

5. เทคนิคที่ใช้ในการบำรุงรักษาระบบมีอะไรบ้าง อธิบาย
การลดต้นทุนหรือแรงงานในการบำรุงรักษาระบบให้ได้มากที่สุด ต้องเริ่มตั้งแต่ขั้นตอนการออกแบบ คือ ต้องออกแบบระบบรวมทั้ง Application Software สามารถบำรุงรักษาได้ง่ายที่สุด สำหรับกรณีที่ระบบมีอายุมากแล้วแต่ยังไม่ถึงเวลาปลดระวาง และต้องการใช้งานต่อไป ทีมงานจะต้องหาเทคนิคหรือวิธีการที่จะทำให้การบำรุงรักษาระบบเป็นเรื่องง่ายขึ้น ซึ่งในที่นี้ขอยกตัวอย่างเทคนิคดังกล่าว 2 เทคนิค ดังนี้
5.1 การทำความเข้าใจโปรแกรม (Program Comprehension) โปรแกรมเมอร์ที่เป็นหนึ่งในทีมซ่อมบำรุงจะใช้เวลาส่วนใหญ่ในการอ่านและทำความเข้าใจโปรแกรม เพื่อทำการเปลี่ยน code โปรแกรม ดังนั้น เครื่องมือสำคัญของการทำความเข้าใจโปรแกรมก็คือ “Code Browser” และเอกสารประกอบโปรแกรมที่สมบูรณ์ Code Browser ส่วนใหญ่จะมีกลไกช่วยวิเคราะห์ code ได้หลายอย่าง เช่น ระบุตำแหน่งนิยามข้อมูล อ้างอิงยังตำแหน่งที่ข้อมูลถูกเรียกใช้ได้ทุกตำแหน่ง สร้างแผนภาพการเรียกใช้ฟังก์ชัน สร้างไฟล์แสดงรายการฟังก์ชัน ชนิดของฟังก์ชัน ตัวแปร และ มาโครได้ เป็นต้น
สำหรับซอฟต์แวร์เชิงวัตถุ Code Browser จะต้องสามารถระบุตำแหน่งนิยามคลาสได้ ระบุตำแหน่งอื่น ๆ ของ คลาสที่ถูกอ้างอิงได้ แสดงคลาสที่ Derived มาจาก Base Class ตลอดจนแสดงรายการคลาส ชนิดของclass, method, Interface และชนิดของการเข้าถึงคลาสได้
5.2 การฟื้นฟูสภาพระบบ (System Rejuvenation) การฟื้นฟูสภาพระบบ คือ ความพยายามที่จะเพิ่มคุณค่าของระบบเก่าที่ใช้งานมานานแล้ว โดยการย้อนกลับไปรื้อระบบเก่าเพื่อค้นหาข้อมูลที่มีประโยชน์ต่อการซ่อมบำรุง หรือ เพื่อปรับระบบให้มีคุณภาพมากขึ้นกว่าเดิม การฟื้นฟูสภาพระบบสามารถทำได้หลายลักษณะดังนี้
- การปรับเอกสารใหม่ (Redocumentation) เป็นการสร้างเอกสารของระบบขึ้นมาใหม่ โดยอาศัยการวิเคราะห์จากซอร์สโค้ดของซอฟต์แวร์ระบบเดิม โดยทีมงานต้องวิเคราะห์ส่วนประกอบหลายอย่างจากซอร์สโค้ด ไม่ว่าจะเป็นการเรียกใช้ตัวแปร การเรียกใช้คอมโพเน้นท์ เส้นทางการควบคุมการทำงานของโปรแกรม การรับ-ส่งพารามิเตอร์ ตลอดจนเส้นทางทดสอบโปรแกรม
- การปรับโครงสร้างงานใหม่ (Reconstructing) เป็นการปรับโครงสร้างของซอร์สโค้ดเดิมให้สามารถเข้าใจและแก้ไขได้ง่ายขึ้น
- การวิศวกรรมย้อนกลับ (Reverse Engineering) เป็นการนำซอร์สโค้ดเก่ามาวิเคราะห์ และออกแบบใหม่ให้มีประสิทธิภาพและบำรุงรักษาง่ายขึ้น ข้อมูลที่ได้จากการรื้อซอร์สโค้ดของระบบเก่าจะมีความสมบูรณ์เพียงใดนั้นขึ้นอยู่กับทีมงานและเครื่องมือที่ใช้ และเนื่องจากลักษณะของการวิศวกรรมย้อนกลับคล้ายกับการปรับเอกสารใหม่เป็นอย่างมาก จึงอาจกล่าวได้ว่า “การปรับเอกสารใหม่” เป็นอีกรูปแบบหนึ่งของการวิศวกรรมย้อนกลับ
- การปรับรื้อใหม่ (Reengineering) หมายถึง การพิจารณาและเปลี่ยนแปลงซอฟต์แวร์เดิมแล้วสร้างให้เป็นซอฟต์แวร์ในรูปแบบใหม่ การปรับรื้อใหม่เป็นการดัดแปลงซอฟต์แวร์เดิมให้อยู่ในรูปแบบใหม่หลังจากที่ได้ผ่าน “การวิศวกรรมย้อนกลับ (Reverse Engineering)” มาแล้ว โดยทั่วไป การปรับรื้อซอฟต์แวร์ใหม่ก็เพื่อเพิ่มฟังก์ชันงานใหม่ หรือเพื่อแก้ไขข้อบกพร่องของซอฟต์แวร์เดิม
ด้วยวัตถุประสงค์ในการทำงานต่างสนับสนุนซึ่งกันและกันของการฟื้นฟูสภาพของระบบในแต่ละลักษณะข้างต้น ทำให้บางครั้งมีการนำลักษณะการฟื้นฟูสภาพของระบบมาใช้มากกว่า 1 ลักษณะ จึงอาจทำให้เกิดความสับสนได้ อย่างไรก็ตาม ความแตกต่างที่ชัดเจนที่สุดระหว่าง Reverse Engineering กับ Reengineering คือ Reverse Engineering จะถูกนำมาใช้เพื่อการเริ่มต้นวิเคราะห์ซอฟต์แวร์เดิมที่มีอยู่ เพื่อนำไปสู่การดัดแปลงซอฟต์แวร์ด้วย Reengineering

SA-Assignment 7 User Interface

System Analysis Assignment 7
user Interface
รายละเอียดของงาน : ให้นักศึกษาตอบคำถามจากโจทย์ที่ให้ มีรายละเอียดดังนี้
1. การโต้ตอบกับผู้ใช้มีรูปแบบใดบ้าง อธิบาย
1.1 การโต้ตอบด้วยคำสั่ง (Command Language Interaction)
การออกแบบส่วนติดต่อกับผู้ใช้ (User Interface) เป็นการออกแบบจอภาพเพื่อให้ผู้ใช้งานสามารถ
โต้ตอบกับระบบได้ตามความต้องการอย่างมีประสิทธิภาพ ตลอดจนนำเสนอสารสนเทศกลับมายังผู้ใช้ เรียกอีกอย่างว่า การออกแบบจอภาพ (Screen Design) การออกแบบส่วนติดต่อกับผู้ใช้ (User Interface) นิยมใช้แบบกราฟิก (Graphic User Interface :GUI) มีรูปแบบดังนี้ คือ
- เป็นการโต้ตอบกับระบบโดยที่ผู้ใช้จะต้องพิมพ์คำสั่งลงในช่องป้อนคำสั่ง เพื่อกระตุ้นให้เกิด
การทำงานในระบบ
- ผู้ใช้จะต้องจำคำสั่ง ไวยากรณ์ และกฎเกณฑ์ต่างๆ เช่น ผู้ใช้ที่ชำนาญการใช้ระบบปฏิบัติการ DOS
- ลดความนิยมในปัจจุบัน

1.2 การโต้ตอบด้วยเมนูคำสั่ง (Menu Interaction) เป็นการโต้ตอบกับระบบด้วยการแสดงเมนูคำสั่ง โดยผู้ใช้ไม่จำเป็นต้องป้อนคำสั่งเองรูปแบบเมนูมีดังนี้ คือ
1.2.1 Pull-down Menu เมนูแสดงคำสั่ง โดยแบ่งรายการของคำสั่งเป็นหมวดหมู่ เมื่อผู้ใช้
คลิกจะแสดงรายการคำสั่งจากบนลงล่าง

1.2.2 Pop-up Menu เมนูแสดงคำสั่ง เมื่อผู้ใช้คลิกเลือกวัตถุ หรือ object ใด ๆ ในจอภาพ คำสั่งหรือคุณสมบัติที่เกี่ยวข้องกับ object นั้นจะถูกแสดงออกมา

หลักเกณฑ์ในการออกแบบเมนูคำสั่ง
1. แต่ละเมนูคำสั่งควรเลือกใช้คำสั่งที่สื่อความหมายได้ชัดเจน
2. ควรมีการใช้ตัวอักษรพิมพ์ใหญ่หรือตัวอักษรพิมพ์เล็กตามความเหมาะสม
3. ควรมีการจัดกลุ่มคำสั่งที่มีความเกี่ยวข้องกันไว้ในกลุ่มเดียวกัน
4. ไม่ควรมีจำนวนเมนูคำสั่งมากเกินไป
5. ควรมีเมนูย่อยสำหรับเมนูคำสั่งที่มีการทำงานย่อยภายในมากเกินไป
6. เมื่อมีการเลือกเมนูคำสั่ง ควรออกแบบให้มีแถบสีปรากฏที่เมนูคำสั่งที่ถูกเลือก

1.3 การโต้ตอบด้วยแบบฟอร์ม (Form Interaction)
- เป็นการโต้ตอบที่ผู้ใช้ระบบจะต้องป้อนข้อมูลลงในช่องว่างที่อยู่ในแบบฟอร์มที่แสดงหน้า
จอคอมพิวเตอร์
- คล้ายการกรอกแบบฟอร์มลงในกระดาษ
- ชื่อของช่องป้อนข้อมูลต้องสื่อความหมาย
- แบ่งส่วนของข้อมูลบนฟอร์มให้เหมาะสม
- ควรแสดงข้อมูลเริ่มต้นให้กับช่องป้อนข้อมูลที่ต้องใช้ข้อมูลนั้นบ่อยครั้ง- ช่องป้อนข้อมูลไม่ควรยาวมากจนเกินไป

ลักษณะของแบบฟอร์มที่ดี
- ควรจะมีชื่อของช่องป้อนข้อมูลที่สื่อความหมายชัดเจน
- มีการแบ่งส่วนของข้อมูลบนแบบฟอร์ม
- ควรแสดงค่าข้อมูลเริ่มต้นให้กับช่องป้อนข้อมูลที่ต้องใช้ข้อมูลนั้นบ่อยครั้ง
- ช่องป้อนข้อมูลของแบบฟอร์มไม่ควรมีความยาวมากเกินไป

1.4 การโต้ตอบด้วยการทำงานเชิงวัตถุ (Object-Based Interaction)
- เป็นการโต้ตอบกับระบบที่ใช้สัญลักษณ์
- สัญลักษณ์เป็นตัวแทนคำสั่งที่ใช้ในการปฏิบัติงาน
- สัญลักษณ์รูปภาพแทนคำสั่งการทำงานเรียกว่า ไอคอน (Icon)
- ข้อดีคือ ประหยัดพื้นที่บนหน้าจอเนื่องจากเป็นสัญลักษณ์ที่เป็นรูปภาพที่มีขนาดเล็ก



1.5 การโต้ตอบด้วยภาษามนุษย์ (Natural Language Interaction)
- เป็นการโต้ตอบกับระบบด้วยภาษามนุษย์ ไม่ว่าจะเป็นประโยคภาษาพูดหรือเขียน
- อยู่บนพื้นฐานของการประมวลผลภาษาธรรมชาติ
- เป็นเทคโนโลยีสำหรับอนาคต

สรุปข้อดี-ข้อเสียของการเก็บรวบรวมข้อมูลแต่ละแบบ



2. อธิบายขั้นตอน การออกแบบ ฟอร์ม/รายงาน และ ส่วนประสานงานกับผู้ใช้

2.1 การออกแบบ ฟอร์ม/รายงาน

2.1.1 ความหมายของฟอร์มและรายงาน
- ฟอร์ม หมายถึง เอกสารทางธุรกิจที่มีข้อมูลบางอย่างแสดงไว้แล้วและยังมีพื้นที่ว่างให้ใส่
ข้อมูลเพิ่มเติมลงไปได้อีก เช่น แบบฟอร์มใบสมัครงาน แบบฟอร์มใบสั่งซื้อ แบบฟอร์มใบสมัครงานสมาชิก เป็นต้น
- รายงาน หมายถึง
- เอกสารทางธุรกิจที่มีข้อมูลแสดงไว้อย่างเดียว
- ใช้สำหรับอ่านหรือวิเคราะห์ข้อมูล
- โดยปกติแล้วข้อมูลจะมาจากหลายๆ ระเบียนหรือรายการ (transactions)
- เช่น รายงานข้อมูลสินค้าที่ไม่มีการเคลื่อนไหว รายงานผลการเรียนของนักศึกษา
รายงานยอดขาย เป็นต้น 2.1.2 การออกแบบฟอร์มและรายงาน
ในระบบงานใด ๆ เมื่อมีการดำเนินงานจะมีข้อมูลที่เข้าสู่ระบบ (Input) เพื่อประมวลผล และทำให้ได้ข้อมูลออกจากระบบ (Output) โดยการทำงานภายในของระบบเองก็จะมีข้อมูลที่เข้าสู่แต่ละ Process เพื่อประมวลผลให้ได้เป็นข้อมูลออกจาก Process นั้นไปยัง Process อื่น ข้อมูลที่เข้าและออกจากระบบหรือข้อมูลภายในระบบ จะอยู่ในรูปของแบบฟอร์มและรายงาน (Forms/Report) ต่าง ๆ ดังนั้นหน้าที่ของนักวิเคราะห์ระบบในกิจกรรมนี้คือ จะต้องออกแบบหรือสร้างตัวต้นแบบ (Prototypes) ของแบบฟอร์มและรายงานที่เกิดขึ้นในระบบที่กำลังพัฒนา เพื่อนำเสนอต่อผู้ใช้งานและผู้บริหารเพื่อเป็นการยืนยันความถูกต้องของการวิเคราะห์ข้อมูลความต้องการระบบใหม่
การที่จะทราบได้ว่าระบบงานที่กำลังพัฒนามีแบบฟอร์มหรือรายงานใดบ้าง นักวิเคราะห์ระบบสามารถตรวจสอบได้จาก DFD โดยจะพบแบบฟอร์มได้จาก Input Data Flows ที่วิ่งเข้าสู่แต่ละ Process ส่วน Output Data Flows ที่วิ่งออกจาก Process นั้นจะทำให้ทราบว่ามีรายงานอะไรบ้าง
สำหรับ E-R Diagram จะทำให้นักวิเคราะห์ระบบทราบได้ว่าภายในแบบฟอร์มและรายงานเหล่านั้นจะต้องประกอบไปด้วยข้อมูลย่อย (Data Element) อะไรบ้าง โดยสังเกตจาก Attribute ที่ปรากฏอยู่กับ Entites ที่เกี่ยวข้องกับแบบฟอร์มและรายงานใด ๆ


DFD Level 1: การรับสมัครสมาชิกห้องสมุด

2.1.3 หลักในการออกแบบ แบบฟอร์ม และรายงาน
1. ชื่อหัวเรื่องมีความหมายชัดเจน (Meaningful Titles)
- เข้าใจง่าย สื่อความหมายถึงเนื้อหาในแบบฟอร์มและรายงานที่ชัดเจน
- แสดงวันที่จัดทำรายงานที่ถูกต้อง
2. แสดงสารสนเทศที่จำเป็นต่อการใช้งาน (Meaningful Information)
- สารสนเทศที่อยู่ในแบบฟอร์ม และรายงานต้องเป็นสารสนเทศที่จำเป็นต่อการใช้งานจริง ๆ
เท่านั้น
- สารสนเทศที่แสดงในฟอร์ม และรายงานตรงกับงานที่จะนำไปใช้
3. มีการจัดวางองค์ประกอบที่สมดุล (Balance the Layout)
- จัดวางสารสนเทศบนกระดาษและหน้าจออย่างสมดุล
- มีระยะห่างระหว่างข้อมูล และส่วนต่าง ๆ อย่างเหมาะสม
- ช่องป้อนข้อมูลต้องระบุหัวเรื่องอย่างชัดเจน
4. ใช้งานง่าย (Design an Easy Navigation System)
- มีสัญลักษณ์ หรือการจัดวางที่ทำให้ผู้ใช้ทราบว่าจะทำงานในส่วนต่อไปต้องทำอย่างไร
- มีข้อความแสดงสถานะการใช้งานปัจจุบันของผู้ใช้ เช่นบอกว่าอยู่ที่หน้าไหน จากจำนวนกี่หน้า
2.1.4 กระบวนการออกแบบฟอร์มและรายงาน
2.1.4.1 เก็บรวบรวมการใช้งานแบบฟอร์มและรายงาน โดยข้อมูลเหล่านี้นักวิเคราะห์ระบบอาจจะดำเนินการพร้อมกับการรวบรวมข้อมูลในขั้นตอนการวิเคราะห์ระบบก็ได้ ซึ่งจะเกิดผลดีคือ ทำให้การออกแบบในขั้นตอนนี้มีความรวดเร็วยิ่งขึ้น โดยการรวบรวมนั้นอาจจะอาศัยคำถามเพื่อนำไปกำหนดรูปแบบของแบบฟอร์มและรายงานได้โดยตัวอย่างของคำถามมีดังนี้
- ใครเป็นผู้ใช้แบบฟอร์มและรายงานประเภทใด
- วัตถุประสงค์ในการใช้แบบฟอร์มและรายงานแต่ละประเภท
- แบบฟอร์มและรายงานนั้นจะถูกนำไปใช้เมื่อใด ที่ใด และส่งต่อไปยังฝ่ายใด
- ผู้ใช้ที่ต้องการแบบฟอร์มและรายงานมีจำนวนเท่าใด
2.1.4.2 ร่างแบบของแบบฟอร์มและรายงาน นักวิเคราะห์ระบบจะต้องนำข้อมูลที่ได้จากขั้นตอนแรกมาร่างรูปแบบของแบบฟอร์มและรายงาน ก่อนที่จะนำมาสร้างเป็นต้นแบบ (Prototype) เพื่อสอบถามผู้ใช้ระบบว่าถูกต้องหรือไม่ หรือต้องการแก้ไขส่วนใดเพิ่มเติมหรือไม่ จนกว่าผู้ใช้ระบบจะพอใจกับต้นแบบนั้น
2.1.4.3 สร้างต้นแบบ นำแบบร่างที่ได้รับการยอมรับจากทุกฝ่ายมาสร้างเป็นต้นแบบด้วย CASE Tool หรือเครื่อมือชนิดอื่น ๆ

2.2 การออกแบบส่วนประสานงานกับผู้ใช้ (User Interface)
2.2.1 ขั้นตอนการออกแบบ User Interface
- นิยามวัตถุและตัวดำเนินการ โดยใช้ข้อมูลจากการวิเคราะห์
- กำหนดเหตุการณ์ที่เป็นการกระทำของผู้ใช้
- แสดงด้วยรูปถึงสถานะของส่วนต่อประสานที่ผู้ใช้จะได้สัมผัส
- อธิบายให้ทราบความหมายของข้อมูลที่แสดง ระบุว่าผู้ใช้จะเข้าใจสถานะของระบบอย่างไร
2.2.2 เรื่องที่ต้องพิจารณาในการออกแบบ User Interface
2.2.2.1 การออกแบบการจัดวาง (Layouts) ขององค์ประกอบบนหน้าจอ
- การออกแบบหน้าจอของฟอร์มหรือรายงานต่างๆ ควรจะจัดวางรูปแบบให้เหมือนกับเอกสารมากที่สุด
- การป้อนข้อมูลในแต่ละรายการหรือแต่ละฟิลด์ ต้องจัดลำดับการป้อนข้อมูลในแต่ละฟิลด์ให้คล้ายกับการกรอกบนเอกสารจริง
- เริ่มกรอกจากซ้ายไปขวา และจากบนลงล่าง
- ควรมีความยืดหยุ่นและสอดคล้องในการทำงาน สามารถย้าย cursor ไปมาฟิลด์ที่ระหว่างต้องการแก้ไข
2.2.2.2 การออกแบบโครงสร้างของการป้อนข้อมูล (Structure Data Entry)
การออกแบบโครงสร้างการป้อนข้อมูล คือ การออกแบบเพื่อกำหนดรูปแบบ
หรือลักษณะของการป้อนข้อมูล เพื่อเตรียมความสะดวกให้กับผู้ใช้ในการป้อน หรือป้องกันการป้อนข้อมูลผิดพลาด เช่น การกำหนดค่าเริ่มต้น (Default) การจัดรูปแบบข้อมูล เป็นต้น
หลักในการออกแบบโครงสร้างการป้อนข้อมูล
- ควรให้ผู้ใช้ป้อนข้อมูลที่จำเป็นเท่านั้น ถ้ามีข้อมูลใดที่ระบบสามารถสร้างเองได้ หรือมีจัดเก็บไว้แล้ว ก็ไม่จำเป็นต้องให้ผู้ใช้ป้อน เช่น ชื่อจังหวัดในประเทศ หรือ ชื่อเดือน เป็นต้น
- ควรกำหนดค่าเริ่มต้น (Default Value) ของข้อมูลในกรณีที่สามารถกำหนดค่าเริ่มให้ได้ เพื่อเพิ่มความสะดวกให้กับผู้ใช้ เช่น วันที่ หรือหมายเลข Running Number เป็นต้น
- ควรระบุหน่วยของข้อมูล (Unit) ให้ชัดเจน เช่น บาท ดอลลาร์ กิโลกรัม เป็นต้น
- ควรใส่คำอธิบายช่องป้อนข้อมูล(Caption) เพื่อแสดงคำอธิบายฟิลด์ว่าต้องการให้ผู้ใช้ใส่ข้อมูลอะไร
- ควรกำหนดรูปแบบของข้อมูลให้ชัดเจน โดยอาจแสดงเป็นตัวอย่างให้ผู้ใช้ทราบ
- ควรออกแบบให้มีการจัดวางข้อมูล (Justify) โดยอัตโนมัติ เช่นตัวเลขชิดขวา ข้อความชิดซ้าย เป็นต้น
- ควรมีส่วนช่วยเหลือ (Help) เพื่อช่วยอธิบายในระหว่างการใช้งาน
2.2.2.3 การควบคุมความถูกต้องในการป้อนข้อมูล (Controlling Data Input)
- ตรวจสอบชนิดของข้อมูล (data type) ว่าตรงกับระบุไว้หรือไม่
- ตรวจสอบรูปแบบ (Format) ของข้อมูลว่าตรงกับที่กำหนดหรือไม่
- ตรวจสอบความถูกต้องของข้อมูล (Correctness) ที่ป้อน เช่น Checking Digit
- ตรวจสอบความสมบูรณ์ (Completeness) ของข้อมูลที่ป้อนในแต่ละฟิลด์
- ตรวจสอบว่าข้อมูลที่ป้อนอยู่ในช่วง (Range) ที่กำหนดไว้หรือไม่
- ตรวจสอบว่ามีข้อมูลส่วนใดยังไม่ได้ป้อนหรือไม่
2.2.2.4 ข้อความตอบสนอง (Feedback Message)
- แจ้งสถานะการทำงาน (Status Information)
- แสดงความพร้อมในการรับคำสั่ง (Prompting Cues)
- ข้อความแจ้งหรือเตือนเมื่อมีข้อผิดพลาด (Error/Warning Messages)
2.2.2.5 การแสดงส่วนช่วยเหลือ (Help)
- แจ้งสถานะการทำงาน (Status Information)
- แสดงความพร้อมในการรับคำสั่ง (Prompting Cues)
- ข้อความแจ้งหรือเตือนเมื่อมีข้อผิดพลาด (Error/Warning Messages) 2.2.2.6 การออกแบบการควบคุมการเข้าถึงข้อมูลของผู้ใช้ (Access Control)
- จำกัดความสามารถในการมองเห็นข้อมูลจากฐานข้อมูล (View/Subschema)
- กำหนดสิทธิในการเข้าถึงและปรับปรุงข้อมูล (Authorization Rules)
- การเข้ารหัส (Encryption Procedures)
- การตรวจสอบผู้มีสิทธิเข้าใช้ระบบ (Authentication schemas) 2.2.2.7 การออกแบบลำดับการเชื่อมโยงจอภาพ (Dialogue Design)
2.2.3 ข้อควรคำนึงในการออกแบบ
- เวลาในการตอบสนองของระบบ
- การช่วยเหลือแก่ผู้ใช้งาน
- การจัดการความผิดพลาด
- การกำหนดชื่อคำสั่งและเมนู
- การเข้าถึงระบบงาน
- ความเป็นสากล

3.การแสดงผลด้วยกราฟและตารางแตกต่างกันอย่างไร
- การแสดงผลด้วยตาราง เลือกใช้ตารางเมื่อ
- กรณีที่ข้อมูลหรือสารสนเทศนั้นเป็นตัวเลข ควรแสดงผลในรูปของตาราง จะช่วยให้ผู้ใช้สามารถอ่านข้อมูลได้ง่ายขึ้น
- ต้องการแสดงผลตัวเลขเป็นรายการอย่างชัดเจน

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

4. Dialogues Diagram คืออะไร มีปะโยชน์อย่างไร
Dialogues Diagram หมายถึง แผนภาพแสดงลำดับการเชื่อมโยงของจอภาพซึ่งจะทำให้ทราบว่า
จอภาพหนึ่งจะเชื่อมโยงไปยังจอภาพใดต่อไป

สัญลักษณ์ของ Dialogues Diagram


Top : ใช้แสดงหมายเลขลำดับเพื่อการอ้างอิงจากหน้าจออื่น
Middle : ใช้แสดงชื่อหน้าจอการทำงานหรือข้อความแสดงรายละเอียดการทำงาน
Bottom : ใช้แสดงหมายเลขของหน้าจอที่อ้างอิงมา คั่นด้วยเครื่องหมายจุลภาค , ตามด้วยหมายเลข
หน้าจอต่อไป/ย้อนกลับ เมื่อเสร็จสิ้นการทำงานแล้ว







วันพฤหัสบดีที่ 19 กุมภาพันธ์ พ.ศ. 2552

SA-Assignment 6 UML

System Analysis Assignment 6
เรื่อง การวิเคราะห์และออกแบบเชิงวัตถุ

รายละเอียดของงาน : ให้นักศึกษาตอบคำถามจากโจทย์ที่ให้ มีรายละเอียดดังนี้

1. Class Diagram คืออะไร และแสดงให้เห็นโครงสร้างด้านใดของระบบบ้าง
Class Diagram คือ แผนภาพที่ใช้แสดง Class และความสัมพันธ์ในแง่ต่าง ๆ (Relation) ระหว่าง Class เหล่านั้น ซึ่งความสัมพันธ์ที่กล่าวถึงใน Class Diagram นี่ถือเป็นความสัมพันธ์เชิงสถิตย์ (Static Relationship) หมายถึง ความสัมพันธ์ที่มีอยู่แล้วเป็นปกติในระหว่าง Class ต่าง ๆ ไม่ใช่ความสัมพันธ์ที่เกิดขึ้นเนื่องจากกิจกรรมต่าง ๆ ซึ่งเรียกว่า ความสัมพันธ์เชิงกิจกรรม (Dynamic Relationship) สิ่งที่ปรากฏใน Class Diagram นั้นประกอบด้วยกลุ่มของ Class และกลุ่มของ Relationship โดยสัญลักษณ์ที่ใช้ในการแสดง Class นั้นจะแทนด้วยสี่เหลี่ยมที่แบ่งออกเป็น 3ส่วน โดยแต่ละส่วนนั้น (จากบนลงล่าง) จะใช้ในการแสดง ชื่อของ Class, Attribute, และฟังก์ชัน ต่าง ๆ ตามลำดับ
- Class Daiagram เป็นแผนภาพที่แสดงให้เห็นโครงสร้างของข้อมูลระบบ และโครงสร้างด้านการประมวลผลของระบบ (Process)
- Class Daiagram เป็นแผนภาพที่แสดงกลุ่มของคลาส โครงสร้างและอินเตอร์เฟส ตลอดจนความสัมพันธ์ระหว่าง Class ด้วย
- Class คือ กลุ่มของ Object ที่มี Attributes, Functions และความสัมพันธ์ที่เหมือนกัน โดย Object ที่มีคุณสมบัติเดียวกันก็จะรวมกลุ่มอยู่ใน Class เดียวกัน ซึ่ง Class จะต้องเกี่ยวข้องกับระบบที่สนใจ (Problem Domain) เช่น ในระบบจัดซื้อ Class คือ ลูกค้าใบสั่งซื้อ ใบเสนอราคา ใบเสร็จรับเงิน
- Object คือ ทุกสิ่งที่อยู่รอบตัวเรา ทั้งจับต้องได้ เช่น แฟ้ม รถ หนังสือ ฯลฯ รวมถึงที่จับต้องไม่ได้ เช่น รายการขายสินค้า, วิชาเรียน, เที่ยวบิน เป็นต้น
- Class และ Object มีความคล้ายกันมากจนทำให้หลายคนสงสัยว่าเป็นสิ่งเดียวกันหรือไม่ ในความเป็นจริง Class ถือว่าเป็น นามธรรม (Abstract) ในขณะที่ Object นั้นเป็นสิ่งที่มีตัวตน (Concrete) กล่าวคือ Class เป็นเหมือนพิมพ์เขียวของ Object โดยที่ Class จะไม่สามารถทำงานได้ แต่ Object สามารถทำงานได้
- การทำงานของ Object จะเป็นไปตามคุณสมบัติที่กำหนดไว้ใน Class และ Object ทุกตัวก็ต้องอยู่ใน Class ดังนั้น Class และ Object จึงเป็นสิ่งคู่กันเสมอ
- Class นอกจากจะมีชื่อ Class กำกับแล้ว ยังมี คุณสมบัติ (Attributes) และ หน้าที่การทำงาน (Operations หรือ Methods)

- แนวทางการค้นหา Class ในระบบ
1. คำนาม ที่ปรากฏในคำบรรยาย ระบบ จะถูกสร้างเป็น Class เช่น Class รถยนต์
2. คำวิเศษณ์ ที่ปรากฏในคำบรรยาย ระบบ จะถูกสร้างเป็น Attributes เช่น สีรถ รุ่นรถ ยี่ห้อรถ เป็นต้น
3. คำกริยาที่ปรากฏในคำบรรยาย ระบบ จะถูกสร้างเป็น Functions เช่น สตาร์ทรถ

- สัญลักษณ์ Class ประกอบด้วย
1. Class Name จะต้องเป็นคำนาม จะต้องขึ้นต้นด้วยอักษรพิมพ์ตัวใหญ่ (ตัวหนา) และไม่มีช่องว่างระหว่างชื่อคลาส (BankClient)
2. Attributes จะต้องใช้อักษรตัวพิมพ์เล็ก และหากมี 2 คำขึ้นไป ตัวอักษรแรกของคำที่สองจะต้องขึ้นต้นด้วยตัวพิมพ์ใหญ่ โดย Attribute คือ คุณลักษณะของ Class ประกอบด้วย
2.1 การเขียนสัญลักษณ์แทน Class สิ่งที่ต้องคำนึงถึงอีกสิ่งหนึ่งคือ ระดับการเข้าถึงเรียกสัญลักษณ์ที่ใช้แทนการเข้าถึงนี้ว่า Visibility แบ่งออกได้เป็น 3 ประเภท ได้แก่
2.1.1 Private เขียนแทนด้วยสัญลักษณ์ - หมายถึง Attribute หรือ ฟังก์ชัน ที่ไม่สามารถมองเห็นได้จากภายนอก แต่สามารถมองเห็นได้จากภายในตัวของ Class เองเท่านั้น
2.1.2 Protect เขียนแทนด้วยสัญลักษณ์ # หมายถึง Attribute หรือ ฟังก์ชัน ที่สงวนไว้สำหรับการทำ Inheritance โดยเฉพาะ Attribute หรือ ฟังก์ชันเหล่านี้ จะเป็นของ Super class เมื่อทำการ Inheritance แล้ว Attribute หรือ ฟังก์ชัน ที่มี Visibility แบบ Protect จะกลายไปเป็น Private Attribute/ฟังก์ชัน หรือ Protected ขึ้นอยู่กับภาษา Programming ที่นำไปใช้
2.1.3 Public เขียนแทนด้วยสัญลักษณ์ + หมายถึง Attribute หรือ ฟังก์ชัน ที่สามารถมองเห็นได้จากภายนอก และสามารถเข้าไปเปลี่ยนค่า อ่านค่าหรือเรียกใช้งาน Attribute หรือ ฟังก์ชัน นั้นได้ทันทีโดยอิสระจากภายนอก (โดยทั่วไปแล้ว Visibility แบบ Public มักจะใช้กับฟังก์ชันมากกว่า attribute) 2.2 ชื่อของ attribute
2.3 ประเภทของ attribute เช่น integer,Boolean,Real
2.4 ค่าเริ่มต้นของ attribute
3. Functions หรือ Operations คือ พฤติกรรมที่สามารถกระทำกับ Object ได้ประกอบด้วย - ชนิดของการเข้าถึง เช่นเดียวกับ attribute
- ชื่อของ function หรือ operation
- Parameters ที่จำเป็นต่อการทำงานของ function
2. Cardinality Ratio ใน Class Diagram เรียกว่าอะไร อธิบาย
-Multiplicity หมายถึง การพิจารณาจำนวน instances (objects) ของคลาสหนึ่ง ที่สามารถเชื่อมโยงกับinstance (object) ของคลาสที่เกี่ยวข้อง
- Multiplicity คือ Cardinality ratio ได้แก่ 1-1, 1-M, M-Nซึ่งเขียนให้อยู่ในรูป Min..Max - Cardinality ratio คือ การระบุจำนวนสมาชิกของ Entity ที่สัมพันธ์กัน
- Multiplicity ในความสัมพันธ์ (Relationship) เป็นการแสดงจำนวน Object ของ Class หนึ่ง ซึ่งมี

ความสัมพันธ์กับ Objects ของอีก Class หนึ่ง บนเส้นความสัมพันธ์โดยใช้รูปแบบ
Minumum Cardinality .. Maximum Cardinality

3. Aggregation และ Composition Relationship ต่างกันอย่างไร
ความสัมพันธ์ระหว่าง Object ประกอบด้วย
- Association
- Aggregation
- Composition
- Generalization /Specialization

Aggregation
- Aggregation เป็นความสัมพันธ์ระหว่างคลาสแบบต่างระดับ ในลักษณะของการป็นองค์ประกอบต่าง ๆ เรียกว่า “Part Class” ส่วน คลาสที่เกิดจากการรวมกันขององค์ประกอบต่าง ๆ เรียกว่า “Whole Class” โดยข้อสังเกตของความสัมพันธ์ชนิดนี้คือ Part Class มีอิสระ ไม่จำเป็นต้องพึ่งพา Whole Class ถูกทำลาย หรือเสียหาย Part Class ก็ยังคงอยู่ เช่น ความสัมพันธ์ระหว่างคลาส “Team” กับ Person” โดยที่ Team จะต้องมี Person มารวมกันเป็นองค์ประกอบหรือความสัมพันธ์ระหว่างคลาส “Car” มีคลาส “Engine”, “Wheel”, Steering” เป็นต้น
- การนำส่วนประกอบย่อยๆ หลายๆอย่างมาประกอบเป็นหนึ่ง Object ที่สามารถใช้งานได้อย่างสมบูรณ์ ถ้าขาดส่วนหนึ่งส่วนใดจะเกิดการผิดพลาดได้ เป็นความสัมพันธ์แบบ Composition แทนด้วยข้าวหลามตัด ซึ่งความสัมพันธ์ระหว่าง Object หรือ Class แบบ “Whole-Part” หรือ “is part of” โดยจะมี Class ที่ใหญ่ที่สุดที่เป็น Object หลัก และมี Class อื่นเป็นส่วนประกอบ
- วัตถุมี วัตถุอื่นๆ เป็นองค์ประกอบย่อย เช่น Car มี engine และwheels เป็นองค์ประกอบ
- ปลายที่มีข้าวหลามตัดเป็น Class “Container” ปลายอีกข้างเป็น Class “ส่วนประกอบ”
Composition
- Object ที่ไม่ได้เป็น Object หน่วยย่อยที่สุด หรือเป็น Object ที่ประกอบขึ้นจาก Object อื่นหลายๆ Object อยู่ภายใน เช่น Object Computer ประกอบไปด้วย Object video card, object keyboards, object drive, object power supply เป็นต้น
- ในความสัมพันธ์แบบ Aggregation หาก Part Class ได้กลายสภาพเป็น “ส่วนหนึ่ง (Composed-of)” ของ Whole Class จะทำให้เกิดความสัมพันธ์ที่เรียกว่า “Composition” เนื่องจาก Part Class ไม่สามารถทำงานได้หากไม่มี Whole Class และ Part Class จะต้องทำงานร่วมกับ Whole Class ตลอดอายุของ Whole Class ดังนั้นเมื่อ Whole Class ถูกลบ Part Class ก็ถูกลบไปด้วย เช่น ความสัมพันธ์ระหว่างคลาส “Employee” กับ “EmpHistory” เมื่อพนักงานลาออกไปประวัติพนักงานก็จะไม่มีอีกต่อไป หรือ คลาส “Windows” กับ คลาสที่เป็นส่วนประกอบของโปรแกรมวินโดวส์ หากโปรแกรมวินโดวส์ถูกปิดลงส่วนประกอบอื่น ๆ ของโปรแกรมวินโดวส์ก็จะถูกปิดลงไปด้วย เป็นต้น
- เป็นความสัมพันธ์ระหว่าง Object หรือ Class แบบขึ้นต่อกันและมีความเกี่ยวข้องกันเสมอ โดยจะมี Class ซึ่งเป็นองค์ประกอบของ Class อื่นที่ใหญ่กว่า
- วัตถุมีวัตถุอื่นๆ เป็นองค์ประกอบย่อยทั้งหมด
- การส่ง message ติดต่อกับวัตถุที่เป็นองค์ประกอบรวม อาจมีผลกับองค์ประกอบทั้งหมด
- ถ้า delete วัตถุที่เป็นองค์ประกอบรวม ส่วนย่อยจะต้องถูก delete ทิ้งไปด้วย

ความเหมือนและความแตกต่างระหว่าง Aggregation และ Composition


4. อธิบายความสัมพันธ์ระหว่าง Use Case Diagram, Class Diagram Statechart Diagram

4.1 Use Case Diagram คือ แผนภาพที่แสดงหน้าที่ที่ระบบจะต้องกระทำ (Functionality) ทั้งหมด โดยระบบดังกล่าวจะต้องเป็นระบบที่เราสนใจ บางทีเรียกว่าเป็น ระบบย่อย (Subsystem) และแสดงปฏิสัมพันธ์ระหว่างระบบงานและสิ่งที่อยู่นอกระบบงาน

ในการพัฒนาระบบงานใดๆ นั้น การเก็บรวบรวมความต้องการของผู้ใช้มีความสำคัญมาก และจะทำในระยะแรกๆ ของการพัฒนาระบบงานเสมอ Use case diagram เป็น Diagram ที่ทำหน้าที่ Capture requirement

- เป็นเทคนิคในการสร้างแบบจำลองเพื่อใช้อธิบายหน้าที่ของระบบใหม่ หรือระบบปัจจุบัน
- กระบวนการสร้าง Use case เป็นแบบ Iteration
- ความต้องการของระบบจะได้จาก ลูกค้า/ผู้ใช้ + ผู้พัฒนาระบบ
- องค์ประกอบจะมี Use case, Actor, Use case Relation และ System


4.2 Class Diagram คือ แผนภาพที่ใช้แสดง Class และ ความสัมพันธ์ระหว่าง Class ของระบบที่สนใจ (Problem Domain) เช่น ในระบบจัดซื้อ Class ที่เกี่ยวข้องคือ ผู้ผลิต, พนักงานจัดซื้อ, ใบสั่งซื้อ, ใบเสนอราคา, ใบเสร็จรับเงิน เป็นต้น
Class Diagram ประกอยด้วย Class และความสัมพันธ์ต่างๆ ระหว่าง Class เช่น Dependency, generalization, association เป็นต้น Class Diagram ยังสามารถทำการแสดงรายละเอียดภายใน Class แต่ละ Class ได้ว่ามี Method อะไรบ้าง Field และ Attribute เป็นอย่างไร 4.3 State Diagram หรือ Statechart Diagram เป็นแผนภาพที่แสดงให้เห็นพฤติกรรมของ Object เช่นเดียวกับแผนภาพในกลุ่ม Behavioral Diagram อื่น ๆ แต่ Statechart Diagram จะเน้นที่การแสดงให้เห็นถึงสถานะ (State) การเปลี่ยนสถานะ (Transition) ที่มีต่อเหตุการณ์ (Event) ที่เกิดในช่วงชีวิตของ Object 1 ช่วง (1Sequence) ทำให้เรียกได้อีกชื่อหนึ่งว่า “State Machine Diagram” เนื่องจากเริ่มต้นมาจากเลียนแบบการเปลี่ยนพฤติกรรมของเครื่องจักร
State Diagram ประกอบด้วย State ต่างๆ ของ Object และเหตุการณ์ต่างๆ ที่ทำให้สถานะของ Object เปลี่ยนและการกระทำที่เกิดขึ้นเมื่อสถานะของระบบเปลี่ยนไป สามารถบอกสถานะของ Object ได้ โดยจะให้ความสนใจว่า ณ เวลาใดๆ Object นั้นมี status เป็นแบบใด ตัวอย่าง State diagram ที่สร้างจาก visual uml
Statechart Diagram เหมาะสำหรับการอธิบาย Object ที่มีสถานะจำนวนมาก และใช้อธิบายสถานะของ Object ที่ถูกใช้งานข้าม Use Case ซึ่งโดยทั่วไปจะเป็นระบบงานขนาดใหญ่ ดังนั้น หากเป็นระบบงานขนาดเล็กไม่ซับซ้อน ทีมงานอาจใช้ Statechart Diagram อธิบายเพียงบาง Object ที่จำเป็นเท่านั้น

State-Transition Diagram ทำหน้าที่ต่อไปนี้
- แสดงวงจรชีวิตของออบเจ็กต์ ระบบย่อยต่างๆ และระบบโดยรวม
- บ่งบอกว่าเหตุการณ์ต่างๆ จะส่งผลกระทบให้เกิดอะไรขึ้นบ้างในระบบ
- อาจมีจุดเริ่มต้นและและจุดจบได้หลายจุด

ความสัมพันธ์ระหว่าง Use Case Diagram, Class Diagram Statechart Diagram

- Use Case Diagram จะอธิบายทุก ๆ กรณีที่สามารถเกิดขึ้นได้ หลังจากนั้นจะมีการนำข้อมูลหรือเหตุการณ์ที่อธิบายจาก Use Case Diagram มาเขียน Class Diagram เพื่อแสดงความสัมพันธ์ของระบบทั้งหมด หลังจากนั้นจะนำเอา ข้อมูลที่ได้จากการออกแบบมาทำการเขียน State Diagram เพื่อนำไปพัมนาในส่วนพัฒนาต่อไปได้

แผนภาพใช้ในการวิเคราะห์ และออกแบบ
1. class diagram แสดงองค์ประกอบและความสัมพันธ์ของคลาส
2. object diagram แสดงองค์ประกอบและความสัมพันธ์ของวัตถุแผนภาพใช้ในการสร้างระบบ
3. component diagram แสดงโครงสร้างทางกายภาพสำหรับการเขียนโปรแกรม
4. deployment diagram แสดงความสัมพันธ์ของชุดโปรแกรมและฮาร์ดแวร์ที่ใช้
ส่วนที่แสดงพฤติกรรมและบทบาท ระบบ
5. use case diagram แสดงความต้องการของระบบ
6. sequence diagram จำลองพฤติกรรมของคลาสต่าง ๆ หรือขั้นตอนการทำงาน
7. collaboration diagram จำลองพฤติกรรมหรือความสัมพันธ์เชิงกิจกรรม
8. statechart diagram แสดงเหตุการณ์ของแต่ละสถานะ
9. activity diagram แสดงขั้นตอนของกิจกรรมในการปฏิบัติงาน

SA-Assignment 5 Data Flow Diagram

System Analysis Assignment 5
Data Flow Diagram (DFD)

รายละเอียดของงาน : ให้นักศึกษาตอบคำถามจากโจทย์ที่ให้ มีรายละเอียดดังนี้

1. จาก DFD รูปที่ 1 จงตรวจหาข้อผิดพลาดและแก้ไขให้ถูกต้อง

วิธีทำ แก้ไข DFD ให้ถูกต้อง

2. แก้ไข DFD ต่อไปนี้ให้ถูกต้อง
วิธีทำ แก้ไข DFD ให้ถูกต้อง



3. DFD ต่อไปนี้เป็น DFD ที่ไม่เหมาะสมเพราะเหตุใด


วิธีทำ แก้ไข DFD ให้ถูกต้อง

4. ตรวจสอบความสมดุลของ DFD ระบบ “สั่งซื้ออาหาร (Food Ordering System)” ต่อไปนี้








วิธีทำ แก้ไข DFD ให้เหมาะสม


5. แบบฝึกหัด
จงวาดแผนภาพกระแสข้อมูล (Context Diagram และ Data Flow Diagram Level 0) ของระบบทะเบียนนักศึกษา โดยระบบนี้จะมีกระบวนการสำหรับผู้ที่เกี่ยวข้องต่าง ๆ โดยแบ่งได้ดังนี้

งานทะเบียนและวัดผล สามารถใช้งานระบบได้ดังนี้
1. เพิ่ม/ลบ/แก้ไขข้อมูลนักศึกษาได้
2. เพิ่ม/ลบ/แก้ไขข้อมูลอาจารย์ได้
3. เพิ่ม/ลบ/แก้ไขข้อมูลหลักสูตร/รายวิชาได้
4. เพิ่ม/ลบ/แก้ไขข้อมูลคณะ/ภาควิชาได้
อาจารย์ประจำวิชา สามารถใช้งานระบบได้ดังนี้
1. บันทึกคะแนนเก็บ/คะแนนสอบได้
2. บันทึกผลการเรียนของนักศึกษาได้
3. รายงานผลการประเมินการสอนได้

นักศึกษา สามารถใช้งานระบบได้ดังนี้
1. ลงทะเบียนเรียนได้
2. รายงานผลการเรียนของนักศึกษาได้
3. ประเมินผลการสอนของอาจารย์ได้

คณบดี สามารถใช้ระบบได้ดังนี้
1. รายงานผลการเรียนของนักศึกษาได้
2. รายงานสรุปยอดจำนวนผู้เรียนได้
3. รายงานสรุปยอดผู้สอบตกได้
4. รายงานผลการประมินการสอนของอาจารย์ได้
หมายเหตุ ในการวาดแผนภาพกระแสข้อมูล ถ้านักศึกษาพบว่าข้อมูลในคำอธิบายรายละเอียดการทำงานของระบบที่ให้มานี้ไม่เพียงพอ ให้สมมุติคำอธิบายการทำงานที่สมเหตุสมผลเพิ่มเติมได้ เพื่อให้สามารถจัดทำ แผนภาพกระแสข้อมูลที่ครบถ้วนได้ โดยให้นักศึกษาต้องเขียนคำอธิบายเหล่านี้ประกอบแผนภาพที่จัดทำด้วย


SA-Assignment 4 การรวบรวมข้อมูล

System Analysis Assignment 4
Project Plan


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

วิธีการเก็บข้อมูลโดยการสัมภาษณ์
วิธีการสัมภาษณ์มีหลายวิธีสามารถเลือกวิธีการสัมภาษณ์ให้เหมาะสมกับงานที่ศึกษา ซึ่งสามารถจำแนกออกได้ ดังนี้
1.) การสัมภาษณ์ผู้ให้ข้อมูลเป็นรายบุคคล เป็นการสัมภาษณ์กลุ่มตัวอย่างที่ถูกเลือกออกมาเป็นตัวแทนของประชากรที่ศึกษา การสัมภาษณ์แบบนี้มีลักษณะเหมือนการใช้แบบสอบถามเพียงแต่ต่างกันที่มีการใช้วิธีการซักถามแทนการให้ผู้ตอบอ่านแล้วตอบข้อคำถามในแบบสอบถาม
2.) การสัมภาษณ์ผู้ให้ข้อมูลหลัก เป็นการที่ผู้สัมภาษณ์เก็บข้อมูลจากบุคคลผู้ซึ่งมีคุณสมบัติพิเศษแตกต่างไปจากสมาชิกคนอื่น โดยที่บุคคลนั้นมีความรอบรู้ข้อมูลต่างๆ ในเรื่องที่ผู้สัมภาษณ์ต้องการ ซึ่งการสัมภาษณ์ผู้ให้ข้อมูลหลัก เป็นการสัมภาษณ์เจาะลึก ใช้เก็บข้อมูลจากประชากรที่มีลักษณะพิเศษ เช่น นักการเมือง นักธุรกิจ ผู้นำทางวิชาการ ปราชญ์ชาวบ้าน
3.) การสัมภาษณ์แบบเป็นกลุ่ม เป็นการสัมภาษณ์กลุ่มบุคคลที่สามารถให้ข้อมูลเกี่ยวกับเรื่องที่ศึกษา หรือเรียกวิธีการนี้ว่าการซักถาม หรือสนทนากลุ่ม (Focus group interview) โดยผู้เก็บข้อมูลจะมีการนัดหมายผู้ให้ข้อมูลจำนวนประมาณ 7 - 10 คน มาประชุมร่วมกัน เพื่อการซักถามเก็บข้อมูลต่างๆ ตามที่ต้องการ ผู้เก็บข้อมูลหรือผู้สัมภาษณ์จะต้องเปิดโอกาสให้ผู้ให้ข้อมูลทั้งหมดได้แสดงความคิดเห็นหรือซักถามได้อย่างเสรี ซึ่งจะเป็นไปในลักษณะการสนทนา

ข้อดีของการเก็บข้อมูลแบบสัมภาษณ์
1. นักวิเคราะห์ได้ความคิดเห็นและคำแนะนำในการออกแบบระบบ ทำให้ผู้ถูกสัมภาษณ์มีส่วนร่วมในการออกแบบ ซึ่งทำให้ลดการต่อต้านระบบใหม่
2. ข้อมูลที่ได้เป็นข้อมูลที่มีคุณภาพ เนื่องจากเป็นข้อมูลที่ได้รับโดยการพูดคุยกัน ซึ่งเกิดขึ้นจากการดำเนินงานจริงๆ ในระบบ (ได้ข้อมูลโดยตรงจากแหล่งข้อมูล)
3. เหมาะสำหรับผู้ที่อ่าน/เขียนไม่คล่อง
4. ได้ข้อมูลที่ไม่สามารถเขียนตอบโดยตรง
5. สังเกตความจริงใจในการตอบได้
6. ตรวจสอบคำตอบได้

ข้อเสียของการเก็บข้อมูลแบบสัมภาษณ์
1. ลุงทุนมากทั้งเงิน คน และเวลา
2. ถ้าไม่ได้รับความร่วมมือ ข้อมูลจะเชื่อถือได้น้อย
3. ขึ้นอยู่กับคุณภาพของผู้สัมภาษณ์
4. นักวิเคราะห์อาจคล้อยตามความคิดเห็นที่เป็นอคติ (Bias) ของผู้ถูกสัมภาษณ์

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

ลำดับขั้นการสร้างแบบสอบถาม
1. ระบุข้อมูลที่ต้องการ
2. กำหนดชนิดของข้อคำถาม และเขียนข้อคำถาม
3. จัดหมวดหมู่ข้อคำถาม
4. จัดทำแบบสอบถามชนิดร่าง
5. ทดสอบใช้แบบสอบถาม แล้วปรับปรุง
6. นำไปใช้จริง

ข้อดีของการเก็บข้อมูลจากแบบสอบถาม
1. ประหยัดทรัพยากร (คน เงิน เวลา)
2. ได้ข้อมูลปฐมภูมิ
3. ผู้ตอบมีอิสระในการตอบ
4. เหมาะสำหรับกรณีผู้ตอบอยู่กระจัดกระจาย
ข้อเสียของการเก็บข้อมูลจากแบบสอบถาม
1. การทำแบบสอบถามที่ได้ผลตามความต้องการทำได้ยาก
2. มีข้อจำกัดในการได้ข้อมูลตามความต้องการ
3. คุณภาพของข้อมูลขึ้นตัวผู้ตอบ
4. การกระตุ้นให้ผู้ตอบอยากตอบทได้ยาก
5. การติดตามแบบสอบถามคืนใช้เวลา
6. ถ้าแบบสอบถามยาวจะเสียเวลาผู้ตอบ


1.3 การพัฒนาระบบแบบเร่งด่วน
Rapid Application Development (RAD)
Rapid Application Development (RAD) เป็นวิธีการพัฒนาระบบ (Methodology) วิธีการหนึ่ง ที่รวบรวมเทคนิค (Techniques) เครื่องมือ (Tools) และ เทคโนโลยี เพื่อผสมผสานและประยุกต์ใช้ในการสนับสนุนการพัฒนาระบบให้สามารถลุล่วงโดยใช้เวลาน้อยที่สุด ด้วยการมุ่งเน้นด้านการลดต้นทุนและระยะเวลาในการพัฒนา โดย RAD จัดเป็นกรรมวิธีการพัฒนาซอฟต์แวร์ที่ย่นระยะเวลาของขั้นตอนการวิเคราะห์ (Analysis), การออกแบบ (Design), การสร้าง (Build) และการทดสอบ (Testing) เพื่อจะได้ลดเวลาในการพัฒนาโดยรวมลงได้ ดังนั้น เพื่อความคล่องตัวจึงจำเป็นต้องมีทีมงานขนาดเล็กที่มีความรู้ความสามารถเฉพาะ ซึ่งประกอบด้วย ผู้เชี่ยวชาญด้านเทคโนโลยีสารสนเทศกับกลุ่มผู้ใช้งานมาร่วมกันพัฒนา โดย RAD นี้ถือเป็นการจัดการโครงการ (Project Management) อย่างง่ายชนิดหนึ่ง ทั้งนี้ต้องขึ้นอยู่กับความพร้อมขององค์กรในขณะนั้น ไม่ว่าจะเป็นเรื่องค่าใช้จ่าย บุคลากร รวมทั้งความต้องการที่แน่นอนของผู้ใช้ระบบ

ข้อดีของการพัฒนาระบบแบบเร่งด่วน
1. สามารถช่วยให้พัฒนาระบบได้สำเร็จลุล่วงโดยใช้เวลาน้อยที่สุด
2. ผู้ใช้สามารถใช้ระบบได้อย่างรวดเร็ว แม้ว่าระบบ Version 1 จะยังไม่สามารถทำงานได้ครอบคลุมหน้าที่ทุกส่วนงานก็ตาม
3. การเปลี่ยนแปลงการออกแบบและพัฒนาระบบทำได้ผลดีและรวดเร็ว
4. ใช้เวลาในการรอผลตอบสนองจากผู้ใช้ไม่มาก (ทำงานได้ดีสำหรับการพัฒนาระบบที่ยึดถือเวลาเป็นหลัก
สำคัญ)
5. ช่วยให้ผู้ใช้สามารถเข้าใจระบบดีขึ้น
6. ลดงบประมาณค่าใช้จ่ายและการใช้ทรัพยากรคน


ข้อเสียของการพัฒนาระบบแบบเร่งด่วน
1.การเปลี่ยนแปลงความต้องการของผู้ใช้อยู่ตลอดเวลา เนื่องจากโปรแกรมต้นแบบสามารถสร้างและแก้ไขได้โดยง่าย
2.ผู้ใช้ต้องรอระบบที่สมบูรณ์
3.การสร้างต้นแบบของระบบทีละส่วน ด้วยความเร็วในขณะที่มีการรวบรวม วิเคราะห์และออกแบบไปพร้อมๆ กัน ทำให้ขาดความรอบคอบในการตระหนักถึงปัญหาที่จะเกิดขึ้นตามมา เมื่อติดตั้งและใช้งานระบบ
4.การเน้นระยะเวลาที่สั้น ลดค่าใช้จ่ายส่งผลให้ได้ระบบที่มีคุณภาพต่ำ
5.ขนาดของระบบที่ต้องการจะเป็นเรื่องยุ่งยากในการพัฒนา
6.คุณภาพของเอกสารประกอบระบบจะมีมาตรฐานลดลง
7.ขาดความเข้าใจเกี่ยวกับเป้าหมายและค่าใช้จ่ายในการพัฒนาระบบ
8.ยากต่อการควบคุมความสอดคล้องของส่วนประกอบต่าง ๆ ของระบบ
9.ต้องทำการทดสอบบ่อยครั้ง
10.ยากต่อการบำรุงรักษา (Maintenance)


2. กรณีที่เป็นโครงการพัฒนาระบบขนาดใหญ่ มีผู้เกี่ยวข้องกับระบบหลายกลุ่ม ทั้งลูกค้าและ Supplier ท่านคิดว่าจะใช้วิธีใดในการเก็บรวบรวมข้อมูลเพราะเหตุใด
โครงการพัฒนาระบบขนาดใหญ่ มีผู้เกี่ยวข้องกับระบบหลายกลุ่ม ทั้งลูกค้าและ Supplier ควรใช้การพัฒนาแบบ Joint Appilcation Development (JAD) ซึ่งเป็นกระบวนการในการจัดการและเพิ่มความสามารถในการปฏิบัติงานร่วมกันของเจ้าของระบบ ผู้ใช้ระบบงาน นักวิเคราะห์ระบบ ผู้ออกแบบระบบ และผู้สร้างระบบ ร่วมกันกำหนดขอบเขต วิเคราะห์ และออกแบบระบบ โดยประชุมงานร่วมกันของผู้มีส่วนเกี่ยวข้องกับการพัฒนาระบบ โดยต้องเลือกผู้ใช้งานที่มีความสำคัญเข้าทำงานร่วมกันก็จะก่อให้เกิดประสิทธิภาพในกระบวนการสร้าง ทั้งนี้เพื่อช่วยลดเวลาและค่าใช้จ่ายในขั้นตอนการเก็บรวบรวมข้อมูล ข้อดีของ JAD คือสามารถให้รายงานความต้องการระบบงานที่แม่นยำกว่า เข้าใจจุดมุ่งหมายได้ดีกว่า และมีข้อผูกพันที่แน่นหนากว่าในการที่จะทำระบบงานใหม่ให้สำเร็จ เนื่องจากผู้ใช้ระบบเป็นผู้มีส่วนร่วมในการดำเนินการตั้งแต่ต้น แต่อาจมีข้อเสียคือ JAD อาจจะมีค่าใช้จ่ายที่สูงและอาจไม่คล่องตัวในการทำงานหากคณะทำงานมีจำนวนสมาชิกมากเกินไป
การเก็บรวบรวมข้อมูลด้วยเทคนิค JAD สามารถดำเนินการได้ด้วยการจัดให้เป็นห้องประชุม ซึ่งลักษณะแตกต่างกันไปขึ้นอยู่แต่ละองค์กร ในระหว่างการประชุม JAD นักวิเคราะห์ระบบสามารถใช้ Case Tools และ Prototype ช่วยสนับสนุนการดำเนินการได้ ซึ่งจะทำให้การประชุมดำเนินการได้รวดเร็วยิ่งขึ้น โดยทั่วไปผู้เข้าร่วมการดำเนินการเก็บรวบรวมข้อมูลด้วยเทคนิค JAD มีดังนี้
1. JAD Session Leader เป็นผู้ดำเนินการประชุม ต้องเป็นผู้ที่ผ่านการอบรมการทำงานเป็นกลุ่มและเป็นผู้ที่คอยอำนวยความสะดวกระหว่างการประชุม ทั้งยังเป็นผู้จัดตั้งระเบียบวาระการประชุมรวมถึงการควบคุมการประชุมให้อยู่ในวาระ เพื่อให้ได้ข้อมูลตรงจุด
2. Users คือ ผู้ใช้ระบบ เนื่องจากเป็นผู้ที่ใช้ระบบเป็นประจำทุกวัน ดังนั้นจะมีความเข้าใจถึงการทำงานและปัญหาที่เกิดขึ้นเป็นอย่างดี
3. Manager ผู้บริหารขององค์กร ซึ่งเป็นผู้ที่ใช้ระบบเช่นเดียวกับ User ผู้บริหารจะคอยเตรียมคำถามที่มุ่งเน้นไปที่ระบบที่ต้องการพัฒนาขึ้นมาใหม่ คอยจูงใจและคอยช่วยหาข้อสรุปในแต่ละวาระการประชุม
4. Sponsor คือ ผู้ที่รับผิดชอบเรื่องค่าใช้จ่ายในการพัฒนาระบบนั้นๆ ซึ่งอาจจะเป็นผู้บริหารระดับสูงสุดขององค์กรก็ได้
5. System Analyst นักวิเคราะห์ระบบและทีมของนักวิเคราะห์ระบบ ทำหน้าที่เก็บข้อมูลจากการประชุมในแต่ละครั้ง
6. Scribe คือ ผู้ที่ทำหน้าที่จดสรุปรายละเอียดระหว่างการประชุม โดยทั่วไปอาจใช้เครื่องคอมพิวเตอร์แบบพกพาช่วยในการบันทึก
7. IS Staff ทีมของหน่วยบริการสารสนเทศองค์กรเช่น นักวิเคราะห์ระบบ โปรแกรมเมอร์ และผู้เชี่ยวชาญด้านฐานข้อมูล บุคคลเหล่านี้สามารถเสนอความคิดเห็นด้านเทคโนโลยีได้