לכידות (תוכנה)

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

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

סיווג רמת לכידות
ניתן לסווג קוד לאחת מרמות הסיווג הבאות (מהטובה ביותר אל הגרועה ביותר):
 לכידות פונקציונלית (Functional Cohesion) - פעולות במודול תורמות כולן למשימה בודדת ומוגדרת היטב.
 לכידות סדרתית (Sequential Cohesion) - פעולות במודול מקובצות תחתיו כיוון שהפלט של פעולות מסוימות הוא הקלט של פעולות אחרות.
 לכידות תקשורתית (Communicational Cohesion) - פעולות במודול מקובצות תחתיו כיוון שהן פועלות על אותו המידע.
 לכידות פרוצדורלית (Procedural Cohesion) -  פעולות במודול מקובצות תחתיו כיוון שהן תמיד מבוצעות יחד כחלק מהליך של המערכת (לדוגמה, פעולת בקשת הרשאות ופעולת פתיחת קובץ המבוצעות בזו אחר זו).
 לכידות טמפורלית (Temporal Cohesion) -  כאשר הפעולות במודול מקובצות תחתיו כיוון שהן מבצעות את פעולותיהן במהלך פרק זמן מוגדר במהלך ריצת התוכנית.
 לכידות לוגית (Logic Cohesion) - כאשר הפעולות במודול מקובצות תחתיו כיוון שהן מבצעות משימות דומות, גם כאשר הן שונות מטבען (לדוגמה, קיבוץ כל פעולות הקלט תחת אותו מודול).
 לכידות מקרית (Coincidental Cohesion) - הפעולות במודול מקובצות תחתיו באופן שרירותי, כאשר הקשר היחיד בין הפעולות הוא בכך שקובצו יחדיו תחת אותו מודול.

ראו גם
 צימוד
 תכנות מונחה עצמים
 הנדסת תוכנה

קישורים חיצוניים
 לכידות, במערכת אית"ן
 מדריך על לכידות באנגלית- "The Pragmatic Bookshelf"
 אתר הבית של לארי קונסטנטין

הנדסת תוכנה