ניתוח מונחה-עצמים Object Oriented Analysis

Slides:



Advertisements
Similar presentations
Completeness and Expressiveness. תזכורת למערכת ההוכחה של לוגיקה מסדר ראשון : אקסיומות 1. ) ) (( 2. )) ) (( )) ( ) ((( 3. ))) F( F( ( 4. ) v) ( ) v ((
Advertisements

Object Oriented 33 MCSD DORON AMIR
ממיבחניםC שאלות ++.
תוכנה 1 סמסטר א ' תשע " ב תרגול מס ' 7 * מנשקים, דיאגרמות וביטים * לא בהכרח בסדר הזה.
בתרגול הקודם הורשה: –ניתן להרחיב רק מחלקה אחת –כל מה שלא private – עובר בהורשה –המילה השמורה super –יצירת היררכיה –Object היא שורש ההיררכיה –דריסה אופרטור.
1 Formal Specifications for Complex Systems (236368) Tutorial #4 Refinement in Z: data refinement; operations refinement; their combinations.
תרשימי DFD ד"ר אבי רוזנפלד. Kendall & Kendall © 2005 Pearson Prentice Hall 7-2 הסימנים הבסיסיים.
טבלאות סמלים נכתב ע"י אלכס קוגן סמסטר חורף, תשס"ח.
© , ד"ר עמיר תומר שיטות בהנדסת תוכנה (234321) אודות הקורס - 1 שיטות בהנדסת תוכנה Introduction to Software Engineering מרצה: פרופ’ שמואל.
מבוא Introduction מקורות: S. R. Schach: Chapters 1-2
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב'
מתמטיקה בדידה תרגול 3.
מודלים של מחזור חיי תוכנה Software Life-Cycle Models
אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 10 Packages.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
מכון ויצמן למדע - שמוליק מתוך 8 חישוב מקבילי ומבוזר מה זה יחידה חמישית במדעי המחשב... n ענף מתקדם במדעי המחשב העוסק במערכות ממוחשבות מרובות ישויות.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
מבוא להנדסת תוכנה דרישות - 1 הגדרת דרישות וניהולן Requirements Definition and Management.
1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations.
UML Interaction Diagrams
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי Software Design.
Theme UML Extending UML to treat aspects Presented by Moran Birenbaum.
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 6 DIP דוגמאות נוספות.
רישום חומרי למידה והסטנדרט הישראלי: ISRACORE יהודית בר אילן, אוניברסיטת בר-אילן אלי שמואלי, מיט"ל.
מבני בקרה לולאות. שאלה #1 שאלה ב' – תכתוב תוכנה הכותבת את תפריט הבאה Type 1 to find the area of a circle Type 2 to find the circumference of a circle.
2. תרשימי ER שקפים: אלדר פישר עריכה ותוספות: אמיר שפילקה
הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353)
משטר דינמי – © Dima Elenbogen :14. הגדרת cd ו -pd cd - הזמן שעובר בין הרגע שראשון אותות הכניסה יוצא מתחום לוגי עד אשר אות המוצא יוצא מתחום.
עקרון ההכלה וההדחה.
יחס סדר חלקי.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב' Templates תבניות.
תחשיב היחסים (הפרדיקטים)
מבוא למדעי המחשב, סמסטר א ', תשע " א תרגול מס ' 1 נושאים  הכרת הקורס  פסאודו - קוד / אלגוריתם 1.
© , ד"ר עמיר תומר שיטות בהנדסת תוכנה (234321) אודות הקורס - 1 שיטות בהנדסת תוכנה Introduction to Software Engineering מרצה : פרופ ’ שמואל.
UML an overview Compiled by:Dr. Avi Rosenfeld Based on:
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 7 ISP דוגמא נוספת.
תרשים המחלקות ותרשים העצמים 1. חלק שלישי: ניתוח ועיצוב מערכות מידע באמצעות שימוש ב-UML ומתודולוגיית ה-Unified Process (UP) E1 3 E2 2.
מטא-מודלים Metamodels. מטא-מודל - דגשים לפתרון לקרוא את הכל – זה ארוך אבל הכל נמצא בפנים ! להסתכל על התרשימים הויזואליים ולראות מה מזהים. לקשר בין התמונה.
CIT UPES | Sept 2013 | Unified Modeling Language - UML.
Unified Modeling Language, Version 2.0
UML What Is the UML? The Unified Modeling Language (UML) is the successor to the wave of object- oriented analysis and design (OOA&D) methods.
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
Methods public class Demonstrate { public static void main (String argv[]) { public static void main (String argv[]) { int script = 6, acting = 9, directing.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
1 Deployment Diagram. 2 הדיאגרמות 3 אבני יסוד: דיאגרמות פריסת התוכנה על גבי החומרה PackageDiagram “חבילות עבודה” מקרא: מודל סטטי מודל דינמי מודל ניהולי.
1 Package Diagram. 2 הדיאגרמות 3 אבני יסוד: דיאגרמות פריסת התוכנה על גבי החומרה PackageDiagram “חבילות עבודה” מקרא: מודל סטטי מודל דינמי מודל ניהולי.
1 Unified Modeling Language, Version 2.0 Chapter 2.
1 תרגול 11: Design Patterns ומחלקות פנימיות אסף זריצקי ומתי שמרת 1 תוכנה 1.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site:
עקרונות תכנות מונחה עצמים תרגול 11: OOP in C++. Outline  Where do the objects live ?  Inheritance  Slicing  Overriding vs Shadowing.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 5 תרשימי מצבים Statecharts למחלקות תגובתיות Reactive Classes הקדמה ודוגמא.
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
Object Oriented Programming
Object Oriented Programming
Object Oriented Programming
מערכות בסיסי נתונים ספרות Database System Concepts/ Korth, Siberschatz
תכן UML in Design מקורות: S. R. Schach: Chapter 12
עבודה עם נתונים באמצעות ADO.NET
ממשקים - interfaces איך לאפשר "הורשה מרובה".
אפיון ועיצוב מערכות מוכוון עצמים
ניתוח מערכות מידע א' הרצאה 1
שפת c# הלכה למעשה צעדים ראשונים רחל קורדובה עמל מקיף ג ראשל"צ.
ניתוח מערכות מידע תכנות ב C#
Shell Scripts בסביבת UNIX
2. דיאגראמות ישויות קשרים ERD (מבוסס על השקפים של אלדר פישר)
פולימורפיזם מתקדם ממשקים בC# עריכה ועיצוב: קרן הרדי
Presentation transcript:

ניתוח מונחה-עצמים Object Oriented Analysis אפיון מונחה עצמים מבוא להנדסת תוכנה ניתוח מונחה-עצמים Object Oriented Analysis © 1999-2001, ד"ר עמיר תומר מקורות: S. R. Schach: Chapter 11 R. S. Pressman: Chapter 20 מבוא להנדסת תוכנה © 1999-2001, ד"ר עמיר תומר

שיטות בהנדסת תוכנה - תוכנית הקורס מבוא מודלים של מחזור חיי תוכנה הגדרת דרישות וניהולן ניתוח קלאסי ניתוח מונחה-עצמים תכן אימות ותקפות © 1999-2001, ד"ר עמיר תומר קידוד ובדיקות יחידה מימוש ושילוב אחזקה והנדסה מחדש הבטחת איכות תוכנה מבוא להנדסת תוכנה

מה עומד על הפרק? התבנית מונחית-העצמים (OO paradigm) שפת הניתוח והתכן UML ניתוח מונחה עצמים מודל מקרי-שימוש (Use-Case) המודל הסטטי: המחלקות החיצוניים המודל הדינמי: מכונת המצבים החיצוניים (לתכן?) המודל הניהולי: תרשים חבילות (לתכן?) © 1999-2001, ד"ר עמיר תומר מבוא להנדסת תוכנה

תבנית מונחית עצמים (Object Oriented paradigm) מושגי יסוד ישות בדידה גבולות וזיהוי מוגדרים מכיל בתוכו (encapsulates) מצב והתנהגות מצב = מבני נתונים - data members, attributes התנהגות = פעולות / פונקציות - member functions, methods מחלקה (class) מתאר (descriptor) של קבוצת עצמים,בעלי מאפיינים משותפים: תכונות פעולות יחסים התנהגות © 1999-2001, ד"ר עמיר תומר מבוא להנדסת תוכנה

תוכנה מבנית (structured) [קלאסית] הפרדת המידע (data) מהפונקציונליות ביצוע התכנית “עץ” קריאות בין מודלים כל מודול מבצע מניפולציות על המידע תכנית מבנית (פונקציות/תהליכים) מבני נתונים (מידע) “קריאות” תכנית ראשית D: מסמך (בעריכה) © 1999-2001, ד"ר עמיר תומר F: קובץ תכנית משנית Open(F) Save(D,F) שגרה / פונקציה שגרה / פונקציה שגרה / פונקציה Open Save מבוא להנדסת תוכנה

תוכנה מונחית עצמים המידע והפונקציונליות כמוסים (encapsulated) בתוך “עצמים” ביצוע התכנית העברת “הודעות” בין אובייקטים “הודעות” U : משתמש ... שם עצם מידע פונקציות “Save_Yourself” שם עצם מידע פונקציות D : מסמך ... Save © 1999-2001, ד"ר עמיר תומר “Open_Yourself” “Save_Me(D)” שם עצם מידע פונקציות שם עצם מידע פונקציות F : קובץ ... Open Save מבוא להנדסת תוכנה

UML = Unified Modeling Language שפה (גרפית) לניתוח ולתכן מונחה עצמים (OOA&D) J. Rumbaugh, I. Jacobson & G. Booch, The UML Reference Manual, Addison-Weseley, 1999 התפתחה תוך כדי מיזוג של מספר שיטות: Grady Booch, 1991-1996 James Rumbaugh (OMT), 1992-1996 Ivar Jacobson (Objectory), 1992-1997 פיתוח השפה וכלי CASE בחברת Rational 1997: אומצה כתקן בפועל (ad-hoc standard) ע”י OMG OMG = Object Management Group מעין “ועדה ממליצה” בחסות 800 חברות וארגונים OMG Unified Modeling Language Specification © 1999-2001, ד"ר עמיר תומר מבוא להנדסת תוכנה

UML - “מפת דרכים” דרישות מערכת ארכיטקטורת מערכת Use Case Model Class שחקנים, תרחישים, אופני פעולה ישויות, קשרים, יחסים Class Diagram מקרא: מודל סטטי דינמי ניהולי Activity Diagram לוגיקה, זרימה Package Diagram “חבילות עבודה” State Chart התנהגות Sequence Diagram פונקציונליות, אינטראקציה Component Diagram ארכיטקטורת התוכנה © 1999-2001, ד"ר עמיר תומר פריסת התוכנה על גבי החומרה Deployment Diagram מבוא להנדסת תוכנה

ב- 2.0 ישנם 6 דיאגרמות מבניות גרסאות ל- UML : על 1.5 ו-2.0 ב- 2.0 ישנם 6 דיאגרמות מבניות Class, Object, Component, Composite Structure, Package, Deployment ב-2.0 ישנם 3 דיאגרמות התנהגות Use Case, Activity, StateMachine ב2.0 ישנם 4 דיאגרמות קישור (Interaction) Sequence, Communication, Timing, Interaction Overview ב-2.0 ישנו קינון (Nesting) וקישור משופר בין הדיאגרמות © 1999-2001, ד"ר עמיר תומר מבוא להנדסת תוכנה

ניתוח מונחה עצמים וארכיטקטורה מודל מקרי-שימוש (Use-Case Model) “שחקנים” מקרי-שימוש (use cases) תרחישים תרשים מקרי-שימוש (use-case diagram) המודל הסטטי (Static Model) מחלקות קשרים תלויות תרשים מחלקות (class diagram) המודל הדינמי (Dynamic Model): בד"כ יותר מאוחר, בתכן מצבים מעברים תרשימי מצבים (state-chart diagrams) © 1999-2001, ד"ר עמיר תומר מבוא להנדסת תוכנה

דוגמה לניתוח מונחה עצמים: מעלית רשימת הדרישות המערכת מבקרת n מעליות המשרתות m קומות בכל מעלית יש m כפתורים - אחד לכל קומה עם הלחיצה על כפתור-מעלית הכפתור מואר המעלית מגיעה לקומה המבוקשת הדלתות נפתחות והכפתור כבה בכל קומה, פרט לראשונה ולאחרונה, יש שני כפתורים (לעליה ולירידה) עם לחיצה על כפתור-קומה כאשר מעלית מגיעה לקומה המבוקשת - הדלתות נפתחות והכפתור כבה לאחר השהיה נסגרות הדלתות והמעלית ממשיכה בכיוון המבוקש (אם ישנן בקשות קיימות) כאשר אין בקשות למעלית, היא חונה בקומה הנוכחית כשדלתותיה סגורות © 1999-2001, ד"ר עמיר תומר מבוא להנדסת תוכנה

היכן נמצאים האובייקטים? היכן נמצאות הפונקציות? המערכת מבקרת n מעליות המשרתות m קומות בכל מעלית יש m כפתורים - אחד לכל קומה עם הלחיצה על כפתור-מעלית הכפתור מואר המעלית מגיעה לקומה המבוקשת הדלתות נפתחות והכפתור כבה בכל קומה, פרט לראשונה ולאחרונה, יש שני כפתורים (לעליה ולירידה) עם לחיצה על כפתור-קומה כאשר מעלית מגיעה לקומה המבוקשת - הדלתות נפתחות והכפתור כבה לאחר השהיה נסגרות הדלתות והמעלית ממשיכה בכיוון המבוקש (אם ישנן בקשות קיימות) כאשר אין בקשות למעלית, היא חונה בקומה הנוכחית כשדלתותיה סגורות שמות עצם עשויים לציין אובייקטים פעלים עשויים לציין פונקציות © 1999-2001, ד"ר עמיר תומר מבוא להנדסת תוכנה

UML - Use-Case Model דרישות מערכת ארכיטקטורת מערכת אתה נמצא כאן מקרא: מודל סטטי דינמי ניהולי שחקנים, תרחישים, אופני פעולה ישויות, קשרים, יחסים Use Case Model Class Diagram “חבילות עבודה” Package Diagram © 1999-2001, ד"ר עמיר תומר Activity Diagram לוגיקה, זרימה State Chart פריסת התוכנה על גבי החומרה התנהגות ארכיטקטורת התוכנה פונקציונליות, אינטראקציה Sequence Diagram Component Diagram Deployment Diagram מבוא להנדסת תוכנה

תרשים מקרי שימוש (Use-Case Diagram) שחקנים (Actors) תפקיד שממלא משתמש כלשהו במערכת משתמש אחד יכול למלא תפקידים שונים כותב מאייר עורך שחקן לא חייב להיות אנושי חיישן בקר מקרי שימוש (Use Cases) אופני ההפעלה של המערכת אינטראקציה בין המערכת לבין שחקניה תרחישים (scenarios) חיצוניים © 1999-2001, ד"ר עמיר תומר מבוא להנדסת תוכנה

מופעל עם הלחיצה על כפתור במעלית מופעל עם הלחיצה על כפתור בקומה אפיון מונחה עצמים מבוא להנדסת תוכנה מעלית - UCD System Boundaries תרחיש נסיעה במעלית. מופעל עם הלחיצה על כפתור במעלית Elevator ride the elevator User call the elevator © 1999-2001, ד"ר עמיר תומר תרחיש קריאה למעלית. מופעל עם הלחיצה על כפתור בקומה מבוא להנדסת תוכנה © 1999-2001, ד"ר עמיר תומר

קשרים בין Use Cases Extend Include UC אחד מרחיב UC אחר ע"י תוספת של התנהגות ניתן להגדיר את "נקודת ההסתעפות" (Extension Point) Include UC אחד כולל בתוכו את ההתנהגות של UC אחר © 1999-2001, ד"ר עמיר תומר מבוא להנדסת תוכנה

מעלית - UCD מורחב Elevator Technician User Fire Brigade repair & test <<include>> ride User << include >> מפעיל קריאה / נסיעה כחלק מתהליך הבדיקה Fire Brigade <<extend>> call © 1999-2001, ד"ר עמיר תומר rescue <<extend>> מפעיל קריאה / נסיעה באופנים נוספים תוך שימוש במפתח מיוחד מבוא להנדסת תוכנה

ה-UC אמורים לשרת גם את האינטרסים שלהם! נועד למילוי משימה שתשרת שחקן אחד לפחות רשימת השחקנים ותפקידיהם "המערכת" איננה שחקן! תנאים מקדימים (pre-conditions) מה צריך להתקיים כדי שה-UC יוכל להתבצע כהלכה תנאים לאחר מעשה (post-conditions) מה השתנה לאחר סיום (מוצלח!) של ה-UC תרחיש הצלחה ראשי (MSS = Main Success Scenario) האינטראקציה העיקרית בין השחקנים לבין "המערכת" שתביא לקיום התנאים לאחר-מעשה [ללכת בתל"מ] הסתעפויות (branches) חלופה (alternative) ["אלתר נתיב"] השגת התל"מ באופן שונה חריגה (exception) מסלול שיביא לסיום ה-UC מבלי שיתקיימו התל"מ קיימים גם "בעלי עניין" (stakeholders) ה-UC אמורים לשרת גם את האינטרסים שלהם! © 1999-2001, ד"ר עמיר תומר מבוא להנדסת תוכנה

“ride” use-case שחקנים (Actors) תנאים מקדימים (pre-conditions) משתמש (נוסע) תנאים מקדימים (pre-conditions) המשתמש נמצא בתוך המעלית והמעלית "בכיוון" עלייה תנאים לאחר-מעשה (post-conditions) המעלית הגיעה לקומה המבוקשת הנוסע יכול לצאת מהמעלית © 1999-2001, ד"ר עמיר תומר מבוא להנדסת תוכנה

(המשך) “ride” use-case תרחיש הצלחה ראשי - MSS המשתמש לוחץ על כפתור המעלית של הקומה המבוקשת כפתור הקומה נדלק דלתות המעלית נסגרות המעלית עולה לקומה המבוקשת המעלית נעצרת הדלתות נפתחות כפתור הקומה כבה (אם הגיע לקומה המבוקשת - המשתמש יוצא מהמעלית) לאחר השהיה נסגרות הדלתות הסתעפויות חלופה: הקומה המבוקשת נמצאת מתחת לקומה הנוכחית 4א – המעלית עולה לקומה העליונה ביותר שהתבקשה 4ב – המעלית יורדת לקומה המבוקשת חלופה: "מעלית שבת" 1 – בטל. 4-9 – חוזר בכל קומה בדרך חריגה: עצירת חירום (יזומה ע"י המשתמש) 6-9 – בטלים © 1999-2001, ד"ר עמיר תומר מבוא להנדסת תוכנה

UML - Class Diagram דרישות מערכת ארכיטקטורת מערכת אתה נמצא כאן מקרא: מודל סטטי דינמי ניהולי שחקנים, תרחישים, אופני פעולה ישויות, קשרים, יחסים Use Case Model Class Diagram “חבילות עבודה” Package Diagram © 1999-2001, ד"ר עמיר תומר Activity Diagram לוגיקה, זרימה State Chart פריסת התוכנה על גבי החומרה התנהגות ארכיטקטורת התוכנה פונקציונליות, אינטראקציה Sequence Diagram Component Diagram Deployment Diagram מבוא להנדסת תוכנה

תרשים מחלקות (Class Diagram) מזהה (identifier) מאפיינים (attributes) ממומשים באמצעות מבני נתונים פעולות (operations) ממומשות באמצעות שגרות / פונקציות זיקה (association) בין מחלקות סוג הזיקה (ירושה, הכלה, ...) תפקיד (role) ריבוי (multiplicity) מזהה מאפיינים פעולות © 1999-2001, ד"ר עמיר תומר מבוא להנדסת תוכנה

מעלית - תרשים מחלקות (גרסה ראשונה) Button illuminated: Boolean ירושה inheritance Elevator Button Floor Button communicates with 1 m communicates with 2m - 2 n © 1999-2001, ד"ר עמיר תומר Elevator doors_open: Boolean זיקה association מבוא להנדסת תוכנה

מעלית - תרשים מחלקות (גרסה מתקדמת) Button illuminated: Boolean Elevator Button Floor Button mn 2m - 2 controls controls 1 1 Elevator Controller © 1999-2001, ד"ר עמיר תומר 1 1 controls controls n n Elevator Elevator Doors doors_open: Boolean מבוא להנדסת תוכנה

זיקה - association “הכרות” בין עצמים ממחלקות שונות סוגים מיוחדים של זיקה ירושה, הכללה (inheritance, generalization) הגדרת מחלקה על בסיס מחלקה אחרת הכלה, הקבצה (aggregation) עצם ממחלקה כלשהי “מכיל” עצמים ממחלקה אחרת זוג סדור של שתי מחלקות עצם ממחלקה B "מכיר" עצם ממחלקה A מאפייני הזיקה שם (name) סדר (ordering) האם הזיקה היא מ-A ל-B, או להיפך? תפקיד (role) מה תפקידו של כל אחד מהעצמים בקשר ריבוי (multiplicity) האם הזיקה קיימת תמיד? האם ההכרות היא עם יותר מעצם אחד? © 1999-2001, ד"ר עמיר תומר מבוא להנדסת תוכנה

דוגמאות לזיקה name multiplicity Person Insurance Contract Insurance policy holder Person 1..* 0..* has refers to Insurance Contract 0..1 1 refers to Insurance Policy is expressed in a married to husband wife has 0..* 1 refers to role © 1999-2001, ד"ר עמיר תומר insurer Insurance Company זיקה עצמית self association מבוא להנדסת תוכנה

מחלקת זיקה (association class) לפעמים לזיקה עצמה ניתן לתת מעמד של מחלקה Company Person * 0..* employee employer association class association part visual tie class part © 1999-2001, ד"ר עמיר תומר Job salary boss worker 0..1 * מבוא להנדסת תוכנה

ירושה (inheritance) מחלקה B יורשת את מחלקה A: “B is-a A” B היא תת-מחלקה (sub-class) של A מינוח לא מוצלח, כי ב’ מכילה יותר מאשר א’ B היא הכללה (generalization) של A דוגמאות לירושה: דוגמה רעה: ריבוע יורש מלבן דוגמה טובה: ריבוע ומלבן יורשים מרובע A מאפיינים פעולות B מאפיינים פעולות © 1999-2001, ד"ר עמיר תומר מבוא להנדסת תוכנה

הקבצה (aggregation) כל עצם ממחלקה B מכיל עצם (עצמים) ממחלקה A “A is-part-of B” שני סוגי הקבצה: ל-A יש קיום גם ללא B שמות נוספים: logical aggregation shared aggregation קיומו של A תלוי בקיומו של B physical aggregation non-shared aggregation composition B A © 1999-2001, ד"ר עמיר תומר B A מבוא להנדסת תוכנה

דוגמאות להקבצה {ordered} 3..* 1 Point Polygon Circle radius * 1 * 1 הקבצה פיסית (composition) למעגל יש נקודה אחת (מרכז) נקודת המרכז משוייכת אך ורק עם מעגל זה קיומה של נקודת המרכז מותנה בקיומו של המעגל Polygon Circle radius * 1 * 1 © 1999-2001, ד"ר עמיר תומר הקבצה לוגית (aggregation) לפוליגון יש סגנון סגנון יכול להיות משותף למספר פוליגונים הסגנון הוא ישות עצמאית, וקיומו אינו מותנה בקיום פוליגון Style color isFilled כיוון (navigation) המעגל “מכיר” את הסגנון הפוליגון “מכיר” את הסגנון הסגנון אינו נדרש להכיר את העצמים המפנים אליו... מבוא להנדסת תוכנה

לקראת פורמליות סיווג הדרישות ורישומן כטענות לוגיות תיאור של מצב המערכת והפעולות תיאור של היחסים בין הפעולות חלוקה לתכונות ביטחון ותכונות חיות שימוש בלוגיקה טמפורלית © 1999-2001, ד"ר עמיר תומר מבוא להנדסת תוכנה

סוגי דרישות שמורה גלובלית (global invariant) Update ו-Reboot אינם בחפיפה דרישות קדם לפעולות (preconditions) לפני Remove המבנה אינו ריק דרישות על ההשפעה\התוצאה של פעולות (postconditions) Double(x) יחזיר 2x וגם יוציא את x מאוסף המפתחות דרישות התקדמות—מה חייב לקרות: חיות לכל בקשה (query) תהיה התיחסות (reply) © 1999-2001, ד"ר עמיר תומר מבוא להנדסת תוכנה

מפרטים פורמליים לוגיקה + מילות מפתח pre , post , inv Z: שימוש בתורת הקבוצות לתיאור המצב והפעולות ניהול מערכת הקבצים של Unix , מרכזת טלפונים LOTOS: לתיאור מערכות תקשורת דרך תהליכים לוגיקה טמפורלית: תמיד P = P always P = בסופו של דבר P = P eventually P = אינסוף פעמים P =   P © 1999-2001, ד"ר עמיר תומר מבוא להנדסת תוכנה

עד כאן: המפרט, ניתוח וארכיטקטורה בתכן, נרחיב מחלקות ונוסיף מחלקות חדשות יש נוהלי פיתוח עם מפרט מורחב תרשימי מצב, למצבים החיצוניים פירוט ה use-case לדיאגרמת פעילויות (activity diagram) חלוקה ניהולי לחבילות (בהמשך) ניתן ורצוי לשלב שמורות ותנאים © 1999-2001, ד"ר עמיר תומר מבוא להנדסת תוכנה

UML - Package Diagram דרישות מערכת ארכיטקטורת מערכת אתה נמצא כאן מקרא: מודל סטטי דינמי ניהולי שחקנים, תרחישים, אופני פעולה ישויות, קשרים, יחסים אתה נמצא כאן Use Case Model Class Diagram “חבילות עבודה” Package Diagram © 1999-2001, ד"ר עמיר תומר Activity Diagram לוגיקה, זרימה State Chart פריסת התוכנה על גבי החומרה התנהגות ארכיטקטורת התוכנה פונקציונליות, אינטראקציה Sequence Diagram Component Diagram Deployment Diagram מבוא להנדסת תוכנה

המודל הניהולי חבילה/מארז = אוסף של ישויות מאותו סוג Use Cases Classes Packages תלות (dependency) בין חבילות אלמנטים ממחלקה אחת נדרשים "להכיר" אלמנטים ממחלקה אחרת יש לוודא שהתלות בין החבילות איננה מעגלית מפריע לייצוב הפיתוח תרשים חבילות (package diagram) אוסף של חבילות והתלויות שביניהן מהי תלות? © 1999-2001, ד"ר עמיר תומר מבוא להנדסת תוכנה

תלות - dependency יחס (relationship) בין שתי ישויות ישות עצמאית ישות תלויה שינוי כלשהו בישות העצמאית עלול להשפיע על הישות התלויה תלות יכולה להתקיים גם בין ישויות שאין ביניהן זיקה (association) כלשהי לדוגמה: עצם ממחלקה כלשהי מועבר כפרמטר לפונקציה של מחלקה אחרת כיוון התלות לא בהכרח זהה לכיוון הזיקה Building Theater Seat © 1999-2001, ד"ר עמיר תומר מבוא להנדסת תוכנה

תרשים חבילות (package diagram) - דוגמה Presentation Layer GUI Library Order Capture User I/F Mailing List User I/F Application Layer Order Capture Application Mailing List Application © 1999-2001, ד"ר עמיר תומר Data Layer Orders Customers מבוא להנדסת תוכנה

אז מה היה לנו...? התבנית מונחית-העצמים (OO paradigm) שפת הניתוח והתכן UML ניתוח מונחה עצמים מודל מקרי-השימוש (Use-Case) המודל הסטטי: מודל המחלקות המודל הניהולי: תרשים חבילות © 1999-2001, ד"ר עמיר תומר מבוא להנדסת תוכנה

וכעת נעבור ל... תכן © 1999-2001, ד"ר עמיר תומר מבוא להנדסת תוכנה