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

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

פיתוח מבוסס רכיבים - המשך

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

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



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



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

    שפת התסריט הראשונה ששילבה רכיבים ניתנים למחזור היתה UNIX Shell. גם כיום, כאשר משתמש UNIX מחבר פקודת עיבוד טקסט מורכבת ממגוון הכלים הפשוטים הזמינים עבורו הוא עושה שימוש באותה שפה בדיוק על מנת להרכיב מערכת אד-הוק במהירות ובקלות. במשך הזמן פותחו שפות תסריט נוספות למטרה זו, כגון שפת Visual Basic ושפת TCL/TK. כוחן של שפות אלו הוא בהיותן חסרות טיפוס והיותן שפות פענוח ולא שפות הידור (מה שמאפשר פיתוח מהיר ופשוט).

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

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