Tuesday, April 21, 2015

Related Work and idea

Research -->  fault prediction/avoidance จะสนใจใน fault
                -->  runtime verification สนใจในพฤติกรรมที่นำไปสู่ failure
                       เพราะ failure สามารถหลีกเลี่ยงได้  แม้จะเกิด fault ขึ้น

1.งานพวก Runtime verification มีจุดประสงค์เดียวกัน แต่ต่างกระบวนการสร้างกฏที่เกิดขึ้น
   เช่น สร้าง specification จากไดอะแกรมต่าง ๆ   สร้างจากการเรียนรู้  สร้างจาก code เป็นต้น
   ซึ่งจำเป็นต้องรู้ event ที่ทำให้ state ปกติ  และ event ที่ทำให้ state ไม่ปกติ

2. งาน fault prediction ที่ใช้ ฺBN
    -  ใช้จำนวน method call, จำนวนบรรทัดของโค้ดใน method และอื่นๆ เป็นพารามิเตอร์ สำหรับ BN ในการเรียนรู้
    -  ใช้ attribute ของระบบ เช่น
             redundancy  -->  รอขยายความ
            constrained-ness --> รอขยายความ
            personnel turnover  -->  รอขยายความ

   -  วิเคราะห์ algorithm แล้วนำมา combine เพื่อทำนาย error  แต่ใช้ระดับที่สูงกว่าข้อมูลจากโปรแกรม
   -  นำเสนอการเรียนรู้และวิเคราะห์หาสาเหตุของการเกิด failure แต่ใช้กับ CPU usage
   - ใช้ model และ algorithm เพื่อวิเคราะห์หา trace log และทำนาย  root cause (งานนี้ใช้เครื่องมือต่าง จุดประสงค์ต่าง)


การจะกำหนด event หรือ behavior ต้องรู้ relationship

relationship เก็บได้จาก  sources(document, specification, expert) or การเรียนรู้


   sources(document, specification, expert) or การเรียนรู้
                                        |
                                        |
                                       V
                              relationship
                                        |
                                        |
                                       V
                         event หรือ behavior

***
งานของกวาง  ใช้ Bayesian Network เพื่อสร้าง rule จาก behavior ของโปรแกรม เพื่อจับ failure และหลีกเลี่ยงก่อนที่เหตุการณ์จะเกิดขึ้น

โดย BN เรียนรู้ความสัมพันธ์ และความน่าจะเป็น (ใช้ WEKA)จาก log ของตัวแปร  แล้วจึงสร้างกฏขึ้นมา

1. Data collection  ใช้การ instrument code และเพิ่มตัวแปร "colliding" เพื่อเก็บ track ของ state ที่นิยามเอาไว้ว่าจะเกิด failure  (ข้อสังเกตส่วนของการเพิ่มตัวแปรมีผลต่อการทำงานของโปรแกรมหรือไม่) 
เก็บเพื่อเอาไปเป็นพารามิเตอร์ในการเรียนรู้


2. ใช้ BN เรียนรู้ว่า event ไหนที่จะนำไปสู่การเกิด failure

3.evaluation ทดสอบประสิทธิภาพของความสัมพันธ์ที่ได้

4. สร้าง rule  (ใช้ IF-THEN)







No comments:

Post a Comment