Java dasturlash tilida boshqaruv operatorlari
AOP bo`yicha ilk ilmiy ish 1997-yili Kikzales G., Lamping J., Mendesh A. Lar tomonidan “Aspect-oriented programming” nomli maqoladir.
Birinchi AOSD konferentsiyasi (Aspect-Oriented Programming Development uchun) 2002-yil iyun oyida Finlyandiyaning Springer-Verlag shahrida va Germaniyaning Heidelberg shaharlarida bo`lib o`tgan.
ASPEKTGA MO`LJALLANGAN
DASTURLASHNI QO`LLAB
QUVVATLOVCHI JAVA
DASTURLASH TILI
KENGAYTMASI
Magistr: Kamolova Shahlo
Ilmiy rahbar: Jalolov O.I.
xayriyevu@gmail.com
I bob. Java dasturlash
tili
II bob. Sinf va
shablonlar
III bob. Java dasturlash tilida
Aspektga mo`ljallangan
dasturlash
OOP ning o`zaro bog`liq
muammolari (crosscutting
conserns)
Sinfni o`zgartirishda
yuz beradigan
muammolar
Sinfni o`zgartirishda
yuz beradigan
muammolar
Sinfni o`zgartirishda
yuz beradigan
muammolar
Mavzuning tadqiq
darajasi
AOP bo`yicha ilk ilmiy ish 1997yili Kikzales G., Lamping J.,
“Aspectoriented
tomonidan
Mendesh A.
programming” nomli maqoladir.
Lar
Birinchi
AOSD
konferentsiyasi
(AspectOriented
Programming Development uchun) 2002yil iyun oyida
Finlyandiyaning SpringerVerlag shahrida va Germaniyaning
Heidelberg shaharlarida bo`lib o`tgan.
AOP ni qo`llab-
quvvatlovchi dasturlash
tillari
AspectJ
HyperJ
AspectC++
AspectC#
Caesar
CompositionFilters
AspectWerkz
JBossAOP
AOP ni qo`llab-
quvvatlovchi dasturlash
tillari
OOP va AOP ning
farqi
Paradigma
Procedural
programming
Objectoriented
programming (OOP)
Aspectoriented
programming (AOP)
Abstraktsiya
kutubxonalar, ma’lumotlar tipi
modullashtirish
Modul
ma’lumotlar tipi
Class / object
Crosscutting conserns
(o'zaro bog'liq muammolar)
Aspect
AOP va OOPning umumiy
jihatlari
C1
C2
Sinf (class)
C4
C3
C5
)
t
c
e
p
s
a
(
t
k
e
p
s
A
A1
A2
A3
A4
Umumiy jihatlari
AspectJ ni o`rnatishga
qo`yiladigan talablari
• Eclipse (AJDT for 2.1, 3.0, 3.1)
• Jbuilder (AJDE for 47, 9)
• NetBeans (for Forte 3+, NetBeans 3.3)
• Jdeveloper (for 10.1.2 – 9.0.5.1)
• Emacs
Eclipse-da AJDT
yordamida aspektlarni
tasvirlash
AspectJ sintaksisi
[privileged] [Modifiers] aspect Id
[extends Type] [implements TypeList]
{
Body
}
Agar privileged ishlatilgan bo`lsa, ushbu yo`nalish kodi har
qanday ruxsat cheklovi e’tibordan chetda qoldiriladi: u private
yoki protected deb e’lon qilingan narsalarga ega bo`ladi.
Pointcut - aspectJ ning
konstruktori
o before – birlashish nuqtasidan oldin amalga
oshiriladi
o after – birlashish nuqtasidan keyin amalga
oshiriladi
o around – birlashish nuqtasida amalga
oshiriladi
Qo`ng`iroq vaqtini
hisoblash
Qo`ng`iroq vaqtini
hisoblash