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

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

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

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

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

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

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