ارائه درس معماری سیستم های بزرگ

Preview:

DESCRIPTION

ارائه درس معماری سیستم های بزرگ. نفیسه فرامرزی استاد درس: آقای دکتر عبدالله زاده. عنوان فصل: طراحی زیرسیستم. فهرست مطالب واژگان مدل کردن زیرسیستم ها، واسط ها و لایه ها نگاشتن زیرسیستم ها و لایه ها به پیاده سازی. مقدمه. پیشنهاد Fowler : استفاده از Package ها - PowerPoint PPT Presentation

Citation preview

ارائه درس معماری سیستم های بزرگ

نفیسه فرامرزی

:استاد درسآقای دکتر عبدالله زاده

عنوان فصل: طراحی زیرسیستم

فهرست مطالبواژگان

مدل کردن زیرسیستم ها، واسط ها و الیه

ها

نگاشتن زیرسیستم ها و الیه ها به پیاده

سازی2

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

مقدمه

پیشنهادFowler استفاده از : Packageها

پیشنهاد بهتر: استفاده از زیرسیستم ها

تقسيم بندي کالس ها به صورت زيرسيستم و

مديريت وابستگي هاي بين آنها: از موارد کليدي

مورد توجه معمار3

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

ادامه

زيرسيستم ها : تعریف ساختار سيستم، واسط ها و

وابستگي ها در زمان طراحي يا ساخت

Viewpoint هاي مربوط به زيرسيستم : اطالعاتي در

مورد سيستم در زمان ساخت و وابستگي هاي

سازماني

مهم براي تيم هاي پياده سازي

تهیه ی مستندات ساختار ايستاي نرم افزار4

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

واژگان

Package با توجه به UML User’s Guaide :

مجموعه اي از المان هاي مدل ‹

ها، همکاري componentالمان ها کالس ها، واسط ها، ‹

(collaboration) موارد کاربرد و ديگر ،package ها

در صورت حذف آنpackageحذف المان های داخل ‹

packageالمان هاي قابل ديدن: کالس هاي واسط داخل ‹5

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

ادامه

سیستم : یکpackage داراي sterotype

زيرسيستم: بخشي از سيستم، يکpackage داراي sterotype

:اطمينان از قابليت نگهداري سيستم

›cohesion باال و couplingپايين بین زیرسیستم ها

›coupling نامناسب : تيم هاي توسعه زمان و کار غير الزمي را صرف

مذاکره، توسعه و تحويل واسط ها بين زيرسيستم ها خواهند کرد.

اهمیت زیرسیستم: محصوالت کار طراحي در اين سطح به

تيم هاي توسعه داده ميشود.6

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

خصوصیات زیرسیستم

زیرسیستم:

سطح پايين ترين موجوديت هايي که معمار نرم افزار واسط هاي انها ‹

را مديريت ميکند

واحد توليد مستندات طراحي‹

امکان دادن چند زيرسيستم به يک تيم داده‹

لزوم طراحي، ايجاد و به صورت جداگانه ‹

هاي اتوماتيک test suitواحدهاي اجراي تست و ايجاد ‹

واحد تحويل براي مستندات، کد منبع، گزارش هاي تست و ديگر ‹

محصوالت

امکان در نظر گرفتن یک زیرسیستم بزرگ و پیچیده به عنوان یک ‹

سیستم

7

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

الیه ها

يک تکنيک ديگر براي داشتنن دید مجرد از سيستم

تقسیم عملکرد سيستم به چند گروه

وابستگي عملکرد اليه هاي باالتر به عملکرد اليه هاي پايين

تر

انواع اليه بندي›strict layering

› relaxed layering

وراثت بين اليه ها‹8

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

ادامه

9

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

ادامه

نتايج عملي اليه بندي

افزایش قابليت حمل نرم افزار ‹

اجتناب از ساختن اليه هاي پاييني در صورت عدم تغيير‹

