UML Use Case + Interaction Diagrams

‫תרגול מס' ‪ – 10‬שימוש ב‪UML Use Case + Interaction Diagrams -‬‬
‫דרך כלי ‪CASE‬‬
‫‪Use Case Diagram‬‬
‫מטרות דיאגרמת נסיבות השימוש‪:‬‬
‫‪ .1‬מידול ההקשר )‪ (context‬של המערכת – קשר עם הסביבה וגבולות המערכת‪.‬‬
‫‪ .2‬מידול דרישות ההתנהגות של המערכת או של הרכיבים בה – מה המערכת צריכה‬
‫לעשות )ולא איך היא תבצע זאת(‪.‬‬
‫רכיבי הדיאגרמה‪:‬‬
‫‪ – Use Cases .1‬סט פעולות סדרתיות שמערכת מבצעת‪ ,‬הגורמות לתוצאות הניתנות‬
‫לצפייה מחוץ למערכת )ע"י ‪ .(actors‬פעולות אלו מהוות דרישה פונקציונאלית הנדרשת‬
‫מהמערכת‪.‬‬
‫‪Validate‬‬
‫‪User‬‬
‫כיצד לזהות ‪?UC‬‬
‫•‬
‫איזה פונקציות המשתמשים צריכים מהמערכת?‬
‫•‬
‫האם המשתמשים צריכים לקרוא‪ ,‬ליצור‪ ,‬לעדכן‪ ,‬או לשמור סוג של מידע כלשהו‬
‫במערכת?‬
‫‪ – Actors .2‬מיצג ישות חיצונית הנמצאת באינטראקציה עם המערכת‪ .‬הישות החיצונית‬
‫יכולה להיות אדם‪ ,‬מכשיר )חומרה(‪ ,‬או מערכת אחרת‪ Actor .‬הינו סוג )מחלקה( ולא‬
‫מופע בודד‪.‬‬
‫‪student‬‬
‫כיצד לזהות ‪?Actors‬‬
‫•‬
‫מי משתמש בפונקציונאליות המערכת?‬
‫•‬
‫מי יזדקק לתמיכה מהמערכת כדי לבצע משימות יום יומיות?‬
‫•‬
‫מי יצטרך לתחזק ולתפעל את עבודת המערכת?‬
‫עיצוב ופיתוח של מערכות מידע ניהוליות‬
‫‪1‬‬
‫תרגול ‪UML Use Case + Interaction :10‬‬
‫•‬
‫באילו התקני חומרה המערכת צריכה לטפל?‬
‫•‬
‫עם אילו מערכות אחרות המערכת צריכה לתקשר?‬
‫•‬
‫מי ומה מעוניינים בתוצאות שהמערכת מספקת?‬
‫‪ .3‬קשרים בין המרכיבים השונים‪:‬‬
‫‬
‫‪ – Association‬מקשר בין ‪ actor‬ל‪ use case -‬בו הוא משתתף‪.‬‬
‫‬
‫הכללה ‪ - Generalization‬יש אפשרות לבצע הכללה בין ‪ Actors‬ובין‬
‫‪Use‬‬
‫‪:Cases‬‬
‫הכללה בין שני ‪ :actors‬ה‪ actor -‬הבן יורש את התנהגות ‪ actor‬האב ויכול‬
‫להרחיבה‪.‬‬
‫דוגמא‪:‬‬
‫עיצוב ופיתוח של מערכות מידע ניהוליות‬
‫‪2‬‬
‫תרגול ‪UML Use Case + Interaction :10‬‬
‫הכללה בין שני ‪ :use cases‬ה‪ use case -‬הבן הוא מקרה ספציפי של ‪use‬‬
‫‪ case‬האב‪.‬‬
‫דוגמא‪:‬‬
‫‪ .1‬מפקח הוא סוג של פקיד‪.‬‬
‫‪ .2‬מה שפקיד יכול לעשות‪ ,‬גם‬
‫פתיחת הזמנה‬
‫המפקח יכול‪ .‬ההפך אינו נכון‪.‬‬
‫פקיד‬
‫‪ .3‬כל שינוי בפונקציונאליות אותה‬
‫הפקיד יכול לעשות‪ ,‬תגרור שינוי‬
‫בפונקציונאליות אותה המפקח‬
‫ביטול הזמנה‬
‫יכול לעשות‪ .‬ההפך אינו נכון‪.‬‬
‫‪ .4‬מהתרשים מתקבל שגם המפקח‬
‫מפקח‬
‫יכול לפתוח הזמנה‪.‬‬
‫‬
‫הכלה ‪ - Include‬מקשר בין שני ‪ ,use cases‬ה‪ base use case -‬משתמש ב‪-‬‬
‫‪ included use case‬כחלק ממנו )החל ממקום מסוים(‪ .‬החץ מופנה מה – ‪base‬‬
‫‪.use case‬‬
‫>>‪<<include‬‬
‫‪included UC‬‬
‫◊‬
‫‪ Base UC‬כולל בתוכו את ה‪.Included UC-‬‬
‫◊‬
‫‪ – Included UC‬בדרך כלל אינו עומד בפני עצמו‪.‬‬
‫◊‬
‫‪ – Included UC‬יכול להיות מוכל בכמה ‪.UC‬‬
‫עיצוב ופיתוח של מערכות מידע ניהוליות‬
‫‪3‬‬
‫‪Base UC‬‬
‫תרגול ‪UML Use Case + Interaction :10‬‬
‫‬
‫הרחבה ‪ - Extend‬מקשר בין שני ‪ ,use cases‬ה‪ base use case -‬משתמש‬
‫ב‪ use case -‬השני במקומות מסוימים תחת תנאים מסוימים‪.‬‬
‫>>‪<<extend‬‬
‫‪extended UC‬‬
‫◊‬
‫‪Base UC‬‬
‫ה‪ extended UC-‬כולל בתוכו את ההתנהגות של ‪ UC‬הבסיס )באופן‬
‫מרומז(‪.‬‬
‫◊‬
‫‪ UC‬הבסיס יכול לעמוד בפני עצמו ובמקרים מסוימים מרחיבים אותו‪.‬‬
‫דוגמא‪:‬‬
‫תיאור ה‪:base UC -‬‬
‫◊ איש המכירות מקיש שם משתמש‬
‫◊‬
‫המערכת מציגה תפריט ראשי‬
‫◊‬
‫>>‪ <<include‬איש המכירות מזין פרטי לקוח )‪(Supply Customer Data‬‬
‫◊‬
‫>>‪ <<include‬איש המכירות מזין פרטי המוצר להזמנה )‪(Order Product‬‬
‫◊‬
‫בנקודת הרחבה‪ :‬לאחר יצירת ההזמנה ולבקשת איש המכירות יוצג הקטלוג‬
‫)‪(Request Catalog‬‬
‫◊‬
‫>>‪ <<include‬איש המכירות מזין פרטי תשלום )‪(Arrange Payment‬‬
‫תיאור ‪:Supply Customer Data – Included UC‬‬
‫◊‬
‫המערכת מציגה חלון הזנת פרטי לקוח עבור הזמנה‪.‬‬
‫◊ איש המכירות מקיש שם משפחה‪.‬‬
‫עיצוב ופיתוח של מערכות מידע ניהוליות‬
‫‪4‬‬
‫תרגול ‪UML Use Case + Interaction :10‬‬
‫◊ אם קיימים לקוחות עם שם המשפחה הנתון‪ ,‬המערכת מציגה את כל‬
‫הלקוחות הרלוונטיים‪.‬‬
‫◊ איש המכירות יכול לבחור את אחד הלקוחות המוזנים או לבחור להוסיף לקוח‬
‫חדש‪.‬‬
‫◊‬
‫במקרה של הוספת לקוח חדש‪ ,‬איש המכירות מקליד את כל פרטי הלקוח‪.‬‬
‫תיאור ‪:Request Catalog – extended UC‬‬
‫◊ המערכת תציג את קטלוג המוצרים‪.‬‬
‫◊‬
‫איש המכירות יוכל לחפש ולדפדף בקטלוג המוצרים לפי שם מוצר ומק"ט‪.‬‬
‫דוגמא ל‪ Use Case Diagram -‬עבור מערכת ‪:North 2000‬‬
‫‪Handle Categories‬‬
‫>>‪<<include‬‬
‫>>‪<<extend‬‬
‫‪Handle Suppliers‬‬
‫‪List Products‬‬
‫>>‪<<extend‬‬
‫>>‪<<extend‬‬
‫‪Worker‬‬
‫‪Handle Products‬‬
‫>>‪<<extend‬‬
‫‪Handle Orders‬‬
‫‪Print Invoice‬‬
‫‪Print Sales Report‬‬
‫עיצוב ופיתוח של מערכות מידע ניהוליות‬
‫‪5‬‬
‫תרגול ‪UML Use Case + Interaction :10‬‬
‫תיאור נסיבות השימוש‪:‬‬
‫‪:Handle Categories‬‬
‫‪ .1‬העובד יכול לצפות בקטגוריות הקיימות ולהוסיף חדשות למערכת‬
‫‪ <<include>> .2‬העובד צופה בפרטי המוצרים )‪ (List Products‬בקטגוריות השונות‬
‫‪:List Products‬‬
‫‪ .1‬העובד בוחר קטגוריה‬
‫‪ .2‬המערכת מציגה בפרטי המוצרים השונים בקטגוריה‬
‫‪:Handle Suppliers‬‬
‫‪ .1‬העובד יכול לצפות בפרטי הספקים שעובדים עם החברה ולהוסיף ספקים חדשים‬
‫‪ .2‬בנקודת הרחבה‪ :‬העובד יכול לראות את רשימת המוצרים המסופקים ע"י כל אחד‬
‫מהספקים )‪(List Products‬‬
‫‪ .3‬בנקודת הרחבה‪ :‬העובד יכול להוסיף מוצרים חדשים אותם הוא מעוניין לרכוש מהספק‬
‫הרלוונטי )‪(Handle Products‬‬
‫‪:Handle Products‬‬
‫‪ .1‬העובד יכול לצפות במוצרים הקיימות ולהוסיף מוצרים חדשים‬
‫‪ .2‬העובד יכול לצפות ברשימת הספקים ולהחליט לשנות את הספק של המוצר הספציפי‬
‫‪ .3‬העובד יכול לצפות ברשימת הקטגוריות ולהחליט לבחור לשייך את המוצר הרלוונטי‬
‫לקטגוריה אחרת‬
‫‪ .4‬בנקודת הרחבה‪ :‬העובד יכול לראות את רשימת כל המוצרים המסופקים ע"י כל אחד‬
‫מהספקים )‪(List Products‬‬
‫‪:Handle Orders‬‬
‫‪ .1‬העובד יכול לצפות בכל פרטי ההזמנה )תאריך‪ ,‬ספק‪ ,‬עלות‪ ,‬חברת משלוח וכו'(‬
‫‪ .2‬העובד יכול לשנות את אחד או יותר מהפרטים המופיעים בהזמנה‬
‫‪ .3‬בנקודת הרחבה‪ :‬העובד יכול להדפיס את החשבונית )‪(Print Invoice‬‬
‫‪:Print Invoice‬‬
‫‪ .1‬החשבונית מודפסת‬
‫עיצוב ופיתוח של מערכות מידע ניהוליות‬
‫‪6‬‬
‫תרגול ‪UML Use Case + Interaction :10‬‬
‫‪:Print Sales Reports‬‬
‫‪ .1‬העובד יכול לצפות או להדפיס את אחד הדו"חות‬
‫‪ .2‬העובד בוחר את אחד הדוחות‬
‫‪ .3‬במידה ונבחר דו"ח שמציג את מחירות העובדים לפי מדינות – עליו להזין את תאריך‬
‫ההתחלה ותאריך סיום‪.‬‬
‫‪ .4‬במידה ונבחר דו"ח מכירות לפי קטגוריות – עליו לבחור את הקטגוריה הרצויה‬
‫‪ .5‬העובד יכול לשנות את אחד או יותר מהפרטים המופיעים בהזמנה‬
‫שאלה לדיון‪ :‬מהם ההבדלים העיקריים בין ‪ Use Case Diagrams‬ל‪?DFD -‬‬
‫תרגיל כיתה‪:‬‬
‫‪.1‬‬
‫בנו ‪ Use Case Diagram‬עבור סניף מקומי בבונדוזיה אייר )סיפור המעשה מופיע‬
‫בתרגול ‪.(9‬‬
‫עיצוב ופיתוח של מערכות מידע ניהוליות‬
‫‪7‬‬
‫תרגול ‪UML Use Case + Interaction :10‬‬
‫‪Sequence Diagram‬‬
‫ב‪ UML -‬קיימים שני סוגים של ‪ ,Interaction Diagrams‬השמים דגש על תקשורת בין‬
‫אובייקטים לצורך השגת פעולה מסוימת‪:‬‬
‫‪ Sequence Diagram‬ו‪-‬‬
‫‪Collaboration‬‬
‫‪ .Diagram‬בעוד ‪ Collaboration Diagram‬שמה דגש על הצד המבני של האינטרקציה‬
‫)אוסף האובייקטים‪ ,‬הקשרים ביניהם והמסרים העוברים לאורך קשרים אלו(‪Sequence ,‬‬
‫‪ Diagram‬מתארת את האינטראקציות על רצף הזמן תוך התמקדות על רצף הודעות‪ .‬אנו‬
‫נתמקד במסגרת קורס זה ב‪ Sequence Diagrams -‬ונתייחס ל‪-‬‬
‫‪Collaboration‬‬
‫‪ Diagrams‬כצורת רישום אחרת )לעיתים פחות קריאה( לאותה מטרה‪.‬‬
‫ב‪ Sequence Diagram -‬מתוארים האובייקטים המשתתפים באינטראקציה וההודעות‬
‫המועברות ביניהם‪ .‬קיימות שתי ווריאציות לדיאגרמה‪:‬‬
‫‬
‫‪ - Generic Form‬מתאר את כל האלטרנטיבות האפשריות לתרחיש מסוים כולל‬
‫לולאות והסתעפויות )‪.(branches‬‬
‫‬
‫‪ - Instance Form‬מתאר רצף אפשרי לתרחיש מסוים‪.‬‬
‫ב‪ Sequence Diagram -‬הציר האנכי מתאר זמן והציר האופקי – את האובייקטים השונים‪.‬‬
‫אין חשיבות לסדר האובייקטים על פני הציר האופקי‪ .‬ציר הזמן נע מלמעלה למטה‪ .‬אובייקט‬
‫הנוצר תוך כדי תרחיש מופיע בנקודת הזמן בו נוצר‪.‬‬
‫רכיבי הדיאגרמה‪:‬‬
‫‪ .1‬קו החיים של אובייקט )‪ (Object Lifeline‬מציין את העובדה שאובייקט מסוים "חי"‬
‫)קיים(‪ .‬קו החיים של אובייקט מסומן ע"י קו אנכי מקווקו‪ .‬קו החיים של אובייקט יכול גם‬
‫להתפצל למספר קווים מקבילים על מנת לבטא תנאים שונים שנוצרו מהודעות שונות‪.‬‬
‫ייתכן גם שקווים מקבילים ישובו ויתאחדו‪.‬‬
‫‪ Activation/Focus of control .2‬הוא פרק הזמן בו האובייקט מבצע פעולה באופן ישיר‬
‫או עקיף‪ .‬מייצג גם את משך האינטראקציה בין האובייקט שיוזם את הפעולה לאובייקט‬
‫שעליו מתבצעת הפעולה‪ Activation .‬מתואר ע"י מלבן צר‪ ,‬שתחילתו בהודעה הנכנסת‬
‫וסופו בהודעה החוזרת‪.‬‬
‫‪ .3‬הודעה )‪ (message‬מתארת תקשורת בין אובייקטים‪ .‬מסומנת ע"י קו אופקי מלא בין‬
‫האובייקטים )או בין האובייקט לעצמו(‪ .‬על החץ יש לציין את שם ההודעה )פרוצדורה או‬
‫סיגנל( והארגומנטים שלה‪.‬‬
‫עיצוב ופיתוח של מערכות מידע ניהוליות‬
‫‪8‬‬
‫תרגול ‪UML Use Case + Interaction :10‬‬
‫‬
‫מסרים אסינכרוניים מסומנים ע"י‬
‫‪ .‬במסרים אלו שולח המסר ממשיך‬
‫מיידית בשלב הבא של הביצוע לאחר שליחת המסר מבלי להמתין לתגובה‪.‬‬
‫‬
‫מסרים סינכרוניים )קריאות למתודות( מסומנים ע"י‬
‫‪ .‬במקרים אלו כל‬
‫התרחיש )המקונן( מסתיים לפני שהרמה העליונה של התרחיש )"הקורא"(‬
‫ממשיכה‪ .‬במילים אחרות‪ ,‬הגורם השולח אינו ממשיך בפעולתו עד לקבלת‬
‫התגובה לדרישה שנשלחה‪.‬‬
‫‬
‫מסרי חזרה )‪ (return‬מסומנים ע"י‬
‫‪ .‬אלו הם הודעות תשובה מהאובייקט‬
‫הנקרא לאובייקט הקורא‪.‬‬
‫‪ .4‬זמני פעולות )‪ :(transition time‬להודעה יכולים להיות זמן התחלה וזמן סיום‪,‬‬
‫המתוארים בעזרת שמות פורמליים או אילוצים‪ .‬זמנים אלו יכולים להיות שווים אם‬
‫ההודעה אטומית‪ .‬זמן ההתחלה מסומן ע"י שם פורמלי‪ ,‬המצוין בשוליים השמאליים‪,‬‬
‫למשל ‪ .a‬זמן הסיום מסומן ע"י ’‪ .a‬אילוצים על זמנים אלו יופיעו בסוגריים מסולסלות‪.‬‬
‫עיצוב ופיתוח של מערכות מידע ניהוליות‬
‫‪9‬‬
‫תרגול ‪UML Use Case + Interaction :10‬‬
:Sequence Diagram -‫דוגמא ל‬
Created
object
a
Destroyed
object
b
{(b-a)<5sec}
UML Use Case + Interaction :10 ‫תרגול‬
10
‫עיצוב ופיתוח של מערכות מידע ניהוליות‬
:‫ הנ"ל‬Sequence Diagram -‫ השקול ל‬Collaboration Diagram -‫דוגמא ל‬
1: op()
{transient}
1.3: more()
Ob1: C1
student
Operator
Ob4: C4
[X<0] 1.2: bar(X)
[X>0] 1.1: foo(X)
{transient}
3: doit(z)
Ob3: C3
Ob2: C2
2: doit(w)
‫ של הפקת דו"ח מכירות עובדים לפי ארץ במערכת‬Sequence Diagram -‫דוגמא ל‬
:North 2000
UML Use Case + Interaction :10 ‫תרגול‬
11
‫עיצוב ופיתוח של מערכות מידע ניהוליות‬
‫תרגיל כיתה‪:‬‬
‫‪ .2‬ציירו תרשים ‪ Sequence Diagram‬עבור התרחיש )במערכת בונדוזיה אייר( בו‬
‫לקוח מעיין ברשימת יעדים‪ ,‬הטיסות אליהם והמקומות הפנויים ומבצע הזמנה לטיסה‬
‫מסוימת‪.‬‬
‫עיצוב ופיתוח של מערכות מידע ניהוליות‬
‫‪12‬‬
‫תרגול ‪UML Use Case + Interaction :10‬‬
?Access ‫ באמצעות‬UML ‫כיצד נממש מודל‬
‫ למרות זאת‬.‫ הינו מסד נתונים רלציוני‬Access ‫ בעוד‬Object-Oriented ‫ הינו‬UML ‫מודל‬
.Access -‫ למימוש ב‬UML ‫להלן מס' כללים בסיסיים לתרגום מודל‬
:Class diagram
‫ אם אחת מתכונות המחלקה יכולה לתפקד כמפתח‬.‫ כל מחלקת נתונים תתורגם לטבלה‬.1
‫ להוסיף מספור אוטומטי כמפתח‬Access -‫ נאפשר ל‬,‫ אחרת‬.‫ נסמנה ככזאת‬,‫ראשי‬
.‫ראשי‬
‫ קשרים בין מחלקות יתורגמו לטבלאות גישור )במקרה של קשר רבים לרבים( או‬.2
‫( תטופל בדומה‬association class) ‫ מחלקת קשר‬.(‫למפתחות זרים )במקרים האחרים‬
.ERD -‫לקשר יישות ב‬
.ERD -‫ קשרי הורשה יתורגמו לטבלאות בדומה לטיפול במודל ה‬.3
:‫דוגמא‬
:UML -‫ב‬
System
PrintEmployeeSalesByCountry(from, to)
0..*
Customer
CompanyName
ContactName
ContactTitle
Fax
Person
Supplier
ID
Address
City
Country
Phone
CompanyName
ContactName
ContactTitle
Fax
HomePage
0..*
Employee
LastName
FirstName
Title
BirthDate
HireDate
Extension
Photo
Category
CategoryName
Description
Picture
GetOrderForEmployee(from, to)
0..*
0..*
0..*
0..*
0..*
Order
Shipper
ShipperID
CompanyName
Phone
0..*
0..*
OrderID
OrderDate
RequiredDate
ShippedDate
ShipAddress
ShipCity
ShipCountry
1..*
0..*
Product
ProductID
ProductName
UnitPrice
UnitsInStock
0..*
OrderDetails
Quantity
Discount
PrintOrderDetails()
UML Use Case + Interaction :10 ‫תרגול‬
13
‫עיצוב ופיתוח של מערכות מידע ניהוליות‬
‫ב‪:Access -‬‬
‫‪:Use case diagram‬‬
‫‪ .1‬לכל ‪ Use Case‬ימומש סט נפרד של טפסים ודו"חות‪.‬‬
‫‪ .2‬באם יש ‪ actors‬שונים במערכת‪ ,‬יש לממש מערכת הרשאות )וסיסמאות(‪.‬‬
‫‪ .3‬מ‪ Base Use Case -‬תהיה הפניה ל‪) Included Use Case -‬למשל ע"י טופס‬
‫ראשי‪-‬משני(‪.‬‬
‫‪ .4‬מ‪ Base Use Case -‬תהיה הפניה ל‪ Extended Use Case -‬ע"י לחצן )כפתור(‪.‬‬
‫עיצוב ופיתוח של מערכות מידע ניהוליות‬
‫‪14‬‬
‫תרגול ‪UML Use Case + Interaction :10‬‬
:‫דוגמא‬
:UML -‫ב‬
<<include>>
<<extend>>
List Products
Handle Categories
Handle Suppliers
<<extend>>
<<extend>>
Worker
Handle Products
<<extend>>
Print Invoice
Handle Orders
Print Sales Report
Handle
Categories
UML Use Case + Interaction :10 ‫תרגול‬
List Of
Products
15
:(‫ )חלקי‬Access -‫ב‬
‫עיצוב ופיתוח של מערכות מידע ניהוליות‬
Handle
Suppliers
List Of
Products
Handle
Products
:Sequence diagram
object- -‫ שכן עקרונות ה‬,‫ הינו הבעייתי ביותר‬Access -‫ ל‬Sequence diagram ‫תרגום‬
‫ על‬,‫ למרות זאת‬.Sequence diagram -‫ באים לידי ביטוי בצורה החזקה ביותר ב‬oriented
.Sequence diagram -‫ לבוא לידי ביטוי ב‬Access -‫הפונקציונאליות הממומשת ב‬
UML Use Case + Interaction :10 ‫תרגול‬
16
‫עיצוב ופיתוח של מערכות מידע ניהוליות‬
‫דוגמא‪:‬‬
‫ב‪:UML -‬‬
‫ב‪:Access -‬‬
‫עיצוב ופיתוח של מערכות מידע ניהוליות‬
‫‪17‬‬
‫תרגול ‪UML Use Case + Interaction :10‬‬