Professional Documents
Culture Documents
▪ طراحی معماری عبارتند از درک چگونگی سازماندهی سیستم و طراحی ساختار کلی سیستم است.
▪ طراحی معماری اولین مرحله از فرآیند طراحی نرم افزار است.
▪ طراحی معماری پیوند حیاتی بین ( Designمرحله طراحی کلی از نرم افزار) و مهندسی خواسته ها
است چون مهمترین مولفه های ساختاری یک سیستم و روابط بین آن ها را مشخص می کند.
▪ خروجی فرآیند طراحی معماری یک مدل معماری است که توضیح می دهد چگونه یکس سیستم به
صورت مجموعه ای از مولفه های مرتبط به هم سازمان دهی می شود.
▪ در فرآیند های چابک توسعه نرم افزار معماری سیستم بصورت کلی وجود داشته باشد کفایت میکند.
2
معماری یک سیستم ربات بسته بندی کننده
3
طراحی معماری سیستم نرم افزاری
▪ تجزیه معماری معموال برای ساختاردهی و سازمان دهی مشخصات مفید است چون برای بحث در باره خواسته ها و
ویژگی ها سیستم با ذینفع ها تجزیه الزم است.
▪ معماری به دو سطح انتزاعی طراحی میشود.
▪ معماری در مقیاس کوچک :در این سطح به روش تجزیه ی هر یک از برنامه ها به مولفه ها می پردازیم
▪ معماری در مقیاس بزرگ :معماری های سیستم های پیچیده ی شرکت ها سروکار دارد که شامل سیستم های دیگر ،برنامه
ها و مولفه های برنامه ها است.
▪ معماری های سیستم غالبا با استفاده از نمودار های بلوکی ساده مدلسازی میشود
▪ مستطیل ها نشان دهنده مولفه است
▪ مستطیل داخل مستطیل نشان میدهد آن مولفه به چند زیر مولفه تقسیم بندی شده
▪ فلش ها جریان داده ها و یا سگنال های کنترلی از مولفه ای به مولفه دیگر را نشان میدهد.
5
طراحی معماری سیستم های نرم افزار
▪ نمودار های بلوکی تصویر سطح باالیی از ساختار سیستم را نشان میدهد و افرادی از نظام های مختلفی
که در فرآیند توسعه سیستم دخالت دارند به آسانی آن را درک می کنند.
▪ مدل های معماری یک برنامه به دو روش مورد استفاده قرار می گیرد.
▪ به عنوان راهی برای تسهیل بحث درباره ی طراحی سیستم .نمای معماری سطح باالی سیستم ،برای
برقراری ارتباط با ذینفعان سیستم و برنامه ریزی پروژه مفید است زیرا فاقد جزییات و شلوغی است.
ذینفعان می توانند با آن ارتباط بر قرار کنند .یک نمای انتزاعی از سیستم را درک کند .مدل معماری ،مولفه
های کلیدی را شناسایی میکند و مدیران می تواند منابع الزم را برای توسعه آن تخصیص دهد.
▪ مستند سازی :به عنوان راهی برای مستند سازی یک معماری که طراحی شده است .هدف تولید یک مدل
سیستم بصورت کامل است که مولفه های مختلف موجود در سیستم ،واسط های آن ،و اتصال های آن را
نشان می دهد.
▪ توصیف معماری مشروح درک تکامل سیستم را ساده می سازد.
▪ مدلسازی معماری بصورت نماد های رسمی و غیر رسمی انجام میشود.
6
تصمیمات طراحی معماری
▪ طراحی معماری یک فرآیند خالق است که در آن سعی می کنید یک سازماندهی برای سیستم ایجاد کنید
که خواسته های عملکردی و غیر عملکردی سیستم را بر آورده کند.
▪ پرسش های در موقع طراحی معماری سیستم:
آیا یک معماری کلی برای برنامه ای کاربردی وجود دارد که به عنوان قالبی برای طراحی سیستم مورد .1
نظر محسوب شود؟
سیستم چگونه در چندین هسته ( )coreیا پردازنده توزیع می شود؟ .2
چه الگو ها یا سبک های معماری برای سیستم مناسب است؟ .3
مهم ترین روش برای تعیین ساختار سیستم چیست؟ .4
مولفه های ساختاری موجود در سیستم چگونه به زیر مولفه ها تجزیه می شوند؟ .5
برای کنترل عملیات مولفه ها در سیستم از چه راهبردی استفاده می شود؟ .6
طراحی معماری چگونه ارزیابی می شود؟ .7
معماری سیستم چگونه باید مستند سازی شود؟ .8
7
معماری به اساس اولویت ها
8
نما های معماری ()Architectural Views
.1هنگام طراحی و پیاده سازی یک معماری سیستم ،چه نماها و دیدگاه هایی مفید هستند؟
.2برای توصیف مدل های معماری ،چه نمادگذاری هایی باید مورد استفاده قرار گیرند؟
▪ نمایش تمام اطالعات مربوط به معماری سیستم در یک مدل معماری غیر ممکن است .زیرا هر مدل یک نما یا
دیدگاه سیستم را نشان می دهد .مانند تجزیه سیستم به ماژول ها ،فرآیند زمان اجرا ،روش های مختلف توزیع مولفه
ها در شبکه چگونه است را نمایش میدهد.
نمای منطقی ،که انتزاع های مهم در سیستم را به صورت اشیا یا کالس ها نشان میدهد .خواسته های سیستم را به ▪
موجودیت های واقع در این نمای منطقی مرتبط کرد.
نمای فرآیند ،که نشان می دهید سیستم در زمان اجرا از چه فرآیند های تشکیل شده است این نما برای قضاوت در باره ی ▪
ویژگی های غیر عملکردی سیستم مثل کارایی و دسترس پذیری نیز مفید است.
نمای توسعه ،که نشان می دهد نرم افزار چگونه برای توسعه تجزیه می شود ،یعنی نشان می دهد که نرم افزار به مولفه ▪
هایی تقسیم می شود که توسط یک توسعه دهنده یا تیم توسعه پیاده سازی می شود .برای مدیران و برنامه نویسان
نمای فزیکی که سخت افزار سیستم و چگونگی توزیع مولفه های نرم افزار در پردازنده های سیستم را نشان می دهد. ▪
9
نما های معماری
▪ استفاده از UMLدر طراحی معماری مناسب نیست چون UMLخیلی نزدیک به پیاده سازی است در
حالیکه معماری مرحله سازماندهی مولفه های سیستم نرم افزاری است بنابر این باید از نمادگذاری های
غیر رسمی استفاده شود در مرحله نهایی طراحی معماری میتوان از UMLبرای مستند سازی استفاده
کرد.
▪ معماری چابک و ساختاری :برای توصیف معماری سیستم های نرم افزار اگر روش های چابک باشد
باید خیلی سطحی و کلی باشد و اگر معماری سیستم های حیاتی باشد نیازمند طراحی معماری مشروح و
با مستنند الزم است.
10
الگو های معماری ()Architectural Pattern
▪ الگو معماری عبارتند از توصیف انتزاعی و اصولی یک عمل خوب بدانید که در سیستم ها و محیط های
مختلفی مورد استفاده و آزمون قرار گرفته است .مانند الگوی )MVC (Model View Controller
جدا سازی تعامل ،نمایش و داده ها یک سیستم نرم افزاری است که به سه بخش عمده تقسیم بندی شده ▪
مدل Modelداده های سیستم و انجام عملیات ها روی آن داده ها را مدیریت می کند ▪
Viewچگونگی نمایش داده ها به کاربر را تعریف و مدیریت میکند. ▪
Controllerتعامل های کاربر مانند(کیبورد ،کلیک کردن ،ماوس و غیره ) را مدیریت میکند. ▪
11
الگو معماری ()MVC
▪ شرح الگو شامل :نام الگو ،توصیف مختصر (همراه بایک مدل گرافیکی) و مثالی از نوع سیستمی که
این الگو در آن به کار رفته است(یک مدل گرافیکی سیستم) عالوه بر این باید مشخص کنید الگو در چه
زمانی قابل استفاده است و مزایا و معایب آن کدامند.
12