บทที่ 17 Dependable system specification Dependable
หมายถึงการที่เราพัฒนาหรือ software มาใช้งานแล้ว เราจะเอาธุรกิจของเราไปฝากไว้กับ
software ตัวนี้ได้มากน้อยแค่ไหน หรือว่า software ตัวนี้มีความน่าเชื่อถือมากน้อยแค่ไหน
ซึ่งจะประกอบด้วย
- Availability คือ software มีความพร้อมใช้งานได้ตลอดเวลาหรือเปล่า
- Reliability คือ software จะมีความน่าเชื่อถือได้มากน้อยแค่ไหน
- Safety คือ software มีความปลอดภัยมากน้อยแค่ไหน
- Security คือ software นั้นมีการรักษาความปลอดภัยได้ดีแค่ไหน
มีการจัดการสิทธิในการใช้งานดีหรือเปล่า
System reliability specification
จะแบ่งออกเป็น
- Hardware reliability คือโอกาสที่
hardware จะล้มเหลว และเมื่อล้มเหลวแล้วจะใช้เวลาเท่าไรจึงจะกลับมาใช้งานใหม่ได้อีก
- Software reliability คือโอกาสที่
software จะล้มเหลวและให้ข้อมูลที่ผิดพลาดออกมา ซึ่งจะต่างกับ Hardware เพราะว่าเวลาที่
Hardware ล้มเหลวจะหยุดทำงาน แต่ของ Software บางทีอาจจะไม่หยุดทำงาน แต่จะให้ข้อมูลที่ผิดพลาดออกมา
- Operator reliability คือโอกาสที่ผู้ใช้งานในระบบจะทำผิดพลาดมีมากน้อยแค่ไหน
เช่น ปุ่มที่ไม่เกี่ยวข้องกับการทำงานควรจะไม่สามารถกดได้
การวัดโอกาสที่จะเกิดความผิพลาด
เราจะวัดจากความเป็นไปได้ ( Probabilities ) ที่ระบบจะล้มเหลว แต่ว่าในระบบหนึ่งๆจะแบ่งออกเป็นระบบย่อยๆ
เราจึงต้องวัดโอกาสที่จะเกิดความล้มเหลว ของแต่ละระบบย่อย แล้วเอามารวมกันเป็นโอกาสความล้มเหลวของระบบใหญ่
ตย.เช่น (slide4) มีระบบย่อย 2 ระบบคือ A กับ B โอกาสความล้มเหลวของระบบ A และ
B จะเขียนเป็น P(A) และ P(B) และโอกาสของความล้มเหลวของระบบใหญ่คือ P(S) = P(A)
+ P(B)
หรือในอีกกรณีหนึ่งคือถ้าระบบย่อยถูกสร้างขึ้นมาบนพื้นฐานเดียวกันต่างกันก็เพียงข้อมูลเท่านั้นเอง เพราะฉะนั้นโอกาสความผิดพลาดของระบบใหญ่คือ P(S) = P(A)n โดยที่ n คือจำนวนของระบบย่อยที่มีโครงสร้างเหมือนกัน หรือในบางกรณีอาจจะเกิดเป็นแบบ P(S) = P(A) + P(B)3 + P(C) ก็ได้
Functional reliability requirement
( ความต้องการของความน่าเชื่อถือของ Software )
- เช็คช่วงของข้อมูลที่ user ใส่เข้ามาว่ามีช่วงไหนบ้างที่ทำให้เกิดความล้มเหลวได้
หรือ ช่วงไหนที่ยอมรับได้
- ทุกครั้งที่ระบบเริ่มการทำงานครั้งแรกจะมีการตรวจสอบว่ามี
error บน Hard disk บ้างหรือเปล่า
Non functional reliability specification
( ข้อกำหนดด้านความน่าเชื่อถือของ software )
- ควรจะเป็นตัวเลขที่สามารถวัดผลได้
เช่น จะไม่ยอมให้ความผิดพลาดมากกว่า 3 ครั้งใน 1000 บรรทัด
- มักจะทำเป็น reliability metric
ก็คือตารางระบุว่าความผิดพลาดแบบไหนยอมรับได้มากน้อยแค่ไหน
Reliability metric
- เป็นหน่วยในการวัดความน่าเชื่อถือของระบบ
- จะวัดจากจำนวนความล้มเหลวว่าเกิดขึ้นกี่ครั้งเมื่อเทียบกับความต้องการที่จะใช้ระบบ
หรือเทียบกับระยะเวลาที่ระบบถูกใช้งาน
Note : ASP คือการให้บริการเช่า Software ผ่านทางระบบเครือข่าย ถ้าระบบผู้ให้บริการล่มจะทำให้ลูกค้าที่เช่าใช้บริการล่มด้วย เกิดความเสียหายมากมาย ส่วนใหญ่ค่า MTTF กับ AVAIL จะใช้คู่กัน โดยที่ MTTF จะใช้กับ hardware แต่ AVAILจะใช้กับ software |
ส่วนใหญ่จะมีระบุกันในสัญญาการเช่าใช้งานเลยว่า AVAIL=99.9% หมายความว่า ถ้าให้บริการ 100 ชม.จะเกิดโอกาสล้มเหลวได้เพียง 0.01% เท่านั้น
การจัดหมวดหมู่ความล้มเหลวของระบบ
( จากเบาสุดไปยังหนักสุด )
- Transient คือความล้มเหลวที่เกิดขึ้นเฉพาะบางเหตุการณ์
ไม่ได้เกิดขึ้นเสมอไป แล้วไม่นานก็กลับมาใช้งานได้เหมือนเดิม
- Permanent คือความล้มเหลวถาวร ทุก
input ที่ใส่เข้ามาแล้วล้มเหลวหมด
- Recoverable คือเมื่อเกิดความล้มเหลวแล้วสามารถกลับมาเริ่มใหม่ได้
โดยข้อมูลยังคงอยู่
- Unrecoverable คือระบบล้มเหลวแล้วข้อมูลจะหายไป
แต่ยังกลับมาเริ่มใหม่ได้
- Noncorrupting คือเมื่อเกิดความล้มเหลวแล้วข้อมูลกับระบบยังไม่เสียหาย
- Corrupting คือเป็นความเสียหายอย่างสิ้นเชิง
ข้อมูลก็เสียหายด้วย
ส่วนใหญ่เราจะเปรียบเทียบเป็นคู่ๆไปคือ Transient กับ Permanent , Recoverable กับ Unrecoverable , Non-corrupting กับ Corrupting
ขั้นตอนในการกำหนด specification
ของความน่าเชื่อถือของระบบ
ขั้นตอนไม่มีอะไรมากให้ข้ามไปดูตย.ข้างล่างเลย (slide11) จะเห็นได้ชัดเจนกว่า
จากตารางในส่วนซ้ายมือจะบอกถึงความรุนแรงของความล้มเหลวนั้นๆ ส่วนตรงกลางจะเป็นตย.ความรุนแรงที่เกิดขึ้น ส่วนขวาสุดคือค่า reliability metric ตารางนี้ควรจะมีในเอกสารกำหนด specification ของระบบด้วย
Reliability specification ต่างๆที่ได้กำหนดไว้แล้วนี้ ในความเป็นจริงอาจจะเป็นไปไม่ได้ที่จะวัดได้จริงๆ ( นอกจากว่าเคยเกิดขึ้นจริงแล้วจึงสามารถวัดได้ ) เพราะว่าโอกาสที่ความล้มเหลวจะเกิดขึ้นมามันต่ำมาก เช่น โอกาสล้มเหลว 1/1000 เราจะต้องให้ระบบทำงานถึง 1000 รอบจึงจะวัดโอกาสที่จะล้มเหลวได้ มันจึงไม่คุ้มค่ากับเวลาและงบประมาณที่จะต้องใช้ หรือในบางกรณีอาจจะเป็นไปไม่ได้เลยที่จะทำการทดสอบเลยก็ได้
ส่วนที่เหลือจะเป็นเรื่องการวิเคราะห์ภัย ( Hazard ) ที่เกิดขึ้นกับระบบและการวิเคราะห์ความเสี่ยง ( Risk ) ของระบบ ซึ่งจะไม่ค่อยสำคัญ สามารถอ่านทำความเข้าใจเองได้ อาจารย์จึงข้ามไปบทที่ 18 เลย
บรรยายเมื่อ 25กพ. 2545 เทอม 2/44
ฺBack | Lesson 16 | Lesson 17 | Lesson 18 | Lesson 20 | Lesson 29 | Index | Mores |