CUBS: Multivariate Sequence Classification Using Bounded Z

‫ניתוח מערכות מידע א'‬
‫הרצאה ‪3‬‬
‫מידול תהליך הפיתוח‬
‫‪+‬‬
‫‪DFD‬‬
‫‪1‬‬
‫מידול תהליך הפיתוח‬
‫(מודלים של זמן החיים)‬
‫מפל המים‪ ,‬מודל ספירלי‪ ,‬מונחה עצמים וכו'‬
‫‪2‬‬
)build & fix( ‫בנה ותקן‬
‫בנה גרסה‬
‫ראשונה‬
,‫ערוך שינויים‬
‫עד שהלקוח‬
‫מרוצה‬
If you don't
have time
to do it right,
Where would you take
the time to do it
again???
‫הפעלה‬
‫מבצעית‬
‫פרישה‬
‫פיתוח‬
‫אחזקה‬
3
‫בנה ותקן ‪ -‬תכונות‬
‫‪ ‬רק חסרונות‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫אין מפרט‬
‫אין תכן‬
‫מתאים לתוכנה קטנה מאד (‪ 200-300‬שורות?)‬
‫‪ ‬לכל תוכנה בגודל סביר נדרשים‪ ,‬לפחות‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪4‬‬
‫תכנית פעולה ("‪)"game plan‬‬
‫שלבים בפיתוח‬
‫אבני‪-‬דרך (‪)milestones‬‬
‫מודל מפל המים (‪)waterfall‬‬
‫‪Royce, 1970‬‬
‫דרישות‬
‫אימות‬
‫שינוי בדרישות‬
‫אימות‬
‫ניתוח‬
‫אימות‬
‫תכן‬
‫אימות‬
‫מימוש‬
‫אימות‬
‫שילוב‬
‫אימות‬
‫הפעלה מבצעית‬
‫‪5‬‬
‫פרישה‬
‫פיתוח‬
‫אחזקה‬
‫מודל מפל המים ‪ -‬תכונות‬
‫‪ "feedback" ‬בין שלבים עוקבים‬
‫‪ ‬תהליך מונחה‪-‬תיעוד‪:‬‬
‫‪‬‬
‫המעבר לשלב הבא מותנה (ותלוי!) בתיעוד השלב הקודם‬
‫‪ ‬יתרונות‬
‫‪‬‬
‫‪‬‬
‫תהליך מתועד‬
‫אחזקה קלה יותר‬
‫‪ ‬חסרונות‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪6‬‬
‫פורמאליות‪-‬יתר (המוצר מאופיין אך ורק באמצעות התיעוד)‬
‫מציאות רחוקה מהמודל‪ ---‬אין פיתוח כזה !!‬
‫בפועל מתעלמים מחזרה לשלב קודם ורצים קדימה‪...‬‬
‫אב‪-‬טיפוס מהיר‬
‫‪ ‬דגם עובד‬
‫‪ ‬מכיל תת‪-‬קבוצה של הפונקציונליות של המוצר‬
‫‪ ‬דוגמה‪:‬‬
‫‪‬‬
‫המוצר‪ :‬תוכנה לניהול תקבולים‪ ,‬תשלומים ואחסנה‬
‫‪‬‬
‫אב‪-‬טיפוס מהיר יכיל‪:‬‬
‫‪ ‬מסכים להכנסת נתונים‬
‫‪ ‬הדפסת דו"חות‬
‫‪‬‬
‫אב‪-‬טיפוס מהיר לא יכיל‪:‬‬
‫‪ ‬עדכון קבצים‬
‫‪ ‬הודעות שגיאה‬
‫‪ ‬נועד לסייע בגיבוש הדרישות לצורך מפרט‬
‫‪7‬‬
‫מודל אב‪-‬טיפוס מהיר (‪)rapid prototype‬‬
‫אב‪-‬טיפוס‬
‫אימות‬
‫שינוי בדרישות‬
‫אימות‬
‫ניתוח‬
‫אימות‬
‫תכן‬
‫אימות‬
‫מימוש‬
‫אימות‬
‫שילוב‬
‫אימות‬
‫הפעלה מבצעית‬
‫‪8‬‬
‫פרישה‬
‫פיתוח‬
‫אחזקה‬
‫אב‪-‬טיפוס מהיר ‪ -‬תכונות‬
‫‪ ‬אב‪-‬טיפוס הוא אב‪-‬טיפוס הוא אב‪-‬טיפוס!‬
‫‪ ‬אב‪-‬טיפוס נועד להדגים את המוצר הסופי ולא‬
‫לממש אותו‪:‬‬
‫‪ ‬אין להפוך אב‪-‬טיפוס למוצר!‬
‫‪‬‬
‫‪‬‬
‫‪9‬‬
‫אב‪-‬טיפוס יכול לשמש כמפרט ‪ ,‬אבל לא כתכן!‬
‫עדכן‪ ,‬שנה‪ ,‬בדוק ‪ -‬אבל בסוף השלך לפח!‬
‫מודל אינקרמנטלי‬
‫מבנה ‪1‬‬
‫ניתוח‬
‫מבנה ‪2‬‬
‫ניתוח‬
‫מבנה ‪n‬‬
‫תכן‬
‫ניתוח‬
‫תכן‬
‫מימוש‬
‫ושילוב‬
‫מסירה‬
‫תכן‬
‫מימוש‬
‫ושילוב‬
‫מימוש‬
‫ושילוב‬
‫מסירה‬
‫מסירה‬
‫קבוצת ניתוח‬
‫קבוצת תכן‬
‫‪10‬‬
‫קבוצת מימוש‬
‫מודל אינקרמנטלי ‪ -‬תכונות‬
‫‪ ‬יתרונות‬
‫‪‬‬
‫‪‬‬
‫ניתן להתחיל בעבודת הפיתוח מבלי להמתין להשלמת הנדסת‬
‫המערכת‬
‫עבודה במקביל ע”י קבוצות מקצועיות‬
‫‪ ‬חסרונות‬
‫‪‬‬
‫‪‬‬
‫סיכון גבוה‬
‫‪ ‬החלטות תכן ומימוש מתבססות על ניתוח חלקי בלבד‬
‫‪ ‬עלול לגרום סבבי שינויים ארוכים ויקרים‬
‫זהירות ממהירות מופרזת‬
‫‪CABTAB = Code A Bit Test A Bit ‬‬
‫‪ ‬המלצה‪ :‬שחרור גירסא ללקוח רק אחרי מספר סבבים‬
‫‪11‬‬
Barry Boehm )spiral( ‫המודל הלוליני‬
12
‫המודל הלולייני ‪ -‬הסבר‬
‫‪ ‬משלב בין מודל מפל המים לאב טיפוס‬
‫‪ ‬בכל סבב נבצע‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪13‬‬
‫זיהוי מטרות‪ ,‬אלטרנטיבות‪ ,‬ומגבלות בסבב נוכחי‬
‫בדיקת אלטרנטיבות ופתרון מגבלות‬
‫פיתוח ובדיקה של השלב הנוכחי‬
‫תיכנון השלב הבא‬
‫המודל הלולייני ‪ -‬תכונות‬
‫‪ ‬יתרונות‬
‫‪‬‬
‫ניתן להתאים את ההיקף של כל איטרציה לפי‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫כושר הפיתוח‬
‫היקפי הבדיקות‬
‫אילוצי זמנים‬
‫הסתכלות אחידה על פיתוח ‪ /‬מימוש ‪ /‬אחזקה‬
‫‪ ‬חסרונות‬
‫‪‬‬
‫‪‬‬
‫‪14‬‬
‫מתאים לתוכנה בהיקף גדול (‪)large-scale‬‬
‫מתאים לפיתוח פנימי (‪)in-house‬‬
‫תכנות קיצוני‬
‫)‪(Extreme Programming‬‬
‫‪ ‬ריבויי בניה (מספר פעמים ביום!!)‬
‫‪ ‬עבודת צוות עם נהלים מיוחדים‬
‫‪ ‬תכנות בזוגות מתחלפים‬
‫‪ ‬בדיקות רצופות בעזרת כלים ליצירה וניהול‬
‫‪ ‬מערכת "עובדת" עם יכולות מוגבלות‬
‫‪ ‬תכנון ומימוש מינימליים –לדרישות עד כה‬
‫‪ ‬תכנון מחדש )‪(refactorization‬‬
‫‪15‬‬
‫פיתוח מונחה‪-‬עצמים‬
‫(‪)Object-Oriented Development‬‬
‫‪ ‬מאפייני פיתוח מונחה‪-‬עצמים‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫מידה גבוהה של מודולריות‬
‫פיתוח במקביל‬
‫אינקרמטלי ואיטרטיבי מטבעו‬
‫שימוש חוזר (‪)reuse‬‬
‫‪ ‬מודלים מונחי‪-‬עצמים‬
‫‪‬‬
‫‪‬‬
‫‪16‬‬
‫תומכים באיטרטיביות בתוך כל שלב ובין השלבים‬
‫משלבים מקביליות ופיתוח אינקרמנטלי‬
‫מידול תהליך הפיתוח ‪ -‬סיכום‬
‫‪ ‬קיים מגוון גדול של מודלים‬
‫‪ ‬בפועל על כל חברה לייצר את המודל שמתאים לצרכיה‬
‫‪ ‬יש להתחשב בגורמים הבאים‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫הארגון (מטרות‪ ,‬אילוצים‪ ,‬תשתיות‪)... ,‬‬
‫ההנהלה (פתיחות‪ ,‬הבנה מקצועית‪ ,‬גיבוי‪)... ,‬‬
‫העובדים (הכשרה מקצועית‪ ,‬יחסי‪-‬אנוש‪)... ,‬‬
‫המוצר (מורכבות‪ ,‬ייחודיות‪ ,‬מספר וסוג המשתמשים)‬
‫‪“ ‬שלב והתאם” (‪)mix & match‬‬
‫‪‬‬
‫‪‬‬
‫‪17‬‬
‫מודלים שונים לרמות פיתוח שונות (מקרו‪ ,‬מיקרו)‬
‫מודלים שונים למרכיבים שונים‬
‫שיטות מידול מערכת‬
‫מידול פרוצדורלי או מונחה עצמים‬
‫‪18‬‬
‫שיטת המידול הפרוצדורלית‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫יתרונות‬
‫‪‬‬
‫‪‬‬
‫מידול ברור של פעילות המערכת ללא תלות באופן המימוש‬
‫חסרונות‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪19‬‬
‫פירוק היררכי של המערכת לרכיבים‪ ,‬לפי פעילות פונקציונלית‬
‫מאד מקובל באזור ‪1980‬‬
‫‪( DFD - data flow diagram‬נלמד עכשיו)‬
‫‪ERD - entity relationship diagram‬‬
‫פיתוח סדרתי‪ ,‬אינו מאפשר פיתוח אינקרמנטלי‬
‫מתאים למערכת נתונה‪ ,‬קשה להרחיב ולשפר‬
‫נדרש פיתוח מחדש‪ ,‬אין שימוש חוזר בחלקים קיימים‬
‫שיטת המידול מונחה העצמים‬
‫(נלמד בהמשך)‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫יתרונות‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫פיתוח איטרטיבי ואינקרמנטלי‬
‫מודולרי‪ ,‬מתאים להרחבות‪ ,‬שימוש חוזר בחלקים קיימים‬
‫מתאים לתוכנה שהיא ‪event driven‬‬
‫חסרונות‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪20‬‬
‫פירוק המערכת לרכיבים עם דגש על המידע והעצמים‬
‫מאד מקובל החל מ ‪1990‬‬
‫‪UML – Unified Modeling Language‬‬
‫אנליזה מורכבת של המערכת‪ ,‬פערים בין המודל למימוש‬
‫ניהול הפרויקט מורכב‪ ,‬הגדרת השלבים מטושטשת‬
‫מורכבות בגלל הקשרים בין העצמים מקשה על פיתוח ותחזוקה‬
‫– ‪CASE‬‬
‫‪Computer Assisted Software Engineering‬‬
‫‪ ‬כלים אוטומטים לתמיכה בתכנון ובפיתוח מערכות מידע‬
‫‪ ‬מאפשר יצירה שליפה ושמירה של מודלים‬
‫‪ ‬יתרונות‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪21‬‬
‫משפר את תהליך הפיתוח‬
‫מקל על תקשורת בין מנתחי המערכת למשתמשים‬
‫מאפשר זרימה רציפה בין שלבי הפיתוח‬
‫מקל על התחזוקה‬
DFD
DATA FLOW DIAGRAM
22
‫‪DFD- Data Flow Diagram‬‬
‫‪ ‬תרשים המתאר את זרימת המידע במערכת‬
‫‪ ‬מתאים למידול פרוצדורלי‬
‫‪ ‬נעשה שימוש בסימנים מוסכמים עבור‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪23‬‬
‫ישויות חיצוניות‬
‫תהליכים‬
‫מאגרי נתונים‬
‫זרימת מידע‬
‫‪....‬‬
‫הסימנים הבסיסיים‬
1
Add New
Customer
‫תהליך‬
D1
Customer Master
‫מאגר מיגע‬
Customer
‫ישות חיצונית‬
Customer Record
‫אפיק נתונים‬
24
‫דוגמא‪.‬‬
‫אנחנו נלמד איך "לקרוא" ‪ ,DFD‬ולא איך לרשום‪.‬‬
‫‪25‬‬