پاورپوینت برنامه نویسی جنبه گرا (pptx) 36 اسلاید
دسته بندی : پاورپوینت
نوع فایل : PowerPoint (.pptx) ( قابل ویرایش و آماده پرینت )
تعداد اسلاید: 36 اسلاید
قسمتی از متن PowerPoint (.pptx) :
بنام خدا
1
Aspect Oriented Patterns
3
اتاریخچه برنامه نویسی جنبه گرا
اولین بار توسط گريگور كيزالس (پروفسور دانشگاه UBC )، در کشور هلند مطرح شد .
اولين ارائه رسمي از اين موضوع طی مقاله ای در یک کنفرانس اروپایی در رابطه با برنامه نویسی شئ گرا تحت عنوان ” Aspect-oriented programming“ طی سال 1997 مطرح شد .
G. Kiczales, J. Irwin, J. Lamping, J.-M. Loingtier,C. Lopes, C. Maeda, and A.Menhdhekar. Aspect-oriented programming. In M. Ak¸sit and S. Matsuoka, editors, Proceedings of the European Conference on Object-Oriented Programming, volume 1241, pages 220–242, Berlin, Heidelberg, and New York, 1997. Springer-Verlag.
به تدریج با افزایش اقبال به سمت این تفکر AspectJ به وجود آمد ، که از برنامه نویسی جنبه گرا حمایت میکرد .
4
منابع
[1] Kiczales, G. and Mezini, M. 2005. Aspect-oriented programming and modular reasoning. In Proceedings of
the 27th international Conference on Software Engineering (St. Louis, MO, USA, May 15 - 21, 2005).
[2] Lippert, M. and Lopes, C. V. 2000. A study on exception detection and handling using aspect- oriented programming.
In Proceedings of the 22nd international Conference on Software Engineering (Limerick, Ireland, June 04 - 11, 2000).
[3] Noura El Maghawry, Ahmed R.Dawood. Aspect Oriented GOF Design Patterns .In Proceedings of the The 7th
International Conference on Informatics and Systems (INFOS), 2010 .
[4] Jan Hannemann and Gregor Kiczales. 2002. Design pattern implementation in Java and aspectJ. In Proceedings of the
17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications (OOPSLA `02).
[5] Eduardo Kessler Piveta and Luiz Carlos Zancanella. Observer Pattern using Aspect-Oriented Programming. In Proc. of
the 3rd Latin American Conference on Pattern Languages of Programming, Porto de Galinhas, PE, Brazil, August 2003.
[6] Radoslav Menkyna. Towards combining aspect-oriented design patterns.In M´aria Bielikov´a, editor, Proc. Informatics
and Information Technologies Student Research Conference, IIT.SRC 2007, pages 1–8, Bratislava,Slovakia, 2007.
[7] Miles, R.: AspectJ Cookbook. O’Reilly, 2004.
[8] Bruno Dufour, Christopher Goard, Laurie Hendren, Oege de Moor, Ganesh Sittampalam, and Clark Verbrugge. 2004.
Measuring the dynamic behaviour of AspectJ programs. In Proceedings of the 19th annual ACM SIGPLAN conference
on Object-oriented programming, systems, languages, and applications (OOPSLA '04).
5
تعاریف اولیه
Concern
Tangling
Cross-Cutting Concern
6
بررسی قدرت AOP در Exception Handling
در هر نرم افزاری قسمتی از کد به یافتن خطا و برخورد با آن اختصاص میابد .
پروسه به هم آمیختن رفتار معمول و رفتار غیر معمول در برنامه میتواند منجر به پدیده Cross Cutting Concern شود .
تفکر AOP میتواند به نحو قابل توجهی حجم کد مربوط به برخورد با خطا را کاهش دهد برای نشان دادن این مطلب به سراغ JWAM Framework رفته و آن را بازنویسی میکنیم [2].
JWAM یک Framework است که در دانشگاه هامبورگ آلمان تهیه شد و بعد ها حالت تجاری به خود گرفت و دارای بیش از 600 کلاس میباشد .
برای نشان دادن قدرت AOP ، کد JWAM با رویکرد جنبه گرا باز نویسی شد و مشاهده شد حجم کد مربوط به برخورد با خطا به اندازه ¼ کاهش پیدا کرده است.
7
ارائه یک مثال
Class point
{
Static bool compare(point p1,pointp2){
if(p1 == null || p2==null )
throw Exception(“Arg Null Exception in Point.Compare”);
…. } // end of compare(point p1,pointp2)
.
.
.
}//end of Class point
فرض بگیرید 600 کلاس دارید که هر کدام 20 تابع با آرگومان از نوع Object دارند :
12000= 20*600 (تعداد مکان برخورد با خطا )
24000= 2*12000 (تعداد خط کد برای برخورد با این خطا )
8
ارائه یک مثال
Class point
{
Static bool compare(point p1,pointp2){
…. } // end of compare(point.
.
.
.
}//end of Class point
/************************************
******************************************/
aspect ExceptionHandler {
pointcut HasObjArg(data e, Args *args): execution(void *.*(*)) ) && target(e)
before(data e , Args *args) : HasObjArg () {
if ( chkArgnull(Args) == true )
throw Exception(“Arg Null Exception in”+e.Name);
}
}//end of aspect UpdateSignaling
PointCut
Advice
Aspect
Point.*()
Point.Set*(int,int)
24000 10
Exception Introduction Pattern
From the nature of aspects some design pattern can be added to another without the modification of the existing pattern. ( Exception Introduction , Policy )
9
Adding pointcut design pattern to an advice design pattern requires usually a change
in existing advice pattern.