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

System Implementation and System Maintenance

การบ้านครั้งที่ 8 : System Analysis

1. หากองค์กรซื้อซอฟต์แวร์สำเร็จรูปมาใช้งาน มีวิธีปรับแก้อย่างไรให้เข้ากับระบบองค์กร
การปรับแก้ซอฟต์แวร์สำเร็จรูป
กรณีที่องค์การเลือกซอฟแวร์สำเร็จรูปมาใช้ในระบบงานใหม่ ก่อนที่จะมีการติดตั้งระบบ โปรแกรมเมอร์จะต้องพิจารณาว่าซอฟต์แวร์ที่ซื้อมานั้น จะต้องได้รับการแก้ไขอย่างไรจึงจะมีลักษระการทำงานที่ตรงกับความต้องการขององค์กรการแก้ไขซอฟแวร์ที่ซื้อมาสามารถจำแนกได้ 3 ลักษณะดังต่อไปนี้
1. การปรับฟังก์ชันการทำงานของซอฟต์แวร์สำเร็จรูป (Customize Packages) เป็นการปรับเพิ่มหรือลดฟังก์ชันการทำงานของซอฟต์แวร์ที่ซื้อมา ให้สามารทำงานได้เหมาะสมกับระบบที่กำลังพัฒนา โดยการเพิ่มหรือลดฟังก์ชัน มี 3 ลักษณะดังนี้
- Configuration เป็นการเพิ่ม/ลดฟังก์ชันโดยการปรับแต่งคุณสมบัติหรือค่าพารามิเตอร์ต่างๆของซอฟต์แวร์ที่ซื้อมา ให้สามารถทำงานได้เหมาะสมกับระบบที่กำลังพัฒนา โดยการเพิ่มหรือลดฟังก์ชันที่ซอฟแวร์มีให้ เป็นต้น
- Modification เป็นการเพิ่ม/ลดฟังก์ชันโดยการเปลี่ยนแปลงโค้ดของซอฟต์แวร์ที่ซื้อมา เพื่อให้มีรูปแบบการทำงานที่เหมาะสมกับระบบงานขององค์กร การแก้ไขซอฟต์แวร์สำเร็จรูปลักษณะนี้ จะต้องอาศัยโปรแกรมเมอร์ที่มีความชำนาญเป็นพิเศษ เนื่องจากซอฟต์แวร์สำเร็จรูปบางชนิดไม่อนุญาตให้มีการแก้ไจโค้ด
- Enhancement เป็นการเพิ่มฟังก์ชันโดยการเพิ่มโมดูลการทำงานของซอฟต์แวร์ที่ซื้อมา การ Customize ซอฟต์แวร์สำเร็จในรูปลักษณะนี้ไม่ใช่การแก้ไขโค้ด แต่เป็นการเพิ่มฟังก์ชันกาทำงานเข้าไปในซอฟต์แวร์
2. การประสานซอฟต์แวร์สำเร็จรูป (Integration Packages) เป็นการประสานซอฟต์แวร์สำเร็จรูปในงานเฉพาะด้านของแต่ละหน่วยงานเข้าด้วยกัน ให้สามารถทำงานร่วมกันได้ แต่เดิมซอฟต์แวร์สำเร็จรูปอาจจำมาใช้งานในแต่ละแผนกแตกต่างกันออกไป
3. การอัพเกรดซอฟต์แวร์สำเร็จรูป (Upgrading Packages) การอัพเกรดซอฟแวร์สำเร็จรูปจากผู้ผลิต อาจมีหลายลักษณะ เช่น การเพิ่มประสิทธิภาพ แก้ไขข้อผิดพลาด ที่พบจากซอฟต์แวร์รุ่นก่อนหน้า เป็น
สรุป การปรับแก้ซอฟต์แวร์สำเร็จรูปจะต้องอาศัยปัจจัยหลายประการเป็นสำคัญไม่ว่าจะเป็นความต้องการของระบบในซอฟต์แวร์สำเร็จเป็นอย่างไรสามารถที่จะมาปรับใช้กับองค์กรได้หรือไม่ ค่าใช้จ่ายที่เกิดขึ้นเป็นอย่างไร มากพอจะลงทุนทำการปรับแก้หรือไม่ สิ่งเหล่านี้เป็นสิ่งที่องค์กรต้องนำมาพิจารณาเป็นพิเศษ และที่สำคัญเมื่อมีการแก้ไขระบบแล้วผลกระทบต่อ business flow ของระบบจะเป็นอย่างไร เกิดผลกระทบต่อระบบมากน้อยเพียงใด สิ่งที่กล่าวมาทั้งหมดล้วนสำคัญต่อการปรับเปลี่ยนซอฟต์สำเร็จ





