המדרשה לדרישות "טובות" – מאמר שני בסדרה

אלון מודעי

רקע

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

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

בפרק זה נפגוש עוד מספר מאפיינים של דרישה "טובה" ועוד כמה כללי עבודה. שימו לב שחלק מהכללים נוגעים לשפה ולתחביר. עוד על כך – בהמשך.

מה בכלל עושים עם דרישות?

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

תכונות של דרישה "טובה" (המשך)

דרישה "טובה" מוגדרת ע"י התכונות הבאות:

שלמה (Complete)

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

הדרישה הזאת מסתמכת על הכותרת שמעליה כדי להבין על מה מדובר. זה לא קביל. במקום זאת צריך להיות:

פעמון האזעקה
פעמון האזעקה יצלצל למשך לא יותר מ-20 דקות
כעת אפשר להבין את הדרישה גם ללא הכותרת.

יחודית (Singular)

דרישה צריכה לבטא רעיון יחיד וברור.
הרציונאל: האפקטיביות של מספר פעילויות הקשורות לדרישות, כגון: גזירה, הקצאה, עקיבות, אימות ותיקוף, תלויה ביכולת לזהות מסרים יחידים. כל שימוש בו"ו החיבור בתוך דרישה צריך לאותת לנו לבדוק אם אכן יש בה מסר יחיד.
דוגמא:
מערכת הבקרה תסגור את שסתום כניסת המים עד שהטמפרטורה תרד ל-850 צלזיוס ואז תפתח אותו.
זה לא קביל מכיוון שהמשפט מכיל שתי דרישות (יש כאן חריגות מכללים נוספים של כתיבת דרישות, שאליהם נגיע בהמשך). כדי שיהיה קביל – צריך לפצל את המשפט לשתי הדרישות. באותה ההזדמנות גם נכמת את הביצועים הנדרשים:
1. מערכת_הבקרה תסגור את שסתום_כניסת_המים, בתוך פחות מ-3 שניות, כאשר טמפרטורת המים בדוד גבוהה מ-85צלזיוס.
2. מערכת_הבקרה תפתח את שסתום_כניסת_המים, בתוך פחות מ-3 שניות, כאשר טמפרטורת המים בדוד נמוכה מ-85צלזיוס.
שימו לב לערכי המילון המשולבים בדרישות.

ישימה (Feasible)

דרישה צריכה להיות ברת ישום.
הרציונאל: דרישות לא ישימות הן במקרה הטוב בזבוז זמן, ובמקרה הרע מובילות לפתרונות הגוררים הוצאות בלתי הכרחיות.
דוגמא:
למוצר תהיה אמינות של 100%.

אמינות של 100% כמעט שאיננה ברת-השגה. אם נחשוב קדימה לאימות הדרישות – איך נוכיח אמינות של 100% ? וגם לו יכולנו לבנות מערכת כזאת – האם נוכל להרשות זאת לעצמנו מבחינת העלות ?

השוו לעומת זאת את הדרישה שלהלן:

למוצר תהיה אמינות גדולה או שווה ל-98%.
שימו לב שאמינות הוא מונח המוגדר במילון.

כללים לכתיבת דרישה "טובה" (המשך)

זה הזמן לציין עוד כלל חשוב לכתיבת דרישות:

הקפד שהדרישה תהיה מורכבת ממשפט אחד, הבנוי על פי כללי התחביר:

תנאי + נושא + נשוא + מושא [ + סייג]

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

בצורה כזאת מתקבלת דרישה שיש בה משפט אחד פשוט, המביע מחשבה אחת.

מה למדנו ?

אוסף התכונות של דרישה "טובה" שבנינו עד עתה הוא:

תכונה
הדרישה צריכה להיות
חיונית
הכרחית
בלתי-תלויה ביישום
מבטאת את הצורך, לא את אופן מתן המענה
חד-משמעית
בעלת פרשנות אחת בלבד
שלמה
עומדת בזכות עצמה
ייחודיתמבטאת רעיון יחיד וברור
ישימהברת יישום

צברנו גם שני כללים לכתיבת דרישה "טובה", והם:

דרישות נכתבות בצרוף מילון מונחים מפורט. במילון מרוכזות במקום אחד, לפי סדר אלפאבתי, ההגדרות של כל המונחים שבשימוש על פני כל הדרישות.
הקפד שהדרישה תהיה מורכבת ממשפט אחד, הבנוי על פי כללי התחביר: תנאי + נושא + נשוא + מושא [ + סייג]

מה הלאה ?

בפינה הבאה של "המדרשה לדרישות טובות" נכיר עוד מאפיינים לדרישה טובה ונלמד עוד כללי עבודה מועילים.

הערה לפני סיום

אם למישהו נדמה שאנו עוסקים בשעור דקדוק ותחביר – אכן כך. כדי לכתוב דרישות טובות נחוצה הכרה מעמיקה של השפה בה הן נכתבות. מכיוון שדרישה מבוטאת ע"י משפט בשפה – נדרש ידע בדקדוק ובתחביר של אותה השפה כדי שהדרישה תבטא בדיוק את מה שמתכוונים.

על המחבר, אלון מודעי

מומחה לתהליכים הנדסיים. בוגר תואר שני מאוניברסיטת Carnegie Mellon ובעל 30 שנות ניסיון בארגוני פיתוח שונים, בארץ ובעולם. מזה 12 שנים עוסק בשדרוג תהליכי הנדסת המערכות בתעשייה האווירית, בהדרכה ובהטמעה.

להרשמה השאירו פרטים

    ארכיון ניוזלטרים >>