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

Slides:



Advertisements
Similar presentations
Figures-Chapter 2.
Advertisements

Object Oriented 33 MCSD DORON AMIR
תוכנה 1 סמסטר א ' תשע " ב תרגול מס ' 7 * מנשקים, דיאגרמות וביטים * לא בהכרח בסדר הזה.
בתרגול הקודם הורשה: –ניתן להרחיב רק מחלקה אחת –כל מה שלא private – עובר בהורשה –המילה השמורה super –יצירת היררכיה –Object היא שורש ההיררכיה –דריסה אופרטור.
1 Formal Specifications for Complex Systems (236368) Tutorial #4 Refinement in Z: data refinement; operations refinement; their combinations.
Based on presentation by Mira Balaban Department of Computer Science Ben-Gurion university Based on slides of: Igor Potapov :
SW LIFE -CYCLE MODELS.
1 מסגרת הפרויקט הפרויקט מחולק ל – 4 גירסאות ( שניים בסמסטר, 6 שבועות כל גירסא ) o גירסא 1 – תכנון על ואב - טיפוס o גירסא 2-4 – פיתוח באג ' יל תוך יישום.
RUP/UP Software Development Method Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
Framework For Teaching מסגרת לפיתוח מקצועי של מורים רקע מהי המסגרת ? הנחות על למידה והוראה מיטביים שימושים.
סמינר על סוגיות במדעי המחשב מרצה : עמי ברלר מכללת " אחווה " 2003.
© , ד"ר עמיר תומר שיטות בהנדסת תוכנה (234321) אודות הקורס - 1 שיטות בהנדסת תוכנה Introduction to Software Engineering מרצה: פרופ’ שמואל.
מבוא Introduction מקורות: S. R. Schach: Chapters 1-2
To Learn or to be Taught? Harnessing Technology to Enhance Self Regulated Learning.
1 העלאת המודעות לחשיבות של תיעוד תוכנה, באמצעות משחק תפקידים היברידי H YBRID T EAM -B ASED R OLE P LAY AS A V EHICLE FOR I MPROVING S OFTWARE D OCUMENTATION.
© , ד"ר עמיר תומר מבוא להנדסת תוכנה דרישות - 1 הגדרת דרישות וניהולן Requirements Definition and Management מקורות: S. R. Schach: Chapter 9 R.
הוספת מנשק משתמש ל - [ תפקידי רוחב בצוות ]. Features סיפוריםחבר צוות אחראי הערכת זמן ( בשעות ) זמן בפועל ( בשעות ) הושלם ( כן \ לא )
דוד שוורץ, עידן זק, נטע צור וחיה כהן. הפונקציונאליות : המשתמש יבחר קובץ שעליו הוא רוצה לבצע את האנליזה, וילחץ עליו עם כפתור ימני בעכבר. יפתח תפריט ובו.
אתר הקורס: צוות הקורס: מרצה: אלדר פישר, טאוב
The Implementation of a Cost Effectiveness Analyzer for Web- Supported Instruction: A Case Study Anat Cohen, Rafi Nachmias (Tel Aviv University)
שאלות חזרה לבחינה. שאלה דיסקים אופטיים מסוג WORM (write-once-read-many) משמשים חברות לצורך איחסון כמויות גדולות של מידע באופן קבוע ומבלי שניתן לשנותו.
1 SOFTWARE LIFE-CYCLES Beyond the Waterfall. 2 Requirements System Design Detailed Design Implementation Installation & Testing Maintenance The WATERFALL.
מבוא להנדסת תוכנה דרישות - 1 הגדרת דרישות וניהולן Requirements Definition and Management.
1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations.
אפרת פיטרסה / האוניברסיטה הפתוחה חקר מקרה של פיתוח מערכת למידה מבוססת אינטרנט ע"י קונסורציום של בתי ספר.
בדיקה וגיבוש של רעיון עסקי Jonathan Klahr Associate BRM
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
הבטחת איכות מבוא להנדסת תוכנה
משחק מכף לכף כבסיס לסיעור מוחין משותף אביגיל אורן תמי זייפרט דוד מיודוסר
אתר הקורס: צוות הקורס: מרצה: אמיר שפילקה, טאוב
SSDL פרויקט שנתי בהנדסת תוכנה שחר דג אודות שירותים מחשבים (מי הכי מהיר) הדפסה תוכנה עזרה שאלות נפוצות באתר המעבדה
פרויקט שנתי במערכות מידע /6
אתר הקורס: צוות הקורס: מרצה: אלדר פישר, טאוב
מבוא להנדסת תוכנה אימות ותקפות - 1 אימות ובדיקות Verification & Testing מקורות: S. R. Schach: Chapter 6 R. S. Pressman: Chapter ד. גלין ו-ז. בלובבנד,
Galileo Navigation System Software Systems lab Software Systems lab סמסטר חורף תשס " ט סמסטר חורף תשס " ט מנחה: ולדימיר זדורנוב משה חיות מבצעים: גליה סימנובסקי.
© , ד"ר עמיר תומר מבוא להנדסת תוכנה תחזוקה - 1 תחזוקה והנדסה-מחדש Maintenance and Reengineering מקורות: S. R. Schach: Chapter 15 R. S. Pressman:
© , ד"ר עמיר תומר מבוא להנדסת תוכנה תכן - 1 שימוש חוזר Reuse מקורות: S. R. Schach: Chapter 8 R. S. Pressman: Chapter ?
כלים לניהול פרקטי של הסיכון התפעולי
עקרון ההכלה וההדחה.
מערכות הפעלה ( אביב 2006) חגית עטיה © 1 סיכום הקורס.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב' Templates תבניות.
מבוא למדעי המחשב, סמסטר א ', תשע " א תרגול מס ' 1 נושאים  הכרת הקורס  פסאודו - קוד / אלגוריתם 1.
© , ד"ר עמיר תומר שיטות בהנדסת תוכנה (234321) אודות הקורס - 1 שיטות בהנדסת תוכנה Introduction to Software Engineering מרצה : פרופ ’ שמואל.
Markov Decision Processes (MDP) תומר באום Based on ch. 14 in “Probabilistic Robotics” By Thrun et al. ב"הב"ה.
מהי מערכת ומהי מערכת מידע?
דגמי שימוש ושיתופיות בסביבת ויקי בקורסים אקדמיים חגית מישר-טל ועדנה טל-אלחסיד.
הנחיית פרויקטים במדעי המחשב אורני מרבאום-סלנט אורית חזן השתלמות מורים
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
Copyright © 2003 Fair Isaac Corporation and Ness AT Corp. All rights reserved. מנוע חוקים עסקיים Blaze Advisor מציג: גיל ששון, מנהל המוצר
חברת BitLee קורס : VHDL יישומי לתעשיה. VHDL- Very high speed integrated circuits Hardware Description Language.
Yaron Doweck Yael Einziger Supervisor: Mike Sumszyk 1.
מבוא לייצור ממוחשב - CIM מבוא. מטרות הקורס הקורס מיועד להקנות הבנה בטכנולוגיה, תכנון יישום ובקרה של מערכות ייצור ממוחשבות. הקורס ידון ביישום טכנולוגיות.
Visual Studio Team System Visual Studio Team System הילה להב רייס מנהלת תחום Life Cycle Management מנהלת תחום Life Cycle
שיאון שחוריMilOSS-il מוטיבציה  python זה קל ו C זה מהיר. למה לא לשלב?  יש כבר קוד קיים ב C. אנחנו רוצים להשתמש בו, ולבסס מעליו קוד חדש ב python.
Formal Specifications for Complex Systems (236368) Tutorial #1
מערכות בסיסי נתונים ספרות Database System Concepts/ Korth, Siberschatz
תכן UML in Design מקורות: S. R. Schach: Chapter 12
עבודה עם נתונים באמצעות ADO.NET
השוואת נתונים למודל הסתברותי - כללית
Rational Unified Process (RUP)
מבוא ל Maven אליהו חלסצ'י תכנות מתקדם תרגול מספר 3
ארגון ושיטות -אונ' בן גוריון בנגב
ניתוח מערכות מידע א' הרצאה 1
מטרות מערכת בקרת מבנה BMS – BUILDING MANAGEMENT SYSTEM
CONFIGURATION SELECTION MANAGEMENT & CONTROL
תהליכים-דייאט: חוטים מוטיבציה חוטי משתמש וחוטי מערכת
Shell Scripts בסביבת UNIX
מבוא למערכות מידע פרק 1.
מערכות מידע ניהוליות היבט יישומי: מהי מערכת מידע מהו ארגון
Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

מודל לולייני בפיתוח אינקרמנטלי תכנון planning ניתוח סיכונים risk analysis build4 build3 © 1999-2001, ד"ר עמיר תומר build2 build1 הערכת לקוח customer evaluation הנדסה engineering מבוא להנדסת תוכנה

מודל לולייני בפיתוח ואחזקת מוצר תכנון planning ניתוח סיכונים risk analysis אחזקה פיתוח דור משופר © 1999-2001, ד"ר עמיר תומר פיתוח מוצר חדש דגם היתכנות הערכת לקוח customer evaluation הנדסה engineering מבוא להנדסת תוכנה

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

מודל לולייני מלא ל”מפל המים” (ע”פ Boehm) © 1999-2001, ד"ר עמיר תומר מבוא להנדסת תוכנה

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

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

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

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 © 1999-2001, ד"ר עמיר תומר Config. & Change Management Supporting Project Management Environment preliminary iteration(s) iter. #1 #2 #n #n+1 #n+2 #m #m+1 Organization along Time מבוא להנדסת תוכנה

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

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

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

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

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

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

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

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