סיכום השיעורים הקודמים

46
1 Spring 2005 Specification and Analysis of Information Systems תתתתת תתתתתת תתתתתת תתתת תתתתת תתתתתת, תתת ת תתתתת תתתתתת, תתת ת תתתתת תתתת תתתתת תתתת2009 2009 תתתת תתתת310211 310211 תתתתת תתתתת4 4 : : תתתתת תתתתתת תתתתתת תתתתת תתתתת תתתתתת תתתתתת תתתתת תתתת תתתתת ת"ת תתתת תתתתת ת"תEmail Email : : [email protected]

Upload: cassidy-rosales

Post on 30-Dec-2015

76 views

Category:

Documents


4 download

DESCRIPTION

ניתוח ועיצוב מערכות מידע תעשיה וניהול, שנה ב סמסטר אביב 2009 קורס 310211 הרצאה 4 : אפיון מערכות מוכוון עצמים ד"ר דיצה ביימל Email: [email protected]. סיכום השיעורים הקודמים. שלב הניתוח כולל: שלב הייזום, איסוף נתונים וחקר מצב קיים, הגדרת דרישות וחקר ישימות. EPC - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: סיכום השיעורים  הקודמים

1Spring 2005Specification and Analysis of Information Systems

ניתוח ועיצוב מערכות מידע תעשיה וניהול, שנה בתעשיה וניהול, שנה ב

20092009סמסטר אביב סמסטר אביב 310211310211קורס קורס

: : 44 הרצאה הרצאה אפיון מערכות מוכוון עצמים אפיון מערכות מוכוון עצמים

ד"ר דיצה ביימלד"ר דיצה ביימלEmailEmail : :[email protected]

Page 2: סיכום השיעורים  הקודמים

2009ניתוח ואפיון מערכות מידע, 2

סיכום השיעורים הקודמיםסיכום השיעורים הקודמים

שלב הניתוח כולל: •

שלב הייזום,–

איסוף נתונים וחקר מצב קיים,–

הגדרת דרישות וחקר ישימות.–

•EPC

מודל המשמש לניתוח ותיעוד מצב –

קיים.

Page 3: סיכום השיעורים  הקודמים

2009ניתוח ואפיון מערכות מידע, 3

סילבוס על פני ציר הזמןסילבוס על פני ציר הזמן

עקרונות

OOב שלב הניתוח

UML

1 2 3 4 5 6 7 8 9 10 12 13 1411

מבוא

OPM

Page 4: סיכום השיעורים  הקודמים

2009ניתוח ואפיון מערכות מידע, 4

תוכן ההרצאהתוכן ההרצאה

UMLמבוא ל •

אפיון מונחה עצמים•

מושגים בסיסיים–

עקרונות בסיסיים–

קשרים–

סיכום•

Page 5: סיכום השיעורים  הקודמים

2009ניתוח ואפיון מערכות מידע, 5

מוטיבציהמוטיבציה

– –20012001דוח מבקר המדינה לשנת דוח מבקר המדינה לשנת

מכלל פרויקטי התוכנה מסתיימים בהצלחה מכלל פרויקטי התוכנה מסתיימים בהצלחה13%13%

בעיות בפיתוח מערכות:אין מספיק שימוש חוזר בקוד•מציאת בגים•ריבוי שיטות סימון•המערכות גדלות ונעשות מורכבות•

Page 6: סיכום השיעורים  הקודמים

2009ניתוח ואפיון מערכות מידע, 6

ניתוח מוכוון עצמיםניתוח מוכוון עצמים

גישת האובייקטים עוסקת ישירות בעולם האמיתי.•מהו אובייקט? •עולמו של הלקוח בנוי מאובייקטים•

חלקם פיזיים - כמו..–

חלקם לוגיים - כמו...–

לפי פיתוח מ"מ בגישה מונחית עצמים: זיהוי וארגון המחלקות •ולא לפי מושגי עולם המימושמושגי עולם הבעיה

. ++c הוכרזה שפת התכנות 1983בשנת • -UML יצאה הגרסה הראשונה של 1997בשנת •

Unified Modeling Language

לא עוד תהליכים!

