האתר הישראלי להנדסת תכנה

דף ראשי | מפת האתר | רשימת מושגים | מקורות נוספים | אודות
פיתוח מבוסס רכיבים - המשך מחזור מוצרי מדף

מסגרות ליישומים

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

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

ישנם מספר סוגי מסגרות:

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

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

    הנה דוגמה מוכרת ושימושית במיוחד למסגרת עבור ממשקי משתמש:



    מסגרת זו, המכונה MVC, תומכת במספר תצוגות לאותו עצם ובצורות הידודיות שונות לתצוגות אלו. המסגרת דואגת לעדכן את כל התצוגות כאשר מתבצע שינוי על המשתמש באחת מהן.
    מסגרות נבנות לעתים קרובות בעזרת מופעים של דפוסים, שנראה בהמשך. מסגרת MVC למשל, כוללת את דפוסי Observer, Strategy, Composite ואחרים.

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

    פיתוח מבוסס רכיבים - המשך לתחילת הדף מחזור מוצרי מדף
    ©איתן 2003. כל הזכויות שמורות למערכת המידע איתן