UML - המשך

duducohn

New member
UML - המשך

מכיוון שהשרשור הנ"ל היה ארוך, אמשיך בהודעה חדשה. א. מה משמעות המונח CRUD? ב. במערכת מידע שחלקה ידנית, האם תהליך ידני גם נחשבת כ- Use case? שאלות לגבי הדוגמא והתרגיל של ניר טייב (התרשים השני): קודם כל אגדיר בשפה חופשית את משמעות ה- Extends וה- Includes כפי שהבנתי אותם. Extends - UC שמהווה הרחבה של ה- UC הקודם. הוא אינו חייב להתבצע בכל המקרים, אלא רק בחלק מהם. Includes - UC שחייב להתבצע לאחר ה- UC הקודם לו. אם זה כך, אז ברור לי מדוע מ"הצג פרטי מוצר" יוצא Extends ל"חפש מוצר". לא ברור לי מדוע מ"ניהול קטלוג" ה- UC-ים "נהל קטגוריות" ו- "נהל מוצרים" הם Includes ולא Extends . הרי גם כאן שני ה- UC-ים הבאים הם אופציונאליים ולא מחייבים ביצוע.
 

עידו פ

New member
-->

א. CRUD זה ר"ת של Create Read Update Delete שהן הפעולות הבסיסיות אותן מבצעים על רשומות ב-DB. כשמדברים לדוגמה על טיפול בישויות מידע, אומרים שמחלקה היא CRUD-ית אם היא מטפלת גם בקריאה של הישות מהמאגר, גם בעדכון שלה, גם בהוספה שלה וגם במחיקה שלה. ב. ב-System Use Case נהוג לסקור רק את אותם תהליכים המבוצעים באמצעות המערכת (היינו ללא הסבר על תהליכים ידניים). תיאור תהליכים ידניים נהוג יותר כאשר מדברים על Business Use Case. בתיאור תהליכים כאלו, אשר מבוצע לרוב באמצעות Activity diagram, ניתן לציין ב-activity פעילויות אשר מבוצעות באופן ידני. בכל אחד מהמקרים הנ"ל לא מקובל להגדיר UC אשר הוא תהליך ידני מלא (אני מניח שההנחה היא שאם אין בו שום דבר ממוחשב, אז הוא כנראה לא משפיע בשום צורה על המערכת) ג. Extends/Includes - לגבי includes, ההגדרה אינה מחייבת שה-UC יבוצע לאחר ה-UC הקודם (היינו, הוא יכול להיות גם במהלך ריצת ה-UC) ד. לגבי ה-UCD שהוצג, לדעתי אין טעם להציג UC שכותרתו "ניהול X" ולבצע ממנו Extends לפעולות ה-CRUD, כי כפי שציינת ה-Extends מציין הרחבה, מה שאומר שיש מה להרחיב, ו"ניהול" זה לא משהו שיש לו תוכן ממשי מבחינת תהליך (אבל כתהליך הוא כן מורכב משלושת הפעולות הנפוצות של הוספה, עדכון ומחיקה). בגלל זה הצגתי את הנושא של טיפול בפעולות CRUD - יש אנשים שנוהגים לשים את פעולות ה-CRUD כמספר UC-ים שאין ביניהם קשר ויש כאלו שיוצרים UC אחד של "ניהול" (הכולל מבחינת לוגיקה את כל פעולות ה-CRUD, במהלך שרטוט ה-Activity שמתאר את ה-UC) ולחילופין יש את אלו המשלבים בין השניים (כמו שעשיתי).
 
למעלה