SlideShare a Scribd company logo
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 توسعه نرم افزار جنبه گرا

More Related Content

What's hot

Intro to Project Calico: a pure layer 3 approach to scale-out networking
Intro to Project Calico: a pure layer 3 approach to scale-out networkingIntro to Project Calico: a pure layer 3 approach to scale-out networking
Intro to Project Calico: a pure layer 3 approach to scale-out networking
Packet
 
Secure Kafka at scale in true multi-tenant environment ( Vishnu Balusu & Asho...
Secure Kafka at scale in true multi-tenant environment ( Vishnu Balusu & Asho...Secure Kafka at scale in true multi-tenant environment ( Vishnu Balusu & Asho...
Secure Kafka at scale in true multi-tenant environment ( Vishnu Balusu & Asho...
confluent
 
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Araf Karsh Hamid
 
48. Azure Active Directory - Part 1
48. Azure Active Directory - Part 148. Azure Active Directory - Part 1
48. Azure Active Directory - Part 1
Shawn Ismail
 
Event-Driven Architecture (EDA)
Event-Driven Architecture (EDA)Event-Driven Architecture (EDA)
Event-Driven Architecture (EDA)
WSO2
 
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking Deploying CloudStack and Ceph with flexible VXLAN and BGP networking
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking
ShapeBlue
 
Traffic Control with Envoy Proxy
Traffic Control with Envoy ProxyTraffic Control with Envoy Proxy
Traffic Control with Envoy Proxy
Mark McBride
 
Hybrid Cloud Solutions to Transform Your Organization
Hybrid Cloud Solutions to Transform Your OrganizationHybrid Cloud Solutions to Transform Your Organization
Hybrid Cloud Solutions to Transform Your Organization
Amazon Web Services
 
Azure vnet
Azure vnetAzure vnet
Designing microservices platforms with nats
Designing microservices platforms with natsDesigning microservices platforms with nats
Designing microservices platforms with nats
Chanaka Fernando
 
Azure Container Services
Azure Container Services Azure Container Services
Azure Container Services
WinWire Technologies Inc
 
Apache Kafka as Message Queue for your microservices and other occasions
Apache Kafka as Message Queue for your microservices and other occasionsApache Kafka as Message Queue for your microservices and other occasions
Apache Kafka as Message Queue for your microservices and other occasions
Michael Reinsch
 
Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and Linkerd
Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and LinkerdService Mesh with Apache Kafka, Kubernetes, Envoy, Istio and Linkerd
Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and Linkerd
Kai Wähner
 
Azure Network Security Groups (NSG)
Azure Network Security Groups (NSG)Azure Network Security Groups (NSG)
Azure Network Security Groups (NSG)
Shawn Ismail
 
Easy, Secure, and Fast: Using NATS.io for Streams and Services
Easy, Secure, and Fast: Using NATS.io for Streams and ServicesEasy, Secure, and Fast: Using NATS.io for Streams and Services
Easy, Secure, and Fast: Using NATS.io for Streams and Services
NATS
 
Pros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitecturePros & Cons of Microservices Architecture
Pros & Cons of Microservices Architecture
Ashwini Kuntamukkala
 
Processing IoT Data from End to End with MQTT and Apache Kafka
Processing IoT Data from End to End with MQTT and Apache Kafka Processing IoT Data from End to End with MQTT and Apache Kafka
Processing IoT Data from End to End with MQTT and Apache Kafka
confluent
 
Exposing services with Azure API Management
Exposing services with Azure API ManagementExposing services with Azure API Management
Exposing services with Azure API Management
Callon Campbell
 
Windows Azure Blob Storage
Windows Azure Blob StorageWindows Azure Blob Storage
Windows Azure Blob Storage
ylew15
 
Cloud Computing at Cisco
Cloud Computing at CiscoCloud Computing at Cisco
Cloud Computing at Cisco
Cisco Canada
 

What's hot (20)

Intro to Project Calico: a pure layer 3 approach to scale-out networking
Intro to Project Calico: a pure layer 3 approach to scale-out networkingIntro to Project Calico: a pure layer 3 approach to scale-out networking
Intro to Project Calico: a pure layer 3 approach to scale-out networking
 
Secure Kafka at scale in true multi-tenant environment ( Vishnu Balusu & Asho...
Secure Kafka at scale in true multi-tenant environment ( Vishnu Balusu & Asho...Secure Kafka at scale in true multi-tenant environment ( Vishnu Balusu & Asho...
Secure Kafka at scale in true multi-tenant environment ( Vishnu Balusu & Asho...
 
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SRE
 
48. Azure Active Directory - Part 1
48. Azure Active Directory - Part 148. Azure Active Directory - Part 1
48. Azure Active Directory - Part 1
 
Event-Driven Architecture (EDA)
Event-Driven Architecture (EDA)Event-Driven Architecture (EDA)
Event-Driven Architecture (EDA)
 
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking Deploying CloudStack and Ceph with flexible VXLAN and BGP networking
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking
 
Traffic Control with Envoy Proxy
Traffic Control with Envoy ProxyTraffic Control with Envoy Proxy
Traffic Control with Envoy Proxy
 
Hybrid Cloud Solutions to Transform Your Organization
Hybrid Cloud Solutions to Transform Your OrganizationHybrid Cloud Solutions to Transform Your Organization
Hybrid Cloud Solutions to Transform Your Organization
 
Azure vnet
Azure vnetAzure vnet
Azure vnet
 
Designing microservices platforms with nats
Designing microservices platforms with natsDesigning microservices platforms with nats
Designing microservices platforms with nats
 
Azure Container Services
Azure Container Services Azure Container Services
Azure Container Services
 
Apache Kafka as Message Queue for your microservices and other occasions
Apache Kafka as Message Queue for your microservices and other occasionsApache Kafka as Message Queue for your microservices and other occasions
Apache Kafka as Message Queue for your microservices and other occasions
 
Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and Linkerd
Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and LinkerdService Mesh with Apache Kafka, Kubernetes, Envoy, Istio and Linkerd
Service Mesh with Apache Kafka, Kubernetes, Envoy, Istio and Linkerd
 
Azure Network Security Groups (NSG)
Azure Network Security Groups (NSG)Azure Network Security Groups (NSG)
Azure Network Security Groups (NSG)
 
Easy, Secure, and Fast: Using NATS.io for Streams and Services
Easy, Secure, and Fast: Using NATS.io for Streams and ServicesEasy, Secure, and Fast: Using NATS.io for Streams and Services
Easy, Secure, and Fast: Using NATS.io for Streams and Services
 
Pros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitecturePros & Cons of Microservices Architecture
Pros & Cons of Microservices Architecture
 
Processing IoT Data from End to End with MQTT and Apache Kafka
Processing IoT Data from End to End with MQTT and Apache Kafka Processing IoT Data from End to End with MQTT and Apache Kafka
Processing IoT Data from End to End with MQTT and Apache Kafka
 
Exposing services with Azure API Management
Exposing services with Azure API ManagementExposing services with Azure API Management
Exposing services with Azure API Management
 
Windows Azure Blob Storage
Windows Azure Blob StorageWindows Azure Blob Storage
Windows Azure Blob Storage
 
Cloud Computing at Cisco
Cloud Computing at CiscoCloud Computing at Cisco
Cloud Computing at Cisco
 

Viewers also liked

UML for Aspect Oriented Design
UML for Aspect Oriented DesignUML for Aspect Oriented Design
UML for Aspect Oriented Design
Edison Lascano
 
Scrum doc
Scrum docScrum 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
www.myassignmenthelp.net
 
Aspect-Oriented Technologies
Aspect-Oriented TechnologiesAspect-Oriented Technologies
Aspect-Oriented Technologies
Esteban Abait
 
QSOUL/Aop
QSOUL/AopQSOUL/Aop
QSOUL/Aop
ESUG
 
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
kim.mens
 
Aspect Oriented Software Development
Aspect Oriented Software DevelopmentAspect Oriented Software Development
Aspect Oriented Software Development
Otavio Ferreira
 
Aspect Mining Techniques
Aspect Mining TechniquesAspect Mining Techniques
Aspect Mining Techniques
Esteban Abait
 
Introduction to Aspect Oriented Software Development
Introduction to Aspect Oriented Software DevelopmentIntroduction to Aspect Oriented Software Development
Introduction to Aspect Oriented Software Development
mukhtarhudaya
 
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 Development
Jignesh Patel
 
Aspect oriented software development
Aspect oriented software developmentAspect oriented software development
Aspect oriented software development
Maryam Malekzad
 
Ch21-Software Engineering 9
Ch21-Software Engineering 9Ch21-Software Engineering 9
Ch21-Software Engineering 9
Ian Sommerville
 

Viewers also liked (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 to AOSD توسعه نرم افزار جنبه گرا

طرح چارچوب متن باز تولید نرم افزار
طرح چارچوب  متن باز تولید نرم افزار طرح چارچوب  متن باز تولید نرم افزار
طرح چارچوب متن باز تولید نرم افزار
عباس بني اسدي مقدم
 
توسعه امن نرم افزار
توسعه امن نرم افزارتوسعه امن نرم افزار
توسعه امن نرم افزار
Mohammad Hamidi Esfahani
 
oCCc_24_Cloud_Design_Patterns
oCCc_24_Cloud_Design_PatternsoCCc_24_Cloud_Design_Patterns
oCCc_24_Cloud_Design_Patterns
Morteza 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 Co
Hamed Ghazanfari
 
قلاب سازی در تحلیل بدافزارهاHooking in Malware Analysis
 قلاب سازی در تحلیل بدافزارهاHooking  in Malware Analysis قلاب سازی در تحلیل بدافزارهاHooking  in Malware Analysis
قلاب سازی در تحلیل بدافزارهاHooking in Malware Analysis
M 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 tfs
Reza 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 technologies
hamid.k
 
بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...
بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...
بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...
amri k
 
Logo! v7 ethernet translate-Persian
Logo! v7 ethernet translate-PersianLogo! v7 ethernet translate-Persian
Logo! v7 ethernet translate-Persian
hamid servat
 
Microservices.pdf
Microservices.pdfMicroservices.pdf
Microservices.pdf
hbsd1374
 
BPMN استانداردی برای مدل سازی فرایندهای کسب وکار
BPMN استانداردی برای مدل سازی فرایندهای کسب وکارBPMN استانداردی برای مدل سازی فرایندهای کسب وکار
BPMN استانداردی برای مدل سازی فرایندهای کسب وکار
RayBPMS
 
Software Fault Avoidance in Implementation
Software Fault Avoidance in ImplementationSoftware Fault Avoidance in Implementation
Software Fault Avoidance in Implementation
Morteza 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
 
10- Scrum Challenges - Yaghob Yavari
10- Scrum Challenges - Yaghob Yavari10- Scrum Challenges - Yaghob Yavari
10- Scrum Challenges - Yaghob YavariAli Moghadam
 
Scrum Challenges | By Yaghob Yavari
Scrum Challenges | By Yaghob YavariScrum Challenges | By Yaghob Yavari
Scrum Challenges | By Yaghob Yavari
Iran Agile Community
 

Similar to 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
 
مفاهیم اولیه داکر
مفاهیم اولیه داکرمفاهیم اولیه داکر
مفاهیم اولیه داکر
 
10- Scrum Challenges - Yaghob Yavari
10- Scrum Challenges - Yaghob Yavari10- Scrum Challenges - Yaghob Yavari
10- Scrum Challenges - Yaghob Yavari
 
Scrum Challenges | By Yaghob Yavari
Scrum Challenges | By Yaghob YavariScrum Challenges | By Yaghob Yavari
Scrum Challenges | By 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. چه کاربردی برای شما دارد؟؟؟ • کد کمتری مینویسید )نقصکمتر( • کد کمتری میخوانید. • مختصر و فهم آسان • توجه بیشتر • بهرهوری بیشتر • هزینه توسعه و نگهداری کاهشمیدهد.