רכיב תוכנה (באנגלית: Software module) הוא חלק מוגדר היטב במערכת תוכנה בכלל ובקוד מקור של תוכנה בפרט ובמובן מסוים גם תוכנה כשלעצמה, כמערכת, יכולה להיות רכיב (זה תלוי בעיקר אם נבנתה כתוסף לתוכנה רחבה יותר).
באופן כללי לא יהיה נפוץ להגדיר את תוכנה כשלעצמה כ"רכיב תוכנה" (אם כי יש תוכנות המוגדרות ככאלה בגישה מודולרית בפיתוח תוכנה).
רכיב תוכנה יכול להיות פרוצדורה ("פונקציה") אנונימית (בלתי משוימת) או משוימת או "טיפוס מידע" אחר; מערכים הם דוגמה אפשרית לכך.
מונחים קרובים לרכיב תוכנה הינם קומפוננטה (Component), אקסטנשן (Extension) וכן פלאגין (Plugin) ובכל הנוגע למערכות מודולריות הם מתארים "תת-רכיב תוכנה" אם כי אין חובה להשתמש דווקא בכל אחד ממונחים אלה.
ליבת תוכנה
ליבת תוכנה (באנגלית: Software core) היא החלק הבסיסי ביותר של תוכנה הבנויה בשכבות ולמעשה מהווה את התוכנה עצמה מבלי התנהגויות מורכבות שניתן להפיק ממנה אם מוסיפים לה רכיביי תוכנה (מודולים).
ניתן להמשיל ליבת תוכנה לגלעין של פרי; מתוך הגלעין מתפתח הפרי.