זיהוי מחלקות ועצמים
 אתה נמצא ב   [ דף הבית | שטות תכון ויישום תכנה | תכן מונחה עצמים | זיהוי מחלקות ועצמים ]


זיהוי מחלקות ועצמים

סיווג

גישות לסיווג

זיהוי מחלקות ועצמים הוא נושא יסודי (fundamental) במתודולוגית OO. הזיהוי דורש הן יכולת גילוי (discovery) והן יכולת המצאה (invention). הגילוי מזוהה עם ניתוח (analysis) וההמצאה עם תוכן (design).


את הידע שלנו אנו מארגנים ע"י סיווג (classification). אין שביל זהב לסיווג ואין מתכונים (recipes) לזיהוי מחלקות ועצמים. אין מבנה מחלקה מושלם (perfect) ואין קבוצה נכונה (right) של עצמים. הבחירה היא בסופו של דבר פשרה (compromise) המעוצבת ע"י שיקולים מתחרים רבים.

סיווג הוא באופן בסיס בעיה של אשכול (clustering). התהליך הוא מדורג (incremental) וחוזר (iterative) והקושי שלו נובע בעיקר מכך שקבוצה נתונה של עצמים ניתנת לסיווג במספר רב של אופנים נכונים. להמחשת הבעיה נתבונן באיור וכל אחד ינסה לסווג את הרכבות.

איור- זיהוי מחלקות ועצמים 

סיווג רכבות:

הסיווג הפופולארי ביותר: לפי אורך הרכבת (שלוש קבוצות: רכבות עם שניים, שלוש וארבע קרונות).

סיווג אחר נפוץ: לפי צבע גלגלי הקטר (שלוש קבוצות: לבן בלבד, שחור בלבד, שחור ולבן).

בניסויים התקבלו 93 סיווגים שונים, ביניהם למשל: עפ"י צורת שם הרכבת - שמות עם קווים ישרים בלבד (A, E, F, H, I) ושמות אחרים (B, C, D, G, J).

כאשר הוסיפו את הנתון (כפי שקורה הרבה פעמים במציאות) שהעיגולים על הקרונות מייצגים כימיקלים רעילים, הריבועים מייצגים עצים/קורות (lumber) וכל יתר הצורות מיצגים נוסעים, אז בסיווג מחדש רוב המשתתפים בניסוי סיווגו את הרכבות לכאלו המובילות כימיקלים רעילים ואלו שלא.

 

שלוש הגישות לסיווג הן:


סיווג קלאסי:

סיווג עפ"י תכונות. כל הישויות (entities) בעלי תכונה או אוסף תכונות משותף מהווים קטגוריה (category) אחת.

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

תכונה יכולה להיות בעלת חשיבות ביישום אחד, בעוד ביישום אחר היא חסרת חשיבות לחלוטין.  לדוגמא: "צבע של מכונית" חשובה מאוד לייצרן מכוניות ולמערכת המלאי שלו, בעוד שבמערכת בקרת רמזורים אין לה שום חשיבות, לכן אין שום מדדים מוחלטים (absolute) לסיווג.

 

אשכול תפיסתי:

סיווג עפ"י תפיסה (concept). גישה זאת נובעת מהניסיונות לייצוג ידע  (Knowledge representation). המחלקות נוצרות ע"י ניסוח תיאור תפיסתי (formulating conceptual description) עבורן וסיווג הישויות עפ"י תיאורים אלו.

לדוגמא: ספרים יכולים להיות מסווגים עפ"י ספרי קודש, ספרי מתח, ספרי בישול וכדומה. אין מדד אובייקטיבי לקבוע למשל מידת "המתח" של ספר, או מידת היות שיר "שיר אהבה". כאן ההשתייכות למחלקה היא עפ"י “best fit" (ולא absolute).

 

תיאורית אבטיפוס:

סיווג עפ"י קשר (associate) עם אבטיפוס. הסיווג הקלאסי והאשכול התפיסתי בד"כ מספיקים לבצע כמעט את כל הסיווגים.  באותם מקרים שסיווגים אלו לא מתאימים (inadequate), ניתן להשתמש לסיווג מחלקה ע"י עצם טיפוסי המייצג אותה.

דוגמה: משחק יכול לייצג את המחלקה של משחקים למרות שאין שום תכונות משותפות לכל המשחקים, או, כסא יכול לייצג את המחלקה של כסאות, למרות שכסאות יכולים להיות מצורות שונות, מחומרים שונים, בעלי מספר רגלים שונה וכדומה, אך, לכולם יש דמיון (resemblance) למחלקה.

 

שלוש גישות אלו לסיווג מספקות את היסוד התיאורטי ל- object oriented analysis.

מניסיון, כדאי לבצע את הסיווג קודם כל עפ"י תכונות (סיווג קלאסי) ואם זה לא מצליח אז מנסים לבצע את הסיווג עפ"י תפיסה (אשכול תפיסתי). כאן אנו מתמקדים בהתנהגות של עצמים משתפי פעולה (collaborate). אם גם זה לא מצליח, אז מסווגים את העצמים עפ"י דמיונם לעצם אבטיפוס (prototypical).

 

לסעיף הבא- קביעת מחלקות ועצמים...

הקודם רמה למעלה הבא


[דף הבית] [למד עכשיו UML] [למה להשתמש] [שטות תכון ויישום תכנה] [סמונים מקובלים] [כלי פיתוח] [מלון מונחים] [גלריית תמונות] [ספריה אור קולית] [קישורים] [ביבליוגרפיה] [על האתר] [מפת האתר]