-
Notifications
You must be signed in to change notification settings - Fork 0
exam questions
- הנחיות
- מבוא להנדסת תוכנה
- פיתוח אפליקיציית רשת
- צוות
- דרישות
- תיכון וארכיטקטורה
- תכנון
- בקרת תצורה
- בדיקות
- תחזוקת קוד
- תבניות תיכון
- הרצאות אורח ונושאים נוספים
שלום, זהו מאגר ניסיוני לאיסוף שאלות לבחינה בסיום הסמסטר. במידה ויצטברו מספיק שאלות נוכל להשתמש במאגר.
יש להציע שאלות בעקבות הרצאה בנושא מסוים ובעיקר סביב נושאים שהתקיים בהם דיון בכיתה. העדיפות היא לפי זמן ההגשה, האיכות והאם הנושא עוד לא מכוסה ע"י שאלות.
התכנית היא שכל שאלה שתכנס למאגר הסופי תזכה את המחבר בניקוד של כחמש נקודות מציון הבחינה - לדוגמא מי שתרם עשר שאלות שהתקבלו - ציון הבחינה שלו בפועל ישוקלל רק כ-50% מחלק הבחינה בציון הסופי.
הכתיבה היא במרקדאון בעברית. עורך הטקסט של גיטהאב לא תומך טוב בכיווניות של פסקה בעברית מימין לשמאל לכן מומלץ לפני שליחת שאלה לערוך אותה למשל כאן או לעבוד מקומית עם עורך שכזה, למשל עם MS Word...
- התשובה הנכונה צריכה להופיע ראשונה
- טקסט מודגש (מרקדאון:
**מודגש**
) (או מוטה (*מוטה*
)) יוחלף בבחינה עצמה בקו תחתי. בפרט, יש להדגיש מילות שלילה בכותרות שאלות. - אין לכלול תשובות המתייחסות לסדר של תשובות אחרות, כגון 2+3 נכונות
- יש אפשרות לשלב תמונות קטנות לפי הצורך
- לפי הצורך, יש להפריד טקסט באנגלית לשורות נפרדות עם מעברי שורה, כמו למעלה, במידה ולא השתמשתם בעורך מתאים
- המספור בספרות ולא באותיות: 1, 2, 3, 4
- יש לצרף הסבר ומקורות (למשל מספר מצגת ושקף), אך הוא לא יכנס לבחינה
- יש לצרף בסוף השאלה את שם המשתמש של המחבר, בד"כ לכל שאלה מחבר אחד לצורך קרדיט
- יש למקם את השאלה בפסקת הנושא המתאימה, לפי הצורך נפריד לעמודים בהמשך. נא להפריד עם קו ״---״ בין שאלות באותו נושא ולסמן את כותרת השאלה ב: ####
- יש לשמור כל שאלה בקומיט נפרד, עם כותרת משמעותית
- השליחה באמצעות פתיחת ״בקשת משיכה״
- לפי הצורך תתבקשו לתקן או לשפר את השאלה עד לקבלה או דחיה של השאלה וסגירת הבקשה.
- על המשתתפים בתהליך לעקוב אחר המאגר, כדי לקבל עדכונים שוטפים ובעיקר לדעת אילו שאלות כבר קיימות או בתהליך כתיבה.
- במהלך השבוע האחרון של הסמסטר, מי שחושב\ת שיש במאגר שאלה בעייתית (למשל: מכילה טעות, אינה בחומר, עלולה להטעות או פשוט לא מאד חשובה) מוזמן\ת לשלוח בקשת משיכה לתיקון או מחיקת השאלה.
- יש לשלוח בקשה נפרדת לכל שאלה
- סימון השאלה למחיקה הוא ע״י קו חוצה על
כותרת השאלה(פעמיים טילדה ״~״ מכל צד) - בהערות הבקשה יש לתייג את המחבר ולהסביר את הבעיה המצדיקה תיקון או מחיקה
- למחבר וצוות הקורס תהיה הזדמנות להגיב או לתקן (בכל מקרה המחבר המקורי יקבל את הקרדיט ולא המעדכן)
- לאחר מכן, צוות הקורס יערוך סבב אחרון של תיקונים ועדכונים והמאגר יפורסם בצורה סופית לקראת הבחינה.
בתקווה שתהליך הכנת הבחינה יהווה חלק מהלמידה בקורס תודה ובהצלחה
- החל מגיבוש הרעיון ועד ליציאה משימוש של התוכנה
- החל מגיבוש הרעיון ועד כתיבת הקוד
- מהשלב שהמוצר מוכן עד לשלב השימוש של הלקוח
- החל מגיבוש הרעיון ועד לזמן בלתי מוגבל
הסבר: מחזור חיי תוכנה הוא אוסף שלבים שבאמצעותם מוצר תוכנה מיוצר החל מגיבוש הרעיון ועד ליציאה משימוש של התוכנה, נותן מסגרת מסוימת לעבודה על המוצר עד לסיום ומכריח את המפתחים לחשוב על ה"תמונה הגדולה"
מחברת: Aviya
- מאפיינים, זמן, משאבים.
- מאפיינים, איכות, משאבים.
- מאפיינים, זמן, איכות.
- איכות, זמן, משאבים.
הסבר: פרויקט תוכנה מורכב מהמאפיינים שבו, מהזמן שמשקיעים עליו, ומהמשאבים שמשקיעים בו כמו מתכנתים,מחשבים וכסף. לאיכות התייחסנו כמאפיין רביעי, נסתר לפעמים, הנמצא באחריותו העיקרית של מהנדס התוכנה.
מקורות: מצגת se-01-intro שקופיות 22.
מחברת: esty6u
- חשיבותה של התוכנה לחברה האנושית.
- חוסר במעמד חוקי (רישיון) של מהנדס.
- מחסור במהנדסי תוכנה טובים.
- פיתוח תוכנה בשיטות הנדסיות לא מתאימות.
הסבר: הצורך של החברה האנושית בתוכנה יכול ליצור לחץ עקיף על המתכנתים ובכך להוות תמריץ להתקדמות טובה יותר בתוכנה,לא לכישלון,לעומת זאת כל שאר התשובות עלולות לגרום לקוד לקוי ולכן יהוו סיבה לאחוז הכישלון הגבוה בהנדסת תוכנה .
מקורות: מצגת se-01-intro שקופית 29.
מחברת: esty6u
- הרבה שורות קוד.
- נכונות הקוד.
- גמישות לשינויים.
- שימושיות.
הסבר: שורות קוד רבות לא מהוות מדד לתוכנה טובה (יכולות להגרם מכפל קוד לדוגמא) לעומת זאת נכונות הקוד,גמישות לשינויים ושימושיות הינם מאפיינים לתוכנה טובה.
מקורות: מצגת se-01-intro שקופיות 17.
מחברת: esty6u
- כתיבת קוד יעיל.
- גודל פרוייקט.
- דרישות סותרות ומשתנות.
- עלות תקלות.
הסבר: בפרויקט תעשייתי, לעומת תרגיל בית, גודל הפרוייקט גדול יותר, הדרישות משתנות במהלך הפרוייקט ועלולות לסתור זו את זו, ותקלות עולות בכסף ובבטיחות. אבל, כתיבת קוד יעיל זה נושא שצריך לחשוב עליו גם בפרוייקט תעשייתי וגם בתרגילי הבית
מקורות:
מצגת se-01-intro שקופיות 14.
מחברת: hallel1
- תוכנה לא מתבלה ובד"כ מסובכת
- תוכנה נכתבת על גבי מחשב
- תוכנה נכתבת בשביל לקוח
- תוכנה בד"כ יקרה יותר ממוצרים אחרים
הסבר (חסר): לפי מצגת ראשונה שקופית 18
- Singleton.
- Flyweight.
- Abstract Factory.
- Prototype.
הסבר: service הוא מחלקה מסוג singleton ותפקידה להחזיק את כל המשתנים הגלובליים של האפליקציה
מקורות: מצגת תרגול service שקופית 2.
מחברת: hallel1
- Javascript.
- C.
- Java.
- Kotlin.
הסבר: NodeJS היא סביבת זמן ריצה שפותחה בC++ ומבוססת על מנוע V8 של גוגל, ומשתמשת ב Javascript כשפה המרכזית בה.
מקורות: מצגת מהתרגול "היכרות עם כלי הפיתוח" שקופיות 5.
מחברת: esty6u
- שירות צד שרת המספק למפתחי תוכנה במספר רב של פלטפורמות שירותי צד שרת מבלי לכתוב אותם.
- שירות צד לקוח המספק למפתחי תוכנה במספר רב של פלטפורמות שירותי צד לקוח מבלי לכתוב אותם.
- שירות צד לקוח המספק למפתחי תוכנה בשפת אנגולר 2 שירותי צד לקוח.
- אף תשובה איננה נכונה.
הסבר: שירות צד שרת המספק למפתחי תוכנה במספר רב של פלטפורמות שירותי צד שרת מבלי לכתוב אותם. בין השירותים שהשרות מספק: NoSql, Cloud Firestore, Authentication ו Hosting
מקורות: מצגת מהתרגול "ANGULAR 2 FIREBASE" שקופיות 2.
מחברת: alexlvz
3
5
1
2
הסבר: כל קומפוננטה מורכבת משלושה סוגי קבצים : HTML,CSS,TS.
מקורות: מצגת מהתרגול "אנגולר2 חלק א" שקופיות 8.
מחברת: esty6u
- angular/router@
- angular/core@
- angular/common@
- angular/forms@
הסבר: angular/router@ היא האחראית על הניתוב. היא מחזיקה בתוכה פונקציות שמנהלות את ניתוב הדפים בצורה נוחה למתכנת.
מקור: מצגת תרגול route, שקופית 2.
מחבר: liorva
- מחלקה מסוג singleton ותפקידה להחזיק את כל המשתנים הגלובליים של האפליקציה
- מחלקה מסוג singleton ותפקידה לאגד את כל הפונקציות המרכזיות באפליקציה
- מחלקה מסוג Strategy ותפקידה להחזיק את כל המשתנים הגלובליים של האפליקציה
- מחלקה מסוג Strategy ותפקידה להחזיק את כל הפונקציות המרכזיות של האפליקציה
הסבר: Service הוא מחלקה מסוג singleton ותפקידה להחזיק את כל המשתנים הגלובליים של האפליקציה. המטרה היא להפריד בין הרכיבים לבין כל המידע שיש לאפליקציה
מקורות: מצגת מהתרגול "ANGULAR 2 SERVICE" שקופיות 2.
מחבר: alexlvz
- כתיבת רשימה של הדברים שלא מסכימים עליהם.
- כל צד חוזר על הטיעונים של הצד השני.
- כתיבת רשימה של הדברים שמסכימים עליהם.
- לא לפחד להעלות בעיות.
הסבר: ע"מ לפתור קונפליקט צריך להבין את טענת הצד השני וכאשר כל צד חוזר על טענותיו ובכך מתבצר בדעתו זה לא עוזר לפתירת הקונפליקט.
מקורות: מצגת se-02-team שקופיות 22.
מחברת: esty6u
- ארוע תקשורת זה החלפת מידע עם מטרות והיקף מוגדרים ואילו מנגנון זה כלי או שיטה המשמש לארועי תקשורת .
- ארוע תקשורת הוא פגישת צוות ומנגנון זה הוא יוזם הפגישה .
- ארוע תקשורת הוא ארוע מתוכנן המושך סיקור בולט של כלי התקשורת ואילו מנגנון זה הוא כלי התקשורת.
- ארוע תקשורת מתבצע כאשר נוצרת תקלת תקשורת והמנגנון זה הוא הגורם שמטפל בתקלה .
הסבר: ארוע התקשורת היא החלפת מידע בצוות כאשר התקשורת יכולה להיות סינכרונית (המשתתפים זמינים באותו זמן) או א-סינכרונית ,הארועים יכולים להיות מתוכננים או לא מתוכננים.
מקורות: מצגת se-02-team , שקופיות 7-8.
מחברת: esty6u
- זמן הפגישה היה קצר מהצפוי
- שוכחים את העיקר ואת ההחלטות
- מתעלמים מחלק מהמשתתפים
- שעמום במידה והפגישה ארוכה מידי
הסבר: הפגישה יכולה להיות קצרה בהרבה מן הצפוי אך עדיין יכולה להיות ממוקדת מטרה ואיכותית ולכן זו לא סיבה לכך שפגישה נכשלת.
מקורות: se-02-team שקופית : 8
מחבר: yakimartin
- צוות בו כל העובדים טובים ויש עובד אחד שמפריע להתקדמות.
- צוות בו כל העובדים טובים.
- צוות בו רוב העובדים אינם מוצלחים ויש מעט עובדים מוצלחים.
- צוות בו כל העובדים לא יודעים טוב את העבודה אך יש עובד אחד מוצלח שיודע לעשות את העבודה מעולה ולתקן את הבעיות של כולם.
הסבר: שקף 12 התפוח הרקוב - כאשר יש בצוות עובד פחות מוצלח הוא גורם לשאר חברי הצוות לנסות ולהתגבר על הבעיות שהוא גורם , כך הצוות יותר דרוך וערני לבעיות
- חד משמעית
- בלתי ניתנת לעדכון
- חלקית
- כל התשובות נכונות
הסבר: דרישה טובה לפי IEEE830 היא, בין היתר, דרישה חד משמעית, מלאה, עקבית וניתנת לעריכה (מצגת דרישות, עמוד 20)
מחבר: AlonSchwartz
- SRS.
- SDS.
- ZFR.
- USE CASE .
הסבר: ראשי תיבות של Software Requirements Specification, זהו מסמך פורמלי ראשוני שבו מתוארות ומפורטות הדרישות של המערכת המתוכננת, זהו תיאור מלא של ההתנהגות הרצויה המערכת שתפותח.
מקורות: מצגת 3,שקופית 23
- מה לבנות בתוכנה.
- את מטרת התוכנה.
- אופן בניית התוכנה.
- היקף שעות העבודה בפועל על התוכנה.
הסבר: דרישות מתרכזות בבעיה ולא בפתרון ע"מ שנוכל להבין בדיוק מה נדרש מהתוכנה,לתקשר עם כל המעורבים ולבקר את התהליך בכדי לוודא שהמערכת מממשת את המפרט. מקורות: מצגת 3,שקופית 13
מחברת: esty6u
- זיהוי באגים בקוד לפני תחילת הביצוע
- יצירת דיאגרמת תרחישים
- פירוט לתרחישים פורמליים / לא פורמליים
- זיהוי שחקנים ומטרותיהם
הסבר: אין עדין קוד אנחנו בשלב התכנון והדיאגראמות
מקורות: מצגת se-03-requirements שקופיות 39.
מחבר: yakimartin
- שירות שהמערכת מספקת.
- ביצוע.
- אמינות.
- תיעוד.
הסבר: דרישה פונקציונלית מגדירה שירות שהמערכת מספקת לטובת המשתמש. ביצוע, אמינות ותיעוד אינם פונקציות בקוד אלא דרישות איכות מהקוד דהיינו דרישות לא פונקציונליות.
- אינו מובן ללקוח אך פורמלי
- יצירת הבנה בין הלקוח והמפתחים בקשר לדרישות
- חושף את המפתחים לנושאים בעיתיים
- מאפשרים לתעדף נתונים ולתכנן בהתאם
הסבר:שקף 40
- נכתב מנקודת מבט של השחקן ולא מנקודת ראות של המערכת
- אינו נגמר במענה לכל צרכי הבקשה
- מתחיל בפניה של המערכת לשחקן
- יש לתרחיש תיאור מפורט של GUI
הסבר: שאלה קצת טריקית בגלל שמאפיין טוב: נגמר במענה לכל צרכי הבקשה, מתחיל בפניה של השחקן למערכת , אין לתרחיש תיאור מפורט של GUI בידיוק ההפך ממה שכתוב בתשובות.
מקורות: מצגת se-03-requirements שקופיות 45.
מחבר: yakimartin
- תיאור המבנה העיקרי של המערכת כך שהיא תתאים לצורכי הלקוח תוך התאמה לאילוצי טכנולוגיה ותקציב
- תכנון יעילות האלגוריתמים כדי לאפשר למערכת לרוץ בזמן המהיר ביותר.
- תכנון עבודה בצוות וחלוקת משימות כדי לעמוד בזמן המוקצב לפרוייקט.
- תכנון סדר העדפות של הלקוח כדי שהתוכנה תיהיה תואמת לציפיות שלו.
הסבר: ארכיטקטורה של מערכת מתארת את המבנה העיקרי שלה, כך שהיא תתאים לצורכי הלקוח תוך כדי עמידה באילוצי טכנולוגיה ותקציב: המרכיבים העיקריים וההתנהגות שלהם, הקשרים בין מרכיבים אלו
מקורות:
מצגת04-design. שקופית 21
מחברת: hallel1
- שימוש במודל מפל המים
- הפרדה בין הממשק והמימוש של כל שכבה
- חלוקה לשכבות ברורות המייצגות כל אחת הפשטה של המערכת ומספקת ממשק ברור
- פשטות: שימוש בהפשטות ומנגנונים מקובלים
הסבר:מפל המים מתייחס לצורת פיתוח ולא בהכרח לארכיטקטורה
מקורות: se-04-design שקופית : 24
מחבר: yakimartin
- לאלץ את המתכנתים לבצע ביזור מערכת מהירה ויציבה יותר
- הפרדה ללקוח ושרת
- שימוש במטמון
- אין שמירת מצב לקוח
הסבר: האילוצים על ארכיטקטורה לבניית מערכות מבוזרות הם על מה צריך להיות במערכת המבוזרת לא על המתכנתים
מקורות: se-04-design שקופית : 40
מחבר: yakimartin
- לחשוב מראש באמצעות תיכון על מערכת כאוסף של אובייקטים במקום תכנות פורצדורלי.
- טיפול בתקלות ושגיאות.
- יצירת עצמי דמה על מנת לבצע בדיקות ממצות בלי סביבה מלאה.
- ניצול משאבים.
הסבר: בעזרת שיטה זו נזהה עבור כל תרחיש מהן המחלקות,מה אחריותה,מי הם השותפים העוזרים לה במטרתה ונוכל לשנות ולעדכן תוך כדי תרחישים נוספים.
מקורות: מצגת04-design.
מחברת: esty6u
- מפרט תיכון תוכנה
- מפרט דרישות תוכנה
- תכנון האיטרציה הקרובה
- סיכום האיטרציה האחרונה
הסבר: SDS - Software Design Specification מסמך זה מגדיר את מוצר התוכנה בהתבסס על הדרישות והבנה של האמצעיים הזמינים. תפקידו לארגן תרשימי תיכון של ארכיטקטורת המערכת.
מקורות: מצגת se-04-design.
מחבר: Itay-Hefetz
- ארכיטקטורה לבניית מערכות מבוזרות
- ארכיטקטורה לבניית תבניות תיכון
- שיטה למניעת כפל קוד
- ארכיטקטורה המאפשרת יצירת מחלקות
הסבר: ארכיטקטורה לבניית מערכות מבוזרות
מקורות:
מצגת "הנדסת תוכנה – תיכון Design" שקופיות 40. מחברת: alexlvz
- מבטא את כוונת המתכנת, כל הבדיקות עוברות, אין כפילויות, מספר מינימלי של מחלקות ומתודות.
- עבודה ביחידים, אין כפילויות, מספר מינימלי של מחלקות ושיטות, ביטוי כוונת המתכנת.
- כל הבדיקות עוברות, ביטוי כוונת המתכנת, תיכון של כל הדרישות מראש, מספר מינימלי של מחלקות ומתודות.
- מודולריות, מספר מינימלי של מחלקות ומתודות, כל הבדיקות עוברות, אין כפילויות.
הסבר: על פי בק ארבעת הכללים לתיכון פשוט הם: הקוד ברור ומבטא את כוונת המתכנת, כל הבדיקות עוברות, אין כפילויות, מספר מינימלי של מחלקות ומתודות מתוך: מצגת מס 1 שקופית מס 15.
- הערכת מאמץ בפרויקט .
- תיעוד באופן קל לקוד.
- טיפול בבעיות אבטחה.
- ניצול משאבים.
הסבר: השיטה פותחה על ידי מהנדס התוכנה בארי בם על מנת להעריך את המאמץ הנדרש לפיתוח מוצר תוכנה. המודל משתמש בנוסחת נסיגה פשוטה, עם פרמטרים שנגזרו ממידע על פרויקטים בעבר וממאפייני פרויקטים עכשוויים.
מקורות: מצגת-תכנון 05 שקופית 33, וויקיפדיה.
מחברת: esty6u
- הערכת גודל המוצר, הערכת המאמץ הנדרש, הערכת לוח הזמנים בחודשי היומן, הערכת עלות הפרוייקט בשקלים .
- הערכת איכות המוצר, הערכת יעילות המוצר, הערכת לוח הזמנים בחודשי היומן, הערכת עלות הפרוייקט בשקלים.
- הערכת עלות הפרוייקט בשקלים, הערכת המאמץ הנדרש, הערכת גודל המוצר, הערכת יעילות המוצר.
- הערכת לוח הזמנים בחודשי היומן, הערכת עלות הפרוייקט בשקלים, הערכת המאמץ הנדרש, הערכת גודל המוצר.
הסבר: תחילה צריך להעריך את גודל המוצר, אחרי הערכת הגודל - ניתן להעריך את המאמץ הנדרש כעת אפשר להעריך את לוח הזמנים ובסוף את עלות הפרוייקט
מקורות:
מצגת-תכנון 05 שקופית 27
מחברת: hallel1
- כל התשובות נכונות.
- PERT.
- Wideband Delphi.
- Monte Carlo Simulation.
הסבר: הערכת המאמץ הנדרש הוא אחד השלבים ליצירת הערכה לפרוייקט שלושת הכלים הללו עוזרים להעריך את המאמץ מקורות:
מצגת-תכנון 05 שקופית 37
מחברת: hallel1
- Minimum viable product.
- Maximum viable product.
- Most viable product.
- Minimum version product.
הסבר: ראשי התיבות של MVP זה Minimum viable product והוא גרסה של מוצר חדש שעם מינימום מאמץ תביא אותנו למקסימום למידה על הלקוחות .
מקורות: מצגת se-05-planning שקופיות 56.
מחברת: esty6u
- git commit -a.
- git add -commit.
- git add -c.
- git commit +add.
הסבר: הפקודה git commit -a כוללת את שתי הפקודות .
מקורות: מצגת se-06-07-08 שקופיות122.
מחברת: esty6u
- בדיקות יחידה
- איסוף כל הגרסאות ומעקב אחר השינויים
- ניהול מספר גרסאות במקביל
- גיבוי והצלה של קוד
הסבר: בקרת גרסאות משמשת לאיסוף כל הגרסאות ומעקב אחר השינויים, ניהול מספר גרסאות במקביל, גיבוי והצלה של קוד, שיתוף מספר מפתחים בו זמנית וליצירת מאגר מעודכן של תוצרי הפרוייקט, ולכן בדיקות יחידה הן לא חלק מהשימושים.
מקור: מצגת vcs, עמוד 12 https://github.com/jce-il/se-class-materials/blob/master/lecture/se-06-07-08-vcs.pdf
מחבר: AlonSchwartz
- git checkout -b.
- git branch -c.
- git branch --c.
- git comcheckout +branch.
הסבר: הפקודה git checkout -b כוללת את שתי הפקודות .
מקורות: מצגת se-06-07-08 שקופיות123.
מחברת: esty6u
- fetch ==> merge
- merge ==> fetch
- fork ==> merge
- merge ==> poll
הסבר: קודם כל לפני ההוספה למאגר המרוחק מתבצע fetch זה בעצם הורדה של כל המאגר המרוחק למאגר מקומי חדש, לאחר מכן מתבצע merge בין המאגר עליו בוצעו השינויים לזה שעכשיו ידר, לאחר מכן נדחפים הנתונים למאגר המרוחק
- בדיקת יחידה היא קוד שקורא לקוד אחר ובודק אח"כ נכונות של טענות מסוימות.
- בדיקת יחידה היא בדיקה האם הקוד שכתבנו עובד מול קוד אחר.
- בדיקה יחידה היא בדיקה שפונקציונליות יחידה של המערכת עומדת בדרישות.
- בדיקת יחידה היא כתיבת תכנית הדגמה שמריצה את הקוד.
הסבר: מטרת בדיקות היחידה היא לבודד כל חלק(תרחיש מסויים,מחלקה,פונקציה או מתודה), ולהראות שכל חלק כזה עובד באופן תקין כאשר הוא עצמאי. בדיקות היחידה מספקות סיכום חד משמעי שהחלק עומד בתנאים בהם הוא אמור לעמוד.
מקורות:מצגת 9 שקופית 25 ווויקיפדיה בערך בדיקות יחידה.
מחברת: esty6u
- כל דבר במוצר שבעבר עבד כפי שרצוי וכעת פועל באופן שגוי
- תוספת חדשה למוצר שלא עובדת כפי שהוגדר במסמך דרישות
- תקלה שמתרחשת כאשר שני אנשים מבצעים commit ביחד לאותו מאגר
- תקלה בשרת האחסון של המוצר
הסבר: תקלת רגרסיה יכולה לקבל מספר הגדרות שונות בהתאם לחברה בה נמצאים, אך באופן כללי כל ההגדרות תואמות בכך שהן מגדירות תקלת רגרסיה כמשהו שעבד בעבר באופן רצוי וכעת עובד באופן שגוי
מחבר: ChananM
- אינן תלויות בבדיקות אחרות
- איטיות
- יכולות להתבצע פעם אחת בלבד
- צריך לבדוק באופן ידני את תוצאות הבדיקה
הסבר: על בדיקות יחידה להיות FIRST - Fast Independent Repeatable Self checking Timely: מהירות, עצמאיות, ניתנות לחזרה, לא מצריכות בדיקת אדם של התוצאות. (מצגת tdd, עמוד 13)
מחבר: AlonSchwartz
- שם כללי לאובייקטים שמחליפים אובייקטים אמיתיים, לצרכי הבדיקה
- בדיקה כפולה של האובייקטים האמיתיים
- בדיקה האם יש כפל קוד
- שם כללי עבור זוג בדיקות שצריך לבצע ביחד
הסבר: Test Double הינו שם כללי לאובייקטים שמחליפים אובייקטים אמיתיים, לצרכי הבדיקה. כאשר רוצים לבדוק תוכנה עם תלות בגורמים חיצוניים שונים, אך לא ניתן לגשת אליהם מסיבות שונות (עדיין בפיתוח, איטי מאוד, לא עקבי) ניתן להשתמש בTest Doubles על מנת לדמות את האובייקט האמיתי. (מצגת 11, עמוד 10)
מחבר: AlonSchwartz
- בדיקת מספר רכיבים בתוכנה התלויים אחד בשני.
- פתירת אינטגרל.
- אין בדיקה כזו.
- בדיקת זמן ריצה.
הסבר: בדיקת אינטגרציה זוהי בדיקה שנעשית בשלב הפיתוח על מנת לבדוק איך רכיב בתוכנה משפיע על רכיבים אחרים שאר התשובות לא קשורות לנושא .
מקורות: מצגת se-09-testing-unit שקופיות 28.
מחברת: esty6u
- Test Driven Development.
- Test Driver Development.
- Test Driven Deploy.
- Time Driven Development.
הסבר: ראשי התיבות של TDD הינם: Test Driven Development.
מקורות: מצגת se-10-testing2-tdd שקופיות 7.
מחברת: esty6u
- מכסה דרישות.
- דיבאג מוקדם.
- מודולריות.
- חשיבה כלקוח.
הסבר: אחד מן החסרונות של TDD הוא שהוא אינו מכסה דרישות. מקורות: מצגת se-10-testing2-tdd שקופיות 8-9.
מחברת: esty6u
- עמידה בזמן המוקצב לפרוייקט.
- עקרונות.
- תבניות.
- הרגלים.
הסבר: עמידה בלוח זמנים אומנם חשוב מאוד (לקוח מרוצה ועוד) אך אינו מבטיח איכות קוד .
מקורות: מצגת se-12-13-legacy שקופיות 8.
מחברת: hallel1
- ארגון הקוד מחדש ושיפורו.
- שימוש בטכניקות שנועדו לשמר את מבנה הקוד.
- יצירת קובץ בדיקה לקוד.
- בניית קוד חדש.
הסבר: נובע מההגדרה: ארגון הקוד מחדש משמעו שיפור קוד קיים על ידי שימוש בטכניקות שנועדו לשפר את המבנה הפנימי של הקוד מבלי לשנות את ההתנהגות החיצונית שלו.
מקורות – עמ' 42 מצגת legacy
מחברת: LilachhN
- קוד קצר.
- שינויים אינם גורמים לתוצאות בלתי צפויות.
- שינוי קטן בדרישות לא מצריך שינוי גדול בקוד.
- ניתן לעשות שימוש חזור בקוד קיים.
הסבר: קוד קצר הוא לא בהכרח קוד שקל לשנות אותו,הוא יכול להיות לא קריא או לא דינמי..
מקורות: מצגתse-extra-oodp שקופיות 11.
מחברת: esty6u
- נכונות ויעילות
- עקיבות
- פשטות
- מודולריות
הסבר: איכות התוכנה מתחלקת למרכיבים פנימיים ולמרכיבים חיצוניים. נכונות ויעילות הינו מרכיב חיצוני של איכות התוכנה מקורות: מצגת se-10-legacy שקופית 10
מחבר: Itay-Hefetz
- עומד בעקרונות הSOLID ללא Refactoring.
- על מנת לעמוד בעקרונות הSOLID נדרש לבצע Refactoring.
- הבעייתיות בו שהוא עלול לגרום לצמידות או תלות (coupling) גבוהה.
- נועדה למקרים בהם נרצה להגביל מופעים של מחלקה מסוימת למופע יחיד.
הסבר: הבעייתיות היא שתבנית זו בצורתה המקורית עלולה לגרום בשימוש לא נכון לקוד בו המחלקות בצמידות או תלות (coupling) גבוהה.
מקורות – מצגת SOLID OODP עמ' 92
מחברת: LilachhN
- 60%.
- 15%.
- 45%.
- 10%.
הסבר: מקובל שכ- 60% מתוך עלות התוכנה הולך לתחזוקת קוד ומתוכם 60% לשיפורים כאשר מדובר בקוד קיים.
מקורות: מצגת se-12-13-legacy שקופיות 12.
מחברת: esty6u
מאושרות?
- הקוד מכוסה ע"י טסטים
- הקוד פותח בשיטות אג'ייל
- יש המון מסמכי תיכון
- הקוד מסודר וקריא
הסבר :הדבר שיעזור לנו הכי הרבה לבדוק את תקינות הקוד לאחר שינוי שעשינו אלו בדיקות, יכול להיות שיש המון מסמכי תיכון אבל לעיתים רבות הם לא מעודכנים, או קוד מסודר וקריא אבל אולי מלא בבאגים.
- רוב תבניות התיכון מיועדות לשפות תוכנה מסויימות.
- תוכנה שמשתמשת בהרבה תבניות תיכון אינה בהכרח טובה יותר.
- ניסיון להחיל תבניות תיכון מוקדם מידי יכול להיות גרוע כמו החלתן מאוחר מידי.
- תוכנה בעלת תיכון טוב יכולה להמשיך להתפתח עד שמגיעים למצב שתבניות הופכות לאנטי תבניות .
הסבר: תבניות תיכון מיועדות לכלל שפות התכנות ולא לשפות תכנות מסויימות.
מקורות: מצגת se-extra-patterns שקופיות 15.
מחברת: esty6u
- מודל סופי של המוצר המועבר לבקרת איכות
- פרק ראשון בסדרת טלוויזיה
- מוצר פיזי ללא טכנולוגיה
- דגם המדמה ממשק של האפליקציה (מוק-אפ)
הסבר: אבטיפוס הוא דגם ראשוני של המוצר למטרת בחינה והתנסות, ולכן הוא אינו יכול להיות מודל סופי.
מקור: עמוד 9 במצגת של יערה (https://github.com/jce-il/se-class-materials/blob/master/lecture/se2-guest-prototyping.pdf)
מחבר: AlonSchwartz
- JavaCC
- TestNG
- Selenium
- ChromeDriver
הסבר: JavaCC הינו כלי המחולל קומפיילר על שפת Java ואינו קשור בשום צורה לבדיקות תוכנה. כמו כן, ראינו שסלניום מחבר את הסקריפט האוטומטי לאתר עצמו, כרום-דרייבר הוא המנוע שמפעיל את הדפדפן בזמן הריצה ו- TestNG הינו כלי המשמש למעקב אחר הטסט וניהול הפונקציונליות שלו.
מקור: מצגת הרצאת אורח - אוטומציה.
מחבר: liorva