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