Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "מודלים של מחזור חיי תוכנה Software Life-Cycle Models"— Presentation transcript:

1 מודלים של מחזור חיי תוכנה Software Life-Cycle Models
מבוא להנדסת תוכנה מודלים של מחזור חיי תוכנה 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 ערוך שינויים, עד שהלקוח מרוצה
בנה ותקן (build & fix) בנה גרסה ראשונה ערוך שינויים, עד שהלקוח מרוצה If you don't have time to do it right, Where would you take the time to do it again??? הפעלה מבצעית © , ד"ר עמיר תומר פרישה פיתוח אחזקה מבוא להנדסת תוכנה

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

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

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

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

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

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

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

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

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

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

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 מודל המזרקה (fountain model)
אחזקה פיתוח המשך הפעלה מבצעית כל שלב הוא איטרטיבי בעצמו שילוב התוצרים מכל שלב ניתנים לשימוש-חוזר (reuse) בכל השלבים מימוש תכן מונחה-עצמים לא להיגרר ל- CABTAB! ניתוח מונחה-עצמים © , ד"ר עמיר תומר דרישות “מאגר” התוכנה מבוא להנדסת תוכנה

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

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

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

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

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

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

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

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

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


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

Similar presentations


Ads by Google