1 / 34

מודלים של מחזור חיי תוכנה Software Life-Cycle Models

מודלים של מחזור חיי תוכנה Software Life-Cycle Models. מקורות : S. R. Schach: Chapter 3 R. S. Pressman: Chapter 2. שיטות בהנדסת תוכנה - תוכנית הקורס. מבוא. מודלים של מחזור חיי תוכנה. הגדרת דרישות וניהולן. ניתוח מונחה-עצמים. תכן. אימות ותקפות. קידוד ובדיקות יחידה. מימוש ושילוב.

barnabas
Download Presentation

מודלים של מחזור חיי תוכנה Software Life-Cycle Models

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. מודלים של מחזור חיי תוכנהSoftware Life-Cycle Models מקורות: S. R. Schach: Chapter 3 R. S. Pressman: Chapter 2 מבוא להנדסת תוכנה

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

  3. במה לבחור ??? מה עומד על הפרק? • מהו מחזור-חיים של תוכנה • מודלים למחזור-חיים • בנה ותקן • מפל המים • אב-טיפוס מהיר • מודלים אינקרמנטליים • המודל הלולייני • מודלים מונחי-עצמים • מודל המזרקה • USDP (RUP) • תיכנות קיצוני מבוא להנדסת תוכנה

  4. ניתן לחזור על שלבים במהלך מחזור החיים מחזור חיים של תוכנה • מחזור חיים = שלבים בתהליך הפיתוח • התחלה: דרישת לקוח • סיום: אין יותר שימוש בתוכנה • שלבים בחייה של תוכנה • שלב הדרישות - Requirement phase • שלב הניתוח - Analysis phase • שלב התכן - Design phase • שלב המימוש - Implementation phase • שלב השילוב - Integration phase • שלב האחזקה - Maintenance phase • פרישה - Retirement מבוא להנדסת תוכנה

  5. If you don't have time to do it right, Where would you take the time to do it again??? פיתוח אחזקה בנה ותקן (build & fix) בנה גרסה ראשונה ערוך שינויים, עד שהלקוח מרוצה הפעלה מבצעית פרישה מבוא להנדסת תוכנה

  6. ראה מודלים “אב-טיפוס מהיר” ו”תיכנות קיצוני" בהמשך בנה ותקן - תכונות • רק חסרונות • אין מפרט • אין תכן • מתאים לתוכנה קטנה מאד (200-300 שורות?) • לכל תוכנה בגודל סביר נדרשים, לפחות: • תכנית פעולה ("game plan") • שלבים בפיתוח • אבני-דרך (milestones) מבוא להנדסת תוכנה

  7. ניתוח שילוב דרישות שינוי בדרישות תכן מימוש אימות אימות אימות אימות אימות אימות פיתוח אחזקה מודל מפל המים (waterfall model) Royce, 1970 הפעלה מבצעית פרישה מבוא להנדסת תוכנה

  8. מודל מפל המים - תכונות • "חוגי משוב" בין שלבים עוקבים • תהליך מונחה-תיעוד: • המעבר לשלב הבא מותנה (ותלוי!) בתיעוד השלב הקודם • יתרונות • תהליך מתועד • אחזקה קלה יותר • חסרונות • פורמאליות-יתר (המוצר מאופייןאך ורק באמצעות התיעוד) • מציאות רחוקה מהמודל--- אין פיתוח כזו !! מבוא להנדסת תוכנה

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

  10. שינוי בדרישות שילוב מימוש אב-טיפוס תכן ניתוח אימות אימות אימות אימות אימות אימות הפעלה מבצעית פיתוח אחזקה פרישה מודל אב-טיפוס מהיר (rapid prototype) מבוא להנדסת תוכנה

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

  12. ניתוח דרישות ארכיטקטורה אימות אימות אימות הנדסת מערכת הקמת מבנה (build) 1,2,...,n מימוש מימוש מימוש תכן מפורט מימוש שילוב בדיקות הפעלה מבצעית פיתוח מסירה אחזקה פרישה מודל אינקרמנטלי א' (incremental model) מבוא להנדסת תוכנה

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

  14. ניתוח ניתוח ניתוח מבנה 2 תכן תכן תכן מימוש ושילוב מימוש ושילוב מימוש ושילוב מבנה n מסירה מסירה מסירה קבוצת ניתוח קבוצת תכן קבוצת מימוש מודל אינקרמנטלי ב' מבנה 1 מבוא להנדסת תוכנה

  15. מודל אינקרמנטלי ב’ - תכונות • יתרונות • ניתן להתחיל בעבודת הפיתוח מבלי להמתין להשלמת הנדסת המערכת • עבודה במקביל ע”י קבוצות מקצועיות • חסרונות • סיכון גבוה • החלטות תכן ומימוש מתבססות על ניתוח חלקי בלבד • עלול לגרום סבבי שינויים ארוכים ויקרים • זהירות ממהירות מופרזת • CABTAB = Code ABit Test ABit מבוא להנדסת תוכנה

  16. המודל הלולייני (the spiral model) B. Boehm, 1988 תכנון planning ניתוח סיכונים risk analysis תוצרים הערכת לקוח customer evaluation הנדסה engineering מבוא להנדסת תוכנה

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

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

  19. מודל לולייני בפיתוח אינקרמנטלי תכנון planning ניתוח סיכונים risk analysis build4 build3 build2 build1 הערכת לקוח customer evaluation הנדסה engineering מבוא להנדסת תוכנה

  20. מודל לולייני בפיתוח ואחזקת מוצר תכנון planning ניתוח סיכונים risk analysis אחזקה פיתוח דור משופר פיתוח מוצר חדש דגם היתכנות הערכת לקוח customer evaluation הנדסה engineering מבוא להנדסת תוכנה

  21. מודל לולייני ב”אב-טיפוס מהיר” תכנון planning ניתוח סיכונים risk analysis מימוש תכן מפרט אב-טיפוס מהיר הערכת לקוח customer evaluation הנדסה engineering מבוא להנדסת תוכנה

  22. מודל לולייני מלא ל”מפל המים”(ע”פ Boehm) מבוא להנדסת תוכנה

  23. המודל הלולייני - תכונות נוספות • יתרונות • ניתן להתאים את ההיקף של כל איטרציה לפי: • כושר הפיתוח • היקפי הבדיקות • אילוצי זמנים • הסתכלות אחידה על פיתוח / מימוש / אחזקה • חסרונות • מתאים לתוכנה בהיקף גדול (large-scale) • מתאים לפיתוח פנימי (in-house) מבוא להנדסת תוכנה

  24. פיתוח מונחה-עצמים(Object-Oriented Development) • מאפייני פיתוח מונחה-עצמים • מידה גבוהה של מודולריות • פיתוח במקביל • אינקרמטלי ואיטרטיבי מטבעו • שימוש חוזר (reuse) • מודלים מונחי-עצמים • תומכים באיטרטיביות בתוך כל שלב ובין השלבים • משלבים מקביליות ופיתוח אינקרמנטלי מבוא להנדסת תוכנה

  25. לא להיגרר ל- CABTAB! מודל המזרקה (fountain model) אחזקה פיתוח המשך הפעלה מבצעית כל שלב הוא איטרטיבי בעצמו שילוב התוצרים מכל שלב ניתנים לשימוש-חוזר (reuse) בכל השלבים מימוש תכן מונחה-עצמים ניתוח מונחה-עצמים דרישות “מאגר” התוכנה מבוא להנדסת תוכנה

  26. Phases Inception Elaboration Construction Transition Business Modeling Requirements Analysis and Design Implementation Test Deployment Config. & Change Management Project Management Environment preliminary iteration(s) iter. #1 iter. #2 iter. #n iter. #n+1 iter. #n+2 iter. #m iter. #m+1 Organization along Time USDP = Unified Software Development Process RUP = Rational Unified Process Core Workflows Process Organization along Content Supporting מבוא להנדסת תוכנה

  27. Requirements Analysis & Design Initial Planning Planning Implementation Deployment Evaluation כל איטרציה מפיקה גירסה עובדת! Test מודל אינקרמנטלי/איטרטיבי ע”פ USDP מבוא להנדסת תוכנה

  28. תיכנות קיצוני(Extreme Programming) • ריבויי בניה (מספר פעמים ביום!!) • עבודת צוות עם נוהלים מיוחדים • תיכנות בזוגות מתחלפים • בדיקות רצופות בעזרת כלים ליצירה וניהול • מערכת "עובדת" עם יכולות מוגבלות • תיכנון ומימוש מינימליים –לדרישות עד כה • תיכנון מחדש (refactorization) מבוא להנדסת תוכנה

  29. תיכנות קיצוני (המשך) • תיאור דרישות בעזרת "סיפורי משתמש" • מבני ומסודר---אך עם "תרבות ה-hacker " • מאד באופנה כרגע • מעורר מחלוקת (בכוונה?) • מזניח תיאור דרישות ותיעוד (??) • האם יתאים למערכות גדולות ולתחזוקה? • נראה פירוט בהמשך הקורס...... מבוא להנדסת תוכנה

  30. מרכיבים מוכנים----Components • גל העתיד בפיתוח • סוף-סוף שימוש חוזר אמיתי בתוכנה • Middleware בין רמת ה-system ומערכת ספציפית "שלנו" שיש לפתח • חסר שילוב של השימוש במרכיבים מוכנים בכל הגישות לפיתוח • קשה לתאר ברמת התכן • קשה לתאר תיאום של מרכיבים לצרכים מיוחדים של המערכת "שלנו" מבוא להנדסת תוכנה

  31. שילוב של-Concerns • ישנם בעיות ה"חותכות" לרוחב האירגון של המערכת (cross-cutting concerns) • דוגמאות: נגישות, פרטיות, איסוף מידע על ביצועים • Aspect Oriented Software Development • מרחיב את כל הגישות לפיתוח, בכל השלבים • נראה יותר בהמשך מבוא להנדסת תוכנה

  32. בחירת המודל המתאים הינה קריטית לא פחות מהחלטות פיתוח אחרות במה לבחור? • יש להתחשב בגורמים הבאים: • הארגון (מטרות, אילוצים, תשתיות, ...) • ההנהלה (פתיחות, הבנה מקצועית, גיבוי, ...) • העובדים (הכשרה מקצועית, יחסי-אנוש, ...) • המוצר (מורכבות, ייחודיות, מספר וסוג המשתמשים) • “שלב והתאם” (mix & match) • מודלים שונים לרמות פיתוח שונות (מקרו, מיקרו) • מודלים שונים למרכיבים שונים מבוא להנדסת תוכנה

  33. אז מה היה לנו...? • מהו מחזור-חיים של תוכנה • מודלים למחזור-חיים • בנה ותקן • מפל המים • אב-טיפוס מהיר • מודלים אינקרמנטליים • המודל הלולייני • מודלים מונחי-עצמים • מודל המזרקה • USDP (RUP) • תיכנות קיצוני מבוא להנדסת תוכנה

  34. וכעת נעבור ל... הגדרת דרישות וניהולן מבוא להנדסת תוכנה

More Related