برقراري ارتباط آسانتر با حذف جزئيات ‹

10

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

مدل کردن زيرسيستم ها، واسط ها و اليه ها

زيرسيستم ها و اليه ها : دو ابزار اساسي براي

سازماندهي سيستم هاي بزرگ در بخش هاي

کوچکتر و قابل مديريت

تقسيم نرم افزار: ايجاد وابستگي بين زيرسيستم ها

مديريت وابستگي ها و ايجاد واسط ها: از وظايف

اساسي ايجاد معماري

اهميت مديريت وابستگي ها : تاثیر مستقيم بر

قابليت تغيير و قابليت تست نرم افزار 11

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

ادامه

سيستمی با تعداد زيادي زيرسيستم وابسته به هم به سرعت غيرقابل تغيير مي شود‹نياز به ساخت و تست مجدد تمام زیرسيستم ها با ايجاد هر ‹

تغيير سخت شدن فرايند مذاکره در مورد تغيير واسط زيرسيستم ها ‹

ها componentو سيستم فاقد زيرسيستم هاي وابسته به هم

تغییر بسيار آسانتر ‹محلی بودن تاثير تغييرات‹

جابه جا کردن کالس ها و توابع بين زيرسيستم ها و تعيين مکان مناسب براي آنها حياتي ترين وظيفه ي تيم معماري

است. 12

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

Subsystem interface dependency viewpoint

ابزارهاي الزم براي ثبت، کاوش و مديريت وابستگي ها در کل سيستم را فراهم ميکند.

13

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

ادامه

14

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

ادامه - اضافه کردن واسط ها

15

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

با اليه ها Subsystem dependency Viewتوسعه ي

16

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

ادامه

اطالعاتي در مورد ساختار سيستم در ارتباط با يک زيرسيستم

خاص

کمک اليه ها به حذف جزئيات درView هاي پيچيده

کاهش سطح اطالعات

حذف وابستگي هاي واسط

حذف جزئيات وابستگي زیرسيستم هاي اليه ي باال به

زيرسيستم هاي اليه ي پايين

ايجاد و نگهداري آسانتر مدل17

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

Subsystem dependency View با الیه ها وتمرکز بر یک مورد کاربرد

18

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

Top-levelوابستگي هاي سطح باال Dependencies

ترکيب يک مجموعه ازview هاي متمرکز بر زيرسيستم ها: يک

Subsystem interface dependency viewنسخه ي سطح باال از

حذف زيرسيستم هاي زيرساختي وoff-the-shelf

هدف: توصيف واسط هاي سازماني

امکان مخابره ي مرز تيم هاي توسعه

امکان مخابره و مذاکره ي واسط هاي بين تيم هاي توسعه

امکان برقراري ارتباط با مديران پروژه

19

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

20

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

Layered Subsystem viewpoint

مستندات معماري قديمي

ي اليه اي از سيستم وجود داردview معموال يک ‹

فهم آسان براي افراد معمولي‹

به صورت هماهنگ رسم نمی شود‹

اطالعات فني قابل توجهي را در مورد معماري منتقل نمي کنند. ‹

Layered Subsystem viewpoint

اضافه کردن مفاهيم وابستگي را براي تيم هاي فني به اين نمودار ‹

سنتي

حفظ قابليت فهم آسان ‹21

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

ادامه

نمونه ای از مفاهیم وابستگی اضافه شده

relaxed و formalالیه بندی های ‹

مهم برای تیم های توسعه و معماری‹

سیستم های بسیار بزرگ که از زیرساخت های مشترک استفاده

relaxedمی کنند: الیه بندی

سیستم های کوچک یا با زمینه ی کاری محدود: الیه بندی formal

وابستگی بین زیرسیستم های یک الیه؟

به نحوه ی تعریف الیه ها بستگی دارد‹

22

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

ادامه

سازماندهي زيرسيستم ها در اليه ها

نشان دادن کل معماري در يکView

