| נשלח ב-4/9/2011 01:18 |
|
| |
מושגי יסוד של פיתוח מונחה עצמים
המושג מונחה עצמים מתייחס לשני הבטים של פיתוח תוכנה. פן אחד הוא שחלוקת איזורי פיתוח מבוסס על אובייקטים מהעולם האמיתי, ופן שני מתייחס למחלקות שממנו מייצרים אובייקטים.
אנסה להתייחס לשני הבטים אלו, ואיך דרכם אנחנו מסוגלים לבנות מערכות טובות יותר.
בפיתוח תוכנה יש חשיבות גדולה בבניית מערכת שקל לתחזק ולהרחיב. רוב תוכנות עוברים שינויים מזמן לזמן, עד כדי כך, שאם המערכת שלכם לא משתנה, כנראה שהגיע הזמן לחפש מקום עבודה בטוח יותר. כשיש שינויים, השאיפה היא שהם ייעשו בצורה הכי קלה, והכי פחות כואבת. יש כמה עקרונות שאנחנו יכולים לאמץ שיעזרו לנו להכניס שינויים שלא יכאבו, אבל הבסיס הוא לזהות את החלקים שישתנו, ואת החלקים שיש סיכוי טוב שיישארו יציבים.
|
|
|
|
| נשלח ב-4/9/2011 01:21 |
|
| |
תודה!
בתקווה שתוסיף לנו מידיעותיך.. :)
|
|
|
|
| נשלח ב-4/9/2011 01:26 |
|
| |
בדרך כלל, לב האפליקציה, ולב ה"ביזנס", לא משתנה. מה שמשתנה היא דרך היישום, היעילות, אפליקציות נוספות שמשלבות את לב האפליקציה, ורכיבי חומרה נוספים שמשתלבים במערכת. אם זה נכון, אז השאיפה היא לבודד את לב האפליקציה מדרך יישומו. אם החלוקה והמחלקות יהיו מבוססות על עצמים מהעולם האמיתי, אז הסיכוי שהאכיטקטורה יהיה נכון גם כשישתנה החומרה. נקח דוגמא של מערכת לניהול סופרמרקט: המושג של מוצר, מחיר, חיי מדף, עלות, ספק ולקוח תמיד יהיו נכונים. זה לא משנה אם הסופר הוא פיזי או ווירטואלי.
אם הייתי מפרק את היישום לפי קופאית, מדפסת ומסך, אז בסופר פיזי, זה מתאים, בסופר ווירטואלי כבר לא.
|
|
|
|
| נשלח ב-4/9/2011 01:41 |
|
| |
הפן השני של המושג אובייקטים, מתייחס לזה שמחלקות הם הבסיס ליצירת אובייקטים, שהם אלו שעושים את כל העבודה. לפעמים אנחנו מייצרים רק אובייקט אחד מהמחלקה, כמו במחלקות שהם SINGELTON, מכל מקום אנחנו מעדיפים לבנות את האובייקט, ולא להגדיר את כל הפונקציות שלו כפונקציות סטטיות. הסיבה לכך היא שברגע שנגדיר פונקציות סטטיות, אנחנו מתקרבים לכתיבת קוד שאיננו מונחה עצמים, שהמחלקה היא רק מקום איחסון של פונקציות, שאין להם קשר אחד לשני, ואין קשר בין הפונקציות לתכולת המחלקה, ה-Attributes שלה.
בפיתוח מונחה עצמים, המחלקה אמורה להיות יחידה לוגית שכולל את הפונקציות והמידע שנדרש לבצע אוסף של משימות שקשורות למושג ביזנסי מוגדר.
|
|
|
|
| נשלח ב-4/9/2011 01:49 |
|
| |
ואו אני שומעת את המורה שלי מדברת עכשיו... כל הכבוד על היוזמה לכתוב ע"כ :) זה השיעור של הפתיח של הנושא... לא ממליצה לך להמשיך לכתוב, לדעתי זה לא נגמר...:( סתם, אם יש לך רצון בכיף.. אגב, ברוך הבא... 
|
|
|
|
| נשלח ב-4/9/2011 01:51 |
|
| |
אז נשאל את עצמנו, מה זה מחלקה CLASS, ומה זה עצם OBJECT? אובייקט, היא לא אובייקט פיזי. אובייקט פיזי לא נכנס למחשב, לא משנה כמה הבן שלי הקטן חושב שהעטים שלי צריכים לכנס לחור של המאוורר.
אובייקט, הוא משהו חישובי שמייצג משהו פיזי. לאובייקט חייב להיות זהות יחודית, יכולת להחזיק ולייצג מצבים, והתנהגות בלי STATE, IDENTITY ו- BEHAVIOR, אין לנו אובייקט. זיהוי נכס שרשום במסד נתונים של העירייה, אינו אובייקט. הוא נהפך לאובייקט כשאני ניגש לפקידה ומבקש הנחה מטעמי ....... אם אשתי באותה עת מבקשת להוסיף עוד כמה ילדים לחשבון המים של הנכס, גם שמה יווצר אובייקט. אובייקט אחר, שחי במרחב חישובי אחר. הרי הזהות לכל אובייקט חייבת להיות ייחודית חד חד ערכית.
אנחנו מאד מקווים ששני האובייקטים ישקפו אותו מידע ויהיו מסונכרנים, מכל מקום אלו שני אובייקטים, שמייצגים אותה רשומה במסד נתונים.
|
|
|
|
| נשלח ב-4/9/2011 01:56 |
|
| |
| פונציבננה כתב: |  | ואו אני שומעת את המורה שלי מדברת עכשיו... כל הכבוד על היוזמה לכתוב ע"כ :) זה השיעור של הפתיח של הנושא... לא ממליצה לך להמשיך לכתוב, לדעתי זה לא נגמר...:( סתם, אם יש לך רצון בכיף.. אגב, ברוך הבא...  |
|
אני לא מכיר את המורה שלך, אבל נדמה לי שיש לי יתרון שאני עוסק בזה ומיישם מה שאני כותב כאן. האם את מכירה UML?
תוקן על ידי מנתחמערכות ב- 04/09/2011 01:57:36
|
|
|
|
| נשלח ב-4/9/2011 01:58 |
|
| |
באמת כל הכבוד על היוזמה. לא נפריע לך ברצף המאמרים.
|
|
|
|
|
| נשלח ב-4/9/2011 01:59 |
|
| |
אין בעיה להפריע, הכי נורא נעתיק את זה מסודר אחר כך. המשך יבוא, נקוה שזה יהיה מחר.
|
|
|
|
| נשלח ב-4/9/2011 07:41 |
|
| |
מקווים גם..
|
|
|
|
| נשלח ב-4/9/2011 08:11 |
|
| |
בוקר טוב
יו כמה שזה משעמם ומרדים...
אתה באמת עוסק בזה או רק מלמד את זה ?
בתור אחד שלמד ניתוח מערכות לפני מספר שנים וגם עבד בזה קצת, אני יכול לאמר שאני לא מבין כמעט מילה ממשה שאתה כותב...
אני כיום מנהל פרויקטים (במיחשוב) וגם קצת עוסק בניתוח
אני חייב לאמר שבתכלס, אתה (המנתח הסטנדרטי) לא מתעסק עם כל המונחים הללו וכשהוא כותב מסמך ניתוח הוא לוקח מסמך ניתוח קיים ומשנה לו את הפרטים הפנימיים ולא מתעסק במונחים המופשטים של קלאסים ואוביקטים וכו'
אולי לדעתך אני טועה, אבל נראה לי זאת המציאות הדי סטנדרטית בעולם המחשבים
|
|
|
|
| נשלח ב-4/9/2011 12:36 |
|
| |
קובוליסט, אולי תכתוב מה בפועל צריך? כי ניתוח מערכות למדתי בסמינר, אבל עם כל הבועות האלה של DFD או איך שלא קוראים להם.. והמתכנת אצלנו, שעושה ניתוח מערכות - באמת עובד בשיטה אחרת.. אולי אפשר לפרט את המעשי?
תודה!
|
|
|
|
| נשלח ב-4/9/2011 12:42 |
|
| |
אני גם לא מבינה כלום ממה שכתבת.. אתה יכול לכתוב בצורה מוחשית הרבה יותר למשל משהו כמו: אוביקט = כסא מחלקה = מאפייני כסא
|
|
|
|
| נשלח ב-4/9/2011 12:57 |
|
| |
| חולמת_בקיץ כתב: |  | אני גם לא מבינה כלום ממה שכתבת..
אתה יכול לכתוב בצורה מוחשית הרבה יותר
למשל משהו כמו: אוביקט = כסא
מחלקה = מאפייני כסא |
|
אז כן הבנת+-...;)
אם את גרה באזור שלי אני יוכל לשבת וללמוד איתך את זה כי אני רוצה(חייבת!) ג"כ להזכר בזה...
|
|
|
|
| נשלח ב-4/9/2011 13:05 |
|
| |
אני מצטרפת!
|
|
|
|
| נשלח ב-4/9/2011 13:36 |
|
| |
מה הבנתי? לא הבנתי כלום.... זה ידע שלי מהלימודים ומהעבודה השוטפת.
|
|
|
|
|