26.6.2019

הנדסת תוכנה


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



Constructor – בנאי
פונקציה לבנייה התחלתית של האובייקט. הוא מופעל אוטומטית בעת יצירת מופע מהמחלקה (אובייקט) באמצעות הפקודה 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());
            }

אין תגובות:

הוסף רשומת תגובה

MVC

Web api Front end (צד משתמש) שולח http request     כל אתר מכל מכשיר יכול להתחבר ולקבל נתונים (אין אפליקציה) ולא משנה באיזו שפה ה...