תוכנה - מונחים

==מונחי בסיס==
* תוכנה – אוסף מאורגן של הוראות ומידע עבור מחשב.
* תוכנית מחשב – רצף של הוראות בשפת תכנות כלשהי, שנועדו לבצע משימה מסוימת, קטנה או גדולה, במחשב.
* יישום מחשב – תת־מחלקה של תוכנות מחשב אשר מנצלות את יכולות המחשב לביצוע משימות אותן המשתמש מבקש לבצע.
* תוכנת מערכת – תוכנת מחשב המיועדת להפעלה ושליטה על חומרת המחשב, ומשמשת כפלטפורמה להרצת יישומי מחשב.
* תכנות – המלאכה של פיתוח ותחזוקה של תוכנה.
* מתכנת/תוכניתן – אדם העוסק בתכנות.
* קוד פתוח (Open Source) – תוכנה אשר קוד המקור שלה גלוי ונגיש בדרך כלל באמצעות האינטרנט. פרויקטים המפותחים בגישה של קוד פתוח מאפשרים לקהילה רחבה של מפתחים ממרחבי האינטרנט זמינות להורדה של הקוד להתבוננות ולמידה ממנו. פרויקטים אלו מפיקים תועלת ממודל הפתיחות כאשר הקהילה תורמת בחזרה לפרויקט שיפורים, תיקונים והרחבות של קוד המקור. פרויקטים מפורסמים אשר פותחו בגישה של קוד פתוח הם לינוקס (Linux) ואפאצ'י (Apache).
* תוכנה חופשית (Free software) – תוכנה בעלת סטטוס משפטי התומך באפשרות של כל אדם להשתמש בה, לשכפלה, להפיצה, להתאימה, לשנותה ולשפרה כפי רצונו, באופן חופשי, אך תחת תנאים מסוימים המבטיחים את זכויותיהם של שאר המשתמשים.
* תכנות מונחה עצמים – תפיסה בפיתוח תוכנה, שהמרכיב הבסיסי בה הוא העצם (האובייקט).
* תכנות מונחה אירועים – תפיסה בפיתוח תוכנה, שהמרכיב הבסיסי בה הוא האירוע.
* תכנות פרוצדורלי – תפיסה בפיתוח תוכנה, שהמרכיב הבסיסי בה הוא השגרה.
* תכנות פונקציונלי – תפיסה בפיתוח תוכנה, שהמרכיב הבסיסי בה הוא הפונקציה, ודגש על היעדר או הגבלה של תופעות לוואי.
* בדיקות תוכנה – תהליך (חלק מכלל תהליכי הבטחת איכות) במחזור פיתוח תוכנה, הנמצא בין סיום הפיתוח לתחילת השימוש במוצר. בדיקות תוכנה מבוצעות בשני מישורים – בקרת איכות של הגוף המפתח, ובדיקות קבלה של הגוף המשתמש. תהליכי בדיקות תוכנה הם חלק בלתי נפרד מתהליכי הנדסת תוכנה.

==שפת תכנות==
* קוד מקור – הוראות הפעלה עבור מחשב הכתובות על פי תחביר של שפת תכנות. הכוונה בדרך כלל לתוצאת עבודתו של מתכנת.
* שפת מחשב – שפה אשר בה נכתבות הוראות הפעלה סדורות עבור המחשב. שפה זו מעובדת לפעולות על ידי המעבד אשר במרכז המחשב.
* שפת תכנות – שפה, בעלת אוצר מילים וכללי תחביר משלה, המשמשת למתן הנחיות פעולה למחשב. ראו שפות תכנות.
* שפה עילית – שפת תכנות שסגנונה קרוב לשפתו של המשתמש בה ובעזרתה אפשר ליצור תוכנת מחשב.
* שפת סף – שפת תכנות שבה יש התאמה חד־חד ערכית בין הפקודות שכותב המתכנת ובין הפקודות בשפת המכונה, כלומר כל פקודה בשפת סף מתורגמת לפקודה אחת בשפת מכונה.
* שפת מכונה – הקידוד הבינארי הישיר למתן הוראות פעולה למעבד.
* שפת תכנות Low-level – שפת תכנות המספקת אבסטרקציה מעטה מארכיטקטורת סט הפקודות של המחשב, או כלל לא.
* תחביר – אוסף הכללים ליצירת רצפי תווים בעלי משמעות לצורך תכנות בשפת תכנות מסוימת.
* מחולל יישומים – כלי תוכנה אשר בעזרתו ניתן לכתוב תוכנת מחשב. היחס בינה לשפה עילית הוא היחס בין בנייה מודולרית מתועשת לבין בנייה מסורתית.
* אסמבלר – תוכנית מחשב המתרגמת תוכנית שנכתבה בשפת אסמבלי לקוד ביצוע במחשב.
* מהדר (compiler) – תוכנה שתפקידה להמיר קוד של תוכנה משפה אחת לשפה שנייה (בדרך כלל משפה עילית לשפת ביניים או שפת מכונה).
* הידור – המרת קוד תוכנה משפה אחת לשפה שנייה (בדרך כלל משפה עילית לשפת ביניים או שפת מכונה).
* קישור – חיבור רכיבי תוכנה אחדים לתוכנית בת־ביצוע אחת.
* bootstrapping – הפעלת תהליך מורכב באמצעות תהליך פשוט יותר מאותו סוג.
* מפרש (interpreter) – תוכנה הקוראת תוכנית מחשב הכתובה בקוד שפת תכנות ומבצעת אותה שורה אחר שורה, ללא שלב הביניים של ההידור. רוב שפות התסריט (Scripting Languages) וגם גרסאות מסוימות של שפת BASIC הם כאלו.
* פולימורפיזם – היכולת לטפל בערכים מטיפוסים שונים בעזרת ממשק אחיד.
* עצם – בתכנות אימפרטיבי, אזור בזיכרון המחשב, או במודל הזיכרון של שפת התכנות, שעשוי להכיל ערכים (הכללה של מושג האובייקט בתכנות־מונחה עצמים, ראו למטה).
*קובץ הרצה – קובץ אשר ניתן לביצוע ישירות על ידי המחשב. בדרך כלל יכיל הקובץ יצוג בינארי של פקודות מכונה.

