Upload
claudia-becker
View
46
Download
0
Embed Size (px)
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