äøöàä 4 - ò÷øåðåú á OO
Download
Report
Transcript äøöàä 4 - ò÷øåðåú á OO
ניתוח ועיצוב מערכות מידע
תעשיה וניהול ,שנה ב
סמסטר אביב 2009
קורס 310211
הרצאה :4
אפיון מערכות מוכוון עצמים
ד"ר דיצה ביימל
Email: [email protected]
1
Spring 2005
Specification and Analysis of Information Systems
סיכום השיעורים הקודמים
• שלב הניתוח כולל:
– שלב הייזום,
– איסוף נתונים וחקר מצב קיים,
– הגדרת דרישות וחקר ישימות.
• EPC
– מודל המשמש לניתוח ותיעוד מצב קיים.
2
ניתוח ואפיון מערכות מידע2009 ,
סילבוס על פני ציר הזמן
מבוא
UML
עקרונות
ב OO
OPM
14
3
13
12
11
ניתוח ואפיון מערכות מידע2009 ,
10
9
8
7
6
5
שלב הניתוח
4
3
2
1
תוכן ההרצאה
• מבוא ל UML
• אפיון מונחה עצמים
– מושגים בסיסיים
– עקרונות בסיסיים
– קשרים
• סיכום
4
ניתוח ואפיון מערכות מידע2009 ,
מוטיבציה
דוח מבקר המדינה לשנת – 2001
13%מכלל פרויקטי התוכנה מסתיימים בהצלחה
בעיות בפיתוח מערכות:
•
•
•
•
5
אין מספיק שימוש חוזר בקוד
מציאת בגים
ריבוי שיטות סימון
המערכות גדלות ונעשות מורכבות
ניתוח ואפיון מערכות מידע2009 ,
ניתוח מוכוון עצמים
• גישת האובייקטים עוסקת ישירות בעולם האמיתי.
• מהו אובייקט?
• עולמו של הלקוח בנוי מאובייקטים
– חלקם פיזיים -כמו..
– חלקם לוגיים -כמו...
• פיתוח מ"מ בגישה מונחית עצמים :זיהוי וארגון המחלקות לפי
מושגי עולם הבעיה ולא לפי מושגי עולם המימוש
• בשנת 1983הוכרזה שפת התכנות . c++
• בשנת 1997יצאה הגרסה הראשונה של -UML
Unified Modeling Language
לא עוד תהליכים!
אמור מעתה עצמים או אובייקטים
6
ניתוח ואפיון מערכות מידע2009 ,
UML
UMLהיא שפת מודל שבאמצעותה נוכל לאפיין ולעצב
מערכות במתודולוגיה מוכוונת עצמים בצורה אחידה
המקובלת בעולם היום.
7
ניתוח ואפיון מערכות מידע2009 ,
מטרות UML
•
•
•
•
•
•
•
•
8
אחידות
מסגרת
פשוט ופרקטי
מחזור חיי מערכת
פרויקטים בסדר גודל ענק
חוסר תלות בטכנולוגיה
שפה המתאימה לכולם
הפרדה בין שלבי פיתוח המערכת
ניתוח ואפיון מערכות מידע2009 ,
UML מרכיבי
1.
2.
3.
4.
5.
6.
7.
8.
9.
Use case diagram
Class diagram
Sequence Diagram
Collaboration diagram
State chart diagram
Activity diagram
Deployment diagram
Component diagram
Object diagram
TOTAL 9 DIAGRAMS
2009 ,ניתוח ואפיון מערכות מידע
9
תוכן ההרצאה
• מבוא ל UML
• אפיון מונחה עצמים OOA -
– מושגים בסיסיים
– עקרונות בסיסיים
– קשרים
• סיכום
10
ניתוח ואפיון מערכות מידע2009 ,
מושגים בסיסיים של מודל העצם
• עצם ()Object
• מחלקה ()Class
• מופע ()Instance
• תכונה ( ,)Attributeמצב ()State
• שיטה (,)Method/Service
11
ניתוח ואפיון מערכות מידע2009 ,
11
מחלקה
• מחלקה ( – )Classתבנית ממנה ניתן לייצר אובייקטים.
• מחלקה אינה קיימת באמת .היא רק הוראות הכנה לפעילות
מסוימת.
• קבוצת עצמים בעלי מאפיינים משותפים (תכונות ,פעולות,
יחסים ,התנהגות) שייכים לאותה מחלקה.
• מחלקה היא הפשטה של אובייקט ממשי.
• למחלקה יש שם ,תכונות ,ושיטות.
• למחלקה מוחשית יש מופעים
שהם האובייקטים.
12
ניתוח ואפיון מערכות מידע2009 ,
12
תכונות ושיטות
Class Name
Attributes
Methods
13
Student
Name
DateofBirth
Address
Phone
Grades
Courses
Student(name)
Calc-average()
Register-for (course)
……..
)Attribute/Property( • תכונות
)" אוסף נתונים ("שדות.המתארים את העצם
• שיטות
)Service/Operation/Method(
אוסף ה"פונקציות" של.העצם/המחלקה
2009 ,ניתוח ואפיון מערכות מידע
13
מופע של מחלקה :אובייקט
• מופע ( )Instanceשל מחלקה -עצם בודד של מחלקה.
• לכל עצם יש:
– מצב ( - )Stateאוסף התכונות (השדות וערכיהם ,קשר עם
עצמים אחרים) בנקודת זמן מסוימת.
– התנהגות ( - )Behaviorאוסף פעולותיו המייצגות כיצד העצם
פועל ומגיב.
– זהות ( - )Identityייחודיות .אין שני עצמים זהים.
14
ניתוח ואפיון מערכות מידע2009 ,
14
)אובייקט (מופע של מחלקה מחלקה
Student
Name:: moshe cohen
DateofBirth: 1.1.79
Address: Haifa
Phone:04-8888888
……….
Student(name)
Calc-average()
Register-for (course)
15
Student
Name
DateofBirth
Address
Phone
Grades
Courses
Student(name)
Calc-average()
Register-for (course)
……..
2009 ,ניתוח ואפיון מערכות מידע
15
תרגיל כיתה Bicycle :
נרצה לתאר מחלקה של אופניים.
לאופניים יש שלוש תכונות:
cadence ,gear , speed
•
לאופניים יש 4שיטות:
• setCadence, setGear, applyBrake, speedUp
16
ניתוח ואפיון מערכות מידע2009 ,
16
Bicycle Class
Bicycle
cadence
gear
Speed
setCadence (newValue)
setGear (newValue)
applyBrakes (decrement)
speedUp (increment)
2009 ,ניתוח ואפיון מערכות מידע
17
Bicycle Code
class Bicycle {
//3 fields
int cadence = 0;
int speed = 0;
int gear = 1;
//4 methods
void setCadence(int newValue) {
cadence = newValue;
}
void setGear(int newValue) {
gear = newValue;
}
void speedUp(int increment) {
speed = speed + increment;
}
void applyBrakes(int decrement) {
speed = speed - decrement;
}
}
2009 ,ניתוח ואפיון מערכות מידע
18
Create and use objects
class BicycleDemo {
public static void main(String[] args) {
// Create two different Bicycle objects
Bicycle bike1 = new Bicycle();
Bicycle bike2 = new Bicycle();
// change values and invoke methods on those objects
bike1.speed = 20;
bike2.gear = 2;
bike1.setCadence(20);
bike1.speedUp(10);
bike2.setGear(3);
bike2.speedUp(12);
}
}
2009 ,ניתוח ואפיון מערכות מידע
19
תוכן ההרצאה
• מבוא ל UML
• אפיון ועיצוב מונחה עצמים
– מושגים בסיסיים
– עקרונות בסיסיים
– קשרים
20
ניתוח ואפיון מערכות מידע2009 ,
עקרונות בסיסיים של מודל העצם
.1הפשטת נתונים ()Data Abstraction
.2הכמסה ()Information Hiding/Encapsulation
.3ממשק המחלקה ()Interface
.4
.5
.6
מודולאריות )(Modularity
היררכיה /ירושה )(Inheritance/Hierarchy
פולימורפיזם ()Polymorphism
שימוש חוזר ()Reusability
.7
.8מחלקה מופשטת () Abstract class
21
ניתוח ואפיון מערכות מידע2009 ,
21
.1הפשטת נתונים Data Abstraction -
• התפיסה לפיה מתרכזים במאפייניו הרלוונטיים של העצם.
• מאפיינים:
– הצגת רק מה שחיוני למתבונן מבחוץ
– ממשקים מוגדרים היטב לעצם
• דוגמאות:
– בדוגמת האופניים בחרנו בשלושה מאפיינים והתעלמנו ממאפיינים
אחרים כמו :צבע ,משקל ,ומחיר האופניים
Bus
yearOfProdction
Capacity
color
22
ניתוח ואפיון מערכות מידע2009 ,
22
.2הכמסה Encapsulation/Information Hiding -
• התפיסה לפיה אובייקט מאחד בתוכו את מבני הנתונים
המכילים את תכונותיו ואת השיטות שאותן הוא מפעיל.
• הסתרת פרטי המימוש מהמשתמש באובייקט.
• הפרדה בין הממשק (= אוסף השירותים) ובין המימוש (מנגנון
פנימי):
– כדי להשתמש באובייקט מספיק להכיר
את הממשק שלו .אין צורך להכיר /להבין
מבנה ומנגנון פעולה פנימיים.
23
ניתוח ואפיון מערכות מידע2009 ,
23
דוגמא בקוד
public class Bicycle {
// the Bicycle class has three fields
public int cadence;
protected int gear;
private int speed;
// the Bicycle class has four methods
public void setCadence(int newValue)
{ cadence = newValue; }
public void setGear(int newValue)
{ gear = newValue; }
protected void applyBrake(int decrement)
{ speed -= decrement; }
private void speedUp(int increment)
{ speed += increment; }
}
2009 ,ניתוח ואפיון מערכות מידע
25
Create and use objects: public/private
class BicycleDemo {
public static void main(String[] args) {
// Create two different Bicycle objects
Bicycle bike1 = new Bicycle();
Bicycle bike2 = new Bicycle();
// change values and invoke methods on those objects
bike1.spead = 5;
bike2.gear = 4;
bike1.setCadence(50);
bike1.speedUp(10);
bike2.setGear(5);
bike2.speedUp(10);
}
}
2009 ,ניתוח ואפיון מערכות מידע
26
.4מודולאריות – Modularity
• "כפיית" מבניות.
• מודול "-חלק" הניתן להפרדה לוגית.
• מאפיינים:
– כל עצם (מחלקה) עוסק בפונקציונאליות מוגדרת ושונה מהשאר
– כל עצם (מחלקה) מעוצב ומיושם באופן עצמאי (עד כמה שניתן)
– יש לשאוף שעצם (מחלקה) יהיה בר שימוש חוזר ()Reusable
27
ניתוח ואפיון מערכות מידע2009 ,
27
.5היררכיה/ירושה Inheritance/Hierarchy -
• קשר (מדרגי/רשתי) בין קבוצות המבטא “העתקת” מבנה ו/או
תכונות ו/או התנהגות מקבוצה אחת (קבוצת-על) לקבוצה
אחרת (תת-מחלקה).
• תת-מחלקה יורשת יכולה להוסיף מאפיינים המיוחדים לה.
• יתרונות:
– חסכון בהגדרות ובקוד
– תיקון ועדכון קלים יותר
28
ניתוח ואפיון מערכות מידע2009 ,
28
היררכיה/ירושה
• מחלקה ב' יורשת את מחלקה א':
–
–
–
–
ב' מכילה את כל התכונות של א'
ב' מכילה את כל הפעולות של א'
ב' מכילה את כל הקשרים של א'
בנוסף ,ב' מכילה תכונות ופעולות משל עצמה
• ב' היא תת-מחלקה ( )sub-classשל א'
• סימון ב :UML-חץ חלול המסתיים במחלקת
העל.
א'
תכונות
פעולות
ב'
תכונות
פעולות
29
ניתוח ואפיון מערכות מידע2009 ,
29
'ירושה – דוגמא א/היררכיה
Person
Faculty Member
30
Administrator
Student
2009 ,ניתוח ואפיון מערכות מידע
30
היררכיה/ירושה – דוגמא ב'
חשבון בנק
מט"ח
עו"ש
עסקי
פרטי
צעירים
31
חיילים
הלוואה
בוגרים
ניתוח ואפיון מערכות מידע2009 ,
31
המשך דוגמא :אופני הרים -סוג של אופניים
נרצה לתאר מחלקה של אופני הרים שיורשת ממחלקת אופניים.
לאופני הרים יש תכונה נוספת:
• seatHeight
לאופני הרים יש שיטה נוספת:
• setSeatHeight
32
ניתוח ואפיון מערכות מידע2009 ,
32
MountainBike Class
Bicycle
.........
.........
MountainBike
seatHeight
setSeatHeight (newValue)
2009 ,ניתוח ואפיון מערכות מידע
33
הורשה בקוד
public class MountainBike extends Bicycle {
// the MountainBike subclass has one field
public int seatHeight;
// the MountainBike subclass has one method
public void setHeight(int newValue) {
seatHeight = newValue;
}
}
2009 ,ניתוח ואפיון מערכות מידע
34
protected שימוש ב
public class A {
public class B extends A{
public int z;
public int newY;
public int newX;
private int x;
protected int y;
private getY ()
{ return y;}
protected getX ()
{return x;}
public int getZ () {
z = y;
z = getX();
A a= new A();
newY = a.y;
newX = a.getX();
return z;}
}
}
2009 ,ניתוח ואפיון מערכות מידע
35
.6פולימורפיזם (רב-צורתיות) – Polymorphism
• מחלקה יורשת יכולה לרמוס שיטות שהוגדרו אצל האב.
– רמיסה מלאה
– רמיסה חלקית
• הרמיסה גורמת לריבוי צורות בעץ ההורשה עבור מימוש של
אותה שגרה.
Shape
line
Length
Color
X1
Y1
)(draw
Circle
Radius
)(draw
36
ניתוח ואפיון מערכות מידע2009 ,
36
.7שימוש חוזר Reuse -
• שילוב רכיבי תוכנה במערכת שנוצרו מחוץ למערכת.
• סוגי רכיבים לשילוב:
– פותחו עבור מערכת אחרת
– פותחו כרכיבים גנריים המיועדים מראש לשימוש חוזר
– ציבוריים
• רכיבים מסחריים "מן המדף"
• קוד פתוח ()Source Code
• אופני שימוש חוזר:
– שיתוף ( – )Sharingשימוש חוזר באותה רוטינת קוד
– שכפול ( – )Copying/Cloningהעתקת קטע קוד מתכנית אחרת
– התאמה ( – )Adjustingשימוש באבטיפוס ושילוב רכיבים שהם
Reusable
37
ניתוח ואפיון מערכות מידע2009 ,
37
.8מחלקה מופשטת
• אינה מאפשרת ליצור ממנה מופעים.
• משרתת את המכניזם של ההורשה
>>Animal<<abstract
Cat
38
ניתוח ואפיון מערכות מידע2009 ,
Dog
תוכן ההרצאה
• מבוא ל UML
• אפיון ועיצוב מונחה עצמים
– מושגים בסיסיים
– עקרונות בסיסיים
– קשרים
• סיכום
39
ניתוח ואפיון מערכות מידע2009 ,
קשרים
.1
.2
.3
.4
.5
40
קשר הקשר Association -
מחלקת קשר
קשר הכלה
קשר הכלה חזקה
קשר אסוציאטיבי עצמאי
ניתוח ואפיון מערכות מידע2009 ,
.1קשר הקשר Association -
• הקשר הפשוט ביותר.
• מבטא יחס מסוים בין אובייקטים :הכרה ,ידיעה ,שימוש.
• מסומן ע"י קו בין מחלקות
–
–
–
–
כיוון
קרדינאליות
מידת ריבוי
שם
Food
41
ניתוח ואפיון מערכות מידע2009 ,
Cat
.2מחלקת קשר
• מחלקת קשר מתארת את הקשר עצמו.
Reader
Book
Borrow
42
ניתוח ואפיון מערכות מידע2009 ,
.3קשר הכלה
• הרחבה של קשר אסוציאטיבי.
• מבטא את העובדה שמחלקה אחת היא הכלה של מחלקה
אחרת
Car
43
ניתוח ואפיון מערכות מידע2009 ,
1
wheel
*
.4קשר הכלה חזקה
• מבטא את העובדה שמחלקה אחת היא הרכבה של מחלקה
אחרת
• האובייקט החלש חי בזכות האובייקט החזק
Car
44
ניתוח ואפיון מערכות מידע2009 ,
wheel
.5קשר אסוציאטיבי עצמאי
• ניתן לתאר קשר של מחלקה אל עצמה ,לצורך פישוט
התרשים
*
employee
employee
manager
45
ניתוח ואפיון מערכות מידע2009 ,
1
תוכן ההרצאה
• מבוא ל UML
• אפיון ועיצוב מונחה עצמים
– מושגים בסיסיים
– עקרונות בסיסיים
– קשרים
• סיכום
46
ניתוח ואפיון מערכות מידע2009 ,
סיכום
לא עוד תהליכים!
אמור מעתה עצמים או אובייקטים
ונעבור ל:
Use Case diagram
47
ניתוח ואפיון מערכות מידע2009 ,