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