==שימוש בתוכנה==
* הנדסת תוכנה – היא הפעילות ההנדסית העוסקת בפיתוח יעיל של תוכנה איכותית.
* אימות תוכנה – תחום במדעי המחשב העוסק בהוכחה שתוכנה מסוימת מבצעת בדיוק את מה שהוגדר במפרט שלה או בעלת תכונות מסוימות.
* סיבוכיות – ענף של מדעי המחשב שבמסגרתו נבחנים המשאבים הנחוצים לפתרון בעיה נתונה באמצעות מחשב, ומושווית יעילותם של אלגוריתמים שונים לפתרון בעיה זו.
* מכונה וירטואלית – תוכנה היוצרת סביבה הנחוצה להפעלתה של תוכנה אחרת, מבלי שיהיה צורך במימוש פיזי של סביבה זו.
* מסד נתונים – תוכנה לאחסון נתונים ואחזורם.
* גיור תוכנה – התאמתה לשפה העברית של תוכנה שפותחה למען משתמשים בעולם הרחב, ללא התחשבות מראש בשפה העברית.
* היסב – התאמת קוד תוכנה מסביבה X לסביבה Y.
* ממשק משתמש – חלק התוכנה המטפל בדיאלוג שבין המחשב למשתמש.
* GIGO – עקרון מעולם מדעי המחשב שלפיו תוכנית מחשב או פונקציה המקבלת קלט שגוי, דינה להחזיר פלט שגוי גם הוא.
* וניל - שימוש בתוכנה או מערכות מחשוב אחרות כגון חומרה או אלגוריתמים שבצורתן הראשונית, אינן מותאמות, כלומר, הן משמשות ללא כל התאמות אישיות או עדכונים שהוחלו עליהן.

==מערכת הפעלה==
* מערכת הפעלה – תוכנה המגשרת בין המשתמש, החומרה ויישומי התוכנה, ומפקחת על פעולתו של המחשב. ראו רשימה של מערכות הפעלה.
* ליבת מערכת ההפעלה (Kernel) – חלק בסיסי במערכת ההפעלה.
* BIOS (Basic Input Output System) – מערכת קלט/פלט בסיסית, משמשת לאתחול מערכות מחשב.
* API (Application Programming Interface) – פונקציות של תוכנה, לרוב של מערכת ההפעלה עצמה, הפתוחות לשימושן של תוכנות אחרות לשם קבלת שירותיה של מערכת ההפעלה או התוכנה.
* זמן ריצה – מושג במדעי המחשב תחת הקטגוריה "יעילות", המגדיר את הזמן שתוכנה רצה מתחילת הקוד ועד סוף התוכנית ומסומן באות O. שני קטעי קוד המבצעים אותה משימה בזמן ריצה שונה, הקוד עם זמן הריצה הקצר יותר יוגדר כיעיל יותר וכך גם כטוב יותר עבור המשתמש.

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

