1 / 56

Design Patterns למנתחי מערכות

Design Patterns למנתחי מערכות. תוכן. מבוא ל- UML ה- Use Case Modeling ב- UML תוצרי ה- Conceptual Model קישור בין ה- Use Cases ל- Entity Classes ה- MVC – Pattern עקרונות ה- Coupling וה- Cohesion ה- Facade – Design Pattern ה – Adapter Design Pattern. UML. מהו UML מטרות

thina
Download Presentation

Design Patterns למנתחי מערכות

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Design Patterns למנתחי מערכות כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  2. תוכן • מבוא ל- UML • ה- Use Case Modeling ב- UML • תוצרי ה- Conceptual Model • קישור בין ה- Use Cases ל- Entity Classes • ה- MVC – Pattern • עקרונות ה- Coupling וה- Cohesion • ה- Facade – Design Pattern • ה – Adapter Design Pattern כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  3. UML • מהו UML • מטרות • Models/Diagrams • מחזור החיים בפיתוח ו- UML • UML Diagrams • כלים התומכים ב- UML כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  4. מהו UML • Unified Modeling Language • משמשת לעיצוב, הגדרה, בניה, תיעוד תוצרים • The UML is a language for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for business modeling and othe non-software systems. • The UML represents a collection of best engineering practices that have proven successful in the modeling of large and complex systems. כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  5. מטרות • ניתוח ועיצוב מערכות על פי מתודולוגיית ה- OO • שפה משותפת בין משתמש/מנתח מערכות/מעצב מערכות/מתכנת • קל לתחזוקה • פשטות כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  6. Models and Diagrams A model is a complete description of a system from a particular perspective State Diagrams State Diagrams Class Diagrams Use Case Diagrams Use Case Diagrams State Diagrams Use Case Diagrams State Diagrams Use Case Diagrams Object Diagrams Use Case Diagrams Sequence Diagrams Scenario Diagrams State Diagrams Scenario Diagrams State Diagrams Component Diagrams Collaboration Diagrams Models Component Diagrams Scenario Diagrams Component Diagrams Scenario Diagrams Deployment Diagrams Statechart Diagrams Activity Diagrams כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  7. Use Case Model Analysis Model Design Depl. Model Model Impl. Model Test Model מחזור החיים בפיתוח ו- UML UML diagrams provide views into each model Requirements Analysis Design Implementation Test Each workflow is associated with one or more models. כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  8. Use Case Driven Analysis Req.ts Design Impl. Test Use Cases Model כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  9. כלים התומכים ב- UML • Rational Rose • Select • Objecteering • Together • Visio כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  10. Use Case Modeling • מבוא • Actors • Use Cases • Use Case Diagram • תיעוד ה- Use Case • מערכת ספריה כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  11. מבוא ל- Use Case Modeling • נבנה בשלב הגדרת הדרישות • מורכב מ- Uses Cases, Actorsוקשרים ביניהם • מטרות • מתאים גם למערכת שאינה Object Oriented כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  12. מטרות ה- Use Case Modeling • דרך סיסטמטית ואינטואיטיבית להגדרת דרישות • קשר בין המשתמש למפתח • תאור ברור וממצה של מה אמורה לבצע המערכת מנקודת המבט של המשתמש • שפה ברורה בין כל בעלי התפקידים • בניית Test Cases תאור פונקצינלי של המערכת מנקודת ראות המשתמש כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  13. Actors • כל מי או מה שיוזם פעילות ישירה במערכת ו/או מקבל תוצר ישיר מהמערכת כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  14. Use Cases • תהליך פונקציונלי אחד ושלם מנקודת ראות המשתמש • בצע השאלה • עדכן רישום • בצע הקצאת מקום • הוסף ספר • עדכן או מחק קורא • Add Item • Make Reservation כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  15. תעוד ה- Use Case • תאור של מה לבצע ולא איך לבצע • שפה דומה לטרמינולוגיה בשימוש ה- Actors • הלקוח חייב לאשר את התאור ולכן… • תבנית דוגמה לתעוד Use Case • ניתן לתאר גם ע”י Activity Diagram כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  16. תבנית דוגמה לתעוד Use Case שם: מטרה: משתמשים: מסלול עיקרי: מסלולים חליפיים תנאי התחלה: תנאי סיום: יוצאים מהכלל: דרישות פונקציונליות דרישות לא פונקציונליות Name: Goal: Actors: Primary Flow: Alternate Flow Pre-Conditions: Post-Conditions: Exceptions: Functional Requirements Non Functional Requirements כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  17. Primary/Alternate Flow • כדאי לבנות את סעיף ה- Primary/Alternate Flowבצורה של טבלה תגובת המערכת פעילות ה- Actors כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  18. תרגיל - ספריה • הספרייה משאילה ספרים לקוראים • פרטי הספרים והקוראים רשומים במערכת • הספרייה רוכשת מידי פעם ספרים חדשים. המערכת אמורה לתמוך בניהול הספרים אבל לא בתהליך הרכישה. • חלק מהספרים קיימים במספר עותקים • עותקים של ספרים ישנים מוצאים מהספרייה אם הם במצב גרוע (בתחילת כל חודש הספרן מפיק דו”ח מצב) • הספרן עובד מול הקוראים ומתחזק את המערכת • כל קורא יכול לקבל מספר ספרים בו זמנית כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  19. תרגיל - ספריה -המשך • כשקורא מבקש ספר שלא נמצא בספריה או נמצא אצל קורא אחר הספרן מחליט אם להכניס את הקורא לתור ממתינים. • ניתן לבטל קורא מרשימת הממתינים בצורה יזומה. • ברגע שספר נרכש או מוחזר לספריה ויש עבורו תור ממתינים הקורא הראשון ברשימה מקבל הודעה מתאימה. • הספרן יכול להוסיף, לבטל, לעדכן נתונים של הקוראים, הספרים והעותקים במערכת. • ההיסטוריה של ההשאלות, ההחזרות ותור הממתינים נשמרת במערכת כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  20. מערכת ספריה – Use Case Diagram כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  21. Conceptual Model • בשלב זה יש לאתר את ה- Entity Classesבמערכת • עבור כל Classיש לאתר את ה- Attributesהעיקריים • אין צורך להוסיף בשלב זה את ה- Operationsואת הקשרים בין ה- Classes • עבור ה- Attributesיש לקבוע את השמות והטיפוסי הכללייים בלבד כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  22. Conceptual Model – מערכת ספריה • Reader : id, firstName, lastName • Title : isbn, name, author • Copy : copyId, status • Loan : loanDate, returnDate • Reservation : reservationDate כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  23. Conceptual Model – מערכת ספריה כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  24. Sequence Diagram • מבוא • גרסה ראשונה של ה- Sequence Diagram • דוגמה של Sequence Diagram כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  25. מבוא ל- Sequence Diagram • מתאר את הפעילויות בתוך Use Case • ניתן לתאר באמצעותו גם Operationsמורכבים • מדגיש את גורם הזמן • מציג את האינטראקציה בין האובייקטים • מציג את האינטראקציה בין ה- Actorsלמערכת • שלבים בבניית ה- Sequence Diagram כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  26. גרסה ראשונה של ה- Sequence Diagram כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  27. Model-View-Controller Architecture • Separation between the "GUI", the data and the business logic • The model layer • Corresponds to the "real world". • Represents the Conceptual Model • Does not have any user interface element • The view layer • Visible to the end user • Typically there is one view class for each dialog/window in the GUI • The control layer • Controls the interaction between the model and the view כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  28. Entity Classes • Hold Information • Eventually may be mapped to tables in the Detailed Design Phase • Usually business entities that have meaning to the end user • Usually found in the previous step (Conceptual Model) • Corresponds to the MODEL layer of the MVC Architecture כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  29. Boundary Classes • Lays on the boundary between the system and the outside world • Added to show the interaction with the user or another system • Usually mapped to forms and windows of the application and interfaces to other applications • In this phase, the purpose is to capture and document the interface requirements, not to show how the interface is implemented • The implementation is dependent upon the application framework that is chosen later in the detailed design phase • Corresponds to the VIEW layer of the MVC Architecture כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  30. Control Classes • Typically, one control class for a use case • Manages the flow of events • Manages the entity classes • Middle layer between the boundary classes and the entity classes • Corresponds to the CONTROLLER layer of the MVC Architecture כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  31. בצע השאלה – כולל MVC כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  32. עקרונות ה- Cohesion • A class is responsible for many things in different areas • A class is responsible for a too complex task in the same area כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  33. Low Cohesion Problems • Hard to comprehend • Hard to reuse • Hard to maintain • Delicate: constantly effected by change כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  34. High Cohesion • Assign a responsibility so that cohesion remains high • Cohesion is a measure of how strongly related and focused the responsibilities of a class are • A class with low cohesion does many unrelated things or does too much work כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  35. Low Cohesion כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  36. כלים לפתרון בעיות ה- Cohesion • Inheritance • Aggregation • Divide and Conquer כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  37. עקרונות ה- Coupling • Coupling is a measure of how strongly one class is connected to, has knowledge of, or relies upon other classes כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  38. High Coupling Problems • Harder to understand in isolation • Harder to reuse because its use requires the additional presence of the classes it is dependent upon כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  39. High Coupling כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  40. כלים לפתרון בעיות ה- Coupling • Assign a responsibility so that its placement does not increase the coupling • Consider GOF Design Patterns כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  41. בעיה כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  42. First Improvement כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  43. Second Improvement - Adapter כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  44. Adapter • Converts the interface of a class into another interface clients expect. • Adapter lets classes work together that could not otherwise because of incompatible interfaces (GoF) כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  45. Object Adapter – General Solution Return adaptee.specificRequest() כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  46. Object Adapter - Advantages • The adapted object conforms exactly to the expected interface • The Adaptee object is encapsulated and hidden from the client כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  47. Class Adapter – General Solution כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  48. בעיה מסוג אחר כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  49. פתרון - Facade כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

  50. Facade • Provides a unified interface to a set of interfaces in a subsystem • Defines a higher-level interface that makes the subsystem easier to use כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ

More Related