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

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

פיתוח מבוסס רכיבים

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

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

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

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



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



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

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