מודלים של מחזור חיי תוכנה

מסמכים קשורים
מודלים של מחזור חיי תוכנה

מודלים של מחזור חיי תוכנה

Microsoft PowerPoint - rec3.ppt

מהוא לתכנות ב- JAVA מעבדה 3

Microsoft PowerPoint - Lecture1

Slide 1

Slide 1

תרגול 1

PowerPoint Presentation

תרגול מס' 4: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש

משימה תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם תרגול מס' 4: המתרגם שימוש במחלקות קיימות תכנות מתק

מקביליות

תכנות מונחה עצמים א' – תש"ע

PowerPoint Presentation

מבוא למדעי המחשב

תוכן העניינים

תוכן העניינים

מבוא לתכנות ב- JAVA תרגול 11

מבוא למדעי המחשב

Microsoft PowerPoint - lec10.ppt

שאלהIgal : מערכים דו מימדיים רקורסיה:

מודלים של מחזור חיי תוכנה

PowerPoint Presentation

Microsoft Word - I900-Tips_and_Tricks

מבחן בפיתוח מערכות תוכנה בשפת Java ( )

מבוא למדעי המחשב

תוכן העניינים: פרק צמצומים ומימושים של פונקציות בוליאניות... 2 צמצומים של פונקציות באמצעות מפת קרנו:...2 שאלות:... 2 תשובות סופיות:... 4 צמצום

תוכנה 1 תרגול מספר 12: GUI כתיבת מחלקות גנריות בית הספר למדעי המחשב אוניברסיטת תל אביב 1

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

HTML - Hipper Text Makeup Language

