58
ארכיטקטורת מערכת ותוכנהSystem and Software Architecture ©Dr. Amir Tomer ארכיטקטורת מערכת ותוכנה- 1 הנדסת מערכות עתירות תוכנה

הנכותו תכרעמ תרוטקטיכרא - Techniontomera/SWISE2015/SWISE-2015-05...תוילעמה תכרעמ תרוטקטיכרא הספו ק"כ תכרעמה תא ונרדגה

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

ארכיטקטורת מערכת ותוכנה

System and Software Architecture

©D

r. A

mir

To

mer

1-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

פעילויות הניתוח והארכיטקטורה

קלט•

מפרט תהליכי המערכת–

•use case modelברמת המערכת

(activity model)מודל פעילות •

טבלת דרישות מעודכנת–

תוצרים עיקריים•

ארכיטקטורת המערכת–

(deployment model)מודל פריסה •

(מערכתICD)מפרט ממשקים פיזיים •

ארכיטקטורת התוכנה–

(component model)מודל רכיבים •

(תוכנהICD)מפרט ממשקים לוגיים •

הגדרת דרישות

הלקוח

ובעלי העניין

ניתוח

וארכיטקטורת

מערכת

ניתוח

וארכיטקטורת

תוכנה

תכן

תוכנה

קידוד

ובדיקת

יחידות

בדיקות מערכת

בסביבת התפעול

שילוב

תוכנה/ חומרה

ובדיקות מערכת

שילוב רכיבים

ובדיקות פריטים

שילוב יחידות

ובדיקות רכיבים

זמן

הגדרה ופירוטDefinition and Specification

שילוב ובחינה, מימושImplementation, Integration and Testing

Sy

stem

רמת עניין

Bu

sin

ess

CS

CC

SC

IC

SU

Soft

wa

re

©D

r. A

mir

To

mer

2-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

תוכן העניינים

ארכיטקטורת מערכת באמצעות מודל פריסה(Deployment Model)

אנליזה פונקציונאלית וארכיטקטורת תוכנה

ארכיטקטורת תוכנה באמצעות מודל רכיבים(Component Model)

ארכיטקטורת מערכת כוללת

מאפייני איכות והשפעתם על הארכיטקטורה

©D

r. A

mir

To

mer

3-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

ארכיטקטורה ותצורות

(configuration)תצורה •

