صفحه 1:
ارائه درس معماری سیستم های بزرگ
Co Pe
صفحه 2:
عنوان فصل: طراحی زیرسیستم
فهرست مطالب
ال
صفحه 3:
" پیشنهاد ۳۵۷۷۱6۲: استفاده از ۳۵1896 ها
ا ۴"
صفحه 4:
ادامه
7 زيرسيستم ها : تعريف ساختار سيستمء واسط ها و وابستكى ها در زمان
طراحی یا ساخت
eer AC] To) a
صفحه 5:
: UML User's Guaide «_ a>5 3, Package
BS Sree ebb oe
صفحه 6:
سیستم : یک 0866896 دارای 56۲0/۵6
زيرسيستم: بخشى از سيستم. يك 021896 داراى 56/086
صفحه 7:
خصوصیات زیرسیستم
* زیرسیستم:
سطح پایین ترین موجودیت هایی که معمار نرم افزار واسط های انها را مدیریت میکند
واحد تولید مستندات طراحی ۹
صفحه 8:
۳
* یک تکنیک دیگر برای داشتنن دید مجرد از سیستم
صفحه 9:
of Technology, Computer Engineering 0ك
Loren Na ence ce etn eevee a
3 3067م ناه طم
صفحه 10:
صفحه 11:
مدل کردن زیرسیستم هاء واسط ها و لابه ها
* زيرسيستم ها و لايه ها : دو ابزار اساسى براى ستازماندهى سيستم هاى
بزرك در بخش هاى كوجكتر و قابل مديريت
ا
صفحه 12:
ادامه
سیستمی با تعداد زیادی زیرسیستم وابسته به هم
* به سرعت غیرقابل تغییر می شود
صفحه 13:
ابزارهای لازم برای ثبت. کاوش و مدیریت وابستگی ها در کل سیستم را
فراهم میکند.
udsystem interface dependency view
تک زیر زسیستم ها تمرکز کند لاه ها ی ساختن جزئیات کمک میکنند.
of Technology, Computer Engineering 0ك
Loren Na ence ce etn eevee a
13 3067م ناه طم
صفحه 14:
Packane
‘Amirkabir University of Technology, Computer Engineering
Loren Na ence ce etn eevee a
3067م ناه طم 14
صفحه 15:
15
cain 2 1 حا Ls تس
مود
of Technology, Computer Engineering 0ك
Loren Na ence ce etn eevee a
3067م ناه طم
صفحه 16:
ae]
ات
rang
صفحه 17:
اطلاعاتی در مورد ساختار سیستم در ارتباط با یک زیرسیستم خاص
کمک لایه ها به حذف جزئیات در ۷16۷ های پیچیده.
صفحه 18:
1 ۳
Customer <— ——-—- — billing
layer
\ dependencies J
2
layers تیه
1 ۴۵۸
of Technology, Computer Engineering 0ك
Loren Na ence ce etn eevee a
18 3067م ناه طم
صفحه 19:
Top-level Dependencies Yb ch. cle <I,
Spe nC rie Ct eres Se Seen rete tone ae
Subsystem interface dependency view
اا اا ا لل لت
صفحه 20:
0
Customor
Query
“<<aubsystem>>
‘Accounts
“<-subsystom>>
Stocks
1
۳۳۹
د
“<<eubayatem>>
Bling
=
‘<<subsystemn>>
Advertising
ea
‘eeubsyetem>>
aut
0
مخ 0
اه ل
ی یت
Teller User ‘Account
Interface
‘Acct |_Managemont
م Status
“<subsystem>>
Voice interface
يس لمج
ا ا
ود
tan
اه
, ناهد
Fe cen oat arte estat
tener)
صفحه 21:
Layered Subsystem viewpoint
ا PRCT Soe
معمولایک ۷۱6۷ ی لایه ای از سیستم وجود دارد
فهم آسان برای افراد معمولی . ..
صورت Seale.
صفحه 22:
نمونه ای از مفاهیم وابستگی اضافه شده
۱
مهم برای تیم های توسعه و معماری .
صفحه 23:
ادامه
0
" نشان دادن کل معماری در یک ۰۷16۷۷
صفحه 24:
24
University of] ام وید
00
صفحه 25:
۳
20505595800 view Tai 52
of Technology, Computer Engineering 0ك
Loren Na ence ce etn eevee a
25 3067م ناه طم
صفحه 26:
ادامه
ا حیاتی از معماری نرم افزار برای توسعه دهندگان نرم افزار به
ل ا
اا 00
4 1
صفحه 27:
2101000000
ها ,اند
27
صفحه 28:
ا ا ل ل
ی ge
ساخت پروژه
ری و
صفحه 29:
پیشنهاد: نشان دادن معماری زیرسیستم ها به طور مستقیم در کد
صفحه 30:
ادامه
اا ل معماری سیستم در کد منبع
OS ne eS nse ee ae
(Leone
صفحه 31:
عا ا ها
al ل ا ا ال ل اك
* پیشنهاد: عکس این مطلب
تعریف 60000۳06 : نمونه های زمان اجرا
ایک
صفحه 32:
1۳7 peommurpen ل
انتيجه اى از ساخت. نصب و اجرای آن ز رسیستم.
صفحه 33:
_-—> transaction | subsystem» Subsysiom Butlds the
0 Session ‘Component
Managor
ponent interface
is insiance of
Suhsysten interface
transaction
‘Amirkabir University of Technology, Computer Engineering
Loren Na ence ce etn eevee a
3067م ناه طم Ey
صفحه 34:
Jeff Garland, Richard Anthony, Chapter 6 of Book
6/60 1۵796-516 5070۷372 2۵۲/666۷۰
فهرست مطالب
واژگان
واسط ها و الیه ها، مدل کردن زیرسیستم ها
نگاشتن زیرسیستم ها و الیه ها به پیاده سازی
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
2
پیشنهاد : Fowlerاستفاده از Packageها
پیشنهاد بهتر :استفاده از زیرسیستم ها
تقسيم بندي کالس ها به صورت زيرسيستم و مديريت وابستگي هاي
بين آنها :از موارد کليدي مورد توجه معمار
3
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
زيرسيستم ها :تعریف ساختار سيستم ،واسط ها و وابستگي ها در زمان
طراحي يا ساخت
Viewpointهايم>ربوط ب>>ه ز>يرس>يستم :ا>ط>العات>يدر م>ورد س>>يستم در
ز>مانس>>اخ>تو وا>ب>ستگيهايس>>از>مان>ي
مهم براي تيم هاي پياده سازي
تهیه ی مستندات ساختار ايستاي نرم افزار
4
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
: UML User’s Guaide ب>>ا ت>>وج>ه ب>>هPackage
› مجموعه اي از المان هاي مدل
،)collaboration( همکاري، هاcomponent ، واسط ها،› المان ها کالس ها
هاpackage موارد کاربرد و ديگر
در صورت حذف آنpackage › حذف المان های داخل
package کالس هاي واسط داخل:› المان هاي قابل ديدن
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
5
سیستم :یک
package
داراي
sterotype
زيرسيستم :بخشي از سيستم ،يک
package
داراي
sterotype
اطمينان از قابليت نگهداري سيستم:
› cohesionب>>ا>الو couplingپ>>ايينب>>ینز>یرس>یستم ها
>ب ت>>يم هايت>>وس>عه ز>مانو ک>>ار غ>ير ال>ز>م>يرا ص>>رفم>ذا>کره>،
› couplingن>>ام>ناس :
ت>>وس>عه و ت>>حويلوا>س>ط ها ب>>ينز>يرس>يستم ها خ>وا>هند ک>>رد.
اهمیت زیرسیستم :محصوالت کار طراحي در اين سطح به تيم هاي توسعه
داده ميشود.
6
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
زیرسیستم:
› سطح پايين ترين موجوديت هايي که معمار نرم افزار واسط هاي انها را مديريت ميکند
› واحد توليد مستندات طراحي
› امکان دادن چند زيرسيستم به يک تيم داده
› لزوم طراحي ،ايجاد و به صورت جداگانه
› واحدهاي اجراي تست و ايجاد test suitهاي ا>توماتيک
› واحد تحويل براي مستندات ،کد منبع ،گزا>رش هاي تست و ديگر محصوالت
› امکان در نظر گرفتن یک زیرسیستم بزرگ و پیچیده به عنوان یک سیستم
7
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
يک تکنيک ديگر براي داشتنن دید مجرد از سيستم
تقسیم عملکرد سيستم به چند گروه
وابستگي عملکرد اليه هاي باالتر به عملکرد اليه هاي پايين تر
انواع اليه بندي
strict layering ›
relaxed layering ›
› وراثت بين اليه ها
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
8
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
9
نتايج عملي اليه بندي
› افزایش قابليت حمل نرم افزار
› اجتناب از ساختن اليه هاي پاييني در صورت عدم تغيير
› برقراري ارتباط آسانتر با حذف جزئيات
10
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
زيرسيستم ها و اليه ها :دو ابزار اساسي براي سازماندهي سيستم هاي
بزرگ در بخش هاي کوچکتر و قابل مديريت
تقسيم نرم افزار :ايجاد وابستگي بين زيرسيستم ها
مديريت وابستگي ها و ايجاد واسط ها :از وظايف اساسي ايجاد معماري
اهميت مديريت وابستگي ها :تاثیر مستقيم بر قابليت تغيير و قابليت
تست نرم افزار
11
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
سيستمی با تعداد زيادي زيرسيستم وابسته به هم
› به سرعت غيرقابل تغيير مي شود
› نياز به ساخت و تست مجدد تمام زیرسيستم ها با ايجاد هر تغيير
› سخت شدن فرايند مذاکره در مورد تغيير واسط زيرسيستم ها و componentها
سيستم فاقد زيرسيستم هاي وابسته به هم
› تغییر بسيار آسانتر
› محلی بودن تاثير تغييرات
جابه جا کردن کالس ها و توابع بين زيرسيستم ها و تعيين مکان مناسب براي آنها
حياتي ترين وظيفه ي تيم معماري است.
12
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
کاوش و مديريت وابستگي ها در کل سيستم را،ابزارهاي الزم براي ثبت
.فراهم ميکند
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
13
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
14
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
15
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
16
اطالعاتي در مورد ساختار سيستم در ارتباط با يک زيرسيستم خاص
کمک اليه ها به حذف جزئيات در Viewهاي پيچيده
کاهش سطح اطالعات
حذف وابستگي هاي واسط
حذف جزئيات وابستگي زیرسيستم هاي اليه ي باال به زيرسيستم هاي اليه ي
پايين
ايجاد و نگهداري آسانتر مدل
17
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
18
ترکيب يک مجموعه از viewهاي متمرکز بر زيرسيستم ها :يک نسخه ي سطح باال از
Subsystem interface dependency view
حذف زيرسيستم هاي زيرساختي و off-the-shelf
هدف :توصيف واسط هاي سازماني
امکان مخابره ي مرز تيم هاي توسعه
امکان مخابره و مذاکره ي واسط هاي بين تيم هاي توسعه
امکان برقراري ارتباط با مديران پروژه
19
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
20
مستندات معماري قديمي
› معموال يک viewي اليه اي از سيستم وجود دارد
› فهم آسان براي افراد معمولي
› به صورت هماهنگ رسم نمی شود
› اطالعات فني قابل توجهي را در مورد معماري منتقل نمي کنند.
Layered Subsystem viewpoint
› اضافه کردن مفاهيم وابستگي را براي تيم هاي فني به اين نمودار سنتي
› حفظ قابليت فهم آسان
21
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
نمونه ای از مفاهیم وابستگی اضافه شده
› الیه بندی های formalو relaxed
› مهم برای تیم های توسعه و معماری
سیستم های بسیار بزرگ که از زیرساخت های مشترک استفاده می کنند:
الیه بندی relaxed
سیستم های کوچک یا با زمینه ی کاری محدود :الیه بندی formal
وابستگی بین زیرسیستم های یک الیه؟
› به نحوه ی تعریف الیه ها بستگی دارد
22
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
سازماندهي زيرسيستم ها در اليه ها
View نشان دادن کل معماري در يک
Subsystem interface نسخه ي تطبيق يافته ي
dependency view
اليه بندي و حذف جزئيات
ي کلي از معماري يک سيستم بزرگview فراهم کردن يک
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
23
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
24
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
25
ارائه ی جنبه اي حياتي از معماري نرم افزار براي توسعه دهندگان نرم افزار به
صورت مختصر :وابستگي هاي زمان ساخت.
بستگي زيرسيستم هاي اليه هاي باال به زيرسيستم هاي اليه هاي پايين
به عنوان يک بازنمايي اساسي از طراحي و معماري سيستم نرم افزاري در زمان
ساخت به کار مي رود
نسخه هاي توسعه يافته از اين viewرا ميتوان براي انتقال جنبه هاي مختلفي از
سيستم براي stakeholderهاي متفاوت به کار برد.
26
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
27
پيشنهاد :نگاشتن مستقيم اليه ها و زيرسيستم ها به ساختار پياده سازي زمان
ساخت پروژه
يک زيرسيستم در طراحي :زيردايرکتوري با همان نام در دايرکتوري منبع
دايرکتوري يک زیرسيستم شامل چند دايرکتوري براي مديريت محصوالت توسعه
ي زيرسيستم
› کد منبع
› تست هاي زيرسيستم
› مستندات
اليه ها در معماري :به صورت دايرکتوري در پياده سازي
28
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
نشان دادن معماري زيرسيستم ها به طور مستقيم در کد:پيشنهاد
منبع
منطبق بر معماري اليه هاinclude بهترين راه استفاده از مسيرهاي
و زيرسيستم ها
از اليه يdate-time در زيرسيستمdate براي دسترسي به کالس
++C در يک ماژولfoundation
”include “foundation/date-time/date.hpp#
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
29
فايده :انعکاس معماري سيستم در کد منبع
› کمک در يادگيري سازماندهي کل سيستم به پياده سازي کنندگان
مشکل :تاثیر بر مقدار زیادی از کد در صورت تغيير
› سازماندهي سيستم (مثال تغيير نام يک )Package
روش ديگر :حذف جزئيات از کد منبع
› سيستم ساخت موظف به مديريت مسيرهاي includeاست
› برنامه نويس تنها ”include “date.hpp#را مي نويسد.
› کوتاهتر و انتقال اطالعات بسيار کمتر
30
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
امکان ایجاد viewهايي شامل زيرسيستم ها و componentها در UML
پيشنهاد :عکس اين مطلب
تعريف : componentنمونه هاي زمان اجرا
زيرسيستم ها :يک روش ساختار دادن به سيستم در زمان ساخت
تنها رابطه ي معني دار :يک زيرسيستم يک componentرا مي سازد
هر componentيک زيرسيستم متناظر دارد که به آن "زيرسيستم مبدا"
يا “ ”subsystem of originگفته مي شود
31
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
در ز>يرس>يستم م>بدا ن>>يستComponent
نصب و اجراي آن زيرسيستم،نتيجه اي از ساخت
component برای توصیف مفاهيم زمان ساخت و زمان اجرا تنها با
ها
هاي زمان ساختcomponent ›
هاي زمان اجرا را با يک نامcomponent ›
را بسازدcomponent يک زيرسيستم مي تواند چندين
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
32
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
33
منابع
Jeff Garland, Richard Anthony, Chapter 6 of Book
entitled “Large-Scale Software Architecture”.
Recommended Reading
› Hofmeister et al. (1999)
› Buschmann (1996)
› Doug Smith (2000)
› Lakos (1996)
Amirkabir University of Technology, Computer Engineering
Faculty, Large Scale Software Architecture Course, Dr.
Abdollahzadeh
34