Presentation is loading. Please wait.

Presentation is loading. Please wait.

תכן UML in Design מקורות: S. R. Schach: Chapter 12

Similar presentations


Presentation on theme: "תכן UML in Design מקורות: S. R. Schach: Chapter 12"— Presentation transcript:

1 תכן UML in Design מקורות: S. R. Schach: Chapter 12
מבוא להנדסת תוכנה תכן UML in Design © , ד"ר עמיר תומר מקורות: S. R. Schach: Chapter 12 R. S. Pressman: Chapter 13-15, 21 מבוא להנדסת תוכנה © , ד"ר עמיר תומר

2 שיטות בהנדסת תוכנה - תוכנית הקורס
מבוא מודלים של מחזור חיי תוכנה הגדרת דרישות וניהולן ניתוח קלאסי ניתוח מונחה-עצמים תכן אימות ותקפות © , ד"ר עמיר תומר קידוד ובדיקות יחידה מימוש ושילוב אחזקה והנדסה מחדש הבטחת איכות תוכנה מבוא להנדסת תוכנה

3 מה עומד על הפרק? מטרת שלב התכן תכן מונחה עצמים
תרשימי מצב (state diagrams) תרשימי רצף (sequence diagrams) תרשים רכיבים (component diagram) תרשים פריסה (deployment diagram) © , ד"ר עמיר תומר מבוא להנדסת תוכנה

4 מטרת שלב התכן תכן = עיצוב שלב המעבר בין המפרט ("מה?") למימוש ("איך?")
תכנון אופן המימוש של כל דרישות המפרט עיצוב מבנה הקוד (ארכיטקטורה "פיזית" של התוכנה) מילוי דרישות שלא באו לידי ביטוי במודל הניתוח דרישות ביצועים עיצוב ממשק המשתמש (דרישות הנדסת-אנוש) דרישות/הנחיות טכנולוגיות (כמפורט בשקף הבא) © , ד"ר עמיר תומר מבוא להנדסת תוכנה

5 דרישות/החלטות המשפיעות על התכן
החומרה סוג המחשבים, ארכיטקטורת החומרה, תקשורת מערכת ההפעלה אופן הקריאה לשרותי מעה”פ מתוך התוכנה, תהליכים שפת התכנות טיפוסים, מבני בקרה, פונקציות בנויות, תמיכה בתהליכים, ... סטנדרטים למשל CORBA, COM, TCP/IP שילוב מוצרי מדף למשל GIS = Geographic Information System שילוב מערכת קיימת (legacy system) בסיסי נתונים קיימים, חומרה קיימת © , ד"ר עמיר תומר מבוא להנדסת תוכנה

6 תכן מונחה עצמים (עם UML)
מודל דינמי ההיבט הפנימי ב-state diagram ההיבט האינטראקטיבי (Interaction View) sequence diagram - אינטראקציה בין עצמים, הודעות, הפעלה collaboration diagram - פעילות משותפת של עצמים מודל מיבני היבט המימוש (Implementation View) component diagram - רכיבי תוכנה, ממשקים היבט הפריסה (Deployment View) deployment diagram - פריסת התוכנה על פני רכיבי החומרה © , ד"ר עמיר תומר חלקים אלה של המודל הסטטי נקראים גם ההיבט הפיזיקלי (Physical View) מבוא להנדסת תוכנה

7 UML - State Chart דרישות מערכת ארכיטקטורת מערכת Use Case Model Class
מקרא: מודל סטטי דינמי ניהולי שחקנים, תרחישים, אופני פעולה ישויות, קשרים, יחסים Use Case Model Class Diagram “חבילות עבודה” אתה נמצא כאן Package Diagram © , ד"ר עמיר תומר Activity Diagram לוגיקה, זרימה State Chart פריסת התוכנה על גבי החומרה התנהגות ארכיטקטורת התוכנה פונקציונליות, אינטראקציה Sequence Diagram Component Diagram Deployment Diagram מבוא להנדסת תוכנה

8 המודל הדינמי - תרשים מצבים
מכונת מצבים (state machine) מצבים מעברים אירועים כאשר מתרחש אירוע במצב מסוים - הוא עשוי לגרום למעבר למצב אחר פעולות מתרחשות בעת המעבר תרשים מצבים (state chart) מתאר את מכונת המצבים של עצם מסוים © , ד"ר עמיר תומר מבוא להנדסת תוכנה