نسخه ي تطبيق يافته يSubsystem interface

dependency view

اليه بندي و حذف جزئيات

فراهم کردن يک view ي کلي از معماري يک

23سيستم بزرگ

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

24

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

ادامه

25

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

ادامه

ارائه ی جنبه اي حياتي از معماري نرم افزار براي توسعه

دهندگان نرم افزار به صورت مختصر: وابستگي هاي زمان

ساخت.

بستگي زيرسيستم هاي اليه هاي باال به زيرسيستم هاي اليه

هاي پايين

به عنوان يک بازنمايي اساسي از طراحي و معماري سيستم

نرم افزاري در زمان ساخت به کار مي رود

نسخه هاي توسعه يافته از اين view را ميتوان براي انتقال

هاي متفاوت stakeholderجنبه هاي مختلفي از سيستم براي

به کار برد.

26

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

27

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

نگاشتن زيرسيستم ها و اليه ها به پياده سازي

پيشنهاد: نگاشتن مستقيم اليه ها و زيرسيستم ها به ساختار پياده سازي

زمان ساخت پروژه

يک زيرسيستم در طراحي : زيردايرکتوري با همان نام در دايرکتوري منبع

دايرکتوري يک زیرسيستم شامل چند دايرکتوري براي مديريت محصوالت

توسعه ي زيرسيستم

کد منبع‹

تست هاي زيرسيستم ‹

مستندات ‹

اليه ها در معماري: به صورت دايرکتوري در پياده سازي

28

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

ادامه

پيشنهاد: نشان دادن معماري زيرسيستم ها به طور

مستقيم در کد منبع

بهترين راه استفاده از مسيرهاي include منطبق بر

معماري اليه ها و زيرسيستم ها

براي دسترسي به کالسdate در زيرسيستم date-

time از اليه ي foundation در يک ماژول C++

#include “foundation/date-time/date.hpp”29

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

ادامه

فايده: انعکاس معماري سيستم در کد منبع

کمک در يادگيري سازماندهي کل سيستم به پياده سازي کنندگان ‹

مشکل: تاثیر بر مقدار زیادی از کد در صورت تغيير

( Packageسازماندهي سيستم )مثال تغيير نام يک ‹

روش ديگر: حذف جزئيات از کد منبع

استincludeسيستم ساخت موظف به مديريت مسيرهاي ‹

را مي نويسد.” include “date.hpp#برنامه نويس تنها ‹

کوتاهتر و انتقال اطالعات بسيار کمتر‹30

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

هاcomponentزيرسيستم ها و

امکان ایجادview هايي شامل زيرسيستم ها و component ها در

UML

پيشنهاد: عکس اين مطلب

تعريفcomponent نمونه هاي زمان اجرا :

زيرسيستم ها : يک روش ساختار دادن به سيستم در زمان ساخت

تنها رابطه ي معني دار: يک زيرسيستم يکcomponentرا مي سازد

هرcomponent يک زيرسيستم متناظر دارد که به آن "زيرسيستم

گفته مي شود” subsystem of origin“مبدا" يا

31

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

ادامه

Componentدر زيرسيستم مبدا نيست

نتيجه اي از ساخت، نصب و اجراي آن زيرسيستم

برای توصیف مفاهيم زمان ساخت و زمان اجرا تنها با

component ها

› componentهاي زمان ساخت

› component هاي زمان اجرا را با يک نام

يک زيرسيستم مي تواند چندينcomponentرا بسازد 32

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

ادامه

33

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh

منابع

Jeff Garland, Richard Anthony, Chapter 6 of Book

entitled “Large-Scale Software Architecture”.

Recommended Reading

› Hofmeister et al. )1999(

› Buschmann )1996(

› Doug Smith )2000(

› Lakos )1996(

34

Amirkabir University of Technology, Computer Engineering Faculty, Large Scale Software Architecture Course, Dr.

Abdollahzadeh