Smart-World Surf

יחידה 4: מבוא לניתוח מונחה עצמים (OOA)

הכרת עקרונות הגישה מונחית העצמים לניתוח מערכות.

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

מהו ניתוח מונחה עצמים (OOA) ומדוע הוא נחוץ?

ניתוח מונחה עצמים (Object-Oriented Analysis - OOA) הוא שלב ראשוני וקריטי במחזור חיי פיתוח תוכנה, המתמקד בזיהוי והגדרת הדרישות הפונקציונליות והלא-פונקציונליות של המערכת מנקודת מבט של אובייקטים אמיתיים בעולם. בניגוד לגישות קודמות כמו ניתוח מובנה, OOA שואף למדל את המערכת בצורה הקרובה ביותר למציאות, תוך שימוש במושגים כמו מחלקות, עצמים, תכונות ופעולות.

המעבר מניתוח מובנה לניתוח מונחה עצמים

גישת הניתוח המובנה התמקדה בתהליכים ונתונים בנפרד, מה שהוביל לעיתים קרובות לקושי בשמירה על עקביות ולמורכבות בתחזוקה. OOA התפתח כמענה לקשיים אלו, בכך שהוא מאחד את הנתונים והפעולות עליהם ליחידות לוגיות הנקראות "עצמים", המשקפות ישויות מהעולם האמיתי.

עקרונות הליבה של הגישה מונחית העצמים

הבנת עקרונות אלו חיונית הן לניתוח והן לתכנון ומימוש מונחה עצמים.

הפשטה (Abstraction): תהליך התמקדות בפרטים החשובים והרלוונטיים של ישות מסוימת, תוך התעלמות מפרטים שוליים או פנימיים. מאפשרת לנו לייצג עצמים מורכבים בצורה פשוטה ומובנת.
כימוס (Encapsulation): איגוד נתונים (תכונות) והפעולות (מתודות) הפועלות עליהם ליחידה לוגית אחת (עצם/מחלקה), תוך הסתרת הפרטים הפנימיים של המימוש מפני העולם החיצוני. גישה לנתונים מתבצעת רק דרך המתודות שהוגדרו.
ירושה (Inheritance): מנגנון המאפשר למחלקה חדשה (מחלקה יורשת/בת) לרשת תכונות ופעולות ממחלקה קיימת (מחלקה בסיסית/אב). מקדם שימוש חוזר בקוד ומבנה היררכי ברור.
פולימורפיזם (Polymorphism): היכולת של עצמים שונים להגיב לאותה הודעה (קריאה למתודה) בדרכים שונות, בהתאם לסוגם הספציפי. מאפשר גמישות רבה יותר וקוד כללי יותר.

מושגי מפתח ב-OOA

אבני הבניין של כל מודל ניתוח מונחה עצמים.

עצם (Object): מופע ספציפי של מחלקה, בעל מצב (ערכי התכונות שלו) והתנהגות (הפעולות שהוא יכול לבצע). מייצג ישות מהעולם האמיתי.
מחלקה (Class): תבנית או שרטוט ליצירת עצמים. מגדירה את התכונות המשותפות ואת הפעולות שכל העצמים מאותו סוג יכולים לבצע.
תכונה (Attribute): מאפיין או נתון השייך לעצם מסוים ומגדיר את מצבו. לדוגמה, למחלקה "סטודנט" יכולה להיות תכונה "שם" או "מספר תעודת זהות".
פעולה / מתודה (Operation / Method): התנהגות או פונקציה שעצם יכול לבצע, או שניתן לבצע עליו. לדוגמה, למחלקה "סטודנט" יכולה להיות פעולה "הרשמה לקורס".

סוגי קשרים בין מחלקות

קשרים בין מחלקות הם קריטיים להבנת המבנה הכללי של המערכת.

אסוציאציה (Association)

קשר כללי בין שתי מחלקות המציין שקיים ביניהן קשר סמנטי כלשהו. לדוגמה, "סטודנט" נרשם ל "קורס".

אגרגציה (Aggregation)

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

קומפוזיציה (Composition)

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

תהליך הניתוח מונחה העצמים ודיאגרמות UML

OOA כולל זיהוי דרישות, מודלים של תרחישי שימוש, ומידול מבנה המערכת באמצעות דיאגרמות UML.

שלבי מפתח ב-OOA:

  • זיהוי תרחישי שימוש (Use Cases): הבנת האינטראקציות בין המשתמשים (Actors) למערכת.
  • זיהוי מחלקות ועצמים: איתור הישויות המרכזיות במערכת מתוך תיאור הדרישות.
  • זיהוי תכונות ופעולות: הגדרת המאפיינים וההתנהגויות של כל מחלקה.
  • זיהוי קשרים: קביעת הקשרים הלוגיים בין המחלקות השונות.

דיאגרמות UML מרכזיות ב-OOA:

  • דיאגרמת תרחישי שימוש (Use Case Diagram): מתארת את הפונקציונליות של המערכת מנקודת מבט של המשתמשים.
  • דיאגרמת מחלקות (Class Diagram): מציגה את המבנה הסטטי של המערכת, כולל מחלקות, תכונות, פעולות וקשרים ביניהן.
נושא קריטי למבחן: המעבר מדרישות (טקסטואליות או תרחישי שימוש) לזיהוי מחלקות, תכונות וקשרים.

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

שאלות לדיון

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

נקודות לתשובת מודל

  • הבדל גישות: ניתוח מובנה (תהליכים ונתונים בנפרד), OOA (איחוד נתונים ופעולות לעצמים). OOA משקף טוב יותר את העולם האמיתי, מקל על שינויים ושימוש חוזר.
  • כימוס וירושה: כימוס מסתיר פרטי מימוש, מגן על נתונים, מאפשר שינויים פנימיים ללא השפעה חיצונית. ירושה מקדמת שימוש חוזר, מפשטת היררכיות, מאפשרת הוספת פונקציונליות חדשה בקלות.
  • מערכת ספרייה:
    • ספר: כותרת, מחבר, מספר ISBN, שנה, זמין (כן/לא).
    • קורא: שם, תעודת זהות, כתובת, טלפון.
    • השאלה: תאריך השאלה, תאריך החזרה, מועד החזרה בפועל.
    • קשרים: קורא 1..* משאיל 0..* ספר; ספר 1..1 נמצא ב-0..* השאלה; קורא 1..* מבצע 0..* השאלה.
  • אגרגציה מול קומפוזיציה:
    • אגרגציה (חלש): חלק יכול להתקיים ללא השלם. דוגמה: "מכונית" ו"גלגל" – גלגל יכול להתקיים גם ללא מכונית ספציפית.
    • קומפוזיציה (חזק): חלק תלוי בקיום השלם. דוגמה: "בניין" ו"דירה" – דירה לא יכולה להתקיים ללא בניין.
מצאתם טעות או שחסר משהו?
→ הקודמת
ניתוח מערכות מובנה
הבאה ←
מודלים של ניתוח מונחה עצמים (UML)