1 / 46

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

ניתוח ועיצוב מערכות מידע תעשיה וניהול, שנה ב סמסטר אביב 2009 קורס 310211 הרצאה 4 : אפיון מערכות מוכוון עצמים ד"ר דיצה ביימל Email: dizzab@ruppin.ac.il. סיכום השיעורים הקודמים. שלב הניתוח כולל: שלב הייזום, איסוף נתונים וחקר מצב קיים, הגדרת דרישות וחקר ישימות. EPC

Download Presentation

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

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. ניתוח ועיצוב מערכות מידע תעשיה וניהול, שנה בסמסטר אביב 2009קורס 310211 הרצאה 4: אפיון מערכות מוכוון עצמים ד"ר דיצה ביימלEmail: dizzab@ruppin.ac.il

  2. סיכום השיעורים הקודמים • שלב הניתוח כולל: • שלב הייזום, • איסוף נתונים וחקר מצב קיים, • הגדרת דרישות וחקר ישימות. • EPC • מודל המשמש לניתוח ותיעוד מצב קיים.

  3. סילבוס על פני ציר הזמן מבוא UML עקרונות ב OO OPM שלב הניתוח 1 2 3 4 5 6 7 8 9 10 11 12 13 14

  4. תוכן ההרצאה • מבוא ל UML • אפיון מונחה עצמים • מושגים בסיסיים • עקרונות בסיסיים • קשרים • סיכום

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

  6. ניתוח מוכוון עצמים • גישת האובייקטים עוסקת ישירות בעולם האמיתי. • מהו אובייקט? • עולמו של הלקוח בנוי מאובייקטים • חלקם פיזיים - כמו.. • חלקם לוגיים - כמו... • פיתוח מ"מ בגישה מונחית עצמים: זיהוי וארגון המחלקות לפי מושגי עולם הבעיה ולא לפי מושגי עולם המימוש • בשנת 1983 הוכרזה שפת התכנות c++ . • בשנת 1997 יצאה הגרסה הראשונה של UML- Unified Modeling Language לא עוד תהליכים! אמור מעתה עצמים או אובייקטים

  7. UML UML היא שפת מודל שבאמצעותה נוכל לאפיין ולעצב מערכות במתודולוגיה מוכוונת עצמים בצורה אחידה המקובלת בעולם היום.

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

  9. מרכיבי UML • Use case diagram • Class diagram • Sequence Diagram • Collaboration diagram • State chart diagram • Activity diagram • Deployment diagram • Component diagram • Object diagram TOTAL 9 DIAGRAMS

  10. תוכן ההרצאה • מבוא ל UML • אפיון מונחה עצמים - OOA • מושגים בסיסיים • עקרונות בסיסיים • קשרים • סיכום

  11. מושגים בסיסיים של מודל העצם • עצם (Object) • מחלקה (Class) • מופע (Instance) • תכונה (Attribute), מצב (State) • שיטה (Method/Service),

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

  13. תכונות ושיטות • תכונות(Attribute/Property) - אוסף נתונים ("שדות") המתארים את העצם. • שיטות(Service/Operation/Method) - אוסף ה"פונקציות" של המחלקה/העצם. Student Class Name Name DateofBirth Address Phone Grades Courses Attributes Student(name) Calc-average() Register-for (course) …….. Methods

  14. מופע של מחלקה: אובייקט • מופע(Instance) של מחלקה - עצם בודד של מחלקה. • לכל עצם יש: • מצב (State) - אוסף התכונות (השדות וערכיהם, קשר עם עצמים אחרים) בנקודת זמן מסוימת. • התנהגות (Behavior) - אוסף פעולותיו המייצגות כיצד העצם פועל ומגיב. • זהות (Identity) - ייחודיות. אין שני עצמים זהים.

  15. מחלקה אובייקט (מופע של מחלקה) Student Student Name:: moshe cohen DateofBirth: 1.1.79 Address: Haifa Phone:04-8888888 ………. Name DateofBirth Address Phone Grades Courses Student(name) Calc-average() Register-for (course) Student(name) Calc-average() Register-for (course) ……..

  16. תרגיל כיתה: Bicycle נרצה לתאר מחלקה של אופניים. לאופניים יש שלוש תכונות: • cadence, gear, speed לאופניים יש 4 שיטות: • setCadence, setGear, applyBrake, speedUp

  17. Bicycle Class Bicycle cadence gear Speed setCadence (newValue) setGear (newValue) applyBrakes (decrement) speedUp (increment)

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

  19. 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); } }

  20. תוכן ההרצאה • מבוא ל UML • אפיון ועיצוב מונחה עצמים • מושגים בסיסיים • עקרונות בסיסיים • קשרים

  21. עקרונות בסיסיים של מודל העצם • הפשטת נתונים (Data Abstraction) • הכמסה (Information Hiding/Encapsulation) • ממשק המחלקה (Interface) • מודולאריות (Modularity) • היררכיה/ ירושה (Inheritance/Hierarchy) • פולימורפיזם (Polymorphism) • שימוש חוזר (Reusability) • מחלקה מופשטת (Abstract class )

  22. 1. הפשטת נתונים - Data Abstraction • התפיסה לפיה מתרכזים במאפייניו הרלוונטיים של העצם. • מאפיינים: • הצגת רק מה שחיוני למתבונן מבחוץ • ממשקים מוגדרים היטב לעצם • דוגמאות: • בדוגמת האופניים בחרנו בשלושה מאפיינים והתעלמנו ממאפיינים אחרים כמו: צבע, משקל, ומחיר האופניים Bus yearOfProdction Capacity color

  23. 2. הכמסה - Encapsulation/Information Hiding • התפיסה לפיה אובייקט מאחד בתוכו את מבני הנתונים המכילים את תכונותיו ואת השיטות שאותן הוא מפעיל. • הסתרת פרטי המימוש מהמשתמש באובייקט. • הפרדה בין הממשק (= אוסף השירותים) ובין המימוש (מנגנון פנימי): • כדי להשתמש באובייקט מספיק להכיר את הממשק שלו. אין צורך להכיר / להבין מבנה ומנגנון פעולה פנימיים.

  24. דוגמא בקוד 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; } }

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

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

  27. 5. היררכיה/ירושה -Inheritance/Hierarchy • קשר (מדרגי/רשתי) בין קבוצות המבטא “העתקת” מבנה ו/או תכונות ו/או התנהגות מקבוצה אחת (קבוצת-על) לקבוצה אחרת (תת-מחלקה). • תת-מחלקה יורשת יכולה להוסיף מאפיינים המיוחדים לה. • יתרונות: • חסכון בהגדרות ובקוד • תיקון ועדכון קלים יותר

  28. א' ב' תכונות תכונות פעולות פעולות היררכיה/ירושה • מחלקה ב' יורשת את מחלקה א': • ב' מכילה את כל התכונות של א' • ב' מכילה את כל הפעולות של א' • ב' מכילה את כל הקשרים של א' • בנוסף, ב' מכילה תכונות ופעולות משל עצמה • ב' היא תת-מחלקה (sub-class)של א' • סימון ב-UML: חץ חלול המסתיים במחלקת העל.

  29. היררכיה/ירושה – דוגמא א' Person Faculty Member Administrator Student

  30. היררכיה/ירושה – דוגמא ב' חשבון בנק הלוואה מט"ח עו"ש עסקי פרטי חיילים צעירים בוגרים

  31. המשך דוגמא: אופני הרים - סוג של אופניים נרצה לתאר מחלקה של אופני הרים שיורשת ממחלקת אופניים. לאופני הרים יש תכונה נוספת: • seatHeight לאופני הרים יש שיטה נוספת: • setSeatHeight

  32. MountainBike Class MountainBike Bicycle seatHeight ......... ......... setSeatHeight (newValue)

  33. הורשה בקוד public class MountainBike extends Bicycle { // the MountainBike subclass has one field public intseatHeight; // the MountainBike subclass has one method public void setHeight(intnewValue) { seatHeight = newValue; } }

  34. שימוש ב protected 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;} } public class A { private int x; protected int y; private getY () { return y;} protected getX () {return x;} }

  35. 6. פולימורפיזם (רב-צורתיות) –Polymorphism • מחלקה יורשת יכולה לרמוס שיטות שהוגדרו אצל האב. • רמיסה מלאה • רמיסה חלקית • הרמיסה גורמת לריבוי צורות בעץ ההורשה עבור מימוש של אותה שגרה. Shape Circle line Color X1 Y1 Radius Length draw() draw()

  36. 7. שימוש חוזר - Reuse • שילוב רכיבי תוכנה במערכת שנוצרו מחוץ למערכת. • סוגי רכיבים לשילוב: • פותחו עבור מערכת אחרת • פותחו כרכיבים גנריים המיועדים מראש לשימוש חוזר • ציבוריים • רכיבים מסחריים "מן המדף" • קוד פתוח (Source Code) • אופני שימוש חוזר: • שיתוף (Sharing) – שימוש חוזר באותה רוטינת קוד • שכפול (Copying/Cloning) – העתקת קטע קוד מתכנית אחרת • התאמה (Adjusting) – שימוש באבטיפוס ושילוב רכיבים שהם Reusable

  37. 8. מחלקה מופשטת • אינה מאפשרת ליצור ממנה מופעים. • משרתת את המכניזם של ההורשה Animal<<abstract>> Cat Dog

  38. תוכן ההרצאה • מבוא ל UML • אפיון ועיצוב מונחה עצמים • מושגים בסיסיים • עקרונות בסיסיים • קשרים • סיכום

  39. קשרים • קשר הקשר -Association • מחלקת קשר • קשר הכלה • קשר הכלה חזקה • קשר אסוציאטיבי עצמאי

  40. 1. קשר הקשר -Association • הקשר הפשוט ביותר. • מבטא יחס מסוים בין אובייקטים: הכרה, ידיעה, שימוש. • מסומן ע"י קו בין מחלקות • כיוון • קרדינאליות • מידת ריבוי • שם Cat Food

  41. 2. מחלקת קשר • מחלקת קשר מתארת את הקשר עצמו. Reader Book Borrow

  42. 3. קשר הכלה • הרחבה של קשר אסוציאטיבי. • מבטא את העובדה שמחלקה אחת היא הכלה של מחלקה אחרת 1 wheel Car *

  43. 4. קשר הכלה חזקה • מבטא את העובדה שמחלקה אחת היא הרכבה של מחלקה אחרת • האובייקט החלש חי בזכות האובייקט החזק wheel Car

  44. 5. קשר אסוציאטיבי עצמאי • ניתן לתאר קשר של מחלקה אל עצמה, לצורך פישוט התרשים * employee employee 1 manager

  45. תוכן ההרצאה • מבוא ל UML • אפיון ועיצוב מונחה עצמים • מושגים בסיסיים • עקרונות בסיסיים • קשרים • סיכום

  46. סיכום לא עוד תהליכים! אמור מעתה עצמים או אובייקטים ונעבור ל: Use Case diagram

More Related