עיצוב מעלה-מטה ומטה-מעלה – הבדלי גרסאות

מתוך ויקיפדיה, האנציקלופדיה החופשית
תוכן שנמחק תוכן שנוסף
Yonidebot (שיחה | תרומות)
מ בוט החלפות: להיכנס$1;
Yonidebot (שיחה | תרומות)
מ בוט החלפות: תלויה;
שורה 48: שורה 48:


==מדעי המוח ופסיכולוגיה==
==מדעי המוח ופסיכולוגיה==
במושגים אלה נעשה שימוש גם ב[[מדעי המוח]] וב[[פסיכולוגיה]]. דוגמה ניתן לראות במחקר על [[תשומת לב]] ויזואלית. אם תשומת לבך נמשכת לפרח בשדה, ייתכן פשוט שהפרח בולט יותר באופן ויזואלי מאשר השדה שבו הוא מוקף. המידע שגרם לך לשים לב לפרח הגיע אליך בסגנון של מטה-מעלה. תשומת לבך לא הייתה תלוייה במודעותך לפרח, די היה בגירוי החיצוני. השווה סיטואציה זו עם אחת שבה אתה מחפש פרח. יש לך ייצוג של מה שאתה מחפש. כשאתה רואה את האובייקט שאתה מחפש, זה בולט. זו דוגמה לשימוש של מידע מעלה-מטה.
במושגים אלה נעשה שימוש גם ב[[מדעי המוח]] וב[[פסיכולוגיה]]. דוגמה ניתן לראות במחקר על [[תשומת לב]] ויזואלית. אם תשומת לבך נמשכת לפרח בשדה, ייתכן פשוט שהפרח בולט יותר באופן ויזואלי מאשר השדה שבו הוא מוקף. המידע שגרם לך לשים לב לפרח הגיע אליך בסגנון של מטה-מעלה. תשומת לבך לא הייתה תלויה במודעותך לפרח, די היה בגירוי החיצוני. השווה סיטואציה זו עם אחת שבה אתה מחפש פרח. יש לך ייצוג של מה שאתה מחפש. כשאתה רואה את האובייקט שאתה מחפש, זה בולט. זו דוגמה לשימוש של מידע מעלה-מטה.


==קישורים חיצוניים==
==קישורים חיצוניים==

גרסה מ־15:56, 7 בנובמבר 2008

מעלה-מטה ומטה-מעלה הן אסטרטגיות לפיתוח תוכנה, המופיעות גם בהקשר של תורות המערכות הומניות ומדעיות.

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

בניגוד לזאת, במודל מטה-מעלה מוגדרים תחילה החלקים הפרטיים של המערכת לפרטיהם, ואז מצורפים החלקים יחדיו לרכיבים גדולים יותר, שבתורם מצורפים גם הם עד להשגתה של המערכת השלמה. אסטרטגיות שמבוססות על זרימת מידע מטה-מעלה עשויות להראות כחיוניות ומספקות עקב היותן מבוססות על ידיעת כל הגורמים שעשויים להשפיע על חלקיה היסודיים של המערכת.

מדעי המחשב

כמה חלקים של פרק זה תורגמו ממקור שהתבסס על הספר האינטרנטי Perl Design Patterns

רקע היסטורי

בתהליך פיתוח תוכנה הגישות מעלה-מטה ומטה-מעלה משחקות תפקיד מרכזי.

עיצוב מעלה-מטה הוא המקור העיקרי של שפות תכנות פרוצדורליות מסורתיות. עיצוב זה קודם בשנות השבעים של המאה ה-20 על ידי הרלן מילס וניקלאוס וירת. מילס פיתח תפישות של תכנות מובנה לשימוש מעשי, שאותן הוא בחן בפרויקט מיכון אינדקס הארכיון של הניו יורק טיימס בשנת 1969. הצלחתו ההנדסית והניהולית של הפרויקט הובילה לתפוצת גישת מעלה-מטה דרך IBM ושאר תעשיית המחשבים. ניקלאוס וירת, שפיתוח שפת התכנות פסקל הוא אחד מהישגיו, כתב את המאמר המשפיע "Program Development by Stepwise Refinement".

שיטת מעלה-מטה הועדפה בהנדסת תוכנה עד לעלייתה של פרדיגמת תכנות מונחה עצמים בשנות השמונים המאוחרות של המאה העשרים. בשפות מונחות עצמים כדוגמת C++‎ או Java הועדפה שיטת תכנות מטה-מעלה.

גישות מודרניות לעיצוב תוכנה משלבות בדרך כלל את הגישות מעלה-מטה ומטה-מעלה. מחד, הבנה של המערכת בכללותה נחשבת לרוב כחיונית לעיצוב טוב, מה שאופייני לגישת מעלה-מטה. ומאידך, ברוב הפרויקטים לפיתוח תוכנה מנסים להשתמש בקוד קיים להשגת כמה יתרונות, והאפשרות לשימוש חוזר בקוד אופיינית לגישת מטה-מעלה.

תכנות

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

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

שיטת מעלה-מטה מדגישה תכנון והבנה מלאים של המערכת. משמעות הדבר היא, שכתיבת הקוד אינה מתחילה עד שהושגה רמה מספקת של פרטים בעיצובם של לפחות כמה מחלקיה של המערכת. דבר זה מעכב בדיקה של יחידות פונקציונליות בסיסיות של המערכת עד להשלמתו של חלק משמעותי מהעיצוב.

לעומת זאת, שיטת מטה-מעלה מדגישה כתיבת קוד ובדיקות מוקדמות, שעשויות להתחיל מיד משהוגדר המודול הראשון. גישה זו טומנת בחובה סיכון שבקידוד מודולים בלא שיהיה ברור כיצד הם אמורים להיות מקושרים לחלקיה האחרים של המערכת, וקישור כזה עלול להיות קשה מכפי שזה נראה במחשבה ראשונה.

הטכניקה לכתיבת תוכנה בגישת מטה-מעלה היא לעצב ולקודד באופן מלא מערכת בעלת פונקציונליות חלקית, ואז להרחיב את המערכת עד למימוש כל דרישות הפרויקט.

יתרונות וחסרונות

שיטת מעלה-מטה

יתרונות:

  • צוות התכנות נותר ממוקד במטרה
  • בשעה שהתכנות מתחיל אין יותר שאלות
  • הקוד קל למעקב, כיוון שהוא נכתב בשיטתיות ועם מטרה

חסרונות:

  • תכנות מעלה-מטה עלול להכביד על הבדיקות, כיוון ששום תוכנה שניתנת לביצוע אינה קיימת עד סמוך לגמר ביצוע הפרויקט

שיטת מטה-מעלה

יתרונות:

  • אפשרות לשימוש חוזר בקוד
  • ניתן לבצע בדיקות סמוך לתחילת הפרויקט

חסרונות:

  • קושי בשילוב מודולים של מערכת, כיוון ששילוב זה לא תוכנן מראש.

מדעי המוח ופסיכולוגיה

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

קישורים חיצוניים