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

אין תקציר עריכה
מ (בוט החלפות: תלויה;)
אין תקציר עריכה
תגית: הסרת קטגוריות
== מעלה מטה ==
'''מעלה-מטה''' ו'''מטה-מעלה''' הן אסטרטגיות ל[[פיתוח תוכנה]], המופיעות גם בהקשר של [[תורת המערכות|תורות המערכות]] הומניות ומדעיות.
 
לפי מודל מעלה-מטה מודל זה תהליך הקריאה מודרך דווקא מלמעלה-מהמשמעות המצויה במוחו של הקורא: הידע שלו, נסיון חייו וציפיותיו. בעזרת ידע זה הקורא מצליח להבנות את המשעות של הכתוב.
במודל '''מעלה-מטה''' מנוסחת תחילה סקירת מערכת בקווים כלליים בלי להיכנס לפרטים של שום חלק ממנה. לאחר מכן מנוסח כל חלק של המערכת לפרטיו, ואז כל פרט חדש עשוי להיות מנוסח שוב תוך שמגדירים אותו לפרטים נוספים עד שכל המפרט מפורט דיו כדי לתקף את המודל. מודל מעלה-מטה מעוצב לעתים קרובות תוך הסתייעות ב"[[קופסה שחורה (הנדסה)|קופסאות שחורות]]" שמקלות את מימוש סקירת המערכת, אך באופן שאין בו די להבנת המנגנון שביסוד המערכת.
במודל מעלה-מטה הקורא המיומן עובר מן הדפוס למשמעות, בלי לעבור מצופן אחד לאחר. כלומר, אין כאן מעבר מכתב לדיבור ואחר כך למשמעות
 
והקורא פעיל בתהליך; הוא אינו מפענח את סימני הכתב באופן אוטומטי, אלא מפעיל בצורה מושכלת את מאגרי הידע המאוחסנים במוחו (דקדוקי, סמנטי, פרגמאטי-סיטואציוני), ובעזרתם הוא יוצר את משמעות הטקסט: מפתח השערות לגביו, בוחן אותן כדי לאמתן או להפריכן, וחוזר חלילה.
בניגוד לזאת, במודל '''מטה-מעלה''' מוגדרים תחילה החלקים הפרטיים של המערכת לפרטיהם, ואז מצורפים החלקים יחדיו לרכיבים גדולים יותר, שבתורם מצורפים גם הם עד להשגתה של המערכת השלמה. אסטרטגיות שמבוססות על זרימת מידע מטה-מעלה עשויות להראות כחיוניות ומספקות עקב היותן מבוססות על ידיעת כל הגורמים שעשויים להשפיע על חלקיה היסודיים של המערכת.
תהליך של מעלה מטה בקריאה זה המילה שאנו מנחשים ואנו מנחשים מתוך הקשר ומתוך הידע הקודם שיש לנו כלומר אני משתמשת בידע הקודם שבעיקרו נשאן על ניחוש ועל הידע הקודם
 
