SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
ASPECT ORIENTED SOFTWARE DEVELOPMENT(AOSD) 
Produced By OmidRajabi& AidinMirzaei
AOSD 
Advice 
Aspect 
Join point 
Cross cutting 
AOP 
… 
… 
…
نمونههای روشهای توسعه نرمافزار 
Waterfall 
V 
Spiral 
Evolutionary Prototyping 
Scrum 
Unified Process 
Extreme Programming
CONCERN 
• قسمتی از سیستم که مورد توجّه قرار میگیرد. 
• معیار اولیه برای تجزیهی نرمافزار به قسمتهای کوچکتر، قابل مدیریت و قابل درک 
(text,picture,video,exceptionhandling,…)
SEPRATIONOF CONCERNS 
• بر تقسیم نرمافزار به قسمتهای مجزا تمرکز دارد که تا حد امکان از نظر 
کارکرد تداخلی نداشته باشند.
CROSS-CUTTING CONCERN 
• متشکل از کارکردهای مشترک است. (CommonFunctionality) 
• جزء نیازهای کاربردی نیست. 
• نمیتوان آن را به طور مشخص در یک دسته بندی عمومی گنجاند.از جمله 
(Object,method,API,…)
مشکلات CROSSCUTTING CONCERNS 
پراکندگی 
( Scattering ) 
• هر گاه کد پیادهسازی دغدغه بین چند 
ماژول پخش شده باشد. 
پیچیدگی 
( Tangling ) 
• هر گاه کد پیادهسازی یک دغدغه با کد 
یک دغدغه دیگر مخلوط شده باشد.
ASPECT 
قسمتی از برنامه که شامل تلاقی (Cross-Cut) چندین دغدغه (Concern) 
جدا از هم است. 
حکم کلاس را در برنامهنویسی شیگرا 
دارد.
تعریف AOSD 
• تکنولوژی توسعه نرم افزارجنبه گرا، به تازگی در حال ظهور است . 
• روشی است برای رسیدن به پیمانه بندی (modularization) جدید و 
ساخت برنامه از ابتدا تا زمان انتشار آن. 
• اجازه میدهد تا چند دغدغه به طور جداگانه مطرح شود.
هدف AOSD 
شناسایی ) identification ) 
تشخیص (specification) 
ارائه ) representation ) 
Cross 
cutting concerns 
با تقسیم بندی modularization به واحدهای عملیاتی 
جداگانه و ترکیب خودکار آنها در داخل سیستم
JOINPOINT 
نقاط قابل توجّهی در چرخهی حیات برنامه 
که ممکن است چندین دغدغه (concern) 
ایجاد شود. به عنوان مثال نقطه فراخوانی متد
POINTCUT 
در AOP نیاز است نقاطی که موجب فراخوانی یک جنبه میشوند تعریف 
گردند، در حقیقت pointcut یک مجموعه از joinpoint ها را تعریف میکند.
ADVICE 
کد تکمیلی که به سیستم اضافه 
میشود تا کارهای مربوط به یک 
دغدغه را انجام دهد.
تجزیه جنبهای 
برنامه اصلی جنبهه 
ا 
بازسازی جنبهای 
نیازها 
سیستم نهایی
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. }
مزایای AOP 
• تقسیمبندی بخشهای مختلف به نحوی ساده میشود که برطرفکردن 
دغدغهها باعث پیچیدگی زیادی نمیشود. 
• طراحی، فهم و نگهداری سیستم را راحتتر میکند. 
• باعث تولید محصولاتی با بهرهوری بالاتر،کیفیت بهتر و امکان اضافه کردن 
قابلیتهای بیشتری میشود. 
• بهتر میتوان از تداخل دغدغهها جلوگیری کرد.
AOP چگونه کار میکند؟ 
دغدغههای مختلف به صورت مستقل و با ارتباط و وابستگی پایین پیادهسازی 
میشوند 
با ترکیب این پیادهسازیها سیستم نهایی را آماده میکند
 کدنویسی سخته 
