SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
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 توسعه نرم افزار جنبه گرا

Weitere ähnliche Inhalte

Was ist angesagt?

Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life CycleRIKSOF
 
Oose unit 1 ppt
Oose unit 1 pptOose unit 1 ppt
Oose unit 1 pptDr VISU P
 
Distributed Systems Architecture in Software Engineering SE11
Distributed Systems Architecture in Software Engineering SE11Distributed Systems Architecture in Software Engineering SE11
Distributed Systems Architecture in Software Engineering SE11koolkampus
 
Software Quality Assurance(Sqa) automated software testing
Software Quality Assurance(Sqa) automated software testingSoftware Quality Assurance(Sqa) automated software testing
Software Quality Assurance(Sqa) automated software testingREHMAT ULLAH
 
A presentation on software crisis
A presentation on software crisisA presentation on software crisis
A presentation on software crisischandan sharma
 
Importance of software architecture
Importance of software architectureImportance of software architecture
Importance of software architectureHimanshu
 
Rational Unified Process
Rational Unified ProcessRational Unified Process
Rational Unified ProcessKumar
 
Ch24-Software Engineering 9
Ch24-Software Engineering 9Ch24-Software Engineering 9
Ch24-Software Engineering 9Ian Sommerville
 
Pressman ch-21-project-management-concepts
Pressman ch-21-project-management-conceptsPressman ch-21-project-management-concepts
Pressman ch-21-project-management-conceptsseethaveera
 
Design Pattern in Software Engineering
Design Pattern in Software EngineeringDesign Pattern in Software Engineering
Design Pattern in Software EngineeringManish Kumar
 
Write Smart Contracts with Truffle Framework
Write Smart Contracts with Truffle FrameworkWrite Smart Contracts with Truffle Framework
Write Smart Contracts with Truffle FrameworkShun Shiku
 
An Introduction to Software Architecture
An Introduction to Software ArchitectureAn Introduction to Software Architecture
An Introduction to Software ArchitectureRahimLotfi
 
Requirement analysis and specification, software engineering
Requirement analysis and specification, software engineeringRequirement analysis and specification, software engineering
Requirement analysis and specification, software engineeringRupesh Vaishnav
 
Software Architecture Design Decisions
Software Architecture Design DecisionsSoftware Architecture Design Decisions
Software Architecture Design DecisionsAfaq Mansoor Khan
 
Incremental model presentation
Incremental model presentationIncremental model presentation
Incremental model presentationNiat Murad
 
Software Design and Modularity
Software Design and ModularitySoftware Design and Modularity
Software Design and ModularityDanyal Ahmad
 

Was ist angesagt? (20)

Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
Oose unit 1 ppt
Oose unit 1 pptOose unit 1 ppt
Oose unit 1 ppt
 
Distributed Systems Architecture in Software Engineering SE11
Distributed Systems Architecture in Software Engineering SE11Distributed Systems Architecture in Software Engineering SE11
Distributed Systems Architecture in Software Engineering SE11
 
Software Quality Assurance(Sqa) automated software testing
Software Quality Assurance(Sqa) automated software testingSoftware Quality Assurance(Sqa) automated software testing
Software Quality Assurance(Sqa) automated software testing
 
A presentation on software crisis
A presentation on software crisisA presentation on software crisis
A presentation on software crisis
 
Importance of software architecture
Importance of software architectureImportance of software architecture
Importance of software architecture
 
Rational Unified Process
Rational Unified ProcessRational Unified Process
Rational Unified Process
 
Ch24-Software Engineering 9
Ch24-Software Engineering 9Ch24-Software Engineering 9
Ch24-Software Engineering 9
 
Pressman ch-21-project-management-concepts
Pressman ch-21-project-management-conceptsPressman ch-21-project-management-concepts
Pressman ch-21-project-management-concepts
 
Design Pattern in Software Engineering
Design Pattern in Software EngineeringDesign Pattern in Software Engineering
Design Pattern in Software Engineering
 
Write Smart Contracts with Truffle Framework
Write Smart Contracts with Truffle FrameworkWrite Smart Contracts with Truffle Framework
Write Smart Contracts with Truffle Framework
 
An Introduction to Software Architecture
An Introduction to Software ArchitectureAn Introduction to Software Architecture
An Introduction to Software Architecture
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
Requirement analysis and specification, software engineering
Requirement analysis and specification, software engineeringRequirement analysis and specification, software engineering
Requirement analysis and specification, software engineering
 
Software Architecture Design Decisions
Software Architecture Design DecisionsSoftware Architecture Design Decisions
Software Architecture Design Decisions
 
Incremental model presentation
Incremental model presentationIncremental model presentation
Incremental model presentation
 
Software Design and Modularity
Software Design and ModularitySoftware Design and Modularity
Software Design and Modularity
 
Web Engineering
Web EngineeringWeb Engineering
Web Engineering
 

Andere mochten auch

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
 

Andere mochten auch (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
 

Ähnlich wie 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
 

Ähnlich wie 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. چه کاربردی برای شما دارد؟؟؟ • کد کمتری مینویسید )نقصکمتر( • کد کمتری میخوانید. • مختصر و فهم آسان • توجه بیشتر • بهرهوری بیشتر • هزینه توسعه و نگهداری کاهشمیدهد.