מעלה-מטה ומטה-מעלה הן אסטרטגיות לפיתוח תוכנה, המופיעות גם בהקשר של תורות המערכות הומניות ומדעיות.
==מדעי המחשב==
במודל מעלה-מטה מנוסחת תחילה סקירת מערכת בקווים כלליים בלי להיכנס לפרטים של שום חלק ממנה. לאחר מכן מנוסח כל חלק של המערכת לפרטיו, ואז כל פרט חדש עשוי להיות מנוסח שוב תוך שמגדירים אותו לפרטים נוספים עד שכל המפרט מפורט דיו כדי לתקף את המודל. מודל מעלה-מטה מעוצב לעתים קרובות תוך הסתייעות ב"קופסאות שחורות" שמקלות את מימוש סקירת המערכת, אך באופן שאין בו די להבנת המנגנון שביסוד המערכת.
:כמה חלקים של פרק זה תורגמו ממקור שהתבסס על הספר האינטרנטי [http://www.perldesignpatterns.com/?PerlDesignPatterns Perl Design Patterns]
יתרונות וחסרונות
===רקע היסטורי===
שיטת מעלה-מטה
בתהליך [[פיתוח תוכנה]] הגישות מעלה-מטה ומטה-מעלה משחקות תפקיד מרכזי.
 
עיצוב מעלה-מטה הוא המקור העיקרי של [[שפת תכנות|שפות תכנות]] [[תכנות פרוצדורלי|פרוצדורליות]] מסורתיות. עיצוב זה קודם בשנות השבעים של [[המאה ה-20]] על ידי [[הרלן מילס]] ו[[ניקלאוס וירת]]. מילס פיתח תפישות של [[תכנות מובנה]] לשימוש מעשי, שאותן הוא בחן בפרויקט מיכון אינדקס הארכיון של ה[[ניו יורק טיימס]] בשנת 1969. הצלחתו ההנדסית והניהולית של הפרויקט הובילה לתפוצת גישת מעלה-מטה דרך [[IBM]] ושאר תעשיית המחשבים. ניקלאוס וירת, שפיתוח [[שפת תכנות|שפת התכנות]] [[פסקל (שפת תכנות)|פסקל]] הוא אחד מהישגיו, כתב את המאמר המשפיע "Program Development by Stepwise Refinement".
 
שיטת מעלה-מטה הועדפה ב[[הנדסת תוכנה]] עד לעלייתה של פרדיגמת [[תכנות מונחה עצמים]] בשנות השמונים המאוחרות של המאה העשרים. בשפות מונחות עצמים כדוגמת [[C Plus Plus|C++‎]] או [[Java]] הועדפה שיטת תכנות מטה-מעלה.
 
גישות מודרניות לעיצוב [[תוכנה]] משלבות בדרך כלל את הגישות מעלה-מטה ומטה-מעלה. מחד, הבנה של המערכת בכללותה נחשבת לרוב כחיונית לעיצוב טוב, מה שאופייני לגישת מעלה-מטה. ומאידך, ברוב הפרויקטים לפיתוח תוכנה מנסים להשתמש בקוד קיים להשגת כמה יתרונות, והאפשרות לשימוש חוזר בקוד אופיינית לגישת מטה-מעלה.
 
===תכנות===
עיצובו של [[תכנות]] מעלה-מטה מתחיל בהגדרת מכלול של חלקים ואז פיצולם לחתיכות קטנות בזה אחר זה. עד שלבסוף, כשהרכיבים מפורטים דיים כך שניתן יהיה לקודד אותם, נכתבת התוכנה.
 
הטכניקה לכתיבת תוכנה בגישת מעלה-מטה היא לכתוב [[פונקציה (תכנות)|פונקציה]] ראשית שנותנת שמות לכל הפונקציות העיקריות שידרשו לה. בהמשך, צוות התכנות בוחן את המפרט הדרישות של כל אחת הפונקציות הללו והתהליך חוזר על עצמו. לבסוף פונקציות מפוצלות אלו יבצעו פעולות בסיסיות, שהקוד שלהן יכול להיכתב בתמציתיות. כאשר כל אותן פונקציות מגוונות כבר נכתבו, התוכנה מוכנה.
 
שיטת מעלה-מטה מדגישה תכנון והבנה מלאים של המערכת. משמעות הדבר היא, שכתיבת הקוד אינה מתחילה עד שהושגה רמה מספקת של פרטים בעיצובם של לפחות כמה מחלקיה של המערכת. דבר זה מעכב בדיקה של יחידות פונקציונליות בסיסיות של המערכת עד להשלמתו של חלק משמעותי מהעיצוב.
 
לעומת זאת, שיטת מטה-מעלה מדגישה כתיבת קוד ובדיקות מוקדמות, שעשויות להתחיל מיד משהוגדר המודול הראשון. גישה זו טומנת בחובה סיכון שבקידוד מודולים בלא שיהיה ברור כיצד הם אמורים להיות מקושרים לחלקיה האחרים של המערכת, וקישור כזה עלול להיות קשה מכפי שזה נראה במחשבה ראשונה.
 
הטכניקה לכתיבת תוכנה בגישת מטה-מעלה היא לעצב ולקודד באופן מלא מערכת בעלת פונקציונליות חלקית, ואז להרחיב את המערכת עד למימוש כל דרישות הפרויקט.
 
===יתרונות וחסרונות===
'''שיטת מעלה-מטה'''
 
יתרונות:
*צוות•צוות התכנות נותר ממוקד במטרה
*בשעה•בשעה שהתכנות מתחיל אין יותר שאלות
*הקוד•הקוד קל למעקב, כיוון שהוא נכתב בשיטתיות ועם מטרה
 
חסרונות:
*תכנות מעלה-מטה עלול להכביד על הבדיקות, כיוון ששום תוכנה שניתנת לביצוע אינה קיימת עד סמוך לגמר ביצוע הפרויקט
 
== הסטוריה של מעלה מטה: לפי Goodman, 1970, Smith,1979) ==
'''שיטת מטה-מעלה'''
 
 בשנות השבעים והשמונים של המאה העשרים, עם גבור ההתעניינות בקריאה, חברו בחקר הקריאה גישות פסיכולוגיות עם ידע בלשני. החוקרים המייצגים את הגישה הפסיכולינגווסטית בחקר הקריאה הדגישו הן את ההיבט הלשוני של תהליך הקריאה והן את ההיבט החשיבתי שלו.
