aosd توسعه نرم افزار جنبه گرا
TRANSCRIPT
ASPECT ORIENTED SOFTWARE DEVELOPMENT(AOSD)
Produced By Omid Rajabi
& Aidin Mirzaei
AOSDAdvice Aspect
Join
pointCross
cutting
AOP
…
… …
افزار های توسعه نرمهای روشنمونه
Waterfall
V
Spiral
Evolutionary Prototyping
Scrum
Unified Process
Extreme Programming
CONCERN
.گیردمیقرارتوجّهموردکهسیستمازقسمتی•
درکلقابومدیریتقابلکوچکتر،هایقسمتبهافزارنرمیتجزیهبرایاولیهمعیار•
(text, picture, video, exception handling,…)
SEPRATION OF CONCERNS
رنظازامکانحدتاکهداردتمرکزمجزاهایقسمتبهافزارنرمتقسیمبر•
.باشندنداشتهتداخلیکارکرد
CROSS-CUTTING CONCERN
Common).استمشترکهایکارکردازمتشکل• Functionality)
.نیستکاربردیهاینیازجزء•
هجملاز.گنجاندعمومیبندیدستهیکدرمشخصطوربهراآنتواننمی•
(Object, method,API, …)
CROSSCUTTINGمشکالت
CONCERNS
پراکندگی (Scattering)
سازی دغدغه بین چند هر گاه کد پیاده•.ماژول پخش شده باشد
پیچیدگی (Tangling )
سازی یک دغدغه با کدهر گاه کد پیاده•.یک دغدغه دیگر مخلوط شده باشد
ASPECT
(Concern)چندین دغدغه (Cross-Cut)قسمتی از برنامه که شامل تالقی
. جدا از هم است
گرا نویسی شیحکم کالس را در برنامه. دارد
AOSDتعریف
.استظهورحالدرتازگیبه،گراافزارجنبهنرمتوسعهتکنولوژی•
وجدید(modularization)بندیپیمانهبهرسیدنبرایاستروشی•.آنانتشارزمانتاابتداازبرنامهساخت
.شودمطرحجداگانهطوربهدغدغهچندتادهدمیاجازه•
AOSDهدف
(identification)شناسایی
(specification)تشخیص
( representation)ارائه
Cross
cutting
concernsبه واحدهای عملیاتی modularizationتقسیم بندی با
ها در داخل سیستمجداگانه و ترکیب خودکار آن
JOINPOINT
برنامهحیاتیچرخهدرتوجّهیقابلنقاط(concern)دغدغهچندیناستممکنکه
تدمفراخوانینقطهمثالعنوانبه.شودایجاد
POINTCUT
تعریفشوندمیجنبهیکفراخوانیموجبکهنقاطیاستنیازAOPدر.کندمیتعریفراهاjoinpointازمجموعهیکpointcutحقیقتدرگردند،
ADVICEضافهاسیستمبهکهتکمیلیکدیکبهمربوطیکارهاتاشودمی
.دهدانجامرادغدغه
ای جنبهتجزیه
هاجنبه برنامه اصلی
ای بازسازی جنبه
ها نیاز
سیستم نهایی
ASPECT ORIENTED PROGRAMMING (AOP)
به ها را کند به طور مشخص، اجزاء و جننویس کمک میتکنیکی که به برنامه•. از یکدیگر جدا کند
:توجه اصلی ماژول بندی کد•
جداکردنبرایمکانیزمارائهمتقاطعهایدغدغه
(cross-cutting concerns)
کدسطحدر
1. public aspect CheckInCustomer {
2. ...3. public void Room.assignCustomer ()4. {
5. // code to check in customer6. }
7. public void Reservation.consume()8. {9. // code to consume reservation
10. }11. public void Payment.createBill()
12. {13. // code to generate an initial outstanding bill14. }
15. ...16. }
AOPمزایای
کردنبرطرفکهشودمیسادهنحویبهمختلفهایبخشبندیتقسیم•.شودنمیزیادیپیچیدگیباعثهادغدغه
.کندمیترراحتراسیستمنگهداریوفهمطراحی،•
کردنافهاضامکانوبهترباالتر،کیفیتوریبهرهبامحصوالتیتولیدباعث•.شودمیبیشتریهایقابلیت
.کردجلوگیریهادغدغهتداخلازتوانمیبهتر•
AOPکند؟چگونه کار می
سازی ادههای مختلف به صورت مستقل و با ارتباط و وابستگی پایین پیدغدغه
شوند می
دکنها سیستم نهایی را آماده میسازیبا ترکیب این پیاده
کدنویسی سخته
AOP
آسونش کرده
AOPمعایب
الزدائیاشکغیرقابلکدهایایجاددرگراجنبهنویسیبرنامهزبانتوانائیوقدرت•
.بگیردنادیدهرامتدهافراخوانیجزئیاتکهکندمیسعیگراجنبهنویسیمهبرنا•
انبیجتأثیراتوبارگذارییاکامپایلاجرا،زماندرهاجنبهترکیبامنیتمیزان•
تابعیکنامازتغییرناشی
چه کاربردی برای شما دارد؟؟؟
(کمترنقص)نویسیدمیکمتریکد•
.خوانیدمیکمتریکد•
آسانفهمومختصر•
بیشترتوجه•
بیشتروریبهره•
.دهدمیکاهشنگهداریوتوسعههزینه•