2. Inspection กับ Walkthrough ต่างกันอย่างไร
Inspection คือ เป็นการทดสอบโปรแกรมที่เป็นทางการ โดยทีมงานที่รับผิดชอบจะต้องตรวจสอบโค้ดแรแกรมว่ามีข้อผิดพลาดหลักๆเกิดขึ้นหรือไม่ ข้อผิดพลาดหลักดังกล่าว คือข้อผิดพลาดที่อาจเกิดขึ้นตามที่ภาษาโปรแกรมมิ่งแต่ละผลิตภัณฑ์ได้กำหนดไว้ในคู่มือ ทีมงานจะจัดทำรายการข้อผิดพลาดดังกล่าว แล้วตรวจสอบว่าโปรแกรมมีข้อผิดพลาดข้อใดบ้างทีละรายการ
Walkthrough คือ การทดสอบที่ไม่เป็นทางการ โดยทีมงานจะตรวจสอบโค้ดโปรแกรมทันทีที่โปรแกรมนั้นมีความคืบหน้า และการตรวจสอบจะเกิดขึ้นบ่อยครั้ง จนกว่าโปรแกรมจะเสร็จสิ้น ดังนั้น

Inspection กับ Walkthrough เป็นการทดสอบที่ไม่ใช้คอมพิวเตอร์สร้างกรณีทดสอบ (Test Case ) แต่ใช้ทีมงานทดสอบตรวจสอบหาข้อผิดพลาดในเบื้องต้นแต่จะแตกต่างกันที่การทดสอบทั้งสอบแบบจะมีลักษณะการดำเนินการแตกต่างกัน การทดสอบ Inspection จะเป็นการทดสอบที่เคร่งครัดกว่าการทดสอบแบบ Walkthrough แต่ผลระยะยาวของระบบจะแตกต่างกัน อย่าง Inspection จะมีเอกสารประกอบการ ทดสอบมีผลระยะยามทำให้ระบบมีประสิทธิไม่มีปัญหาตามมาภายหลังมากนัก ส่วน Walkthrough จะแก้ไขระบบทันทีง่ายต่อการแก้ไข ไม่ต้องมานั่งวิเคราะห์ระบบจึงทำให้ไม่เสียเวลาในการค้นหา

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

การทดสอบการยอมรับ แบ่งเป็น 2 ประเภท ได้แก่
Alpha Testing เป็นการทดสอบโดยใช้ข้อมูลสมมุติ และทดสอบในสถานที่จำลอง (ไม่ใช่สถานที่ใช้งานจริง) การทดสอบชนิดนี้จะทำให้ทราบว่าระบบมีข้อผิดพลาดใดเกิดขึ้นบ้าง แบ่งออกเป็น 4 ชนิดย่อย ดังนี้
- Recovery Testing เป็นการทดสอบความสามารถในการกู้คืนระบบเมื่อระบบล่ม โดยระบบที่ดีจะต้องสามารถทำงานต่อไปได้และต้องทนต่อความผิดพลาด (Fault Tolerance) ได้ เมื่อเกิดความล้มเหลวในส่วนใดส่วนหนึ่ง จะต้องไม่ส่งผลให้ระบบหยุดการทำงานทั้งหมด ดังนั้น ในการทดสอบชนิดนี้ทีมงานจึงต้องทำระบบล้มเหลวในสถานการณ์ต่างๆ ให้มากที่สุด เพี่อค้นหาความล้มเหลวที่อาจเกิดขั้นได้ และตรวจสอบระยะเวลาการกู้คืนของระบบในแต่ละสถานการณ์ไม่ว่าจะเป็นการกู้คืนข้อมูล ตอลดจนการรีสตาทร์ระบบใหม่
- Security Testing เป็นการทดสอบความปลอดภัยของระบบงานว่ามีเครื่องมือรักษาความปลอดภัยที่รัดกุม และมีประสิทธิภาพเพียงพอหรือไม่ จากสถานการณ์การลักลอบเข้าสู่ระบบหรือการลักลอบเรียกใช้ข้อมูล
- Stress Testing เป็นการทดสอบประสิทธิภาพการทำงานของระบบ งานภายใต้สภาพความกดดัน เช่น จะเกิดอะไรขึ้นเมื่อผู้ใช้ป้อนข้อมูลไม่ครบทุก Field หรือจะเกิดอะไรขึ้นเมื่อมีการเข้าถึงข้อมูลในเวลาเดียวกันจากผู้ใช้หลายๆ คน เป็นต้น
- Performance Testing เป็นการทดสอบประสิทธิภาพการทำงานของระบบงานภายใต้สภาพแวดล้อมที่แตกต่างกันว่าระบบมี Response Time มากน้อยเพียงใด เช่น ระบบปฏิบัติการคอมพิวเตอร์ที่แตกต่างกัน หรือระบบเครือข่ายที่แตกต่างกัน เป็นต้น
Beta Testing คือ การทดสอบความสมบูรณ์ของระบบงานโดยใช้ข้อมูลจริงทำการทดสอบภายใต้สถานการณ์ที่เกิดขึ้นจริง การทดสอบประเภทนี้ถือว่าเป็นการซ้อมติดตั้งระบบเพื่อใช้งานจริง เนื่องจากเป็นการทดสอบระบบงานอย่างสมจริงไม่ว่าจะเป็นสถานการณ์ ข้อมูล ขั้นตอนการดำเนินงาน เอกสารคู่มือ การฝึกอบรม การสนับสนุนการทำงาน รวมทั้งยังเป็นการแก้ปัญหาที่พบจากการทดสอบแบบ Alpha Testing ด้วย