9 דלתות מעלית – state chart
Fully stopped at floor / Floor button pressed while parking Fully closed Closed do/ disable “open doors” do/ disable detector doors(close) Closing do/ enable “open doors” do/ enable detection Opening do/ disable “close doors” doors(open) / detection doors(open) / detection © , ד"ר עמיר תומר Open do/ enable “close doors” Fully open doors(close) / Ready to move / Timeout “open doors” / detection מבוא להנדסת תוכנה

10 מעלית - Elevator Controller - תרשים מצבים (א)
[button pushed, button lit] [no request pending, doors closed] Elevator Controller Loop [button pushed, button unlit] [elevator moving in direction d, floor f is next] [elevator stopped, request(s) pending] [elevator stopped, no request(s) pending] Process Request do/ update requests do/ turn on button Go into Wait State do/ close elevator doors after timeout © , ד"ר עמיר תומר Determine if Stop Requested do/ check request Close Elevator Doors do/ close doors after timeout מבוא להנדסת תוכנה

11 מעלית - Elevator Controller - תרשים מצבים (ב)
תכן מבוא להנדסת תוכנה מעלית - Elevator Controller - תרשים מצבים (ב) Elevator Controller Loop [elevator button unlit] Determine if Stop Requested do/ check request Close Elevator Doors do/ close doors after timeout [no request to stop at floor f] [user has requested stop at floor f] [floor button lit] [floor button unlit] Continue Moving do/ move elevator one floor in direction d Stop at Floor do/ stop elevator do/ open doors do/ update requests Floor Button off do/ turn off floor button [elevator button lit] © , ד"ר עמיר תומר Elevator Button Off do/ turn off elevator button Process Next Request do/ move elevator one floor in direction of next request מבוא להנדסת תוכנה © , ד"ר עמיר תומר

12 המודל הדינמי (התנהגותי)
מבוסס על מודל מקרי-השימוש (UC model) תיאור מפורט של כל תרחיש אינטראקציה בין אובייקטים (לא מחלקות!) מתאר תהליכים זרימת הודעות משמש בסיס לעידון ופירוט המודל הסטטי פירוט הפונקציונליות של האובייקטים אובייקטים נוספים הנדרשים לתיווך © , ד"ר עמיר תומר מבוא להנדסת תוכנה

13 UML - Activity Diagram דרישות מערכת ארכיטקטורת מערכת Use Case Model
מקרא: מודל סטטי דינמי ניהולי שחקנים, תרחישים, אופני פעולה ישויות, קשרים, יחסים Use Case Model Class Diagram “חבילות עבודה” אתה נמצא כאן Package Diagram © , ד"ר עמיר תומר Activity Diagram לוגיקה, זרימה State Chart פריסת התוכנה על גבי החומרה התנהגות ארכיטקטורת התוכנה פונקציונליות, אינטראקציה Sequence Diagram Component Diagram Deployment Diagram מבוא להנדסת תוכנה

14 נסיעה במעלית - Activity Diagram
START FORK (“or”) JOIN (“and”) END נסיעה במעלית - Activity Diagram USER DOORS BUTTONS ELEVATOR Press button doors closing Button on doors closing going to Next floor [stop request] stopping © , ד"ר עמיר תומר doors open Button off exit elevator [target floor] מבוא להנדסת תוכנה

15 UML - Sequence Diagram דרישות מערכת ארכיטקטורת מערכת Use Case Model
מקרא: מודל סטטי דינמי ניהולי שחקנים, תרחישים, אופני פעולה ישויות, קשרים, יחסים Use Case Model Class Diagram “חבילות עבודה” Package Diagram © , ד"ר עמיר תומר Activity Diagram לוגיקה, זרימה State Chart פריסת התוכנה על גבי החומרה אתה נמצא כאן התנהגות ארכיטקטורת התוכנה פונקציונליות, אינטראקציה Sequence Diagram Component Diagram Deployment Diagram מבוא להנדסת תוכנה

16 תרשים רצף (sequence diagram)
anonymous caller object lifeline TheTDB:TicketDB :Account create() :Order reserve(date,count) construction debit(cost) activation bonus(date,count) © , ד"ר עמיר תומר destruction return x מבוא להנדסת תוכנה

17 מעלית - UC נסיעה תרחיש עליה
המשתמש לוחץ על כפתור המעלית של הקומה המבוקשת דלתות המעלית נסגרות המעלית עולה לקומה המבוקשת המעלית נעצרת והדלתות נפתחות כפתור הקומה כבה המשתמש יוצא מהמעלית לאחר השהיה נסגרות הדלתות © , ד"ר עמיר תומר מבוא להנדסת תוכנה

