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

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

תכן ארכיטקטוני

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

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

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

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

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

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

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