پیش‌نویس:نگرانی مقطعی فرابخشی

در توسعه نرم‌افزار جنبه‌گرا(AOP) ، نگرانی‌های مقطعی جنبه‌هایی از یک برنامه هستند که بر چندین ماژول تأثیر می‌گذارند، که امکان کپسوله کردن (تلفیق کردن) آن نگرانی ها یا عملیات در هیچ یک از آن ماژول ها وجود نداشته باشد. این نگرانی‌ها اغلب نمی‌توانند در طراحی و پیاده‌سازی از بقیه سیستم جدا شوند و می‌توانند منجر به پراکندگی ( تکثیر کددرهم‌رفتن اشیا و مسئولیت ها (وابستگی‌های قابل توجه بین سیستم‌ها) یا هر دو شوند.

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

زمینه

ویرایش

نگرانی های مقطعی بخش هایی از یک برنامه هستند که بر بسیاری از بخش های دیگر سیستم متکی هستند یا بر آن تأثیر می گذارند. آنها اساس توسعه جنبه ها را تشکیل می دهند. [۱] چنین نگرانی های مقطعی به طور شفاف و واضح در برنامه نویسی شی گرا یا برنامه نویسی رویه ای نمی گنجد. [۲]

نگرانی های مقطعی می توانند مستقیماً مسئول درهم تنیدگی یا وابستگی های متقابل سیستم در یک برنامه باشند. از آنجایی که ساختارهای زبان رویه ای و عملکردی به طور کامل از فراخوانی رویه(صدا زدن یک پروسه یا رویه که مسول انجام یک کار مشخص و معین می باشد) تشکیل شده اند، هیچ معنایی وجود ندارد که از طریق آن دو هدف (قابلیت اجرا و نگرانی میان مقطعی مرتبط) بتوان به طور همزمان مورد توجه قرار گیرد. [۳] در نتیجه، کدی که به نگرانی متقاطع رسیدگی می‌کند باید در مکان‌های مختلف مرتبط پراکنده یا تکراری شود، که در نتیجه ماژولاریت از بین می‌رود. [۲]

هدف برنامه نویسی جنبه گرا این است که برای حفظ ماژولار بودن سیستم و کد ، نگرانی های متقابل را در جنبه هایی که به همان منظور خاص طراحی و پیاده سازی شده اند محصور کند . این امکان جداسازی تمیز و استفاده مجدد از کد را فراهم می کند تا به نگرانی های مقطعی رسیدگی کند. [۴] با استناد به طرح ها بر روی نگرانی های مقطعی، مزایای مهندسی نرم افزار می تواند شامل مدولار بودن و تعمیر و نگهداری ساده باشد. [۵]

مثال ها

ویرایش

نمونه‌هایی از نگرانی‌هایی که معمولاً مقطعی هستند اما ممکن است در جاهای مختلف سیستم نیاز باشند عبارتند از:

همچنین ببینید

ویرایش

منابع

ویرایش

کتابشناسی - فهرست کتب

ویرایش
  • Kiczales, Gregor; Lamping, John; Mendhekar, Anurag; Maeda, John; Lopes, Cristina; Longtier, Jean-Marc; Irwin (1997). "Aspect-Oriented Programming". Proceedings of the 11th European Conference on Object-Oriented Programming (ECOOP 1997): 220–242.
  •  
  • Li, Harry; Krishnamurthi, Shriram; Fisler, Kathi (2002). "Verifying Cross-Cutting Features as Open Systems". ACM SIGSOFT Software Engineering Notes. 27 (6): 89–98. CiteSeerX 10.1.1.8.9445. doi:10.1145/605466.605481.
  • Parnas, David L. (December 1972). "On the Criteria To Be Used in Decomposing Systems into Modules". Communications of the ACM. 15 (12): 1053–1058. CiteSeerX 10.1.1.90.8963. doi:10.1145/361598.361623.
  •  

بیشتر خواندن

ویرایش
  • Laddad, R. (2003): AspectJ in Action, Practical Aspect Oriented Programming, Manning Publications Co.

لینک های خارجی

ویرایش