מבחן 7002 פרטים כלליים מועד הבחינה: בכל זמן מספר השאלון: 1 משך הבחינה: 3 שעות חומר עזר בשימוש: הכל )ספרים ומחברות( המלצות: קרא המלצות לפני הבחינה ובדי

MethodAgile

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

Office 365 ProPlus בחינם לסטודנטים באוניברסיטת בן גוריון בנגב הוראות סטודנטים באוניברסיטת בן גוריון בנגב יכולים להוריד ולהתקין את חבילת התוכנה Office

ייבוא וייצוא של קבצי אקסל וטקסט

מבוא למדעי המחשב

שאלהIgal : מערכים דו מימדיים רקורסיה:

מדריך להתקנת Code Blocks מדריך זה נועד לתאר את תהליך התקנת התוכנה של הקורס "מבוא למחשב שפת C". בקורס נשתמש בתוכנת Code::Blocks עם תוספת )אשף( המתאימה

מבוא למדעי המחשב

WinZIP תוכנה לדחיסת קבצים ספטמבר 2007

תשע"דד אביב תוכנה 1 תרגיל מספר 4 עיבוד מחרוזות וקריאה מקבצים הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס..(

Slide 1

1

מבוא למדעי המחשב

PowerPoint Presentation

מיכפל

מבוא לתכנות ב- JAVA תרגול 7

PowerPoint Presentation

שאלהIgal : מערכים דו מימדיים רקורסיה:

מקביליות

מדריך למרצים ומתרגלים 1

BIG DATA תיאור הקורס המונח Big Data הולך וצובר תאוצה בשנים האחרונות, הוא הופך למגמה רווחת בתעשייה. המשמעות הפרקטית של המונח Big Data הינה טכנולוגיות נ

תיק משימטיקה מגרף הנגזרת לגרף הפונקציה להנגשה פרטנית נא לפנות: כל הזכויות שמורות

Microsoft PowerPoint - rec8.ppt

מקביליות

PowerPoint Presentation

Slide 1

מבחן סוף סמסטר מועד ב 28/10/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, גדי אלכסנדרוביץ הוראות: א. בטופס המבחן 6 עמודים (כולל דף זה) ו

Microsoft Word - tips and tricks - wave 5.doc

ex1-bash

סדנת תכנות ב C/C++

לנץ קרן מרצה: תכנותמונחהעצמים) ( יוםשישי 15 אוקטובר 0202 ב מועד 0202, אביב סמסטר סמסטר סוף מבחן גוטמן אייל רביב, אריאל משנה, אלון מתרגלים: הנחי

ForMenahelHeshbonot

Microsoft Word - pitaron222Java_2007.doc

הוספת קישור לאתר אינטרנט תוכן ממשק בדיקת מטלות...3 איחוד אתרי קורסים...5 סל מחזור... 7 חידושים בפעילויות...8 תצורת קורס: כפתורים... 9 פורומים...10 שיפ

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

יום עיון עורכי בקשות להיתרים

PowerPoint Presentation

מרצים יקרים, אתר המכללה מאפשר למרצי המכללה להזין את פרטיהם וקורות חייהם. זאת בדומה לאתרים מקבילים של מוסדות אקדמיים בארץ ובעולם. עמודי המרצים נועדו לא

שעור 6

מסע מדע ו - מסע ברכב שטח ביבשות רחוקות

מבוא למדעי המחשב - חובלים

עוצמת ההורשה מה הופך את ההורשה לכלי כל כך עוצמתי? מעבר לכך שהוא מקל בהגדרת מחלקות חדשות על סמך מחלקות קיימות, יש לנו אפשרות להתייחס לאובייקט מסויים בכ

(Microsoft Word - SQL\353\351\345\345\365 \341\361\351\361 \360\372\345\360\351\355 \ doc)

Slide 1

מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. ב

תורת הקומפילציה

Homework Dry 3

Cloud Governance הכלי למזעור סיכונים ומקסום התועלת העסקית

PowerPoint Presentation

גילוי דעת 74.doc

שקופית 1

מבוא למדעי המחשב - חובלים

מצגת של PowerPoint

פרויקט "רמזור" של קרן אביטל בס "ד מערך שיעור בנושא: "פונקציה" טליה קיפניס והדסה ערמי, מאולפנת צביה פרטים מקדימים על מערך השיעור: השיעור מהווה מבוא לנו

Microsoft Word - Ass1Bgu2019b_java docx

פקולטה לחינוך מנהל סטודנטים Beit Berl College الكلية االكاديمية بيت بيرل 20/06/2016 י"ד/סיון/תשע"ו ייעוץ וירטואלי הרכבת מערכת )רישום לקורסים( באמצעות

פתרון מוצע לבחינת מה"ט ב_שפת c מועד ב אביב תשע"ט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9.

Slide 1

פייתון

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

Microsoft PowerPoint - 10_threads.ppt

מצגת של PowerPoint

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

תמליל:

תכן תוכנה מונחה-עצמים Object-Oriented Software Design תכן מונחה עצמים - 1

CSU Software CSC CSCI System Business פעילות תכן התוכנה קלט ארכיטקטורת התוכנה מודל רכיבים model) (component מפרט תהליכי התוכנה רמת עניין sequence models use case model תוצרים עיקריים מבנה וארגון התוכנה מודל מחלקות model) (class תהליכי תוכנה מפורטים מודל מכונת מצבים model) (state machine מודל רצפים model) (sequence בדיקות מערכת בסביבת התפעול שילוב חומרה / תוכנה ובדיקות מערכת שילוב רכיבים ובדיקות פריטים שילוב יחידות ובדיקות רכיבים תכן תוכנה ניתוח וארכיטקטורת תוכנה ניתוח וארכיטקטורת מערכת הגדרת דרישות הלקוח ובעלי העניין זמן מימוש, שילוב ובחינה Implementation, Integration and Testing קידוד ובדיקת יחידות הגדרה ופירוט Definition and Specification תכן מונחה עצמים - 2

תוכן העניינים דרישות / החלטות המשפיעות על התכן מבנה וארגון התוכנה התבנית מונחית-העצמים (class model) מודל המחלקות תהליכי תוכנה מפורטים מודל רצפים model( )sequence ברמת התוכנה )state machine model) מודל מכונת מצבים סיכום UML תכן מונחה עצמים - 3