('וכושלב במחזור חיים , שימוש)ספציפיבהקשר ( קשרים, כמויות, רכיבים)מבנה המערכת –

ארכיטקטורה•

ממנו נגזרות תצורותיה השונות, של המערכתהעקרוניהמבנה –

©D

r. A

mir

To

mer

4-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

ארכיטקטורה של מערכת עתירת תוכנה

לוגית/ ארכיטקטורה פונקציונאלית •

לוגיים/ רכיבים פונקציונאליים –

(בזמן ריצה)רכיבי שימוש •

חלקי תוכנה אופרטיביים המבצעים משימות בזמן שהמערכת פעילה–

..., DLL ,GUI, רכיבי תקשורת, דרייברים, יישומים: לדוגמה«

(בזמן כתיבה)רכיבי מימוש •

מהם בונים את רכיבי השימוש(source code)חלקי קוד מקור –

..., open source, ספריות, מודולים בשפת תכנות: לדוגמה«

לוגיים/ ממשקים פונקציונאליים –

המידע המועבר בין הרכיבים הפונקציונאליים•

..., הודעות, נתונים, פקודות, אותות בקרה: לדוגמה–

ארכיטקטורה פיזית•

רכיבים פיזיים–

חומרה" קופסאות"•

..., התקני תקשורת, איחסוןהתקני , מעבדים: לדוגמה–

ממשקים פיזיים–

חיבורים בין רכיבים פיזיים המאפשרים להעביר באמצעותם מידע•

© ..., קליטה אלקטרומגנטית/שידור, סיבים אופטיים, כבלים–D

r. A

mir

To

mer

5-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

?ממה מתחילים

נקבעה מראש/ הארכיטקטורה הפיזית קיימת : 'מקרה א•

מזהים רכיבים וממשקים לוגיים–

שוקלים חלופות של הקצאת רכיבים לוגיים לרכיבים הפיזיים בארכיטקטורה –

הנתונה

בונים ארכיטקטורה לוגית–

הארכיטקטורה הפיזית טרם נקבעה: 'מקרה ב•

בונים ארכיטקטורה לוגית–

שוקלים חלופות של בחירת רכיבים וממשקים פיזיים–

בונים ארכיטקטורה פיזית–

©D

r. A

mir

To

mer

6-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

המקרה האופייני

למערכות משובצות

תחומיות-רב

המקרה האופייני

למערכות מידע

?

ארכיטקטורת מערכת המעליות

קופסה "עד עתה הגדרנו את המערכת כ•

"שחורה

פירוק למרכיבים והגדרת –השלב הבא –

מבנה והתנהגות

על פי –( ארכיטקטורה פיזית)מבנה •

האפיון הטכני

(התקנים, מחשבים)פריטי חומרה –

•HWCI = HardWare Configuration

Item

יישומים/ פריטי תוכנה –

•CSCI = Computer Software

Config. Item

מיקום התוכנה על גבי החומרה –

"(התקנה)"

פרוטוקולים/ תקשורת פיזית –

מערכת

המעליות

טכנאי

נוסעיםמחלץ

1מעלית פיקוד

מרכזי

3מעלית 2מעלית

©D

r. A

mir

To

mer

7-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

UML-מידול ארכיטקטורה מערכתית ב

(Node)צומת •

אשר , אובייקט פיזי פעיל המייצג משאב חישובי–

.בדרך כלל כולל זיכרון ולרוב גם יכולת עיבוד

(Artifact)פריט •

מרכיב מידע פיזי שנוצר בתהליך הפיתוח או –

נמצא בשימוש המערכת בזמן הפעלתה

(בזמן ריצה)הפריטים הם רכיבי השימוש •

(Deployment)פריסה •

פריטי התוכנה בצמתי של ( התקנה)הקצאה –

החומרה

צומת_שם

פריט_שם

<<deploy>>

צומת_שם

פריט_שם

סימול אלטרנטיבי

©D

r. A

mir

To

mer

8-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

צמתים אופייניים–חומרה

מחשבים•

שרתים–

מחשבי קצה–

פרוססורים-מיקרו–

איחסוןהתקני •

כוננים–

חיצוניזכרוןהתקני –

התקני תקשורת פיזית•

מודמים–

נתבים–

(Peripherals)ציוד היקפי •

..., סורקים, מדפסות–

התקני תצוגה–

חיישנים–

©D

r. A

mir

To

mer

9-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

פריטים אופייניים–תוכנה

תוכנת תשתיתית•

מערכות הפעלה ותקשורת–

(למשל אופיס)יישומים סטנדרטיים –

קבצי ריצה•

–.exe ,.dll ,.jar

דרייברים–

הגדרות•

registry/ קבצי התקנה –

תבניות–

פריטי נתונים•

קבצי נתונים–

בסיסי נתונים–

פריטי מדיה•

תמונות–

וידיאו/ קבצי אודיו –

פריטי מידע•

קבצי עזרה–

מדריכים מקוונים–

©D

r. A

mir

To

mer

10-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

(Deployment Diagram)תרשים פריסה

תרשים המתאר את •

, צמתי החומרה

הממשקים שביניהם

ופריטי התוכנה

הפרוסים בהם

תרשים ארכיטקטורה •

מערכתית

תרשים פריסה –

המציג את כל פריטי

(HWCI)החומרה

(CSCI)והתוכנה

מהם מורכבת

המערכת

source: Fowler, M., UML Distilled, Addison-Wesley, 2003 ©D

r. A

mir

To

mer

11-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

(multiplicity)ריבוי

המגדיר את מספר , כולל אינסוף, תחום של שלמים לא שליליים•

.מסויימתהמופעים של ישות

המתאר יחס בין הישות , הריבוי מופיע בדרך כלל בקצה של קשר•

לישות אחרת

:דוגמאות לריבוי•

[1,1]= פעם אחת בדיוק –

–n פעמים בדיוק =[n,n]

[n,1]= פעמים n-ולא יותר מ, לא פחות מפעם אחת–

[,1]= אך ללא הגבלה , לא פחות מפעם אחת–

[ ..0]( = כולל אפס)מספר כלשהו של פעמים –

1

n

1..n

1..*

0..*

©D

r. A

mir

To

mer

12-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

ארכיטקטורת מערכת המעליות

י האפיון הטכני"ע" מוכתבת"הארכיטקטורה ה•

אוטונומי ושירותים מקומיים לנוסעיהמיחשובכל מעלית היא צומת בעלת –

(חילוץ, אחזקה)שרת מרכזי מנהל ומבקר את כלל המערכת ונותן שירותים מרכזיים –

קשר ישיר בין כל מעלית לשרת –

©D

r. A

mir

To

mer

13-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

(מערכתICD)טבלת ממשקים פיזיים

פרוטוקול/ תווך תכניםמרכיבמרכיב

הקצאת נסיעות< בקר מעליתשרת מעליות

סטטוס>

קריאת מצוקה>

חיבור ישיר

קריאת חילוץ> שרת מעליותפאנל מחלץ

פקודות חילוץ<

חיבור ישיר

הזמנות נסיעה> שרת מעליותפאנל קומה

כפתורי קומהכיבוי/הדלקה<

חיבור ישיר

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

וסטטוסיםחיוויים >

ישירחיבור

בקשות נסיעה< בקר מעליתפאנל נוסע

כפתורי מעליתכיבוי/הדלקה>

חיבור ישיר

עצירה/נסיעהפקודות> בקר מעליתמנוע

סטטוס<

חיבור ישיר

סגירה/פקודות פתיחה> בקר מעליתדלת

סטטוס<

חיבור ישיר

©D

r. A

mir

To

mer

14-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

Deployment Diagram–מטלת כיתה

, ותוך התייחסות למפרט הדרישות, "חתרנית"על בסיס האפיון הטכני של •

" חתרנית"הצע ארכיטקטורה למערכת

התבסס על החלוקה הפונקציונאלית–

ב"שו•

תפעול חולד•

את הקשרים שביניהם ואת הריבוי המתאים, שרטט את צמתי החומרה–

נסה לזהות או להגדיר פריטי תוכנה ואת פריסתם על גבי צמתי החומרה–

©D

r. A

mir

To

mer

15-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

מפרט ארכיטקטורת מערכת–מטלת בית

מטלה צוותית•

:עבור מערכת העניין שלכם בנו מפרט ארכיטקטורה מערכתית–

דרישות הארכיטקטורה מתוך האפיון הטכני וטבלת הדרישות/זהו את אילוצי1.

של ארכיטקטורת המערכתdeployment diagramבנו 2.

כולל עקיבות , פריטי תוכנה וממשקים פיזיים, ערכו טבלאות פריטי חומרה3.

לדרישות הרלוונטיות

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

(UnderMiner-SysAD).

מפרט הארכיטקטורה המערכתית יוגש ויוצג במסגרת מפרטי •

'הגשה ג–הארכיטקטורה

©D

r. A

mir

To

mer

16-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

תוכן העניינים

ארכיטקטורת מערכת באמצעות מודל פריסה(Deployment Model)

אנליזה פונקציונאלית וארכיטקטורת תוכנה

ארכיטקטורת תוכנה באמצעות מודל רכיבים(Component Model)

ארכיטקטורת מערכת כוללת

מאפייני איכות והשפעתם על הארכיטקטורה

©D

r. A

mir

To

mer

17-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

ארכיטקטורת מערכת המעליות

פריטי תוכנה

(software items)

©D

r. A

mir

To

mer

18-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

קומותפאנלי קומותפאנלי

תוכנת שרת המעליות: CSCI Level–היישום / רמת פריט התוכנה

הסביבה החיצונית•

מעליות–

(בקומות)נוסעים –

טכנאי–

מחלץ–

שירותים•

איסוף בקשות נסיעה מקומות–

הקצאת נסיעות למעליות–

אחזקת מערכת–

חילוץ–

ממשקים•

קומותפאנלי–

פאנל טכנאי–

פאנל מחלץ–

כבלי תקשורת ישירה למעליות–

תוכנת

השרת

?

קומותפאנלי

פאנל טכנאי

פאנל מחלץ

תפעול מעליותקומותפאנליקומותפאנלי

©D

r. A

mir

To

mer

19-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

תוכנת תפעול המעלית: CSCI Level–היישום / רמת פריט התוכנה

הסביבה החיצונית•

שרת המעליות–

(בתוך המעלית)נוסעים –

דלת–

מנוע–

שירותים•

איסוף בקשות נסיעה בתוך המעלית–

מימוש בקשות הנסיעה של המעלית–

ממשקים•

פאנל נוסע–

דלת–

מנוע–

כבל תקשורת ישירה לשרת המעליות–

תוכנת

המעלית

?

פאנל נוסע

שרת מעליות

מנוע

דלת

©D

r. A

mir

To

mer

20-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

המעבר מארכיטקטורת מערכת לארכיטקטורת תוכנה

ארכיטקטורת המערכת הממוחשבת הגדירה פירוק למרכיבים•

– HWCI: פריטי חומרה– HardWare Configuration Items

– CSCI: פריטי תוכנה– Computer Software Configuration Items

!אין דואליות בין סוגי המרכיבים•

פריט חומרה הוא מרכיב עצמאי–

(חומרה-ממשק חומרה)יכול להתחבר ישירות לפריט חומרה באמצעות ממשק פיזי •

פריט תוכנה תמיד מותקן על גבי פריט חומרה–

רק כאשר שני הפריטים נמצאים ( תוכנה-ממשק תוכנה)יכול להתחבר ישירות לפריט תוכנה •

באותה חומרה

ממשק )יכול להתחבר לפריטי תוכנה אחרים רק באמצעות הממשקים הפיזיים של החומרה •

