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

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

Jul 16, 2015

Download

Engineering

Omid Rajabi
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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 توسعه نرم افزار جنبه گرا