صفحه 1:
۱ ber ee olen eee SIEST!
SA erence rs ern eee CMT: we pees SEC A
دکتر فریدون شمس
سید شروین استادزاده
صفحه 2:
يك مثال: عمارت وینچستر
مقدمهای بر معماری
معماري نرمافزار چیست؟
HI چرخه کاری معماری
اقلا ساختارها و دیدها
صفحه 3:
يك مثال: عمارت وینجستر
EES 107777277722227
نمونهاي از
عدم معماري
صفحه 4:
يك مثال: عمارت وینچستر
اقآ هزینه ساخت - 5/5 میلیون دلار
ل#قامدت ساخت - 38 سال (ز 1884 تا 1922)
اقا تعداد اطاقها < 160
اقا تعداد طبقات - 2
اقا تعداد راه پلهها - 40
لل تعداد آسانسور - 3
467 - تعداد دربها Ill!
Tall تعداد پنجرهها < 1257 (۱0000 قطعه شیشه)
47 = 5) be lus ll
اقا تعداد دودکش = 17
قآ سیستم گرمايي - کانال بخاره هواي گرم.
بخاري ۲
لقلا تعداد دربهايى كه به جايى باز نمیشود
- 950 5 5 5
صفحه 5:
يك واقعيت
a 2
اگر سازههاي بلوكي و زيرساختهاي
اکثر سيستمهاي نرمافزاري امروزي را با
معادلهاي آنها در ساختمان جایگزین
كنيم به عمارتهايي نظیر عمارت
وينجستر خواهيم رسيد. عمارتهليي كه
هر جند هزينه و زمان زيادي صرف
ساخت آنها شده است. ولى جون بر
اساس معماري مشخصی بنا نشدهاند.
اثربخشي لازم را ندارند.
صفحه 6:
نکاتی درباره عمارت ping ینهستر
#لأعدم وجود يك راهبرد مشخص
صفحه 7:
نکاتی درباره عمارت وینچستر
هتکس سس
اقا عدم وجود يك راهبرد مشخص
ل#لاعدم وجود نقشه فني
صفحه 8:
نکاتی درباره عمارت وینهستر
اقآ عدم وجود يك راهبرد مشخص
اقآ عدم وجود نقشه فني
للاعدم توجه به نيازمنديهاي واقعي
صفحه 9:
نکاتی درباره عمارت وینهستر
عدم وجود يك راهبرد مشخص
اقآ عدم وجود نقشه فني
اقآ عدم توجه به نيازمنديهاي واقعي
لقلازمان غير معقول
صفحه 10:
نکاتی درباره عمارت وینمستر
لللاعدم وجود يك راهبرد مشخص
paca! وجود نقشه فني
degi pac ll به نيازمنديهاي واقعي
لللآزمان غير معقول
للآهزینه غیر معقول
صفحه 11:
i
ja!
ial
il
عدم توجه به نيازمنديهاي واقعي
مشقلقی |
ما
نکاتی
للالاعدم وجود يك را
/#لأعدم وجود نقشه فنى
ان غير معقول
هزینه غیر معقول
حضور نسلهاي مختلفي از
سیستمها
درباره عمارت
اهبرد مشخص
سبكها و
29
ee
و حتصت - 2
SS 3 3
SS
صفحه 12:
تکاتی درباره عمارت وینهستر
عدم وجود يك راهبرد مشخص
اقآ عدم وجود نقشه فني
اقآ عدم توجه به نيازمنديهاي واقعي
اقآزمان غير معقول
ل#لأهزينه غير معقول
صفحه 13:
معماري هیست؟
معماري يعني ارلیه توصيفي
فني از يك سیستم که نشان
دهنده ساختار اجزاء آن؛
ارتباط بين آنهاء و اصول و
قواعد حاکم بر طراحي آن.
و تکامل آنها در گذر زمان
باشد.
صفحه 14:
مفاهیم اولبه
مقدمهاي بر
معماري نرمافزار
صفحه 15:
میتواند توسط يك نفر ساخته شود.
نیازمند.
* کمترین مدلسازي
* فرآیند ساخت ساده
ابزارهای ساده
صفحه 16:
ساخت يك فانه
صفحه 17:
-
3
1
J
3
3
5
صفحه 18:
,= ۹
هه زمانى معمارى لازم است
ابعاد تررك
صفحه 19:
چه (مانی معماری لازم است؟
صفحه 20:
چه (مانی معماری لازم است؟
ال ابعاد بزرگ
الآ پیچیدگی زياد
لقلانيازمندي خاص
= eo
صفحه 21:
مه زمانی معماری لازم است؟
ole IT بزرگ
لقلا بيجيدكى زياد
اقآ نيازمندي خاص
اقآ طول عمر زیاد
صفحه 22:
چه (مانی معماری لازم است؟
صفحه 23:
مفاهیم اولیه
ها
معماري نرمافزار
چیست؟
صفحه 24:
تعریف معماری
معماري ب يعني
للا هنر يا علم ساخت هر نوع عمارت که مورد استفاده بشر قرار گیرد.
لقنا عمل يا فرآيند ساخت
GI كار وابسته به معماري؛ ساختارء ساخت و ساز
اقا ساختمان یا ساختار عمومي
اقتأسازمان كلي و ساختارٍ مفهومي يك کامپیوتر يا يك سیستم کامپيوتري از
دید استفاده يا طراحي آن؛ يك عینیت بخش از آن
- به نقل از فرهنگنامه آکسفورد
صفحه 25:
تعریف معماری (ادامه)
ق معماری نرمافزار کاری است که معماران نرمافزار انجام میدهند.
-Beck ~ . ۱
صفحه 26:
تعریف معماری مس
لها يلك مجموعة أزبعنا pols معماري (یا طراحی) که داراي يك شکل
- Perry and Wolf, 1992.
اقا يك معماري سیستم نرمافزار تشکیل شده از
al مجموعهاي از مولفههاء ارتباطات. و قيدهاي نرمافزاري و سيستمي
ی ات نیازمندیهای ذینفعان
اا اصولي كه نشان دهد لين مولفدهاء 2 رطاسم ها سیسسبی زویف
ميکند که نيازمنديهاي سهامداران را برآورده ميسازد.
Boehm et al., 1995. -
صفحه 27:
تعریف معماری سم
il معماري نرمافزار يك برنامه یا يك سیستم محاسباتي ساختار يا
ساختارهایی از سیستم است که عناصر نرمافزاری» خصوصیات قابا
مشاهده از بیرون آن عناصرء و ارتباطات بین آنها را شامل میشود.
Clements et al., 1997. -
صفحه 28:
تعریف معماری مس
بخشهاي مشترك در تعریف معماري
Tall معماري مولفههاي اصلي را نشان ميدهد.
معماري ارتباطات (ساختارهاي) مولفهها و تعامل بین آنها را نشان ميدهد.
معماري اطلاعات محتوايي درباره مولفهها را که مربوط به تعامل آنها نباشد. حذف ميکند.
رفتار مولفهها بخشي از معماري است.
هر سيستمي داراي يك معماري است. حتي اگر تنها از يك مولفه تشکیل شده باشد.
معماري اصول پشت پرده هر مولفه و ساختار را بیان ميکند.
تعاریف معماري نميگویند يك مولفه چیست؟
[لآ معماري يك ساختار منفرد نیست. هیچ ساختار منفردي نیز معماري نب
صفحه 29:
تعریف معماری مس
لقلا معماري نرمافزار با موارد زیر نیز سروکار دارد :
ابلیت درك
SI قیدها و محدوديتهاي فنآوري و اقتصادي
a زيبايي شناسي
صفحه 30:
معماري. طرامي. و پيادهسازي
b
Hl معماري مفاد طراحي و پيادهسازي را مش
ها
صفحه 31:
مثالی از معماری
آیا اين نمودار يك معماري است؟
صفحه 32:
مثالی از معماری
جه نكات مبهمي در نمودار قبل وجود داشت؟
8 ماهیت عناصر (فرآیند. کلاس. شیء oly وظیفه. پردازنده. ..)
لقلا مسوولیت عناصر
I نوع ارتباطات (فراخواني. درخواست. بكارگيري. سیگنال. ارسال
داده. کنترل» زیر کلاس. ..)
آلآ مفهوم طرحبندي
۴ عملیات زمان اجراي سیستم
صفحه 33:
مثالی از معماری
چه بخشهايي در نمودار قبل جا مانده است؟
Vel om coals
اهیت هر يك از عناصر چیست؟
مسوولیت هر يك از عناصر چیست؟
- مفهوم هر يك از ارتباطات چیست؟
مفهوم هر يك از طرحبنديها جيست؟
Tal > که ما دقیقاً بد > چگونه بگر ء
= > مواقي ۱ انیم هر عنصر اصر
2 ي دقية از
7 دارد 3 22 ظُيْفَة نيس : 1 1 5
ae ي دارد تا يك وظیفه سیستم انجام شود. ن ‘i 3 255
نمودار قبلي هیچ استفادهاي
صفحه 34:
نظراتی درباره معماري
اده شود نك ديدي است).
صفحه 35:
جرحه كاري معماري
EES
چه مواردي بر معماري تاثیر ميگذارند؟
چه مواردي از معماري تاثیر ميگیرند؟
صفحه 36:
چه كساني بر معماری تاثیر دارند؟
صفحه 37:
مشتریان و کاربران نهايي
نیازمندیها (+ صفات كيفيتي مثل کارايي قابلیت نگهداشت. ..)
محدوديتهاي بودجهاي
@ @ ها
محدوديتهاي زماني
رعایت قواعد خاص سازمان مثل رعایت يك فنآوري we
8!
صفحه 38:
سازمان توسعه
لا موارد كاري
Sl سرمايه گذاري و استهلاك زیرساختها
tals GI هزینهها
a ساده بودن پيادهسازي
لقلا موارد سازماني
فا استفاده از ساختار سازماني موجود
افك استفاده بهینه از کارمندان
صفحه 39:
محیط فنآوري
Bl گرایش غالب امروزي (مثلاً نمافزارها تحت وب باشد)
ال فنآوري موجود (مثلاً تصمیم در استفاده از يك سیستم متمرکز یا
توزیعشده بستگي به هزینه پردازندهها و سرعت خطوط ارتباطي
دارد)
صفحه 40:
3"
پیش زمینه معمار
- ۲
HB معماران کارشان را با توجه به مجموعه تجربیات گذشتهشان انجام
میدهند.
لها تجربه موفق باعث تکرار آن در معماري جدید ميشود.
قن تجربه ناموفق باعث عدم استفاده از آن در معماري جديد مىشود.
صفحه 41:
Architecture
System
لت نابات لاحلاه
meee co
Stakeholders —
Pree ae
organization
aCe)
environment
Architect's
experience
صفحه 42:
معماري بر روي سازمان توسعه تاثیر دارد
(eer
Bl ساختار و منابع سازماني
Sl واحدهاي کاري
fal زمانبندي 1
لا بودجه
Hl اهداف سازمانی
Inia JRE Ey Cae a gauss Bl
فا موفقیت در بازار
2 ارزيابي بازار
Bl داراييهاي خط تولید
صفحه 43:
معماري بر روي نيازهاي مشتریان تاثیر دارد
مس سس جچچ 0(
i دانش مشتریان
ارتقاء سیستم انطباق پذيري. ...
صفحه 44:
معماري بر روي تجربه معمار و ممیط فنآوري
اقا ساخت يك سیستم بر روي تجربه معمار تاثیر خواهد داشت.
HI معمولاء يك سیستم يا يك معماري بر روي محیط فنآوري تاثیر
دارد.
صفحه 45:
6
Architect(s)
Architect's influences
Serene
i 00
00 ysis
eer
Bae
environment
Architect's
ات تاه ۳۱
صفحه 46:
خعالیتهای چرخه کاري معماري
lal
حصول اطمینان از انطباق
محصول با معماری
صفحه 47:
ساختارها و ديدهاي معماري
صفحه 48:
ال ساختار يك مجموعه از عناصر همگن به همراه ارتباط بین آنها است. براي هر
ساختار ميتوان موارد زیر را مشخص کرد.
الأ نوع عناصر
لا نوع ارتباطات
الا مجموعداي از قيدهاي نحوي
قا معني تمودار 00
اصول. قواعد: و راهبردها
cl Gl چه هدفی قابل استفاده است؟
Hl دید نمايشي از معماري نرمافزار بر پایه يك ساختار است که توسط معمار
ترسیم شده و دینفعان آن را میخوانند. (نمونهاي از يك ساختار)
اقا معماري نرمافزار توسط تعدادي دید مستند ميشود.
صفحه 49:
چارهوب مخهومی معماري رح بو همم
رتست
(منطق)
صفحه 50:
طبقهبندي ساختارها
دس ۱۳۳
1 ساختارهاي ماژول (1۷0016)
22 ساختارهاي مولفه و اتصال )& Component
(Connector
3 ساختارهاي تخصیص (۵1106۵108)
این طبقه بندی ها متعامد هستند.
صفحه 51:
1- ساختارهای واهد
Bl عناصر: ماژولها (واحدهاي پيادهسازي)
لقلا مشخص میکند :
انا مسوولیت وظيفهاي ماژولها
اق سایر عناصري که ماژول اجازه استفاده از آنها را دارد.
شا روابط عام و خاص
لقلا عملیات زمان اجراى نرمافزار براي اين ديد اهميتي ندارد.
صفحه 52:
1-1 ساختار تجزیه
لقلا عناصر: ماژولها به شکل سلسله مراتبي
لقلا ارتباطات: زيرواحدي از ..» به اشتراك مي كذارد وات
صفحه 53:
1-2 ساختار استفاده
م ۶
عناصر: ماژولهاء روالهاء یا منابع مربوط به واسط ماژولها
اقا ارتباطات: استفاده ميکند از ...
صفحه 54:
1-3 ساختار لایهای
زیرنوعی از ساختار استفاده است.
لكا (aa sce (مجموعهای همگن از وظیفهمندی مرتبط)
Bl ارتباطات: استفاده من از ... (در حللت ايدملل؛ هر لايه تنها از
لایه قبل از خود استفاده م ىكند).
لقلا مفید براي ...
تا ماشین مجازي
صفحه 55:
1-4 ساختار كلاس
| عناصر: كلاسها
أرتباطاكه وزاك قمويذاف لدابت
8
' مفيد براي ...
لقنا طراحي شيءكرا
صفحه 56:
2- ساختارهای مولفه و ارتباط
لقلآ عناصر: مولفههای زمان اجرا (واحدهای اصلی محاسبه) و اتصالات
(ابزا رهاي | رتباطي بين مولفهها)
= مي كند:
لا مولفههاي اجرايي اصلي و چگونگي تعامل بين آنها
Sl انبارههاي داده مشترك اصلی
فا چه بخشي از سیستم تکرار شده است؟
انا جریان داده در سیستم
تا چه بخشهايي بصورت موازي ميتوانند اجرا شود؟
انآ ساختار سیستم در حین اجرا چگونه ميتواند تفییر کند؟
صفحه 57:
2-1 ساختار مشتری /خدمتگزار
8 عناصر: مشتري» خدمتگزار
ارتباطات: ارتباط برقرار میکند با .» وابسته است به ...
اقا لقلا مفيد براي ...
al اد" عملیات توزیع شده
قا جداسازي موارد بااهمیت
لا تعادل بار
صفحه 58:
22 ساختار پردازه
Hl عناصر: پردازهها یا نخها
لقلا ارتباطات: موازي اجرا ميشود با ..» قبل از ... اجرا مي شود
لقلآ مفيد براي ...
افا تحليل كارايي
اقنا تحليل زمانبندي
صفحه 59:
2-3 ساختار توازی
نخهای ۱
عناصر: نخهاي م ih 4
تباطات: اجرا ميشود بر روي
ار +
مفيد براي 32
bas! I
انا انشعاب
ها 8 ها
صفحه 60:
2-4 ساختار داده مشترك یا انباره
8 عناصر: انباره داده. تولید کننده داده» مصرف کننده داده
ارتباطات: تولید داده. مصرف داده
aus il براي ...
al یکی یکپارچگی داده
Sl كارايي
اقا تفييرپذيري
صفحه 61:
3- ساختارهای تخصیص
ارتباط Ge نرمافزار را با عناصري از محیط خارجي نشان ميدهد.
لقلا مشخص مي كند:
لق بردازندهاي كه هر يك از عناصر نرمافزاري را اجرا ميکند.
al اك فايلي كه هر يك از عناصر نرمافزاري را در هنكام توسعه نگهداري ميکند.
2" انتساب نرمافزار به تیم توسعه
صفحه 62:
3-1 ساختار استقرار
عناصر: نرمافزاره سختافزار و مسيرهاي ارتباطي
ارتباطات: تخصیص داده شده به ..» مهاجرت به ...
ال مفید برای ...
a تحلیل کارايي
Gl تحلیل دسترس پذيري
ال تحلیل امنیت
صفحه 63:
3-2 ساختار پیادهسازی
لقلا عناصر: هر واحد منطقي(مثل ماژول)
لق ارتباطات: پيادهسازي ميکند ...
لقلآ مفيد براي ... 1
تا کنترل پيكربندي
افآ یکپارچه سازي
افآ فعاليتهاي آز a
صفحه 64:
3-3 ساختار اتتساب کار
a
عناصر: هر واحد منطقي(مثل ماژول)
ارتباطات: انتساب داده میشود به ...
لكلا مثالی از کاربرد
لا مدیریت پروژه
لقا بهنرین استفاده از تخصصها
@ |
a!
صفحه 65:
طبقهبندي ساختارها
Module Component- Allocation
and-Connector
Decomposition Class Client |Process Shared
Server Data
Implementation
Coneurrenc
Uses ۷ Work
Assignment
Layered
صفحه 66:
صفحه 67:
طبقهبندي سنتي نیازمندیها
اقا وظيفهاي
/2ه غيروظيفهاي
Sl يك افسائة متداول در نرمافزار: ابتدا نرمافزاری ساخته شود که
نيازمنديهاي وظيفداي را برآورده كند. سپس نيازمنديهاي غيروظيفهاي به
آن افزوده پا تزریق شود.
قا اين ايده ما را به سمت اتلاف منابع و كيفيت يايين سوق میدهد.
لقنا بايد تمركز بر روي كيفيت را از همان ابتدا 7
صفحه 68:
وظيفهمندي و معماري
8 وظيفهمندي و صفات كيفيتي از نظر تثوري متعامد هستند.
نميتوان با هر سطحي از وظيفهمندي به همه صفات كيفيتي دست
یافت.
il وظيفهمندي را ميتوان به شكلهاي مختلف بدست آورد (چندان به
معماري مربوط نیست)
il معماری قصد دارد با سازماندهی وظایف به صفات کیفیتی دست
پیدا کند.
صفحه 69:
==
ال دستيابي به کیفیت باید در تمام مراحل طراحي (از جمله معماري).
ادهسازي: و استقرار مد نظر قرار گیرد.
5 هم جنبههاي مربوط به معماري و هم جنبههاي نامربوط به معماري
دارد. مثلا
اقلا دسترس يذيري: انتخاب از بين عناصر در برابر يشتيباني از عمل بازكشت
ْنا كارايي: مقدار ارتباط بين مولفدها در برابر الكوريتمها
نيستند و نبايد بصورت مجزا به آنها دست يافت.
ثل تغييريذيري و قابليت ساخت)
لقا همبستكي منفى (مثل قابليت اطمينان و امنيت)
صفحه 70:
طبقهبندي صفات كيفيتي
i صفات كيفيتي سيستمي: دسترسپذيري» تغييرپذيري کارايي.
امنیت. آزمونپذیری» و قابلیت استفاده
لقلا صفات كيفيتي كاري: مثلاً مدت زمان بازاريابي
لقلا صفات كيفيتي معماري: مثلاً يكيارجكي مفهومي
صفحه 71:
طبقهبندي صفات کیفیتی سیستمي
لقا قابل مشاهده از طريق اجرا (مثل كارايى و امنيت)
لكلا غيرقابل مشاهده از طريق اجرا (مثل تغييريذيري و آزمونيذيري)
لكآ اين دو كروه كاملاً مستقل (متعامد) هستند . اگرچه گروه دوم بر
روي اولي تاثیر غیرمستقیم دارد.
8 صفات كيفيتي غیرقابل مشاهده نیز مهم هستند. گاهي حتي مهمتر
Mt
صفحه 72:
صفات کیفیتی سیستمی
سس سسس ا ©
= دسترس پذیری (وابسته به قابلیت اطمینان)
es ذيري (شامل Cobb حملء قابلیت استفاده مجدد.
مقياس يذيري)