aosd توسعه نرم افزار جنبه گرا

21
ASPECT ORIENTED SOFTWARE DEVELOPMENT(AOSD) Produced By Omid Rajabi & Aidin Mirzaei

Upload: omid-rajabi

Post on 16-Jul-2015

239 views

Category:

Engineering


15 download

TRANSCRIPT

Page 1: AOSD توسعه نرم افزار جنبه گرا

ASPECT ORIENTED SOFTWARE DEVELOPMENT(AOSD)

Produced By Omid Rajabi

& Aidin Mirzaei

Page 2: AOSD توسعه نرم افزار جنبه گرا

AOSDAdvice Aspect

Join

pointCross

cutting

AOP

… …

Page 3: AOSD توسعه نرم افزار جنبه گرا

افزار های توسعه نرمهای روشنمونه

Waterfall

V

Spiral

Evolutionary Prototyping

Scrum

Unified Process

Extreme Programming

Page 4: AOSD توسعه نرم افزار جنبه گرا

CONCERN

.گیردمیقرارتوجّهموردکهسیستمازقسمتی•

درکلقابومدیریتقابلکوچکتر،هایقسمتبهافزارنرمیتجزیهبرایاولیهمعیار•

(text, picture, video, exception handling,…)

Page 5: AOSD توسعه نرم افزار جنبه گرا

SEPRATION OF CONCERNS

رنظازامکانحدتاکهداردتمرکزمجزاهایقسمتبهافزارنرمتقسیمبر•

.باشندنداشتهتداخلیکارکرد

Page 6: AOSD توسعه نرم افزار جنبه گرا

CROSS-CUTTING CONCERN

Common).استمشترکهایکارکردازمتشکل• Functionality)

.نیستکاربردیهاینیازجزء•

هجملاز.گنجاندعمومیبندیدستهیکدرمشخصطوربهراآنتواننمی•

(Object, method,API, …)

Page 7: AOSD توسعه نرم افزار جنبه گرا

CROSSCUTTINGمشکالت

CONCERNS

پراکندگی (Scattering)

سازی دغدغه بین چند هر گاه کد پیاده•.ماژول پخش شده باشد

پیچیدگی (Tangling )

سازی یک دغدغه با کدهر گاه کد پیاده•.یک دغدغه دیگر مخلوط شده باشد

Page 8: AOSD توسعه نرم افزار جنبه گرا

ASPECT

(Concern)چندین دغدغه (Cross-Cut)قسمتی از برنامه که شامل تالقی

. جدا از هم است

گرا نویسی شیحکم کالس را در برنامه. دارد

Page 9: AOSD توسعه نرم افزار جنبه گرا

AOSDتعریف

.استظهورحالدرتازگیبه،گراافزارجنبهنرمتوسعهتکنولوژی•

وجدید(modularization)بندیپیمانهبهرسیدنبرایاستروشی•.آنانتشارزمانتاابتداازبرنامهساخت

.شودمطرحجداگانهطوربهدغدغهچندتادهدمیاجازه•

Page 10: AOSD توسعه نرم افزار جنبه گرا

AOSDهدف

(identification)شناسایی

(specification)تشخیص

( representation)ارائه

Cross

cutting

concernsبه واحدهای عملیاتی modularizationتقسیم بندی با

ها در داخل سیستمجداگانه و ترکیب خودکار آن

Page 11: AOSD توسعه نرم افزار جنبه گرا

JOINPOINT

برنامهحیاتیچرخهدرتوجّهیقابلنقاط(concern)دغدغهچندیناستممکنکه

تدمفراخوانینقطهمثالعنوانبه.شودایجاد

Page 12: AOSD توسعه نرم افزار جنبه گرا

POINTCUT

تعریفشوندمیجنبهیکفراخوانیموجبکهنقاطیاستنیازAOPدر.کندمیتعریفراهاjoinpointازمجموعهیکpointcutحقیقتدرگردند،

Page 13: AOSD توسعه نرم افزار جنبه گرا

ADVICEضافهاسیستمبهکهتکمیلیکدیکبهمربوطیکارهاتاشودمی

.دهدانجامرادغدغه

Page 14: AOSD توسعه نرم افزار جنبه گرا

ای جنبهتجزیه

هاجنبه برنامه اصلی

ای بازسازی جنبه

ها نیاز

سیستم نهایی

Page 15: AOSD توسعه نرم افزار جنبه گرا

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. }

Page 16: AOSD توسعه نرم افزار جنبه گرا

AOPمزایای

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

.کندمیترراحتراسیستمنگهداریوفهمطراحی،•

کردنافهاضامکانوبهترباالتر،کیفیتوریبهرهبامحصوالتیتولیدباعث•.شودمیبیشتریهایقابلیت

.کردجلوگیریهادغدغهتداخلازتوانمیبهتر•

Page 17: AOSD توسعه نرم افزار جنبه گرا

AOPکند؟چگونه کار می

سازی ادههای مختلف به صورت مستقل و با ارتباط و وابستگی پایین پیدغدغه

شوند می

دکنها سیستم نهایی را آماده میسازیبا ترکیب این پیاده

Page 18: AOSD توسعه نرم افزار جنبه گرا

کدنویسی سخته

AOP

آسونش کرده

Page 19: AOSD توسعه نرم افزار جنبه گرا

AOPمعایب

الزدائیاشکغیرقابلکدهایایجاددرگراجنبهنویسیبرنامهزبانتوانائیوقدرت•

.بگیردنادیدهرامتدهافراخوانیجزئیاتکهکندمیسعیگراجنبهنویسیمهبرنا•

انبیجتأثیراتوبارگذارییاکامپایلاجرا،زماندرهاجنبهترکیبامنیتمیزان•

تابعیکنامازتغییرناشی

Page 20: AOSD توسعه نرم افزار جنبه گرا

چه کاربردی برای شما دارد؟؟؟

(کمترنقص)نویسیدمیکمتریکد•

.خوانیدمیکمتریکد•

آسانفهمومختصر•

بیشترتوجه•

بیشتروریبهره•

.دهدمیکاهشنگهداریوتوسعههزینه•

Page 21: AOSD توسعه نرم افزار جنبه گرا