תכן מבנה / נתונים-Data/Architectural
Design
את תחום התכן מבנה / נתונים נהוג מסורתית לחלק ל- 3 תת תחומים
עיקריים:
עקרונות תכן הנתונים:
מדולריות (Modularity):
תוכנה מחולקת לאלמנטים נפרדים של
פונקציות קשירות ובלתי תלויות, שנקראים מודולים
Modules)).
לכל מודול שם וכתובת משלו.
חשיבות החלוקה למודולים נובעת מהעובדה
שהמורכבות הכוללת של בעיה גדולה מסכום המורכבויות של מרכיביה, וכן מאמץ/זמן הפתרון
של בעיה בכללותה גדול מסכום המאמצים/זמנים לפתרון מרכיביה.
לחובבי המתמטיקה שבינינו , משפט זה ניתן להצגה בצורה מתמטית :
C - Complexity
תת בעיהi Pi
הפשטה (Abstraction):
הפשטה היא התרכזות בבעיה ברמה של הכללה
מבלי להתייחס לפרטים בלתי רלוונטיים ברמה נמוכה יותר.
בכל שלב של הנדסת התוכנה קיימת רמה שונה
של הפשטה.
בשלב הניתוח רמת ההפשטה היא הגבוהה
ביותר והיא מתעדנת כשעוברים לשלבי תוכן-על ותכן מפורט עד שמגיעים בקוד לרמת ההפשטה
הנמוכה ביותר.
הסתרת מידע (Information
Hiding):
עיקרון הסתרת המידע מאפשר חלוקת מערכת
למודולים. ע"פ העיקרון כל מודול מסתיר את המידע שבו מכל המודולים האחרים ומוסר להם
רק את הנתונים הדרושים להם.
דוגמא:
מודול לחשוב פתרונות משוואה ריבועית,
יסתיר מעיני המשתמש את תהליך החישוב, ואת הפרמטרים / פונקציות העזר בהן הוא משתמש.
בד"כ יספק רק פונקצית קלט- לקבלת המשוואה, ופונקצית פלט- לשם פלט השורשים.
תכן ארכיטקטורה תפקידו לקבוע את התמונה
הכוללת של המודולים, המרכיבים את המערכת, כולל הבקרה ביניהם והמנשקים ביניהם.
מתודולוגיות התוכן שנדון בהן, קובעות את
תכן הארכיטקטורה לפני שנכנסים לפירוט המרכיבים.
חלוקת מערכת למודולים מתבצעת בהסתמך על
עקרונות התוכן של מודולאריות, הפשטה והסתרת מידע שמהם נובעים המושגים הבאים לסווג
מודולים:
-
אי תלות פונקציונאלית-
מודול מבצע רק פונקציונאליות מסוימת.
-
ליכוד (cohesion)-
התמקדות כל מודול בנושא ספציפי אחד. הטווח הוא ממפוזר ועד "single
minded".
-
צימוד (coupling)-
יחסי גומלין בין מודולים. הטווח הוא מעצמאות מוחלטת ועד
צימוד של מידע או בקרה על זרימת המידע (רצוי שיהיה מינימאלי).
תוכן תהליכים נועד להציג את הזרימה
במערכת ("איך המערכת פועלת").
תיאור התהליכים חייב להיות חד משמעי
ולכן חייבים להשתמש בכלים פורמאליים (שיפורטו).
איור- מניתוח לעיצוב
לסעיף הבא- שיטות תכן...