O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

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

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Próximos SlideShares
UML for Aspect Oriented Design
UML for Aspect Oriented Design
Carregando em…3
×

Confira estes a seguir

1 de 21 Anúncio

Mais Conteúdo rRelacionado

Semelhante a AOSD توسعه نرم افزار جنبه گرا (20)

Mais recentes (20)

Anúncio

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

  1. 1. ASPECT ORIENTED SOFTWARE DEVELOPMENT(AOSD) Produced By OmidRajabi& AidinMirzaei
  2. 2. AOSD Advice Aspect Join point Cross cutting AOP … … …
  3. 3. نمونههای روشهای توسعه نرمافزار Waterfall V Spiral Evolutionary Prototyping Scrum Unified Process Extreme Programming
  4. 4. CONCERN • قسمتی از سیستم که مورد توجّه قرار میگیرد. • معیار اولیه برای تجزیهی نرمافزار به قسمتهای کوچکتر، قابل مدیریت و قابل درک (text,picture,video,exceptionhandling,…)
  5. 5. SEPRATIONOF CONCERNS • بر تقسیم نرمافزار به قسمتهای مجزا تمرکز دارد که تا حد امکان از نظر کارکرد تداخلی نداشته باشند.
  6. 6. CROSS-CUTTING CONCERN • متشکل از کارکردهای مشترک است. (CommonFunctionality) • جزء نیازهای کاربردی نیست. • نمیتوان آن را به طور مشخص در یک دسته بندی عمومی گنجاند.از جمله (Object,method,API,…)
  7. 7. مشکلات CROSSCUTTING CONCERNS پراکندگی ( Scattering ) • هر گاه کد پیادهسازی دغدغه بین چند ماژول پخش شده باشد. پیچیدگی ( Tangling ) • هر گاه کد پیادهسازی یک دغدغه با کد یک دغدغه دیگر مخلوط شده باشد.
  8. 8. ASPECT قسمتی از برنامه که شامل تلاقی (Cross-Cut) چندین دغدغه (Concern) جدا از هم است. حکم کلاس را در برنامهنویسی شیگرا دارد.
  9. 9. تعریف AOSD • تکنولوژی توسعه نرم افزارجنبه گرا، به تازگی در حال ظهور است . • روشی است برای رسیدن به پیمانه بندی (modularization) جدید و ساخت برنامه از ابتدا تا زمان انتشار آن. • اجازه میدهد تا چند دغدغه به طور جداگانه مطرح شود.
  10. 10. هدف AOSD شناسایی ) identification ) تشخیص (specification) ارائه ) representation ) Cross cutting concerns با تقسیم بندی modularization به واحدهای عملیاتی جداگانه و ترکیب خودکار آنها در داخل سیستم
  11. 11. JOINPOINT نقاط قابل توجّهی در چرخهی حیات برنامه که ممکن است چندین دغدغه (concern) ایجاد شود. به عنوان مثال نقطه فراخوانی متد
  12. 12. POINTCUT در AOP نیاز است نقاطی که موجب فراخوانی یک جنبه میشوند تعریف گردند، در حقیقت pointcut یک مجموعه از joinpoint ها را تعریف میکند.
  13. 13. ADVICE کد تکمیلی که به سیستم اضافه میشود تا کارهای مربوط به یک دغدغه را انجام دهد.
  14. 14. تجزیه جنبهای برنامه اصلی جنبهه ا بازسازی جنبهای نیازها سیستم نهایی
  15. 15. ASPECT ORIENTED PROGRAMMING (AOP) • تکنیکی که به برنامهنویس کمک میکند به طور مشخص، اجزاء و جنبه ها را از یکدیگر جدا کند. • توجه اصلی ماژول بندی کد: ارائه مکانیزم برای جداکردن دغدغههای متقاطع (cross-cuttingconcerns) در سطح کد 1. public aspect CheckInCustomer{ 2. ... 3. public void Room.assignCustomer() 4. { 5. // code to check in customer 6. } 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 bill 14. } 15. ... 16. }
  16. 16. مزایای AOP • تقسیمبندی بخشهای مختلف به نحوی ساده میشود که برطرفکردن دغدغهها باعث پیچیدگی زیادی نمیشود. • طراحی، فهم و نگهداری سیستم را راحتتر میکند. • باعث تولید محصولاتی با بهرهوری بالاتر،کیفیت بهتر و امکان اضافه کردن قابلیتهای بیشتری میشود. • بهتر میتوان از تداخل دغدغهها جلوگیری کرد.
  17. 17. AOP چگونه کار میکند؟ دغدغههای مختلف به صورت مستقل و با ارتباط و وابستگی پایین پیادهسازی میشوند با ترکیب این پیادهسازیها سیستم نهایی را آماده میکند
  18. 18.  کدنویسی سخته AOP آسونش کرده
  19. 19. معایب AOP • قدرت و توانائی زبان برنامهنویسی جنبهگرا در ایجاد کدهای غیرقابل اشکالزدائی • برنا مهنویسی جنبهگرا سعی میکند که جزئیات فراخوانی متدها را نادیده بگیرد. • میزان امنیت ترکیب جنبهها در زمان اجرا، کامپایل یا بارگذاری و تأثیرات جانبی ناشی ازتغییر نام یک تابع
  20. 20. چه کاربردی برای شما دارد؟؟؟ • کد کمتری مینویسید )نقصکمتر( • کد کمتری میخوانید. • مختصر و فهم آسان • توجه بیشتر • بهرهوری بیشتر • هزینه توسعه و نگهداری کاهشمیدهد.

×