דרישות פונקציונאליות ודרישות לא פונקציונאליות מרחב הפתרון דרישות פונקציונאליות דרישות לא-פונקציונאליות תכן / מימוש דרישות פונקציונאליות דרישות לא פונקציונאליות מגדירות את תכולת הפתרון מגדירות מאפיינים ואילוצים על אופן מקבלות מענה ספציפי וישיר בתוך מימוש תכולת הפתרון מקבלות מענה כאשר הפתרון הפתרון )התכן/המימוש( הנבחר )התכן/המימוש( עומד במאפיינים ובאילוצים המוגדרים תכן מונחה עצמים - 4

דרישות/החלטות המשפיעות על התכן התכן הוא הפעילות בה נקבעים פרטי המימוש נדרש לקבל החלטות לגבי חלופות מימוש שונות הבסיס לקבלת ההחלטות אילוצים אילוצי תכן שנקבעו בדרישות אילוצים ניהוליים שנקבעו בדרישות אילוצי המפתח )זמינות טכנולוגית, החלטות שהתקבלו בשלבים קודמים ארכיטקטורה מערכתית חומרה זמינות משאבים, דרישות שימוש חוזר התכן נועד להציע דרך למימוש הדרישות הפונקציונאליות תוך מתן מענה לדרישות הלא-פונקציונאליות? וכו'( תכן מונחה עצמים - 5

דרישות/החלטות אופייניות עבור תכן התוכנה החומרה סוג המחשבים, ארכיטקטורת החומרה, תקשורת מערכת ההפעלה אופן הקריאה לשרותי מעה פ מתוך התוכנה, תהליכים שפת התכנות... טיפוסים, מבני בקרה, פונקציות בנויות, תמיכה בתהליכים, סטנדרטים למשל CORBA,.Net, TCP/IP שילוב מוצרי מדף למשל GIS = Geographic Information System שילוב מערכת קיימת system( )legacy בסיסי נתונים קיימים, חומרה קיימת תכן מונחה עצמים - 6

תוכן העניינים דרישות / החלטות המשפיעות על התכן מבנה וארגון התוכנה התבנית מונחית-העצמים (class model) מודל המחלקות תהליכי תוכנה מפורטים מודל רצפים model( )sequence ברמת התוכנה )state machine model) מודל מכונת מצבים סיכום UML תכן מונחה עצמים - 7

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

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

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

עצמים ומחלקות עצמים (objects) היחידות הבסיסיות של התוכנה כל עצם מנהל את המידע שבאחריותו באמצעות הפונקציונליות שהוקנתה לו עצמים קיימים בזיכרון המחשב בזמן ריצת התוכנית ניתן לבנות/להרוס עצמים באופן דינמי תוך כדי ריצה = constructor פונקציה הבונה עצם חדש = destructor פונקציה ההורסת )מוחקת( עצם קיים מחלקות לכל עצם יש מפתח גישה ייחודי (classes) התבניות על פיהן נוצרים עצמים חדשים התבנית מכילה 3 "תאים" pointer(,)handle, הניתן לו ברגע בנייתו (compartments) המחלקות מוגדרות בקוד עצמים הם מופעים ספציפיים ע"י כותב התוכנה (instances) של מחלקות שם מאפיינים )מבני נתונים( פעולות )פונקציונלי ות( 11 - תכן מונחה עצמים

יצירה ותפעול של עצמים Car + maker: string + model: string + licenseplate: string + testdate: Date - owner: Person + sellto(person) : void + getowner(int) : Person + testisvalid(date) : boolean thebluecar : Car maker = mazda model = CX-7 licenseplate = 12-345-67 testdate = 08/09/2010 owner = Lior יצירת עצם "מכונית" חדש thebluecar = new(car) איתחול פרטי המכונית thebluecar.maker = mazda thebluecar.model = CX-7 רישוי וטסט thebluecar.licenseplate = 12-345-67 thebluecar.testdate = 08/09/2010 thebluecar.sellto(lior) function sellto(x) : owner = X מכירה תכן מונחה עצמים - 12

תוכן העניינים דרישות / החלטות המשפיעות על התכן מבנה וארגון התוכנה התבנית מונחית-העצמים (class model) מודל המחלקות תהליכי תוכנה מפורטים מודל רצפים model( )sequence ברמת התוכנה )state machine model) מודל מכונת מצבים סיכום UML תכן מונחה עצמים - 13

