Presentation is loading. Please wait.

Presentation is loading. Please wait.

ניתוח מערכות מידע א' הרצאה 3

Similar presentations


Presentation on theme: "ניתוח מערכות מידע א' הרצאה 3"— Presentation transcript:

1 ניתוח מערכות מידע א' הרצאה 3
תכנון מונחה עצמים תרשימי UML

2 UML מה זה UML?

3 UML – Unified Modeling Language
פותחה בשנות ה-90 ע"י Booch, Jacobson, Rumbaugh UMLהיא שפה וויזואלית לניתוח מערכות. מתאימה למידול מונחה עצמים משתמשת בסימנים גרפים לתיאור המערכת לשפה יש מספר סוגי מודלים המתארים: עצמים - הנתונים הסטטים האינטראקציה בין העצמים מצבי המערכת

4 תרשימי UML ישנם 9 סוגים של תרשימי UML
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 מבנה המערכת class diagrams object 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 Use Case Diagram - דוגמא
Actor Use Cases

9 Use Case Diagram – עוד הערות
קבוצת use cases בעלי אותו נושא מקובצים יחדיו ונקראים subject (נושא). Actor יכול להתיחס לuse case בודד, או ל- subject. Use Case משמשים לתיאור הדרישות של המערכת בהמשך יהוו בסיס להגדרת תרשימים אחרים שני יחסים מיוחדים משמשים לקישו בין שני use case: <<extend>> הרחבה של use case משתמשים כאשר לuse case יש מספר הרחבות אפשריות <<include>>, נקרא גם <<uses>> הכלה של use case משתמשים כאשר יש פעילות שמשותפת להרבה use case

10 Use Case Diagram – דוגמא מורחבת

11 Use Case - תיעוד חשוב לתעד את התרשים. מקובל לתעד עבור כל use case
תיאור קצר רשימת השחקנים (actors) המעורבים תנאים שיש לקיים לפני ביצוע הפעולה תיאור מפורט של אופן ביצוע הפעולה תיאור של מצב המערכת בסוף התהליך התיעוד לא בהכרח יכתב כולו בתחילת תהליך התכנון אלא יתפתח לאורך התכנון

12 Use Case - תרגול יש דוגמאות בספר של BENNET עמ 155 ועמ 156
אפשר להשתמש ולממש

13 תכנון מונחה עצמים על קצה המזלג...

14 מהו תכנון מונחה עצמים העולם מיוצג ע"י עצמים (אוביקטים, objects).
לעצמים יש מצב (attributes) מתואר ע"י תכונות שונות. לעצמים יש התנהגויות (methods) מה שאוביקט יכול לעשות מה שאפשר לעשות עם אוביקט תבנית המתארת את העצם נקראת מחלקה (class) מימוש של עצם מסויים נרקא עצם או אוביקט (object)

15 דוגמא - מחקלה לניהול חשבון בנק
חשבון בנק – הגדרת המחלקה תכונות (attributes) שם בעל החשבון יתרה פעולות (methods) משיכה הפקדה בירור יתרה

16 חשבון הבנק – מחלקה ואוביקט
אוביקטים (המימוש) מחלקה (הרעיון/תבנית) שם אוביקט שם מחלקה שם מחלקה תכונות + ערכים תכונות פעולות

17 עקרונות בתכנון מונחה עצמים
תכנון מונחה עצמים תומך בעקרונות הבאים הכמסה – encapsulation ירושה – inheritance פולימורפיזם‎ - polymorphism נלמד עכשיו נלמד בהמשך

18 מהי הכמסה (encapsulation)
אפשר להסתכל על מחלקה בשני אופנים פנימי – הפרטים של המחלקה, התכונות והפעולות שלה חיצוני – השירותים שהמחלקה מספקת פנימי חיצוני

19 הכמסה (המשך) ראינו ששימוש במחלקה נעשה ע"י יצירת אוביקט.
בעזרת האוביקט ניתן להשתמש בשירותי המחלקה בעת שימוש בשירותי המחלקה דרך האוביקט אין צורך לדעת כיצד מבוצע השירות שינויים לתכונות המחלקה יבוצעו רק ע"י מתודות המחלקה רצוי שיהיה בלתי אפשרי לבצע שינוי חיצוני לתכונות נחשוב על אוביקט כקופסא שחורה המנוהלת רק דרך מתודות