(תוכנה-חומרה

את " מקלפים"במעבר מארכיטקטורת המערכת לארכיטקטורת פריטי התוכנה אנו •

(Software Components)ומתייחסים לתוכנה כבנויה מרכיבים עצמאיים , החומרה

ולכן הדרך להגיע אליה היא , ארכיטקטורת התוכנה היא מטבעה ארכיטקטורה לוגית–

באמצעות אנליזה פונקציונאלית

©D

r. A

mir

To

mer

21-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

ארכיטקטורת תוכנה

בנויה מרכיבי תוכנה( יישום/פריט)תוכנה •

(software component)רכיב תוכנה •

של התוכנה המסתיר את מימושו מאחורי קבוצת ממשקים חיצונייםמודולריחלק –

רכיבים המספקים ממשקים זהים ניתנים להחלפה זה בזה באופן חופשי, בתוך מערכת–

רכיבים יכולים לבוא ממקורות שונים–

פיתוח עצמי•

שימוש חוזר•

(open source)קוד פתוח •

רכיבי מדף•

ארכיטקטורת תוכנה•

חלוקת התוכנה לרכיבים–

הקצאת פונקציונאליות לכל רכיב–

הגדרת ממשקים בין הרכיבים–

בין ארכיטקטורת התוכנה לארכיטקטורת המערכת(consistency)שמירת עקביות •

התוכנה מותקנת על גבי החומרה–

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

© !חייבת להיות התאמה ברורה בין ממשקי התוכנה לממשקי החומרה–D

r. A

mir

To

mer

22-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

?היכן נמצאת הפונקציונאליות

Use Casesבתרחישי •

רצף הפעלת פונקציות= תרחיש –

Activity Diagramsבתרשימי פעילות •

פונקציות= פעילויות –

©D

r. A

mir

To

mer

23-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

UC (1)רט טקסטואלי מפ –נסיעה במעלית

UC-2נסיעה במעלית

להגיע במעלית לקומה מבוקשת: נוסעשחקנים ויעדים

נוסע לא יישאר תקוע במעלית: שירותי ההצלהואינטרסים ע ב

Pre-conditions• מעלית פתוחה נמצאת בקומה בה נמצא הנוסעUC-1]

המעלית פעילה•

Post-Conditions• (יעד)הנוסע הגיע לקומה המבוקשת

(אינטרס)הנוסע יכול לצאת מהמעלית •

Trigger• נכנס למעלית הנוסע

MSS.1לוחץ על כפתור הקומה המבוקשת הנוסע

שנלחץ נדלק הכפתור2.

(פתוחה והיתהבמידה )המעלית נסגרת דלת3.

אם קיימות בקשות קודמות, ממשיכה בנסיעה באותו כיוון המעלית4.

נעצרת בקומה הבאה אליה קיימת בקשה המעלית5.