AOP 
آسونش کرده
معایب AOP 
• قدرت و توانائی زبان برنامهنویسی جنبهگرا در ایجاد کدهای غیرقابل اشکالزدائی 
• برنا مهنویسی جنبهگرا سعی میکند که جزئیات فراخوانی متدها را نادیده بگیرد. 
• میزان امنیت ترکیب جنبهها در زمان اجرا، کامپایل یا بارگذاری و تأثیرات جانبی 
ناشی ازتغییر نام یک تابع
چه کاربردی برای شما دارد؟؟؟ 
• کد کمتری مینویسید )نقصکمتر( 
• کد کمتری میخوانید. 
• مختصر و فهم آسان 
• توجه بیشتر 
• بهرهوری بیشتر 
• هزینه توسعه و نگهداری کاهشمیدهد.
AOSD توسعه نرم افزار جنبه گرا

Más contenido relacionado

La actualidad más candente

Computer architecture
Computer architecture Computer architecture
Computer architecture Ashish Kumar
 
Presentaion fpga µc µp quelles est la solution
Presentaion  fpga µc µp quelles est la solutionPresentaion  fpga µc µp quelles est la solution
Presentaion fpga µc µp quelles est la solutionCynapsys It Hotspot
 
19. шина pci express. основни характеристики.
19. шина pci express. основни характеристики.19. шина pci express. основни характеристики.
19. шина pci express. основни характеристики.dnaidenowa
 
Formatting an apa open office writer document
Formatting an apa open office writer documentFormatting an apa open office writer document
Formatting an apa open office writer documentTamara Mitchell
 
20160706 Automotive SYS: "Evolving Needs for Software Systems - Demonstrated"
20160706 Automotive SYS: "Evolving Needs for Software Systems - Demonstrated"20160706 Automotive SYS: "Evolving Needs for Software Systems - Demonstrated"
20160706 Automotive SYS: "Evolving Needs for Software Systems - Demonstrated"Alexander Much
 
System On Chip (SOC)
System On Chip (SOC)System On Chip (SOC)
System On Chip (SOC)Shivam Gupta
 
Peephole optimization techniques
Peephole optimization techniquesPeephole optimization techniques
Peephole optimization techniquesgarishma bhatia
 
RISC and CISC Processors
RISC and CISC ProcessorsRISC and CISC Processors
RISC and CISC ProcessorsAdeel Rasheed
 
Creating a Fibonacci Generator in Assembly - by Willem van Ketwich
Creating a Fibonacci Generator in Assembly - by Willem van KetwichCreating a Fibonacci Generator in Assembly - by Willem van Ketwich
Creating a Fibonacci Generator in Assembly - by Willem van KetwichWillem van Ketwich
 
Classification of Compilers
Classification of CompilersClassification of Compilers
Classification of CompilersSarmad Ali
 
Assembly language programming(unit 4)
Assembly language programming(unit 4)Assembly language programming(unit 4)
Assembly language programming(unit 4)Ashim Saha
 
Register introduction
Register introductionRegister introduction
Register introductionmaamir farooq
 
System Programming- Unit I
System Programming- Unit ISystem Programming- Unit I
System Programming- Unit ISaranya1702
 
Arteris Ncore Cache Coherent Interconnect - Technology Overview
Arteris Ncore Cache Coherent Interconnect - Technology OverviewArteris Ncore Cache Coherent Interconnect - Technology Overview
Arteris Ncore Cache Coherent Interconnect - Technology OverviewKurt Shuler
 

La actualidad más candente (20)

Computer architecture
Computer architecture Computer architecture
Computer architecture
 
Embedded C - Lecture 1
Embedded C - Lecture 1Embedded C - Lecture 1
Embedded C - Lecture 1
 
Presentaion fpga µc µp quelles est la solution
Presentaion  fpga µc µp quelles est la solutionPresentaion  fpga µc µp quelles est la solution
Presentaion fpga µc µp quelles est la solution
 
Instruction format
Instruction formatInstruction format
Instruction format
 
19. шина pci express. основни характеристики.
19. шина pci express. основни характеристики.19. шина pci express. основни характеристики.
19. шина pci express. основни характеристики.
 
Formatting an apa open office writer document
Formatting an apa open office writer documentFormatting an apa open office writer document
Formatting an apa open office writer document
 
Polish
PolishPolish
Polish
 
20160706 Automotive SYS: "Evolving Needs for Software Systems - Demonstrated"
20160706 Automotive SYS: "Evolving Needs for Software Systems - Demonstrated"20160706 Automotive SYS: "Evolving Needs for Software Systems - Demonstrated"
20160706 Automotive SYS: "Evolving Needs for Software Systems - Demonstrated"
 
System On Chip (SOC)
System On Chip (SOC)System On Chip (SOC)
System On Chip (SOC)
 
Peephole optimization techniques
Peephole optimization techniquesPeephole optimization techniques
Peephole optimization techniques
 
RISC and CISC Processors
RISC and CISC ProcessorsRISC and CISC Processors
RISC and CISC Processors
 
Creating a Fibonacci Generator in Assembly - by Willem van Ketwich
Creating a Fibonacci Generator in Assembly - by Willem van KetwichCreating a Fibonacci Generator in Assembly - by Willem van Ketwich
Creating a Fibonacci Generator in Assembly - by Willem van Ketwich
 
Classification of Compilers
Classification of CompilersClassification of Compilers
Classification of Compilers
 
Chapter 4
Chapter 4Chapter 4
Chapter 4
 
Assembly language programming(unit 4)
Assembly language programming(unit 4)Assembly language programming(unit 4)
Assembly language programming(unit 4)
 
Register introduction
Register introductionRegister introduction
Register introduction
 
Bus and Memory transfer
Bus and Memory transferBus and Memory transfer
Bus and Memory transfer
 
System Programming- Unit I
System Programming- Unit ISystem Programming- Unit I
System Programming- Unit I
 
Assembly Language
Assembly LanguageAssembly Language
Assembly Language
 
Arteris Ncore Cache Coherent Interconnect - Technology Overview
Arteris Ncore Cache Coherent Interconnect - Technology OverviewArteris Ncore Cache Coherent Interconnect - Technology Overview
Arteris Ncore Cache Coherent Interconnect - Technology Overview
 

Destacado

UML for Aspect Oriented Design
UML for Aspect Oriented DesignUML for Aspect Oriented Design
UML for Aspect Oriented DesignEdison Lascano
 
Aspect-Oriented Software Development with Use Cases
Aspect-Oriented Software Development with Use CasesAspect-Oriented Software Development with Use Cases
Aspect-Oriented Software Development with Use Caseswww.myassignmenthelp.net
 
Aspect-Oriented Technologies
Aspect-Oriented TechnologiesAspect-Oriented Technologies
Aspect-Oriented TechnologiesEsteban Abait
 
QSOUL/Aop
QSOUL/AopQSOUL/Aop
QSOUL/AopESUG
 
Evolutionary Problems In Aspect Oriented Software Development
Evolutionary Problems In Aspect Oriented Software DevelopmentEvolutionary Problems In Aspect Oriented Software Development
Evolutionary Problems In Aspect Oriented Software Developmentkim.mens
 
Aspect Oriented Software Development
Aspect Oriented Software DevelopmentAspect Oriented Software Development
Aspect Oriented Software DevelopmentOtavio Ferreira
 
Aspect Mining Techniques
Aspect Mining TechniquesAspect Mining Techniques
Aspect Mining TechniquesEsteban Abait
 
Introduction to Aspect Oriented Software Development
Introduction to Aspect Oriented Software DevelopmentIntroduction to Aspect Oriented Software Development
Introduction to Aspect Oriented Software Developmentmukhtarhudaya
 
Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)
Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)
Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)amirbabol
 
