Transcript מחלקה
ניתוח מערכות מידע א' הרצאה 4 תכנון מונחה עצמים תרשימי UML 1 UML ?UML מה זה 3 UML – Unified Modeling Language פותחה בשנות ה 90-ע"י Booch, Jacobson, Rumbaugh UML היא שפה וויזואלית לניתוח מערכות. מתאימה למידול מונחה עצמים משתמשת בסימנים גרפים לתיאור המערכת לשפה יש מספר סוגי מודלים המתארים: 4 עצמים -הנתונים הסטטים האינטראקציה בין העצמים מצבי המערכת UML תרשימי UML סוגים של תרשימי9 ישנם Use case Diagram Class Diagram Object Diagram State Diagram Activity Diagram Sequence Diagram (Communication Diagram) Collaboration diagram Component diagram Deployment diagram למפתחים וללקוחות, התרשימים מאפשרים למנתחים צפיה בהיבטים שונים של המערכת צפיה ברמות הפשטה שונות 5 UML סוגי תרשימי מבט כללי על המערכת use cases מבנה המערכת object diagrams, class diagrams התנהגות המערכת state-chart, activity, sequence and collaboration diagrams מימוש component and deployment diagrams 6 תרשימי UMLלתיאור פעילות כללית של המערכת use cases 7 - Use Case Diagramהגדרה תרשים המתאר את הפונקציונליות של המערכת המתקיימת בין הActors- לבין הUse Case- - Actor ישות בעלת תפקיד במערכת למשל במערכת של בנק השחקנים יהיו הלקוח ,והפקיד. לא בהכרח אדם ,יכול להיות מערכת - Use Case פעילות בעלת משמשעות ל .Actor למשל במערכת של בנק :הפקדה ומשיכה. על מנת למצוא את הuse cases- 8 יש לנתח את הפעילויות שהשחקנים יכולים לבצע. UseCase Actor דוגמא- Use Case Diagram Actor Deposit Use Cases get balance Customer Withdraw 9 – Use Case Diagramעוד הערות קבוצת use casesבעלי אותו נושא מקובצים יחדיו ונקראים subject (נושא). Actor יכול להתיחס ל use caseבודד ,או ל.subject - Use Case משמשים לתיאור הדרישות של המערכת בהמשך יהוו בסיס להגדרת תרשימים אחרים שני יחסים מיוחדים משמשים לקישור בין שני :use case <<extend>> 10 הרחבה של use case משתמשים כאשר ל use caseיש מספר הרחבות אפשריות >> ,<<includeנקרא גם >><<uses הכלה של use case משתמשים כאשר יש פעילות שמשותפת להרבה use case – דוגמא מורחבתUse Case Diagram Deposit «uses» get balance «uses» Customer Withdraw «extends» print withdrawal 11 -Use Caseתיעוד חשוב לתעד את התרשים. מקובל לתעד עבור כל use case תיאור קצר רשימת השחקנים ( )actorsהמעורבים תנאים שיש לקיים לפני ביצוע הפעולה תיאור מפורט של אופן ביצוע הפעולה תיאור של מצב המערכת בסוף התהליך התיעוד לא בהכרח יכתב כולו בתחילת תהליך התכנון אלא יתפתח לאורך התכנון 12 תכנון מונחה עצמים על קצה המזלג... 13 מהו תכנון מונחה עצמים העולם מיוצג ע"י עצמים (אוביקטים.)objects , לעצמים יש מצב )(attributes מתואר ע"י תכונות שונות. לעצמים יש התנהגויות )(methods מה שאוביקט יכול לעשות מה שאפשר לעשות עם אוביקט תבנית המתארת את העצם נקראת מחלקה ()class מימוש של עצם מסויים נרקא עצם או אוביקט ()object 14 דוגמא -מחקלה לניהול חשבון בנק חשבון בנק – הגדרת המחלקה תכונות )(attributes פעולות )(methods 15 שם בעל החשבון יתרה משיכה הפקדה בירור יתרה חשבון הבנק – מחלקה ואוביקט שם מחלקה תכונות פעולות 16 מחלקה (הרעיון/תבנית) שם מחלקה תכונות +ערכים אוביקטים (המימוש) שם אוביקט עקרונות בתכנון מונחה עצמים תכנון מונחה עצמים תומך בעקרונות הבאים הכמסה – encapsulation נלמד עכשיו ירושה – inheritance נלמד בהמשך פולימורפיזם polymorphism - 17 מהי הכמסה ()encapsulation אפשר להסתכל על מחלקה בשני אופנים פנימי 18 פנימי – הפרטים של המחלקה ,התכונות והפעולות שלה חיצוני – השירותים שהמחלקה מספקת חיצוני הכמסה (המשך) ראינו ששימוש במחלקה נעשה ע"י יצירת אוביקט. בעזרת האוביקט ניתן להשתמש בשירותי המחלקה בעת שימוש בשירותי המחלקה דרך האוביקט אין צורך לדעת כיצד מבוצע השירות שינויים לתכונות המחלקה יבוצעו רק ע"י מתודות המחלקה רצוי שיהיה בלתי אפשרי לבצע שינוי חיצוני לתכונות נחשוב על אוביקט כקופסא שחורה המנוהלת רק דרך מתודות 19 הכמסה (המשך) מתודות מחלקה תכונות 20 לקוח רמות גישה -להשגת הכמסה Private ניתן לגשת אך ורק מתוך המחלקה מסומן בעזרת הסימן - Public ניתן לגשת מבל מקום (בחבילה) גם מתוך המחלקה וגם מבחוץ מסומן בעזרת הסימן + Protected ניתן לגשת מתוך המחלקה או במחלקות יורשות (נדבר בהמשך) 21 (מסומן בעזרת הסימן )# private public - privateמאפשר גישה רק מתוך המחלקה תכונות בדרך כלל תכונות יוגדרו private ניתן לגשת לתכונות רק מתוך המחלקה מתודות המחלקה יכולות לגשת לתכונה מתודות 22 מתאים להגדרת מתודות המחלקה שאינן מיועדות לשימוש חיצוני מתודות המחלקה יכולות לגשת למתודה מתודות שאינן של המחלקה לא יכולות לגשת למתודה טוב למתודות "שרות" שהמתודות האחרות משתמשות בו. - publicמאפשר גישה גם מחוץ למחלקה תכונות בדרך כלל תכונות לא יוגדרו public מתודות 23 בדרך כלל יוגדרו publicשכן הן מיועדות לשימוש מחוץ למחלקה מאפשר גישה למתודות מחוץ למחלקה מאפשר גישה מכל מתודות המחלקה get, set כיוון שאין גישה לתכונות המחלקה באופן ישיר ,מקובל להגדיר מתודות גישה לתכונות מתודות אלו נקראות בשמות - getXמחזירה את ערך התכונה ( Xנקרא גם )accessor - setXקובע את ערך התכונה ( Xנקרא גם )mutator מתודות getו set -מאפשרות גישה מבוקרת לתכונות המחלקה 24 ניתן להגביל טווח ערכים ניתן לבדוק שהערכים תקינים כאשר אין צורך לא נגדיר לתכונות מתודות getו set לתיאורUML תרשימי מבנה המערכת object diagrams, class diagrams 25 - Class Diagramהגדרה בתרשים Class Diagramמציגים את המצב הסטטי של המערכת ושל פעולות המתבצעות בה הרכיבים בתרשים: מחלקות תכונות ()attributes פעולות (נקראות גם מתודות( ))methods or operations יחסים בין המחלקות association, aggregation, composition, generalization לרב תרשים Classנוצר במקביל לתרשים Use Case 26 הגדרת מחלקות – כיצד? נגדיר כמחלקה כל ישות במערכת כל שחקן ( )actorיהווה מחלקה לקוח ,פקיד אוסף תהליכים עם קישור לוגי יהווה מחלקה חשבון בנק דוגמאות נוספות 27 ממשק למשתמש ישות שמתקשרת עם גורמי מידע חיצוניים ישות האחראית על משאבים - Class Diagramדוגמא נגדיר מחלקה עבור לקוח בבנק. נקרא לו Customer ללקוח יש מספר ת"ז ,שם וכו' אלו התכונות ( )attributesשל המחלקה נרצה לייצא את המידע על התכונות של הלקוח גם למחלקות אחרות ,ולאפשר עידכון שלהם לשם כך נגדיר מתודות כמו getName, setName נראה איך המחלקה תיוצג ב .class diagram 28 תרשים של מחלקה :Class Diagram כמו שיראה ב, מחלקה של לקוח private - public + Customer -name -idNum +getName() +getIdNum() +setName() +setIdnum() attributes operations (methods) 29 כדאי לדעת רמות הגישה נקראות ב Access specifiers UML ראינו כבר private, public, protected קיים גם package פירושו שניתן לגשת מתוך חבילת ה UML יסומן ב ~ הערות ב UMLמופיעות בתוך סימון של פתקית: This is a comment, also called a note 30 תזכורת- מחלקות ואובייקטים המחלקה היא התבנית האוביקט הוא מימוש ספציפי מסוג התבנית אוביקטים Object1 : Customer name = Yael idNum = 123456 Object2 : Customer name = Ido idNum = 678910 מחלקה Customer -name -idNum +getName() +getIdNum() +setName() +setIdnum() 31 הגדרה- Object Diagram שבו יוצגו המחלקותClass Diagram ראינו Object Diagram מתאר את האוביקטים והיחסים ביניהם משמש לתיאור המערכת בזמן ריצה Object1 : Customer name = Yael idNum = 123456 Object2 : Customer name = Ido idNum = 678910 32 התכונות באוביקט בכל פעם שנייצר אוביקט כל התכונות של המחלקה ישוכפלו לאוביקט יש העתקים משלו של התכונות לכל אוביקט שמורים ערכים אחרים בתכונות לפעמים נרצה להגדיר תכונה שמשותפת לכל האוביקטים שהם של מחלקה מסויימת תכונה כזאת תקרא תכונה סטטית static - 33 הגדרת תכונה סטטית מופיעה עם קו תחתוןUML תכונה סטטית ב אוביקטים Object2 : Customer name = Ido idNum = 678910 numCustomers : Customer = 2 Object1 : Customer name = Yael idNum = 123456 numCustomers : Customer = 2 מחלקה תכונה סטטית Customer -name -idNum -numCustomers : Customer +getName() +getIdNum() +setName() +setIdnum() 34 תכונות סטטיות כאשר תכונה היא סטטית יש רק עותק אחד לכל האוביקטים של אותה מחלקה. בפעם הראשונה שמתיחסים למחלקה מוקצה מקום למשתנה הסטטי. לכל האוביקטים של המחלקה יש את אותו העתק של התכונה שינוי התכונה הסטטית עבור אוביקט אחד ,גורר שינוי של התכונה בכל האוביקטים. על מנת לסמן משתנה ב ,VISIOיש לסמן ב owner scope 35 instanceעבור משתנה רגיל (זה מצב דיפולטי) classifierעבור משתנה סטטי מתודות סטטיות ניתן גם להגדיר מתודה סטטית מתודה סטטית ניתנת להפעלה מבלי לייצר אוביקט. מתודה סטטית לא יכולה לגשת לתכונות של אוביקט כיוון שהתכונות לא קיימות עד שנוצר אוביקט. מתודה סטטית כן יכולה לגשת לתכונות סטטיות ולתכונות לוקליות 36 כיוון שהתכונות הסטטיות קיימות בהתייחסות ראשונה למחלקה, ותכונות לוקליות מוגדרות בתווך המתודה מתודה סטטית מופיעה עם קו תחתוןUML גם מתודה סטטית ב Customer מתודה סטטית -name -idNum -numCustomers : Customer +getName() +getIdNum() +setName() +setIdnum() +getNumCustomers() 37 דוגמא – תרגיל כיתה נגדיר מחלקה לסטודנט מה יהיו התכונות? מה יהיו המתודות? האם יש תכונה סטטית? 38 יחסים בין מחלקות יתכנו סוגים שונים של קשרים בין מחלקות ( dependencyניתוח א) ( associationניתוח א) ( aggregationניתוח א) ( composite aggregationניתוח א) ( generalizationניתוח ב) (realizationניתוח ב) תכנון נכון של הקשרים מסייע לשימוש חוזר ()reuse 39 Dependencies Dependency הוא יחס שבו שינוי של רכיב אחד עלול להשפיע על רכיב אחר נשתמש בתלות מסוג dependencyכאשר מחלקה אחת משתמשת במחלקה אחרת דוגמא לשימוש כזה הוא מחלקה המועברת כפרמטר למתודה של מחלקה אחרת dependency יסומן בקו מקווקו 40 Association Association הוא יחס שמתאר איך אוביקטים של מחלקה אחת קשורים למחלקה אחרת - Multiplicity כמה אוביקטים של המחלקה יכולים להיקשר לאחרת - 1 בדיוק אוביקט אחד מסוג זה מקושר לאחר - * מספר לא מוגבל 0..* בין 0למספר לא מוגבל מקובל לתת שם ליחס שמתאר את סוג הקשר Store -StoreName 41 -employer 1 -employee *1.. SalePerson -salary )(+calcSalary Aggregation Aggregation הוא יחס שבו יש מחלקה של משהו גדול המכיל פריטים קטנים יותר משמעות היחס הוא "יש לו" • • על מנת לצייר ב Visioיש לבחור composite ולבחור תחת aggregationבטבלה shared 42 Composite composite aggregation הוא סוג של aggregation אוביקט יכול לקחת חלק ב compositeאחד בלבד 43 למשל frame -הוא חלק מחלון אחד בלבד זה שונה מ aggregationפשוט שבו האוביקט יכול להיות קשור למספר אוביקטים לתיאורUML תרשימי התנהגות המערכת state-chart, activity, sequence and collaboration diagrams 44 ) (תזכורתUML סוגי תרשימי מבט כללי על המערכת ראינו use cases מבנה המערכת object diagrams, class diagrams התנהגות המערכת state-chart, activity, sequence and collaboration diagrams מימוש component and deployment diagrams 45 Sequence Diagram 46 Sequence Diagram תרשים המתאר אינטראקציות בין מחלקות התיאור מתבצע ע"י העברת הודעות בין המחלקות מטרת התרשים היא לתאר "התנהגות" של המערכת או של חלק ממנה התרשים מורכב ממספר חלקים: 47 – Class rolesמתארים את תפקיד האוביקט באינטראקציה – Lifelinesמתארים את התנהגות האוביקט בזמן – Activationsמתארים את הזמן בו האוביקט נותן שירות – Messagesמתארים את התקשורת בין האוביקטים Sequence diagram הסימנים הבסיסיים ב Object Object lifeline Activation (Class roles with lifeline( Message1 48 Sequence Diagram PowerPoint Presentation for Dennis & Haley Wixom, Systems Analysis and Design, 2nd Edition Copyright 2003 © John Wiley & Sons, Inc. All rights reserved. 49 Sequence Diagram PowerPoint Presentation for Dennis & Haley Wixom, Systems Analysis and Design, 2nd 15 - 50 Edition Copyright 2003 © John Wiley & Sons, Inc. All rights reserved. 50 State Chart Diagram 51 State Chart Diagram תרשים המתאר התנהגות של מחלקה מתאר איך המחלקה מגיבה לגירוי חיצוני התרשים מורכב ממספר חלקים: ( Statesמצבים) – מתארים מצבים בחיי אוביקט ממלאים תנאי מסויים מבצעים פעילות מחכים להתנהגות מסויימת ( Transitionsמעברים) – מתארים יחסים בין מצבים של אוביקט התרשים בדרך כלל משמש לתיאור מחלקות מורכבות 52 אין צורך לייצר תרשים כזה לכל מחלקה State diagram הסימנים הבסיסיים ב Initial state Final state State1 state transition 53 The Life of an Order PowerPoint Presentation for Dennis & Haley Wixom, Systems Analysis and Design, 2nd Edition 15 - 54 Copyright 2003 © John Wiley & Sons, Inc. All rights reserved. 54 Statechart Diagram for an Order PowerPoint Presentation for Dennis & Haley Wixom, Systems Analysis and Design, 2nd Edition 15 - 55 Copyright 2003 © John Wiley & Sons, Inc. All rights reserved. 55 Statechart Diagram for a Hospital Patient PowerPoint Presentation for Dennis & Haley Wixom, Systems Analysis and Design, 2nd Edition Copyright 2003 © John Wiley & Sons, Inc. All rights reserved. 56 Collaboration Diagram Not learning for now 57 Activity Diagram Not learning for now 58