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

                                     

ⓘ تفکیک دغدغه‌ها

در علوم رایانه، تفکیک دغدغه‌ها یک قاعده‌ی طراحی با روش تفکیک برنامه به بخش‌های متمایز است، به گونه‌ای که عملکرد هر بخش، یک دغدغه‌ی متمایز را پاسخ می‌دهد. دغدغه، مجموعه اطلاعاتی است که کد یک برنامه‌ی کامپیوتری را تحت تأثیر قرار می‌دهد. این دغدغه ممکن است خیلی کلّی باشد مثلاً جزئیات سخت افزاری که کد برنامه را برای اجرا روی آن بهینه می‌کنیم، یا دغدغه ممکن است خیلی مشخص و جزئی باشد مثلاً نام کلاسی که از آن اشیاء ساخته می‌شوند. برنامه‌ای که تفکیک دغدغه‌ها را به کار می‌گیرد، برنامه‌ی پودمانی یا قطعه‌ای می‌گویند. قطعه‌بندی یا پودمان ، و در نتیجهٔ آن، تفکیک دغدغه‌ها از طریق کپسوله‌سازی یا بسته‌بندی اطلاعات در بخشی از کد که دارای یک رابط مناسب می‌باشد، حاصل می‌شود. کپسوله‌سازی یک روش نهان‌سازی یا اخفا اطلاعات است. طراحی لایه‌ای در سامانه‌های اطلاعاتی، نمونه‌ی دیگری از به کارگیری تفکیک دغدغه‌هاست یا لایه‌ی منطق کار و لایه‌ی دسترسی به داده ، لایه‌ی تداوم اطلاعات

اهمیت تفکیک دغدغه‌ها در آسان‌سازی و تسهیل فرایند توسعه و نگهداری و توسعه‌پذیری برنامه‌های کامپیوتری می‌باشد. وقتی دغدغه‌ها به صورت مناست تفکیک شده باشند، هر بخش از برنامه را می‌توان به صورت کاملاً جداگانه در برنامه‌ی دیگر مورد استفاده قرار داد و همینطور، آن را توسعه داد و بروز رسانی کرد. یکی از فواید مهم تفکیک دغدغه‌ها این است که می‌توان بعد از پایان پروژه، بخش‌هایی از کد را بدون نیاز به دانستن جزئیات بخش‌های دیگر بخش‌های وابسته و بدون نیاز به اِعمال تغییرات متناظر در بخش‌های دیگر، اصلاح کرد یا آن‌ها را بهبود بخشید.

                                     

1. پیاده‌سازی

ساز و کار برنامه‌نویسی شی‌گرا یا برنامه‌نویسی پودمانی که یک زبان برنامه‌نویسی امکانش را فراهم می‌آورد، ساز و کارهایی هستند که به توسعه‌دهندگان، اجازهٔ برقراری تفکیک دغدغه‌ها را می‌دهند. برای مثال زبان‌های برنامه‌نویسی شئ گرا مانند سی‌شارپ یا سی‌پلاس‌پلاس یا دلفی، و جاوا می‌توانند دغدغه‌ها را به اشیاء تفکیک و تقسیم کنند و الگوهای طراحی معماری مانند MVC و MVP امکان تفکیک محتوا و نحوهٔ نمایش محتوا و همینطور تفکیک نحوهٔ نمایش محتوا از پردازش دادهمدل را فراهم می‌آورند. طراحی مبتنی بر سرویس امکان جداسازی دغدغه‌ها به سرویس‌ها را فراهم می‌کند. برنامه‌نویسی رویه‌ای مانند زبان سی و پاسکال امکان تفکیک دغدغه‌ها به رویه‌ها یا توابع را فراهم می‌آورد. برنامه‌نویسی جنبه‌گرا، امکان تفکیک دغدغه‌ها به جنبه‌ها و اشیاء را فراهم می‌کند.

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

از مثال‌های رایج می‌توان به تفکیک فضای خانه به اتاق‌هایی به منظور جلوگیری از تداخل و تأثیر فعالیت‌هایی که در یک اتاق انجام می‌شود بر قسمت‌های دیگر خانه، اشاره کرد. این مثال، بر ویژگی کپسوله‌سازی تأکید می‌کند، که در آن اطلاعات یک اتاق مثلاً بهم ریختگی اتاق، از چشم اتاق‌های دیگر پنهان است و فقط از طریق رابطinterface که همان در آن اتاق است می‌توان به این اطلاعات دست یافت.

از دیگر مثال‌های مربوط به تفکیک دغدغه‌ها می‌توان به این موضوع اشاره کرد که مداری که اجاق گاز برقی روی آن قرار دارد و مداری که لامپ‌ها روی آن قرار دارند باید جداگانه باشد تا روشن شدن اجاق گاز برقی در کار لامپ‌ها تداخل ایجاد نکند. این مثال نیز بر جنبهٔ دیگری از تفکیک دغدغه‌ها تأکید می‌کند، و آن این است که فعالیت درون یک قطعه یا پودمان module که در این مثال می‌توان هر مدار را یک قطعه در نظر گرفت، فعالیت درون قطعه یا پودمان دیگر را تحت تأثیر خود قرار نمی‌دهد، بنابراین هر پودمان یا قطعه، درگیر آنچه که در پودمان یا قطعهٔ دیگر اتفاق می‌افتد نیست.

                                     