אמור מעתה עצמים או אובייקטים

Page 7: סיכום השיעורים  הקודמים

2009ניתוח ואפיון מערכות מידע, 7

UMLUML

UML היא שפת מודל שבאמצעותה נוכל לאפיין

ולעצב מערכות במתודולוגיה מוכוונת עצמים בצורה

.אחידה המקובלת בעולם היום

Page 8: סיכום השיעורים  הקודמים

2009ניתוח ואפיון מערכות מידע, 8

UMLUMLמטרות מטרות

אחידות•

מסגרת•

פשוט ופרקטי•

מחזור חיי מערכת•

פרויקטים בסדר גודל ענק•

חוסר תלות בטכנולוגיה•

שפה המתאימה לכולם•

הפרדה בין שלבי פיתוח המערכת•

Page 9: סיכום השיעורים  הקודמים

2009ניתוח ואפיון מערכות מידע, 9

UMLUMLמרכיבי מרכיבי

1. Use case diagram

2. Class diagram

3. Sequence Diagram

4. Collaboration diagram

5. State chart diagram

6. Activity diagram

7. Deployment diagram

8. Component diagram

9. Object diagram

TOTAL 9 DIAGRAMS

Page 10: סיכום השיעורים  הקודמים

2009ניתוח ואפיון מערכות מידע, 10

תוכן ההרצאהתוכן ההרצאה

UMLמבוא ל •

OOAאפיון מונחה עצמים - •

מושגים בסיסיים–

עקרונות בסיסיים–

קשרים–

סיכום•

Page 11: סיכום השיעורים  הקודמים

200911ניתוח ואפיון מערכות מידע, 11

(Object )עצם•

(Class )מחלקה•

(Instance )מופע•

(State )מצב(, Attribute )תכונה•

(, Method/Service )שיטה•

מושגים בסיסיים של מודל העצםמושגים בסיסיים של מודל העצם

Page 12: סיכום השיעורים  הקודמים

200912ניתוח ואפיון מערכות מידע, 12

( – תבנית ממנה ניתן לייצר אובייקטים. Class) מחלקהמחלקה•

הוראות הכנה מחלקה אינה קיימת באמת. היא רק •לפעילות מסוימת.

קבוצת עצמים בעלי מאפיינים משותפים )תכונות, •פעולות, יחסים, התנהגות( שייכים לאותה מחלקה.

מחלקה היא הפשטה של אובייקט ממשי.•

.שם, תכונות, ושיטותלמחלקה יש •

מופעיםלמחלקה מוחשית יש •.האובייקטיםשהם

מחלקהמחלקה

Page 13: סיכום השיעורים  הקודמים

200913ניתוח ואפיון מערכות מידע, 13

(Attribute/Property) תכונותתכונות•- אוסף נתונים )"שדות"(

המתארים את העצם. שיטותשיטות•

(Service/Operation/Method) - אוסף ה"פונקציות" של

המחלקה/העצם.

Student

NameDateofBirth

AddressPhoneGradesCourses

Student)name(Calc-average)(

Register-for )course(……..

Class Name

Attributes

Methods

תכונות ושיטותתכונות ושיטות

Page 14: סיכום השיעורים  הקודמים

200914ניתוח ואפיון מערכות מידע, 14

( של מחלקה - עצם בודד של מחלקה.Instance) מופעמופע•

לכל עצם יש:•( - אוסף התכונות )השדות וערכיהם, קשר עם State )מצב–

