תרגול 6 - ADISSA ניתוח פונקציונאלי תרשימי DFD היררכיים

Download Report

Transcript תרגול 6 - ADISSA ניתוח פונקציונאלי תרשימי DFD היררכיים

‫תרגול ‪ADISSA - 4‬‬
‫ניתוח פונקציונאלי‬
‫תרשימי ‪ DFD‬היררכיים‬
‫השלבים בפיתוח מערכת מידע‬
‫ייזום‬
‫חקר מצב קיים‬
‫אפיון ראשוני‬
‫חקר ישימות‬
‫היום בתרגול‬
‫ניתוח המערכת‬
‫החדשה‬
‫עיצוב המערכת‬
‫החדשה‬
‫יישום‬
‫ניתוח המערכת החדשה‬
‫‪ ‬המטרה לספק אפיון מפורט של מערכת המידע החדשה‪ ,‬כלומר‪,‬‬
‫להגדיר במדויק את ביצועי המערכת תוך התייחסות למרכיבים הבאים‪:‬‬
‫‪ ‬פונקציות המחשב שתבצע המערכת‪.‬‬
‫‪ ‬קלטים של המערכת ומקורותיהם‪.‬‬
‫‪ ‬פלטים של המערכת ויעדיהם‪.‬‬
‫‪ ‬נתונים שייאגרו בבסיס הנתונים של המערכת‪.‬‬
‫‪ ‬תוצרי שלב ניתוח מערכת המידע יהיו בסיס לעיצובה ולהקמתה‪.‬‬
‫‪ ‬בשלב זה יוגדרו מרכיבי התוכנה בצורה פונקציונלית‪ ,‬אשר תהווה‬
‫הבסיס לפיתוח תוכנת היישום‪.‬‬
‫תרשים ‪DFD‬‬
‫‪ ‬אמצעי גרפי לתיאור פעילויות (כלומר‪ :‬תהליכים‪ ,‬פונקציות) וזרימת המידע‬
‫ביניהן‪.‬‬
‫‪ ‬מטרתו להציג את הפעילויות שהמערכת מבצעת ואת המידע הזורם בין‬
‫הפעילויות‪ .‬כלומר‪ ,‬הקלט הדרוש כדי לבצע כל פעילות והפלט הנוצר בעקבות‬
‫ביצועה‪.‬‬
‫‪ ‬מרכיבי תרשים ‪:DFD‬‬
‫‪ ‬משולש מציין יחידת זמן או מכשיר הקשור למערכת הפועל בזמן אמת‪.‬‬
‫כללים בבניית ‪DFD‬‬
‫• לכל פונקציה חייב להיות זרם מידע אחד שנכנס אליה (קלט) ולפחות זרם‬
‫מידע אחד שיוצא ממנה (פלט)‪.‬‬
‫• בקצהו של כל זרם מידע חייבת להיות לפחות פונקציה אחת – כלומר לא‬
‫יכול להיות קשר ישיר בין ישויות למאגרי מידע‪.‬‬
‫• אין משמעות לזרם מידע היוצא מפונקציה ונכנס לאותה פונקציה‪.‬‬
‫• לכל מאגר מידע חייב להיות לפחות זרם מידע אחד שנכנס אליו (עדכון)‬
‫ולפחות זרם מידע אחד שיוצא ממנו (שליפה)‪ .‬כלל זה אינו חל על מאגר‬
‫מידע חיצוני השייך למערכת מידע אחרת ומצויר מחוץ למסגרת התרשים‪.‬‬
‫• ישויות חיצוניות בצד שמאל של התרשים משמשות מקור לקלט ; ישויות‬
‫חיצוניות בצד ימין של התרשים משמשות יעד לפלט‪.‬‬
‫• ישות זמן (‪ )T‬יכולה להופיע רק בצד שמאל של התרשים (קלט)‪.‬‬
‫‪ ‬פעילות שמתבצעת לא ביוזמת המשתמש אלא ביוזמת המערכת‪ ,‬במועד‬
‫שנקבע מראש‪.‬‬
‫• זרם מידע יסודי (שאין בקצהו פונקציה כללית) חייב להיות חד כיווני‪.‬‬
‫• ניתן להוסיף קשר לוגי ‪ AND/OR‬בין זרמי מידע‪.‬‬
‫דוגמא לתרשים ‪ DFD‬שטוח‬
‫מהי טרנזקציה?‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫טרנזקציה היא תהליך מחשב עצמאי‪.‬‬
‫טרנזקציה היא רצף של פונקציות יסודיות הקשורות זו לזו ע"י‬
‫זרמי מידע‪.‬‬
‫טרנזקציה כוללות גם את זרמי המידע‪ ,‬המאגרים‪ ,‬והישויות‬
‫החיצוניות הקשורות אל הפונקציות שלה‪.‬‬
‫כל הפונקציות הנכללות בטרנזקציה הן יסודיות‪.‬‬
‫‪ ‬כל פונקציה יסודית שייכת רק לטרנזקציה אחת‪.‬‬
‫טרנזקציה כוללת לפחות ישות חיצונית אחת – "טריגר" –‬
‫המאפשרת את הפעלתה לפי הצורך‪ .‬לפי סוג הישות נקבע סוג‬
‫הטרנזקציה‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫משתמש‬
‫זמן‬
‫זמן אמת‬
‫מעורבת‬
‫טרנזקציות בתרשים ‪DFD‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫אפשר (אך לא רצוי) שטרנזקציה "תשתרע" על יותר מתרשים‬
‫‪ DFD‬אחד‪.‬‬
‫ישות חיצונית לא מפעילה רק את הפונקציה שאליה היא קשורה‪,‬‬
‫אלא את כל הטרנזקציה‪.‬‬
‫סדר הפעולות יקבע על ידי הלוגיקה של הטרנזקציה‪.‬‬
‫את הלוגיקה של כל טרנזקציה יש להגדיר ולתאר באופן‬
‫מדויק‪/‬מובנה‪ ,‬שאם לא כן אפשר להבין את תרשים הטרנזקציה‬
‫בצורות שונות‪.‬‬
‫תיאור על ראשוני של טרנזקציה‬
‫‪ .1‬התחל טרנזקציה ‪3.2 ,3.3.1-3.3.3 ,3.4‬‬
‫‪ .2‬קרא ממאגר מידע ‪A : D3‬‬
‫‪ .3‬בצע פונקציה ‪" :3.2‬שם הפונקציה"‬
‫‪ .4‬הפק פלט לישות "סוג הישות" ‪B : E3‬‬
‫‪ .5‬בצע פונקציה ‪" :3.3.1‬שם הפונקציה"‬
‫‪ .6‬קרא ממאגר ‪G : D4‬‬
‫‪ .7‬קרא ממאגר ‪D : D5‬‬
‫‪ .8‬אם <תנאי> אזי‪:‬‬
‫‪ 8.1‬בצע פונקציה ‪" :3.3.2‬שם הפונקציה"‬
‫‪ 8.2‬כתוב למאגר ‪N : D5‬‬
‫‪ 8.3‬הפק פלט לישות "סוג ישות" ‪M : E1‬‬
‫‪ .9‬אחרת‬
‫‪ 9.1‬בצע פונקציה ‪" :3.3.3‬שם הפונקציה"‬
‫‪ 9.2‬הפק פלט לישות "סוג ישות" ‪I : E1‬‬
‫‪ 9.3‬בצע פונקציה ‪" : 3.4‬שם הפונקציה"‬
‫‪ 9.4‬קלוט מישות "סוג ישות" ‪K : E2‬‬
‫‪ 9.5‬כתוב למאגר ‪H : D4‬‬
‫‪ 9.6‬הפק פלט לישות "סוג ישות" ‪L : E1‬‬
‫‪ .10‬סוף טרנזקציה‬
‫שאלה ממבחן‬
‫שאלה ממבחן‬
‫ב‪ .‬צייר את הטרנזקציה "הזמנת נסיעה" (כחלק של תרשים ‪ .)DFD‬בכל מקרה של אי בהירות‪,‬‬
‫יש להניח הנחות שלא סותרות את הסיפור(יש לצייר רק טרנזקציה אחת)‪.‬‬
‫ג‪ .‬הצג תיאור‪-‬על ראשוני של הטרנזקציה‪.‬‬
‫פיתרון שאלה ממבחן‬
‫פיתרון שאלה ממבחן‬
‫פיתרון שאלה ממבחן‬
‫לקוחות‬
‫הזמנות‬
‫שיבוצים‬
‫‪D3‬‬
‫נהגים‬
‫‪D4‬‬
‫כלי רכב‬
‫‪D5‬‬
‫פרטי‬
‫שיבוצים‬
‫פרטי‬
‫נהגים‬
‫פרטי כלי‬
‫רכב‬
‫‪D2‬‬
‫‪E1‬‬
‫לקוח‬
‫הודעת‬
‫דחיית‬
‫הזמנה‬
‫‪D1‬‬
‫‪1‬‬
‫קליטת‬
‫נתוני‬
‫לקוח‬
‫פרטי‬
‫נתוני‬
‫הזמנה‬
‫‪2‬‬
‫קליטת‬
‫נתוני‬
‫הזמנה‬
‫פרטים‬
‫לעדכון‬
‫הזמנה‬
‫‪4‬‬
‫בדיקת‬
‫שיבוץ‬
‫כלי רכב‬
‫לנהגים‬
‫‪5‬‬
‫שיבוץ‬
‫נהגים‬
‫‪R1‬‬
‫‪GPC‬‬
‫‪E1‬‬
‫לקוח‬
‫פרטי‬
‫נתוני‬
‫כרטיס‬
‫אשראי‬
‫הודעת‬
‫שיבוץ‬
‫לקוחות‬
‫‪E2‬‬
‫נהג‬
‫פרטי‬
‫שיבוץ‬
‫נהגים‬
‫נתוני‬
‫מיקום‬
‫נתוני‬
‫כרטיס‬
‫אשראי‬
‫‪3‬‬
‫קליטת‬
‫נתוני‬
‫אשראי‬
‫שיבוצים‬
‫‪E1‬‬
‫לקוח‬
‫נתוני‬
‫הזמנה‬
‫‪OR‬‬
‫‪OR‬‬
‫‪6‬‬
‫דחיית‬
‫הזמנה‬
‫פרטי‬
‫נתוני‬
‫לקוח‬
‫נתוני‬
‫לקוח‬
‫‪D3‬‬
‫‪D1‬‬
‫תיאור על ראשוני של טרנזקציה‬
‫‪ .1‬התחל טרנזקציה ‪1,2,3,4,5,6‬‬
‫‪ .2‬קלוט מישות משתמש ‪ : E1‬נתוני לקוח‬
‫‪ .3‬קלוט מישות זמן אמת ‪ : R1‬נתוני מיקום‬
‫‪ .4‬בצע פונקציה ‪ : 1‬קליטת נתוני לקוח‬
‫‪ .5‬כתוב למאגר ‪ : D1‬פרטי נתוני לקוח‬
‫‪ .6‬קלוט מישות משתמש ‪ : E1‬נתוני הזמנה‬
‫‪ .7‬בצע פונקציה ‪ : 2‬קליטת נתוני הזמנה‬
‫‪ .8‬כתוב למאגר ‪ : D2‬פרטי נתוני הזמנה‬
‫‪ .9‬אם <הלקוח מעוניין לשלם בכרטיס אשראי> אזי‪:‬‬
‫‪ 9.1‬בצע פונקציה ‪ :3‬קליטת נתוני אשראי‬
‫‪ 9.2‬כתוב למאגר ‪ : D1‬פרטי נתוני כרטיס אשראי‬
‫‪ .10‬קרא ממאגר ‪ :D3‬פרטי שיבוצים‬
‫‪ .11‬קרא ממאגר ‪ :D4‬פרטי נהגים‬
‫‪ .12‬קרא ממאגר ‪:D5‬פרטי כלי רכב‬
‫‪ .13‬שיבוץ=‪false‬‬
‫‪ .14‬עבור כל נהג‪:‬‬
‫‪ 14.1‬אם < כלי הרכב של הנהג תואם לכלי רכב שהלקוח בקש וגם הנהג פנוי> אזי‪:‬‬
‫‪ 14.1.1‬שיבוץ=‪true‬‬
‫‪break 14.1.2‬‬
‫‪. 15‬אם < כלי הרכב של הנהג תואם לכלי רכב שהלקוח בקש וגם הנהג פנוי> אזי‪:‬‬
‫‪ 15.1‬כתוב למאגר ‪ : D3‬פרטי שיבוץ נהגים‬
‫‪ 15.2‬הפק פלט לישות משתמש ‪ :E2‬הודעת שיבוץ‬
‫‪ .16‬אחרת‪:‬‬
‫‪ 16.1‬הפק פלט לישות ‪ :E1‬הודעת דחיית הזמנה‬
‫‪ .17‬סוף טרנזקציה‬