Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations.

Similar presentations


Presentation on theme: "1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations."— Presentation transcript:

1 1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations

2 2 אנו רוצים בסיס נתונים שימפה בין כתובות לעמודי מידע. אנו רוצים להגדיר נקודה בזמן (CheckPoint) בה יוקפא המידע. ניתן יהיה לשחזר את מצב המערכת למצבה בנקודת ההקפאה בעצם נקודת ההקפאה משמשת מעין גיבוי למצב המערכת עמודים 17-23 בספר של Zed שבאתר מערכת לניהול זיכרון

3 3 הגדרות כלליות למערכת נגדיר שני טיפוסי נתונים בסיסיים: ADDR, PAGE נגדיר את בסיס הנתונים שלנו כמיפוי בין הכתובות לדפים. הגדרה / סימון, בכל מקום נחליף את DATABASE במיפוי כל הפונקציות האפשריות המערכת: Checksys = [ Working, Backup : DATABASE ] יש לדאוג לאיתחול של כל מרחב הכתובות לדפים ריקים

4 4 הגדרת המערכת הבסיסית ┌─── Access ────  Checksys a? : ADDR p! : PAGE ├────────── p! = Working(a?) └───────────── ┌─── Update ────  Checksys a? : ADDR p? : PAGE ├────────── └───────────── קבלת דף לקריאה, אין שינוי במצב המערכת עדכון דף במערכת

5 5 הגדרת המערכת הבסיסית (המשך) ┌─── Checkpoint ────  Checksys ├────────── └───────────── ┌─── Restore ────  Checksys ├────────── └───────────── יצירת גיבוי שחזור מצב המערכת

6 6 עידון נתונים (Data refinement) אנו נגדיר מחדש את מבנה הנתונים שלנו. ההגדרה החדשה תהיה מותאמת יותר לבעיה האמיתית. בעקבות שינוי מבנה הנתונים נצטרך להגדיר מחדש (חלק) מהפעולות של המערכת

7 7 עידון נתונים להחזיק שני עותקים מלאים של בסיס הנתונים התברר לנו כהחלטה יקרה. תופס הרבה מקום. לוקח הרבה זמן ליצור גיבוי במקום לשמור שני עותקים נשמור עותק אחד + רשימת שינויים

8 8 עידון הנתונים ┌─── Checksys1 ──── Master Changes └───────────── ┌─── Abs ──── ├────────── └───────────── הסכמה המעודנת (קונקרטית) הגדרת הקשר בין שתי המערכות Master = [ master : DATABASE ] Changes = [ changes : ADDR PAGE ] הגיבוי שלנו רשימת השינויים מהגיבוי האחרון

9 9 הפעולות לאחר העידון ┌─── Access1 ──── ├────────── └───────────── ┌─── Update1 ──── ├────────── └─────────────

10 10 הפעולות לאחר העידון (המשך) ┌─── Checkpoint1 ──── ├────────── └───────────── ┌─── Restore1 ──── ├────────── └───────────── יצירת גיבוי שחזור מצב המערכת

11 11 עידון פעולות ללא עידון נתונים: נאמר כי פעולה קונקרטית (OP C ) מעדנת פעולה אבסטרקטית (OP A ) אם: 1.הפעולות פועלות על אותם המשתנים 2.ישימות – pre OP A ⊦ pre OP C 3.נכונות – (pre OP A )  OP C ⊦ OP A ונסמן זאת כך : OP A ⊑ OP C עם עידון נתונים: הפעולות פועלות על שני ייצוגים שונים של נתוני המערכת המקושרים ביניהם על ידי סכימת Abs. 1.ישימות – (pre OP A )  Abs ⊦ pre OP C 2.נכונות – (pre OP A )  Abs  OP C  Abs’ ⊦ OP A OP A is possible -> OP C is possible OP A was possible; OP C was performed -> the result of OP A holds

12 12 בדיקת כללי העידון ל Update כדי להראות כי Update ⊑ Update1 אנו צריכים להוכיח שני דברים: ישימות Pre Update  Abs ⊦ pre Update1 נכונות Pre Update  Abs  Update1  Abs’ ⊦ Update

13 13 בדיקת כללי העידון ל Update (המשך) ┌─── Update ────  Checksys a? : ADDR p? : PAGE ├────────── └───────────── ראשית נבחן את pre Update (להזכירכם יש לבצע הסתרת משתנים) ┌─── pre Update ──── ├────────── └─────────────

14 14 בדיקת כללי העידון ל Update (המשך) נזכיר את כלל הצמצום: (  x:A · (x=T)  P)  (T  A  P[T/x]) ונקבל ┌─── pre Update ──── Checksys a? : ADDR p? : PAGE ├────────── └───────────── ואם עוד קצת מאמץ נקבל ┌─── pre Update ──── Checksys a? : ADDR p? : PAGE ├────────── └─────────────

15 15 בדיקת כללי העידון ל Update (ישימות) ישימות Pre Update  Abs ⊦ pre Update1

16 16 בדיקת כללי העידון ל Update ( נכונות ) Pre Update: true Abs: Backup = Master  Working = Master  Changes Update1: Master’ = Master  Changes’ = Changes  {a? ↦ p?} Abs’: Backup’ = Master’  Working’ = Master’  Changes’ Update: Working’ = Working  {a? ↦ p?}  Backup’ = Backup נכונות Pre Update  Abs  Update1  Abs’ ⊦ Update, הבא נרשום את כל הפרדיקטים: ועכשיו נוכיח

17 17 הפעולות לאחר העידון (המשך) ┌─── Access1 ────  Checksys1 a? : ADDR p! : PAGE ├────────── p! = (Master  Changes)(a?) └───────────── נחזור לסכמת הגישה מה הקשר בינה לבין הסכמה: ┌─── Access1_1 ────  Checksys1 a? : ADDR p! : PAGE ├────────── a?  dom(changes)  p! = Changes(a?) a?  dom(changes)  p! = Master(a?) └─────────────


Download ppt "1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations."

Similar presentations


Ads by Google