4. การจัดการ การบำรุงรักษาระบบ ทีมงานจะต้องจัดการงานด้านใดบ้างอย่างไร
การบำรุงรักษาระบบ หมายถึง การเปลี่ยนแปลงระบบภายหลังจาการส่งมอบและใช้งานมีวัตถุประสงค์เพื่อแก้ไขข้อผิดพลาด ปรับปรุงประสิทธิภาพ หรือดัดแปลงระบบให้เหมาะสมกับสภาพแวดล้อมที่เปลี่ยนแปลงได้
กระบวนการบำรุงรักษาระบบมีทั้งหมด 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) เป็นการฟื้นฟูสภาพระบบ คือ ความพยายามที่จะเพิ่มคุณภาพของระบบเก่าที่ใช้งานมานานแล้ว โดยกาย้อนกลับไปรื้อระบบเพื่อค้นหาข้อมูลที่มีประโยชน์ต่อการซ่อมรุง หรือ เพื่อปรับระบบให้มีคุณภาพมากขั้นกว่าเดิม การฟื้นฟูสภาพระบบสามารถทำได้หลายลักษณะ ดังนี้
- การปรับเอกสารใหม่ เป็นการสร้างเอกสารของระบบขึ้นมาใหม่ โดยอาศัยการวิเคราะห์จากซอร์สโค้ดของซอฟต์แวร์ระบบเดิม โดยทีมงานต้องวิเคราะห์ส่วนประกอบหลายอย่างจากซอร์สโค้ด ไม่ว่าจะเป็นการเรียกใช้ตัวแปร การเรียกใช้คอมเน้นท์ เส้นทางการควบคุมการทำงานของโปรแกรม การรับ-ส่ง พารามิเตอร์ ตลอดจนเส้นทางทดสอบโปรแกรม
- การปรับโครงสร้างใหม่ เป็นการปรับโครงสร้างของซอร์สโค้สเดิมให้สามารถเข้าใจและแก้ไขได้ง่ายขึ้น
- การวิศวกรรมย้อนกลับ เป็นการนำซอร์สเก่ามาวิเคราะห์ และออกแบบใหม่ให้มีประสิทธิภาพและบำรุงรักษาง่ายขึ้น ข้อมูลที่ได้จากการรื้อซอร์สโค้ดของระบบเก่าจะมีความสมบูรณ์เพียงใดนั้นขึ้นอยู่กับทีมงานและเครื่องมือที่ใช้ และเนื่องจากลักษณะของการวิศวกรรมย้อนกลับคล้ายกับการปรับเอกสารใหม่เป็นอย่างมาก การปรับเอกสารใหม่ เป็นอีกรูปแบบหนึ่งจองการวิศวกรรมย้อนกลับ
- การปรับรื้อใหม่ หมายถึงการพิจารณาและเปลี่ยนแปลงซอฟต์แวร์เดิม แล้วสร้างให้เป็นซอฟต์แวร์ในรูปแบบใหม่ การปรับรื้อใหม่เป็นการดัดแปลงซอฟต์แวร์เดิมให้อยู่ในรูปแบบใหม่หลังจากที่ได้ผ่าน การวิศวกรรมย้อนกลับ มาแล้ว โดยทั่วไปการปรับรื้อซอฟต์แวร์ใหม่ก็เพื่อเพิ่มฟังก์ชันงานใหม่ หรือ เพื่อแก้ไขข้อบกพร่องของซอฟต์แวร์เดิม
สรุปสำหรับการบำรุงรักษานั้นทำให้เกิดต้นทุนกับระบบมาก จะมีแนวโน้มที่เพิ่มขึ้น โดยปัจจัยที่ส่งผลกระทบให้ต้นทุนในการบำรุงรักษาระบบของแต่ละองค์กรตากต่างกันมีหลายประการ เช่น จำนวนข้อผิดพลาดที่แฝงอยู่ในระบบ คุณภาพของงานเอกสาร คุณภาพของทีมงานบำรุงรักษาระบบเป็นต้น ดังนี้ การบำรุงรักษาระบบจึงต้องดำเนินการอย่างเป็นลำดับขั้นตอนได้แก่
1. เก็บรวบรวมคำร้องขอให้ปรับปรุงระบบ
2. วิเคราะห์ข้อมูลการร้องขอให้ปรับปรุงระบบ
3. วิเคราะห์ข้อมูลการร้องขอให้ปรับปรุงระบบ
4. ออกแบบการทำงานที่ต้องการปรับปรุง
5. ปรับปรุงระบบ
แต่ละขั้นตอนระบบสามรถช่วยให้ต้นทุนการบำรุงรักษาไม่สูงมากนักจนเกินไป

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

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