Aspect Oriented Software Development
Aspect Oriented Software DevelopmentAspect Oriented Software Development
Aspect Oriented Software DevelopmentJignesh Patel
 
Aspect oriented software development
Aspect oriented software developmentAspect oriented software development
Aspect oriented software developmentMaryam Malekzad
 
Ch21-Software Engineering 9
Ch21-Software Engineering 9Ch21-Software Engineering 9
Ch21-Software Engineering 9Ian Sommerville
 

Destacado (13)

UML for Aspect Oriented Design
UML for Aspect Oriented DesignUML for Aspect Oriented Design
UML for Aspect Oriented Design
 
Scrum doc
Scrum docScrum doc
Scrum doc
 
Aspect-Oriented Software Development with Use Cases
Aspect-Oriented Software Development with Use CasesAspect-Oriented Software Development with Use Cases
Aspect-Oriented Software Development with Use Cases
 
Aspect-Oriented Technologies
Aspect-Oriented TechnologiesAspect-Oriented Technologies
Aspect-Oriented Technologies
 
QSOUL/Aop
QSOUL/AopQSOUL/Aop
QSOUL/Aop
 
Evolutionary Problems In Aspect Oriented Software Development
Evolutionary Problems In Aspect Oriented Software DevelopmentEvolutionary Problems In Aspect Oriented Software Development
Evolutionary Problems In Aspect Oriented Software Development
 
Aspect Oriented Software Development
Aspect Oriented Software DevelopmentAspect Oriented Software Development
Aspect Oriented Software Development
 