- תחביר תרשים מחלקות Diagram) (Class מחלקה ClassName - privateattribute: Type + puplicattribute: Type - privatemethod(x:typex, Y:TypeY) : ReturnType + publicmethod(x:typex, Y:TypeY) : ReturnType שם המחלקה מאפיינים מתודות קשרים )משתנים( מאפיין פרטי: מאפיין ציבורי: )פונקציות( מתודה פרטית: מתודה ציבורית: ניתן לגשת אליו רק מתוך המחלקה עצמה ניתן לגשת אליו גם מבחוץ ניתן לקרוא לה אך ורק מתוך המחלקה עצמה ניתן לקרוא לה גם מבחוץ A B זיקה (association) A B ירושה (Inheritance) A B הקבצה (aggregation) 14 - תכן מונחה עצמים

יחס ירושה )inheritance( / הכללה (Generalization) מחלקה B יורשת/מכלילה את מחלקה A: A מכילה את כל המאפיינים של B A מכילה את כל הפעולות של B בנוסף, B מכילה מאפיינים ופעולות משל עצמה B is-a A A של )sub-class( היא תת-מחלקה B כפתור דולק: }כן, לא{ לחיצה הדלקה/כיבוי מינוח לא מוצלח, כי B מכילה יותר מאשר A יחס הירושה יוצר מבנה היררכי של מחלקות מחלקה אבסטרקטית מחלקה שלא ניתן ליצור ממנה עצמים כל העצמים נוצרים ממחלקות היורשות אותה לדוגמה: "כלי רכב" כפתור מעלית כפתור קומה קומה זיהוי: כיוון: }למעלה, למטה{ תכן מונחה עצמים - 15

זיקה - association (Company,Person) navigability multiplicity Company 0..1 0..* Person employer employs employee יחס בין מחלקות המגדיר "היכרות" "היכרות" = מצביעים הדדיים בין עצמים ממחלקות אלה name role מאפיינים המאפשרים הגדרה ברורה יותר של זיקה שם )name( + כיוון "Company employs Person תפקיד )role( Company is the employer Person is the employee ריבוי )multiplicity( Company employs 0 or more Persons Person is employed by 0 or 1 company ניווט (navigability) Person knows who is its Company Company does not know its Persons תכן מונחה עצמים - 16

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

הקבצה - דוגמה הקבצה לוגית )aggregation( לפיסקה יש סגנון-פיסקה אחד סגנון יכול להיות משותף למספר פיסקאות הסגנון הוא ישות עצמאית, וקיומו אינו מותנה בקיום פיסקאות מחיקת פיסקה אינה מוחקת את הסגנון Paragraph Style Paragraph Style 1..* Word 1..* Font Style Character ניווט )navigation( התו מכיר את הסגנון הסגנון אינו מכיר את התוים המשויכים אליו 1 0..* 0..* 1 1 1 הקבצה פיסית )composition( פיסקה מכילה לפחות מילה אחת כל המילים של הפיסקה שייכות אך ורק לפיסקה זו קיומה של המילה מותנה בקיומה של הפיסקה מחיקת פסקה מוחקת את כל המילים השייכות לה. 1. A Numbered Title This is the first paragraph of this document. It contains 17 words and 80 non-blank cha r ac t ers. תכן מונחה עצמים - 18

מודל מחלקות של מרחב הבעיה כבר בשלב הניתוח המערכתי ניתן לבנות מודל מובנה של עצמים, המייצגים את מונחי מרחב הבעיה והקשרים ביניהם המטרה PDOM = Problem Domain Object Model הבהרה וחידוד של המונחים והיחסים ביניהם שימושים יישוב סתירות ואי-בהירויות במפרטי הלקוח מילון מונחים של המערכת בסיס למודל מחלקות עבור התוכנה ישויות המידע בהן נדרשת התוכנה לטפל תכן מונחה עצמים - 19

מערכת המעליות איתור ראשוני של מחלקות 3 מעליות משרתות 10 קומות. בכל קומה, פרט לקומת הקרקע ולקומה העליונה, נמצאים שני כפתורים אחד לעליה ואחד לירידה. בקומת הקרקע נמצא כפתור אחד לעליה בלבד; בקומה העליונה נמצא כפתור אחד לירידה בלבד. משתמש הנמצא בקומה כלשהי ורוצה לנסוע במעלית לוחץ על הכפתור המתאים לכיוון הנסיעה המבוקש. אם לא היה דלוק קודם לכן, נדלק הכפתור בעקבות הלחיצה. מעלית כלשהי הנמצאת בכיוון הנסיעה המבוקש תגיע לקומה, תוך דקה לכל היותר. עם הגעתה תיפתח הדלת והכפתור יכבה. בתוך כל מעלית נמצאים 10 כפתורים אחד עבור כל קומה. כמו כן נמצאים במעלית כפתור לעצירת חירום וכפתור להזעקת חילוץ. משתמש הנמצא בתוך המעלית ורוצה להגיע לקומה כלשהי לוחץ על הכפתור המתאים. אם לא היה דלוק קודם נדלק הכפתור בעקבות הלחיצה ולמעלית נוספת בקשה לעצירה בקומה המתאימה. כאשר תגיע המעלית לקומה המבוקשת היא תיעצר, הדלת תפתח והכפתור המתאים לקומה יכבה. לאחר השהיה תיסגר הדלת והמעלית תמשיך בפעולתה. במקרה שהמעלית נתקעה במהלך נסיעה מזעיק הנוסע חילוץ באמצעות כפתור החילוץ. קצין הביטחון של הבניין הוכשר לחלץ נוסעים תקועים באמצעות פאנל הפעלה מיוחד הנמצא בחדר המכונות. המחלץ מוריד את המעלית לקומת הקרקע ופותח את דלתותיה. על פי תקנות משרד העבודה נבדקת המערכת אחת לששה חודשים בידי טכנאי מוסמך. בזמן הבדיקה לא ניתן להשתמש במערכת. אם הטכנאי מגלה תקלה הוא מנסה לתקן אותה ולחזור על הבדיקה. תכן מונחה עצמים - 20

אפיון ראשוני )חלקי( של מחלקות פוטנציאליות מקורות: מסמכי הלקוח Use Case Model קומה מעלית כפתור רלוונטי לכפתור-מעלית בלבד רלוונטי לכפתור-קומה בלבד דולק: }כן, לא{ זיהוי: קומה כיוון: }למעלה, למטה{ לחיצה הדלקה/כיבוי זיהוי מצב: }פעילה, מושבתת{ תקינות: }תקינה, מקולקלת{ מיקום: קומה תכנית: תור של בקשות נסיעה )כיוון( עצירה מספר? נוסע דלת בקשת עצירה שיוך: מעלית מצב: }פתוחה, סגורה{ שיוך: מעלית יעד: קומה פתיחה ביטול פתיחה/סגירה?? תכן מונחה עצמים - 21

מערכת המעליות - PDOM class PDOM use Trav elbutton FloorButton + dirlabel: up_down 1..2 +location is_at Floor + floorno: int goes_to User 0..* - islit: boolean + putlight(byte) : void + require(floor) : void Elev atorbutton 1 1 represents 10 +destination 1..10 + floorlabel: int 10 0..3 Elev ator 0..* StopRequest - destination: Floor 0..* + isactive: boolean + isinorder: boolean + Location: Floor + startoperation() : void RescueButton 1 1 1 0..* «abstract» Button + press() : void StopButton 1 Door + isclosed: boolean + open() : void + close() : void Motor + goto(floor) : void 22 - תכן מונחה עצמים

תרגיל בכיתה Diagram Class ערוך מודל מחלקות במרחב הבעיה (PDOM) של זהה ישויות המועמדות להיות מחלקות מסיפור הלקוח מהמפרט הטכני מטבלת הדרישות ממפרט ה- Use Cases הקצה מאפיינים ופעולות למחלקות מאפיינים על בסיס דרישות המידע )DR( פעולות )פונקציות, מתודות( "חתרנית" ודרישות נגזרות, אם ישנן על בסיס הדרישות התפעוליות )OR( זהה זיקות בין מחלקות במידה וקיימות מחלקות בעלות מאפיינים דומים, נסה להגדיר מחלקות-אב ולאפיין קשרי ירושה תכן מונחה עצמים - 23

מטלת בית מטלה צוותית ערכו מודל מחלקות של מרחב הבעיה,(PDOM) על פי ההנחיות שבתרגיל הכיתה תוצר זה הינו חלק ממפרט דרישות המערכת, אך איננו מוגש/מוצג כחלק מהטיוטות, אלא במסגרת תיק הפרויקט המלא הגשה ד' תכן תוכנה מונחה עצמים - 24

עקיבות הדרישות הפונקציונאליות למודל המחלקות המחלקות שבמודל המחלקות אמורות לספק את כל הפונקציונאלי ות המערכתית מכל דרישה פונקציונאלית בטבלת הדרישות יש להצביע למחלקה או למחלקות הרלוונטיות משתתפות בדרישה תפעולית )OR( לדוגמה: "אם לא היה דלוק קודם נדלק הכפתור בעקבות הלחיצה" מספקות את מבני הנתונים עבור דרישות המידע )DR( לדוגמה: "בכל קומה יהיו שני כפתורים" קומה כפתור מכל מחלקה במודל המחלקות יש להצביע על הדרישות הפונקציונאליות הרלוונטיות לה תכן מונחה עצמים - 25

מארכיטקטורת תוכנה לתכן תוכנה )ברמת הרכיב( ארכיטקטורת התוכנה הגדירה רכיבי תוכנה וממשקים ביניהם תכן מפורט של התוכנה = מבנה והתנהגות התוכנה של כל רכיב רכיב תוכנה component) (software כמערכת עניין הסביבה החיצונית רכיבים אחרים התקני חומרה שירותים A ממשקים הפונקציות שהוקצו לרכיב B D C המבנה ממשקים מסופקים/נדרשים מודל מחלקות הפעולה המשותפת אינטראקציה בין עצמים )תתואר באמצעות )sequence diagrams 26 - תכן מונחה עצמים

