วันศุกร์ที่ 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

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