Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 75

Lesson #3

3.1 Requirements - Reminder

Yigal Cohen
Yigal.Chen@mail.huji.ac.il
yigalco@edu.hac.ac.il

1
‫שאלות לחזרה‬
‫‪ .1‬מהם השלבים השונים בהנדסת דרישות ? ראה‬
‫‪ .2‬האם פיתוח דרישות הוא תהליך מחזורי ?ראה‬
‫‪ .3‬מהם הרמות של מסמכי‪/‬שלבי דרישות מה הם שני סוגי הדרישות העקריות ? ראה‬
‫‪ .4‬מה זה ‪ ? SRS‬מה הוא מכיל ? ראה‬
‫‪ .5‬מונית למנהל פרויקט שכבר עובד מספר חודשים מה תבדוק לגבי הדרישות ? ראה‬
‫‪ .6‬מתי כותבים את הדרישות ? מתי מתחילים תהליך שנוי מבוקר ? ראה‬
‫‪ .7‬תנו דוגמאות ל‪ Quality Attributes‬ראה‬
‫• מהו סקר תכנון דרישות? ראה‬
‫• מה שואלים לגבי כל דרישה ומה שואלים לגבי מסמך הדרישות כולו? ראה‬

‫• ‪Next Slide‬‬
Requirements Engineering
Requirements
engineering

Requirements Requirements
Development Management

Elicitation Analysis Specification Verification


Requirements Engineering
RE-Evaluate

Elicitation Analysis Specification Verification

Clarify Rewrite

Correct & close gaps


Levels of Requirements
‫??אפשר דוגמא‬
Relationships of basic types of requirements
 Functional Non Functional
Business
requirements

Vision and scope document

User Business
Requirements rules
Quality
Attributes
Use case document
External
System Functional Interfaces
requirements Requirements
Constraints

Software Requirements Spec


Software Requirements Specification (SRS)

– System Description and diagram


– Relevant Business rules
• Industrial standards, Governments rules
– Constraints
– External interfaces
– Functional requirements
• Use cases and “Shall sentences”
– Relevant quality attributes
• Performance, scalability, etc…
‫מונית למנהל פרויקט שכבר עובד מספר חודשים‬
‫? מה תבדוק לגבי הדרישות‬

Requirements
– Exist and documented
– Respond the stakeholder needs
– Were reviewed
– Are maintained
– Change requests are controlled by CCB
– Include functional and non-functional requirements
– Traceable and actually traced by design, code and
test
‫מתי כותבים את הדרישות ? מתי מתחילים תהליך שנוי‬
‫מבוקר ?‬
‫• דרישות נכתבות לאחר שהוגדרו מטרות הפרויקט‬
‫ומעודכנות לאורך כל חיי הפרויקט‪.‬‬
‫• לאחר סגירת הדרישות (או לאחר אישור פרק‬
‫מהדרישות) יש להתחיל בבקרת שינויים‪Change( :‬‬
‫‪)requests‬‬
Quality attributes
Important to the user Important to the Developer

 Availability  Maintainability
 Efficiency  Portability
 Flexibility  Reusability
 Integrity  Testability
 Interoperability
 Reliability
 Robustness
 Usability
 Performance
User Quality attributes (1)
• Availability
– The up-front time of the system (see: MTBF, MTTR,
load balancing)
• Efficiency
– Using of system resources (CPU, Disk space, etc.)
• Flexibility
– Expandability – the easiness of appending features to
the system
• Integrity
– Security, privacy, keeping data, manage access
privileges
User Quality attributes (2)
• Interoperability
– Easiness of interfacing with other systems
• Reliability
– The probability of SW executing without a failure
• Robustness
– Fault tolerance – Continue to work when error or a
failure occur
• Usability
– Human Engineering
• Performance
– Throughput & latency
Developer Quality attributes
• Maintainability
– How easy is to correct defect, to install a new software, to make
periodical maintenance
• Portability
– The effort required to migrate a piece of SW to another
environment (e.g. Win to Linux)
• Reusability
– The effort required to migrate a piece of SW to another
application
• Testability
– The required effort to test the system (debuggers, loggers, tools)
‫שאלות לתזכורת‬
‫מהו סקר תכנון דרישות? ראה‬ ‫•‬
‫מה שואלים לגבי כל דרישה ומה שואלים לגבי מסמך‬ ‫•‬
‫הדרישות כולו? ראה‬
‫מהו ניהול תכולה? ראה‬ ‫•‬
‫מהם השלבים בניהול תכולת תוכנה? ראה‬ ‫•‬
‫מה זה ‪ WBS - Work Breakdown Structure‬איך‬ ‫•‬
‫בונים אותו? ראה‬
‫עבור לשיעור‬ ‫•‬
‫סקר דרישות –‬
‫‪Software Requirements Review‬‬
‫האם דרישות המערכת מכוסות?‬ ‫•‬
‫האם הדרישות העסקיות מכוסות?‬ ‫•‬
‫האם ה‪ Business Rules-‬מכוסות?‬ ‫•‬
‫האם הדרישות הלא פונקצוינליות מוגדרות‪ ,‬ברורות‬ ‫•‬
‫ומתאימות לפרויקט?‬
‫האם הממשקים החיצוניים מוגדרים?‬ ‫•‬
– ‫סקר דרישות‬
Software Requirements Review

Each Requirement The entire SRS


SMART is acronym of  Manageable
 Specific,  Traceable
 Manageable,  Complete
 Assignable,  Consistent
 Realistic, Readable  Hierarchical
 Testable, Traceable, Time-  Modifiable
related
Levels of Requirements
Relationships of basic types of requirements
 Functional Non Functional
Business
requirements

Vision and scope document

User Business
Requirements rules
Quality
Attributes
Use case document
External
System Functional Interfaces
requirements Requirements
Constraints

Software Requirements Spec

16
Software Requirements Specification (SRS)

– System Description and diagram


– Relevant Business rules
• Industrial standards, Governments rules
– Constraints
– External interfaces
– Functional requirements
• Use cases and “Shall sentences”
– Relevant quality attributes
• Performance, scalability, etc…

17
Lesson 3

– Software Design
‫תכנון תכנה‬

Yigal Cohen
YigalHacohen@gmail.com

18
‫הצורך בתכנון תכנה‬
• To model the system or product that is to be
built.
• This model can be assessed for quality and
improved before code is generated, tests are
conducted, and end users become involved in
large numbers.
• Design is the place where software quality is
established.
‫מהם שלבי תכנון תכנה‬
1. Architecture of the system.
2. Interfaces that connect the software to end users, to
other systems and devices, and to its own components
3. Software components that are used to construct the
system are designed
4. Data / Class Design - the data structure and their
abstraction
 Each of these views represents a different design action, but
