تارا فایل

پاورپوینت معماری نرم افزار های بزرگ


1
فصل 7- طراحی و مدل کردن مولفه ها
معماری نرم افزار های بزرگ

معرفی
موضوعات مورد بحث:
ساختار مولفه ها
واسطه ها
وابستگی ها
داینامیسیزم
دیدگاه های این فصل به جای تمرکز روی پراکندگی فیزیکی مولفه ها به تعاملات منطقی بین آنها می پردازند.
این دیدگاه ها برای تیمهای پیاده سازی حیاتی می باشند.

2

توسعه مولفه محور
بدلیل مزایای زیر، سیستمهای نرم افزاری بزرگ تمایل به استفاده از این روش دارند.
کاهش زمان تولید و افزایش کارایی سیستم
امکان استفاده از مولفه های پیش ساخته
امکان ساخت و تست مستقل اجزاء سیستم
کاهش ریسک و هزینه اضافه کردن و تغییر اجزاء سیستم
مخفی شدن جاگیری مولفه ها از دید سیستم
کاهش وابستگی اجزاء سیستم به هم و به زیرساخت سخت افزاری
امکان ارتقاء مستقل مولفه ها

3

تاریخچه
در قدیم: وجود خط فرمان در Unix
%cat *.cpp | grep ‘;’ | wc – 1
امروزه: مدلهای زیادی پیاده سازی شده اند که در سیستمهای توزیع شده غالباً استفاده می شوند.
COM
CORBA
Java Beans
مدل های مختلف پیاده سازی تواماً قابل استفاده اند ولی در صورت امکان از ابتدا یکی انتخاب شده و شروع به آموزش، تجربه و… پرداخته شود.

4

تعاریف
انواع مولفه ها در UML
مولفه های زمان کامپایل
مولفه های زمان لینک
مولفه های زمان اجرا
مولفه های زمان لینک و کامپایل، کتابخانه کد اشیا و فایل های اجرایی می باشند.
مولفه های زمان اجرا، نمونه های حاضر در حافظه از ساختار های زمان ساخت می باشند.
دیدگاه های معرفی شده در اینجا مولفه های زمان اجرای می باشند.

5

تعریف مولفه
مجموعه ای فیزیکی از ساخت های شیءگرا یا تابعی که کارآیی سیستم را ازطریق مکانیزم های ارتباطی مشخص شده فراهم می نماید.
شامل مجموعه ای از port و واسط ها(interface) است که ارتباط با دیگر مولفه ها از طریق آنها فراهم می شود.
به صورت برنامه اجرایی، کتابخانه های زمان اجرا یا دیگر تکنولوژی های بسته بندی زمان اجرا تحویل داده می شود.

6

خصوصیات یک مولفه
یک مولفه دارای خواص مهم زیر می باشد:
سرویس را از طریق واسط ها، درگاه ها و پروتکل های تعامل به خوبی تعریف شده در اختیار می گذارد.
حالت و رفتار هردو را encapsulate می کند.
فقط به یک زیرساخت مولفه یا سیستم عامل برای راه اندازی و ارتباط با دیگر مولفه ها وابسته است.
یک مولفه معمولاً دارای این خواص است:
به جای تولید، معمولاً خریداری می شود.
در پروسس یا رشته اجرایی مجزا اجرا می شود.
از روش های شفاف استفاده می کند.
دارای پیکربندی های متنوع است که بر رفتار آن تاثیر می گذارد.
مستقل از دیگر مولفه ها ساخته ، تست و تحویل می شود.
با مفاهیم شیءگرا ساخته می شود.
به زبان خاصی وابستگی ندارد، لذا سازگاری را تامین می کند.

7

جایگاه مولفه ها در زیر سیستم ها
هر مولفه از فقط یک زیرسیستم نشات می گیرد.
زیر سیستم هایی که در زمان ساخت موجودیت هایی را برای مولفه فراهم می کنند، زیر سیستم منشا محسوب نمی شوند.
واسط یک مولفه ، یک نمونه از واسط زیرسیستم منشا است.
مولفه های مرکب، مجموعه ای از مولفه ها را دریک مولفه منطقی گرد می آورند و امکان مدل کردن مجموعه ای از مولفه ها را در سطح بالاتری از انتزاع فراهم می کنند. این مولفه مرکب، اجتماع همه توابع و واسطهای مولفه های گروه است. از این مولفه برای ساده سازی دیدگاههای پیچیده استفاده می شود.
معمولاً یک مولفه، واحد جایگزینی برای سیستم محسوب می شود.

8

جایگاه مولفه ها در زیر سیستم ها (ادامه)
کلید موفقیت در تعریف معماری مولفه محور:
ارائه پیکربندی خوش تعریف از هر مولفه
ارائه مکانیزم های ارتباطی خوش تعریف از هر مولفه

انواع مولفه ها
مولفه های اولیه (preliminary components)
مولفه های قدیمی (legacy components)

9

ارتباطات و واسطه ها
واسط ها در UML کلاس stereotyped هستندکه با داشتن متدهایی مولفه های خارجی می توانند با فرا خواندن آن متدها با مولفه های فراهم کننده آن واسط ها ارتباط برقرار کنند.

در روش پیغام رسانی ، نوع پیغام، پروتکل حاکم و پورت ها تعریف می شوند و از طریق آنها ارتباط برقرار می شود.

10

کیفیتهای طراحی مولفه ها
چالشهای موجود:
Codependency بین مولفه ها، بنحوی که در هنگام آغاز سیستم بن بست رخ ندهد.
نسبت دادن حالت سیستم به مولفه ها. مثلاً نسبت دادن اطلاعات حالات سیستم و نگهداری مانای این اطلاعات
نگهداری مانای اطلاعات در سیستمهای توزیع شده بنحوی که کارایی را تحت تاثیر قرار ندهد.
هدف اصلی در طراحی مولفه ها:
Loosely coupling
High cohesion
11

دیدگاه مولفه
تمرکز: بر تقسیم کردن کارکرد بین مولفه ها، واسطه های بین مولفه ها و هر حالت عمومی که باید بین مولفه ها بصورت مشترک استفاده شود.
هدف: اتصال و ارتباط مولفه های زمان اجرا را توصیف می کند.
زمان بکارگیری: در طول طراحی و توسعه سیستم، زمانی که دیدهای آنالیز و زیرسیستمها مشخص شدند.
ذینفعان: تیم معماری نرم افزار، تیم مهندسی سیستم های نرم افزاری، توسعه گران، تیم تست، مدیران توسعه و مدیران پروژه
قابلیت توسعه: براساس سناریو ها یا مولفه ها. می توان از مولفه های مرکب استفاده کرد.
رابطه با دیگر دیدگاه ها: می بایست با مولفه های پروسس و تحویل نهایی(deployment) سازگار باشد.
12

ارتباط مولفه ها
این ارتباط به موارد زیر وابسته است:
ماهیت کاربرد
فراخوانی توابع از راه دور (RPC)
حجم داده ها
نوع تعاملات
سنکرون
آسنکرون
سه نوع ارتباط بین مولفه ها قابل تعریف است
از طریق واسط ها(interface)
از طریق پیغام رسانی (بدون واسطه) (messaging)
ترکیبی از دو روش بالا

13

دیدگاه مولفه ها با استفاده از واسطه ها
14

دیدگاه مولفه ها با استفاده از واسطه ها و مولفه های مرکب
15

دیدگاه مولفه ها با استفاده از پیغامها
شامل 3 جز است:
درگاه ها
پروتکل حاکم بر ارتباط
نوع پیغام
درگاه نوعی کلاس stereotyped است که ارتباطات نوع خاصی پیغام را فراهم می کند.
درگاه نوع پیغام دریافتی و ارسالی را مشخص می کند.
مکانیزم پیغام رسانی ارتباط چند جانبه بین مولفه ها را فراهم می کند.
استفاده از پیغام امکان درخواست های Asynchronous را فراهم می کند.
تفاوت اساسی این روش با روش استفاده از مولفه ها:
امکان broadcasting
عدم وجود متدها
حضور شمای پیغام و پروتکلهای ارتباطی
16

دیدگاه مولفه ها با استفاده از پیغامها (ادامه)
17

دیدگاه مولفه ها با استفاده از ترکیبی از پیغامها و واسطه ها
18

مقایسه ارتباط با روشهای پیغامها و واسطها
امکان broadcasting در روش مبتنی بر پیغامها
عدم وجود متودها در روش مبتنی بر پیغامها
وجود شمای پیغام و پروتکلهای ارتباطی در روش مبتنی بر پیغامها
Decouple بودن مولفه ها در روش مبتنی بر پیغامها

19

مقایسه ارتباط با روشهای پیغامها و واسطها (ادامه)
20

مقایسه ارتباط با روشهای پیغامها و واسطها (ادامه)
21

امکان مکانیزم حاشیه گذاری کارایی و قابلیت گسترش
22

روشهای نمود دینامیکی مولفه ها:
نمود دینامیکی زمان اجرای مولفه ها را بوسیله نمودارهای sequence و state در سطح مولفه نشان می دهد.

در زیر انواع روشهای نمود دینامیکی مولفه ها مشاهده می شود:
دیدگاه تعامل مولفه ها
دیدگاه حالت مولفه ها

23

دیدگاه تعامل مولفه ها
هدف: تایید اعتبار ساختار طراحی از طریق سیر در پویایی نرم افزار.
زمان بکارگیری: در طول عمر پروژه، ابتدا در حین تحلیل و طراحی فراهم می شود، ولی در زمان توسعه می تواند استفاده و بسط داده شود.
ذینفع ها: تیم معماری نرم افزار، تیم مهندسی سیستم های نرم افزاری، هدایت گران طراحی زیرسیستم ها، توسعه گران
قابلیت توسعه: براساس سناریو ها می توان بوسیله مولفه های مرکب آنرا توسعه داد.
رابطه با دیگر دیدگاه ها: می بایست با دیدگاه مولفه، پروسس و تحویل نهایی(deployment) سازگار باشد.

24

دیدگاه تعامل مولفه ها (ادامه)
بیشتر از نمودارهای تعامل اشیاء (object interaction) قابلیت توسعه دارد، زیرا جزئیات اشیاء نشان داده نمی شوند.

برای نمایش مولفه های خریداری شده(COTS) و سیستم های قدیمی (legacy) بسیار مناسب است.

25

دیدگاه تعامل مولفه ها (ادامه)
26

دیدگاه تعامل مولفه ها (ادامه)
27

دیدگاه حالت مولفه
دیدگاه حالت مولفه وسیله ای جهت ارائه حالات داخلی وفعالیت های یک یا چند مولفه را فراهم می آورد.
رفتار را به دو صورت می توان مستند کرد:
نمایش حالات بالقوه مولفه و انتقال بین این حالات
نمایش گردش کنترل از یک فعالیت به دیگری

28

دیدگاه حالت مولفه (ادامه)
هدف: مدل کردن حالت یک یا گروهی از مولفه ها
زمان بکارگیری: در طول عمر پروژه، ابتدا در حین تحلیل و طراحی فراهم می شود، ولی در زمان توسعه می تواند استفاده و بسط داده شود.
ذینفع ها: تیم معماری نرم افزار، تیم مهندسی سیستم های نرم افزاری، هدایت گران طراحی زیرسیستم ها، توسعه گران و تست کننده ها.
قابلیت توسعه : دیدهای مبتنی بر حالت برای یک مولفه می توانند به مولفه های مرکب توسعه پیدا کنند. دید های بر اساس فعالیت می توانند بر یک یا چند مولفه اعمال شوند.
ارتباط با دیگر دیدگاه ها: می بایست با دیدگاه های پویا ،همچنین تعریف واسط و پیغام سازگار باشند.
29

دیدگاه حالت مولفه (ادامه)
30

مدل سازی حالت توسط تغییر فعالیت ها
این دیدگاه انتقال از یک فعالیت به دیگری را برای مولفه نشان می دهد.
حالات شامل یک فعالیت می باشند و با تکمیل حالت دیگری، شروع می شوند.
می توان فعالیت های مرتبط مولفه ها مختلف را در ساختارهای swimlanes دسته بندی کرد و بدین وسیله انتقال بین فعالیت های گروهی از مولفه ها را نمایش داد.

31

مدل سازی حالت توسط تغییر فعالیت ها (ادامه)
32

خلاصه و نتیجه گیری
33
تعریف مولفه ها و نقش بسزای آنان در امر:
کاهش زمان تولید و افزایش کارایی سیستم
امکان استفاده از مولفه های پیش ساخته
کاهش وابستگی اجزاء سیستم به هم و به زیرساخت سخت افزاری
امکان ارتقاء مستقل مولفه ها
شناخت انواع روشهای ارتباطی بین مولفه ها و مقایسه آنان
لزوم استفاده از مولفه های از قبل موجود
بررسی انواع دیدگاهها در طراحی سیستمهای مولفه محور و نحوه نمایش آنها

منابع
Jeff Garland, Richard Anthony, Large-Scale Software Architecture, 2003.
34

با تشکر
؟
35


تعداد صفحات : 35 | فرمت فایل : .ppt

بلافاصله بعد از پرداخت لینک دانلود فعال می شود