劉榮立
AOP作為計算機程序設計的重要技術手段之一,經(jīng)過十多年的發(fā)展,日益受到軟件研究者和實踐者的關注,并發(fā)展成為軟件工程的一個重要的研究領域,本文基于該領域近十年來的研究進展,分析總結了其基礎技術特點和發(fā)展研究方向。
【關鍵詞】AOP 基礎研究 發(fā)展
面向方面程序設計(aspect-orientedprogramming,AOP)是近年來研究比較火熱的技術,其照耀目的是解決軟件系統(tǒng)中的橫切點問題。AOP的發(fā)展首先要從語言設計開始,最好的例子是Java升級后的AspectJ,以此為基數(shù)發(fā)展了很多相關的AOP語言和技術方法。近年來,國內(nèi)外對于AOP的研究已經(jīng)遠遠超過了以往對某一程序技術語言的研究,并且快速的推動相關產(chǎn)業(yè)和研究的發(fā)展,因此,本文特別對面向方面程序設計語言研究進行綜述,主要探究其基礎技術和發(fā)展研究方向。
1 AOP語言基礎
AOP 語言主要是分為基礎程序和方面程序,其中基礎程序是比較傳統(tǒng)程序設計語言,主要關系程序的核心關注點,方面程序則是對基礎程序的擴展和補充,主要風度程序的橫切關注點,如表1就列出了AOP語言的幾個典型基礎語言。可以看出方面語言程序是在基礎語言的基礎上進行擴展得到的,方面語言就是為了適應關注點的需要對基礎語言的完善,而最常見的基礎語言是Java,其衍生的方面語言程序做多,應用發(fā)展也最迅速。Weave.NET和Sourceweave.NET是針對某一特定平臺設計的,其基礎語言為.NET,顯而易見是為了.NET平臺所研發(fā)的。
2 AOP 語言的分類
AOP是有很多基礎語言完善擴展而來,具有種類多,功能多的特點,因此根據(jù)這些語言的特點對其分類研究,可以使學者們尤其是初學者能夠更好更快的對其有全方面的了解,熟悉和掌握其關鍵點和研發(fā)機制,如表2是AOP語言的分類,此分類是學者們研究AOP語言的一個逐步深入的過程,早期,AOP 語言大多在某種傳統(tǒng)的基礎語言的基礎上添加關鍵詞或者語言結構對其進行修飾,稱為簡單的AOP語言,這種方法設計的AOP語言大多數(shù)為非對稱AOP語言,例如以AspectJ 為代表的程序設計語言,這類語言與基礎語言的功能相同或者相似,是比較好掌握的一類AOP語言。相對于非對稱性語言,對稱性語言則屬于另一種類型,例如AspectS,這種AOP語言是又開放了一套新的擴展名與之前的基礎語言組合構成的,其所編寫的方面模塊與類模塊具有完全相同的代碼結構,這種語言性對與非對稱性語言,應該起來更加靈活而且使用更加方便具有自定義的功能。還有根據(jù)邏輯表達方式、行為的執(zhí)行時間、行為的結果特征和行為的執(zhí)行過程進行分類,再此不一一列舉。
3 AOP語言的發(fā)展
自上世紀90年代提出AOP程序設計語言以來,其研究就一直處于熱點狀態(tài),其設計的領域也在逐步擴大,AOP程序設計語言在分析、設計、實現(xiàn)、測試、部署、更新、維護等各個階段都有涉及,并在相關領域取得了豐碩的研究成果。近年來,國外的很多學術論壇均有關于AOP的描述,并對其發(fā)展表現(xiàn)了極大的研究興趣,現(xiàn)在在歐美國家,AOP程序設計正在快速的發(fā)展期,而且部分技術已經(jīng)應用到實際的工業(yè)化生產(chǎn)過程中。國內(nèi)AOP程序設計的相關研究雖然晚于歐美國家,但是近幾年受到了相當高度的重視,研究的學者也越來越多,隨著研究的深入國內(nèi)也取得了很多成績,隨著很多學者認識到AOP程序設計帶來的模塊化橫切關注點這一好處,甚至簡單地將面向方面程序設計理解為模塊化橫切關注點;也使得很多人狹隘地將面向方面程序設計綁定、局限在面向?qū)ο蟪绦蛟O計之上,認為面向方面程序設計是面向?qū)ο蟪绦蛟O計的擴充、有效的補充等。本文對當前AOP 語言的部分研究成果進行了歸納和總結,希望能為AOP 技術相關研究在我國的進一步開展提供有益的參考
參考文獻
[1]古思山,蔡樹彬,李師賢.從面向方面程序設計的定義到面向方面程序設計語言[J].計算機科學,2011,38(10):133-139.
[2]唐祖鍇,彭智勇.面向方面程序設計語言研究綜述[J].計算機科學與探索,2010,4(01):1-19.
[3]林莉,懷進鵬,李先賢.基于屬性的訪問控制策略合成代數(shù)[J].軟件學報,2009,20(02):404-414.
作者單位
濟寧職業(yè)技術學院 山東省濟寧市 272000endprint