all must conform to a set of basic design concepts that guide
software design work.
DESIGN CONCEPTS
Abstraction
• Refers to describe the high level while
suppress some details
– Data abstraction
– Procedural abstraction
Modularity
• Software is divided into separately named and
addressable components, sometimes called
modules, that are integrated to satisfy problem
requirements.
• Each module shall be:
– Independent
– Comprehensive
– Without side effects.
– And with interfaces that transfer all input and output
data (including testing data)
1 - ‫שלבי תכנון תכנה‬
1. Architecture of the system.
2. Interfaces that connect the software to end users, to
other systems and devices, and to its own components
3. Software components that are used to construct the
system are designed
4. Data / Class Design - the data structure and their
abstraction
Software architecture
• Architecture is:
– the structure or organization of program
components (modules),
– the manner in which these components interact,
– the structure of data that are used by the
components.
– In a broader sense, components can be
generalized to represent major system elements
and their interactions.
‫ארכיטקטורת תוכנה‬
‫• הגדרת מבנה המערכת (גם בדיאגרמה)‬
‫• מתמקדת בהגדרת המבנים העיקריים‪:‬‬
‫– הממשקים החיצוניים‪,‬‬
‫– התהליכים העיקריים של התוכנה‪,‬‬
‫– מבני הנתונים העיקריים‪,‬‬
‫– והקשרים (ממשקים) ביניהם‪,‬‬
‫• הערה‪ :‬עדיין אין הסכמה בתעשייה באשר להיבטים השונים של התוכנה‬
‫הנדרשים להיכלל כחלק מהארכיטקטורה‪ ,‬אם כי יש דרך תקנית לתיאור‪ ‬חלק‬
‫מההיבטים באמצעות שפת המידול המאוחדת ‪( UML‬מתוך ויקיפדיה)‬
‫איך נתכנן מערכת?‬
‫בשכבות‪ :‬ממשקים‪ ,‬אפליקציות (רכיבי תוכנה)‪ ,‬ממשק לנתונים‬ ‫‪‬‬