נפתחת הדלת6.

הקומה כבה כפתור7.

הגיע הנוסע לקומת היעד כל עוד לא, 3חזרה לצעד 8.

יוצא מהמעלית הנוסע9.

© המשך בשק הבאD

r. A

mir

To

mer

33 -ניתוח מערכת פונקציונאלי הנדסת מערכות עתירות תוכנהpress button

enter elevator

light onclose door

go to next

floor

stop

request?

stop

light offopen door

target floor?

close door

exit elevator

(success)

exit elevator

(failure)

rescue

«datastore»

stop requests

[yes]

elev ator stuck

[no]

[no]

[yes]

Functional Tiers–רבדים פונקציונאליים

לדוגמה, מקובל לקבץ את רכיבי התוכנה ברבדים פונקציונאליים•

(data tier)רובד המידע –

כל הנתוניםולאיחזורלאיחסוןרכיבים האחראיים •

(application tier)רובד היישומים –

רכיבים האחראיים לפונקציות העיבוד השונות של המערכת•

(presentation tier)רובד התצוגה –

משתמש האחראי לאינטראקציה עם עמדות ההפעלה-רכיבים של ממשקי•

(control tier)רובד הבקרה –

"(דרייברים)"רכיבים האחראיים לבקרה על התקנים חיצוניים •

את הרבדים הפונקציונאליים ניתן למקם בצמתים שונים בארכיטקטורה הפיזית•

דוגמאות בשקף הבא' ר–

©D

r. A

mir

To

mer

24-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

הקצאת רבדים פונקציונאליים לצמתים פיזיים

• 2-tier architecture

• 3-tier architecture

©D

r. A

mir

To

mer

25-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