מועמדים לעצמים בתוכנה עצמים המייצגים ישויות פיזיות )מנוע, דלת, עמדת עבודה,...( מאפיינים: פרמטרים ונתונים לגבי הישות, קלט/פלט מתודות: פונקציונלית פיזית העצם המייצג משמש, למעשה, כממשק שבית התוכנה לישות הפיזית עצמים המייצגים ישויות לוגיות )תהליך, שירות,...( מאפיינים: פרמטרים ונתונים לגבי הישות, קלט/פלט מתודות: פעולות המשמשות את התהליך/השירות עצמים המייצגים ישויות מידע )מאגרי נתונים, רשימות, תורים,...( מאפיינים: רכיבי המידע שבאחריות הישות מתודות: פעולות על המידע )אחסון, שליפה, עדכון,...( עצמים המייצגים עצמים הנמצאים ברכיב תוכנה אחר "שיקוף" של העצמים החיצוניים מימוש ממשקי תוכנה-תוכנה דרך תווך של חומרה תכן מונחה עצמים - 27

בניית מודל מחלקות לרכיב תוכנה מקורות PDOM SRS מחלקות שצריכות להיות באחריות הרכיב מחלקות-אב שמהן ניתן לגזור מחלקות לרכיב תהליכי תוכנה (Use Cases, Sequence Diagrams) ספריות תוכנה מחלקות הקצאת הפונקציונאליות של הרכיב למחלקות )מאפיינים ומתודות( "מן המדף" אותן ניתן לשלב בתוכנה הייעודית תכן מונחה עצמים - 28

רכיב "תפעול מעלית" מחלקות רלוונטיות מה- PDOM class PDOM use Trav elbutton FloorButton + dirlabel: up_down 1..2 +location is_at Floor + floorno: int goes_to User 0..* - islit: boolean + putlight(byte) : void + require(floor) : void Elev atorbutton 1 1 represents 10 +destination 1..10 + floorlabel: int 10 0..3 Elev ator 0..* StopRequest - destination: Floor 0..* + isactive: boolean + isinorder: boolean + Location: Floor + startoperation() : void RescueButton 1 1 1 0..* «abstract» Button + press() : void StopButton 1 Door + isclosed: boolean + open() : void + close() : void Motor + goto(floor) : void תכן מונחה עצמים - 29

הפקת קוד ממודל המחלקות (Java) class PDOM Floor Trav elbutton + floorno: int - islit: boolean + putlight(byte) : void + require(floor) : void Elev atorbutton 1 1 represents + floorlabel: int 1..10 public abstract class Button { StopRequest public void press(){ } 0..* - destination: Floor } public class TravelButton extends Button { private boolean islit; «abstract» Button + press() : void public StopRequest m_stoprequest; public void putlight(byte on_off){ } public void require(floor floor){ } } public class ElevatorButton extends TravelButton { public int floorlabel; public Floor m_floor; } תכן מונחה עצמים - 30

תוכן העניינים דרישות / החלטות המשפיעות על התכן מבנה וארגון התוכנה התבנית מונחית-העצמים (class model) מודל המחלקות תהליכי תוכנה מפורטים מודל רצפים model( )sequence ברמת התוכנה )state machine model) מודל מכונת מצבים סיכום UML תכן מונחה עצמים - 31

