תוכנה, היא סדרה מורכבת וארוכה של הוראות לוגיות לטיפול באירועים ומצבים.
התוכנה, חייבת להיות נטולת שגיאות, מדוייקת ויעילה. קיימות כמה פרדיגמות תכנות, שהן סגנון תכנות בסיסי הכולל את הבסיס הרעיוני לפתרון בעיות באמצעות שפת התכנות.
הפרדיגמה מתארת את האופן בו נתפסת הבעיה, ואת האסטרטגיה הנכונה לפתרונה לפי תפיסה זו.
דוגמאות לאופנים שונים להביט על בעיה :
- כאוסף של תהליכים.
- כאוסף של אירועים.
- או אוסף של עצמים.
למשל, ב"תכנות מונחה עצמים" - נשואי הבעיה נתפסים כ"עצמים" בעלי תכונות שונות ויחודיות אשר ביניהם יחסים לוגים שונים.
להבדיל, ב"תכנות פונקציונלי", התוכנית מטופלת כאוסף של פונקציות המשיבות לתוכנית ערכים מעובדים.
יש פרדיגמות שונות, בעבור צרכי תכנות שונים.
שפות התכנות השונות מותאמות לפרדיגמות שונות.
Java למשל, תומכות בתכנות מוכוון עצמים, ואילו C++ תומכת בנוסף בפרדיגמות מרובות.