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

מונחי בסיס

  • תוכנה – אוסף מאורגן של הוראות ומידע עבור מחשב.
  • תוכנית מחשב – רצף של הוראות בשפת תכנות כלשהי, שנועדו לבצע משימה מסוימת, קטנה או גדולה, במחשב.
  • יישום מחשב – תת־מחלקה של תוכנות מחשב אשר מנצלות את יכולות המחשב לביצוע משימות אותן המשתמש מבקש לבצע.
  • תוכנת מערכת – תוכנת מחשב המיועדת להפעלה ושליטה על חומרת המחשב, ומשמשת כפלטפורמה להרצת יישומי מחשב.
  • תכנות – המלאכה של פיתוח ותחזוקה של תוכנה.
  • מתכנת/תוכניתן – אדם העוסק בתכנות.
  • קוד פתוח (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. שני קטעי קוד המבצעים אותה משימה בזמן ריצה שונה, הקוד עם זמן הריצה הקצר יותר יוגדר כיעיל יותר וכך גם כטוב יותר עבור המשתמש.

אבטחת מידע

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

מוצרי תוכנה

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

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

ראו גם