מימוש תהליכי התוכנה מימוש הפונקציונליות של כל רכיב באמצעות עצמים בתוכנה פונקציונליות הרכיב תפקודו במסגרת מימוש התהליכים המערכתיים עצמים בתוכנה על בסיס מודל המחלקות של הרכיב A Comp1 B D C a:a b:b c:c 32 - תכן מונחה עצמים

נסיעה בין קומות פונקצית "איתחול פעילות" של פיקוד מרכזי "תפעול מעלית" תפעול מעלית פאנל נוסע דלת פאנל קומה מנוע ()תוליעפ לוחתיא 1.0 תומוק ןיב העיסנ seq loop ()תלד תריגס 1.1 [הריצע תושקב תומייק דוע לכ] 1.2 ()המוקל העיסנ 1.3 ()הריצע 1.4 alt ()תושקבה לכ לוטיב 1.5 [העקתנ תילעמה] endpoint ref חילוץ נוסע ()ץוליח תקעזה 1.6 ()תילעמ רותפכ יוביכ 1.7 [המוקב הרצענ תילעמה] ()תלד תחיתפ 1.8 1.9 1.12 ()המוק רותפכ יוביכ 1.11 ()העגה יוויח 1.10 ()היהשה 1.13 33 - ניתוח וארכיטקטורת תוכנה

