CUBS: Multivariate Sequence Classification Using Bounded Z

Download Report

Transcript CUBS: Multivariate Sequence Classification Using Bounded Z

‫ניתוח מערכות מידע א'‬
‫הרצאה ‪3‬‬
‫תכנון מונחה עצמים‬
‫תרשימי ‪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‬‬
‫‪ -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 ‬‬
‫‪ ‬ניתן לגשת מתוך המחלקה או במחלקות יורשות (נדבר בהמשך)‬
‫‪‬‬
‫‪22‬‬
‫(מסומן בעזרת הסימן ‪)#‬‬
‫‪private‬‬
‫‪public‬‬
‫‪ - private‬מאפשר גישה רק מתוך המחלקה‬
‫‪ ‬תכונות‬
‫‪‬‬
‫בדרך כלל תכונות יוגדרו ‪private‬‬
‫‪‬‬
‫ניתן לגשת לתכונות רק מתוך המחלקה‬
‫‪‬‬
‫מתודות המחלקה יכולות לגשת לתכונה‬
‫‪ ‬מתודות‬
‫‪‬‬
‫‪23‬‬
‫מתאים להגדרת מתודות המחלקה שאינן מיועדות לשימוש חיצוני‬
‫‪‬‬
‫מתודות המחלקה יכולות לגשת למתודה‬
‫‪‬‬
‫מתודות שאינן של המחלקה לא יכולות לגשת למתודה‬
‫‪‬‬
‫טוב למתודות "שרות" שהמתודות האחרות משתמשות בו‪.‬‬
‫‪ - public‬מאפשר גישה גם מחוץ למחלקה‬
‫‪ ‬תכונות‬
‫‪‬‬
‫בדרך כלל תכונות לא יוגדרו ‪public‬‬
‫‪ ‬מתודות‬
‫‪‬‬
‫‪24‬‬
‫בדרך כלל יוגדרו ‪ public‬שכן הן מיועדות לשימוש מחוץ‬
‫למחלקה‬
‫‪‬‬
‫מאפשר גישה למתודות מחוץ למחלקה‬
‫‪‬‬
‫מאפשר גישה מכל מתודות המחלקה‬
‫‪get, set‬‬
‫‪ ‬כיוון שאין גישה לתכונות המחלקה באופן ישיר‪ ,‬מקובל להגדיר‬
‫מתודות גישה לתכונות‬
‫‪ ‬מתודות אלו נקראות בשמות‬
‫‪‬‬
‫‪‬‬
‫‪ - getX‬מחזירה את ערך התכונה ‪( X‬נקרא גם ‪)accessor‬‬
‫‪ - setX‬קובע את ערך התכונה ‪( X‬נקרא גם ‪)mutator‬‬
‫‪ ‬מתודות ‪ get‬ו‪ set -‬מאפשרות גישה מבוקרת לתכונות‬
‫המחלקה‬
‫‪25‬‬
‫‪‬‬
‫ניתן להגביל טווח ערכים‬
‫‪‬‬
‫ניתן לבדוק שהערכים תקינים‬
‫‪‬‬
‫כאשר אין צורך לא נגדיר לתכונות מתודות ‪ get‬ו ‪set‬‬
‫ לתיאור‬UML ‫תרשימי‬
‫מבנה המערכת‬
object diagrams, class 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 -
public +
Customer
-name
-idNum
+getName()
+getIdNum()
+setName()
+setIdnum()
attributes
operations
(methods)
30
‫כדאי לדעת‬
‫‪ ‬רמות הגישה נקראות ב ‪Access specifiers UML‬‬
‫‪‬‬
‫ראינו כבר‬
‫‪‬‬
‫‪‬‬
‫‪private, public, protected‬‬
‫קיים גם ‪package‬‬
‫‪‬‬
‫‪‬‬
‫פירושו שניתן לגשת מתוך חבילת ה ‪UML‬‬
‫יסומן ב ~‬
‫‪ ‬הערות ב‪ UML‬מופיעות בתוך סימון של פתקית‪:‬‬
‫‪This is a comment, also called a note‬‬
‫‪31‬‬
‫מעבדה‬
‫‪ ‬עבודה עם ‪UML‬ב ב ‪VISIO‬‬
‫‪32‬‬