Aspect Mining Techniques
Aspect Mining TechniquesAspect Mining Techniques
Aspect Mining Techniques
 
Introduction to Aspect Oriented Software Development
Introduction to Aspect Oriented Software DevelopmentIntroduction to Aspect Oriented Software Development
Introduction to Aspect Oriented Software Development
 
Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)
Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)
Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)
 
Aspect Oriented Software Development
Aspect Oriented Software DevelopmentAspect Oriented Software Development
Aspect Oriented Software Development
 
Aspect oriented software development
Aspect oriented software developmentAspect oriented software development
Aspect oriented software development
 
Ch21-Software Engineering 9
Ch21-Software Engineering 9Ch21-Software Engineering 9
Ch21-Software Engineering 9
 

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

طرح چارچوب متن باز تولید نرم افزار
طرح چارچوب  متن باز تولید نرم افزار طرح چارچوب  متن باز تولید نرم افزار
طرح چارچوب متن باز تولید نرم افزار عباس بني اسدي مقدم
 
oCCc_24_Cloud_Design_Patterns
oCCc_24_Cloud_Design_PatternsoCCc_24_Cloud_Design_Patterns
oCCc_24_Cloud_Design_PatternsMorteza Javan
 
نرم‌افزارهای بازمتن، الزامات و راه‌کارهای مهاجرت
نرم‌افزارهای بازمتن، الزامات و راه‌کارهای مهاجرتنرم‌افزارهای بازمتن، الزامات و راه‌کارهای مهاجرت
نرم‌افزارهای بازمتن، الزامات و راه‌کارهای مهاجرتNasser Ghanemzadeh
 
توسعه پروژه های بک‌اند، فرانت‌اند و موبایل با کاتلین
توسعه پروژه های بک‌اند، فرانت‌اند و موبایل با کاتلینتوسعه پروژه های بک‌اند، فرانت‌اند و موبایل با کاتلین
توسعه پروژه های بک‌اند، فرانت‌اند و موبایل با کاتلینWeb Standards School
 
مهاجرت به متن باز در شرکت توزیع برق مشهد
مهاجرت به متن باز در شرکت توزیع برق مشهدمهاجرت به متن باز در شرکت توزیع برق مشهد
مهاجرت به متن باز در شرکت توزیع برق مشهدعباس بني اسدي مقدم
 
Data Management System- Haseb System Co
Data Management System- Haseb System CoData Management System- Haseb System Co
Data Management System- Haseb System CoHamed Ghazanfari
 
قلاب سازی در تحلیل بدافزارهاHooking in Malware Analysis
 قلاب سازی در تحلیل بدافزارهاHooking  in Malware Analysis قلاب سازی در تحلیل بدافزارهاHooking  in Malware Analysis
قلاب سازی در تحلیل بدافزارهاHooking in Malware AnalysisM Mehdi Ahmadian
 
agil software managment by scrunm in tfs
agil software managment by scrunm in tfsagil software managment by scrunm in tfs
agil software managment by scrunm in tfsReza Rahimy
 
Softwares : Vuln discovery , attack and deffence technologies
Softwares : Vuln discovery , attack and deffence technologiesSoftwares : Vuln discovery , attack and deffence technologies
Softwares : Vuln discovery , attack and deffence technologieshamid.k
 
بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...
بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...
بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...amri k
 
Logo! v7 ethernet translate-Persian
Logo! v7 ethernet translate-PersianLogo! v7 ethernet translate-Persian
Logo! v7 ethernet translate-Persianhamid servat
 
Microservices.pdf
Microservices.pdfMicroservices.pdf
Microservices.pdfhbsd1374
 
BPMN استانداردی برای مدل سازی فرایندهای کسب وکار
BPMN استانداردی برای مدل سازی فرایندهای کسب وکارBPMN استانداردی برای مدل سازی فرایندهای کسب وکار
BPMN استانداردی برای مدل سازی فرایندهای کسب وکارRayBPMS
 
Software Fault Avoidance in Implementation
Software Fault Avoidance in ImplementationSoftware Fault Avoidance in Implementation
Software Fault Avoidance in ImplementationMorteza Zakeri
 
Laravel - back-end framework in persian language
Laravel - back-end framework in persian languageLaravel - back-end framework in persian language
Laravel - back-end framework in persian languageOmid Khosrojerdi
 
مفاهیم اولیه داکر
مفاهیم اولیه داکرمفاهیم اولیه داکر
مفاهیم اولیه داکرAli Rasoulian
 