‫ומבני נתונים‬
‫כל מודול יהיה עצמאי‪ ,‬מקיף וכולל ((‪ Comprehensive‬עם‬ ‫‪‬‬

‫ממשקים ברורים שמספקים את הנתונים שהוא צריך‪ ,‬ואת הנתונים‬


‫שהוא מוסר‬
‫כל ממשק יתאר את מעברי הנתונים מצד לצד בכל רמות הפרוטוקול‬ ‫‪‬‬

‫נתאר את מבני הנתונים העיקריים הדרושים למערכת‬ ‫‪‬‬

‫איכות‪ :‬בטיחות‪ ,‬מהירות ביצוע‪ ,‬זמן תגובה‪ ,‬יתירות‪ ,‬גיבוי‪,‬‬ ‫‪‬‬

‫התאוששות‪ ,‬שרידות‪( throughput,‬הספק‪/‬תעבורה)‪ ,‬טיפול‬


‫בשגיאות – לפי הצורך‬
‫מבנה מערכת בשכבות‬
‫משתמש קצה ‪3‬‬
‫‪ +‬ממשק אינטרנט ‪UI‬‬
‫אפליקציות‬ ‫משתמש קצה ‪1‬‬

‫)‪ (Classes‬ממשקי גישה‬


‫לבסיס נתונים‬
‫משתמש קצה ‪2‬‬
‫בסיס‬
‫משתמש‬ ‫נתונים‬
‫קצה ‪4‬‬

‫‪ ....‬משתמש קצה‬
‫מה עושה כל שכבה‬
‫• ממשקים‪ :‬אינטרנט ‪UI +‬‬
‫– מתקשרת בין האפליקציה למשתמש‪ ,‬עם זה אדם אז יש ‪UI‬‬
‫• אפליקציות‬
‫– מתקשרת עם הממשק למשתמש ומפעילה אותו‪ ,‬מתקשרת עם הממשק לבסיס‬
‫הנתונים ומוסרת לו נתונים והוראות ומבקשת נתונים‪ .‬מתקשרת עם אפליקציות‬
‫אחרות‪.‬‬
‫• ממשקי גישה לבסיס נתונים‬
‫– מאפשרים גישה לטבלאות מסוימות בבסיס הנתונים לפי הרשאות (קריאה‪,‬‬
‫כתיבה‪ ,‬יצירה‪ ,‬שינוי)‬
‫• בסיס הנתונים‬
‫– שומר נתונים‪ ,‬כותב וקורא‪[ .‬יש גם תחזוקה וגבוי]‬
‫שאלה קצרה‬
‫• לפי הדרישות אילו ממשקים צריך במערכת הסופרמרקט?‬
‫דוגמא‪ :‬סופר מרקט – דרישות‬
‫‪ .1‬דרישות עסקיות ‪-‬‬
‫‪ .2‬דרישות פונקציונליות עבור סוגי לקוחות‪:‬‬
‫קונה באינטרנט‬ ‫‪.1‬‬
‫מלקטת ‪ -‬ממלאת סלים‬ ‫‪.2‬‬
‫מנהל אתר קניות באינטרנט‪,‬‬ ‫‪.3‬‬
‫מקדם מכירות (מבצעים)‬ ‫‪.4‬‬
‫קופה ‪ /‬קופאי‬ ‫‪.5‬‬
‫קניין‬ ‫‪.6‬‬
‫ממלא מדפים‬ ‫‪.7‬‬
‫מחסנאי‬ ‫‪.8‬‬
‫מנהל כספים‬ ‫‪.9‬‬
‫מבנה מערכת‬
‫קונה באינטרנט‬

‫ממלאת סלים‬
‫מנהל כספים‬
‫חברת אשראי‬

‫?‬
‫מנהל אתר קניות‬
‫באינטרנט‬
‫מחסנאי‬

‫מקדם מכירות‬
‫ממלא מדפים‬

‫חברת אשראי‬ ‫מנהל משלוחים‬


‫קנין‬
‫קופאי‬
‫מבנה מערכת בשכבות‬
‫קונה באינטרנט‬
‫‪ +‬ממשק אינטרנט ‪UI‬‬
‫ממלאת סלים‬
‫אפליקציות‬
‫מנהל כספים‬
‫חברת אשראי‬
‫)‪ (Classes‬ממשקי גישה‬
‫לבסיס נתונים‬ ‫מנהל אתר קניות‬

‫מחסנאי‬ ‫בסיס‬
‫נתונים‬

‫ממלא מדפים‬
‫מקדם מכירות‬

‫קנין‬ ‫מנהל משלוחים‬

‫קופאי‬
‫ארכיטקטורה חלקית של חלק הצרכן בסופרמרקט‬
‫צרכן‬

‫ממשק ‪UI‬‬ ‫ממשק ‪UI‬‬


‫לרישום‬ ‫להזמנת‬
‫למערכת‬ ‫מצרכים‬

‫אפליקציה‬
‫לרישום‬ ‫אפליקציה להזמנת מצרכים‬
‫למערכת‬
‫‪1 0.6‬‬ ‫יום הולדת לאיילה ‪ -‬יום שני ‪-‬‬ ‫‪10‬‬
‫ברכה ומתנה‪ .‬גם ליהונתן‬
‫‪1‬‬ ‫יום הולדת לגפן ‪ 17 -‬באוגוסט‬ ‫‪11‬‬
‫‪ -‬ברכה ומתנה‬

‫ממשק‪DB‬‬ ‫ממשק ‪DB‬‬ ‫ממשק‪DB‬‬ ‫ממשק‪DB‬‬ ‫ממשק‪DB‬‬ ‫ממשק‪DB‬‬


‫לטבלת‬ ‫לטבלת‬ ‫לקריאת טבלת‬ ‫לקריאת טבלת‬ ‫לטבלת‬ ‫לקריאת טבלת‬
‫לקוחות‬ ‫הזמנות‬ ‫מוצרים‬ ‫לקוחות‬ ‫משלוחים‬ ‫מחירים‬

‫טבלה‬
‫טבלת מוצרים‬ ‫טבלת לקוחות‬ ‫טבלת הזמנת‬
‫טבלת לקוחות‬ ‫הזמנות‬ ‫טבלת מחירים‬
‫משלוחים‬
4 - ‫שלבי תכנון תכנה‬
1. Architecture of the system.
2. Interfaces that connect the software to end users, to
other systems and devices, and to its own components
3. Software components that are used to construct the
system are designed
4. Data / Class Design - the data structure and their
abstraction
‫מה תפקיד בסיס הנתונים ?‬
‫• שומר ומאחזר נתונים‬
‫• מקשר בין משתמשים (אחד‪ ,‬שניים או יותר) בהפרשי זמן‬
‫מה נתכנן בבסיס נתונים?‬
‫טבלאות נתונים‬ ‫‪‬‬

‫את סוגי הנתונים שיהיו בכל טבלת נתונים (מבנה רשומה)‬ ‫‪‬‬

‫את המפתח לכל טבלה‬ ‫‪‬‬


‫ש‪ :‬אילו טבלאות נתכנן בבסיס נתונים?‬
‫דוגמא – תכנון בסיס נתונים לסופרמרקט‬
‫• טבלאות הנתונים שדרושות לניהול ממשק לקוח‪:‬‬
‫טבלת לקוחות‬ ‫‪.1‬‬
‫טבלת מוצרים‬ ‫‪.2‬‬
‫טבלת מחירים‬ ‫‪.3‬‬
‫טבלת משלוחים‬ ‫‪.4‬‬
‫טבלת הזמנות‬ ‫‪.5‬‬
‫טבלאות אישיות לניצול זיכרון הקניות‬ ‫‪.6‬‬
‫דוגמא – תכנון בסיס נתונים לסופרמרקט (‪)1‬‬

‫• פירוט טבלאות הנתונים שדרושים לניהול ממשק לקוח (‪: )1‬‬


‫‪ .1‬טבלת לקוחות‪:‬‬
‫• מספר זהוי ללקוח‪ ,‬שם‪ ,‬כתובת‪ ,‬טלפון‪ ,‬שעות מועדפות‪,‬‬
‫כשרויות‪[ ,‬כרטיס אשראי]‬

‫‪ .2‬טבלת מוצרים‬
‫• מספר מזהה למוצר == מספר ברקוד‪ ,‬שם מוצר כללי‪ ,‬שם‬
‫מוצר פרטי‪ ,‬שם יצרן‪ ,‬כמות (אם הוא ארוז)‪ ,‬כשרויות‬

‫‪ .3‬טבלת מחירים‬
‫• מספר מזהה למוצר‪ ,‬תאריך‪ ,‬הגדרת יחידה‪ ,‬מחיר ליחידה‬
‫דוגמא – תכנון בסיס נתונים לסופרמרקט (‪)2‬‬
‫• פירוט טבלאות הנתונים שדרושים לניהול ממשק לקוח (‪: )2‬‬
‫‪ .1‬טבלת הזמנת משלוחים‬
‫• מספר זיהוי ללקוח‪ ,‬כתובת‪ ,‬אזור משלוח‪ ,‬זמני משלוח אפשריים‪[ ,‬מחיר משלוח]‬

‫‪ .2‬טבלת הזמנות‬
‫• כותרת‪ ,‬מספר הזמנה‪ ,‬מספר זיהוי ללקוח‪ ,‬תאריך‪ ,‬שם‪ ,‬אמצעי תשלום‪ ,‬זמן משלוח מבוקש‬
‫• רשימת מוצרים‪ :‬מספר הזמנה‪ ,‬מספר מזהה למוצר‪ ,‬הגדרת יחידה‪ ,‬מספר יחידות‪ ,‬מחיר‬
‫ליחידה [ילקח מטבלת מחירים]‪ ,‬סך לתשלום למוצר‪ ,‬תאריך‬
‫• סיכום‪ ,‬מספר הזמנה‪ ,‬מספר זיהוי ללקוח‪ ,‬תאריך‪ ,‬סכום לתשלום‪ ,‬תאריך משלוח‪,‬‬

‫‪ .3‬טבלאות אישיות לניצול זיכרון הקניות‬


‫• כמו טבלת הזמנות‬
‫דוגמא – תכנון בסיס נתונים לסופרמרקט‬

‫• טבלאות נתונים נוספות‪:‬‬


‫טבלת מלוי הזמנות בפועל‬ ‫‪.7‬‬
‫טבלת חשבוניות‬ ‫‪.8‬‬
‫מלאי כולל במחסן ‪ -‬עבור המחסנאי‬ ‫‪.9‬‬
‫מלאי כולל במדפים ‪ -‬עבור מסדר המדפים‬ ‫‪.10‬‬
‫תכנון משלוחים – עבור מנהל המשלוחים‬ ‫‪.11‬‬
‫טבלת מכירות – עבור מנהל הכספים‬ ‫‪.12‬‬
‫דוגמא – תכנון בסיס נתונים לסופרמרקט‬
‫• פירוט טבלאות הנתונים הנוספות‪:‬‬
‫‪ .7‬טבלת מלוי הזמנות בפועל‬
‫כותרת‪ ,‬מספר הזמנה‪ ,‬מספר זיהוי ללקוח‪ ,‬תאריך‪ ,‬שם‪ ,‬אמצעי תשלום‪,‬‬ ‫•‬
‫רשימת מוצרים‪ :‬מספר הזמנה‪ ,‬מספר מזהה למוצר‪ ,‬הגדרת יחידה‪ ,‬מספר יחידות‪ ,‬מחיר ליחידה [יילקח‬ ‫•‬
‫מטבלת מחירים]‪ ,‬סך לתשלום למוצר‪ ,‬תאריך‬
‫סיכום‪ ,‬מספר הזמנה‪ ,‬מספר זיהוי ללקוח‪ ,‬תאריך‪ ,‬סכום לתשלום‪ ,‬תאריך משלוח‪ ,‬מספר חשבונית‬ ‫•‬
‫‪ .8‬טבלת חשבוניות‬
‫מספר חשבונית‪ ,‬חשבונית‬ ‫•‬
‫‪ .9‬מלאי כולל במחסן‪ - :‬מחסנאי‬
‫מספר מזהה למוצר ‪ ,‬כמות‪ ,‬במחסן‪ ,‬כמות מינימלית‪ ,‬כמות מקסימלית‪ ,‬זמן אספקה‪ ,‬פרטי ספק‬ ‫•‬
‫‪ .10‬מלאי כולל במדפים‪ - :‬מסדר מדפים‬
‫מספר מזהה למוצר‪ ,‬כמות במדפים‪ ,‬כמות מינימלית‪ ,‬כמות מקסימלית‬ ‫•‬
‫‪ .11‬תכנון משלוחים – מנהל משלוחים‬
‫מספר לקוח‪ ,‬מספר הזמנה‪ ,‬אזור‪ ,‬תאריך משלוח‪ ,‬זמן משלוח‬ ‫•‬
‫‪ .12‬טבלת מכירות – מנהל כספים‬
‫תאריך‪ ,‬סכום מכירות‪ ,‬סכומים לפי קטגוריות (?)‬ ‫•‬
‫מבנה מערכת מופשט‬
‫שיוך משתמשים לטבלאות‬
‫קונה באינטרנט‬
‫‪1,2,3,4,5,6,8,‬‬
‫בסיס נתונים‬ ‫ממלאת סלים‪5,7‬‬
‫טבלת לקוחות‬ ‫‪.1‬‬
‫מנהל כספים ‪12‬‬
‫טבלת מוצרים‬ ‫‪.2‬‬
‫טבלת מחירים‬ ‫‪.3‬‬
‫טבלת משלוחים‬ ‫‪.4‬‬
‫טבלת הזמנות‬ ‫‪.5‬‬ ‫מנהל אתר קניות ‪ ,3,2,‬וכל‬
‫טבלאות אישיות‬ ‫‪.6‬‬ ‫הטבלאות‬
‫מחסנאי ‪9‬‬ ‫טבלת מלוי הזמנות הפועל‬ ‫‪.7‬‬
‫טבלת חשבוניות‬ ‫‪.8‬‬
‫מלאי כולל במחסן‪ - :‬מחסנאי‬ ‫‪.9‬‬
‫מלאי כולל במדפים‪ - :‬מסדר מדפים‬ ‫‪.10‬‬ ‫מקדם מכירות ‪6‬‬
‫מסדר מדפים ‪10‬‬ ‫תכנון משלוחים – מנהל משלוחים‬ ‫‪.11‬‬ ‫‪3 ,2 ,‬‬
‫טבלת מכירות – מנהל כספים‬ ‫‪.12‬‬
‫מנהל משלוחים ‪11‬‬
‫קנין ‪9‬‬
‫קופאי ‪2,3,4,7,9,10,11,12‬‬
‫תרחישים עבור קונה באינטרנט‬
‫‪ .1‬רישום לאתר‬
‫האפליקציה תבקש מהלקוח את מספר הזהות שלו‪ ,‬שמו‪ ,‬כתובת‪ ,‬טלפון‪ ,‬כשרויות רצויות‪,‬‬ ‫•‬
‫כרטיס אשראי ותאשר את הנתונים‪[ ,‬איך??]‬
‫האפליקציה תצרף את הלקוח לרשימת הלקוחות בבסיס הנתונים‪.‬‬ ‫•‬
‫האפליקציה תציע ללקוח לבצע קניה‬ ‫•‬

‫‪ .2‬ביצוע קניה‪:‬‬
‫פתיחת רשימה‬ ‫‪.1‬‬
‫חזרה על ‪3-6‬‬ ‫‪.2‬‬
‫הוספת פריט‬ ‫‪.3‬‬
‫השוואת מחירים בין פריטים דומים‬ ‫‪.4‬‬
‫מחיקת פריט‬ ‫‪.5‬‬
‫הזמנת תאריך משלוח‬ ‫‪.6‬‬
‫סגירת רשימה‬ ‫‪.7‬‬
‫עבודה מול לקוח – רשימת מודולים וממשקים‬
‫ממשק לקוח (‪)UI‬‬ ‫‪.1‬‬
‫• מציג נתוני מוצרים ומחירים ללקוח מהאפליקציה‪ ,‬ומקבל ממנו נתוני הזמנה‪ ,‬ומעביר‬
‫אותם לאפליקציה‬
‫אפליקציות ללקוח‬ ‫‪.2‬‬
‫• מנהלות את הפעולות מול הלקוח ושאר המודולים כולל‪:‬‬
‫‪ .1‬רישום‪ :‬רישום לאתר‪,‬‬
‫‪ .2‬הזמנת מוצרים‪ :‬ניהול רשימה‪ ,‬סגירת רשימה‪ ,‬ועוד‪ .‬מבקשת נתונים מה‪ ,DB-‬שולחת‬
‫ומקבלת מידע מממשק הלקוח‪.‬‬
‫ממשק עם ‪ DB‬עבור לקוח‬ ‫‪.3‬‬
‫• כותב ושולף נתונים ל‪ DB-‬לפי דרישות האפלקציה ומוגבל בהרשאות הלקוח‬
‫כולל טבלת‪ :‬לקוחות‪ ,‬מוצרים‪ ,‬מחירים‪ ,‬משלוחים‪ ,‬רשימה עכשווית‪ ,‬טבלאות אישיות‬
‫ממשק לחברת אשראי‬ ‫‪.4‬‬
‫• מתקשר עם האפליקציה לחברות האשראי בצורה מאובטחת‪ ,‬שמעבירה סכומים לחיוב‪,‬‬
‫מקבלת אישורי הרשאות לכרטיסים‪ ,‬ועוד‬
‫ארכיטקטורה חלקית של חלק הצרכן בסופרמרקט‬
‫צרכן‬

‫ממשק ‪UI‬‬ ‫ממשק ‪UI‬‬


‫לרישום‬ ‫להזמנת‬
‫למערכת‬ ‫מצרכים‬

‫אפליקציה‬ ‫אפליקציה‬
‫לרישום‬ ‫מצרכים‬
‫א‬ ‫אפליקציה להזמנת‬ ‫לחברות‬
‫למערכת‬ ‫אשראי‬

‫ממשק‪DB‬‬ ‫ממשק ‪DB‬‬ ‫ממשק‪DB‬‬ ‫ממשק‪DB‬‬ ‫ממשק‪DB‬‬ ‫ממשק‪DB‬‬


‫לטבלת‬ ‫לטבלת‬ ‫לקריאת טבלת‬ ‫לקריאת טבלת‬ ‫לטבלת‬ ‫לקריאת טבלת‬
‫לקוחות‬ ‫הזמנות‬ ‫מוצרים‬ ‫לקוחות‬ ‫משלוחים‬ ‫מחירים‬

‫טבלה‬
‫טבלת מוצרים‬ ‫טבלת לקוחות‬ ‫טבלת הזמנת‬
‫טבלת לקוחות‬ ‫הזמנות‬ ‫טבלת מחירים‬
‫משלוחים‬
3 - ‫שלבי תכנון תכנה‬
1. Architecture of the system.
2. Interfaces that connect the software to end users, to
other systems and devices, and to its own components
3. Software components that are used to construct the
system are designed
4. Data / Class Design - the data structure and their
abstraction
‫מה נתכנן בכל מודול ?‬
‫את התפקיד שלו‬ ‫‪‬‬

‫את הקלט והפלט‬ ‫‪‬‬

‫אלגוריתמים ראשיים‬ ‫‪‬‬

‫‪Must be Comprehensive‬‬ ‫‪‬‬

‫נמנע תופעות לוואי‬ ‫‪‬‬


‫שאלה‪ :‬מה תעשה האפליקציה של מסדר המדפים?‬
‫התפקיד‬ ‫‪‬‬

‫הקלט‬ ‫‪‬‬

‫הפלט‬ ‫‪‬‬

‫אלגוריתמים ראשיים‬ ‫‪‬‬

‫‪Must be Comprehensive‬‬ ‫‪‬‬

‫נמנע תופעות לוואי‬ ‫‪‬‬


‫שאלה‪ :‬מה תעשה האפליקציה של מסדר המדפים?‬
‫התפקיד‪ :‬להתריע על מחסור של מוצרים על המדפים‪.‬‬ ‫‪.1‬‬
‫הקלט‪ :‬טבלת מלאי כולל במדפים‪ ,‬טבלת מוצרים‬ ‫‪.2‬‬
‫הפלט‪ :‬דו"ח מחסור במדפים‬ ‫‪.3‬‬
‫אלגוריתמים ראשיים‪ :‬תסרוק את טבלת "מלאי כולל במדפים" כל [‪ ]2‬דקות‪.‬‬ ‫‪.4‬‬
‫תוודא שהכמות במדפים‪ ,‬גבוהה מהכמות המינימלית‪ .‬אם לא אז תדווח על‬
‫הכמות החסרה (כמות מקסימלית פחות הכמות במדפים)‪ .‬את שם המוצר‬
‫והספק תוציא מטבלת מוצרים‪.‬‬
‫טבלת מלאי כולל במדפים ‪:‬‬ ‫‪.1‬‬
‫מספר מזהה למוצר‪ ,‬כמות במדפים‪ ,‬כמות מינימלית‪ ,‬כמות מקסימלית‬ ‫•‬
‫טבלת מוצרים‪:‬‬ ‫‪.2‬‬
‫מספר מזהה למוצר == מספר ברקוד‪ ,‬שם מוצר כללי‪ ,‬שם מוצר פרטי‪ ,‬שם יצרן‪,‬‬ ‫•‬
‫כמות (אם הוא ארוז)‪ ,‬כשרויות‪,‬‬
‫‪ .5‬האם ‪ ?Comprehensive‬שאלות‪ :‬מי מדווח על חידוש המלאי? מי מדווח על‬
‫הפחתת המלאי?‬
‫‪ .6‬האם יש תופעות לוואי?‬
)‫ (המשך‬2 - ‫שלבי תכנון תכנה‬
1. Architecture of the system.
2. Interfaces that connect the software to end users, to
other systems and devices, and to its own components
3. Software components that are used to construct the
system are designed
4. Data / Class Design - the data structure and their
abstraction
‫למה צריך ממשקים ?‬
‫‪ ‬המידע במערכות מבוזרות מפוצל ומחולק בין השחקנים החיצוניים‪ ,‬ובין‬
‫המודולים השונים‪.‬‬
‫‪ ‬מחשבים צריכים "שפה" לתקשורת ביניהם עם פורמט ועם סדר הדיאלוג‪.‬‬
‫מה נתכנן בממשקים ?‬
‫‪ ‬את העברת המידע בין השחקנים החיצוניים והמודולים או בין המודולים‬
‫השונים‪.‬‬
‫‪ ‬את הדיאלוג‪ ,‬ואת הפורמט‪.‬‬
‫‪ ‬נסתמך על התהליך אך הוא איננו חלק מהממשק!‬
‫ממשקי גישה לבסיס הנתונים עבור קונה באינטרנט‬
‫ממשקי כתיבה וקריאה‬
‫‪ .1‬טבלת לקוחות‪ :‬מאפשר הוספה וכתיבה ‪ /‬קריאה רשומה אחת בטבלת לקוחות‬
‫מספר זהוי‪ ,‬שם‪ ,‬כתובת‪ ,‬טלפון‪ ,‬שעות מועדפות‪ ,‬כשרויות‪[ ,‬כרטיס אשראי]‬ ‫‪o‬‬
‫‪ .2‬ממשק טבלת מוצרים‪ :‬מאפשר קריאה מטבלת מוצרים‬
‫מספר מזהה למוצר == מספר ברקוד‪ ,‬שם מוצר כללי‪ ,‬שם מוצר פרטי‪ ,‬שם יצרן‪ ,‬כמות (אם הוא ארוז)‪,‬‬ ‫‪o‬‬
‫כשרויות‪,‬‬
‫‪ .3‬ממשק טבלת מחירים‪ :‬מאפשר קריאה מטבלת מחירים‬
‫מספר מזהה למוצר‪ ,‬הגדרת יחידה‪ ,‬מחיר ליחידה‪ ,‬תאריך‬ ‫‪o‬‬
‫‪ .4‬ממשק טבלת משלוחים‪ :‬מאפשר קריאה של רשומה אחת מטבלת משלוחים‬
‫מספר זיהוי ללקוח‪ ,‬כתובת‪ ,‬אזור משלוח‪ ,‬זמני משלוח‪ ,‬מחיר‬ ‫‪o‬‬
‫ממשק טבלת הזמנות‪ :‬מאפשר יצירה‪ ,‬כתיבה וקריאה בטבלת הזמנות בת שלושה חלקים‪:‬‬ ‫‪.5‬‬
‫כותרת‪ ,‬מספר הזמנה‪ ,‬תאריך‪ ,‬שם‪ ,‬אמצעי תשלום‪,‬‬ ‫‪o‬‬
‫רשימת מוצרים‪ , :‬מספר הזמנה‪ ,‬מספר מזהה למוצר‪ ,‬הגדרת יחידה‪ ,‬מספר יחידות [מחיר ילקח מטבלת‬ ‫‪o‬‬
‫מחירים]‪ ,‬סך לתשלום למוצר‪ ,‬תאריך‬
‫סיכום‪ ,‬מספר הזמנה‪ ,‬תאריך‪ ,‬שם‪ ,‬סכום לתשלום‪ ,‬תאריך משלוח‪,‬‬ ‫‪o‬‬
‫‪ .6‬ממשק טבלאות אישיות‪ :‬מאפשר יצירה‪ ,‬כתיבה וקריאה בטבלאות אישיות לניצול זיכרון הקניות‬
‫כמו רשימה עכשווית‬ ‫‪o‬‬
‫‪ .7‬ממשק טבלת חשבוניות‪ :‬מאפשר קריאת חשבונית המשתמש בטבלת חשבוניות‬
‫ממשקי גישה לבסיס הנתונים‬
‫קריאה‬ ‫כתיבה‬ ‫מבנה‬ ‫שם טבלה‬
‫לקוח‪ :‬רשומה‬ ‫לקוח‪ :‬רשומה‬ ‫מספר זהוי‪ ,‬שם‪ ,‬כתובת‪ ,‬טלפון‪ ,‬שעות מועדפות‪ ,‬כשרויות‪,‬‬ ‫לקוחות‬
‫אחת‬ ‫אחת‬ ‫[כרטיס אשראי]‬
‫לקוח‬ ‫מנהל הנתונים‬ ‫מספר מזהה למוצר == מספר ברקוד‪ ,‬שם מוצר כללי‪ ,‬שם מוצר‬ ‫מוצרים‬
‫פרטי‪ ,‬שם יצרן‪ ,‬כמות (אם הוא ארוז)‪ ,‬כשרויות‬
‫לקוח‬ ‫מנהל הנתונים‬ ‫מספר מזהה למוצר‪ ,‬הגדרת יחידה‪ ,‬מחיר ליחידה‪ ,‬תאריך‬ ‫מחירים‬

‫לקוח‬ ‫מלקט‪ ,‬קופאי‬ ‫מספר זיהוי ללקוח‪ ,‬כתובת‪ ,‬אזור משלוח‪ ,‬זמני משלוח‪ ,‬מחיר‬ ‫משלוחים‬

‫לקוח‬ ‫לקוח‬ ‫כמו ביצוע הזמנות‬ ‫הזמנה‬


‫לקוח‬ ‫לקוח‬ ‫שלושה חלקים‪:‬‬ ‫ביצוע‬
‫‪ -‬כותרת‪ ,‬מספר הזמנה‪ ,‬תאריך‪ ,‬שם‪ ,‬אמצעי תשלום‪,‬‬ ‫הזמנות‬
‫‪ -‬רשימת מוצרים‪:‬מספר הזמנה‪ ,‬מספר מזהה למוצר‪ ,‬הגדרת יחידה‪ ,‬מספר‬
‫יחידות [מחיר ילקח מטבלת מחירים]‪ ,‬סך לתשלום למוצר‪ ,‬תאריך‬
‫‪-‬סיכום‪ ,‬מספר הזמנה‪ ,‬תאריך‪ ,‬שם‪ ,‬סכום לתשלום‪ ,‬תאריך משלוח‪,‬‬

‫לקוח‬ ‫לקוח‬ ‫כמו ביצוע הזמנות‬ ‫טבלאות‬


‫אישיות‬
‫לקוח‬ ‫קופאי‬ ‫חשבוניות‬
‫תאר את ממשק תחנת יציאה והמחשב מרכזי‬ ‫ש‪:‬‬
‫תאר את ממשק תחנת יציאה והמחשב מרכזי‬ ‫ש‪:‬‬
‫ת‪ .‬יציאה‪ :‬מספר רכב ‪ X‬הגיע‪ ,‬בשעה ‪T‬‬
‫‪1‬‬ ‫•‬
‫מחשב מרכזי‪ :‬מספר רכב ‪ X‬שילם‪/‬לא שילם‪/‬הזמן‬ ‫•‬
‫עבר(‪ ,)0/1/2‬בזמן ‪2T‬‬

‫ת‪ .‬יציאה‪ :‬מספר רכב ‪ X‬יצא‪ ,‬בזמן ‪3T‬‬ ‫•‬


‫מחשב מרכזי‪ :‬אישור‪ .‬סיום שיחה‬ ‫•‬
‫ש‪ :‬תאר את ממשק תחנת יציאה והמחשב מרכזי‬
‫• ת‪ .‬יציאה‪ :‬מספר רכב (‪ )501-24-877‬הגיע בזמן ‪1T‬‬
‫‪1A‬‬ ‫‪5‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪4‬‬ ‫‪8‬‬ ‫‪7‬‬ ‫‪3‬‬
‫‪11‬‬ ‫‪35‬‬ ‫‪00‬‬ ‫‪2020‬‬ ‫‪08‬‬ ‫‪15‬‬
‫• מחשב מרכזי‪ :‬מספר רכב (‪ )501-24-877‬שילם‪/‬לא‬
‫שילם‪/‬הזמן עבר (‪ )0/1/2‬זמן התשלום‬
‫‪A2‬‬ ‫‪5‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪4‬‬ ‫‪8‬‬ ‫‪7‬‬ ‫‪3‬‬ ‫‪0/1‬‬
‫‪11‬‬ ‫‪30‬‬ ‫‪00‬‬ ‫‪2020‬‬ ‫‪08‬‬ ‫‪15‬‬

‫• ת‪ .‬יציאה‪ :‬מספר רכב יצא (‪ ,)501-24-877‬זמן יציאה‬


‫‪A3‬‬ ‫‪5‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪4‬‬ ‫‪8‬‬ ‫‪7‬‬ ‫‪3‬‬
‫‪11‬‬ ‫‪36‬‬ ‫‪00‬‬ ‫‪2020‬‬ ‫‪08‬‬ ‫‪15‬‬
‫• מחשב מרכזי‪ :‬אישור‪ .‬סיום שיחה‬
‫‪A4‬‬ ‫‪5‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪4‬‬ ‫‪8‬‬ ‫‪7‬‬ ‫‪3‬‬
‫נרחיב את הממשק לטיפול בתקלות‬
‫אילו תקלות יכולות לקרות?‬
‫‪ .1‬תחנת היציאה לא מזהה את מספר הרכב – השתמש‬
‫בכרטיס כניסה‬
‫‪ .2‬המחשב המרכזי לא מזהה את מספר הרכב – השתמש‬
‫בכרטיס כניסה‬
‫‪ .3‬המחשב המרכזי לא עונה (תקלת תקשורת) ‪?? -‬‬
‫‪ .4‬הזמן עבר (הלקוח יוסיף תשלום בתחנת היציאה)‬
‫פרוטוקול בתקלה‪ :‬המחשב המרכזי לא מזהה את מספר הרכב – השתמש בכרטיס חניה‬

‫ת‪ .‬יציאה‪ :‬מספר רכב ‪ X‬הגיע‪ ,‬בשעה ‪T‬‬


‫‪1‬‬ ‫•‬
‫מחשב מרכזי‪ :‬לא מזהה מספר רכב ‪.X‬‬ ‫•‬
‫(ת‪ .‬יציאה מבקשת כרטיס חניה מהרכב ומקבלת)‬ ‫•‬
‫ת‪ .‬יציאה‪ :‬מספר רכב ‪ X‬העביר כרטיס יציאה‪ ,‬בזמן ‪ ,3T‬כתוב‬ ‫•‬
‫שנכנס בזמן ‪0T‬‬

‫מחשב מרכזי‪ :‬מספר רכב ‪ X‬שילם‪/‬לא שילם‪/‬הזמן עבר(‪,)0/1/2‬‬ ‫•‬


‫בזמן ‪[,2T‬צריך לשלם ‪ X‬שקלים]‪.‬‬
‫ת‪ .‬יציאה‪ :‬מספר רכב ‪ X‬יצא‪ ,‬בזמן ‪[ 4T‬שילם ‪ X‬שקלים]‬ ‫•‬
‫מחשב מרכזי‪ :‬אישור‪ .‬סיום שיחה‬ ‫•‬
‫פרוטוקול בתקלה‪ :‬המחשב המרכזי לא מזהה את מספר הרכב – השתמש בכרטיס חניה‬

‫‪2‬‬‫ת‪ .‬יציאה‪ :‬מספר רכב ‪ X‬הגיע‪ ,‬בשעה ‪T‬‬ ‫•‬


‫מחשב מרכזי‪ :‬לא מזהה מספר רכב ‪.X‬‬ ‫•‬
‫(ת‪ .‬יציאה מבקשת כרטיס חניה מהרכב ומקבלת)‬ ‫•‬
‫ת‪ .‬יציאה‪ :‬מספר רכב ‪ X‬העביר כרטיס יציאה‪ ,‬בזמן ‪ ,3T‬כתוב שנכנס בזמן ‪0T‬‬ ‫•‬
‫מחשב מרכזי‪ :‬מספר רכב ‪ X‬שילם‪/‬לא שילם‪/‬הזמן עבר(‪ ,)0/1/2‬בזמן ‪[,1T‬צריך לשלם ‪X‬‬ ‫•‬
‫שקלים]‪.‬‬
‫ת‪ .‬יציאה‪ :‬מספר רכב ‪ X‬יצא‪ ,‬בזמן ‪[ 4T‬שילם ‪ X‬שקלים]‬ ‫•‬
‫מחשב מרכזי‪ :‬אישור‪ .‬סיום שיחה‬ ‫•‬

‫‪T0‬‬ ‫‪T1‬‬ ‫‪T2‬‬ ‫‪T3‬‬ ‫‪T4‬‬

‫רכב‬ ‫רכב‬ ‫רכב‬ ‫רכב‬ ‫רכב‬


‫נכנס‬ ‫שילם‬ ‫זוהה‬ ‫העביר‬ ‫יצא‬
‫בת‪ .‬יציאה‬ ‫כ‪ .‬יציאה‬
‫איך תחנת קצה יודעת שהמחשב לא עונה לה?‬

‫• ‪Keep Alive‬‬
‫• המחשב המרכזי שולח כל [‪ ]3‬שניות הודעת ‪Keep Alive‬‬
‫ואם תחנת הקצה מזהה שהודעה כזאת לא הגיעה במשך‬
‫[‪ ]10‬שניות‪ ,‬היא יודעת שהיא מנותקת ונכנסת ל"מצב‬
‫חירום ‪ /‬פעולה עצמאית"‪.‬‬
‫• איפה בתוכנה מפעילים את ה ‪ Keep Alive‬ואיפה קוראים‬
‫אותו?‬
‫איך תחנת קצה יודעת שהמחשב לא עונה לה?‬

‫‪Keep Alive‬‬ ‫•‬


‫המחשב המרכזי שולח כל [‪ ]3‬שניות הודעת ‪Keep Alive‬‬ ‫•‬
‫ואם תחנת הקצה מזהה שהודעה כזאת לא הגיעה במשך‬
‫[‪ ]10‬שניות‪ ,‬היא יודעת שהיא מנותקת ונכנסת ל"מצב‬
‫חירום"‪.‬‬
‫איפה בתוכנה מפעילים את ה ‪ Keep Alive‬ואיפה קוראים‬ ‫•‬
‫אותו?‬
‫תן דוגמא לשימוש ב ‪Keep Alive‬‬ ‫•‬
‫דוגמא תהליך רישום לאתר הסופרמרקט‬

‫האפליקציה תבקש מהלקוח להכניס נתונים אישיים (מספר הזהות שלו‪,‬‬ ‫‪.1‬‬
‫שמו‪ ,‬כתובת‪ ,‬טלפון‪ ,‬כרטיס אשראי) דרך ה ‪.UI‬‬
‫האפליקציה תאשר את כרטיס האשראי בעזרת חברת האשראי‬ ‫‪.2‬‬
‫האפליקציה תאשר את הנתונים‪[ ,‬איך??]‬ ‫‪.3‬‬
‫האפליקציה תבקש ותקבל מהלקוח אישור סופי‬ ‫‪.4‬‬
‫האפליקציה תשמור את הנתונים ותצרף את הלקוח לרשימת הלקוחות‬ ‫‪.5‬‬
‫בבסיס הנתונים‪.‬‬

‫• מי מעורב בתהליך הרישום לאתר?‬


‫– הלקוח‪ ,‬ה ‪ ,UI‬האפליקציה‪ ,‬חברת האשראי‪ ,‬ממשק ה ‪ ,DB‬ה ‪DB‬‬
‫‪Swim Lanes‬‬ ‫רישום לאתר – דיאגרמת מעברים‬

‫לקוח‬ ‫‪UI‬‬ ‫אפליקציה‬ ‫חברת‬ ‫‪ DB‬ממשק‬ ‫בסיס נתונים‬


‫אשראי‬

‫מתחבר לאתר‬
‫בקשת נתונים‬
‫טופס רישום‬

‫הכנסת נתונים‬

‫קליטת נתונים‬ ‫קבלת נתונים‬


‫בקשה לאישור‬
‫כרטיס אשראי‬

‫אישור כרטיס‬
‫אשראי‬

‫הצגת אישור‬ ‫תהליך אישור‬


‫נתונים‬ ‫נתונים‬

‫קבלת אישור‬
‫סופי‬ ‫בקשה לרישום נתונים‬
‫באתר‬ ‫הוראת רישום‬
‫נתונים‬ ‫רישום נתונים‬
‫הצגת סיום הליך‬
‫קליטה‬ ‫אישור רישום‬
‫הצגת סיום הליך‬
‫נתונים‬
‫קליטה‬
‫סיום הרישום‬
‫מערכת מבוזרת‬

‫מחשב מרכזי‬

‫‪DB‬‬

‫תחנה היקפית ‪2‬‬ ‫תחנה היקפית ‪1‬‬

‫אין בסיס‬ ‫אין בסיס‬


‫נתונים‬ ‫נתונים‬
‫מערכת מבוזרת‬
‫ממשקי אינטרנט‬

‫מחשב מרכזי‬

‫‪DB‬‬
‫מכשירים חיצוניים‬ ‫מכשירים חיצוניים‬

‫תחנה היקפית ‪2‬‬ ‫תחנה היקפית ‪1‬‬

‫אין בסיס‬ ‫אין בסיס‬


‫נתונים‬ ‫נתונים‬

‫מכשירים חיצוניים‬
Traceability Matrix
• Refers to Requirement's document
Req-id Design item Name Design-id
1.1.4 Calculate distance of home address from Supermarket 1.1.1
1.1.1 Credit Card approval 1.1.2
1.1.1 ID number Approval 1.1.3
1.1.2 Error handling of registration process 1.1.4
1.1.3 Interface between client UI and Client Application 1.1.5
1.1.3 Survival of UI 1.1.6
1.2.2 Presents Photos of products in UI 1.2.1
1.2.2 Organize predicts by Categories sin UI 1.2.2
1.2.2 Management UI Categories 1.2.3
1.2.3 Definition of DB tables for client 1.2.4
‫דיאגרמת ארכיטקטורה של תחנת היציאה‬
‫מצלמה‬
‫שער‬
‫מחשב מרכזי‬
‫ממשק למצלמה‬
‫ממשק‬ ‫אפליקצית‬ ‫ממשק לשער‬
‫למחשב‬ ‫מצלמה‬
‫המרכזי‬ ‫אפליקצית‬
‫אפליקציית‬ ‫שער‬
‫לטיפול במחשב‬ ‫ניהול תחנת היציאה‬
‫המרכזי‬
‫אפליקצית מספר לא‬
‫מזוהה‪/‬לא שילם‬

‫אפליקצית תשלום במקום‬ ‫ממשק קורא כרטיסי‬


‫כניסה‬
‫ממשק למדפסת‬ ‫ממשק לכרטיסי אשראי‬

‫קורא כרטיסי אשראי‬ ‫קורא כרטיסים‬


‫מדפסת‬
)‫ (המשך‬1 - ‫שלבי תכנון תכנה‬
1. Architecture of the system.
2. Interfaces that connect the software to end users, to
other systems and devices, and to its own components
3. Software components that are used to construct the
system are designed
4. Data / Class Design - the data structure and their
abstraction
‫תכנון תוכנה‬

‫‪ .1‬ארכיטקטורה‬
‫‪ .1‬דיאגרמת מערכת‬
‫‪ .2‬תיאור הממשקים‪ ,‬המודולים‪ ,‬ובסיס בנתונים‬
‫‪ .2‬ממשקים‬
‫‪ .1‬מבנה ההודעות‬
‫‪ .2‬סדר ההודעות ‪ -‬הפרוטוקול‬
‫‪ .3‬מודולי תוכנה ‪ /‬אפליקציות‬
‫התפקיד‬ ‫‪.1‬‬

‫הקלט והפלט‬ ‫‪.2‬‬

‫אלגוריתמים ראשיים‬ ‫‪.3‬‬

‫כולל‪ ,‬מקיף‬ ‫‪.4‬‬

‫ללא תופעות לוואי‬ ‫‪.5‬‬

‫‪ .4‬נתונים‬
‫טבלאות נתונים‬ ‫‪.1‬‬

‫את סוגי הנתונים‬ ‫‪.2‬‬


Guidelines for good architecture
1. A design should exhibit an architecture that
,has been created using recognizable architectural styles or patterns )1(
is composed of components )2(
,can be implemented in an evolutionary fashion )3(
2 Enables implementation and testing
3. Distinct representations of data, architecture, interfaces, and
components.
4. Lead to data structures that are appropriate for the classes to be
implemented and are drawn from recognizable data patterns.
5. Components with independent functionality.
6. Interfaces that reduce the complexity of internal and external
connections.
7. A design should be derived using a repeatable method that is driven by
information obtained during software requirements analysis.
Quality Attributes
(FURPS of HP)
• Functionality: feature set and capabilities of the program, the
generality of the functions that are delivered, and the security of
the overall system.
• Usability: human factors , overall aesthetics, consistency, and
documentation.
• Reliability is evaluated by measuring the frequency and severity of
failures, the accuracy of output results. MTBF (Mean Time
Between Failures) MTTR (Mean Time To Repair), and the
predictability of the program.
• Performance is measured using processing speed, response time,
resource consumption, throughput, and efficiency.
• Supportability combines extensibility, adaptability, and
serviceability.
Contents' of scope
• Definition – Architecture
• Architecture Engineering:
– System design, layers, interface, data structures
design
– Use cases
• Examples
• Thank you!

You might also like