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