d Interaction מימוש פונקציית "איתחול פעילות" של רכיב "תפעול מעלית" :Elevator mydoor :Door SRx :StopRequest mymotor :Motor ButF :ElevatorButton F :Floor 1.0 startoperation() loop [forever] 1.1 close() 1.2 closingphisicaldoor() 1.3 1.4 SRx= getnextrequest() 1.5 F= getnextfloor() 1.6 1.7 goto(f) 1.9 1.8 drivingphisicalmotor() procedure startoperation () do while (inorder && isactive) mydoor.close(); SRx = getnextrequest(); F = SRx.getNextFloor() mymotor.goto(f); mybuttons[f].putlight(off); mydoor.open(); F.notifyArrival; delay(t); end do; end startoperation; 1.10 putlight(off) 1.11 open() 1.12 openingphysicaldoor() 1.13 1.14 notifyarrival() 1.15 notifyserver() 1.16 delay(t) 34 - תכן מונחה עצמים

תוכן העניינים דרישות / החלטות המשפיעות על התכן מבנה וארגון התוכנה התבנית מונחית-העצמים (class model) מודל המחלקות תהליכי תוכנה מפורטים מודל רצפים model( )sequence ברמת התוכנה )state machine model) מודל מכונת מצבים סיכום UML תכן מונחה עצמים - 35

/ דלת המעלית דרישות משלימות נגזרות במעלית יש שני כפתורים עבור הדלת Open Door (OD) Close Door (CD) בדלת יש עינית (detector) המזהה מעבר של גוף דרך הדלת בעת פתיחה או סגירה של דלת תושמע הודעה קולית מתאימה כאשר המעלית לא פעילה היא חונה בקומה כלשהיא עם דלת סגורה לחיצה על כפתור קומה בה חונה מעלית תגרום לפתיחת הדלת דלת פתוחה תיסגר אחרי השהיה נתונה או כאשר נלחץ כפתור CD המעלית יכולה לנסוע רק כאשר הדלת סגורה במלואה כל עוד המעלית בתנועה שום אירוע לא יגרום לפתיחת הדלת לאחר עצירת מעלית בקומה כלשהיא הדלת נפתחת כל עוד הדלת לא סגורה כל אחד מהאירועים הבאים יביא לפתיחתה: לחיצה על כפתור OD זיהוי של העינית לחיצה על כפתור קומה בקומה בה היא נמצאת תכן מונחה עצמים - 36

