350 likes | 736 Views
אוטו. עומד. נוסע. אוטו. גלגל. 4. UML דיאגרמה אחת שווה אלף מילים. UML דיאגרמה אחת שווה אלף מילים. ד"ר טל פסטרנק. UML – Unified Modeling Language. Language = שפה (גראפית) Modeling = בניית מודלים של תוכנה - אבל לא רק תוכנה
E N D
אוטו עומד נוסע אוטו גלגל 4 UMLדיאגרמה אחת שווה אלף מילים UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
UMLדיאגרמה אחת שווה אלף מילים ד"ר טל פסטרנק
UML – Unified Modeling Language • Language = שפה (גראפית) • Modeling = בניית מודלים של תוכנה - אבל לא רק תוכנה • Unified= מאוחדת. מאגדת בתוכה מרכיבים שונים השאובים מתרשימי זרימה, תרשים ישויות-קשרים, מכונות מצבים ועוד. UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
מודל ומציאות • מודל הוא דבר שמתאר מציאות בצורה מופשטת. מפה מתארת ארץ UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
מודל ומציאות • מודל הוא דבר שמתאר מציאות בצורה מופשטת. שרטוט מתאר מעגל חשמלי UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
מודל ומציאות • מודל הוא דבר שמתאר מציאות בצורה מופשטת. class Car { public: int GetNumber () { return Number; } private: int Number; ); Car Number: integer מתאר תוכנהUMLמודל UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
Conceptof a car מודל ומציאות • מודל הוא דבר שמתאר מציאות בצורה מופשטת. Car Number: integer מתאר מושגUMLמודל UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
UML תיכון בעזרת • מודל UML מתאר מושג וגם מתאר את רכיב התוכנה המתאים. class Car { public: int GetNumber () { return Number; } private: int Number; ); Car Number: integer מודל מציאות תוכנה UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
תיכנות מונחה עצמים • רכיבי התוכנה משקפים עצמים במציאות. class Car { public: int GetNumber () { return Number; } private: int Number; ); מציאות תוכנה UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
UML כשפה • UML היא שפה שיש לה ייצוג גראפי בתור שרטוט • ל- UML יש כללי תחביר וגם כללי משמעות • דוגמא : • משמעות : "כנסת מורכבת ממאה ועשרים חברי כנסת. כשהכנסת מתפזרת, גם חברי הכנסת חדלים להיות חברי כנסת" • UML היא שפה מדויקת. 120 כנסת חבר כנסת UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
שרבוטים או שרטוטים ? . • מה מתואר בשרבוט ? • זרימה ? "הדלק זורם למנוע" • המרת אנרגיה ? "אנרגיה כימית הופכת לאנרגיה קינטית" • סיבתיות ? "אם יש דלק אז הרכב [בהכרח] ינוע" • קדימות בזמן ? "המצאות הדלק קודמת לתנועת המנוע" • קשר לוגי ? "אם יש דלק [בזמן נתון] יש תנועה [באותו זמן]" לא UML דלק מנוע לא UML UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
UML שפה מדויקת • ה- UML הוא שפה שלא רק התחביר שלה אלא גם המשמעות שלה מוגדרת היטב. • כמו שלשפת PASCAL יש הגדרה מדויקת ואפשר לקרוא תוכנית ולדעת בדיוק מה היא תעשה כך גם UML. • תורם לכתיבה נכונה של התוכנה ולמנעת תקלות UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
חשיבות הדיוק באפיון תוכנה • ב- 1986 שלושה חולי סרטן מתו כאשר שני מכשירי קרינה THERAC-25 הפציצו אותם בטעות בכמויות קטלניות של קרינה, פי מאה מהמותר, כתוצאה מתקלת תוכנה. • טילי הפאטריוט לא פגעו בטילי הסקאד ב- 1991 בגלל טעות בתוכנה של שימוש בשני טיפוסים שונים, דבר שגרם לטעות מצטברת במשתנה הזמן ולסטייה של 678 מטר בחישוב מיקום הסקאד באוויר.29 איש נהרגו ו- 97 נפצעו מפגיעת סקאד בדהראן. UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
חשיבות הדיוק באפיון תוכנה • ב- 1999 שני רכבי חלל של NASA שנשלחו למאדים אבדו בשני ארועים שונים • Mars Climate Orbiter התרסק על אדמת המאדים כתוצאה מטעות של 170 ק"מ בחישוב המרחק מהקרקע כתוצאה מערבוב יחידות של מטרים ורגלים • Mars Polar Lander נעלם ולא נודעו עקבותיו. הגורם: שורת קוד אחת חסרה. UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
Ariane 5 4 ביוני 1996: שיגור הבכורה של הטיל Ariane 5 . 40 שניות לאחר השיגור בגובה של 3700 מטר, הטיל סטה מהמסלול, התפרק והתפוצץ. פיתוח הטיל ארך 10 שנים ועלה 8 מיליארד דולר. שווי המטען, שלא היה מבוטח, היה חצי מיליארד דולר. UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
הגורם להתפוצצות האריאן חמש • השתלשלות אירועים שנגרמה כתוצאה מתקלת תוכנה, גרמה להפעלת מנגנון ההשמדה העצמית. • שורש התקלה: המשתנה bh(`Horizontal Bias`) שקשור למהירות האופקית של הטיל, קיבל ערך גבוה מהצפוי וגרם לגלישה בהצבת המשתנה למשתנה אחר. double d_bh; short s_bh; sense_horizontal_velocity(&d_bh); s_bh = d_bh; // OPERAND ERROR UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
UML שפה מדויקת • מדיאגרמות UML אפשר לייצר בדיקות, ואפילו תוכנית מחשב שלמה מוכנה לריצה ! • "בדיקת מודלים" שיטה לבדיקה של מודל של תוכנה, יכולה לוודא שלמות ונכונות של התוכנה. • Rhapsody, כלי המפותח בחברת I-Logix יודע לייצר קוד מ- UML וגם לבצע בדיקת מודלים. • חשוב במיוחד ביישומי בטיחות UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
מרכיבי ה- UML • Class diagrams • מבנה וקשרים פנימיים • State diagrams • מצבים ומעברים ביניהם • Sequence diagrams • סדר אירועים בזמן • ועוד UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
UML Class Diagram מכונית גלגל • מכונית מורכבת מ-4 גלגלים, גוף ומנוע 4 גוף מנוע 1 1 UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
UML Class Diagram • "רנו מגאן" ו"מאזדה לנטיס" הם סוגים של מכוניות מכונית רנו מגאן מאזדה לנטיס UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
UML State Diagram • למכונית שני מצבים: או שהיא נוסעת או שהיא עומדת. פקודות go() ו- stop() בהתאמה מעבירות את המכונית ממצב למצב. מכונית go() עומדת נוסעת stop() UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
UML Sequence Diagram • סדר הפעולות להתנעת מכונית • הנעה • שחרור מעצור • הכנסה להילוך • האצה : Car go() releaseBreak() driver engageGear() accelerate() UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
Car Car Number: integer Number: integer GetNumber(): integer שימוש ב- UML לתיכון תוכנה • בניית מודל תפישתי מתוך תיאור הבעיה • בניית מודל של התוכנה • כתיבת הקוד class Car { public: int GetNumber () { return Number; } private: int Number; ); UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
דוגמא UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
הערכת התיכון • אחד הפרמטרים להערכת תיכון טוב הוא "חוזק" (Cohesion) של המודולים או המחלקות. • חוזק הוא מידת הזיקה של המרכיבים השונים במחלקה זה לזה. • ככל שיש יותר זיקה המחלקה יותר "חזקה". • טעות נפוצה היא לקחת מחלקה אחת ולתת לה אחריות על כל היישום, מחלקה כזאת תיחשב לחלשה כי יש בה גיבוב של דברים שונים. • מתוך התבוננות בדיאגרמת ה- UML ניתן להעריך עם המחלקות "חזקות" UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
מחלקה "חלשה" • נתונים שונים מקובצים יחד ללא קשר חזק ביניהם. Car OwnerName: string; IsurancePremium: float; PayInsurance(sum: float); ChangeOwner (name: string) . . . UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
מחלקות "חזקות" • לכל מחלקה ייעוד משלה. 0..1 1 InsurancePolicy Car YearlyPremium: float; Number: Integer; . . . InsurancePolicy(CarNumber); PayInsurance (sum: float); . . . UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
התיכון המפורט בניית מודל של התוכנה • המפתח להצלחת שפת המידול UML: האפשרות להציג רמות הפשטה ורמות פירוט לפי הצורך הערכה של התיכון שיכלול מספיק מפורט טוב שינוי קידוד UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
התיכון המפורט בניית מודל של התוכנה • המפתח להצלחת שפת המידול UML: האפשרות להציג רמות הפשטה ורמות פירוט לפי הצורך הערכה של התיכון שיכלול מספיק מפורט טוב שינוי קידוד UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
התיכון המפורט • המפתח להצלחת שפת המידול UML: האפשרות להציג רמות הפשטה ורמות פירוט לפי הצורך תיכון קידוד UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
סיכום • UML שפה גראפית למידול של מבנה והתנהגות. • UML שפה מדוייקת. • ב- UML מוגדר גם תחביר וגם משמעות. • ב- UML מוגדרים סוגים שונים של דיאגרמות, כוללה- class diagram המתאר מחלקות והקשרים ביניהן. • UML מתארת גם מושגים וגם תוכנה וכך מסייעת בתיכנות מונחה עצמים. UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -
UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -