ارائه درس معماری سیستم های بزرگ
اسلاید 1: ارائه درس معماری سیستم های بزرگنفیسه فرامرزیاستاد درس:آقای دکتر عبدالله زاده
اسلاید 2: عنوان فصل: طراحی زیرسیستمفهرست مطالبواژگانمدل کردن زیرسیستم ها، واسط ها و لایه هانگاشتن زیرسیستم ها و لایه ها به پیاده سازی2Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 3: مقدمهپیشنهاد Fowler : استفاده از Package هاپیشنهاد بهتر: استفاده از زیرسیستم هاتقسيم بندي کلاس ها به صورت زيرسيستم و مديريت وابستگي هاي بين آنها: از موارد کليدي مورد توجه معمار3Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 4: ادامهزيرسيستم ها : تعریف ساختار سيستم، واسط ها و وابستگي ها در زمان طراحي يا ساختViewpoint هاي مربوط به زيرسيستم : اطلاعاتي در مورد سيستم در زمان ساخت و وابستگي هاي سازمانيمهم براي تيم هاي پياده سازي تهیه ی مستندات ساختار ايستاي نرم افزار 4Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 5: واژگانPackage با توجه به UML User’s Guaide : مجموعه اي از المان هاي مدل المان ها کلاس ها، واسط ها، component ها، همکاري (collaboration)، موارد کاربرد و ديگر package ها حذف المان های داخل package در صورت حذف آنالمان هاي قابل ديدن: کلاس هاي واسط داخل package5Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 6: ادامهسیستم : یک package داراي sterotypeزيرسيستم: بخشي از سيستم، يک package داراي sterotype اطمينان از قابليت نگهداري سيستم:cohesion بالا و coupling پايين بین زیرسیستم هاcoupling نامناسب : تيم هاي توسعه زمان و کار غير لازمي را صرف مذاکره، توسعه و تحويل واسط ها بين زيرسيستم ها خواهند کرد.اهمیت زیرسیستم: محصولات کار طراحي در اين سطح به تيم هاي توسعه داده ميشود.6Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 7: خصوصیات زیرسیستمزیرسیستم:سطح پايين ترين موجوديت هايي که معمار نرم افزار واسط هاي انها را مديريت ميکندواحد توليد مستندات طراحيامکان دادن چند زيرسيستم به يک تيم دادهلزوم طراحي، ايجاد و به صورت جداگانه واحدهاي اجراي تست و ايجاد test suit هاي اتوماتيک واحد تحويل براي مستندات، کد منبع، گزارش هاي تست و ديگر محصولاتامکان در نظر گرفتن یک زیرسیستم بزرگ و پیچیده به عنوان یک سیستم7Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 8: لایه هايک تکنيک ديگر براي داشتنن دید مجرد از سيستمتقسیم عملکرد سيستم به چند گروه وابستگي عملکرد لايه هاي بالاتر به عملکرد لايه هاي پايين ترانواع لايه بنديstrict layering relaxed layering وراثت بين لايه ها8Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 9: ادامه9Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 10: ادامهنتايج عملي لايه بنديافزایش قابليت حمل نرم افزار اجتناب از ساختن لايه هاي پاييني در صورت عدم تغييربرقراري ارتباط آسانتر با حذف جزئيات 10Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 11: مدل کردن زيرسيستم ها، واسط ها و لايه هازيرسيستم ها و لايه ها : دو ابزار اساسي براي سازماندهي سيستم هاي بزرگ در بخش هاي کوچکتر و قابل مديريت تقسيم نرم افزار: ايجاد وابستگي بين زيرسيستم ها مديريت وابستگي ها و ايجاد واسط ها: از وظايف اساسي ايجاد معماري اهميت مديريت وابستگي ها : تاثیر مستقيم بر قابليت تغيير و قابليت تست نرم افزار 11Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 12: ادامهسيستمی با تعداد زيادي زيرسيستم وابسته به هم به سرعت غيرقابل تغيير مي شودنياز به ساخت و تست مجدد تمام زیرسيستم ها با ايجاد هر تغيير سخت شدن فرايند مذاکره در مورد تغيير واسط زيرسيستم ها و component ها سيستم فاقد زيرسيستم هاي وابسته به هم تغییر بسيار آسانتر محلی بودن تاثير تغييرات جابه جا کردن کلاس ها و توابع بين زيرسيستم ها و تعيين مکان مناسب براي آنها حياتي ترين وظيفه ي تيم معماري است.12Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 13: Subsystem interface dependency viewpoint ابزارهاي لازم براي ثبت، کاوش و مديريت وابستگي ها در کل سيستم را فراهم ميکند.13Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 14: ادامه14Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 15: ادامه - اضافه کردن واسط ها15Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 16: توسعه ي Subsystem dependency View با لايه ها 16Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 17: ادامهاطلاعاتي در مورد ساختار سيستم در ارتباط با يک زيرسيستم خاص کمک لايه ها به حذف جزئيات در View هاي پيچيده کاهش سطح اطلاعات حذف وابستگي هاي واسط حذف جزئيات وابستگي زیرسيستم هاي لايه ي بالا به زيرسيستم هاي لايه ي پايينايجاد و نگهداري آسانتر مدل17Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 18: Subsystem dependency View با لایه ها و تمرکز بر یک مورد کاربرد18Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 19: وابستگي هاي سطح بالا Top-level Dependenciesترکيب يک مجموعه از view هاي متمرکز بر زيرسيستم ها: يک نسخه ي سطح بالا از Subsystem interface dependency view حذف زيرسيستم هاي زيرساختي و off-the-shelf هدف: توصيف واسط هاي سازماني امکان مخابره ي مرز تيم هاي توسعهامکان مخابره و مذاکره ي واسط هاي بين تيم هاي توسعه امکان برقراري ارتباط با مديران پروژه 19Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 20: 20Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 21: Layered Subsystem viewpoint مستندات معماري قديمي معمولا يک view ي لايه اي از سيستم وجود داردفهم آسان براي افراد معموليبه صورت هماهنگ رسم نمی شود اطلاعات فني قابل توجهي را در مورد معماري منتقل نمي کنند. Layered Subsystem viewpoint اضافه کردن مفاهيم وابستگي را براي تيم هاي فني به اين نمودار سنتيحفظ قابليت فهم آسان 21Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 22: ادامهنمونه ای از مفاهیم وابستگی اضافه شدهلایه بندی های formal و relaxedمهم برای تیم های توسعه و معماری سیستم های بسیار بزرگ که از زیرساخت های مشترک استفاده می کنند: لایه بندی relaxed سیستم های کوچک یا با زمینه ی کاری محدود: لایه بندی formalوابستگی بین زیرسیستم های یک لایه؟به نحوه ی تعریف لایه ها بستگی دارد22Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 23: ادامه سازماندهي زيرسيستم ها در لايه ها نشان دادن کل معماري در يک Viewنسخه ي تطبيق يافته ي Subsystem interface dependency view لايه بندي و حذف جزئيات فراهم کردن يک view ي کلي از معماري يک سيستم بزرگ 23Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 24: 24Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 25: ادامه25Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 26: ادامهارائه ی جنبه اي حياتي از معماري نرم افزار براي توسعه دهندگان نرم افزار به صورت مختصر: وابستگي هاي زمان ساخت. بستگي زيرسيستم هاي لايه هاي بالا به زيرسيستم هاي لايه هاي پايين به عنوان يک بازنمايي اساسي از طراحي و معماري سيستم نرم افزاري در زمان ساخت به کار مي رود نسخه هاي توسعه يافته از اين view را ميتوان براي انتقال جنبه هاي مختلفي از سيستم براي stakeholder هاي متفاوت به کار برد. 26Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 27: 27Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 28: نگاشتن زيرسيستم ها و لايه ها به پياده سازيپيشنهاد: نگاشتن مستقيم لايه ها و زيرسيستم ها به ساختار پياده سازي زمان ساخت پروژه يک زيرسيستم در طراحي : زيردايرکتوري با همان نام در دايرکتوري منبع دايرکتوري يک زیرسيستم شامل چند دايرکتوري براي مديريت محصولات توسعه ي زيرسيستم کد منبع تست هاي زيرسيستم مستندات لايه ها در معماري: به صورت دايرکتوري در پياده سازي 28Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 29: ادامهپيشنهاد: نشان دادن معماري زيرسيستم ها به طور مستقيم در کد منبع بهترين راه استفاده از مسيرهاي include منطبق بر معماري لايه ها و زيرسيستم ها براي دسترسي به کلاس date در زيرسيستم date-time از لايه ي foundation در يک ماژول C++#include “foundation/date-time/date.hpp”29Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 30: ادامهفايده: انعکاس معماري سيستم در کد منبع کمک در يادگيري سازماندهي کل سيستم به پياده سازي کنندگان مشکل: تاثیر بر مقدار زیادی از کد در صورت تغيير سازماندهي سيستم (مثلا تغيير نام يک Package) روش ديگر: حذف جزئيات از کد منبع سيستم ساخت موظف به مديريت مسيرهاي include استبرنامه نويس تنها #include “date.hpp” را مي نويسد.کوتاهتر و انتقال اطلاعات بسيار کمتر30Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 31: زيرسيستم ها و component هاامکان ایجاد view هايي شامل زيرسيستم ها و component ها در UML پيشنهاد: عکس اين مطلب تعريف component : نمونه هاي زمان اجرا زيرسيستم ها : يک روش ساختار دادن به سيستم در زمان ساخت تنها رابطه ي معني دار: يک زيرسيستم يک component را مي سازدهر component يک زيرسيستم متناظر دارد که به آن زيرسيستم مبدا يا “subsystem of origin” گفته مي شود31Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 32: ادامهComponent در زيرسيستم مبدا نيست نتيجه اي از ساخت، نصب و اجراي آن زيرسيستم برای توصیف مفاهيم زمان ساخت و زمان اجرا تنها با component ها component هاي زمان ساخت componentهاي زمان اجرا را با يک نام يک زيرسيستم مي تواند چندين component را بسازد32Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 33: ادامه33Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
اسلاید 34: منابعJeff Garland, Richard Anthony, Chapter 6 of Book entitled “Large-Scale Software Architecture”. Recommended ReadingHofmeister et al. (1999)Buschmann (1996)Doug Smith (2000)Lakos (1996)34Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr. Abdollahzadeh
نقد و بررسی ها
هیچ نظری برای این پاورپوینت نوشته نشده است.