עצמים אחרים( בנקודת זמן מסוימת.( - אוסף פעולותיו המייצגות כיצד Behavior )התנהגות–

העצם פועל ומגיב.( - ייחודיות. אין שני עצמים זהים.Identity )זהות–

מופע של מחלקה: אובייקטמופע של מחלקה: אובייקט

Page 15: סיכום השיעורים  הקודמים

200915ניתוח ואפיון מערכות מידע, 15

)מופע של מחלקה( )מופע של מחלקה( אובייקטאובייקט מחלקה מחלקה

Student

Name:: moshe cohenDateofBirth: 1.1.79

Address: HaifaPhone:04-8888888

……….

Student)name(Calc-average)(

Register-for )course(

Student

NameDateofBirth

AddressPhoneGradesCourses

Student)name(Calc-average)(

Register-for )course(……..

Page 16: סיכום השיעורים  הקודמים

200916ניתוח ואפיון מערכות מידע, 16

BicycleBicycle: : תרגיל כיתהתרגיל כיתה

נרצה לתאר מחלקה של אופניים.

לאופניים יש שלוש תכונות:• cadence, gear, speed

שיטות: 4לאופניים יש • setCadence, setGear, applyBrake, speedUp

Page 17: סיכום השיעורים  הקודמים

2009ניתוח ואפיון מערכות מידע, 17

Bicycle ClassBicycle Class

Bicycle

cadencegear

Speed

setCadence )newValue)setGear )newValue)

applyBrakes )decrement) speedUp )increment)

Page 18: סיכום השיעורים  הקודמים

2009ניתוח ואפיון מערכות מידע, 18

Bicycle CodeBicycle 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; }}

Page 19: סיכום השיעורים  הקודמים

2009ניתוח ואפיון מערכות מידע, 19

Create and use objectsCreate 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); }}

Page 20: סיכום השיעורים  הקודמים

2009ניתוח ואפיון מערכות מידע, 20

תוכן ההרצאהתוכן ההרצאה

UMLמבוא ל •

אפיון ועיצוב מונחה עצמים•

מושגים בסיסיים–

עקרונות בסיסיים–

קשרים–

Page 21: סיכום השיעורים  הקודמים

200921ניתוח ואפיון מערכות מידע, 21

(Data Abstraction)הפשטת נתונים 1.

(Information Hiding/Encapsulation)הכמסה 2.

(Interfaceממשק המחלקה )3.

(Modularity)מודולאריות 4.

(Inheritance/Hierarchy)היררכיה/ ירושה 5.

(Polymorphism )פולימורפיזם6.

(Reusability )שימוש חוזר7.

(Abstract classמחלקה מופשטת )8.

עקרונות בסיסיים של מודל העצםעקרונות בסיסיים של מודל העצם

Page 22: סיכום השיעורים  הקודמים

200922ניתוח ואפיון מערכות מידע, 22

התפיסה לפיה מתרכזים במאפייניו הרלוונטיים של העצם.•

מאפיינים:•הצגת רק מה שחיוני למתבונן מבחוץ–ממשקים מוגדרים היטב לעצם–

דוגמאות:•בדוגמת האופניים בחרנו בשלושה מאפיינים והתעלמנו ממאפיינים –

אחרים כמו: צבע, משקל, ומחיר האופניים

Data AbstractionData Abstraction. הפשטת נתונים - . הפשטת נתונים - 11

BusyearOfProdction

Capacitycolor

Page 23: סיכום השיעורים  הקודמים

200923ניתוח ואפיון מערכות מידע, 23

התפיסה לפיה אובייקט מאחד בתוכו את מבני הנתונים •המכילים את תכונותיו ואת השיטות שאותן הוא מפעיל.

הסתרת פרטי המימוש מהמשתמש באובייקט. •

הפרדה בין הממשק )= אוסף השירותים( ובין המימוש •)מנגנון פנימי(:

באובייקט מספיק להכיר כדי להשתמש–את הממשק שלו. אין צורך להכיר / להבין

מבנה ומנגנון פעולה פנימיים.

Encapsulation/Information HidingEncapsulation/Information Hiding. הכמסה - . הכמסה - 22

Page 24: סיכום השיעורים  הקודמים

2009ניתוח ואפיון מערכות מידע, 25

בקוד בקוד דוגמאדוגמא

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; }

}

Page 25: סיכום השיעורים  הקודמים

2009ניתוח ואפיון מערכות מידע, 26

Create and use objects: public/privateCreate 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); }}

Page 26: סיכום השיעורים  הקודמים

200927ניתוח ואפיון מערכות מידע, 27

"כפיית" מבניות.•

"חלק" הניתן להפרדה לוגית.- מודול •