יתרונות:
 לדעת גודמן, תפקידו של הקורא בתהליך הקריאה הוא להבנות את משמעות הטקסט בעזרת הידע הקודם שברשותו ובעזרת רמזים בטקסט.
*אפשרות לשימוש חוזר בקוד
 כיצד הוא עושה זאת?
*ניתן לבצע בדיקות סמוך לתחילת הפרויקט
 הוא "מנחש" את המשמעות. בודק את ניחושיו במהלך הקריאה ומנסה להמיר את "ניחושיו" המוטעים באחרים הנראים לו מתאימים יותר.
 ב"משחק ההשערות הפסיכולינגווסטי" נעזר הקורא בשלוש מערכות רמזים:
 רמזים גרפמיים –פונמיים
 רמזים דקדוקיים משני סוגים: תחביריים ומורפולוגיים.
 רמזים סמנטים –תוכניים
לא תמיד מצליח הקורא להיעזר ברמזים השונים בטקסט. גודמן תפס שגיאות בקריאה כ"פספוס" של רמזים הטמונים בטקסט במהלך משחק ההשערות וטבע את המושג החטאת רמזים (miscue).
 שלבי פעולה של הקורא:
 הקורא מסתכל על הכתוב
 בחירת רמזים מתוך המידע החזותי
 החלטת הקורא (על סמך ידע עולם קודם)
 בחירת דפוס\ מילה
 כניסה לזיכרון
 בדיקה אם מתאים למה שציפינו (אישוש או הפרכה) ואם לא מתאים חוזר אחורנית עם העיניים.
 דשנט (Dechant,1991) טען כי אין זה מתאים לאפיין את הקריאה כ"משחק השערות פסיכולינגווסטי", כי אפשר לקבל מידע רב מסימני הכתב המייצגים מילים, ממבנה המילים הכתובות ומאופן הגייתן.
 פרפטי (1985) וסטנוביץ(1980) טוענים שאפשר לזהות מילים רבות גם בעזרת הקשר סמנטי ותחבירי מזעריים.
 ריינר ופולסטק(Rayner & Pollatsek, 1989) מצאו שה"ניחוש" ממלא תפקיד מזערי בתהליך הקריאה של קוראים מיומנים וכי בכיתות ד'-ה' ה"ניחושים" פוחתים במידה רבה.
 חסרונות המודל :
 דשנט (Dechant,1991) טען כי אין זה מתאים לאפיין את הקריאה כ"משחק השערות פסיכולינגווסטי", כי אפשר לקבל מידע רב מסימני הכתב המייצגים מילים, ממבנה המילים הכתובות ומאופן הגייתן.
 פרפטי (1985) וסטנוביץ(1980) טוענים שאפשר לזהות מילים רבות גם בעזרת הקשר סמנטי ותחבירי מזעריים.
 ריינר ופולסטק(Rayner & Pollatsek, 1989) מצאו שה"ניחוש" ממלא תפקיד מזערי בתהליך הקריאה של קוראים מיומנים וכי בכיתות ד'-ה' ה"ניחושים" פוחתים במידה רבה.
