300 likes | 628 Views
SCE - 8 זיהוי מרכיבים דר’ יעקב אקסמן תשס"ו. הנדסת מרכיבי תוכנה. דרישות תוכנה. דגם הייררכי. דגם פיזיקלי. מרכיבים. קוד להרצה = exe. מדידות. זיהוי מרכיבים מטרה. זיהוי חד-משמעי של מרכיב הרכבה - של תוכנית חלקי חילוף – -לתיקון bug בזמן ריצה, -שידרוג (אלגוריתם יותר יעיל).
E N D
SCE-8 זיהוי מרכיבים דר’ יעקב אקסמן תשס"ו
הנדסת מרכיבי תוכנה דרישות תוכנה דגםהייררכי דגםפיזיקלי מרכיבים קוד להרצה = exe מדידות
זיהוי מרכיבים מטרה • זיהוי חד-משמעי של מרכיב • הרכבה - של תוכנית • חלקי חילוף – • -לתיקון bug בזמן ריצה, • -שידרוג (אלגוריתם יותר יעיל)
זיהוי מרכיבים גישה • זיהוי חד-משמעי של מרכיב • רכישת מרכיב מדף – • -COTS (Commercial Off-the-Shelf) • - יצרנים שונים • ביזור – • -ספריות משוכפלות בכל מקום • -הקטנת נפח תקשורת: רק הזיהוי נשלח
זיהוי מרכיבים משך חיים • בניה - • זיהוי ניתן למרכיב בעת בנייתו. • הריסה – • זיהוי נמחק בעת הריסת מרכיב. • אין שינוי זיהוי במהלך חיי המרכיב.
זיהוי מרכיבים ספרות [UUID-1997] Universal Unique Identifier DCE 1.1 – Remote Procedure Call http://www.opengroup.org/onlinepubs/ 9629399/apdxa.htm#tagcjh_20
זיהוי מרכיבים UUID • זיהוי יחיד אוניברסלי • (UUID = Universal Unique Identifier) • יחיד • במקום – על פי כתובת פיזיקלית של כרטיס רשת • בזמן – על פי רגע יצירת הזיהוי
זיהוי מרכיבים UUID • הנחות • כרטיס תקשורת – • לפחות אחד בכל מכונה • שונה בכל מכונה, • לא מועבר לעיתים קרובות (בין מכונות) • שעון – • זמן גדל מונוטונית • אירועים באותו מחשב • נבדלים ברגעים שונים
זיהוי מרכיבים UUID • גודל המרחב • 128 סיביות • מרחב סופי – אך גדול מאד: ללא כפילויות • משך חיי העצמים –קצרי חיים עד מתמשכים (persistent) לאורך זמן ארוך
זיהוי מרכיבים UUID- לוקאליות אין צורך ברשות מרכזית לרישום בחירת הזיהוי נעשית בצורה מקומית
זיהוי מרכיבים UUID- Format אורך כולל – 128 סיביות מחרוזת לדוגמה: 2fac1234 - 31f8 - 11b4 - a222 - 08002b34c003 timeLow – timeMid – timeHi – ClockSeq – node
זיהוי מרכיבים UUID - שדות
זיהוי מרכיבים UUID- הגדרות • חותם זמן(timestamp) • 60 סיביות • UTC – ספירה של פרקי 100 nanosec מאז 1582. • מספר גירסהDCE • 4 סיביות • אופן (Variant) • 2 סיביות • סידרת שעון(clock sequence) • 14 סיביות
זיהוי מרכיבים UUID- הגדרות אפס (nil UUID) כל הסיביות הם אפסים ערך מיוחד: למה נחוץ?
זיהוי מרכיבים UUID- הגדרות • סידרת שעון • כדי למנוע חוסר מונוטוניות של חותם הזמן • (אי-רציפות וכפילויות) • משתנה כאשר: • ערךUTC חזר אחורה; • ערך אחרון של UTC נאבד (למשל ב- (reboot
זיהוי מרכיבים UUID - בעייה בעיית UUID אין לו שום קשר לתוכן המרכיב.
זיהוי מרכיבים UUID – שימושים העברה בין מכונות (RPC) בקשות/תשובות בין שרת/לקוח זיהוי קובץ מרכיב (XML) קובץ מבנה של מרכיב התאמת מרכיב למפרט להרכבה/החלפה מרכיב במערכת השוואות מודלים האם מכילים אותם מרכיבים?
זיהוי מרכיבים UUID השוואת דגמים השוואת דגמים נעשית ע"י השוואת זיהוי לא השוואה גרפית
זיהוי מרכיבים השוואת דגמים בפיתוח הדרגתי הוסף D סלק B • שני מהנדסים מתחילים • מאותו הדגם: • מפתחים לכיוונים שונים איך לבצע מיזוג בלי עיוותים?
זיהוי מרכיבים ספרות [AlaPor-2003] M. Alanen & I. Porres “Difference and Union of Models”
זיהוי מרכיבים כינוי – הייררכי • זיהוי הייררכי של מרכיב • למשל ב-JAVA • Java.util.iterator • יתרון: • תאורי יותר – מכיל מקצת הסמנטיקה • חסרון: • תלוי שפה – JAVA, אנגלית.
זיהוי מרכיבים ספרות [Codons-2003] Yonatan Myers and Iaakov Exman “Software Codons for Fast Program Reassembly from Components”Proc. SwSTE’03 – Int. Conf. Software Science, Technology and Engineering – Herzlia, November 2003.
זיהוי מרכיבים Codons • Software Codons • יעילות – שומר על פורמט של UUID • בדיקתיות – מכיל סמנטיקה של המרכיב
זיהוי מרכיבים Codons • Software Codons • יצירה – לא מקוונת (off-line) • התאמה – בזמן ריצה (on-line)
זיהוי מרכיבים Codons • הכנה: • מחרוזת ארוכה לפי הצורך • בנויה מערכים מחושבים של פונקציה: • זוגות קלט-פלט • ערכים בולטים
זיהוי מרכיבים Codons ערך מירבי ערך מיוחד ערך מזערי Date Java API Class בעקומה ערכים בולטים ימים לאורך השנה האזרחית
זיהוי מרכיבים - יצירהCodons IO-pairs One-way Function SHA1 Secure Hash Algorithm Bit-string
זיהוי מרכיבים - הייררכיהCodons ComponentCodon.ClassCodon.MethodCodon