Server (applications + data(Client (presentation + applications)

Application Server (applications(Client (presentation) Data Server (data(

חלוקת הפונקציות של תוכנת המעלית בין רבדים

רובד תצוגהרובד יישוםרובד מידערובד בקרה

הסעת מעלית•

עצירת מעלית•

פתיחת דלת•

סגירת דלת•

רישום בקשה•

בדיקת בקשות קיימות•

ביטול בקשות•

המשך נסיעה באותו כיוון•

החלפת כיוון נסיעה•

לחיצה על כפתור במעלית•

הדלקת כפתור מעלית•

כיבוי כפתור מעלית•

בקשת עצירה•

אזעקת חילוץ•

©D

r. A

mir

To

mer

26-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

חלוקת הפונקציות של תוכנת השרת בין רבדים

רובד תצוגהרובד יישוםרובד מידע

הקצאת מעליות לנסיעות•מערכתסטטוסניהול •

חילוץניהול•

ניהול בדיקת מערכת•

לחיצה על כפתור בקומה•

הדלקת כפתור קומה•

כיבוי כפתור קומה•

פקודות ותצוגות מחלץ•

פקודות ותצוגות טכנאי•

©D

r. A

mir

To

mer

27-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

יתרונות החלוקה לרבדים

(tight cohesion)לכידות הדוקה •

– לכידות (cohesion)* : The manner and degree to which the tasks

performed by a single software module are related to one

another

לכל רובד יש ייחודיות פונקציונאלית ברורה וניתן להקצות בקלות כל פונקציה –

לרובד המתאים

(loose coupling)צימוד רופף •

– צימוד (Coupling)*: The manner and degree of interdependence

between software modules

ולכן ניתן לשנות , המימוש של רובד אחד איננו תלוי במימוש של רובד אחר–

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

*ISO/IEC/IEEE 24765:2010 Systems and software engineering—Vocabulary ©D

r. A

mir

To

mer

28-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

(Functional Components)רכיבים פונקציונאליים

יכול להיות כל ישות אשר( רכיב תוכנה, רכיב לוגי)רכיב פונקציונאלי •

לספק שירותים]יכולה לבצע פונקציה אחת או יותר –

, או ישויות חיצוניות, יש לה ממשק אחד או יותר דרכם יכולים רכיבים אחרים–

עם או בלי העברת מידע אל ומאת , את קבלת השירותים]ליזום את ביצוע הפונקציות

הרכיב

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

(ניתן לממש את הרכיב באופנים שונים, כלומר)איננה תלוית מימוש –

:מבחינה פונקציונאלית במובנים הבאים" קופסה שחורה"רכיב הינו •

ניתן לבחון את נכונותו הפונקציונאלית רק באמצעות הקלט והפלט–

רק במדידה מבחוץ( כגון מהירות תגובה)ניתן למדוד את ביצועיו –

ללא שינוי בממשקיו, ניתן להחליפו ברכיבים הזהים אליו מבחינה פונקציונאלית–

©D

r. A

mir

To

mer

29-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

של תוכנת מחשב ייצור תהליך ה

©D

r. A

mir

To

mer

30-מבוא הנדסת מערכות עתירות תוכנה

מחשב

תקשורת/ HMI/ בקרה / חישה

(prog.exe)מוכן להרצה יישום

יישום עובד

בתוך המחשב

מודול ראשי

(main.obj)

תוכנית ראשית

(main.obj)תוכנית ראשית

(main.obj)*ספריות מוכנות

(lib.obj)

תוכנית ראשית

(main.obj)תוכנית ראשית

(main.obj)מודולים שנבנו בנפרד

(module.obj)

קישור

תוכנית ראשית

(main.obj)תוכנית ראשית

(main.obj)מודולים-קוד מקור

(module.java)

תוכנית ראשית

(main.obj)תוכנית ראשית

(main.obj)ספריות-קוד מקור

(lib.c)

מקור-תוכנית ראשית

(main.java)

/משתמש

סביבה

/טעינה

צריבה

הידור הידור הידור

תוכנית ראשית

(main.obj)תוכנית ראשית

(main.obj)

*ספריות לקישור דינמי

Dynamic Link Libraries

(module.dll)

שפות תכנות

שפת ביניים

שפת מכונה

כולל שירותי מערכת ההפעלה*

רכיבי

מימוש

(מן כתיבהבז)

רכיבי

שימוש

(בזמן ריצה)

(בזמן כתיבה)לרכיבי מימוש התוכנה ( בזמן ריצה)הקשר בין פריטי תוכנה

(software artifacts)פריטי תוכנה •

פריטים המותקנים בסביבת הריצה ונחוצים לפעולה תקינה של המערכת–

(software components)רכיבי תוכנה •

המרכיבים מהם יוצרים את התוכנה בסביבת הפיתוח–

חלקי קוד•

ספריות ותוכנות מדף•

(DLL)אובייקטים מקושרים דינמית •

רכיבי תוכנה(<<manifest>>)פריטי תוכנה משקפים •

מרכיבים את פריטי התוכנה ( שילוב רכיבים ובדיקת פריטים)בשלב אינטגרציית התוכנה –

מהרכיבים

©D

r. A

mir

To

mer

31-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

חלוקה אפשרית לרכיבים–תוכנת המעלית

רובד תצוגהרובד יישוםרובד מידערובד בקרה

פתיחת דלת•

סגירת דלת•

הסעת מעלית•

עצירת מעלית•

רישום בקשה•

בדיקת בקשות קיימות•

ביטול בקשות•

המשך נסיעה באותו כיוון•

החלפת כיוון נסיעה•

לחיצה על כפתור במעלית•

הדלקת כפתור מעלית•

כיבוי כפתור מעלית•

בקשת עצירה•

אזעקת חילוץ•

תפעול מעלית

ממשק פאנל נוסע «driver»

תפעול מנוע

«driver»

תפעול דלת

«datastore»

בקשות נסיעה

ניהול נסיעה

«manifest»«manifest»

«manifest»

«manifest»«manifest»

רכיב שימוש

רכיב מימוש

©D

r. A

mir

To

mer

32-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

חלוקה אפשרית לרכיבים-תוכנת השרת

רובד תצוגהרובד יישוםרובד מידערובד יישוםרובד תצוגה

הקצאת מעליות לנסיעות•מערכתסטטוסניהול •ניהול בדיקת מערכת•פקודות ותצוגות טכנאי•

חילוץניהול•

לחיצה על כפתור בקומה•

הדלקת כפתור קומה•

כיבוי כפתור קומה•

פקודות ותצוגות מחלץ•

פיקוד מרכזיבדיקת מערכת

ממשק פאנל קומה

ממשק מחלץ

הקצאת מעליותניהול בדיקה ותיקוןממשק טכנאי «datastore»

סטטוסים של מעליות

All dependencies are

<<manifest>>

רכיב שימוש

רכיב מימוש

©D

r. A

mir

To

mer

33-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

פריטי התוכנה המותקנים משקפים את רכיבי התוכנה מהם נבנו

©D

r. A

mir

To

mer

34-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

תוכן העניינים

ארכיטקטורת מערכת באמצעות מודל פריסה(Deployment Model)

אנליזה פונקציונאלית וארכיטקטורת תוכנה

ארכיטקטורת תוכנה באמצעות מודל רכיבים(Component Model)

ארכיטקטורת מערכת כוללת

מאפייני איכות והשפעתם על הארכיטקטורה

©D

r. A

mir

To

mer

35-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

ממשקים פונקציונאליים

באמצעות ( רכיבים אחרים או ישויות חיצוניות)רכיב מקיים אינטראקציה עם סביבתו •

:שתי קבוצות של ממשקים

(Provided Interfaces)ממשקים מסופקים •

י הרכיב"עשירותים המסופקים ממשקים ל: קרי–

האמצעים שחושף הרכיב לרשות סביבתו לצורך קבלת השירותים ממנו•

דוגמאות•

(סוג ערך מוחזר, פרמטרים וסוגיהם, שם)פונקציות ציבוריות –

SQLממשק לשאילתות –

IRקליטת קוד הפעלה דרך עינית –

קבלת קובץ–

–Dialog box

HTMLטופס –

(Required Interfaces)ממשקים נדרשים •

י הרכיב"עשירותים הנדרשים ממשקים ל: קרי–

פניות של הרכיב לרכיבים אחרים דרך הממשקים המסופקים שלהם•

דוגמאות•

(HMIפרט לממשקי )מהצד השני , אותן דוגמאות–

Application

Program

Interface

©D

r. A

mir

To

mer

36-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

UML-רכיבים וממשקים ב

מסופקממשק

Provided Interface

ממשק נדרש

Required Interface

רכיב

Component

מחבר הרכבה

Assembly Connector

Aרכיב Bרכיב

מתאר קשר קבוע ובלעדי

B-לAבין

תלות

Dependency

Aרכיב Bרכיב

מתארת דרישת תאימּות

בין ממשקים

Aתלוי ב-Bפירושו:

עלולB-שינוי ב

A-לדרוש שינוי ב

האם תמיד הממשק

תלוי בממשקהנדרש

?המסופק

©D

r. A

mir

To

mer

37-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

רכיב תפעול מעלית–מערכת המעליות

(פונקציות)שירותים•

חילוץ, עצירה, זיהוי וניתוב בקשות נסיעה–

ניהול משימות המעלית–

ניהול נסיעת המעלית–

ממשקים מסופקים•

בקשות מכפתורים–ממשק לקליטת בקשות נסיעה המגיעות מכפתורי המעלית•

בקשות ישירות–(שלא באמצעות כפתורים)ממשק לקליטת בקשות נסיעה באופן ישיר •

סטטוס–על פי בקשהסטטוסממשק להספקת קוד •

ממשקים נדרשים•

עצירה/נסיעה–של מעלית פיזית( המנוע)ממשק למנגנון ההנעה •

פתיחת דלת/סגירת–ממשק למנגנון דלת פיזית•

EO–תפעול מעליתבקשות ישירות

סטטוס

בקשות מכפתורים

פתיחת דלת/סגירת

עצירה/נסיעה

©D

r. A

mir

To

mer

38-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

רכיב פיקוד מרכזי–מערכת המעליות

(פונקציות)שירותים •

זיהוי וניתוב בקשות עצירה–

הקצאת מעליות–

ניהול פעולות חילוץ–

ממשקים מסופקים•

הזמנות מכפתורים–ממשק לקליטת הזמנות נסיעה המגיעות מכפתורי קומות•

הזמנת מעליות לקומות–(שלא באמצעות כפתורים)ממשק לקליטת הזמנות נסיעה באופן ישיר •

פקודות חילוץ–יעודייםכפתורים /ממשק לקליטת פקודות הפעלה של מחלץ באמצעות מפתח•

ממשקים נדרשים•

בקשות נסיעה–הפניית בקשות נסיעה למעלית•

מעליתסטטוס–מעלית על פי דרישהסטטוסקבלת •

CC–פיקוד מרכזי הזמנות ישירות

פקודות חילוץ

הזמנות מכפתורים

מעליתסטטוס

בקשות נסיעה

©D

r. A

mir

To

mer

39-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

רכיב בדיקת מערכת–מערכת המעליות

(פונקציות)שירותים •

זיהוי וניתוב פקודות טכנאי–

ניהול בדיקה ותיקון של המערכת–

ממשקים מסופקים•

פקודות בדיקה–

משתמש לטכנאי-ממשק•

ממשקים נדרשים•

הזמנת מעליות לקומות–

הפניית הזמנות נסיעה לקומות•

בקשות נסיעה–

הפניית בקשות נסיעה למעלית•

מעליתסטטוס–

מעלית על פי דרישהסטטוסקבלת •

ST–בדיקת מערכת פקודות בדיקה

הזמנת מעליות לקומות

מעליתסטטוס

בקשות נסיעה

©D

r. A

mir

To

mer

40-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

קומותפאנלי קומותפאנלי

(ארכיטקטורת תוכנה)מבנה –רמת פריטי התוכנה

תוכנת

שרת

המעליות

קומותפאנלי

פאנל טכנאי

פאנל מחלץ

תפעול מעליותקומותפאנליקומותפאנלי

בקשת

נסיעה

סטטוס

מעלית

פיקוד מרכזי

הזמנות

מכפתורים

פקודות

חילוץ

בקשת

נסיעה

סטטוס

מעלית

בקשת

נסיעהסטטוס

מעלית

בדיקת מערכת

פקודות

בדיקה

בקשת

נסיעהסטטוס

מעלית

הזמנות ישירות

תוכנת

תפעול

המעלית

פאנל נוסע

שרת מעליות

מנוע

דלת

נסיעה/

עצירהסגירת/

פתיחת

דלת

תפעול מעלית

בקשות

מכפתורים

נסיעה/

עצירהסגירת/

פתיחת

דלת

בקשות

ישירותסטטוס

©D

r. A

mir

To

mer

41-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

תרשים רכיבים משות –תוכנת מערכת המעליות

בקשת

נסיעה

סטטוס

מעלית

פיקוד מרכזי

הזמנות

מכפתורים

פקודות

חילוץ

בקשת

נסיעה

סטטוס

מעלית

נסיעה/

עצירהסגירת/

פתיחת

דלת

תפעול מעלית

בקשות

מכפתורים

נסיעה/

עצירהסגירת/

פתיחת

דלת

בקשות

ישירותסטטוס

בקשת

נסיעהסטטוס

מעלית

בדיקת מערכת

פקודות

בדיקה

בקשת

נסיעהסטטוס

מעלית

הזמנות ישירות

ממשק פנימי

תוכנה-תוכנה

ממשק חיצוני

התלוי בחיבור פיזי

ארכיטקטורת

תוכנת

השרת

ארכיטקטורת

תוכנת

המעלית

תלות זו מציינת

שממשקים אלה

חייבים להיות

מתואמים ברמת

!המערכת

©D

r. A

mir

To

mer

42-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

(SW-ICD)טבלת ממשקי תוכנה

ממשקיםרכיבים

פירוטשירותסוגזיהויתפקידשם זיהויCC פיקוד

מרכזיבקרה על המערכת

הכוללת

CCIF-1י כפתורי קומות"העברת בקשות עהזמנות מכפתוריםמסופק

CCIF-2העברת פקודות מפאנל המחלץפקודות חילוץמסופק

CCIF-3העברת הזמנות שלא דרך כפתוריםהזמנות ישירותמסופק

CCIF-4העברת בקשת נסיעה למעליתבקשת נסיעהנדרש

CCIF-5מעליתסטטוסבקשת מעליתסטטוסנדרש

OE תפעול

מעלית

בקרה ותפעול של מעלית

בודדת

OEIF-1

OEIF-2

OEIF-3OEIF-4

OEIF-5

ST בדיקתמערכת

ביצוע בדיקות למערכת הכוללת

STIF-1

STIF-2

STIF-3

STIF-4

נסיעה/

עצירהסגירת/

פתיחת

דלת

תפעול מעלית

בקשות

מכפתורים

נסיעה/

עצירהסגירת/

פתיחת

דלת

בקשות

ישירותסטטוס

בקשת

נסיעהסטטוס

מעלית

פיקוד מרכזי

הזמנות

מכפתורים

פקודות

חילוץ

בקשת

נסיעהסטטוס

מעלית

בקשת

נסיעה

סטטוס

מעלית

בדיקת מערכת

פקודות

בדיקה

בקשת

נסיעה

סטטוס

מעלית

הזמנות ישירות

©D

r. A

mir

To

mer

43-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

מטלת כיתה

הצע חלוקה לרכיבי , על בסיס מסמכי הלקוח והמודלים שנבנו עד כה•

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

"חתרנית"מערכת

נסה להגדיר שכבות פונקציונאליות רלוונטיות–

(השירותים שמספק כל רכיב)הגדר רכיבי תוכנה ואת הפונקציונאליות שלהם –

הגדר את הממשקים הנדרשים והמסופקים של כל רכיב–

שרטט תרשים רכיבים של פריט התוכנה הנבחר–

©D

r. A

mir

To

mer

44-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

תוכן העניינים

ארכיטקטורת מערכת באמצעות מודל פריסה(Deployment Model)

אנליזה פונקציונאלית וארכיטקטורת תוכנה

ארכיטקטורת תוכנה באמצעות מודל רכיבים(Component Model)

ארכיטקטורת מערכת כוללת

מאפייני איכות והשפעתם על הארכיטקטורה

©D

r. A

mir

To

mer

45-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

הממשקים הפונקציונאליים עוברים דרך הממשקים הפיזיים

©D

r. A

mir

To

mer

46-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

?

ProvidedInterfaces

RequiredInterfaces

סמארטפוןשל ממשקים פיזיים

בסמארטפוןשל אפליקציית ניווט ממשקים פונקציונאליים

של ממשקים בישויות מורכבות(delegation)האצלה

במבנה המערכתי החיבור בין הסביבה או ישות חיצונית לבין ישות או מרכיב פנימי •

נעשה באמצעות ישות ביניים

לקוח נותן הוראה לפקיד הבנק באמצעות מערכת הטלפון, לדוגמה–

הטלפון משמש כאמצעי חיבור בין הלקוח החיצוני לפקיד הפנימי •

(Port)יציאה •

נקודת חיבור בין ישות לסביבתה–

שקע או כל מחבר אחר/תקע: 1דוגמה •

צומת ברשת תקשורת: 2דוגמה •

של מערכת ההפעלהI/Oפונקציות : 3דוגמה •

(delegation connector)חיבור האצלה •

חיבור בין יציאה חיצונית לבין מרכיב פנימי–

ביציאה לצורך קבלת שרות מהסביבה משתמשהמרכיב הפנימי : חיבור יוצא•

את השרות הניתן דרך היציאהמממשהמרכיב הפנימי : חיבור נכנס•

סביבה

ישותPort

מרכיב

פנימי

<<delegate>>

©D

r. A

mir

To

mer

47-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

(מחשב/ פ מעה/ פריט תוכנה)ישות חיצונית

מימוש ממשקי התוכנה באמצעות חיבורי החומרה

בחומרה" עטופה"תוכנה תמיד , כאמור•

(צומת)פריט תוכנה תמיד מותקן בפריט חומרה –

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

לצורך קשר עם סביבתם(ports)רכיבי תוכנה משתמשים ביציאות •

('וכויציאות תקשורת , USB)חיבורי התקנים חיצוניים למחשב –

(פרוטוקולי תקשורת, פלט/קלט, קבצים חיצוניים)התקשורת / חיבורים דרך מערכת ההפעלה –

.('וכודרייברים )המייצג אותם (item)חיבורים דרך אמצעים אחרים של הפריט –

האצלת ממשק מסופק•

הרכיב מממש את השרות הניתן לסביבה החיצונית דרך היציאה–

האצלת ממשק נדרש•

הרכיב מקבל את השרות מהסביבה החיצונית דרך היציאה–

רכיב תוכנה

<<delegate>>

<<delegate>>

©D

r. A

mir

To

mer

48-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

ארכיטקטורת מערכת כוללת–מערכת המעליות

בקר מעלית

Client Port

דלתמנוע

פאנל

נוסע

שרת מערכת המעליותפאנל

מחלץ

פאנל

קומה

פאנל

טכנאי

Server Port

פיקוד מרכזי

הזמנות

מכפתורים

פקודות חילוץ

בקשת

נסיעה

סטטוס מעלית

תפעול מעלית

בקשות

מכפתורים

נסיעה/

עצירהסגירת/

פתיחת

דלת

בקשת

נסיעהסטטוס

תוכנת בדיקה

פקודות

בדיקה

בקשת

נסיעה

סטטוס מעלית

«delegate»

«delegate»

«delegate»

«delegate»«delegate»

«delegate»

הזמנת מעלית לקומה

«delegate»

«delegate»

«delegate»

«delegate»

«delegate»«delegate»

client/serv er communication

©D

r. A

mir

To

mer

49-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

בין ארכיטקטורת התוכנה לארכיטקטורת החומרה(consistency)שמירת עקביות

(delegate)המייצג אותו portלכל ממשק חיצוני של ארכיטקטורת התוכנה יש 1.

(deployment diagram)בתרשים ארכיטקטורת התוכנה מזוהה עם קשר פיזי בתרשים הפריסה portכל 2.

של ארכיטקטורת המערכת

בקר מעלית

Client Port

דלתמנוע

פאנל

נוסע

שרת מערכת המעליותפאנל

מחלץ

פאנל

קומה

פאנל

טכנאי

Server Port

פיקוד מרכזי

הזמנות

מכפתורים

פקודות חילוץ

בקשת

נסיעה

סטטוס מעלית

תפעול מעלית

בקשות

מכפתורים

נסיעה/

עצירהסגירת/

פתיחת

דלת

בקשת

נסיעהסטטוס

תוכנת בדיקה

פקודות

בדיקה

בקשת

נסיעה

סטטוס מעלית

«delegate»

«delegate»

«delegate»

«delegate»«delegate»

«delegate»

הזמנת מעלית לקומה

«delegate»

«delegate»

«delegate»

«delegate»

«delegate»«delegate»

client/serv er communication

©D

r. A

mir

To

mer

50-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

מטלת כיתה

הגדר ארכיטקטורת מערכת כוללת•

על בסיס ארכיטקטורת ( מרכיבים חיצוניים)זהה ושרטט את סביבת הפריט –

SysADהמערכת ממסמך

(ports)הגדר ושרטט יציאות לסביבה –

בין הממשקים (delegation connectors)הגדר ושרטט חיבורי האצלה –

הנחשפים של פריטי התוכנה לבין היציאות המתאימות

©D

r. A

mir

To

mer

51-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

מטלת בית

מטלה צוותית•

, ועל בסיס המסמכים והמודלים שבניתם עד כה, עבור מערכת העניין שלכם–

, הגדירו ארכיטקטורת תוכנה בסביבת החומרה לאחד מפריטי התוכנה

:הכוללת

portsכולל , (component diagram)תרשים רכיבים 1.

טבלת רכיבים וממשקים2.

(ports)טבלת יציאות 3.

השתמשו בתבנית מסמך ארכיטקטורת התוכנה של חתרנית –

(UnderMiner-SAD).

–מפרט ארכיטקטורת התוכנה יוגש ויוצג במסגרת מפרטי הארכיטקטורה •

'הגשה שלב ב

©D

r. A

mir

To

mer

52-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

תוכן העניינים

ארכיטקטורת מערכת באמצעות מודל פריסה(Deployment Model)

אנליזה פונקציונאלית וארכיטקטורת תוכנה

ארכיטקטורת תוכנה באמצעות מודל רכיבים(Component Model)

ארכיטקטורת מערכת כוללת

מאפייני איכות והשפעתם על הארכיטקטורה

©D

r. A

mir

To

mer

53-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

איכות הפתרון–דרישות לא פונקציונאליות

דרישות המגדירות תכונות נוספות של הפתרון שצריכות להתמלא תוך כדי מילוי •הפונקציונליותהדרישות

(PR = Performance Requirements)דרישות ביצועים –

פרמטרים ניתנים למדידה לגבי ביצועי התוכנה•

'וכוניצולת מעבד , איחסוןנפח , זמן תגובה–

(QA = Quality Attributes)מאפייני איכות –

תכונות המאפיינות את המוצר הכולל•

פעולה ללא תקלות לאורך זמן–( reliability)אמינות –

התאוששות מהירה מתקלות, שירות רצוף–( availability)זמינות –

של מפעילים ( הפיזית והנפשית)שמירה על חייהם ובריאותם –( safety)בטיחות –ומשתמשים

הגנה על מרכיבי המערכת ועל המידע בה היא מטפלת–( security)בטחון –

היכולת לערוך בקלות שינויים ותיקונים במוצר–( maintainability)אחזקתיות–

תרומת המוצר למשתמש בביצוע משימותיו ובהשגת מטרותיו–( usability)שימושיות –

!יש להגדיר את מאפייני האיכות באמצעות מדדים כמותיים•

(בדוגמאות הבאות' ר)למאפייני האיכות השפעה רבה על הארכיטקטורה •

©D

r. A

mir

To

mer

54-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה

' חלופה א–ארכיטקטורת מערכת המעליות

לקוח-ארכיטקטורת שרת•

אוטונומי ושירותים מקומיים לנוסעיהמיחשובכל מעלית היא צומת בעלת –

(חילוץ, אחזקה)שרת מרכזי מנהל ומבקר את כלל המערכת ונותן שירותים מרכזיים –

קשר ישיר בין כל מעלית לשרת –

©D

r. A

mir

To

mer

55-ניתוח וארכיטקטורת מערכת הנדסת מערכות עתירות תוכנה

'חלופה ב–ארכיטקטורת מערכת המעליות

ארכיטקטורת רשת•

השרת המרכזי והמעליות מחוברים ברשת תקשורת מקומית–

המתחבר למערכת דרך הרשת, הטכנאי מגיע עם מחשב נייד–

©D

r. A

mir

To

mer

56-ניתוח וארכיטקטורת מערכת הנדסת מערכות עתירות תוכנה

'ופה גחל–ארכיטקטורת מערכת המעליות

ארכיטקטורה ריכוזית•

כל המערכת נשלטת ומתופעלת באמצעות מחשב אחד–

רשת האינטרנטדרך , ניתנים מרחוק( בדיקה)שירותים חיצוניים –

©D

r. A

mir

To

mer

57-ניתוח וארכיטקטורת מערכת הנדסת מערכות עתירות תוכנה

פ מאפייני איכות הערכת חלופות הארכיטקטורה ע

ארכיטקטורה

מאפיין איכות

טכנאי + רשת (אפיון)לקוח -שרת

עצמאי

+ מעבד יחיד

תחזוקה מרחוק

HMMביצועים

HMLזמינות

HLHאבטחה

LMHתחזוקתיות

HMLעלות

©D

r. A

mir

To

mer

58-ארכיטקטורת מערכת ותוכנה הנדסת מערכות עתירות תוכנה