18 מעלית – תרחיש עליה תרחיש הצלחה ראשי - MSS
המשתמש לוחץ על כפתור המעלית של הקומה המבוקשת כפתור הקומה נדלק דלתות המעלית נסגרות המעלית עולה לקומה המבוקשת המעלית נעצרת הדלתות נפתחות כפתור הקומה כבה (אם הגיע לקומה המבוקשת - המשתמש יוצא מהמעלית) לאחר השהיה נסגרות הדלתות © , ד"ר עמיר תומר מבוא להנדסת תוכנה

19 תרחיש עליה - תרשים רצף (sequence diagram)
תכן מבוא להנדסת תוכנה תרחיש עליה - תרשים רצף (sequence diagram) :ElevatorButton :ElevatorController :Elevator :ElevatorDoors 1: press() 2: request(floor) 3: light(on) 4: doors(close) * [no stop] 5.1: nextFloor(up) © , ד"ר עמיר תומר [stop] 5.2: doors(open) 6: light(off) [time out] 8: doors(close) 7: timerOn() מבוא להנדסת תוכנה © , ד"ר עמיר תומר

20 תרחיש עליה - תרשים שת”פ (collaboration diagram)
1: press() :ElevatorButton 2: request(floor) 6: light(off) 3: light (on) 7: timerOn() :ElevatorController * [no stop] 5.1: nextFloor(up) 4: doors(close) © , ד"ר עמיר תומר [stop] 5.2: doors(open) [time out] 8: doors(close) :Elevator :ElevatorDoors מבוא להנדסת תוכנה

21 מעלית - תרשים מחלקות מעודכן בעקבות המודל הדינמי Button
illuminated: Boolean light(set) (virtual) ElevatorButton FloorButton m light(set: {on,off}) light(set: {on,off}) mn 2m - 2 controls controls 1 1 ElevatorController © , ד"ר עמיר תומר 1 1 request(floor: Integer) timerOn() controls controls n n Elevator ElevatorDoors doors_open: Boolean 1 nextFloor(dir: {up,down}) doors(move: {open,close}) 1 מבוא להנדסת תוכנה

22 ההיבט הפיזיקלי (Physical View)
רכיב (component) נתח בר-החלפה של המימוש קוד תכנית מקור object executable scripts command files תואם לקבוצת ממשקים פריסה (deployment) תצורת המערכת העובדת בסביבה האמיתית © , ד"ר עמיר תומר מבוא להנדסת תוכנה

23 UML - Physical View דרישות מערכת ארכיטקטורת מערכת Use Case Model Class
מקרא: מודל סטטי דינמי ניהולי שחקנים, תרחישים, אופני פעולה ישויות, קשרים, יחסים Use Case Model Class Diagram “חבילות עבודה” Package Diagram אתה נמצא כאן © , ד"ר עמיר תומר Activity Diagram לוגיקה, זרימה State Chart פריסת התוכנה על גבי החומרה התנהגות ארכיטקטורת התוכנה פונקציונליות, אינטראקציה Sequence Diagram Component Diagram Deployment Diagram מבוא להנדסת תוכנה

24 תרשים רכיבים (component diagram)
stereotyped component <<database>> Account ממשק interface Transactions Update תלות שימוש usage dependency © , ד"ר עמיר תומר ATM-GUI תלות מימוש implementation dependency מבוא להנדסת תוכנה

25 תרשים פריסה (deployment diagram)
server:BankServer <<database>> AccountDB: Account צומת node :Transactions Update קו תקשורת communication link © , ד"ר עמיר תומר client:ATMKiosk :ATM-GUI מבוא להנדסת תוכנה

26 אז מה היה לנו...? מטרת שלב התכן תכן מונחה עצמים
תרשימי מצב (state diagrams) תרשימי רצף (sequence diagrams) תרשים רכיבים (component diagram) תרשים פריסה (deployment diagram) © , ד"ר עמיר תומר מבוא להנדסת תוכנה

27 שימוש חוזר וכעת נעבור ל... © 1999-2001, ד"ר עמיר תומר
תכן מבוא להנדסת תוכנה וכעת נעבור ל... שימוש חוזר © , ד"ר עמיר תומר מבוא להנדסת תוכנה © , ד"ר עמיר תומר


Download ppt "תכן UML in Design מקורות: S. R. Schach: Chapter 12"

Similar presentations


Ads by Google