==מוצרי תוכנה==
* WYSIWYG (What You See Is What You Get) – תכונה של תוכנת עריכה (מעבד תמלילים, עורך HTML וכדומה) שבה הדף המוצג על־גבי הצג בזמן עריכת המסמך זהה לזה שיוצג בתוצאה הסופית: דף במדפסת במקרה של מעבד תמלילים, דף בדפדפן במקרה של עורך HTML וכדומה.
* OCR (Optical Character Recognition) – תוכנה המסוגלת לזהות אותיות הנמצאות על־גבי נייר או מסך, על־פי צורתן הגרפית.
* זיהוי כתב – תכונה הקיימת במכשירי PDA ומאפשרת להם להמיר כתב יד למידע דיגיטלי.
* משחק וידאו – משחק המיושם באמצעות תוכנה על־גבי מחשב או קונסולת משחקים.
* מעבד תמלילים – תוכנה המשמשת להקלדה, עריכה ועיצוב של מסמכים מודפסים.
* חבילת יישומים משרדיים – חבילה של מוצרי תוכנה הכוללת מעבד תמלילים, גיליון אלקטרוני, מצגת שקפים ועוד.
** מיקרוסופט אופיס – חבילת יישומים משרדיים מתוצרת מיקרוסופט.
** אופן אופיס – חבילת יישומים משרדיים חופשית מתוצרת סאן מיקרוסיסטמס.
** סטאר אופיס – חבילת יישומים משרדיים מתוצרת סאן מיקרוסיסטמס (על בסיסה נכתבה אופן אופיס).
** ליברה אופיס – חבילת יישומים משרדיים חופשית המפותחת על ידי קרן המסמך (The Document Foundation).
* דפדפן – תוכנה המאפשרת לראות מידע באינטרנט.
**אינטרנט אקספלורר – דפדפן שפותח על ידי מיקרוסופט.
**Microsoft Edge – דפדפן שגם כן פותח על ידי מיקרוסופט.
**פיירפוקס – דפדפן אינטרנט בקוד פתוח המפותח על ידי קרן מוזילה.
**Epiphany – דפדפן חופשי המיועד לסביבת העבודה GNOME.
**אופרה – דפדפן קנייני חינמי המפותח על ידי חברת Opera Software.
**גוגל כרום – דפדפן שפותח על ידי גוגל.
**Safari – דפדפן שפותח על ידי אפל.
* בינה מלאכותית – ענף של מדעי המחשב העוסק ביכולתם של מחשבים לפעול באופן המציג יכולות השמורות עד כה לבינה האנושית בלבד.
* מערכת לומדת – מערכת אשר קולטת את אופן יישומם של תהליכים מסוימים ועל פיהם עושה את אותם התהליכים בעתיד. תכונה חשובה של מערכות בינה מלאכותית.
* מבחן טיורינג – כינוי למבחן שהציע אלן טיורינג בשנת 1950, כמדד אפשרי למידת התבונה של מערכת שאיננה אנושית.
* ראייה ממוחשבת – ענף של מדעי המחשב העוסק במתן יכולת למחשב להבנה, ניתוח, ועיבוד מידע חזותי מתמונות וסרטי וידאו.
*מנוע משחקים – תוכנה המשמשת ליצירת משחקי מחשב.
*מנהל התקן (דרייבר) – ממשק של רכיב חומרה המאפשר לתוכנות לגשת אליו.
* משבצת (תוכנה) – תוכנה המיועדת לעימוד ספרי קודש.

==תכנות מונחה עצמים==
תפיסה בפיתוח תוכנה, שהמרכיב הבסיסי בה הוא האובייקט – מופע (מימוש) של מחלקה (class). מכל מחלקה ניתן לבנות אובייקטים כרצוננו. מחלקה כוללת משתנים ופעולות אפשריות על המשתנים. הרעיון הוא שכל פעולה על משתני המחלקה תעשה רק על ידי הפעולות המוגדרות בתוך המחלקה. בכך מושגת שמירה על המשתנים והקלה בתהליך בדיקות התוכנה. מכל מחלקה ניתן לבנות בהורשה מחלקות אחרות, שלהן יתווספו משתנים ופעולות מעבר למה שמוגדר במחלקה המורישה. כל מחלקה כוללת גם בנאי (constructor) הבונה אובייקט חדש של המחלקה, ומפרק (destructor) אשר מפרק את האובייקט ומשחרר את הזיכרון שהיה בשימוש האובייקט.
* כימוס – מנגנון שמאפשר יצירת יחידת תוכנה בעלת ממשק מוגדר לשאר חלקי התוכנה.
* ירושה – דרך לבסס יחס "סוג־של" (is-a) בין עצמים, המסייע במידול של תחומים בדרך דומה לזאת המוגדרת באופן "טבעי" על ידי העוסקים בהם.
* פולימורפיזם – תכונה המאפשר לטפל בערכים מטיפוסים שונים בעזרת ממשק אחיד.
* מחלקה (תכנות) – מבנה המגדיר טיפוס נתונים – אוסף של משתנים ופונקציות הפועלות על משתנים אלה, וכן מנגנון ליצירת אובייקטים השייכים למחלקה.
* אובייקט (מדעי המחשב) – מופע ספציפי של מחלקה.
* בנאי – פונקציה המאתחלת את השדות של אובייקט עם היווצרו.

==ראו גם==

*חומרה – מונחים
*רשת מחשבים – מונחים
*אחסון נתונים – מונחים
*
*
תוכנה