1 / 44

SCE - 11 מדידות דר’ יעקב אקסמן תשס"ו

SCE - 11 מדידות דר’ יעקב אקסמן תשס"ו. הנדסת מרכיבי תוכנה. דרישות תוכנה. דגם הייררכי. דגם פיזיקלי. מרכיבים. קוד להרצה = exe. מדידות. מדידות. מדידות לעומת מדדי תוכנה = Software Metrics מדידות – של מוצר התוכנה, בזמן ריצה מדדים – של תהליך פיתוח/ייצור התוכנה, סטטיים. מדדי תוכנה

coral
Télécharger la présentation

SCE - 11 מדידות דר’ יעקב אקסמן תשס"ו

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. SCE-11 מדידות דר’ יעקב אקסמן תשס"ו

  2. הנדסת מרכיבי תוכנה דרישות תוכנה דגם הייררכי דגם פיזיקלי מרכיבים קוד להרצה = exe מדידות

  3. מדידות • מדידות • לעומת • מדדי תוכנה = Software Metrics • מדידות – של מוצר התוכנה, בזמן ריצה • מדדים – של תהליך פיתוח/ייצור התוכנה, סטטיים

  4. מדדי תוכנה Software Metrics מדדים

  5. ספרות כללית מדדים [Schach2002] Schach, Stephen R. – “Object-Oriented & Classical Software Engineering” McGraw-Hill – Boston – 5th ed. – 2002. { Software Metrics: sec. 5.3; …}

  6. ספרות מדדים [FentPflee1997] Fenton, Norman E. and Pfleeger, Shari Lawrence “Software Metrics – A Rigorous and Practical Approach” PWS Publishing Co. – London – 2nd ed. – 1997 [Kan1995] Kan, Stephen H. “Metrics and Models in Software Quality Engineering” Addison-Wesley – Reading, MA – 1995 [Shepperd1995] Shepperd, Martin “Foundations of Software Measurement” Prentice-Hall – London – 1995

  7. מדדים מאפיינים תהליכי פיתוח מדד לאיכות תהליכי פיתוח התוכנה [השוואה בין שלבים שונים; תחזוקה לאחר הספקה] מדדי מקור = סטטיים מתייחסים לרוב לתכונות הדגם או לקוד המקור [ספירה ולא מדידה]

  8. מדדים דוגמאות • שורות קוד = LOC (Lines of Code) • תלוי • שפת תכנות • מתכנת • אינו מבטא • איכות תוכנה • מאפייני תוכנה (כלשהם)

  9. מדדים ביקורת LOC • דוגמה לדגש בתהליך • תפוקה: • שורות קוד ביחידת זמן • איכות: • מספר שגיאות (bugs) ביחס לשורות קוד • [-מדדים גרועים לאיכות הפיתוח • -אין LOC בשלבי פיתוח מוקדמים]

  10. מדדים דוגמאות • לכידות = Cohesion • רצויה • מידה בה פעולות מבוצעות ע"י מרכיב אחד קשורות פונקציונלית • יחידות מדידה (של חוסר לכידות): • מספר שיטות שונות במחלקה נתונה • שניגשות לאותו משתנה (instance variable) • דוגמה לחוסר לכידות: • ערבוב חישוב וממשק באותו מרכיב

  11. מדדים דוגמאות • צמידות = Coupling • בלתי-רצויה • מידת האינטרקציה בין מרכיבים • רצוי • מרכיבים שונים אמורים להיות • מופרדים פונקציונלית • דוגמת צמידות: • שני מרכיבים משנים אותם מבני נתונים • (זיכרון משותף)

  12. מדדים דוגמאות • סיבוך לולאתי = Cyclomatic Complexity • רצוי נמוך • ככל האפשר • Cm = מספר החלטות בינריות + 1 שקול למספר ההסתעפויות במרכיב

  13. מדדים ביקורת על סיבוך לולאתי • קל לחשב – • ספירת if, for, ... • סיבוך בקרה בלבד – • לא מתייחס לסיבוך נתונים

  14. מדדים סיבוך לולאתי תרגיל בספר של Schach הנ"ל יש שתי דוגמאות של תיכון עם ערכים שונים של סיבוך לולאתי (עמ' 419-420). מה השגיאה בחישוב?

  15. מדדים סיכום • סיכום • מדדים אינם מדידה. • בגלל • התייחסותלתהליך הפיתוח ולא למוצר. • סטטי ולא דינמי.

  16. מדדי תוכנה מבטים מבטים גרפיים מרובים על תוכנה

  17. Polymetric Views • מבטים גרפיים מרובים • ככלי ניתוח במהלך ולאחר פיתוח • ככלי להנדסה הפוכה

  18. ספרות Polymetric Views [LanDuc2003] Michele Lanza & Stephane Ducasse “Polymetric Views – A Lightweight Visual Approach to Reverse Engineering” IEEE Transactions on Software Engineering, Vol. 29, 782-795 (9), September (2003)

  19. Polymetric Views • ריובי המבטים הגרפיים • גודל קודקוד– רוחב, גובה • צבע– דרגות אפור • מיקום– קואורדינטותx, y

  20. Polymetric Views מיקום (x,y) צבע גובה רוחב

  21. Polymetric Views מדדים לדוגמה

  22. Polymetric Views מבט 1 יותר מדי שורות קוד System Hotspots • Metrics: • Height: NOM. • Color: WLOC. • Width: NOA. • Layout: Checker. • Target: Classes. • Scope: Full system. • Sort: Width.

  23. Polymetric Views מבט 1 System Hotspots • מה גודל המרכיב הרצוי? • מה אומר גודל יחסי של מרכיב במערכת נתונה?

  24. Polymetric Views מבט 2 צלעות בעץ = ירושה עמוק מדי? System Complexity • Metrics: • Width: NOA. • Height: NOM. • Color: WLOC. • Layout: Tree. • Target: Classes. • Scope: Full System

  25. Polymetric Views מבט 2 System Complexity • מה עומק ההייררכיה הרצוי?

  26. Polymetric Views מבט 3 Inheritance Classification • Metrics: • Width: NMA. • Height: NMO. • Color: NME. Number of Methods  Overriden  Extended • Layout: Tree. • Target: Classes. • Scope: Subsystem.

  27. Polymetric Views מבט 3 Inheritance Classification • כמה שיטות בתת-מחלקה? • בשימוש ללא שינוי • הורחבו • נדרסו • עד כמה מחלקת הורה? • שימושית • גמישה • כללית מדי

  28. Polymetric Views מבט 4 Inheritance Carrier • Layout: Tree. • Target: Classes. • Scope: Subsystem. • Metrics: • Width: WNOC. • Height: NOM. • Color: WNOC. WNOC = מספר צאצאים

  29. Polymetric Views מבט 5 Data Storage Class Detection • Layout: Stapled. • Target: Classes. • Scope: Subsystem. • Metrics: • Width: NOM. • Height: WLOC. • Color: WLOC. מיון לפי רוחב

  30. Polymetric Views מבט 6 • Metrics: • Position (X): LOC. • Position (Y): NOS = Number of Statements (in method body) Method Structure Correlation • Layout: Scatterplot. • Target: Methods. • Scope: Full system. יותר שורות מפקודות

  31. Polymetric Views מבט 7 Direct Attribute Access • Metrics: • Width: NLA. (local access = within class) • Height: NGA. (from outside class) • Color: NAA. (All) • Layout: Checker. • Target: Attributes. • Scope: Full System. מיון לפי צבע

  32. מדידה מדידה והכנות למדידה

  33. מדידה • When you can measure what you are speaking about, and can express it in numbers, you know something about it; but when you cannot measure it, when you cannot express it in numbers, then your knowledge is of a meagre and unsatisfactory kind. • Lord Kelvin

  34. מדידה Lord Kelvin William Thomson (1824-1907) פיזיקאי וממציא, ניסח חוקי התרמודינמיקה, השתתף בניסיון הנחה של כבל תקשורת תת-ימי באוקיינוס האטלנטי.

  35. מדידה גישה 1 מדידת מוצר התוכנה [צרכן אינו מעוניין לדעת דבר על תהליך הייצור.]

  36. מדידה גישה 2 מרכיבים כקופסה שחורה. [צרכן אינו מעוניין בחומרי הבנייה. מה החומצה בתוך המצבר?]

  37. מדידה גישה 3 מרכיב התוכנה מספק בעצמו את תוצאת המדידה.

  38. מדידה גישה 4 ממשק בנוי מראש לפי מדידות האפשריות במרכיב התוכנה [שום מדידה אחרת אינה אפשרית. דוגמה: לחץ אויר של צמיג]

  39. מדידה מסקנה גודל מינימלי רצוי למרכיב תוכנה. [אחרת נפח הממשק גדול מנפח המרכיב עצמו.]

  40. מדידות דוגמה 1 Debugging מה תוצאת החישוב שלך? [מדידה אופיינית במהלך בדיקות נכונות.]

  41. מדידות דוגמה 2 Identifier מה תעודת הזהות שלך? [מדידה אופיינית במהלך linking.] תוצאת המדידה: זיהוי, למשל UUID

  42. מדידות דוגמה 3 מיקום בריצה (או עצירה) = Run (or Fault) Location האם אתה מתבצע עכשיו? [מדידה אופיינית במהלך debugging.] תוצאת המדידה: boolean [למעשה: זיהוי]

  43. מדידות דוגמה 4 משך ביצוע = Execution Time הפרש זמנים בין תחילה לסיום? [מדידה אופיינית במהלך Performance Monitor.] תוצאת המדידה: מספר שלם (ביחידות זמן למשל msec)

More Related