SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
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 توسعه نرم افزار جنبه گرا

Mais conteúdo relacionado

Mais procurados

Trunk orthoses
Trunk orthosesTrunk orthoses
Trunk orthosesTrustcore
 
Cranio-vertrable junction anamolies
Cranio-vertrable junction anamoliesCranio-vertrable junction anamolies
Cranio-vertrable junction anamoliesAbhay Mange
 
Concussion treatment
Concussion treatmentConcussion treatment
Concussion treatmentSusan Miller
 
Piriformis syndrome
Piriformis syndromePiriformis syndrome
Piriformis syndromeAmal Jose
 
Si joint dysfunction
Si joint dysfunctionSi joint dysfunction
Si joint dysfunctionDeepak Kumar
 
Security and Protection for Machine Learning.pptx
Security and Protection for Machine Learning.pptxSecurity and Protection for Machine Learning.pptx
Security and Protection for Machine Learning.pptxteam-WIBU
 
Berg balance scale versus balance evaluation systems test
Berg balance scale versus balance evaluation systems testBerg balance scale versus balance evaluation systems test
Berg balance scale versus balance evaluation systems testJWANIKA VANSIYA
 
Spinal cord injury 2012 intern
Spinal cord injury 2012 internSpinal cord injury 2012 intern
Spinal cord injury 2012 internPierre Lopez
 
7 neuromuscular diseases 75$.pptx
7   neuromuscular diseases  75$.pptx7   neuromuscular diseases  75$.pptx
7 neuromuscular diseases 75$.pptxsamirich1
 
Eclipse文字化けする。一撃で文字化けを直す方法
Eclipse文字化けする。一撃で文字化けを直す方法Eclipse文字化けする。一撃で文字化けを直す方法
Eclipse文字化けする。一撃で文字化けを直す方法H S
 
Block ciphers & public key cryptography
Block ciphers & public key cryptographyBlock ciphers & public key cryptography
Block ciphers & public key cryptographyRAMPRAKASHT1
 
Five Best and Five Worst Practices for SIEM by Dr. Anton Chuvakin
Five Best and Five Worst Practices for SIEM by Dr. Anton ChuvakinFive Best and Five Worst Practices for SIEM by Dr. Anton Chuvakin
Five Best and Five Worst Practices for SIEM by Dr. Anton ChuvakinAnton Chuvakin
 
Practical use of Knowledge Graph with Case Studies using Semantic Web Publish...
Practical use of Knowledge Graph with Case Studies using Semantic Web Publish...Practical use of Knowledge Graph with Case Studies using Semantic Web Publish...
Practical use of Knowledge Graph with Case Studies using Semantic Web Publish...Takanori Ugai
 
Recent advances in imaging of scoliosis final
Recent advances in imaging of scoliosis finalRecent advances in imaging of scoliosis final
Recent advances in imaging of scoliosis finalSelf-employed
 
Security models for security architecture
Security models for security architectureSecurity models for security architecture
Security models for security architectureVladimir Jirasek
 

Mais procurados (20)

Trunk orthoses
Trunk orthosesTrunk orthoses
Trunk orthoses
 
Cranio-vertrable junction anamolies
Cranio-vertrable junction anamoliesCranio-vertrable junction anamolies
Cranio-vertrable junction anamolies
 
Concussion treatment
Concussion treatmentConcussion treatment
Concussion treatment
 
Tuberculosis of spine
Tuberculosis of spineTuberculosis of spine
Tuberculosis of spine
 
Piriformis syndrome
Piriformis syndromePiriformis syndrome
Piriformis syndrome
 
Si joint dysfunction
Si joint dysfunctionSi joint dysfunction
Si joint dysfunction
 
Security and Protection for Machine Learning.pptx
Security and Protection for Machine Learning.pptxSecurity and Protection for Machine Learning.pptx
Security and Protection for Machine Learning.pptx
 
Berg balance scale versus balance evaluation systems test
Berg balance scale versus balance evaluation systems testBerg balance scale versus balance evaluation systems test
Berg balance scale versus balance evaluation systems test
 
Spinal cord injury 2012 intern
Spinal cord injury 2012 internSpinal cord injury 2012 intern
Spinal cord injury 2012 intern
 
Rsa
RsaRsa
Rsa
 
7 neuromuscular diseases 75$.pptx
7   neuromuscular diseases  75$.pptx7   neuromuscular diseases  75$.pptx
7 neuromuscular diseases 75$.pptx
 
Couchbas for dummies
Couchbas for dummiesCouchbas for dummies
Couchbas for dummies
 
Eclipse文字化けする。一撃で文字化けを直す方法
Eclipse文字化けする。一撃で文字化けを直す方法Eclipse文字化けする。一撃で文字化けを直す方法
Eclipse文字化けする。一撃で文字化けを直す方法
 
Block ciphers & public key cryptography
Block ciphers & public key cryptographyBlock ciphers & public key cryptography
Block ciphers & public key cryptography
 
Five Best and Five Worst Practices for SIEM by Dr. Anton Chuvakin
Five Best and Five Worst Practices for SIEM by Dr. Anton ChuvakinFive Best and Five Worst Practices for SIEM by Dr. Anton Chuvakin
Five Best and Five Worst Practices for SIEM by Dr. Anton Chuvakin
 
Practical use of Knowledge Graph with Case Studies using Semantic Web Publish...
Practical use of Knowledge Graph with Case Studies using Semantic Web Publish...Practical use of Knowledge Graph with Case Studies using Semantic Web Publish...
Practical use of Knowledge Graph with Case Studies using Semantic Web Publish...
 
Recent advances in imaging of scoliosis final
Recent advances in imaging of scoliosis finalRecent advances in imaging of scoliosis final
Recent advances in imaging of scoliosis final
 
Cervical spondylosis
Cervical spondylosisCervical spondylosis
Cervical spondylosis
 
Fortinet sandboxing
Fortinet sandboxingFortinet sandboxing
Fortinet sandboxing
 
Security models for security architecture
Security models for security architectureSecurity models for security architecture
Security models for security architecture
 

Destaque

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
 

Destaque (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
 

Semelhante 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
 

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