מאפיינים:•כל עצם )מחלקה( עוסק בפונקציונאליות מוגדרת ושונה מהשאר–כל עצם )מחלקה( מעוצב ומיושם באופן עצמאי )עד כמה שניתן(– (Reusable)יש לשאוף שעצם )מחלקה( יהיה בר שימוש חוזר –

ModularityModularity. מודולאריות – . מודולאריות – 44

Page 27: סיכום השיעורים  הקודמים

200928ניתוח ואפיון מערכות מידע, 28

קשר )מדרגי/רשתי( בין קבוצות המבטא “העתקת” מבנה •ו/או תכונות ו/או התנהגות מקבוצה אחת )קבוצת-על(

לקבוצה אחרת )תת-מחלקה(.

תת-מחלקה יורשת יכולה להוסיף מאפיינים המיוחדים •לה.

יתרונות:•חסכון בהגדרות ובקוד–תיקון ועדכון קלים יותר–

Inheritance/HierarchyInheritance/Hierarchy . היררכיה/ירושה -. היררכיה/ירושה -55

Page 28: סיכום השיעורים  הקודמים

200929ניתוח ואפיון מערכות מידע, 29

מחלקה ב' יורשת את מחלקה א':•ב' מכילה את כל התכונות של א'–ב' מכילה את כל הפעולות של א'–ב' מכילה את כל הקשרים של א'–בנוסף, ב' מכילה תכונות ופעולות משל עצמה–

של א'(sub-class)ב' היא תת-מחלקה •: חץ חלול המסתיים במחלקת UMLסימון ב-•

העל.

א'

תכונות

פעולות

ב'

תכונות

פעולות

היררכיה/ירושה היררכיה/ירושה

Page 29: סיכום השיעורים  הקודמים

200930ניתוח ואפיון מערכות מידע, 30

היררכיה/ירושה – דוגמא א'היררכיה/ירושה – דוגמא א'

Person

Faculty Member Administrator Student

Page 30: סיכום השיעורים  הקודמים

200931ניתוח ואפיון מערכות מידע, 31

היררכיה/ירושה – דוגמא ב'היררכיה/ירושה – דוגמא ב'

חשבון בנק

הלוואה מט"ח עו"ש

עסקיפרטי

בוגריםצעירים חיילים

Page 31: סיכום השיעורים  הקודמים

200932ניתוח ואפיון מערכות מידע, 32

המשך דוגמא: אופני הרים - סוג של אופנייםהמשך דוגמא: אופני הרים - סוג של אופניים

נרצה לתאר מחלקה של אופני הרים שיורשת ממחלקת אופניים.

לאופני הרים יש תכונה נוספת:• seatHeight

לאופני הרים יש שיטה נוספת: • setSeatHeight

Page 32: סיכום השיעורים  הקודמים

2009ניתוח ואפיון מערכות מידע, 33

MountainBike ClassMountainBike Class

MountainBike seatHeight

setSeatHeight )newValue)

Bicycle .........

.........

Page 33: סיכום השיעורים  הקודמים

2009ניתוח ואפיון מערכות מידע, 34

הורשה בקודהורשה בקוד

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; } 

}

Page 34: סיכום השיעורים  הקודמים

2009ניתוח ואפיון מערכות מידע, 35

protectedprotectedשימוש ב שימוש ב

public class A {

private int x;

protected int y;

private getY ()

{ return y;}

protected getX ()

{return x;}

}

public class B extends A{

public int z;

public int newY;

public int newX;

public int getZ () {

z = y;

z = getX();

A a= new A();

newY = a.y;

newX = a.getX();

return z;}

}

Page 35: סיכום השיעורים  הקודמים

200936ניתוח ואפיון מערכות מידע, 36

מחלקה יורשת יכולה לרמוס שיטות שהוגדרו אצל האב.•רמיסה מלאה–רמיסה חלקית–

הרמיסה גורמת לריבוי צורות בעץ ההורשה עבור מימוש •של אותה שגרה.

