Pooya Sabeti
Pooya Sabeti
خواندن ۳ دقیقه·۳ سال پیش

نمایش معماری نرم افزار با مدل C4

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

در این بحث، مدل های مختلفی طی سال های پیشرفت معماری نرم افزار ارائه شده اند. یکی از این مدل ها، مدل C4 می باشد. مدل C4 از لایه های مختلفی برای نمایش معماری نرم افزار استفاده می کند که این لایه ها درجه های متفاوتی از انتزاع معماری را نشان می دهند. دلیل نامگذاری این مدل نیز لایه هایی هستند که با این مدل از نرم افزار به نمایش گذاشته می شود که به ترتیب زیر می بشاند.

مدل C4 توسط Simon Brown معرفی شد. این مدل هر معماری نرم افزاری را در 4 لایه به تصویر می کشد. هر لایه میزان درشت دانگی مصور کردن سیستم را نشان می دهد، لایه های آن به شرح زیر می باشد. در قدم اول کلیات اصلی و قدم های رسم نمودار را بررسی می کنیم و در مثالی یک سیستم بانکی را با این روش نمایش می دهیم.

1- Context

این لایه کلی ترین دید ازسیستم را به تصویر می کشد و مفهوم کلی سیستم، ارتباط و وابستگی های سیستم را به صورت درشت دانه مشخص می کند.

2- Containers

لایه دوم یک درجه ریز تر از لایه ی اول به بررسی محتویات داخل هر قسمت از بخش های کلی نرم افزار می پردازد. این لایه اجزاء کلی سیستم و تکنولوژی هایی که انتخاب شده را مشخص می کند. در این قسمت توجه شود که این Container با آن که با Docker است متفاوت می باشد.

3- Components

لایه ی سوم دید جزئی تری نسب به اجزاء به تصویر کشیده در لایه ی دوم دارد که این اجزا هر کدام به طور معمول یک وظیفه به خصوصی در نرم افزار به عهده دارند. مانند مصور کردن اجزاء بخش امنیت برنامه.

4- Code

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

مثال

در این قسمت اجزاء مختلف یک سیستم بانکی را با مدل C4 را به صورت مرحله به مرحله نمایش می دهیم.

  • Banking System Context

در مرحله ی اول کلی ترین نمای سیستم را رسم می کنیم. در این مثال برای نمایش یک سیستم بانکی کاربران سیستم که با این سیستم در ارتباط اند، خود سیستم بانکی اینترنتی و سیستم های دیگری که با سیستم اینترنتی بانک در ارتباط هستند نمایش داده می شود.

  • Internet Banking System Components

در مرحله دوم سیستم بانکی را با دید اجزاء بررسی می کنیم و در نمودار سرویس هایی که درون سیستم بانکی وجود دارند به همراه سیستم های خارجی ای که هر کدام از این سرویس ها با آن در ارتباط هستند نمایش داده می شود.

  • API Application Components

در مرحله سوم به طور مثال می خواهیم container مربوط به API Application را جزعی تر بررسی کنیم. اجزائ موجود درون آن را و ارتباطات درون آن و ارتباطات با container های خارجی را در این مرحله مشخص می کنیم.


  • Mainframe Banking System Code

در مرحله ی آخر درون هر کدام از component های مرحله ی قبل کد هایی هستند که آن را تشکیل می دهند. آن ها را در این مرحله با نمودار هایی مانند ER و وابستگی های تابعی آن کد ها نمایش می دهیم. معمولا در مدل C4 این مرحله به محیط های کد مربوط می شود و آن را به IDE های مربوطه واگذار می کنند.

در مدلسازی نرم افزار با روش C4 سختی های نمایش نرم افزار از بین می رود و برای نشان دادن هر نوع انتزاع مد نظر یک سطح وجود دارد. این موضوع باعث می شود در انتقال این طراحی به تمامی تیم از منظر های مختلف معماری قابل نمایش باشد. همچنین تا حد مورد نیاز تیم مورد نظر را از جزئیات لازم مطلع می شود.


این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است.


مراجع

فیلم معرفی توسط Simon Brown

سایت رسمی مربوط به روش C4<br/>

معماری_نرم_افزار_بهشتی
شاید از این پست‌ها خوشتان بیاید