صفحه 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‏ حملء قابلیت استفاده مجدد. مقياس يذيري) ‎ ‎

آموزشي كارگاه آموزشي كارگاه ‌افزار نرمم‌افزار معماري نر معماري ‏www.esoa.ir ‏www.esoa.ir ج ل س ه ا و ل دكتر فريدون شمس سيد شروين استادزاده فهرست مطالب يك مثال :عمارت وينچستر مقدمه‌ای بر معماری معماري نرم‌افزار چيست؟ چرخه کاری معماری ساختارها و ديدها صفات کيفيتی يك مثال :عمارت وينچستر نمونه‌اي از عدم معماري يك مثال :عمارت وينچستر هزينه ساخت = 5/5ميليون دالر مدت ساخت = 38سال (از 1884تا )1922 تعداد اطاق‌ها = 160 تعداد طبقات = 2 تعداد راه پله‌ها = 40 تعداد آسانسور = 3 تعداد درب‌ها = 467 تعداد پنجره‌ها = 10000( 1257قطعه شيشه) تعداد بخاري = 47 تعداد دودكش = 17 سRيستم گرمايي = كانال بخار ،هواي گرم، بخاري تعداد درب‌هايRي كه بRه جايي باز نمي‌شود = 950 يك واقعيت Internet Connection Institutionally owned Shared Computing Resources, Data, Information Security ( M onito r, F ir ew all) OUTnet ATM ESnet Internet SecureNet E xte rnal C onnectio ns Intranet Connections Modem & ISDN Site 300 P oor D esig n P oor P er form ance LabNet Backbone P oor C onnectio n to B ackbone LANs/Building Networks ازه‌هاي بلوكي و زيرساخت‌هايRر سRاگ يستم‌هاي نرم‌افزاري امروزي را باRر سRاكث اختمان جايگزينRا در سRمعادل‌هاي آنه ي نظير عمارتRه عمارت‌هايRم بRكني ي كهR عمارت‌هاي.يدRم رسRتر خواهيRوينچس ه و زمان زيادي صرفRد هزينRر چنRه ولي چون بر،تRا شده اسRاخت آنهRس ،ا نشده‌اندRي بنRاس معماري مشخصRاس .اثربخشي الزم را ندارند نکاتی درباره عمارت وينچستر عدم وجود يك راهبرد مشخص نکاتی درباره عمارت وينچستر عدم وجود يك راهبرد مشخص عدم وجود نقشه فني نکاتی درباره عمارت وينچستر عدم وجود يك راهبرد مشخص عدم وجود نقشه فني عدم توجه به نيازمنديهاي واقعي نکاتی درباره عمارت وينچستر عدم وجود يك راهبرد مشخص عدم وجود نقشه فني عدم توجه به نيازمنديهاي واقعي زمان غير معقول نکاتی درباره عمارت وينچستر عدم وجود يك راهبرد مشخص عدم وجود نقشه فني عدم توجه به نيازمنديهاي واقعي زمان غير معقول هزينه غير معقول نکاتی درباره عمارت وينچستر عدم وجود يك راهبرد مشخص عدم وجود نقشه فني عدم توجه به نيازمنديهاي واقعي زمان غير معقول هزينه غير معقول حضور نسRل‌هاي مختلفRي از سبك‌ها و سيستم‌ها نکاتی درباره عمارت وينچستر عدم وجود يك راهبرد مشخص عدم وجود نقشه فني عدم توجه به نيازمنديهاي واقعي زمان غير معقول هزينه غير معقول حضور نسRل‌هاي مختلفRي از سبك‌ها و سيستم‌ها غير قابل توسعه معماري چيست؟ معماري يعنRي ارايRه توصيفي فنRي از يRك سRيستم كه نشان دهنده سRاختار اجزاء آن، ارتباط بيRن آنهRا ،و اصول و قواعRد حاكم بر طراحRي آن، و تكامRل آنها در گذر زمان باشد. مفاهيم اوليه مقدمه‌اي بر معماري نرم‌افزار ساخت يك النه سگ مي‌تواند توسط يك نفر ساخته شود. نيازمنديها: • كمترين مدل‌سازي • فرآيند ساخت ساده • ابزارهاي ساده ساخت يك خانه مي‌تواند توسط يك تيم ساخته شود. نيازمنديها: • مدل‌سازي • فرآيندهاي خوش ساخت • ابزارهاي قدرتمند ساخت يك آسمانخراش چه زمانی معماری الزم است؟ ابعاد بزرگ چه زمانی معماری الزم است؟ ابعاد بزرگ پيچيدگی زياد چه زماني معماري الزم است؟ ابعاد بزرگ پيچيدگی زياد نيازمندي خاص چه زماني معماري الزم است؟ ابعاد بزرگ پيچيدگی زياد نيازمندي خاص طول عمر زياد چه زماني معماري الزم است؟ ابعاد بزرگ پيچيدگی زياد نيازمندي خاص طول عمر زياد انعطاف پذيری در برابر تغييرات مفاهيم اوليه معماري نرم‌افزار چيست؟ تعريف معماري معماري يعني هنر يا علم ساخت هر نوع عمارت كه مورد استفاده بشر قرار گيرد. عمل يا فرآيند ساخت كار وابسته به معماري؛ ساختار ،ساخت و ساز ساختمان يا ساختار عمومي سRازمان كلRي و سRاختار RمفهومRي يRك كامپيوتRر يRا يRك سيستم كامپيوتري از ديد استفاده يا طراحي آن؛ يك عينيت بخش از آن -به نقل از فرهنگ‌نامه آكسفورد تعريف معماري (ادامه) معماري نرم‌افزار كاري است كه معماران نرم‌افزار انجام مي‌دهند. - Beck تعريف معماري (ادامه) يRك مجموعRه از عناصRر معماري (يRا طراحRي) كه داراي يRك شكل مشخص باشند. - Perry and Wolf, 1992. يك معماري سيستم نرم‌افزار تشكيل شده از ... مجموعه‌اي از مولفه‌ها ،ارتباطات ،و قيدهاي نرم‌افزاري و سيستمي مجموعه‌اي از نيازمنديهاي ذينفعان سيستم اصRولي كه نشان دهRد ايRن مولفه‌هRا ،ارتباطات ،و قيدهRا ،سRيستمي را تعريف مي‌كند كه نيازمنديهاي سهامداران را برآورده مي‌سازد. - Boehm et al., 1995. تعريف معماري (ادامه) معماري نرم‌افزار يRك برنامRه يRا يRك سRيستم محاسRباتي سRاختار يا سRاختارهايي از سRيستم اسRت كه عناصRر نرم‌افزاري ،خصRوصيات قابل مشاهده از بيرون آن عناصر ،و ارتباطات بين آنها را شامل مي‌شود. - Clements et al., 1997. تعريف معماري (ادامه) بخشهاي مشترك در تعريف معماري معماري مولفه‌هاي اصلي را نشان مي‌دهد. معماري ارتباطات (ساختارهاي) مولفه‌ها و تعامل بين آنها را نشان مي‌دهد. معماري اطالعات محتوايي درباره مولفه‌ها را كه مربوط به تعامل آنها نباشد ،حذف مي‌كند. رفتار مولفه‌ها بخشي از معماري است. هر سيستمي داراي يك معماري است ،حتي اگر تنها از يك مولفه تشكيل شده باشد. معماري اصول پشت پرده هر مولفه و ساختار را بيان مي‌كند. تعاريف معماري نمي‌گويند يك مولفه چيست؟ معماري يك ساختار منفرد نيست .هيچ ساختار منفردي نيز معماري نيست. تعريف معماري (ادامه) معماري نرم‌افزار با موارد زير نيز سروكار دارد : وظيفه‌مندي قابليت استفاده قابليت استفاده مجدد پايداري قابليت درك قيدها و محدوديت‌هاي فن‌آوري و اقتصادي زيبايي شناسي معماري ،طراحي ،و پياده‌سازي معماري مفاد طراحي و پياده‌سازي را مشخص مي‌كند. ‏Analysis ‏Architecture ‏Design ‏Implementation ‏CODE مثالي از معماري آيا اين نمودار يك معماري است؟ Control Card Interface Cash Dispenser Keyboard Interface مثالي از معماري چه نكات مبهمي در نمودار قبل وجود داشت؟ ماهيت عناصر (فرآيند ،كالس ،شيء ،واحد ،وظيفه ،پردازنده)... ، مسووليت عناصر نوع ارتباطات (فراخوانRي ،درخواسRت ،بكارگيري ،سRيگنال ،ارسال داده ،كنترل ،زيركالس)... ، مفهوم طرح‌بندي عمليات زمان اجراي سيستم مثالي از معماري چه بخشهايي در نمودار قبل جا مانده است؟ ماهيت هر يك از عناصر چيست؟ مسووليت هر يك از عناصر چيست؟ مفهوم هر يك از ارتباطات چيست؟ مفهوم هر يك از طرح‌بندي‌ها چيست؟ جRز در مواقعRي كه مRا دقيقاً بدانيRم هRر عنصRر چيسRت و چگونRه بRا ديگRر عناصر همكاري دارد تRا يRك وظيفRه سRيستم انجام شود ،نمودار قبلRي هيRچ استفاده‌اي ندارد. نظراتي درباره معماري معماري تنها بر روي كاغذ است. معماري همان طراحي است. معماري همان زيرساخت است. معماري همان ساختار است. فن‌آوري مورد عالقه من يك معماري است. معماري نتيجه كار تنها يك معمار است. معماري مي‌تواند توسط يك نوع خروجي نمايش داده شود (تك ديدي است). معماري سخت‌افزار مقدم بر معماري نرم‌افزار است. معماري قابل ارزش‌يابي و يا اعتبارسنجي نيست. معماري يك علم است. معماري يك هنر است. چرخه كاري معماري چه مواردي بر معماري تاثير مي‌گذارند؟ چه مواردي از معماري تاثير مي‌گيرند؟ چه كساني بر معماري تاثAير دارند؟ مشتريان و كاربران نهايي نيازمنديها ( +صفات كيفيتي مثل كارايي ،قابليت نگهداشت)... ، محدوديت‌هاي بودجه‌اي محدوديت‌هاي زماني رعايت قواعد خاص سازمان مثل رعايت يك فن‌آوري خاصR سازمان توسعه موارد كاري سرمايه‌گذاري و استهالك زيرساخت‌ها كاهش هزينه‌ها ساده بودن پياده‌سازي موارد سازماني استفاده از ساختار سازماني موجود استفاده بهينه از كارمندان محيط فن‌آوري گرايش غالب امروزي (مث ً ال نرم‌افزارها تحت وب باشد) فن‌آوري موجود (مث ً ال تصRميم در اسRتفاده از يRك سRيستم متمركز يا توزيع‌شده بسRتگي بRه هزينRه پردازنده‌هRا و سRرعت خطوط ارتباطي دارد) پيش زمينه معمار معماران كارشان را بRا توجRه بRه مجموعه تجربيات گذشته‌شان انجام مي‌دهند. تجربه موفق باعث تكرار آن در معماري جديد مي‌شود. تجربه ناموفق باعث عدم استفاده از آن در معماري جديد مي‌شود. تاثيرات بر معماري معماري بر روي سازمان توسعه تاثAير دارد ساختار و منابع سازماني واحد‌هاي كاري زمانبندي بودجه اهداف سازماني تخصص در زمينه ساخت يك نوع از سيستم‌ها موفقيت در بازار ارزيابي بازار دارايي‌هاي خط توليد معماري بر روي نيازهاي مشتريان تاثAير دارد دانش مشتريان ارتقاء سيستم ،انطباق پذيري... ، معماري بر روي تجربه معمار و محيط فن‌آوري تاثير دارد ساخت يك سيستم بر روي تجربه معمار تاثير خواهد داشت. معموالً ،يRك سRيستم يRا يRك معماري بر روي محيRط فن‌آوري تاثير دارد. چرخه كاري معماري فعاليتهای چرخه كاري معماري ايجاد يک مورد کاری برای سيستم فهم نيازمنديها ايجاد يا انتخاب معماری تعامل با معماری تحليل يا ارزيابی معماری پياده سازی بر مبنای معماری حصول اطمينان از انطباق محصول با معماری ساختارها و ديدهاي معماري تعريف سRاختار يRك مجموعRه از عناصRر همگRن بRه همراه ارتباط بيRن آنهRا اسRت .براي هر ساختار مي‌توان موارد زير را مشخص كرد. نوع عناصر نوع ارتباطات مجموعه‌اي از قيدهاي نحوي معني نمودار اصول ،قواعد ،و راهبردها براي چه هدفي قابل استفاده است؟ ديRد نمايشRي از معماري نرم‌افزار بر پايRه يRك سRاختار اسRت كه توسط معمار ترسيم شده و دينفعان آن را مي‌خوانند( .نمونه‌اي از يك ساختار) معماري نرم‌افزار توسط تعدادي ديد مستند مي‌شود. چارچوب مفهومي معماري )2000 (IEEE Std. 1471- ماموريت انجام مي دهد *..1 معماري عقالنيت (منطق) حمايت مي كند دارد يك سيستم توصيف مي شود با *..1 تعيين هويت مي كند *..1 توصيف معماري ديد مدل دارد *..1 محيط مهم است براي *..1 مشخص مي كند *..1 سازمان مي يابد با *..1 جمع شده *..1 قرار دارد در صاحب نقش -ذينفع شركت مي كند در شامل *..1 تاثير دارد بر شركت مي كند در *..1 روشي را براي تبيين ايجاد مي كند انتخاب مي كند *..1 مطابق ديدگاه تبيين مي كند *..1 استفاده مي شود تا پوشش دهد *..1 انتخاب مي شود از 1 .. 0 كتابخانه ديدگاه دارد *..1 دغدغه طبقه‌بندي ساختارها .1ساختارهاي ماژول ()Module .2سRRاختارهاي مولفRRه و اتصال (& Component )Connector .3ساختارهاي تخصيص ()Allocation اين طبقه بندی ها متعامد هستند. -1ساختارهاي واحد عناصر :ماژول‌ها (واحدهاي پياده‌سازي) مشخص مي‌كند : مسووليت وظيفه‌اي ماژول‌ها ساير عناصري كه ماژول اجازه استفاده از آنها را دارد. روابط عام و خاص عمليات زمان اجرای نرم‌افزار براي اين ديد اهميتي ندارد. 1-1ساختار تجزيه عناصر :ماژول‌ها به شكل سلسله مراتبي ارتباطات :زيرواحدي از ،...به اشتراك مي‌گذارد با ... مفيد براي ... تخصيص منابع پنهان سازي اطالعات محصور‌سازي كنترل پيكربندي 1-2ساختار استفاده عناصر :ماژول‌ها ،روال‌ها ،يا منابع مربوط به واسط ماژول‌ها ارتباطات :استفاده مي‌كند از ... مفيد براي ... مهندسي گسترش 1-3ساختار اليه‌اي زيرنوعي از ساختار استفاده است. عناصر :اليه‌ها (مجموعه‌اي همگن از وظيفه‌مندي مرتبط) ارتباطات :اسRتفاده مي‌كنRد از ( ...در حالRت ايده‌آRل ،هRر اليRه تنها از اليه قبل از خود استفاده مي‌كند). مفيد براي ... ماشين مجازي 1-4ساختار كالس عناصر :كالس‌ها ارتباطات :وراثت ،نمونه‌اي از ...است مفيد براي ... طراحي شيءگرا -2ساختارهاي مولفه و ارتباط عناصRر :مولفه‌هاي زمان اجرا (واحدهاي اصRلي محاسRبه) و اتصاالت (ابزارهاي ارتباطي بين مولفه‌ها) مشخص مي‌كند: مولفه‌هاي اجرايي اصلي و چگونگي تعامل بين آنها انباره‌هاي داده مشترك اصلي چه بخشي از سيستم تكرار شده است؟ جريان داده در سيستم چه بخش‌هايي بصورت موازي مي‌توانند اجرا شود؟ ساختار سيستم در حين اجرا چگونه مي‌تواند تغيير كند؟ 2-1ساختار مشتري/خدمتگزار عناصر :مشتري ،خدمتگزار ارتباطات :ارتباط برقرار مي‌كند با ،...وابسته است به ... مفيد براي ... عمليات توزيع شده جداسازي موارد بااهميت تعادل بار 2-2ساختار پردازه عناصر :پردازه‌ها يا نخ‌ها ارتباطات :موازي اجرا مي‌شود با ،...قبل از ...اجرا مي‌شود مفيد براي ... تحليل كارايي تحليل زمانبندي 2-3ساختار توازي عناصر :نخ‌هاي منطقي ارتباطات :اجرا مي‌شود بر روي ... مفيد براي ... اتصال انشعاب 2-4ساختار داده مشترك يا انباره عناصر :انباره داده ،توليدكننده داده ،مصرف كننده داده ارتباطات :توليد داده ،مصرف داده مفيد براي ... يكپارچگي داده كارايي تغييرپذيري -3ساختارهاي تخصيص ارتباط بين نرم‌افزار را با عناصري از محيط خارجي نشان مي‌دهد. مشخص مي‌كند: پردازنده‌اي كه هر يك از عناصر نرم‌افزاري را اجرا مي‌كند. فايلي كه هر يك از عناصر نرم‌افزاري را در هنگام توسعه نگهداري مي‌كند. انتساب نرم‌افزار به تيم توسعه 3-1ساختار استقرار عناصر :نرم‌افزار ،سخت‌افزار ،و مسيرهاي ارتباطي ارتباطات :تخصيص داده شده به ،...مهاجرت به ... مفيد براي ... تحليل كارايي تحليل دسترس پذيري تحليل امنيت 3-2ساختار پياده‌سازي عناصر :هر واحد منطقي(مثل ماژول) ارتباطات :پياده‌سازي مي‌كند ... مفيد براي ... كنترل پيكربندي يكپارچه سازي فعاليت‌هاي آزمون 3-3ساختار انتساب كار عناصر :هر واحد منطقي(مثل ماژول) ارتباطات :انتساب داده مي‌شود به ... مثالي از كاربرد مديريت پروژه بهنرين استفاده از تخصص‌ها طبقه‌بندي ساختارها صفات كيفيتي طبقه‌بندي سنتي نيازمنديها وظيفه‌اي غيروظيفه‌اي يRك افسRانه متداول در نرم‌افزار :ابتدا نرم‌افزاري سRاخته شود كه نيازمنديهاي وظيفه‌اي را برآورده كنRد ،سRپس نيازمنديهاي غيروظيفه‌اي به آن افزوده يا تزريق شود. اين ايده ما را به سمت اتالف منابع و كيفيت پايين سوق مي‌دهد. بايد تمركز بر روي كيفيت را از همان ابتدا آغاز كرد (در سطح معماري) وظيفه‌مندي و معماري وظيفه‌مندي و صRفات كيفيتRي از نظRر تئوري متعامRد هستند. نمي‌توان بRا هRر سRطحي از وظيفه‌مندي بRه همRه صRفات كيفيتRي دست يافت. وظيفه‌مندي را مي‌توان به شكل‌هاي مختلف بدسRت آورد (چندان به معماري مربوط نيست) معماري قصRد دارد بRا سRازماندهي وظايRف بRه صRفات كيفيتRي دست پيدا كند. معماري و كيفيت دسRتيابي بRه كيفيRت بايRد در تمام مراحRل طراحRي (از جمله معماري)، پياده‌سازي ،و استقرار مد نظر قرار گيرد. كيفيRت هRم جنبه‌هاي مربوط بRه معماري و هRم جنبه‌هاي نامربوط به معماري دارد .مث ً ال دسترس پذيري :انتخاب از بين عناصر در برابر پشتيباني از عمل بازگشت كارايي :مقدار ارتباط بين مولفه‌ها در برابر الگRوريتم‌ها صفات كيفيتي مستقل نيستند و نبايد بصورت مجزا به آنها دست يافت. همبستگي مثبت (مثل تغييرپذيري و قابليت ساخت) همبستگي منفي (مثل قابليت اطمينان و امنيت) طبقه‌بندي صفات كيفيتي صRفات كيفيتRي سRيستمي :دسRترس‌پذيري ،تغييرپذيري ،كارايي، امنيت ،آزمون‌پذيري ،و قابليت استفاده صفات كيفيتي كاري :مث ً ال مدت زمان بازاريابي صفات كيفيتي معماري :مث ً ال يكپارچگي مفهومي طبقه‌بندي صفات كيفيتي سيستمي قابل مشاهده از طريق اجرا (مثل كارايي و امنيت) غيرقابل مشاهده از طريق اجرا (مثل تغييرپذيري و آزمون‌پذيري) ايRن دو گروه كام ً ال مسRتقل (متعامRد) هسRتند .اگرچه گروه دوم بر روي اولي تاثير غيرمستقيم دارد. صفات كيفيتي غيرقابل مشاهده نيز مهم هستند ،گاهي حتي مهم‌تر !!! صفات كيفيتي سيستمي دسترس‌پذيري (وابسته به قابليت اطمينان) تغييرپذيري (شامRل قابليRت حمRل ،قابليRت استفاده مجدد، مقياس‌پذيري) كارايي امنيت آزمون‌پذيري قابليت استفاده (شامل قابليت خود انطباقي و قابليت انطباق كاربر)

51,000 تومان