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

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

פיתוח רכיבים לצורך מחזור

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

מה הופך רכיב למועמד למחזור ?

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

    כיצד ניתן להגביר את יכולת המחזור של רכיב נתון ?

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

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

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