הנחיות לתרגיל מסכם
חלק א - בניית המחלקה DataBaseבחלק זה נגדיר ונבנה את המחלקה DataBase. מחלקה זו תהיה Module נפרד ב - Python. יש לשמור את המחלקה בקובץ נפרד. ניתן להיעזר במצגת של עצמים ומחלקות משנה שעברה. המצגת מצורפת ל - Classroom. ההנחיות :למחלקה DataBase יהיו שתי תכונות :מומלץ שהמחלקה תירש את מודול object.תכונה ראשונה - המילון עצמו.תכונה שנייה - שם הקובץ אליו נבצע את תהליך ה - serialization.1. ממש את הפעולה הבונה במחלקה : הפעולה תיצור מילון ריק , ותאתחל את תכונת שם הקובץ , בשם הקובץ שהתקבלכפרמטר. להלן כותרת הפעולה :def _init_(self, file_name):2. ממש את פעולת הכתיבה במחלקה : הפעולה תקבל את המפתח של המילון ואת הערך , היא תוסיף את הפריט למילון , ותבצעserialization למילון. להלן כותרת הפעולה :def set_value(self, key, value):3. ממש את פעולת הקריאה במחלקה : הפעולה תקבל , מפתח במילון , המילון יעבור תהליך של deserialization, הפעולהתחזיר את הערך השייך למפתח. להלן כותרת הפעולה :def get_value(self, key):"""return None if key doesn't exist"""4. ממש את פעולת הפלט המדפיסה את המילון בשלמותו. רמז ! - שימו לב המילון עלול להיות במצב serialization. כותרת הפעולה :def _str_(self): חלק ב - בדיקה.בחלק זה נבדוק שאכן המחלקה DataBase פועלת כהלכה. 1. פתח קובץ חדש בשם checkDataBase2. כתוב תכנית קצרה , היוצרת עצם המכיל מילון , מוסיפה לו 5 פריטים , מדפיסה פריט אחד לפי ערךהמפתח שלו ,מדפיסה את המילון בשלמותו מדפיסה הודעה מתאימהאם המפתח לאקיים.3. העלה את שני הקבצים שכתבת ב - Python ל - Teams. חלק ג - Threadsבחלק זה ניצור התנגשות בין תהליכי כתיבה וקריאה. לקובץ הבדיקה שיצרת מקודם הוסף את הפעולות הבאות :1. כתוב 2 פעולות נפרדות המבצעות את אותה משימה. כל פעולה תרשום 10 ערכיםלמילון ותדפיס אותם. כותרות הפעולות : הפעולות יקבלו כפרמטר עצם מהמחלקה DataBase.def thread_worker1(db):def thread_worker2(db): שים לב 10 הערכים שיתווספו למילון בפעולה הראשונה יהיו שונים מעשרת הערכיםשיתווספו למילון בפעולה השנייה. בתוך הפעולה עצמה ניתן להוסיף את אותם 10ערכים.2. צור שני תהליכים (Threads) והפעל אותם , עקוב אחר הפלט עד אשר מתבצעתהתנגשות.3. העלה את הקובץ המעודכן ל - Teams.