תחום הנדסת תוכנה מורכב מ2 נושאים עיקריים
- חישוביות ואלגוריתמים – שייך לתחום מדעי המחשב > מתמטיקה שימושית
- עיצוב פרדיגמה תכנותיות – software design - עיצוב הקוד - ילמד בקורס הקרוב
עקרונות בעיצוב תוכנה – מתוך ויקיפדיה
- הפשטה - תהליך של הכללה על ידי הקטנת כמות המידע הנראה לעין של מושג או תופעה, בדרך כלל כדי להתייחס למידע שרלוונטי למטרה מסוימת.
- מודולריות - האפשרות לפרק את התוכנה למספר חלקים הניתנים לשינוי. מערכת מודולרית תהיה מחולקת ליחידות משנה.
- ארכיטקטורת תוכנה - מבנה התוכנה הכללי, והשלמות הרעיונית.
- מבנה נתונים - מייצג את הקשרים הלוגיים בין יחידות מידע.
- ארגון, מבנה, והיררכיה.
- כימוס - מידע לא יהיה נגיש למודל שלא עושה בו שימוש.
- תמיכה בתחזוקה ועדכון - הצורך בתחזוקה קיים בשל גילוי פגמים ושיפור יכולות. לכן יש להקפיד על תכנות מודולרי, לעשות שימוש חוזר בקוד, ותיעוד.
ארגון קוד
תכנות מובנה – בשימוש בשפות C \ basic - יחידת הארגון זה פונקציה
– פונקציה מקבלת ערכים > מעבדת > מחזירה ערך
Object oriented – תכנות מונחה עצמים - גישת
עיצוב קוד שמבוססת על מחלקות של אובייקטים שלכל אחד מאפיינים ופעולות משלה ומשמשת
כיחידה סגורה ועצמאית
Class - מחלקה היא תבנית לאובייקט -
חבילה של פונקציות \ משתנים – data member / member factions יצירת מחלקה נקראת כימוס
Abstraction הפשטה - תהליך קוגניטיבי שבו אנו מסירים מאובייקט במציאות
מרכיבים
שאינם רלוונטיים להגדרתו כמושג
שאינם רלוונטיים להגדרתו כמושג
Data hiding – מטרת העבודה בקלאסים היא למנוע מהמשתמש גישה
למשתנים
Public - ACCESS
MODIFIERS \ private - הגדרת משתנה מסוג Public אומרת שניתן לגשת למשתמש בכל התוכנית לעומת זאת למשתנה
מסוג privateניתן לגשת רק בתוך
אותו הבלוק לכן נגדיר את המשתנים בקלאס כ private
בעבודה עם מחלקות נגדיר את המשתנים כ private ע"מ למנוע מהמשתמש
במהלך כתיבת הקוד קוראים ל
Object ע"י יצירת אובייקט
עם שם יחודי – ניתן ליצור את האובייקט שוב ושוב עם שמות שונים
Person p = new Person();
New – אופרטור
המקצה זיכרון לאובייקט המבוקש () בנאי המאתחל את המשתנים של האובייקט
גישה לחברים
(משתנים\פונקציות) של האובייקט באמצעות שם המשתנה. שם האובייקט
פונקציה לבנייה התחלתית של האובייקט. הוא מופעל אוטומטית
בעת יצירת מופע מהמחלקה (אובייקט) באמצעות הפקודה new:
אם לא נכתוב אף בנאי במחלקה יהיה בנאי default (ברירת מחדל) שלא מקבל
פרמטרים ולא מבצע שום פעולה.
Constructor default – מאתחל
את המשתנים לערך ברירת מחדל int = 0 string = null -
בנאי יכול לקבל פרמטרים – בתוך המחלקה נגדיר פונקציה בשם של המחלקה
– ואז ביצירת אובייקט חובה לאתחל את הערך שהוגדר
כך נוכל להגדיר שלא אפשרי ליצור משתמש ללא ת.ז
public Person(int PersonId)
{
Id =
PersonId ;
}
שימו לב !!! אם נקרא לפונקציה כשם המשתנה ההתייחסות תהיה למשתנה של הפונקציה (המוגדר
בכותרת הפונקציה) ולא של המחלקה. אם נרצה לגשת למשתנה המחלקה יש לכתוב לפני: this.
הפעלת בנאי שמקבל פרמטרים Person p = new Person(123456);
ברגע שהוגדר בנאי אחד למחלקה לא ניתן יותר להשתמש בבנאי ברירת מחדל
- ניתן להגדיר יותר מבנאי אחד
לא ניתן ליצור 2 בנאים שמקבלים אותם סוגי ערכים לדוג' לא ניתן ליצור
2 בנאים שמקבלים string אחד למרות שמדובר על 2 משתנים שונים
ניתן ליצור אחד שמקבל string ואחד שמקבל string ו- int או 2 string
שרשור Constructor – במידה
ויש בנאי ברירת מחדל שמגדיר AB ונדרש
בנאי נוסף שיאתחל גם את Cניתן לשרשר בניהם במקום
לכתוב כפול – נקרא לפונקציה אחת שקוראת לשנייה
public cat(string owner):this()
אתחול משתנה מתוך קובץ – ניתן להגדיר ערך של משתנה
מתוך קובץ טקסט – כרגע אנחנו לא משתמשים בבסיס נתונים לשמור את המידע ובכל פעם
שסוגרים את הconsole הנתונים
נמחקים אז אם רוצים לשמור על רצף \ לעקוב אחרי שינויים ניתן לרשום את המידע בקובץ
ובכל הרצה המערכת תמשוך את המידע מהקובץ
יכול לשמש גם בעתיד ביצירת תוכנה שנדרש שהמשתמש יעדכן מידע לדוג'
מחיר של מוצר וכמובן שלא ניתן לו גישה לקוד אלא לקובץ והתוכנה תמשוך משם את המידע
דוג' לקוד – אם הקובץ קיים תאתחל את המשתנה מתוך הקובץ אחרת תאתחל
בערך ברירת מחדל > תיצור קובץ ותכתוב בו את הערך
if (File.Exists(PathFileTemperature))
this.temperature =
Convert.ToInt32(File.ReadAllText(PathFileTemperature));
else
{
this.temperature = 16;
File.WriteAllText(PathFileTemperature, temperature.ToString());
}