معماری نرم افزار
اسلاید 1: كارگاه آموزشي معماري نرمافزار www.esoa.irدكتر فريدون شمسسيد شروين استادزادهجلسه اول
اسلاید 2: فهرست مطالب يك مثال: عمارت وينچستر مقدمهای بر معماری معماري نرمافزار چيست؟ چرخه کاری معماری ساختارها و ديدها صفات کيفيتی
اسلاید 3: يك مثال: عمارت وينچسترنمونهاي ازعدم معماري
اسلاید 4: يك مثال: عمارت وينچسترهزينه ساخت = 5/5 ميليون دلارمدت ساخت = 38 سال (از 1884 تا 1922)تعداد اطاقها = 160تعداد طبقات = 2تعداد راه پلهها = 40تعداد آسانسور = 3تعداد دربها = 467تعداد پنجرهها = 1257 (10000 قطعه شيشه)تعداد بخاري = 47تعداد دودكش = 17سيستم گرمايي = كانال بخار، هواي گرم، بخاريتعداد دربهايي كه به جايي باز نميشود = 950
اسلاید 5: يك واقعيتاگر سازههاي بلوكي و زيرساختهاي اكثر سيستمهاي نرمافزاري امروزي را با معادلهاي آنها در ساختمان جايگزين كنيم به عمارتهايي نظير عمارت وينچستر خواهيم رسيد. عمارتهايي كه هر چند هزينه و زمان زيادي صرف ساخت آنها شده است، ولي چون بر اساس معماري مشخصي بنا نشدهاند، اثربخشي لازم را ندارند.
اسلاید 6: نکاتی درباره عمارت وينچسترعدم وجود يك راهبرد مشخص
اسلاید 7: نکاتی درباره عمارت وينچسترعدم وجود يك راهبرد مشخصعدم وجود نقشه فني
اسلاید 8: نکاتی درباره عمارت وينچسترعدم وجود يك راهبرد مشخصعدم وجود نقشه فنيعدم توجه به نيازمنديهاي واقعي
اسلاید 9: نکاتی درباره عمارت وينچسترعدم وجود يك راهبرد مشخصعدم وجود نقشه فنيعدم توجه به نيازمنديهاي واقعيزمان غير معقول
اسلاید 10: نکاتی درباره عمارت وينچسترعدم وجود يك راهبرد مشخصعدم وجود نقشه فنيعدم توجه به نيازمنديهاي واقعيزمان غير معقولهزينه غير معقول
اسلاید 11: نکاتی درباره عمارت وينچسترعدم وجود يك راهبرد مشخصعدم وجود نقشه فنيعدم توجه به نيازمنديهاي واقعيزمان غير معقولهزينه غير معقولحضور نسلهاي مختلفي از سبكها و سيستمها
اسلاید 12: نکاتی درباره عمارت وينچسترعدم وجود يك راهبرد مشخصعدم وجود نقشه فنيعدم توجه به نيازمنديهاي واقعيزمان غير معقولهزينه غير معقولحضور نسلهاي مختلفي از سبكها و سيستمهاغير قابل توسعه
اسلاید 13: معماري چيست؟معماري يعني ارايه توصيفي فني از يك سيستم كه نشان دهنده ساختار اجزاء آن، ارتباط بين آنها، و اصول و قواعد حاكم بر طراحي آن، و تكامل آنها در گذر زمان باشد.
اسلاید 14: مفاهيم اوليهمقدمهاي برمعماري نرمافزار
اسلاید 15: ساخت يك لانه سگميتواند توسط يك نفر ساخته شود.نيازمنديها: كمترين مدلسازي فرآيند ساخت ساده ابزارهاي ساده
اسلاید 16: ساخت يك خانهميتواند توسط يك تيم ساخته شود.نيازمنديها: مدلسازي فرآيندهاي خوش ساخت ابزارهاي قدرتمند
اسلاید 17: ساخت يك آسمانخراش
اسلاید 18: چه زمانی معماری لازم است؟ابعاد بزرگ
اسلاید 19: چه زمانی معماری لازم است؟ابعاد بزرگپيچيدگی زياد
اسلاید 20: چه زماني معماري لازم است؟ابعاد بزرگپيچيدگی زيادنيازمندي خاص
اسلاید 21: چه زماني معماري لازم است؟ابعاد بزرگپيچيدگی زيادنيازمندي خاصطول عمر زياد
اسلاید 22: چه زماني معماري لازم است؟ابعاد بزرگپيچيدگی زيادنيازمندي خاصطول عمر زيادانعطاف پذيری در برابر تغييرات
اسلاید 23: مفاهيم اوليهمعماري نرمافزارچيست؟
اسلاید 24: تعريف معماريمعماري يعني هنر يا علم ساخت هر نوع عمارت كه مورد استفاده بشر قرار گيرد. عمل يا فرآيند ساخت كار وابسته به معماري؛ ساختار، ساخت و ساز ساختمان يا ساختار عموميسازمان كلي و ساختار مفهومي يك كامپيوتر يا يك سيستم كامپيوتري از ديد استفاده يا طراحي آن؛ يك عينيت بخش از آن- به نقل از فرهنگنامه آكسفورد
اسلاید 25: تعريف معماري (ادامه) معماري نرمافزار كاري است كه معماران نرمافزار انجام ميدهند.- Beck
اسلاید 26: تعريف معماري (ادامه) يك مجموعه از عناصر معماري (يا طراحي) كه داراي يك شكل مشخص باشند.- Perry and Wolf, 1992. يك معماري سيستم نرمافزار تشكيل شده از ... مجموعهاي از مولفهها، ارتباطات، و قيدهاي نرمافزاري و سيستمي مجموعهاي از نيازمنديهاي ذينفعان سيستم اصولي كه نشان دهد اين مولفهها، ارتباطات، و قيدها، سيستمي را تعريف ميكند كه نيازمنديهاي سهامداران را برآورده ميسازد.- Boehm et al., 1995.
اسلاید 27: تعريف معماري (ادامه) معماري نرمافزار يك برنامه يا يك سيستم محاسباتي ساختار يا ساختارهايي از سيستم است كه عناصر نرمافزاري، خصوصيات قابل مشاهده از بيرون آن عناصر، و ارتباطات بين آنها را شامل ميشود.- Clements et al., 1997.
اسلاید 28: تعريف معماري (ادامه)بخشهاي مشترك در تعريف معماري معماري مولفههاي اصلي را نشان ميدهد. معماري ارتباطات (ساختارهاي) مولفهها و تعامل بين آنها را نشان ميدهد. معماري اطلاعات محتوايي درباره مولفهها را كه مربوط به تعامل آنها نباشد، حذف ميكند. رفتار مولفهها بخشي از معماري است. هر سيستمي داراي يك معماري است، حتي اگر تنها از يك مولفه تشكيل شده باشد. معماري اصول پشت پرده هر مولفه و ساختار را بيان ميكند. تعاريف معماري نميگويند يك مولفه چيست؟ معماري يك ساختار منفرد نيست. هيچ ساختار منفردي نيز معماري نيست.
اسلاید 29: تعريف معماري (ادامه) معماري نرمافزار با موارد زير نيز سروكار دارد : وظيفهمندي قابليت استفاده قابليت استفاده مجدد پايداري قابليت درك قيدها و محدوديتهاي فنآوري و اقتصادي زيبايي شناسي
اسلاید 30: معماري، طراحي، و پيادهسازي معماري مفاد طراحي و پيادهسازي را مشخص ميكند.CODEImplementation DesignArchitectureAnalysis
اسلاید 31: مثالي از معماريآيا اين نمودار يك معماري است؟ControlKeyboardInterfaceCash DispenserCardInterface
اسلاید 32: مثالي از معماريچه نكات مبهمي در نمودار قبل وجود داشت؟ ماهيت عناصر (فرآيند، كلاس، شيء، واحد، وظيفه، پردازنده، ...) مسووليت عناصر نوع ارتباطات (فراخواني، درخواست، بكارگيري، سيگنال، ارسال داده، كنترل، زيركلاس، ...) مفهوم طرحبندي عمليات زمان اجراي سيستم
اسلاید 33: مثالي از معماريچه بخشهايي در نمودار قبل جا مانده است؟ ماهيت هر يك از عناصر چيست؟ مسووليت هر يك از عناصر چيست؟ مفهوم هر يك از ارتباطات چيست؟ مفهوم هر يك از طرحبنديها چيست؟ جز در مواقعي كه ما دقيقاً بدانيم هر عنصر چيست و چگونه با ديگر عناصر همكاري دارد تا يك وظيفه سيستم انجام شود، نمودار قبلي هيچ استفادهاي ندارد.
اسلاید 34: نظراتي درباره معماري معماري تنها بر روي كاغذ است. معماري همان طراحي است. معماري همان زيرساخت است. معماري همان ساختار است. فنآوري مورد علاقه من يك معماري است. معماري نتيجه كار تنها يك معمار است. معماري ميتواند توسط يك نوع خروجي نمايش داده شود (تك ديدي است). معماري سختافزار مقدم بر معماري نرمافزار است. معماري قابل ارزشيابي و يا اعتبارسنجي نيست. معماري يك علم است. معماري يك هنر است.
اسلاید 35: چرخه كاري معماريچه مواردي بر معماري تاثير ميگذارند؟چه مواردي از معماري تاثير ميگيرند؟
اسلاید 36: چه كساني بر معماري تاثير دارند؟
اسلاید 37: مشتريان و كاربران نهايي نيازمنديها (+ صفات كيفيتي مثل كارايي، قابليت نگهداشت، ...) محدوديتهاي بودجهاي محدوديتهاي زماني رعايت قواعد خاص سازمان مثل رعايت يك فنآوري خاص
اسلاید 38: سازمان توسعه موارد كاري سرمايهگذاري و استهلاك زيرساختها كاهش هزينهها ساده بودن پيادهسازي موارد سازماني استفاده از ساختار سازماني موجود استفاده بهينه از كارمندان
اسلاید 39: محيط فنآوري گرايش غالب امروزي (مثلاً نرمافزارها تحت وب باشد) فنآوري موجود (مثلاً تصميم در استفاده از يك سيستم متمركز يا توزيعشده بستگي به هزينه پردازندهها و سرعت خطوط ارتباطي دارد)
اسلاید 40: پيش زمينه معمار معماران كارشان را با توجه به مجموعه تجربيات گذشتهشان انجام ميدهند. تجربه موفق باعث تكرار آن در معماري جديد ميشود. تجربه ناموفق باعث عدم استفاده از آن در معماري جديد ميشود.
اسلاید 41: تاثيرات بر معماري
اسلاید 42: معماري بر روي سازمان توسعه تاثير دارد ساختار و منابع سازماني واحدهاي كاري زمانبندي بودجه اهداف سازماني تخصص در زمينه ساخت يك نوع از سيستمها موفقيت در بازار ارزيابي بازار داراييهاي خط توليد
اسلاید 43: معماري بر روي نيازهاي مشتريان تاثير دارد دانش مشتريان ارتقاء سيستم، انطباق پذيري، ...
اسلاید 44: معماري بر روي تجربه معمار و محيط فنآوري تاثير دارد ساخت يك سيستم بر روي تجربه معمار تاثير خواهد داشت. معمولاً، يك سيستم يا يك معماري بر روي محيط فنآوري تاثير دارد.
اسلاید 45: چرخه كاري معماري
اسلاید 46: فعاليتهای چرخه كاري معماريايجاد يک مورد کاری برای سيستمفهم نيازمنديهاايجاد يا انتخاب معماریتعامل با معماریتحليل يا ارزيابی معماریپياده سازی بر مبنای معماریحصول اطمينان از انطباق محصول با معماری
اسلاید 47: ساختارها و ديدهاي معماري
اسلاید 48: تعريف ساختار يك مجموعه از عناصر همگن به همراه ارتباط بين آنها است. براي هر ساختار ميتوان موارد زير را مشخص كرد. نوع عناصر نوع ارتباطات مجموعهاي از قيدهاي نحوي معني نمودار اصول، قواعد، و راهبردها براي چه هدفي قابل استفاده است؟ ديد نمايشي از معماري نرمافزار بر پايه يك ساختار است كه توسط معمار ترسيم شده و دينفعان آن را ميخوانند. (نمونهاي از يك ساختار) معماري نرمافزار توسط تعدادي ديد مستند ميشود.
اسلاید 49: چارچوب مفهومي معماري (IEEE Std. 1471-2000)ماموريتسيستممحيطمعماريصاحب نقش- ذينفعتوصيف معماريعقلانيت(منطق)دغدغه ديدگاهديدكتابخانهديدگاهمدلانجام مي دهد 1..*تاثير دارد برقرار دارد دردارد 1..*دارد يكمهم است براي 1..*تعيين هويت مي كند 1..*توصيف مي شود با 1..*حمايت مي كند شركت مي كند درجمع شده 1..*شركت مي كند در1..*شامل 1..*مشخص مي كند1..*سازمان مي يابد با 1..*انتخاب مي كند1..*مطابقانتخاب مي شود از 0 .. 1روشي را براي تبيين ايجاد مي كنداستفاده مي شود تا پوشش دهد 1..*دارد1..*تبيين مي كند1..*
اسلاید 50: طبقهبندي ساختارها ساختارهاي ماژول (Module) ساختارهاي مولفه و اتصال (Component & Connector) ساختارهاي تخصيص (Allocation)اين طبقه بندی ها متعامد هستند.
اسلاید 51: 1- ساختارهاي واحد عناصر: ماژولها (واحدهاي پيادهسازي) مشخص ميكند : مسووليت وظيفهاي ماژولها ساير عناصري كه ماژول اجازه استفاده از آنها را دارد. روابط عام و خاص عمليات زمان اجرای نرمافزار براي اين ديد اهميتي ندارد.
اسلاید 52: 1-1 ساختار تجزيه عناصر: ماژولها به شكل سلسله مراتبي ارتباطات: زيرواحدي از ...، به اشتراك ميگذارد با ... مفيد براي ... تخصيص منابع پنهان سازي اطلاعات محصورسازي كنترل پيكربندي
اسلاید 53: 1-2 ساختار استفاده عناصر: ماژولها، روالها، يا منابع مربوط به واسط ماژولها ارتباطات: استفاده ميكند از ... مفيد براي ... مهندسي گسترش
اسلاید 54: 1-3 ساختار لايهاي زيرنوعي از ساختار استفاده است. عناصر: لايهها (مجموعهاي همگن از وظيفهمندي مرتبط) ارتباطات: استفاده ميكند از ... (در حالت ايدهآل، هر لايه تنها از لايه قبل از خود استفاده ميكند). مفيد براي ... ماشين مجازي
اسلاید 55: 1-4 ساختار كلاس عناصر: كلاسها ارتباطات: وراثت، نمونهاي از ... است مفيد براي ... طراحي شيءگرا
اسلاید 56: 2- ساختارهاي مولفه و ارتباط عناصر: مولفههاي زمان اجرا (واحدهاي اصلي محاسبه) و اتصالات (ابزارهاي ارتباطي بين مولفهها) مشخص ميكند: مولفههاي اجرايي اصلي و چگونگي تعامل بين آنها انبارههاي داده مشترك اصلي چه بخشي از سيستم تكرار شده است؟ جريان داده در سيستم چه بخشهايي بصورت موازي ميتوانند اجرا شود؟ ساختار سيستم در حين اجرا چگونه ميتواند تغيير كند؟
اسلاید 57: 2-1 ساختار مشتري/خدمتگزار عناصر: مشتري، خدمتگزار ارتباطات: ارتباط برقرار ميكند با ...، وابسته است به ... مفيد براي ... عمليات توزيع شده جداسازي موارد بااهميت تعادل بار
اسلاید 58: 2-2 ساختار پردازه عناصر: پردازهها يا نخها ارتباطات: موازي اجرا ميشود با ...، قبل از ... اجرا ميشود مفيد براي ... تحليل كارايي تحليل زمانبندي
اسلاید 59: 2-3 ساختار توازي عناصر: نخهاي منطقي ارتباطات: اجرا ميشود بر روي ... مفيد براي ... اتصال انشعاب
اسلاید 60: 2-4 ساختار داده مشترك يا انباره عناصر: انباره داده، توليدكننده داده، مصرف كننده داده ارتباطات: توليد داده، مصرف داده مفيد براي ... يكپارچگي داده كارايي تغييرپذيري
اسلاید 61: 3- ساختارهاي تخصيص ارتباط بين نرمافزار را با عناصري از محيط خارجي نشان ميدهد. مشخص ميكند: پردازندهاي كه هر يك از عناصر نرمافزاري را اجرا ميكند. فايلي كه هر يك از عناصر نرمافزاري را در هنگام توسعه نگهداري ميكند. انتساب نرمافزار به تيم توسعه
اسلاید 62: 3-1 ساختار استقرار عناصر: نرمافزار، سختافزار، و مسيرهاي ارتباطي ارتباطات: تخصيص داده شده به ...، مهاجرت به ... مفيد براي ... تحليل كارايي تحليل دسترس پذيري تحليل امنيت
اسلاید 63: 3-2 ساختار پيادهسازي عناصر: هر واحد منطقي(مثل ماژول) ارتباطات: پيادهسازي ميكند ... مفيد براي ... كنترل پيكربندي يكپارچه سازي فعاليتهاي آزمون
اسلاید 64: 3-3 ساختار انتساب كار عناصر: هر واحد منطقي(مثل ماژول) ارتباطات: انتساب داده ميشود به ... مثالي از كاربرد مديريت پروژه بهنرين استفاده از تخصصها
اسلاید 65: طبقهبندي ساختارها
اسلاید 66: صفات كيفيتي
اسلاید 67: طبقهبندي سنتي نيازمنديها وظيفهاي غيروظيفهاي يك افسانه متداول در نرمافزار: ابتدا نرمافزاري ساخته شود كه نيازمنديهاي وظيفهاي را برآورده كند، سپس نيازمنديهاي غيروظيفهاي به آن افزوده يا تزريق شود. اين ايده ما را به سمت اتلاف منابع و كيفيت پايين سوق ميدهد. بايد تمركز بر روي كيفيت را از همان ابتدا آغاز كرد (در سطح معماري)
اسلاید 68: وظيفهمندي و معماري وظيفهمندي و صفات كيفيتي از نظر تئوري متعامد هستند. نميتوان با هر سطحي از وظيفهمندي به همه صفات كيفيتي دست يافت. وظيفهمندي را ميتوان به شكلهاي مختلف بدست آورد (چندان به معماري مربوط نيست) معماري قصد دارد با سازماندهي وظايف به صفات كيفيتي دست پيدا كند.
اسلاید 69: معماري و كيفيت دستيابي به كيفيت بايد در تمام مراحل طراحي (از جمله معماري)، پيادهسازي، و استقرار مد نظر قرار گيرد. كيفيت هم جنبههاي مربوط به معماري و هم جنبههاي نامربوط به معماري دارد. مثلاً دسترس پذيري: انتخاب از بين عناصر در برابر پشتيباني از عمل بازگشت كارايي: مقدار ارتباط بين مولفهها در برابر الگوريتمها صفات كيفيتي مستقل نيستند و نبايد بصورت مجزا به آنها دست يافت. همبستگي مثبت (مثل تغييرپذيري و قابليت ساخت) همبستگي منفي (مثل قابليت اطمينان و امنيت)
اسلاید 70: طبقهبندي صفات كيفيتي صفات كيفيتي سيستمي: دسترسپذيري، تغييرپذيري، كارايي، امنيت، آزمونپذيري، و قابليت استفاده صفات كيفيتي كاري: مثلاً مدت زمان بازاريابي صفات كيفيتي معماري: مثلاً يكپارچگي مفهومي
اسلاید 71: طبقهبندي صفات كيفيتي سيستمي قابل مشاهده از طريق اجرا (مثل كارايي و امنيت) غيرقابل مشاهده از طريق اجرا (مثل تغييرپذيري و آزمونپذيري) اين دو گروه كاملاً مستقل (متعامد) هستند . اگرچه گروه دوم بر روي اولي تاثير غيرمستقيم دارد. صفات كيفيتي غيرقابل مشاهده نيز مهم هستند، گاهي حتي مهمتر !!!
اسلاید 72: صفات كيفيتي سيستمي دسترسپذيري (وابسته به قابليت اطمينان) تغييرپذيري (شامل قابليت حمل، قابليت استفاده مجدد، مقياسپذيري) كارايي امنيت آزمونپذيري قابليت استفاده (شامل قابليت خود انطباقي و قابليت انطباق كاربر)
نقد و بررسی ها
هیچ نظری برای این پاورپوینت نوشته نشده است.