מודולריות (תכנות)

מתוך המכלול, האנציקלופדיה היהודית
קפיצה לניווט קפיצה לחיפוש

מוֹדוּלַרִיוּת בתוכנה היא תכונה של מערכת מיחשוב המתארת את מידת הפריקות שלה, כדי לאפשר החלפה של חלקים או הוספה של חלקים שלא הוגדרו מראש. מערכת מודולרית היא מערכת הבנויה מיחידות משנה, שיכולות להיות זהות או שונות. הרכיבים שלכל אחד יש קיום נבדל ועצמאי, צריכים להיות מסוגלים להתחבר, לתקשר, לתפעל ולהחליף מידע באמצעות ממשק סטנדרטי, כאשר רצוי (אבל לא הכרחי) שיהיו בעלי צמידות רופפת.

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

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

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

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

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

ראו גם