Professional Documents
Culture Documents
30.Project Management - תשפג Design
30.Project Management - תשפג Design
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
Clarify Rewrite
User Business
Requirements rules
Quality
Attributes
Use case document
External
System Functional Interfaces
requirements Requirements
Constraints
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
User Business
Requirements rules
Quality
Attributes
Use case document
External
System Functional Interfaces
requirements Requirements
Constraints
16
Software Requirements Specification (SRS)
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עם
....משתמש קצה
מה עושה כל שכבה
• ממשקים :אינטרנט UI +
– מתקשרת בין האפליקציה למשתמש ,עם זה אדם אז יש UI
• אפליקציות
– מתקשרת עם הממשק למשתמש ומפעילה אותו ,מתקשרת עם הממשק לבסיס
הנתונים ומוסרת לו נתונים והוראות ומבקשת נתונים .מתקשרת עם אפליקציות
אחרות.
• ממשקי גישה לבסיס נתונים
– מאפשרים גישה לטבלאות מסוימות בבסיס הנתונים לפי הרשאות (קריאה,
כתיבה ,יצירה ,שינוי)
• בסיס הנתונים
– שומר נתונים ,כותב וקורא[ .יש גם תחזוקה וגבוי]
שאלה קצרה
• לפי הדרישות אילו ממשקים צריך במערכת הסופרמרקט?
דוגמא :סופר מרקט – דרישות
.1דרישות עסקיות -
.2דרישות פונקציונליות עבור סוגי לקוחות:
קונה באינטרנט .1
מלקטת -ממלאת סלים .2
מנהל אתר קניות באינטרנט, .3
מקדם מכירות (מבצעים) .4
קופה /קופאי .5
קניין .6
ממלא מדפים .7
מחסנאי .8
מנהל כספים .9
מבנה מערכת
קונה באינטרנט
ממלאת סלים
מנהל כספים
חברת אשראי
?
מנהל אתר קניות
באינטרנט
מחסנאי
מקדם מכירות
ממלא מדפים
מחסנאי בסיס
נתונים
ממלא מדפים
מקדם מכירות
קופאי
ארכיטקטורה חלקית של חלק הצרכן בסופרמרקט
צרכן
אפליקציה
לרישום אפליקציה להזמנת מצרכים
למערכת
1 0.6 יום הולדת לאיילה -יום שני - 10
ברכה ומתנה .גם ליהונתן
1 יום הולדת לגפן 17 -באוגוסט 11
-ברכה ומתנה
טבלה
טבלת מוצרים טבלת לקוחות טבלת הזמנת
טבלת לקוחות הזמנות טבלת מחירים
משלוחים
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
מה תפקיד בסיס הנתונים ?
• שומר ומאחזר נתונים
• מקשר בין משתמשים (אחד ,שניים או יותר) בהפרשי זמן
מה נתכנן בבסיס נתונים?
טבלאות נתונים
את סוגי הנתונים שיהיו בכל טבלת נתונים (מבנה רשומה)
.2טבלת מוצרים
• מספר מזהה למוצר == מספר ברקוד ,שם מוצר כללי ,שם
מוצר פרטי ,שם יצרן ,כמות (אם הוא ארוז) ,כשרויות
.3טבלת מחירים
• מספר מזהה למוצר ,תאריך ,הגדרת יחידה ,מחיר ליחידה
דוגמא – תכנון בסיס נתונים לסופרמרקט ()2
• פירוט טבלאות הנתונים שדרושים לניהול ממשק לקוח (: )2
.1טבלת הזמנת משלוחים
• מספר זיהוי ללקוח ,כתובת ,אזור משלוח ,זמני משלוח אפשריים[ ,מחיר משלוח]
.2טבלת הזמנות
• כותרת ,מספר הזמנה ,מספר זיהוי ללקוח ,תאריך ,שם ,אמצעי תשלום ,זמן משלוח מבוקש
• רשימת מוצרים :מספר הזמנה ,מספר מזהה למוצר ,הגדרת יחידה ,מספר יחידות ,מחיר
ליחידה [ילקח מטבלת מחירים] ,סך לתשלום למוצר ,תאריך
• סיכום ,מספר הזמנה ,מספר זיהוי ללקוח ,תאריך ,סכום לתשלום ,תאריך משלוח,
.2ביצוע קניה:
פתיחת רשימה .1
חזרה על 3-6 .2
הוספת פריט .3
השוואת מחירים בין פריטים דומים .4
מחיקת פריט .5
הזמנת תאריך משלוח .6
סגירת רשימה .7
עבודה מול לקוח – רשימת מודולים וממשקים
ממשק לקוח ()UI .1
• מציג נתוני מוצרים ומחירים ללקוח מהאפליקציה ,ומקבל ממנו נתוני הזמנה ,ומעביר
אותם לאפליקציה
אפליקציות ללקוח .2
• מנהלות את הפעולות מול הלקוח ושאר המודולים כולל:
.1רישום :רישום לאתר,
.2הזמנת מוצרים :ניהול רשימה ,סגירת רשימה ,ועוד .מבקשת נתונים מה ,DB-שולחת
ומקבלת מידע מממשק הלקוח.
ממשק עם DBעבור לקוח .3
• כותב ושולף נתונים ל DB-לפי דרישות האפלקציה ומוגבל בהרשאות הלקוח
כולל טבלת :לקוחות ,מוצרים ,מחירים ,משלוחים ,רשימה עכשווית ,טבלאות אישיות
ממשק לחברת אשראי .4
• מתקשר עם האפליקציה לחברות האשראי בצורה מאובטחת ,שמעבירה סכומים לחיוב,
מקבלת אישורי הרשאות לכרטיסים ,ועוד
ארכיטקטורה חלקית של חלק הצרכן בסופרמרקט
צרכן
אפליקציה אפליקציה
לרישום מצרכים
א אפליקציה להזמנת לחברות
למערכת אשראי
טבלה
טבלת מוצרים טבלת לקוחות טבלת הזמנת
טבלת לקוחות הזמנות טבלת מחירים
משלוחים
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
מה נתכנן בכל מודול ?
את התפקיד שלו
הקלט
הפלט
לקוח מלקט ,קופאי מספר זיהוי ללקוח ,כתובת ,אזור משלוח ,זמני משלוח ,מחיר משלוחים
• Keep Alive
• המחשב המרכזי שולח כל [ ]3שניות הודעת Keep Alive
ואם תחנת הקצה מזהה שהודעה כזאת לא הגיעה במשך
[ ]10שניות ,היא יודעת שהיא מנותקת ונכנסת ל"מצב
חירום /פעולה עצמאית".
• איפה בתוכנה מפעילים את ה Keep Aliveואיפה קוראים
אותו?
איך תחנת קצה יודעת שהמחשב לא עונה לה?
האפליקציה תבקש מהלקוח להכניס נתונים אישיים (מספר הזהות שלו, .1
שמו ,כתובת ,טלפון ,כרטיס אשראי) דרך ה .UI
האפליקציה תאשר את כרטיס האשראי בעזרת חברת האשראי .2
האפליקציה תאשר את הנתונים[ ,איך??] .3
האפליקציה תבקש ותקבל מהלקוח אישור סופי .4
האפליקציה תשמור את הנתונים ותצרף את הלקוח לרשימת הלקוחות .5
בבסיס הנתונים.
מתחבר לאתר
בקשת נתונים
טופס רישום
הכנסת נתונים
אישור כרטיס
אשראי
קבלת אישור
סופי בקשה לרישום נתונים
באתר הוראת רישום
נתונים רישום נתונים
הצגת סיום הליך
קליטה אישור רישום
הצגת סיום הליך
נתונים
קליטה
סיום הרישום
מערכת מבוזרת
מחשב מרכזי
DB
מחשב מרכזי
DB
מכשירים חיצוניים מכשירים חיצוניים
מכשירים חיצוניים
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דיאגרמת מערכת
.2תיאור הממשקים ,המודולים ,ובסיס בנתונים
.2ממשקים
.1מבנה ההודעות
.2סדר ההודעות -הפרוטוקול
.3מודולי תוכנה /אפליקציות
התפקיד .1
.4נתונים
טבלאות נתונים .1