האתר הישראלי להנדסת תכנה

דף ראשי | מפת האתר | רשימת מושגים | מקורות נוספים | אודות
מבנים של מערכות מסורתיות הערכת מערכות מסורתיות

תכן מערכות מסורתיות

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



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

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

כדי להבהיר את חומרת הבעיה נציג את התרשים הבא:



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

מבנים של מערכות מסורתיות לתחילת הדף הערכת מערכות מסורתיות
©איתן 2003. כל הזכויות שמורות למערכת המידע איתן