Scrum Challenges | By Yaghob Yavari
Scrum Challenges | By Yaghob YavariScrum Challenges | By Yaghob Yavari
Scrum Challenges | By Yaghob YavariIran Agile Community
 
10- Scrum Challenges - Yaghob Yavari
10- Scrum Challenges - Yaghob Yavari10- Scrum Challenges - Yaghob Yavari
10- Scrum Challenges - Yaghob YavariAli Moghadam
 

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

طرح چارچوب متن باز تولید نرم افزار
طرح چارچوب  متن باز تولید نرم افزار طرح چارچوب  متن باز تولید نرم افزار
طرح چارچوب متن باز تولید نرم افزار
 
توسعه امن نرم افزار
توسعه امن نرم افزارتوسعه امن نرم افزار
توسعه امن نرم افزار
 
oCCc_24_Cloud_Design_Patterns
oCCc_24_Cloud_Design_PatternsoCCc_24_Cloud_Design_Patterns
oCCc_24_Cloud_Design_Patterns
 
نرم‌افزارهای بازمتن، الزامات و راه‌کارهای مهاجرت
نرم‌افزارهای بازمتن، الزامات و راه‌کارهای مهاجرتنرم‌افزارهای بازمتن، الزامات و راه‌کارهای مهاجرت
نرم‌افزارهای بازمتن، الزامات و راه‌کارهای مهاجرت
 
ESB
ESBESB
ESB
 
توسعه پروژه های بک‌اند، فرانت‌اند و موبایل با کاتلین
توسعه پروژه های بک‌اند، فرانت‌اند و موبایل با کاتلینتوسعه پروژه های بک‌اند، فرانت‌اند و موبایل با کاتلین
توسعه پروژه های بک‌اند، فرانت‌اند و موبایل با کاتلین
 
مهاجرت به متن باز در شرکت توزیع برق مشهد
مهاجرت به متن باز در شرکت توزیع برق مشهدمهاجرت به متن باز در شرکت توزیع برق مشهد
مهاجرت به متن باز در شرکت توزیع برق مشهد
 
Data Management System- Haseb System Co
Data Management System- Haseb System CoData Management System- Haseb System Co
Data Management System- Haseb System Co
 
قلاب سازی در تحلیل بدافزارهاHooking in Malware Analysis
 قلاب سازی در تحلیل بدافزارهاHooking  in Malware Analysis قلاب سازی در تحلیل بدافزارهاHooking  in Malware Analysis
قلاب سازی در تحلیل بدافزارهاHooking in Malware Analysis
 
agil software managment by scrunm in tfs
agil software managment by scrunm in tfsagil software managment by scrunm in tfs
agil software managment by scrunm in tfs
 
Softwares : Vuln discovery , attack and deffence technologies
Softwares : Vuln discovery , attack and deffence technologiesSoftwares : Vuln discovery , attack and deffence technologies
Softwares : Vuln discovery , attack and deffence technologies
 
بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...
بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...
بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...
 
Logo! v7 ethernet translate-Persian
Logo! v7 ethernet translate-PersianLogo! v7 ethernet translate-Persian
Logo! v7 ethernet translate-Persian
 
Microservices.pdf
Microservices.pdfMicroservices.pdf
Microservices.pdf
 
BPMN استانداردی برای مدل سازی فرایندهای کسب وکار
BPMN استانداردی برای مدل سازی فرایندهای کسب وکارBPMN استانداردی برای مدل سازی فرایندهای کسب وکار
BPMN استانداردی برای مدل سازی فرایندهای کسب وکار
 
Software Fault Avoidance in Implementation
Software Fault Avoidance in ImplementationSoftware Fault Avoidance in Implementation
Software Fault Avoidance in Implementation
 
Laravel - back-end framework in persian language
Laravel - back-end framework in persian languageLaravel - back-end framework in persian language
Laravel - back-end framework in persian language
 
مفاهیم اولیه داکر
مفاهیم اولیه داکرمفاهیم اولیه داکر
مفاهیم اولیه داکر
 
Scrum Challenges | By Yaghob Yavari
Scrum Challenges | By Yaghob YavariScrum Challenges | By Yaghob Yavari
Scrum Challenges | By Yaghob Yavari
 
10- Scrum Challenges - Yaghob Yavari
10- Scrum Challenges - Yaghob Yavari10- Scrum Challenges - Yaghob Yavari
10- Scrum Challenges - Yaghob Yavari
 

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

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