מודולריות או לחלופין גישה מודולרית אני מגדיר כגישה רווחת בפיתוח מוצרים בכלל ובפיתוח תוכנה בפרט במסגרתה, באופן כללי, מוצר אמור להיות מורכב משניים או יותר רכיבים (מודולים) שיהיה ניתן לפרק ממנו ולהרכיב במוצר אחר (אינטגרציה) בקלות.
זאת בעיקר לצורך שימוש במוצרים דומים אחרים.
במאמר זה אתמקד במודולריות בפיתוח תוכנה.
בפיתוח תוכנה, הגדרת מודולריות היא נוקשה יותר מן ההגדרה הכללית ותמציתה היא שתוכנה היא סך הרכיבים בקוד מקור המהווה אותה (דוגמה לרכיב כזה תהיה כל פרוצדורה); כלומר, לפי הגישה קוד המקור של תוכנה אמור להיות מורכב מרכיבי קוד בודדים בעלי מטרה ברורה כל אחד ("תתי תוכנות") שבאופן כללי אינם תלויים זה בזה (אינם מחייבים זה את קיומו של זה).
יישום המונח בפיתוח תוכנה מבוסס לרוב על עבודתה המדעית של מדענית המחשב ברברה ליסקוב.
יתרונות
- הבנה מהירה יותר של מה עושה מה (local reasoning)
- פיתוח לא תלוי (independent development): התוכנה כמערכת איננה יחידה אחת מורכבת אלא חלקים שלא בהכרח תלויים זה בזה
- קלות שינוי (modifiability): מודולריות מבטיחה הקטנת תלות בין רכיבים שונים המהווים יחדיו תוכנה, כך שיהיה ניתן להוסיף או להחסיר רכיבים שונים בקלות מכיוון שלא יהיו תלויים ברכיבים אחרים וכך שכל רכיב יהיה כמה שפחות תלוי במידע גולמי בבסיס נתונים.
עקרונות כלליים
- באופן כללי בגישה מודולרית כל הרכיבים של תוכנה תלויים בליבת תוכנה (במקרי מודולריות טוטאלית אף בליבה אינם תלויים)
- מודולריות מאפשרת להחליף כל רכיב ברכיב חדש (שמחליף אותו ומשפר אותו כביכול) וזאת מבלי לשנות שום רכיב אחר במערכת, בתנאי והכל נעשה לפי אפיון מערכת התוכנה
- לכל רכיב יש ממשק המאפשר לו לתקשר עם רכיבים אחרים (לקבל מידע, למסור מידע) המתואר לפי אפיון כללי של מערכת התוכנה ; לפיכך, יישום רכיב הוא נכון אם הוא תואם את אפיון מערכת התוכנה
אינטגרציה
בפיתוח תוכנה המונח אינטגרציה (באנגלית: Integration) משמש לתאר שילוב רכיב תוכנה אחד או יותר בתוכנה קיימת. באופן כללי, ככל שתוכנה יותר מודולרית כך ניתן לעשות אליה יותר אינטגרציה.
דוגמאות לאינטגרציה יהיו למשל התקנת רכיב (מודול\פלאג-אין\אקסטנשן) למערכת ניהול תוכן.
רכיב כזה יכול להיות CMS-agnostic ("להיות אגנוסטי למערכות ניהול תוכן") במובן שהוא יכול לפעול על באופן כללי כל מערכת ניהול תוכן שהיא בלי תלות במערכת ניהול תוכן ספציפית ודוגמה תהיה למשל Google Analytics או מודעות Google Adsense.
כאשר רבים מתקינים Google Analytics על מערכות ניהול התוכן שלהם הם ישתמשו בפלאג-אין ביניים שיגרום לאינטגרציה קלה יותר אך אין חובה לכך וניתן להתקין את התוסף דרך העתקה וקידוד בקבצים מתאימים ישירות.