אתם קוראים לזה הנדסה?
Download
Report
Transcript אתם קוראים לזה הנדסה?
ד"ר דן אהרוני
ביה"ס להנדסה במכללה האקדמית כינרת בעמק הירדן
ומחשבה — מרכז המורים הארצי למדעי המחשב
חלקי ההרצאה
הבעייתיות בפיתוח תוכנה
מהי "הנדסה"?
מודלים של מחזור חיי תוכנה
מבט כללי על תהליך פיתוח התוכנה
הפקת דרישות
עיצוב ארכיטקטורה
בדיקות תוכנה
הבטחת איכות
מה 'כפת לנו?
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 3
אתה נמצא כאן:
הבעייתיות בפיתוח תוכנה
מהי "הנדסה"?
מודלים של מחזור חיי תוכנה
מבט כללי על תהליך פיתוח התוכנה
הפקת דרישות
עיצוב ארכיטקטורה
בדיקות תוכנה
הבטחת איכות
מה 'כפת לנו?
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 4
הבעייתיות בפיתוח תוכנה
[]...
:ג ויתכנתו המתכנתים,
בשיטת "קודד ותקן" ( )code and fixתכנתו:
ד ויראו כי טוב:
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 5
הבעייתיות בפיתוח תוכנה
איכות גרועה
תקלות
תפקודים חסרים
חוסר אמינות
קושי לתחזק
זמן פיתוח ארוך
"ז
חריגות מלו
עלות גבוהה
חריגות מתקציב
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 6
הבעייתיות בפיתוח תוכנה
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 7
אתה נמצא כאן:
הבעייתיות בפיתוח תוכנה
מהי "הנדסה"?
מודלים של מחזור חיי תוכנה
מבט כללי על תהליך פיתוח התוכנה
הפקת דרישות
עיצוב ארכיטקטורה
בדיקות תוכנה
הבטחת איכות
מה 'כפת לנו?
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 8
הנדסה (?)Engineering
"
מהי"
מדע בסיסי
קנה
מידה
זמן
עלויות
איכות
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
מוצר
שקופית 9
דיסציפלינות המרכיבות הנדסה
כלים
מודלים של
מחזור החיים
הבטחת איכות
דיסציפלינות ניהול
פעילויות פיתוח
מדע בסיסי
ניהול תצורה
מתמטיקה
שיטות פיתוח
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 10
דיסציפלינות המרכיבות הנדסה
כלים
כלי מחשוב הופכים את החיים לקלים יותר!
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 11
אתה נמצא כאן:
הבעייתיות בפיתוח תוכנה
מהי "הנדסה"?
מודלים של מחזור חיי תוכנה
מבט כללי על תהליך פיתוח התוכנה
הפקת דרישות
עיצוב ארכיטקטורה
בדיקות תוכנה
הבטחת איכות
מה 'כפת לנו?
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 12
מודלים של מחזור חיי תוכנה
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 13
מודלים גנריים של מחזור חיי תוכנה
ועוד
ועוד
מודל מפל המים
בניית אבטיפוס
ועוד
פיתוח זריז
)(Agile development
ועוד
V1
V2
V
3
פיתוח אבולוציוני
בדיקות
התמרה 1
התמרה 2
התמרה ...
התמרה n
מפרט
פורמאלי
התמרה פורמאלית
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
מודל הרכבת הרכיבים
ועוד
שקופית 14
מודל מפל המים — מודל הבסיס לכל המודלים
הגדרת דרישות
Requirements Def.
עיצוב מערכת ותוכנה
System & SW design
מימוש ובדיקת יחידות
Implementation
& unit testing
אינטגרציה ובדיקות מערכת
Integration & sys. test.
פעולה ותחזוקה
& Operation
maintenance
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 15
מודל מפל המים — מודל הבסיס לכל המודלים
יתרונות
הגדרת דרישות
Requirements Def.
פיתוח מסודר ולוגי
הכל מתועד היטב
עיצוב מערכת ותוכנה
עבודה "לפי הספר"
System & SW design
מימוש ובדיקת יחידות
Implementation
& unit testing
אינטגרציה ובדיקות מערכת
Integration & sys. test.
פעולה ותחזוקה
& Operation
maintenance
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 16
מודל מפל המים — מודל הבסיס לכל המודלים
חסרונות
הגדרת דרישות
Requirements Def.
סיכון גבוה לנפילה ל"בור הזפת" של הדרישות
(”)the requirements “tarpit
" הכל או לא כלום"
עיצוב מערכת ותוכנה
System & SW design
דורש סבלנות מהלקוח
מימוש ובדיקת יחידות
Implementation
& unit testing
אינטגרציה ובדיקות מערכת
Integration & sys. test.
פעולה ותחזוקה
& Operation
maintenance
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 17
מודל מפל המים — מודל הבסיס לכל המודלים
בכל זאת…
הגדרת דרישות
או
"אדון מרצה ,למה אתה בכלל מלמד את זה?"
למעשה ,כל המודלים האחרים הם
ווריאציות על מודל מפל המים
Requirements Def.
עיצוב מערכת ותוכנה
System & SW design
מימוש ובדיקת יחידות
Implementation
& unit testing
אינטגרציה ובדיקות מערכת
Integration & sys. test.
פעולה ותחזוקה
& Operation
maintenance
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 18
מודל הפיתוח האבולוציוני
Evolutionary Development Model
עיצוב
ארכיטקטורה
דרישות
תוכנה
שימוש ,תחזוקה
ותמיכה
שחרור
התוכנה
בנייה
אינטגרציה
ובדיקות
V1
דוקומנטציה
V2
בדיקת תוקף
Validation
testing
V3
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 19
המודל האינקרמנטאלי
אספקת
אינקרמנט 1
אספקת
אינקרמנט 2
אספקת
אינקרמנט 3
בדיקות
בדיקות
קידוד
עיצוב
בדיקות
קידוד
עיצוב
בדיקות
קידוד
קידוד
עיצוב
עיצוב
ניתוח
ניתוח
ניתוח
ניתוח
אספקת
אינקרמנט 4
זמן קלנדרי
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 20
המודל האינקרמנטאלי
אספקת
אינקרמנט 1
אספקת
אינקרמנט 2
אספקת
אינקרמנט 3
בדיקות
בדיקות
קידוד
עיצוב
בדיקות
קידוד
עיצוב
בדיקות
קידוד
קידוד
עיצוב
עיצוב
ניתוח
ניתוח
ניתוח
ניתוח
אספקת
אינקרמנט 4
זמן קלנדרי
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 21
בניית אבטיפוס ()prototyping
מטרות:
• הבנה טובה יותר של צרכי המשתמש
• בדיקת היתכנות ()feasibility study
גישות בבניית אבטיפוס
עשוי להפוך
למערכת התפעולית (לטוב ולרע)
מתאים במיוחד לממשקי משתמש
אבטיפוס בר-ביצוע +
מפרט מערכת
בניית אבטיפוס להשלכה
)(throw-away prototyping
דרישות
כלליות
מערכת לאספקה
בניית אבטיפוס מתפתח
)(evolutionary prototyping
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 22
מודל הרכבת רכיבים ()Component assembly
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 23
מודל הרכבת רכיבים ()Component assembly
התוכנה מורכבת ממרכיבים קיימים
מסגרת טובה :תמ"ע
פוטנציאל מצוין להקטנת התקציב
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 24
שיטות פיתוח זריז ()Agile Development
מנשר הפיתוח הזריז — The Agile Manifesto
"למדנו להעריך:
בני אדם ופעולות גומלין על פני תהליכים וכלים
תוכנה עובדת על פני תיעוד מקיף
שיתוף פעולה עם הלקוח על פני משא ומתן דרך חוזה
היענות לשינויים על פני התקדמות על פי התכנית
כלומר ,בעוד שיש ערך לפריטים משמאל ,אנחנו
מעריכים יותר את הפריטים מימין".
http://www.agilemanifesto.org/
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 25
שיטות פיתוח זריז ()Agile Development
עקרונות הפיתוח הזריז
במקום הראשון :סיפוק הלקוח ,ע"י אספקה מהירה ומתמשכת של תוכנה עובדת.
בני אדם ופעולות גומלין על פני תהליכים וכלים
תוכנה עובדת על פני תיעוד מקיף
שיתוף פעולה עם הלקוח על פני משא ומתן דרך חוזה
היענות לשינויים על פני התקדמות על פי התכנית
אנשי העסקים —
חלק מהצוות כל הזמן
גרסה
כל שבועיים – חודשיים
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 26
שיטות פיתוח זריז ()Agile Development
עקרונות הפיתוח הזריז
במקום הראשון :סיפוק הלקוח ,ע"י אספקה מהירה ומתמשכת של תוכנה עובדת.
הלקוח רוצה עוד
בית התוכנה מספק
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 27
שיטות פיתוח זריז ()Agile Development
תכנות מוקצן ()XP — Extreme Programming
שם לא מוצלח; מוטב היה:
פיתוח מוקצן ()Extreme Development
מקור מצויין לקבלת סקירה על :XP
http://www.extremeprogramming.org/
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 28
שיטות פיתוח זריז ()Agile Development
תכנות מוקצן ()XP — Extreme Programming
מאפיינים — תשובות קיצוניות לשאלות רציניות
בעיות של "שיתוק" דרישות וארכיטקטורה?
דרישות וארכיטקטורה :עיצוב לאורך הדרך
דרישות = סיפורי משתמש; מממשים אחד בכל שלב
לא מקדישים מספיק זמן לבדיקות?
כותבים את הבדיקות תחילה
תכנות מוכוון בדיקות ()Test Driven Development — TDD
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 29
שיטות פיתוח זריז ()Agile Development
קורס הנדסת תוכנה
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 30
שיטות פיתוח זריז ()Agile Development
תכנות מוקצן ()XP — Extreme Programming
מאפיינים — תשובות קיצוניות לשאלות רציניות
בעיות של "שיתוק" דרישות וארכיטקטורה?
דרישות וארכיטקטורה :עיצוב לאורך הדרך
דרישות = סיפורי משתמש; מממשים אחד בכל שלב
לא מקדישים מספיק זמן לבדיקות?
כותבים את הבדיקות תחילה
תכנות מוכוון בדיקות ()Test Driven Development — TDD
אין מספיק סקרי עמיתים ( )peer reviewואיכות קוד?
סקר עמיתים קבוע באמצעות תכנות בזוגות
קשה לקבל תגובות של הלקוח?
הצוות :מתכנתים +נציג הלקוח באתר
קשה לשמור על איכות קוד בעבודה לאורך שעות?
שבוע עבודה של 40שעות
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 31
אתה נמצא כאן:
הבעייתיות בפיתוח תוכנה
מהי "הנדסה"?
מודלים של מחזור חיי תוכנה
מבט כללי על תהליך פיתוח התוכנה
הפקת דרישות
עיצוב ארכיטקטורה
בדיקות תוכנה
הבטחת איכות
מה 'כפת לנו?
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 32
פעילויות המפתח בפיתוח תוכנה — סיכום
ניתוח דרישות תוכנה והכנת מפרטים
עיצוב ארכיטקטורת תוכנה
בניית
שילוב
התוכנה
בדיקות שילוב
עיצוב מפורט,
קידוד,
בדיקת יחידות
תכנון
בדיקות
תיקוף
בדיקות תיקוף
שחרור והתקנה
תחזוקה ותמיכה
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 33
פעילויות המפתח בפיתוח מערכת
ניתוח דרישות מערכת והכנת מפרטים
עיצוב (תכן ,תיכון) מערכת
דרישות תוכנה
תכנון
שילוב
)(Integration
מערכת
דרישות חומרה
תמיכת הנדסת המערכת :עיצוב חומרה
עיצוב תוכנה
תכנון
תכנון
בקרת ממשקים
בניית שילוב בדיקות
בניית שילוב בדיקות
אבטיפוס
תיאום חומרה/תוכנה
חומרה חומרה תיקוף
תוכנה תוכנה תיקוף
ניהול דרישות מערכת
בדיקות שילוב חומרה
בדיקות שילוב תוכנה
ניהול עיצוב מערכת
בדיקות תיקוף חומרה
בדיקות תיקוף תוכנה
תיעוד למשתמש
שחרור תוכנה
תכנון
בדיקות
תיקוף
מערכת
שחרור חומרה
שילוב מערכת
בדיקות תיקוף מערכת
שחרור גרסת מערכת
תחזוקת גרסה
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 34
מטריצת תהליך הנדסת תוכנה
סוגיות
דרישות תוכנה
עיצוב
ארכיטקטורה
בניית התוכנה:
• עיצוב מפורט
• קידוד
• בדיקות יחידה
שילוב
פעילויות
בדיקות תיקוף
שחרור ופריסה
תחזוקה
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 35
מטריצת תהליך הנדסת תוכנה
סוגיות
תוצרים
מפרטים
תיאורים
תרשימים
קוד מקור
דרישות תוכנה
עיצוב
ארכיטקטורה
בניית התוכנה:
• עיצוב מפורט
• קידוד
• בדיקות יחידה
שילוב
פעילויות
בדיקות תיקוף
שחרור ופריסה
תחזוקה
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 36
מטריצת תהליך הנדסת תוכנה
סוגיות
תוצרים
נהגי פיתוח תוצרים
מפרטים
תיאורים
תרשימים
קוד מקור
נהלים
תקנים
שיטות
כלים
דרישות תוכנה
עיצוב
ארכיטקטורה
בניית התוכנה:
• עיצוב מפורט
• קידוד
• בדיקות יחידה
שילוב
פעילויות
בדיקות תיקוף
שחרור ופריסה
תחזוקה
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 37
מטריצת תהליך הנדסת תוכנה
סוגיות
תוצרים
מפרטים
תיאורים
תרשימים
קוד מקור
נהגי פיתוח תוצרים נהגי הבטחת איכות תוכנה
נהלים
תקנים
שיטות
כלים
הערכת תוצרים
הערכת התהליך
מבדקים פנימיים
פעולות מתקנות
דרישות תוכנה
עיצוב
ארכיטקטורה
בניית התוכנה:
• עיצוב מפורט
• קידוד
• בדיקות יחידה
שילוב
פעילויות
בדיקות תיקוף
שחרור ופריסה
תחזוקה
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 38
מטריצת תהליך הנדסת תוכנה
סוגיות
תוצרים
מפרטים
תיאורים
תרשימים
קוד מקור
נהגי פיתוח תוצרים נהגי הבטחת איכות תוכנה נהגי בקרת תוצרים
נהלים
תקנים
שיטות
כלים
הערכת תוצרים
הערכת התהליך
מבדקים פנימיים
פעולות מתקנות
בקרת מסמכים
בקרת קוד מקור
בקרת גרסאות
בקרת שינויים
דרישות תוכנה
עיצוב
ארכיטקטורה
בניית התוכנה:
• עיצוב מפורט
• קידוד
• בדיקות יחידה
שילוב
פעילויות
בדיקות תיקוף
שחרור ופריסה
תחזוקה
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 39
מטריצת תהליך הנדסת תוכנה
תוצרים
מפרטים
תיאורים
תרשימים
קוד מקור
נהגי פיתוח תוצרים נהגי הבטחת איכות תוכנה נהגי בקרת תוצרים
נהלים
תקנים
שיטות
כלים
הערכת תוצרים
הערכת התהליך
מבדקים פנימיים
פעולות מתקנות
בקרת מסמכים
בקרת קוד מקור
בקרת גרסאות
בקרת שינויים
דרישות תוכנה
עיצוב
ארכיטקטורה
בניית התוכנה:
• עיצוב מפורט
• קידוד
• בדיקות יחידה
שילוב
בדיקות תיקוף
שחרור ופריסה
תחזוקה
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 40
אתה נמצא כאן:
הבעייתיות בפיתוח תוכנה
מהי "הנדסה"?
מודלים של מחזור חיי תוכנה
מבט כללי על תהליך פיתוח התוכנה
הפקת דרישות
עיצוב ארכיטקטורה
בדיקות תוכנה
הבטחת איכות
מה 'כפת לנו?
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 41
רמות של דרישות
• דרישות
של השיווק
רמת השיווק
עם הפנים
למשתמש
• דרישות
• עיצוב
של המערכת
רמת המערכת
רמת התוכנה/חומרה
• דרישות
• עיצוב
של החומרה
רמת רכיבי התוכנה
• דרישות
• עיצוב
של התוכנה
• דרישות
• עיצוב
של תת-מערכת
בתוכנה
• דרישות
• עיצוב
של רכיב תוכנה
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 42
טיפוסי דרישות תוכנה
דרישות פונקציונאליות
השירותים שהמערכת צריכה לספק
דרישות לא-פונקציונאליות
תכונות המערכת ואילוצי התהליך
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 43
דרישות לא-פונקציונאליות
דרישות לא פונקציונאליות
דרישות חיצוניות
דרישות ארגוניות
דרישות מוצר
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 44
דרישות לא-פונקציונאליות
דרישות לא פונקציונאליות
דרישות חיצוניות
דרישות
חוקתיות
דרישות
אתיות
דרישות
בטיחות
דרישות
פרטיּות
דרישות ארגוניות
דרישות
פעולה הדדית
דרישות
תקנים
דרישות
ניידות
דרישות מימוש
(סביבת פיתוח,
שפה וכו')
דרישות מוצר
דרישות
מהימנות
דרישות
יעילות
דרישות
שימושיות
דרישות
אספקה
דרישות
מקום
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
דרישות
ביצועים
שקופית 45
טיפוסי דרישות תוכנה (המשך)
דרישות פונקציונאליות
דרישות לא-פונקציונאליות
השירותים שהמערכת צריכה לספק
ממשק משתמש
תכונות המערכת ואילוצי התהליך
דרישות ממשק
ממשק משתמש
חומרה-תוכנה
תוכנה-תוכנה
תוכנה-תקשורת
…
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 46
פעילויות בהפקת דרישות תוכנה
תיחום הפרויקט
זיהוי הדרישות
ייצוג הדרישות
ניתוח הדרישות
אימות הדרישות
תיקוף הדרישות
בקרת הדרישות
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 47
תיחום הפרויקט — תרשים הֶ קשֵ ר
מחשב
ראשי
לקוח
כספומט
נציג
שרות לקוחות
טכנאי תחזוקה
של כספומטים
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 48
שיטות לייצוג דרישות
שפה טבעית
מודל הישויות והקשרים
מקרי שימוש ותסריטים
בניית אבטיפוס
מכונות מצבים סופיות
…
הערה :כל הנ"ל אינם זרים הדדית ()mutually exclusive
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 49
שיטות לייצוג דרישות
שפה טבעית
המערכת המוצגת כאן ,היא מערכת של כספומט .מערכת זו מאפשרת ללקוח
לבצע פעולות שונות מבלי להזדקק לעזרתו של פקיד הבנק .בצורה זו בלה
בלה בלה בלה בלה בלה…
המערכת תהיה מאובטחת מבחינת התקשורת ,וכן המערכת תוודא את זהותו
של המשתמש באמצעות כרטיס האשראי שיוכנס למערכת עם תחילתו של כל
מושב בו המשתמש בלה בלה בלה בלה בלה בלה בלה…
הלקוח יתחיל את פעולתו בהכנסת הכרטיס למכשיר הכספומט .המערכת
תתקשר למחשב המרכזי ,ותוודא שאכן הכרטיס הוא תקף .במידה שלא ,היא
תודיע למשתמש בלה בלה בלה בלה בלה .אם הבדיקה הצליחה ,המערכת
תבקש מהמשתמש להכניס קוד אישי ,אותו היא תבדוק בלה בלה בלה בלה…
בלה בלה בלה בלה בלה בלה בלה בלה בלה בלה בלה בלה בלה בלה בלה בלה
בלה בלה בלה בלה בלה בלה בלה בלה בלה בלה בלה בלה בלה בלה בלה בלה
בלה בלה בלה בלה בלה בלה בלה בלה בלה בלה בלה בלה בלה בלה בלה …
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 50
שיטות לייצוג דרישות
מודל הישויות והקשרים ()ERM — Entity-Relationship Model
יתרה
אחוז ריבית
חשבונות
חסכון
סכום
משיכת יתר
חשבונות
עו"ש
D
מס .חשבון
חשבון
מס .הלוואה
תשלום
תשלום
ההלוואה
הלוואה
המפקיד
שם לקוח
ניתנה ל
סכום
מאז
עובד
של
כתובת
מנהל
עובד
לקוח
מס .חשבון
לקוח-בנקאי
עובד
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 51
שיטות לייצוג דרישות
מודל הישויות והקשרים — גרסת UML
חשבונות
חסכון
חשבון
אחוז ריבית
חשבונות
עו"ש
משיכת יתר
יתרה
מס .חשבון
* 0..המפקיד
הלוואה
מס .הלוואה
סכום
1..2
1..1
*0..
שם*0..
מספר תשלום
כתובת
מס .חשבון
תשלום
ההלוואה
בנקאי-של
*0..
תשלום
לקוח
עובד-של
מאז
0..1
מנהל 1..1
עובד
*0..
עובד-של
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
עובד
שקופית 52
שיטות לייצוג דרישות
מקרי שימוש ( )Use casesותרחישים ()Scenarios
"כיצד להפוך את הדרישות הפונקציונאליות לקריאות וסקירות "
?
מקרה שימוש
פונקציונאליּות
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 53
שיטות לייצוג דרישות
מקרי שימוש ( )Use casesותרחישים ()Scenarios
"כיצד להפוך את הדרישות הפונקציונאליות לקריאות וסקירות "
?
מקרה שימוש
תרחיש
ראשוני
פונקציונאליּות
תרחיש
ראשוני
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שלבי ביצוע
שקופית 54
שיטות לייצוג דרישות
מקרי שימוש ( )Use casesותרחישים ()Scenarios
"כיצד להפוך את הדרישות הפונקציונאליות לקריאות וסקירות "
?
מקרה שימוש
תרחיש
ראשוני
תרחיש
משני
פונקציונאליּות
תרחיש
ראשוני
תרחיש
משני
תרחיש
משני
שלבי ביצוע
תרחיש
משני
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 55
שיטות לייצוג דרישות
מקרי שימוש ( )Use casesותרחישים ()Scenarios
"כיצד להפוך את הדרישות הפונקציונאליות לקריאות וסקירות "
?
מקרה שימוש
תרחיש
ראשוני
תרחיש
משני
פונקציונאליּות
תרחיש
ראשוני
תרחיש
משני
תרחיש
משני
שלבי ביצוע
תרחיש
משני
תרחיש
משני
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 56
שיטות לייצוג דרישות
מקרי שימוש ( )Use casesותרחישים ()Scenarios
משוך כסף
מהחשבון
לקוח
הצג שאילתא
לגבי החשבון
נציג
שירות לקוחות
הוסף כסף
לכספומט
טכנאי תחזוקת
כספומטים
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 57
שיטות לייצוג דרישות
)Scenarios( ) ותרחישיםUse cases( מקרי שימוש
No
Entity
1.
Customer
Inserts customer bank card through the ATM’s card
reader.
2.
ATM
Reads the bank id and account number from the
customer’s card and requests the main computer to
validate the bank id and account number.
3.
Main
computer
Receives the request from the ATM, validates the bank
id and account number, and returns a validation
confirmation message to the ATM.
4.
ATM
Receives a validation confirmation message from the
Main Computer and then prompts the customer to enter
his code.
5.
Customer
Enters his card code.
6.
ATM
Validates the card code and prompts the customer to
enter the withdrawal amount in multiples of 50 I.S.
58 שקופית
Inputs, Actions, Outputs
אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה:ד"ר דן אהרוני
Remarks
Ex 1: Card has
expired
Ex 2: Card has
been blacklisted
Ex 1: code is
invalid
שיטות לייצוג דרישות
)Scenarios( ) ותרחישיםUse cases( מקרי שימוש
No
Entity
Inputs, Actions, Outputs
3.1.1 Main
Determines that the bank card has expired.
computer Returns a message to the ATM indicating that the card
has expired and the date of expiration.
3.1.2 ATM
Receives the expiration message.
Displays a suitable message on the screen indicating
that the card has expired and the date of expiration.
Prompts the user to terminate the session.
3.1.3 Customer Acknowledges the message and terminates the session
3.1.4 ATM
59 שקופית
Returns to the customer the expired card.
אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה:ד"ר דן אהרוני
Remarks
שיטות לייצוג דרישות
מימדי ניתוח דרישות והגדרתן
מקרי שימוש/תרחישים
נתונים
מודל הישויות והקשרים
מכונות מצבים סופיות
תפקוד
בקרה
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 60
שיטות לייצוג דרישות
בניית אבטיפוס
אבטיפוס בר-ביצוע +
מפרט מערכת
בניית אבטיפוס להשלכה
)(throw-away prototyping
דרישות
כלליות
מערכת לאספקה
בניית אבטיפוס מתפתח
)(evolutionary prototyping
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 61
האם פעילות הדרישות מצדיקה את המאמץ?
מה מחירן של שגיאות בדרישות?
שלב
הגדרת הדרישות .1–.2
עיצוב
קידוד
בדיקת יחידות
0.5
1
2
בדיקות קבלה
5
תחזוקה
20
עלות תיקון יחסית
Boehm ‘76, 88
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 62
אתה נמצא כאן:
הבעייתיות בפיתוח תוכנה
מהי "הנדסה"?
מודלים של מחזור חיי תוכנה
מבט כללי על תהליך פיתוח התוכנה
הפקת דרישות
עיצוב ארכיטקטורה
בדיקות תוכנה
הבטחת איכות
מה 'כפת לנו?
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 63
הצורך בעיצוב
דרישות
6חדרים
2אמבטיות
170מ"ר
מזגן מרכזי
עלות <= 150,000$
עיצוב — הגשר בין הדרישות לבין הבניה
בניה
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 64
רכיבי עיצוב תוכנה
מערכת/תת-מערכת
אדם
תוכנה
תת-מערכת תוכנה
תת-מערכת תוכנה
מודול
מודול
טיפוס
חומרה
תת-מערכת תוכנה
מודול
עיצוב
ארכיטקטורה
מודול
הליך
טיפוסים
קבועים
משתנים
הליכים
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 65
"?
האם תמיד"עיצוב ארכיטקטורה תחילה
>#include <stdlib.h
>#include <fcntl.h
{ )(void main
;int f
;int length
;int wrote
;]char string[40
f=open("com3",
;)O_RDWR
סגנון עבודה אישי:
C:\>Greet
!Hello, World
אופי המערכת:
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 66
רצפט? אלגוריתם?
איך? האם יש" "
יש הנחיות
אין "רצפט"
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 67
" :עיצוב קנוני
"רצפט
הסתמכות על
גישות עיצוב "טובות" וידועות היטב
בתחום נתון
דוגמה :מודל של קומפיילר
טבלת הסמלים
מחולל
קוד
נתח
סמנטי
נתח
תחבירי
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
נתח
לקסיקאלי
שקופית 68
" :תבניות עיצוב ארכיטקטורה
"רצפט
דוגמאות לתבניות עיצוב ארכיטקטורה:
שכבות (מכונה מופשטת)
מאגר
שרת-לקוח
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 69
" :תבניות עיצוב ארכיטקטורה
"רצפט
ארכיטקטורת שכבות
דוגמה :מבנה שכבתי של מערכת הפעלה
השכבה הזו
מדברת עם זו
דרך זו
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 70
" :תבניות עיצוב ארכיטקטורה
"רצפט
ארכיטקטורה בתבנית "מאגר"
דוגמה :ארכיטקטורת כלי CASE
נתח עיצוב
עורך טקסט
מאגר הפרויקט
מחולל דוחות
עורך עיצוב
מחולל קוד
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 71
" :תבניות עיצוב ארכיטקטורה
"רצפט
ארכיטקטורת שרת-לקוח
לקוח 1
לקוח 2
לקוח 3
לקוח 4
רשת
שרת HTML
שרת תמונות
שרת וידיאו
שרת קטלוג
מסמכי HTML
קבצי תמונות
קבצי תמונות
קטלוג
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 72
אתה נמצא כאן:
הבעייתיות בפיתוח תוכנה
מהי "הנדסה"?
מודלים של מחזור חיי תוכנה
מבט כללי על תהליך פיתוח התוכנה
הפקת דרישות
עיצוב ארכיטקטורה
בדיקות תוכנה
הבטחת איכות
מה 'כפת לנו?
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 73
מינוח
שגיאה (,)error
טעות ()mistake
פגם (,)defect
תקלה ()fault
כשל (,)failure
תקרית ()incident
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 74
רמות בדיקה
בדיקות הליכים
בדיקות מודולים
בדיקות שילוב תוכנה
בדיקות לתיקוף תוכנה
בדיקות לשילוב מערכת
בדיקות לתיקוף מערכת
בדיקות קבלה
בדיקות אלפא
בדיקות ביטא
בדיקת יחידות
)(Unit Testing
בדיקות שילוב (אינטגראציה)
בדיקות לתיקוף דרישות
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 75
מקרי בדיקה
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 76
גישות לעריכת בדיקות
שני מימדים עיקריים
תפקודיֹות/מבניֹות
סטטיֹות/דינאמיֹות
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 77
גישות לעריכת בדיקות
בדיקות סטטיות ודינאמיות
בדיקות סטטיות —
תכנית
אימות/תיקוף
דינאמי
קריאת קוד
קריאת תרשימים
וכו'
עיצוב
מפורט
אימות
סטטי
מפרט
פורמאלי
עיצוב
ברמה הגבוהה
בדיקות דינאמיות — הרצה
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
מפרט
דרישות
אבטיפוס
שקופית 78
גישות לעריכת בדיקות
בדיקות סטטיות ודינאמיות
דוגמה לכלי בדיקות סטטיות Lint :עבור CוC++ -
• בדיקת ערכים :אתחול; אינדקסים מחוץ לתחום; ועוד.
• בדיקות strong typing
• גילוי קוד מת
• מקרו'ס שלא משתמשים בהם
• ועוד
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 79
גישות לעריכת בדיקות
בדיקות תפקודיות ומבניות
בדיקות תפקודיות (פונקציונאליות" ,קופסה שחורה")
ע"פ הדרישות ההתנהגותיות החיצוניות
ניתן להתחיל בתכנונן מוקדם בתהליך הפיתוח
בדיקות מבניות
("קופסה לבנה" או "קופסת זכוכית")
ע"פ ידע על העיצוב והמימוש של הרכיב
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 80
שיטות לעריכת בדיקות תפקודיות
חלוקת שקילות
0
מחלקת שקילות:
i≤0
מחלקת שקילות:
i<0
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 81
שיטות לעריכת בדיקות תפקודיות
חלוקת שקילות
1
מחלקת שקילות:
i≤0
0
מחלקת שקילות:
i<0
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 82
שיטות לעריכת בדיקות תפקודיות
חלוקת שקילות
1
0
מחלקת שקילות:מח' שקילות:
0≥i<1
i≤1
מחלקת שקילות:
i<0
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 83
שיטות לעריכת בדיקות תפקודיות
ניחוש שגיאות
מבוסס על:
My package
>><<subsystem
A
>><<subsystem
C
>><<subsystem
B
+ aPublicClass
+ anotherPublicClass
- aPrivateClass
# aProtectedClass
ידע של העיצוב
ידע של הדרישות
יצירת מקרי בדיקה בהתבסס על ניחוש,
היכן סביר שימצאו פגמים בתכנה
יש להשתמש בשיטה זו
על מנת להשלים שיטות אחרות
אינטואיציה
ניסיון אישי ומשותף
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 84
בדיקה מבנית ברמת ההליך :בעיית כיסוי הקוד
A
Loop <= 20 x
• כ 1014-מסלולים אפשריים מ A-ל!B-
• בדיקה אחת בכל ← 1mSec
כ 3170-שנים למעבר על כל המסלולים!
B
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 85
בדיקה מבנית ברמת ההליך :בעיית כיסוי הקוד
A
B
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 86
בדיקה מבנית ברמת ההליך :בעיית כיסוי הקוד
A
c>a and a>b
B
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 87
בעיית כיסוי הקוד:בדיקה מבנית ברמת ההליך
Class BinSearch {
//
//
public static void search ( int key, int [] elemArray, result R)
{
int bottom =0 ;
int top = elemArray.length – 1 ;
int mid ;
r.found = false ;
r.index = -1 ;
while (bottom <= top)
{ mid = (top + bottom) / 2 ;
if (elemArray [mid] == key
{ r.index = mid ;
r.found = true ;
return ;
} // if part
else
{ if (elemArray [mid] < key)
bottom = mid + 1 ;
else
top = mid – 1 ;
}
} // while loop
} //search
} //BinSearch
88 שקופית
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה:ד"ר דן אהרוני
:דוגמה
הליך חיפוש בינארי
בדיקה מבנית ברמת ההליך :בעיית כיסוי הקוד
1..4
הנתיבים הב"ת דרך התוכנית הם:
5
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 14
… 1, 2, 3, 4, 5, 6, 7, 11, 12, 5,
… 1, 2, 3, 4, 5, 6, 7, 11, 13, 5,
1, 2, 3, 4, 5, 14
קביעת מקרה בדיקה לכל נתיב ,עבור כל
החלטה פשוטה.
כך כל ענף בתוכנית מבוצע לפחות פעם אחת,
וכל החלטה נבדקת הן עבור תנאי trueוהן
עבור .false
6
7
11
13
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
8..10
12
14
end
שקופית 89
שיטות בדיקה מבניות ברמת השילוב
מלמעלה-למטה
מלמטה-למעלה
שיטת ה"-סנדוויץ' "
ועוד
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 90
בדיקות שילוב מדורג מלמטה-למעלה
מפעיל התקן
מפעיל התקן
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 91
בדיקות שילוב מדורג מלמטה-למעלה
מפעיל התקן
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 92
בדיקות שילוב מדורג מלמטה-למעלה
נחוצות כשיש רכיבי
תשתית קריטיים.
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 93
בדיקות שילוב מדורג מלמעלה-למטה
זנב
זנב
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 94
בדיקות שילוב מדורג מלמעלה-למטה
זנב
זנב
זנב
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
זנב
שקופית 95
בדיקות שילוב מדורג מלמעלה-למטה
מוצאת שגיאות ארכיטקטורה.
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 96
אסטרטגיה מדורגת בשיטת ה"-סנדוויץ'"
זנב
זנב
מפעיל התקן
מפעיל התקן
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 97
אסטרטגיה מדורגת בשיטת ה"-סנדוויץ'"
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 98
בדיקות נסיגה ()regression testing
תיקון פגמים
הוספת יכולות
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 99
בדיקות ביצועים (לא-תפקודיות)
עומס ( / )loadלחץ (/ )stressנפח ()volume
תצורה
אבטחה
תזמון
סביבה
אפשרות התקנה
מהימנות
התאוששות
תחזוקתיות
הגורם האנושי
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 100
אתה נמצא כאן:
הבעייתיות בפיתוח תוכנה
מהי "הנדסה"?
מודלים של מחזור חיי תוכנה
מבט כללי על תהליך פיתוח התוכנה
הפקת דרישות
עיצוב ארכיטקטורה
בדיקות תוכנה
הבטחת איכות
מה 'כפת לנו?
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 101
תפיסה שגויה נפוצה :הבטחת-איכות = בדיקות
לחברת היי טק דינאמית ומעניינת
דרוש/ה
ר"צ QA
להובלת צוות בדיקות ,הכשרה והדרכה של חברי הצוות ,הכנת
תוכניות עבודה וניהול שוטף על פעילות הצוות הכללית ,דרישות
התפקיד :ניסיון מוכח של שנתיים לפחות בניהול צוות בדיקות
פונקציונאליות ידניות (צוות של שלוש אנשים לפחות) ,ידע
במתודולוגיות STPו STDו MIL STD 498 -ו/או נוהל מפת''ח-
חובה ,ידע ב GUI, SQL -סביבת Windowsחובה ,הכרות עם
ה Test Director -חובה ,ראייה והבנה מערכתית-חובה ,אנגלית
ברמה גבוהה מאוד -חובה ,רקע והכרות עם עולם הוידיאו יתרון
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 102
אתנחתא מוסיקלית…
ואם במודעות דרושים עסקינן…
לחברת מחשוב גדולה וידועה
דרושים/ות
בודקי/ות תוכנה אוטומטיים
ניסיון בכלי ,WINRUNNER / LOADRUNNERעבודה
בסביבת UNIX
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 103
מהי איכות תוכנה?
ששה ספרים — שש גישות
Deming
Juran
Crosby
מגמה בסיסית
כלפי איכות
טכנית
תהליך
הנעה
מהי איכות?
מערכות
חסרות
תקלות
מי אחראי?
הנהלה
חשיבות
דרישות
הלקוח כתקן
התאמה לשימוש ,הענות
חופש מצרות לדרישות
הנהלה
הנהלה
Taguchi Fengelbaum Garvy
אסטרטגית,
אקדמית
כוללת,
מערכתית
טכנית,
מניעה מראש
הזדמנות
לתחרות
מה שהלקוח
אומר שהיא
דרישות
הלקוח
לביצועים
הנהלה
כולם
מהנדסים
חשוב מאד
חשוב מאד
חשוב מאד חשוב מאד ,לקוח חשוב מאד חשוב מאד
בכל שלב
ממחזורי החיים
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 104
כיצד לשפר את האיכות
מניעת
התרחשות תקלות/סטיות
זיהוי
תקלות/סטיות (שלא נמנעו)
מוקדם ככל האפשר
תיקון
תקלות/סטיות ברגע שזוהו
לִימוד
מהניסיון המשותף של
הארגון כיצד למנוע ,לזהות
ולתקן תקלות/סטיות
תהליך פיתוח תוכנה
הולם ,שיטתי ואוטומטי
תכנון
תהליך /איכות
אסטרטגיות זיהוי תקלות
תכנון תהליכי
הערכת איכות
המוצר /התהליך
נהלי דיווח על תקלות/סטיות,
פתרונן ומעקב אחריהן
תכנון תהליך
של פעולות
מונעות /מתקנות
אסטרטגיות
לשיפור תהליך התוכנה
תהליך שיפור
תהליך התוכנה
))SPI
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 105
תכנון התהליך
הגדרת נהגי בקרת תוצרים
כישלון לבקר
את
תוצרי הפיתוח
בעיות בפיתוח
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 106
תכנון התהליך
הגדרת נהגי בקרת תוצרים
• נהלי ספריית פיתוח תוכנה
• נהגי בקרת מסמכים
• נהגי בקרת קוד מקור ()source control
• נהגי בקרת פיתוח גרסה
• נהגי בקרת שחרור גרסה
• נהגי בקרת שינויים ()change control
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 107
הערכת תוצרים
Problem Report
תוצרים
PR
הערכת
תוצרים
פעילות מפתח
של פיתוח
• "הרסנית"
• נסוגה ()regressive
• מזהה תקלות
תוצרים
• "יצרנית"
• מתקדמת ()progressive
• מכניסה תקלות
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 108
הערכת תוצרים
סקרי איכות ()Quality reviews
צוות סוקר
בוחנים (ע"י קריאה) את —
מפרטי הדרישות ,העיצוב ,והתהליך
הקוד
תכניות הבדיקה
וכו'
יצרן
סוקר
מוביל
הסקר
רשם
דומה לתיקון תקלות בשיטת
"תפוס עובר אורח במסדרון"…
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 109
הערכת תוצרים
סולם יעילות
Formal Technical Review
ביקורת
היעיל ביותר
)inspection (FTR
צעד צעד
)walk through (FTR
מצגת רשמית
formal presentation
מצגת בלתי רשמית informal presentation
סקר קבוצת עמיתים
שיחה אקראית
פורמאליות
peer group review
casual conversation
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 110
הערכת תוצרים
מבדקי איכות חיצוניים ))ISO 9001 - 4.17
המבדק החיצוני בודק:
קודם כל — את מערכת האיכות ,לצורך אישור שהיא עומדת בתקני ISO 9000
לאחר מכן — האם מתקיים מה שהבטחת
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 111
פעולות מתקנות/מונעות/משפרות
רישום
הממצאים
קביעת
תכנית פעולה
מימוש
תכנית הפעולה
מעקב אחר
המימוש
תחזוקת
רשומות איכות
הערכה
ממצאים
• חוסר הענות
()non-compliance
• אי התאמת הפרויקט
• הזדמנות לשיפור
יש להקים
מערכת לניהול
תקלות
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
מעקב
מבדקים
תלונות לקוח
שקופית 112
נהגי הבטחת איכות תוכנה — מבט כולל
מודלים של SPI
שיפור התהליך
תוצר
)(work product
פיתוח
פעולה מתקנת
הערכה
דו"ח הערכה
נוהל וכלים
דו"ח מבדק
מבדק
תהליך פיתוח,
נהגים ,שיטות,
כלים
תהליך
הערכת תוצרים
()Audit
שאלון
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 113
אתה נמצא כאן:
הבעייתיות בפיתוח תוכנה
מהי "הנדסה"?
מודלים של מחזור חיי תוכנה
מבט כללי על תהליך פיתוח התוכנה
הפקת דרישות
עיצוב ארכיטקטורה
בדיקות תוכנה
הבטחת איכות
מה 'כפת לנו?
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 114
דיסציפלינות המרכיבות הנדסה
כלים
הבטחת איכות
רק במונחי
נהגי תכנות נאותים
מודלים של
מחזור החיים
עקרון כללי בלבד
תכנות;
שפת
ניהול
דיסציפלינות
סביבת פיתוח
פעילויות פיתוח
מדע בסיסי
ניהול תצורה
מתמטיקה
עיצוב (מ"ע);
הרבה תכנות;
ניפוי שגיאות
פרוצד' /תמ"ע /פונקציו'
שיטות פיתוח
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 115
פעילויות המפתח בפיתוח תוכנה
מה תקף לגבינו בביה"ס?
ניתוח דרישות תוכנה והכנת מפרטים
עיצוב ארכיטקטורת תוכנה
בניית
שילוב
התוכנה
בדיקות שילוב
תכנון
בדיקות
תיקוף
בדיקות תיקוף
שחרור והתקנה
תחזוקה ותמיכה
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 116
מודל מפל המים — מודל הבסיס לכל המודלים
הדרישות
דרישות
הגדרת
Requirements
Def.
התלמידים
מוכנות עבור
עיצוב מערכת ותוכנה
עיצוב תכנית
System & SW design
יחידות
ובדיקת
מימוש
התכנית
מימוש
Implementation
ובדיקות
& unit testing
אינטגרציה ובדיקות מערכת
Integration & sys. test.
פעולה ותחזוקה
& Operation
maintenance
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 117
רמות בדיקה
מה תקף לגבינו בביה"ס?
בדיקות הליכים
בדיקות מודולים
בדיקות שילוב תוכנה
בדיקות לתיקוף תוכנה
בדיקות לשילוב מערכת
בדיקות לתיקוף מערכת
בדיקות קבלה
בדיקת יחידות
)(Unit Testing
בדיקות שילוב (אינטגראציה)
בדיקות לתיקוף דרישות
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 118
שיטות לעריכת בדיקות תפקודיות
חלוקת שקילות
1
0
מחלקת שקילות:מח' שקילות:
0≥i<1
i≤1
מחלקת שקילות:
i<0
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 119
שיטות לעריכת בדיקות תפקודיות
ניחוש שגיאות
מבוסס על:
My package
>><<subsystem
A
>><<subsystem
C
>><<subsystem
B
+ aPublicClass
+ anotherPublicClass
- aPrivateClass
# aProtectedClass
ידע של העיצוב
ידע של הדרישות
יצירת מקרי בדיקה בהתבסס על ניחוש,
היכן סביר שימצאו פגמים בתכנה
יש להשתמש בשיטה זו
על מנת להשלים שיטות אחרות
אינטואיציה
ניסיון אישי ומשותף
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 120
בדיקה מבנית ברמת ההליך :בעיית כיסוי הקוד
1..4
הנתיבים הב"ת דרך התוכנית הם:
5
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 14
… 1, 2, 3, 4, 5, 6, 7, 11, 12, 5,
… 1, 2, 3, 4, 5, 6, 7, 11, 13, 5,
1, 2, 3, 4, 5, 14
קביעת מקרה בדיקה לכל נתיב.
כך כל פסוק בתוכנית מבוצע לפחות
פעם אחת ,וכל ענף מופעל הן עבור
תנאי trueוהן עבור .false
6
7
11
13
8..10
12
14
end
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 121
כיצד לשפר את האיכות
מניעת
התרחשות תקלות/סטיות
עיצוב לפני תכנות
זיהוי
תקלות/סטיות (שלא נמנעו)
שיקולי עיצוב
כתיבת
ככל האפשר
מוקדם
הגדרה ושימוש בתהליך פיתוח
תוכנה הולם ,שיטתי ואוטומטי
מנומקים
השקעה באסטרטגיות זיהוי תקלות
הערכת איכות
המוצר /התהליך
מיסוד נהלי דיווח על תקלות/סטיות,
פתרונן ומעקב אחריהן
תהליך של פעולות
מונעות /מתקנות
תיקון
אלגוריתמים לפני התכנות
כתיבת
תקלות/סטיות ברגע שזוהו
לִימוד
הרצה "יבשה"
תכנון
תהליך /איכות
מהניסיון המשותף של
הארגון כיצד למנוע ,לזהות
לשיפור
אסטרטגיות
מיסוד
מודולים
←
פונקציות
:
מסודר
שגיאות
ניפוי
סטיות
/
תקלות
ולתקן
התהליך; שימוש במדידות עד
שילוב
←
שיפור התהליך
כמה שאפשר
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 122
גישות לעריכת בדיקות
האם חשוב להתנסות בשני המימדים?
תפקודיות/מבניות
סטטיּות/דינאמיּות
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 123
"ס?
דרישות תוכנה — מה תקף לגבינו בביה
האם כדאי להציג לתלמידים
דרישות לא פונקציונאליות?
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 124
שיטות לייצוג דרישות
האם כדאי להתאמן בהצגת דרישות שיטתית
מתוך דרישות כלליות שניתנות ע"י המורה?
שפה טבעית
בניית אבטיפוס
מודל הישויות והקשרים
מקרי שימוש ותסריטים
מכונות מצבים סופיות
…
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 125
רכיבי עיצוב תוכנה
האם חשוב לדרוש עיצוב תחילה?
מערכת/תת-מערכת
אדם
תוכנה
תת-מערכת תוכנה
תת-מערכת תוכנה
מודול
מודול
הליך
מודול
הליך
חומרה
תת-מערכת תוכנה
מודול
עיצוב
ארכיטקטורה
טיפוסים
קבועים
משתנים
הליכים
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 126
סקרי איכות ()quality reviews
האם כדאי לבצע? כיצד?
בוחנים (ע"י קריאה) את —
מפרטי הדרישות ,העיצוב ,והתהליך
הקוד
תכניות הבדיקה
וכו'
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
שקופית 127
אז מה היה לנו?
הבעייתיות בפיתוח תוכנה
מהי "הנדסה"?
מודלים של מחזור חיי תוכנה
מבט כללי על תהליך פיתוח התוכנה
הפקת דרישות
עיצוב ארכיטקטורה
בדיקות תוכנה
הבטחת איכות
מה 'כפת לנו?
V1
V2
ד"ר דן אהרוני :אתם קוראים לזה "הנדסה"? — מבוא למבוא להנדסת תוכנה
V
3
שקופית 128
Understanding Technology
Mouse
I/O Error
Main Storage
CPU
Function key
User interface
Software
Debugger
Floppy disk
Backup system