1 / 32

UML דיאגרמה אחת שווה אלף מילים

אוטו. עומד. נוסע. אוטו. גלגל. 4. UML דיאגרמה אחת שווה אלף מילים. UML דיאגרמה אחת שווה אלף מילים. ד"ר טל פסטרנק. UML – Unified Modeling Language. Language = שפה (גראפית) Modeling = בניית מודלים של תוכנה - אבל לא רק תוכנה

gerry
Download Presentation

UML דיאגרמה אחת שווה אלף מילים

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. אוטו עומד נוסע אוטו גלגל 4 UMLדיאגרמה אחת שווה אלף מילים UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  2. UMLדיאגרמה אחת שווה אלף מילים ד"ר טל פסטרנק

  3. UML – Unified Modeling Language • Language = שפה (גראפית) • Modeling = בניית מודלים של תוכנה - אבל לא רק תוכנה • Unified= מאוחדת. מאגדת בתוכה מרכיבים שונים השאובים מתרשימי זרימה, תרשים ישויות-קשרים, מכונות מצבים ועוד. UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  4. מודל ומציאות • מודל הוא דבר שמתאר מציאות בצורה מופשטת. מפה מתארת ארץ UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  5. מודל ומציאות • מודל הוא דבר שמתאר מציאות בצורה מופשטת. שרטוט מתאר מעגל חשמלי UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  6. מודל ומציאות • מודל הוא דבר שמתאר מציאות בצורה מופשטת. class Car { public: int GetNumber () { return Number; } private: int Number; ); Car Number: integer מתאר תוכנהUMLמודל UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  7. Conceptof a car מודל ומציאות • מודל הוא דבר שמתאר מציאות בצורה מופשטת. Car Number: integer מתאר מושגUMLמודל UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  8. UML תיכון בעזרת • מודל UML מתאר מושג וגם מתאר את רכיב התוכנה המתאים. class Car { public: int GetNumber () { return Number; } private: int Number; ); Car Number: integer מודל מציאות תוכנה UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  9. תיכנות מונחה עצמים • רכיבי התוכנה משקפים עצמים במציאות. class Car { public: int GetNumber () { return Number; } private: int Number; ); מציאות תוכנה UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  10. UML כשפה • UML היא שפה שיש לה ייצוג גראפי בתור שרטוט • ל- UML יש כללי תחביר וגם כללי משמעות • דוגמא : • משמעות : "כנסת מורכבת ממאה ועשרים חברי כנסת. כשהכנסת מתפזרת, גם חברי הכנסת חדלים להיות חברי כנסת" • UML היא שפה מדויקת. 120 כנסת חבר כנסת UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  11. שרבוטים או שרטוטים ? . • מה מתואר בשרבוט ? • זרימה ? "הדלק זורם למנוע" • המרת אנרגיה ? "אנרגיה כימית הופכת לאנרגיה קינטית" • סיבתיות ? "אם יש דלק אז הרכב [בהכרח] ינוע" • קדימות בזמן ? "המצאות הדלק קודמת לתנועת המנוע" • קשר לוגי ? "אם יש דלק [בזמן נתון] יש תנועה [באותו זמן]" לא UML דלק מנוע לא UML UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  12. UML שפה מדויקת • ה- UML הוא שפה שלא רק התחביר שלה אלא גם המשמעות שלה מוגדרת היטב. • כמו שלשפת PASCAL יש הגדרה מדויקת ואפשר לקרוא תוכנית ולדעת בדיוק מה היא תעשה כך גם UML. • תורם לכתיבה נכונה של התוכנה ולמנעת תקלות UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  13. חשיבות הדיוק באפיון תוכנה • ב- 1986 שלושה חולי סרטן מתו כאשר שני מכשירי קרינה THERAC-25 הפציצו אותם בטעות בכמויות קטלניות של קרינה, פי מאה מהמותר, כתוצאה מתקלת תוכנה. • טילי הפאטריוט לא פגעו בטילי הסקאד ב- 1991 בגלל טעות בתוכנה של שימוש בשני טיפוסים שונים, דבר שגרם לטעות מצטברת במשתנה הזמן ולסטייה של 678 מטר בחישוב מיקום הסקאד באוויר.29 איש נהרגו ו- 97 נפצעו מפגיעת סקאד בדהראן. UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  14. חשיבות הדיוק באפיון תוכנה • ב- 1999 שני רכבי חלל של NASA שנשלחו למאדים אבדו בשני ארועים שונים • Mars Climate Orbiter התרסק על אדמת המאדים כתוצאה מטעות של 170 ק"מ בחישוב המרחק מהקרקע כתוצאה מערבוב יחידות של מטרים ורגלים • Mars Polar Lander נעלם ולא נודעו עקבותיו. הגורם: שורת קוד אחת חסרה. UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  15. Ariane 5 4 ביוני 1996: שיגור הבכורה של הטיל Ariane 5 . 40 שניות לאחר השיגור בגובה של 3700 מטר, הטיל סטה מהמסלול, התפרק והתפוצץ. פיתוח הטיל ארך 10 שנים ועלה 8 מיליארד דולר. שווי המטען, שלא היה מבוטח, היה חצי מיליארד דולר. UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  16. הגורם להתפוצצות האריאן חמש • השתלשלות אירועים שנגרמה כתוצאה מתקלת תוכנה, גרמה להפעלת מנגנון ההשמדה העצמית. • שורש התקלה: המשתנה bh(`Horizontal Bias`) שקשור למהירות האופקית של הטיל, קיבל ערך גבוה מהצפוי וגרם לגלישה בהצבת המשתנה למשתנה אחר. double d_bh; short s_bh; sense_horizontal_velocity(&d_bh); s_bh = d_bh; // OPERAND ERROR UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  17. UML שפה מדויקת • מדיאגרמות UML אפשר לייצר בדיקות, ואפילו תוכנית מחשב שלמה מוכנה לריצה ! • "בדיקת מודלים" שיטה לבדיקה של מודל של תוכנה, יכולה לוודא שלמות ונכונות של התוכנה. • Rhapsody, כלי המפותח בחברת I-Logix יודע לייצר קוד מ- UML וגם לבצע בדיקת מודלים. • חשוב במיוחד ביישומי בטיחות UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  18. מרכיבי ה- UML • Class diagrams • מבנה וקשרים פנימיים • State diagrams • מצבים ומעברים ביניהם • Sequence diagrams • סדר אירועים בזמן • ועוד UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  19. UML Class Diagram מכונית גלגל • מכונית מורכבת מ-4 גלגלים, גוף ומנוע 4 גוף מנוע 1 1 UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  20. UML Class Diagram • "רנו מגאן" ו"מאזדה לנטיס" הם סוגים של מכוניות מכונית רנו מגאן מאזדה לנטיס UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  21. UML State Diagram • למכונית שני מצבים: או שהיא נוסעת או שהיא עומדת. פקודות go() ו- stop() בהתאמה מעבירות את המכונית ממצב למצב. מכונית go() עומדת נוסעת stop() UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  22. UML Sequence Diagram • סדר הפעולות להתנעת מכונית • הנעה • שחרור מעצור • הכנסה להילוך • האצה : Car go() releaseBreak() driver engageGear() accelerate() UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  23. Car Car Number: integer Number: integer GetNumber(): integer שימוש ב- UML לתיכון תוכנה • בניית מודל תפישתי מתוך תיאור הבעיה • בניית מודל של התוכנה • כתיבת הקוד class Car { public: int GetNumber () { return Number; } private: int Number; ); UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  24. דוגמא UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  25. הערכת התיכון • אחד הפרמטרים להערכת תיכון טוב הוא "חוזק" (Cohesion) של המודולים או המחלקות. • חוזק הוא מידת הזיקה של המרכיבים השונים במחלקה זה לזה. • ככל שיש יותר זיקה המחלקה יותר "חזקה". • טעות נפוצה היא לקחת מחלקה אחת ולתת לה אחריות על כל היישום, מחלקה כזאת תיחשב לחלשה כי יש בה גיבוב של דברים שונים. • מתוך התבוננות בדיאגרמת ה- UML ניתן להעריך עם המחלקות "חזקות" UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  26. מחלקה "חלשה" • נתונים שונים מקובצים יחד ללא קשר חזק ביניהם. Car OwnerName: string; IsurancePremium: float; PayInsurance(sum: float); ChangeOwner (name: string) . . . UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  27. מחלקות "חזקות" • לכל מחלקה ייעוד משלה. 0..1 1 InsurancePolicy Car YearlyPremium: float; Number: Integer; . . . InsurancePolicy(CarNumber); PayInsurance (sum: float); . . . UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  28. התיכון המפורט בניית מודל של התוכנה • המפתח להצלחת שפת המידול UML: האפשרות להציג רמות הפשטה ורמות פירוט לפי הצורך הערכה של התיכון שיכלול מספיק מפורט טוב שינוי קידוד UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  29. התיכון המפורט בניית מודל של התוכנה • המפתח להצלחת שפת המידול UML: האפשרות להציג רמות הפשטה ורמות פירוט לפי הצורך הערכה של התיכון שיכלול מספיק מפורט טוב שינוי קידוד UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  30. התיכון המפורט • המפתח להצלחת שפת המידול UML: האפשרות להציג רמות הפשטה ורמות פירוט לפי הצורך תיכון קידוד UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  31. סיכום • UML שפה גראפית למידול של מבנה והתנהגות. • UML שפה מדוייקת. • ב- UML מוגדר גם תחביר וגם משמעות. • ב- UML מוגדרים סוגים שונים של דיאגרמות, כוללה- class diagram המתאר מחלקות והקשרים ביניהן. • UML מתארת גם מושגים וגם תוכנה וכך מסייעת בתיכנות מונחה עצמים. UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

  32. UML יום עיון תכנות מונחה עצמים ד"ר טל פסטרנק -

More Related