• תכנות מעלה-מטה עלול להכביד על הבדיקות, כיוון ששום תוכנה שניתנת לביצוע אינה קיימת עד סמוך לגמר ביצוע הפרויקט
במודל מעלה-מטה הקורא המיומן עובר מן הדפוס למשמעות, בלי לעבור מצופן אחד לאחר. כלומר, אין כאן מעבר מכתב לדיבור ואחר כך למשמעות
והקורא פעיל בתהליך; הוא אינו מפענח את סימני הכתב באופן אוטומטי, אלא מפעיל בצורה מושכלת את מאגרי הידע המאוחסנים במוחו (דקדוקי, סמנטי, פרגמאטי-סיטואציוני), ובעזרתם הוא יוצר את משמעות הטקסט: מפתח השערות לגביו, בוחן אותן כדי לאמתן או להפריכן, וחוזר חלילה.
תהליך של מעלה מטה בקריאה זה המילה שאנו מנחשים ואנו מנחשים מתוך הקשר ומתוך הידע הקודם שיש לנו כלומר אני משתמשת בידע הקודם שבעיקרו נשאן על ניחוש ועל הידע הקודם
מעלה-מטה ומטה-מעלה הן אסטרטגיות לפיתוח תוכנה, המופיעות גם בהקשר של תורות המערכות הומניות ומדעיות.
במודל מעלה-מטה מנוסחת תחילה סקירת מערכת בקווים כלליים בלי להיכנס לפרטים של שום חלק ממנה. לאחר מכן מנוסח כל חלק של המערכת לפרטיו, ואז כל פרט חדש עשוי להיות מנוסח שוב תוך שמגדירים אותו לפרטים נוספים עד שכל המפרט מפורט דיו כדי לתקף את המודל. מודל מעלה-מטה מעוצב לעתים קרובות תוך הסתייעות ב"קופסאות שחורות" שמקלות את מימוש סקירת המערכת, אך באופן שאין בו די להבנת המנגנון שביסוד המערכת.
יתרונות וחסרונות
שיטת מעלה-מטה
 
== יתרונות ==
חסרונות:
*קושי בשילוב מודולים של מערכת, כיוון ששילוב זה לא תוכנן מראש.
 
• צוות התכנות נותר ממוקד במטרה
==מדעי המוח ופסיכולוגיה==
• בשעה שהתכנות מתחיל אין יותר שאלות
במושגים אלה נעשה שימוש גם ב[[מדעי המוח]] וב[[פסיכולוגיה]]. דוגמה ניתן לראות במחקר על [[תשומת לב]] ויזואלית. אם תשומת לבך נמשכת לפרח בשדה, ייתכן פשוט שהפרח בולט יותר באופן ויזואלי מאשר השדה שבו הוא מוקף. המידע שגרם לך לשים לב לפרח הגיע אליך בסגנון של מטה-מעלה. תשומת לבך לא הייתה תלויה במודעותך לפרח, די היה בגירוי החיצוני. השווה סיטואציה זו עם אחת שבה אתה מחפש פרח. יש לך ייצוג של מה שאתה מחפש. כשאתה רואה את האובייקט שאתה מחפש, זה בולט. זו דוגמה לשימוש של מידע מעלה-מטה.
• הקוד קל למעקב, כיוון שהוא נכתב בשיטתיות ועם מטרה
 
לא תמיד מצליח הקורא להיעזר ברמזים השונים בטקסט. גודמן תפס שגיאות בקריאה כ"פספוס" של רמזים הטמונים בטקסט במהלך משחק ההשערות וטבע את המושג החטאת רמזים (miscue).
==קישורים חיצוניים==
 שלבי פעולה של הקורא:
*[http://www.acm.org/classics/dec95/ Program Development by Stepwise Refinement]
 הקורא מסתכל על הכתוב
*[http://search.bwh.harvard.edu/pdf/ChangingYourMind.pdf PDF about visual attention]
 בחירת רמזים מתוך המידע החזותי
 החלטת הקורא (על סמך ידע עולם קודם)
 בחירת דפוס\ מילה
 כניסה לזיכרון
 בדיקה אם מתאים למה שציפינו (אישוש או הפרכה) ואם לא מתאים חוזר אחורנית עם העיניים.
 דשנט (Dechant,1991) טען כי אין זה מתאים לאפיין את הקריאה כ"משחק השערות פסיכולינגווסטי", כי אפשר לקבל מידע רב מסימני הכתב המייצגים מילים, ממבנה המילים הכתובות ומאופן הגייתן.
 פרפטי (1985) וסטנוביץ(1980) טוענים שאפשר לזהות מילים רבות גם בעזרת הקשר סמנטי ותחבירי מזעריים.
 ריינר ופולסטק(Rayner & Pollatsek, 1989) מצאו שה"ניחוש" ממלא תפקיד מזערי בתהליך הקריאה של קוראים מיומנים וכי בכיתות ד'-ה' ה"ניחושים" פוחתים במידה רבה.
 חסרונות המודל :
 דשנט (Dechant,1991) טען כי אין זה מתאים לאפיין את הקריאה כ"משחק השערות פסיכולינגווסטי", כי אפשר לקבל מידע רב מסימני הכתב המייצגים מילים, ממבנה המילים הכתובות ומאופן הגייתן.
 פרפטי (1985) וסטנוביץ(1980) טוענים שאפשר לזהות מילים רבות גם בעזרת הקשר סמנטי ותחבירי מזעריים.
 ריינר ופולסטק(Rayner & Pollatsek, 1989) מצאו שה"ניחוש" ממלא תפקיד מזערי בתהליך הקריאה של קוראים מיומנים וכי בכיתות ד'-ה' ה"ניחושים" פוחתים במידה רבה.
• תכנות מעלה-מטה עלול להכביד על הבדיקות, כיוון ששום תוכנה שניתנת לביצוע אינה קיימת עד סמוך לגמר ביצוע הפרויקט
 
== תכונות ==
[[קטגוריה:הנדסת תוכנה]]
[[קטגוריה:מידע]]
 
עיצובו של תכנות מעלה-מטה מתחיל בהגדרת מכלול של חלקים ואז פיצולם לחתיכות קטנות בזה אחר זה. עד שלבסוף, כשהרכיבים מפורטים דיים כך שניתן יהיה לקודד אותם, נכתבת התוכנה.
[[en:Top-down and bottom-up design]]
הטכניקה לכתיבת תוכנה בגישת מעלה-מטה היא לכתוב פונקציה ראשית שנותנת שמות לכל הפונקציות העיקריות שידרשו לה. בהמשך, צוות התכנות בוחן את המפרט הדרישות של כל אחת הפונקציות הללו והתהליך חוזר על עצמו. לבסוף פונקציות מפוצלות אלו יבצעו פעולות בסיסיות, שהקוד שלהן יכול להיכתב בתמציתיות. כאשר כל אותן פונקציות מגוונות כבר נכתבו, התוכנה מוכנה.
[[da:Top down og bottom up design]]
שיטת מעלה-מטה מדגישה תכנון והבנה מלאים של המערכת. משמעות הדבר היא, שכתיבת הקוד אינה מתחילה עד שהושגה רמה מספקת של פרטים בעיצובם של לפחות כמה מחלקיה של המערכת. דבר זה מעכב בדיקה של יחידות פונקציונליות בסיסיות של המערכת עד להשלמתו של חלק משמעותי מהעיצוב.
[[de:Top-Down- und Bottom-Up-Design]]
[[es:Top-down y Bottom-up]]
[[fr:Technologie bottom-up]]
[[nl:Top-down design]]
משתמש אלמוני