PolymorphismPolymorphism. פולימורפיזם )רב-צורתיות( –. פולימורפיזם )רב-צורתיות( –66

Shape

ColorX1

Y1

draw)(Circle

Radius

draw)(

line

Length

Page 36: סיכום השיעורים  הקודמים

200937ניתוח ואפיון מערכות מידע, 37

שילוב רכיבי תוכנה במערכת שנוצרו מחוץ למערכת.•סוגי רכיבים לשילוב:•

פותחו עבור מערכת אחרת–פותחו כרכיבים גנריים המיועדים מראש לשימוש חוזר–ציבוריים–

רכיבים מסחריים "מן המדף"•(Source Codeקוד פתוח )•

אופני שימוש חוזר:• – שימוש חוזר באותה רוטינת קוד(Sharing)שיתוף – – העתקת קטע קוד מתכנית אחרת(Copying/Cloning)שכפול – – שימוש באבטיפוס ושילוב רכיבים שהם (Adjusting)התאמה –

Reusable

ReuseReuse. שימוש חוזר - . שימוש חוזר - 77

Page 37: סיכום השיעורים  הקודמים

2009ניתוח ואפיון מערכות מידע, 38

. מחלקה מופשטת. מחלקה מופשטת88

אינה מאפשרת ליצור ממנה מופעים.•

משרתת את המכניזם של ההורשה•

Animal<<abstract<<

CatDog

Page 38: סיכום השיעורים  הקודמים

2009ניתוח ואפיון מערכות מידע, 39

תוכן ההרצאהתוכן ההרצאה

UMLמבוא ל •

אפיון ועיצוב מונחה עצמים•

מושגים בסיסיים–

עקרונות בסיסיים–

קשרים–

סיכום•

Page 39: סיכום השיעורים  הקודמים

2009ניתוח ואפיון מערכות מידע, 40

קשריםקשרים

Association -קשר הקשר 1.

מחלקת קשר2.

קשר הכלה3.

קשר הכלה חזקה4.

קשר אסוציאטיבי עצמאי5.

Page 40: סיכום השיעורים  הקודמים

2009ניתוח ואפיון מערכות מידע, 41

AssociationAssociation - -. קשר הקשר . קשר הקשר 11

הקשר הפשוט ביותר. •

מבטא יחס מסוים בין אובייקטים: הכרה, ידיעה, שימוש.•

מסומן ע"י קו בין מחלקות•כיוון–קרדינאליות–מידת ריבוי–שם–

Cat Food

Page 41: סיכום השיעורים  הקודמים

2009ניתוח ואפיון מערכות מידע, 42

. מחלקת קשר. מחלקת קשר22

מחלקת קשר מתארת את הקשר עצמו.•

Reader Book

Borrow

Page 42: סיכום השיעורים  הקודמים

2009ניתוח ואפיון מערכות מידע, 43

. קשר הכלה . קשר הכלה 33

הרחבה של קשר אסוציאטיבי. •

מבטא את העובדה שמחלקה אחת היא הכלה של •מחלקה אחרת

wheel Car1

*

Page 43: סיכום השיעורים  הקודמים

2009ניתוח ואפיון מערכות מידע, 44

. קשר הכלה חזקה . קשר הכלה חזקה 44

wheel Car

מבטא את העובדה שמחלקה אחת היא הרכבה של •מחלקה אחרת

האובייקט החלש חי בזכות האובייקט החזק•

Page 44: סיכום השיעורים  הקודמים

2009ניתוח ואפיון מערכות מידע, 45

. קשר אסוציאטיבי עצמאי . קשר אסוציאטיבי עצמאי 55

ניתן לתאר קשר של מחלקה אל עצמה, לצורך פישוט •התרשים

employee

manager

employee

1

*

Page 45: סיכום השיעורים  הקודמים

2009ניתוח ואפיון מערכות מידע, 46

תוכן ההרצאהתוכן ההרצאה

UMLמבוא ל •

אפיון ועיצוב מונחה עצמים•

מושגים בסיסיים–

עקרונות בסיסיים–

קשרים–

סיכום•

Page 46: סיכום השיעורים  הקודמים

2009ניתוח ואפיון מערכות מידע, 47

סיכוםסיכום

לא עוד תהליכים!אמור מעתה עצמים או אובייקטים

ונעבור ל:Use Case diagram