מודל מכונת-מצבים Model) (State-Machine מכונת מצבים "אוטומט" )מודל מתימטי( מודל דינמי לתיאור התנהגות שימושי המודל תיאור התנהגות מונחית-אירועים (event-driven) של מערכת-עניין או מרכיב אלמנטרי מערכת רכיב תוכנה אובייקט תוכנה הדלקה off התקנה הישרפות כיבוי תכן מונחה עצמים - 37

State Chart תרשים מצבים (State) מצב מעבר מצב רגיל/פסיבי )למשל: "ממתין"( מצב פעיל )למשל: "מעבד"( (Transition) אירוע שינוי מצב הנגרם בעקבות אירוע או תנאי (Event) תנאי גורם למעבר ממצב למצב )למשל: "הדלקת מתג"( (Guard) פעולה מתנה את השפעת האירוע )למשל: "הדלקת מתג ]הדלת סגורה["( (Action) מתרחשת בעת מעבר או בתוך מצב בכניסה למצב action) (entry/ ביציאה ממצב action) (exit/ במהלך שה יה במצב פעיל action) (do/ State A State B event [guard] / action תכן מונחה עצמים - 38

state chart דלת מעלית stopped at floor or OD pressed [not in travel] or detector disturbed [not in travel] or Opening entry/ my_elevator:disable()? entry/ play_msg(opening) do/ loop: check_door floor button pressed [parked at floor] [door fully open] Closed entry/ my_elevator:enable() exit/ my_elevator:disable() shutdown [door fully closed] Closing entry/ play_msg(closing) do/ loop: check_door OD pressed or detector disturbed or floor button pressed Open entry/ set timer do/ loop: timer = timer-1 CD pressed or [timer == 0] תכן מונחה עצמים - 39

Event Handler דלת מעלית )קטע( void EventHandler(event EventClass)... switch (event): { case OD_Pressed if (current_state==closing) { my_elevator.disable(); play_msg( opening );... current_state=opening; } break; Opening entry/ my_elevator:disable() entry/ play_msg(opening) do/ loop: check_door OD pressed or detector disturbed or floor button pressed? Closing entry/ play_msg(closing) do/ loop: check_door תכן מונחה עצמים - 40

תרגיל בכיתה Diagram State Machine בנה תרשים מכונת מצבים של המחלקה "חולד" ) mole ( של תוכנת חתרנית תכן מונחה עצמים - 41

מטלת בית מטלה צוותית ערכו תרשים מכונת מצבים לאחת מישויות המערכת, על פי בחירתכם תוצר זה הינו חלק ממפרט דרישות המערכת, אך איננו מוגש/מוצג כחלק מהטיוטות, אלא במסגרת תיק הפרויקט המלא הגשה ד' תכן תוכנה מונחה עצמים - 42

תוכן העניינים דרישות / החלטות המשפיעות על התכן מבנה וארגון התוכנה התבנית מונחית-העצמים (class model) מודל המחלקות תהליכי תוכנה מפורטים מודל רצפים model( )sequence ברמת התוכנה )state machine model) מודל מכונת מצבים סיכום UML תכן מונחה עצמים - 43

היררכיה של מערכת עתירת תוכנה בייצוג UML תכן מונחה עצמים - 44

טבלת סיכום UML - מודלים אופייניים ברמות השונות רמה מודלים סטטיים )מבנה( מודלים דינמיים )התנהגות( Business-Level UC Model חופשי Class Model (PDOM) עסק ארגון / System Level UC Model Activity Diagram State Machine Diagram Deployment Model מערכת S/W Level UC Model Sequence Diagram (components) פריט תוכנה Component Model Sequence Diagrams (objects) State Machine Diagrams Class Model רכיב תוכנה תכן מונחה עצמים - 45