2.1. مثال‌ها پشتهٔ پروتوکل اینترنت

تفکیک دغدغه‌ها یکی از اساسی‌ترین مفاهیم در طراحی اینترنت می‌باشد. در مجموعهٔ پروتوکل اینترنت، تلاش‌های فراوانی در جهت تفکیک دغدغه‌ها به لایه‌های مختلف شده‌است. این موجب می‌شود تا طراحان پروتوکل‌ها فارغ از لایه‌های دیگر، بر روی دغدغه‌های مربوط به یک لایه، تمرکز کنند. به عنوان مثال SMTP که یک پروتوکل لایهٔ اپلیکیشن می‌باشد، درگیر تمام جزئیات مربوط به چگونگی ایجاد یک فرایند مربوط به ارسال رایانامه از طریق سرویس انتقال دادهمعمولاً TCP است، اما به هیچ وجه درگیر اینکه سرویس انتقال داده به چه نحو امنیت در ارسال را بر قرار می‌کند، نیست. به‌طور مشابه، TCP هم درگیر نحوهٔ مسیریابی پکت‌های داده‌ای، که در لایهٔ اینترنت انجام می‌گیرد، نیست.

                                     

2.2. مثال‌ها برنامه‌نویسی جنبه‌گرا

برنامه‌نویسی جنبه‌گرا، دغدغه‌های مشترک‌الحوزه cross-cutting را به عنوان دغدغه‌های ثانوی ارائه می‌کند. مثلاً بسیاری از برنامه‌ها نیاز به شکلی از امنیتsecurity و لاگینگlogging دارند. امنیت و لاگینگ معمولاً دغدغه‌های ثانوی محسوب می‌شوند، در حالی که دغدغه‌های اصلی معمولاً مربوط به اهداف کاریbusiness goals هستند. اما وقتی که یک برنامه طراحی می‌شود، می‌بایست امنیت آن از ابتدای کار در طراحی در نظر گرفته و پیاده شود، و همانند یک دغدغهٔ ثانوی با آن برخورد نشود. اِعمال امنیت در مراحل پایانی، معمولاً موجب ایجاد مدل‌های امنیتی ناکار آمد می‌شود که برنامه را در مقابل حملات احتمالی آینده آسیب‌پذیر می‌کند.

                                     

2.3. مثال‌ها تفکیک دغدغه‌ها از طریق کلاس‌های تکه تکهPartial Classes

تفکیک دغدغه‌ها را می‌توان با استفاده از کلاس‌های تکه‌تکه پیاده‌سازی و اِعمال کرد.

                                     
  • جنسیتی در ایران یا تفکیک جنسیتی در ایران دارای سابقه طولانی و پیچیده است و در دوران مختلف نوسان داشته است و پس از انقلاب ایران تفکیک بین زنان و مردان
  • فرایند یکپارچه رشنال RUP Responsibility - driven design RDD اسکرام تفکیک دغدغه ها SoC Service - oriented modeling Software Craftsmanship Software System
  • ویژگی هایشان است. زبان ها را می توان به چندین پارادایم دسته بندی نمود. دغدغه اصلی برخی از پارادایم ها عمدتا مربوط به پیامدهای مدل اجرایی زبان است همچون
  • چاپ در صورتی که بخشی از همان کلاس باشد احتمال شکست بالاتری دارد. تفکیک دغدغه ها الگوی زنجیره مسئولیت انسجام علم کامپیوتر اصل باز - بسته حرف S در SOLID
  • تفکیک تقسیمات کشوری سال 1395 www.amar.org.ir. دریافت شده در - - درگاه ملی آمار سرشماری عمومی نفوس و مسکن نتایج سرشماری جمعیت به تفکیک تقسیمات
  • این قسمت نیز در قالب فصولی ششگانه مباحثی که بیانگر تفکیک ناپذیری بودن در دنیا و زمانی بودن دغدغه هستند را ارائه کرده است. در این چارچوب مباحث اساسی قسمت
  • مخالفین ازدواج همجنسگرایان در ایالات متحده بر دغدغه های سرپرستی از فرزندان دغدغه های مذهبی و این دغدغه است که تغییر دادن تعریف ازدواج ممکن است منجر به
  • شیءگرا OOP مبتنی بر بازیگر مبتنی بر کلاس همزمان بر پایه پیش نمونه با تفکیک دغدغه ها جنبه گرا نقش گرا موضوع گرا بازگشتی نمادین سطح مقدار تضاد: سطح تابع
  • روشنفکر از طبقه تحصیل کرده در جامعه است که با دغدغه های انسانی اجتماعی ارزشی فرهنگی و سیاسی اقدام به موضع گیری در مباحث و مسائل حساس و مهم جامعه
  • اشیاء واقعی انجام شود. به غیر از مسائل پیچیدگی و منافع حاصل از این تفکیک دغدغه ها مسائلی در مورد سرعت عمل نیز وجود دارد. توسعه یک تکه واقعی نرم افزار