Upload
cora-hall
View
221
Download
4
Embed Size (px)
Citation preview
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 1
Design Patternsלמנתחי מערכות
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 2
תוכן
UMLמבוא ל- •
UML ב- Use Case Modelingה- •
Conceptual Modelתוצרי ה- •
Entity Classes ל- Use Casesקישור בין ה- •
MVC – Patternה- •
Cohesion וה- Couplingעקרונות ה- •
Facade – Design Patternה- •
Adapter Design Patternה – •
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 3
UMLUMLמהו •
מטרות•
•Models/Diagrams
UMLמחזור החיים בפיתוח ו- •
•UML Diagrams
UMLכלים התומכים ב- •
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 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.
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 5
מטרות
OOניתוח ועיצוב מערכות על פי מתודולוגיית ה- •
שפה משותפת בין משתמש/מנתח •מערכות/מעצב מערכות/מתכנת
קל לתחזוקה•
פשטות•
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 6
Models and Diagrams
Use CaseDiagramsUse Case
DiagramsUse CaseDiagrams
ScenarioDiagramsScenario
DiagramsCollaborationDiagrams
StateDiagramsState
DiagramsComponentDiagrams
ComponentDiagramsComponent
DiagramsDeploymentDiagrams
StateDiagramsState
DiagramsObjectDiagrams
ScenarioDiagramsScenario
DiagramsStatechartDiagrams
Use CaseDiagramsUse Case
DiagramsSequenceDiagrams
StateDiagramsState
DiagramsClassDiagrams
ActivityDiagrams
A model is a complete description of a system from a particular perspective
Models
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 7
UMLמחזור החיים בפיתוח ו-
Requirements
Design
Implementation
Test
Analysis
Use CaseModel
DesignModel
Depl.Model
Impl.Model
AnalysisModel
TestModel
UML diagrams provide views into each model
Each workflow is associated with one or more models.
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 8
Use Case Driven
Req.ts Impl. Test
Use Cases Model
Analysis Design
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 9
UMLכלים התומכים ב-
•Rational Rose
•Select
•Objecteering
•Together
•Visio
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 10
Use Case Modelingמבוא••Actors•Use Cases•Use Case DiagramUse Caseתיעוד ה- •מערכת ספריה•
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 11
Use Case Modelingמבוא ל-
נבנה בשלב הגדרת הדרישות•
וקשרים ביניהםUses Cases, Actorsמורכב מ- •
מטרות•
Object Orientedמתאים גם למערכת שאינה •
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 12
Use Case Modelingמטרות ה-
דרך סיסטמטית ואינטואיטיבית להגדרת דרישות•קשר בין המשתמש למפתח•תאור ברור וממצה של מה אמורה לבצע המערכת •
מנקודת המבט של המשתמששפה ברורה בין כל בעלי התפקידים •Test Casesבניית •
תאור פונקצינלי של המערכת מנקודת ראות המשתמש
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 13
Actors
כל מי או מה שיוזם פעילות ישירה •במערכת ו/או מקבל תוצר ישיר
מהמערכתספרן
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 14
Use Casesתהליך פונקציונלי אחד ושלם מנקודת ראות •
המשתמשבצע השאלה•עדכן רישום•בצע הקצאת מקום•הוסף ספר•עדכן או מחק קורא••Add Item•Make Reservation
בצע השאלה
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 15
Use Caseתעוד ה-
תאור של מה לבצע ולא איך לבצע•Actorsשפה דומה לטרמינולוגיה בשימוש ה- •הלקוח חייב לאשר את התאור ולכן…•Use Caseתבנית דוגמה לתעוד •Activity Diagramניתן לתאר גם ע”י •
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 16
Use Caseתבנית דוגמה לתעוד
שם:
מטרה:
משתמשים:
סלול עיקרי:מ
סלולים חליפייםמ
תנאי התחלה:
תנאי סיום:
יוצאים מהכלל:
דרישות פונקציונליות
דרישות לא פונקציונליות
Name:
Goal:
Actors:
Primary Flow:
Alternate Flow
Pre-Conditions:
Post-Conditions:
Exceptions:
Functional Requirements
Non Functional Requirements
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 17
Primary/Alternate Flow
Primary/Alternate Flowכדאי לבנות את סעיף ה- •בצורה של טבלה
תגובת המערכתActorsפעילות ה-
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 18
תרגיל - ספריה
הספרייה משאילה ספרים לקוראים•
פרטי הספרים והקוראים רשומים במערכת•
הספרייה רוכשת מידי פעם ספרים חדשים. המערכת •אמורה לתמוך בניהול הספרים אבל לא בתהליך
הרכישה.
חלק מהספרים קיימים במספר עותקים•
עותקים של ספרים ישנים מוצאים מהספרייה אם הם •במצב גרוע )בתחילת כל חודש הספרן מפיק דו”ח מצב(
הספרן עובד מול הקוראים ומתחזק את המערכת•
כל קורא יכול לקבל מספר ספרים בו זמנית•
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 19
תרגיל - ספריה -המשך
כשקורא מבקש ספר שלא נמצא בספריה או נמצא •אצל קורא אחר הספרן מחליט אם להכניס את הקורא
לתור ממתינים.ניתן לבטל קורא מרשימת הממתינים בצורה יזומה.•ברגע שספר נרכש או מוחזר לספריה ויש עבורו תור •
ממתינים הקורא הראשון ברשימה מקבל הודעה מתאימה.
הספרן יכול להוסיף, לבטל, לעדכן נתונים של •הקוראים, הספרים והעותקים במערכת.
של ההשאלות, ההחזרות ותור הממתינים ההיסטוריה•נשמרת במערכת
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 20
Use Case Diagramמערכת ספריה –
Manage borrowers
Remove reservation
Manage books
Manage copies
Librarian
Scheduler
Lend book
<<include>>
Customer
Return book
Produce status report
Add reservation
Librarian
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 21
Conceptual Model
במערכתEntity Classesבשלב זה יש לאתר את ה- •
העיקרייםAttributes יש לאתר את ה- Classעבור כל •
ואת Operationsאין צורך להוסיף בשלב זה את ה- •Classesהקשרים בין ה-
יש לקבוע את השמות והטיפוסי Attributesעבור ה- •הכללייים בלבד
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 22
Conceptual Modelמערכת ספריה –
• Reader : id, firstName, lastName
• Title : isbn, name, author
• Copy : copyId, status
• Loan : loanDate, returnDate
• Reservation : reservationDate
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 23
Conceptual Model – מערכת ספריה
Borrowerid : Longname : Stringaddress : Address
CopycopyId : Integerstatus : char
LoanloanDate : DatereturnDate : Date
0..n
1
0..n
1
Has
0..*
1
may-be-loaned-in
Bookisbn : ISBNname : Stringauthor : StringlendingTime : Integer
0..n 10..n 1
Copy-of
ReservationreservationDate : Date
0..n
1
0..n
1
Has
0..*
1
may-be-reserved-in
0..*
1
0..*
1
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 24
Sequence Diagram
מבוא•
Sequence Diagramגרסה ראשונה של ה- •
Sequence Diagramדוגמה של •
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 25
Sequence Diagramמבוא ל-
Use Caseמתאר את הפעילויות בתוך •
מורכביםOperationsניתן לתאר באמצעותו גם •
מדגיש את גורם הזמן •
מציג את האינטראקציה בין האובייקטים•
למערכתActorsמציג את האינטראקציה בין ה- •
Sequence Diagramשלבים בבניית ה- •
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 26
Sequence Diagramגרסה ראשונה של ה-
: Librarian : LendBookForm
displayCustomers( )
selectCustomer( )
displayBooks( )
selectBook( )
registerLoan( )
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 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
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 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
Book
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 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
LendBookForm
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 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
LendBookManager
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 31
MVCבצע השאלה – כולל
: Librarian : LendBookWindow : LendBookManager : Borrower : Book : Copy : Loan : Reservation
displayReaders( )
displayBooks( )
register( )
getReaderList( )getList( )
getBookList( )getList( )
getStatus( )
register( )
updateStatus( )
delete( )
Reserveation Found
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 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
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 33
Low Cohesion Problems
• Hard to comprehend
• Hard to reuse
• Hard to maintain
• Delicate: constantly effected by change
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 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
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 35
Employee- id- firstName- lastName- maritalStatus- role- birthDate- lastRole- numberOfChildern- lastOfficeBuilding- lastOfficefloor- lastOfficeRoomNumber- lastActiivityType- lastActivityDate- lastActivityPoints- lastActivityNumberOfPersons- lastBasicSalary- lastBasicTax- lastSalaryDate- numberOfSalaries- country- city- street- houseNumber- tel- mobile- previousFirstName- previousLastName- previousCountry- previousCity- previousStreet- previousHouseNumber- previousTel- previousMobile
+ manyOPerations()
Low Cohesion
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 36
Cohesionכלים לפתרון בעיות ה-
• Inheritance
• Aggregation
• Divide and Conquer
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 37
Couplingעקרונות ה-
• Coupling is a measure of how strongly one class is connected to, has knowledge of, or relies upon other classes
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 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
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 39
High Coupling
A
C
E
B
F
G
J
D
I
H
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 40
• Assign a responsibility so that its placement does not increase the coupling
• Consider GOF Design Patterns
Couplingכלים לפתרון בעיות ה-
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 41
בעיה
Text
+ display()+ clear()
Client4
Triangle
+ draw()+ hide()
Client3 Rectangle
+ draw()+ hide()
Client1
Client2
Circle
+ draw()+ hide()
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 42
First Improvement
Triangle
+ draw()+ hide()
Rectangle
+ draw()+ hide()
Circle
+ draw()+ hide()
Shape
+ draw()+ hide()
Client1
Client2
Client3
Client4
Text
+ display()+ clear()
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 43
Second Improvement - Adapter
Triangle
+ draw()+ hide()
Rectangle
+ draw()+ hide()
Circle
+ draw()+ hide()
Text
+ display()+ clear()
Client4
Client3
Client2
Client1
Shape
+ draw()+ hide()
TextShape
+ draw()+ hide()
<<implements>>
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 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(
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 45
Object Adapter – General Solution
Target
+ request()
Adapter
+ request()
Adaptee
+ specificRequest()
Return adaptee.specificRequest)(
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 46
Object Adapter - Advantages
• The adapted object conforms exactly to the expected interface
• The Adaptee object is encapsulated and hidden from the client
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 47
Class Adapter – General Solution
Target
+ request()
Adaptee
+ specificRequest()
Adapter
+ request()
<<implements>>return specificRequest()
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 48
בעיה מסוג אחר
Client1
Client2
Client3
Font
TextType
TextLabel
TextSize
Client4
TextField
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 49
Facadeפתרון -
Client1
Client2
Client3
Client4
TextField
TextSize
TextLabel
TextType
TextFieldFacade
Font
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 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
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 51
Façade - General Solution
C2C3
C5 C6
C4
Client
C1
Facade
C7
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 52
Façade - Advantages
• The client is shielded from the subsystem components. This makes the system easier to use
• There is weak coupling between clients and subsystems
• Clients can still communicate directly with susbsystems if necessary
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 53
Pattern Category
• Creational
• Structural
• Behavioral
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 54
Creational Patterns
• Handle the instanciation process )how, when, and what objects are created(
• Handle the configuration of classes and objects• Allows a system to work with "product" objects
that vary in structure and functionality• Abstract Factory • Builder• Factory Method• Prototype• Singleton
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 55
Structural Patterns
• Handle the way classes and objects are used in larger structures, and separate interfaces from instanciation
• Adapter
• Bridge
• Composite
• Decorator
• Façade
• Flyweight
• Proxy
8/2001 כל הזכויות שמורות לד. מימון ייעוץ והדרכה במחשבים בע"מ 56
Behavioral Patterns• Handle algorithms and the division of responsibility
between objects, and dynamic interaction between classes and objects.
• Handle the communication between objects, not only structure
– Chain of Responsibility– Command– Interpreter– Iterator– Mediator– Memento– Observer– State– Strategy– Template Method– Visitor