-->
א. אין סיבה משמעותית. מאחר ורציתי לתת את הדעת על מתי להשתמש בכל אחת מהדיאגרמות, חשבתי שיהיה יותר נכון לפרט לפי הדיאגרמות ולא לפי שלבי מחזור החיים. ב. UML הינה נוצטיה בלבד (שפה לרישום) ואינה מתודולוגיה. במתודולוגיות חדשות וכן במתודולוגיות ישנות שהותאמו ל-UML, נהוג להשתמש בתוצרי ה-UML בשלבי מחזור החיים השונים. בסגנונות מחזורי חיים כגון מפל מים, ספירלי, איטרטיבי וכו' המנצלים את ה-UML כשפת רישום, ישנו שימוש בכל הדיאגרמות, אך בסדר שונה וברמות שונות של פירוט (לדוגמה, במפל מים בשלב האפיון תצטרך לעשות UCD של כל המערכת, בעוד שבמחזור חיים איטרטיבי תתן UCD רק של האיטרציה הנוכחית). דרך אגב, המונח "מפל מים" הינו ללא גרשיים - הדימוי הוא מאחר והמים זורמים מראש המפל מטה בדומה למחזור החיים שמריץ את כל השלבים אחד אחרי השני ללא חזרה ג. נוהגים להשוות UCD ל-DFD בגלל שהם נראים דומים והם מחליפים את שלב הגדרת התהליכים. DFD נועד יותר לתיאור זרימת המידע במערכת, בעוד UCD נועד להדגיש את התהליכים במערכת, ללא מתן דגש על המידע אלא יותר דגש על התהליך כתהליך עסקי. ניתן להתסכל על UC כעל "טרנזקציה" בחיים האמיתיים - תהליך שמתחיל בנקודה מסוימת (אני מגיע לכספומט), יש לו תנאים מקדימים (בשביל להוציא כסף מהכספומט אני צריך להכניס כרטיס ולהקיש קוד סודי), יש לו תיאור הליך סטנדרטי (אני מקיש את הסכום ומקבל את הכסף), יש לו תיאור תהליכים חליפיים (אין לי כסף בעו"ש ולכן מופיעה הודעה) ויש לו תוצאה סופית (הכסף והכרטיס ביד ופחות כסף בחשבון) - לא תיארתי פה את מאגרי המידע שהייתי מתאר ב-DFD, לא הייתי מתאר את הרשומות שהיו עוברות מ-DB ל-DB (מה שהייתי עושה ב-DFD) וכו'. ד. RUP הינה מתודולוגיית פיתוח שהוגדרה ע"י חברת Rational (כיום IBM) שאינה שמה את הדגש על השלבים המוכרים של אפיון, עיצוב, קידוד ... אלא על הפאזות שמערכת עוברת (התעברות - Inception, עיבוד/תכנון-Elaboration, בנייה/פיתוח - Construction ו-מעבר/הסבות - Transition) ומתארת בכל שלב (פאזה) שכזה את התוצרים השונים שצריך לספק, בכל אחד מהשלבים המוכרים לנו (דרישות, עיצוב, אפיון, בדיקות, פיתוח - לאו דווקא לפי סדר זה) ואת רמת ההשקעה הנדרשת עבור כל תוצר. ישנם מתודולוגיות רבות שהתפתחו מה-RUP והרחיבו אותו על-מנת לטפל בסוגים שונים של מערכות (לדוגמה : מערכות שיש להם שלבי תחזוקה ארוכים). ישנם מספר לינקים לנושא זה בקישורים. MSF - מיקרוסופט אינה מגדירה את ה-MSF כמתודולוגיה אלא כמסגרת פיתוח (framework). ה-MSF למיטב זכרוני נוצר כאיזשהו נסיון של מיקרוסופט לאסוף את הנסיון שלה בפיתוח מערכות למתודולוגית/מסגרת פיתוח אחידה. ה-MSF מגדיר את שלבי מחזור החיים באופן די דומה לשלבים המוכרים - ייזום, תכנון, פיתוח, ייצוב והתקנה. עבור כל שלב ישנו אוסף מסמכים שאמורים לכסות את התוצרים שהשלב אמור לספק והסבר כיצד יש למלא מסמכים אלו. ה-MSF מסביר גם טוב מאוד את התפקידים השונים הקיימים בצוות הפרויקט ואת תפקידם במהלך פיתוח המערכת. על ה-MSF, שינוי הגישה האחרונה שבוצעה בגרסה 4 שלו ועל גרסאות קודמות, ניתן לקרוא באתר מיקרוסופט: http://lab.msdn.microsoft.com/teamsystem/workshop/msfagile/default.aspx ה. בטעות חשבתי שכתבת ERD ולא ER, אז כבר כתבתי תשובה לגבי ERD ולכן אשאיר אותה. בכל אופן לגבי ER - זה די נכון ש-ER ו-CD הן דומות, אך ב-ER נהוג להשתמש רק בשלב הייזום/אפיון על-מנת להגדיר את ישויות המידע העיקריות של המערכת, בעוד ש-CD מומלץ לשימוש גם בשלב האפיוון (שבו התוצר דומה ל-ER) וגם בשלב העיצוב בו מעובה ה-CD ומשתמש לתיאור מחלקות המערכת. ולגבי ERD (אם כבר, אז כבר): נכון שבמערכות רבות ה-CD יתורגם בסופו של דבר ל-ERD (לפחות זה של האפיון), אך ERD הוא מאוד תלוי מסד-נתונים (מבחינת ההגדרות הקשיחות של הנרמול, סוגי המשתנים וכו'). כשעוסקים במחלקות (Classes), לא צריך לתת את הדעת ל-"איך אני הולך לשמור את זה אח"כ", ולכן אפשר לנצל את יכולות ה-OO וה-CD בשביל לתאר ירושות (שאינן נתמכות ב-ERD וב-DB רלציונים), אגרגציות למיניהן (שאומנם נתמכות ב-ERD, אך לך תמצא את ההבדל ב-ERD בין אגרגציה חלשה לחזקה) וכו'. אני הייתי עושה את הדבר הבא - מתחיל בתיאור CD של ישויות המידע של המערכת, לאחר מכן נותן ל-DBA או לאיש מקצוע אחר לקבוע מה-CD את ה-ERD ובסופו של דבר, נותן למעצב ול-DBA לקבוע את ה-ERD המלא שכולל בתוכו את הטבלאות הנוספות שאינן חלק מישויות המידע. ו. האמת לא זכור לי ממש מה זה "מילון הפונקציות". ה-sequence הוא תרשים ששם דגש על הרצף הכרונולוגי של תהליך ועל הפעולות המבוצעות בזמן זה. נהוג להשתמש בדיאגרמה זו כאשר רוצים לתאר רצף פעולות שמופעלות כאשר ניזום איזשהו תהליך במערכת (לדוגמה, לחיצה על כפתור והשתלשלות האירועים והמתודות שרצות כתוצאה מלחיצה זו). ל-sequence diagram יש מבנה מוגדר מאוד מבחינה גרפית - עמודות שמתארות את המחלקות וקווים שיוצאים מעמודה אחת לאחרת ובכך מתארים קשר של הפעלת מתודה במחלקה ב' ע"י מחלקה א' (הקווים מאוזנים וכל קו הוא קצת למטה מהקו הקודם כדי ליצור רושם של תרשים מדרגות יורדות). לגבי sequence ניתן לקרוא באתרים העוסקים ב-UML (יש הרבה בקישורים), אני אישית ממליץ על האתר הבא: http://www.agilemodeling.com/artifacts/sequenceDiagram.htm כיסיתי הכל ?