20 הכמסה (המשך) מתודות לקוח מחלקה תכונות

21 רמות גישה - להשגת הכמסה Private ניתן לגשת אך ורק מתוך המחלקה
מסומן בעזרת הסימן - Public ניתן לגשת מבל מקום (בחבילה) גם מתוך המחלקה וגם מבחוץ מסומן בעזרת הסימן + Protected ניתן לגשת מתוך המחלקה או במחלקות יורשות (נדבר בהמשך) (מסומן בעזרת הסימן #) private public

22 private - מאפשר גישה רק מתוך המחלקה
תכונות בדרך כלל תכונות יוגדרו private ניתן לגשת לתכונות רק מתוך המחלקה מתודות המחלקה יכולות לגשת לתכונה מתודות מתאים להגדרת מתודות המחלקה שאינן מיועדות לשימוש חיצוני מתודות המחלקה יכולות לגשת למתודה מתודות שאינן של המחלקה לא יכולות לגשת למתודה טוב למתודות "שרות" שהמתודות האחרות משתמשות בו.

23 public - מאפשר גישה גם מחוץ למחלקה
תכונות בדרך כלל תכונות לא יוגדרו public מתודות בדרך כלל יוגדרו public שכן הן מיועדות לשימוש מחוץ למחלקה מאפשר גישה למתודות מחוץ למחלקה מאפשר גישה מכל מתודות המחלקה

24 get, set כיוון שאין גישה לתכונות המחלקה באופן ישיר, מקובל להגדיר מתודות גישה לתכונות מתודות אלו נקראות בשמות getX - מחזירה את ערך התכונה X (נקרא גם accessor) setX - קובע את ערך התכונה X (נקרא גם mutator) מתודות get ו- set מאפשרות גישה מבוקרת לתכונות המחלקה ניתן להגביל טווח ערכים ניתן לבדוק שהערכים תקינים כאשר אין צורך לא נגדיר לתכונות מתודות get ו set

25 תרשימי UML לתיאור מבנה המערכת
class diagrams object diagrams,

26 Class Diagram - הגדרה בתרשים Class Diagram מציגים את המצב הסטטי של המערכת ושל פעולות המתבצעות בה הרכיבים בתרשים: מחלקות תכונות (attributes) פעולות (נקראות גם מתודותmethods or operations) () יחסים בין המחלקות association, aggregation, composition, generalization לרב תרשים Class נוצר במקביל לתרשים Use Case

27 הגדרת מחלקות – כיצד? נגדיר כמחלקה כל ישות במערכת
כל שחקן (actor) יהווה מחלקה לקוח, פקיד אוסף תהליכים עם קישור לוגי יהווה מחלקה חשבון בנק דוגמאות נוספות ממשק למשתמש ישות שמתקשרת עם גורמי מידע חיצוניים ישות האחראית על משאבים

28 Class Diagram - דוגמא נגדיר מחלקה עבור לקוח בבנק.
נקרא לו Customer ללקוח יש מספר ת"ז, שם וכו' אלו התכונות (attributes) של המחלקה נרצה לייצא את המידע על התכונות של הלקוח גם למחלקות אחרות, ולאפשר עידכון שלהם לשם כך נגדיר מתודות כמו getName, setName נראה איך המחלקה תיוצג ב class diagram.

29 תרשים של מחלקה מחלקה של לקוח, כמו שיראה ב Class Diagram: private -
attributes operations (methods) public +

30 כדאי לדעת רמות הגישה נקראות ב UML Access specifiers
ראינו כבר private, public, protected קיים גם package פירושו שניתן לגשת מתוך חבילת ה UML יסומן ב ~ הערות בUML מופיעות בתוך סימון של פתקית:

31 מעבדה עבודה עם UML ב ב VISIO


Download ppt "ניתוח מערכות מידע א' הרצאה 3"

Similar presentations


Ads by Google