ישנם כמה מונחי רקע חשובים לתחום פיתות תוכנה.
- המונח מצב (באנגלית: mode או state) משמש לתאר תיאור מבוסס זמן של גורם אחד או יותר במרחב.
- המונח מערכת (באנגלית: system) משמש לתאר הגדרה של שני גורמים לפחות יחדיו.
- המונח תופעה (באנגלית: phenomenon) משמש לתאר שינוי במרחב בנקודת זמן מסוימת.
- המונח תהליך (באנגלית: process) משמש לתאר שינוי ממצב אחד לאחר, אם הדבר בכלל אפשרי. במחשוב זה ריצת תוכנה.
לכל מערכת במרחב יש מרחב מצבים פוטנציאלי והגיוני מבחינה לוגית לפחות. מה קורה בפועל תלוי במגוון רחב של גורמים. תוכנות שונות יכולות להיות במצבים שונים ואולי הן גם יגיבו בהתאם (תגובה לתנאי \ טיפול באיוונט).
פילוסופיה של המונח "מצב"
- מצבים שיכולים להתקיים פיזיקלית ללא התערבות ישות חיצונית למציאות.
- מצבים שיכולים להתקיים פיזיקלית רק בהתערבות ישות חיצונית למציאות.
- מצבים שלא יכולים להתקיים כלל וניתן רק לתאר אותם במילים כאבסורדום אך אפילו לא לדמיין אותם ("האם אלוהים יכול לברוא כיסא שעשוי רק מברזל אבל גם רק מנחושת בו זמנית?" אני אישית מניח שהתשובה היא "לא" כי ניתן לטעון שאלוהים הוא רב-יכול ברמה הגבוהה ביותר אך לא כל-יכול).
הרחבה על המושג איוונט בכלל ובהקשר פיתוח תוכנה בפרט
איוונט (באנגלית: Event ; בעברית: תופעה או תרחיש) ניתן להגדיר ככל מצב במציאות, אבל הוא נפוץ מאד ספציפית בהקשר פיתוח תוכנה.
בהגדרה צרה, ניתן להגדיר, למשל, הרצת מערכת הפעלה כאיוונט במערכת מחשב נתונה והרצת דפדפן ווב על מערכת ההפעלה הזו כאיוונט במסגרת אותה מערכת הפעלה.
בהגדרה רחבה, ניתן להגדיר איוונט ככל מצב שאיננו המצב הראשון של ריצה נתונה של תוכנה. כלומר, זהו כל מצב בתוכנה שהתקבל מיד לאחר תחילת ריצתה והאינטראקציה עימה דרך ממשק משתמש. כל מצב שכזה ← שני, שלישי, רביעי וכן הלאה ייקרא "איוונט" (מצב מסוג "איוונט" ולא "התחלה") שהוא תרחיש שהתרחש על בסיס המצב הראשון\ראשוני ובעקבות אינטראקציה. על בסיס איוונטים ניתן לפתח התנהגות תוכנה כתגובה (reaction) לתנאי (condition) מסוים שהוא למעשה האיוונט לפי הגדרה.
לא בכל שיח פיתוח תוכנה המושג איוונט יהיה רלוונטי או מדויק ואכן במקרים רבים יהיה שימוש רק בתגובה-תנאי (condition-reaction) או מינוח אחר אך המונח הזה איוונט נפוץ מאד בשיח על פיתוח אתרי ווב בכלל ושפת JavaScript בפרט ולכן חשוב להכירו ואת יחסו למינוח קרוב.
הערות כלליות
- המונח פרמטר (באנגלית: parameter) משמש לתאר ישות מהותית במערכת שיכולה להיות קבוע או משתנה.