Research: Modularity and Post Object-Oriented Programming (Aspect-orientation and Context-orientation) / 研究: モジュール性・ポストオブジェクト指向プログラミング(アスペクト指向、コンテキスト指向)

Software modularity and separation of concerns are important for reducing complexity at any abstraction level of software. We particularly focus on modular structures that cut across traditional abstraction boundaries, such as aspect-orientation and context-orientation.

AOJS: An Aspect-Oriented JavaScript Programming Framework

AOPJavaScript is a popular scripting language that is particularly useful for client-side programming together with HTML/XML on the Web. As JavaScript programs become more complex and large, separation of concerns at the implementation level is a signicant challenge. Aspect orientation has been a well known concept to realize improved separation; however, existing mechanisms require modications in the target modules for aspect weaving in JavaScript (i.e., not “complete” separation). In this paper, we propose an Aspect-Oriented JavaScript framework, named “AOJS”, which realizes the complete separation of aspects and other core modules in JavaScript. AOJS can specify function executions, variable assignments and le initializations in JavaScript programs as the joinpoints of aspects. Moreover, AOJS guarantees the complete separation of aspects
and core program modules by adopting a proxy-based architecture for aspect weaving. By utilizing these features, we conrmed that AOJS oers improved modiability and extendability for JavaScript programming

  • Hironori Washizaki, Atsuto Kubo, Tomohiko Mizumachi, Kazuki Eguchi, Yoshiaki Fukazawa, Nobukazu Yoshioka, Hideyuki Kanuka, Toshihiro Kodaka, Nobuhide Sugimoto, Yoichi Nagai, Rieko Yamamoto: AOJS: Aspect-Oriented JavaScript Programming Framework for Web Development, 8th Workshop on Aspects, Components, and Patterns for Infrastructure Software (ACP4IS’09), pp.31–36, March 2, 2009. (PDF)
  • 大橋昭, 久保淳人, 水町友彦, 江口和樹, 村上真一, 高橋竜一, 鷲崎弘宜, 深澤良彰ほか, “AOJS:JavaScriptのためのアスペクト指向プログラミング・フレームワーク”, コンピュータソフトウェア, 岩波書店, Vol.28, No.3, pp114-131, 2011.(PDF)
  • AOJS: Aspect-Oriented JavaScript programming framework for JavaScript (JavaSript用アスペクト指向プログラミングフレームワーク)
  • 鷲崎弘宜, “アスペクト指向ソフトウェア工学”, SES2009 チュートリアル資料, 2009. (SES2009-AOSD.pdf)

UniAspect:  A Language-Independent Aspect-Oriented Programming Framework

UniAspectExisting AOP tools, typified by AspectJ, are proposed as extensions of a single language. Therefore, most existing AOP tools cannot deal with cross-cutting concerns, which are scattered on many modules implemented in two or more languages. We propose a novel language-independent AOP framework named UniAspect. UniAspect translates programs written in various languages into a Unified Code Object, which is our common representation of source code. And it achieves the modularization of scattered cross-cutting concerns in multiple languages by weaving aspects through the Unified Code Object. In this paper, we introduce a case study of the implementation of logs in a web application that is implemented in Java and JavaScript. Its result shows that UniAspect achieves the modularization of these concerns by a single aspect.

  • Akira Ohashi, Kazunori Sakamoto, Tomoyuki Kamiya, Reisha Humaira, Satoshi Arai, Hironori Washizaki and Yoshiaki Fukazawa, “UniAspect: A Language-Independent Aspect-Oriented Programming Framework,” 2nd Workshop on Modularity In Systems Software (MISS 2012) collocated with AOSD’12, 2012. (PDF)
  • UniAspect: Unified Aspect-Oriented Programming Framework supporting multiple programming languages (複数のプログラミング言語に対応したアスペクト指向プログラミングフレームワーク)

Context-Oriented Programming and Comparative Evaluation

There are many programming paradigms for the separation of concerns (SoC). Each paradigm modularizes concerns in a different way. Context-oriented programming (COP) has been developed as a supplement to objectoriented programming (OOP), which is one of the most widely used paradigms for SoC. It modularizes concerns that are difficult for OOP. In this paper, we focus on three paradigms – OOP, aspect-oriented programming (proposed as a supplement to OOP that has a different approach from COP), and COP – and study whether COP can modularize concerns better than other two paradigms in given situations. Then we determine the reasons why COP can or cannot better modularize concerns.

  • Fumiya Kato, Kazunori Sakamoto, Hironori Washizaki, and Yoshiaki Fukazawa, “Comparative Evaluation of Programming Paradigm: Separation of Concerns with Object-, Aspect-, and Context-Oriented Programming,” Proceedings of 24th International Conference on Software Engineering and Knowledge Engineering (SEKE 2013), pp.594-599, Hyatt Harborside at Logan Int’l Airport, Boston, June 27-29, 2013.(PDF)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です